@joai/core 4.10.0 → 4.11.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
@@ -27,7 +27,7 @@ declare const getMcpServerUrl: (env: AppEnv) => string;
27
27
  declare const getMcpServerAgentUrl: (env: AppEnv, agent: string) => string;
28
28
  declare const getSitesBaseUrl: (env: AppEnv) => "http://sites.joai--api.test:3007" | "https://devnet-sites.joai.ai" | "https://testnet-sites.joai.ai" | "https://sites.joai.ai";
29
29
  declare const getSitesRootDomain: (env: AppEnv) => string;
30
- declare const getSiteUrl: (env: AppEnv, teamSlug: string, brandSlug: string) => string;
30
+ declare const getSiteUrl: (env: AppEnv, teamSlug: string, slug: string) => string;
31
31
  //#endregion
32
32
  //#region src/config/constants.d.ts
33
33
  declare const JoaiUrls: {
@@ -51,6 +51,7 @@ interface IHttpService {
51
51
  onUnauthorized: (response: IAppResponse<any>) => void;
52
52
  onSuccessfulResponse: (response: IAppResponse<any>) => void;
53
53
  onMaintenanceMode: (response: IAppResponse<any>) => void;
54
+ onTooManyRequests: (response: IAppResponse<any>) => void;
54
55
  get: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
55
56
  post: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
56
57
  put: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
@@ -483,6 +484,37 @@ type ContactCreatePayload = ContactFormData & {
483
484
  name: string;
484
485
  wallets?: WalletList;
485
486
  };
487
+ type ContactRelationType = 'parent_of' | 'child_of' | 'spouse_of' | 'sibling_of' | 'aunt_of' | 'nibling_of' | 'manages' | 'reports_to' | 'colleague_of' | 'partner_of' | 'client_of' | 'supplier_of' | 'referred_by' | 'referred';
488
+ type ContactRelationCategory = 'family' | 'organization' | 'business' | 'referral';
489
+ type ContactRelationDirection = 'outgoing' | 'incoming';
490
+ type ContactRelationContact = {
491
+ id: string;
492
+ name: string;
493
+ avatar: string | null;
494
+ company: string | null;
495
+ title: string | null;
496
+ };
497
+ type ContactRelation = {
498
+ id: string;
499
+ type: ContactRelationType;
500
+ category: ContactRelationCategory;
501
+ direction: ContactRelationDirection;
502
+ contact: ContactRelationContact;
503
+ meta: Record<string, JsonValue> | null;
504
+ notes: string | null;
505
+ createdAt: string;
506
+ };
507
+ type ContactRelationPayload = {
508
+ relatedContactId: string;
509
+ type: ContactRelationType;
510
+ notes?: string;
511
+ meta?: Record<string, JsonValue>;
512
+ };
513
+ type ContactRelationUpdatePayload = {
514
+ type?: ContactRelationType;
515
+ notes?: string;
516
+ meta?: Record<string, JsonValue>;
517
+ };
486
518
  //#endregion
487
519
  //#region src/media/types.d.ts
488
520
  type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
@@ -1188,9 +1220,12 @@ type Order = {
1188
1220
  justCreated?: boolean;
1189
1221
  createdAt: string;
1190
1222
  invoiceDate: string;
1223
+ serviceDate: string;
1191
1224
  meta: Record<string, JsonValue> | null;
1192
1225
  contactId: string | null;
1193
1226
  contact?: Contact | null;
1227
+ invoiceContactId?: string | null;
1228
+ invoiceContact?: Contact | null;
1194
1229
  source: OrderSource | null;
1195
1230
  context: OrderContext | null;
1196
1231
  paymentMode: string | null;
@@ -1206,6 +1241,7 @@ type Order = {
1206
1241
  } | null;
1207
1242
  shippingFee?: number;
1208
1243
  fulfillments?: Fulfillment[];
1244
+ returns?: Return[];
1209
1245
  subscription?: Subscription | null;
1210
1246
  configuration?: OrderConfigurationItem[];
1211
1247
  items: OrderItem[];
@@ -1317,7 +1353,7 @@ type Skill = {
1317
1353
  };
1318
1354
  //#endregion
1319
1355
  //#region src/integration/types.d.ts
1320
- type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'whatsapp-personal' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'xchat' | 'instagram' | 'grok' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'push' | 'sentry' | 'readwise';
1356
+ type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'whatsapp-personal' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'xchat' | 'instagram' | 'grok' | 'cloudflare' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'push' | 'sentry' | 'readwise';
1321
1357
  type IntegrationDetails = {
1322
1358
  type: IntegrationType;
1323
1359
  name: string;
@@ -1960,6 +1996,12 @@ type ArtifactLink = {
1960
1996
  url: string;
1961
1997
  label?: string | null;
1962
1998
  };
1999
+ type ArtifactBlockType = 'heading' | 'richText' | 'metrics' | 'table' | 'callout' | 'actions' | 'media' | 'divider';
2000
+ type ArtifactBlock = {
2001
+ id: string;
2002
+ type: ArtifactBlockType;
2003
+ data: Record<string, unknown>;
2004
+ };
1963
2005
  type ArtifactContactSummary = {
1964
2006
  id: string;
1965
2007
  name: string | null;
@@ -1972,9 +2014,11 @@ type Artifact = {
1972
2014
  status: ArtifactStatus;
1973
2015
  title: string;
1974
2016
  summary: string | null;
2017
+ blocks: ArtifactBlock[] | null;
1975
2018
  url: string | null;
1976
2019
  password: string | null;
1977
2020
  links: ArtifactLink[];
2021
+ media: Media[];
1978
2022
  meta: Record<string, unknown> | null;
1979
2023
  contactId: string | null;
1980
2024
  orderId: string | null;
@@ -1988,22 +2032,27 @@ type ArtifactCreatePayload = {
1988
2032
  type: ArtifactType;
1989
2033
  status?: ArtifactStatus;
1990
2034
  summary?: string;
2035
+ blocks?: ArtifactBlock[];
1991
2036
  url?: string;
1992
2037
  password?: string;
1993
2038
  links?: ArtifactLink[];
1994
2039
  extraLinkUrl?: string;
1995
2040
  extraLinkLabel?: string;
2041
+ media?: string[];
1996
2042
  meta?: Record<string, unknown>;
1997
2043
  contactId?: string;
1998
2044
  orderId?: string;
1999
2045
  };
2000
- type ArtifactUpdatePayload = Partial<ArtifactCreatePayload>;
2046
+ type ArtifactUpdatePayload = Omit<Partial<ArtifactCreatePayload>, 'blocks'> & {
2047
+ blocks?: ArtifactBlock[] | null;
2048
+ };
2001
2049
  type ArtifactDeliverPayload = {
2002
2050
  artifactIds: string[];
2003
2051
  message: string;
2004
2052
  integration: ArtifactDeliverIntegration;
2005
2053
  subject?: string;
2006
2054
  contactIds?: string[];
2055
+ agentId?: string;
2007
2056
  };
2008
2057
  type ArtifactDelivery = {
2009
2058
  id: string;
@@ -2756,6 +2805,21 @@ declare const slugifyMcpSegment: (value: string) => string;
2756
2805
  declare const buildMcpServerName: (slug: string, teamName?: string) => string;
2757
2806
  declare const buildAgentMcpServerName: (agentName: string, teamName?: string) => string;
2758
2807
  //#endregion
2808
+ //#region src/metric/types.d.ts
2809
+ type MetricSource = 'cloudflare';
2810
+ type Metric = {
2811
+ key: string;
2812
+ value: number;
2813
+ unit: string;
2814
+ };
2815
+ type MetricsResult = {
2816
+ source: MetricSource;
2817
+ resource: string;
2818
+ from: string;
2819
+ to: string;
2820
+ metrics: Metric[];
2821
+ };
2822
+ //#endregion
2759
2823
  //#region src/memory/types.d.ts
2760
2824
  type Memory = {
2761
2825
  id: string;
@@ -3145,7 +3209,7 @@ type WarpCloudExecutable = {
3145
3209
  type WarpBatchItem = {
3146
3210
  warpId: string;
3147
3211
  warpRef: string;
3148
- thought: string;
3212
+ thought: string | null;
3149
3213
  inputs: string[];
3150
3214
  };
3151
3215
  type WarpBatchable = {
@@ -3698,9 +3762,14 @@ type SiteAgent = {
3698
3762
  };
3699
3763
  type Site = {
3700
3764
  id: number;
3701
- brandSlug: string;
3765
+ slug: string;
3766
+ brandSlug: string | null;
3702
3767
  customDomain: string | null;
3703
3768
  enabled: boolean;
3769
+ contactId?: string | null;
3770
+ metricsSource?: string | null;
3771
+ metricsResource?: string | null;
3772
+ monthlyReport?: boolean;
3704
3773
  team: SiteTeam | null;
3705
3774
  agent: SiteAgent | null;
3706
3775
  settings: Record<string, JsonValue>;
@@ -3900,7 +3969,7 @@ type LoyaltyMember = {
3900
3969
  };
3901
3970
  //#endregion
3902
3971
  //#region src/segment/types.d.ts
3903
- type SegmentConditionType = 'tag' | 'has_email' | 'has_phone' | 'has_user' | 'last_purchase_after' | 'last_purchase_before' | 'total_order_amount' | 'order_count_at_least' | 'never_purchased' | 'avg_order_value_at_least' | 'last_contact_after' | 'last_contact_before' | 'waiting_on' | 'created_after' | 'created_before' | 'email_contains';
3972
+ type SegmentConditionType = 'tag' | 'has_email' | 'has_phone' | 'has_user' | 'last_purchase_after' | 'last_purchase_before' | 'total_order_amount' | 'order_count_at_least' | 'never_purchased' | 'avg_order_value_at_least' | 'last_contact_after' | 'last_contact_before' | 'waiting_on' | 'created_after' | 'created_before' | 'email_contains' | 'prop' | 'marketing_opt_out';
3904
3973
  type SegmentCondition = {
3905
3974
  type: SegmentConditionType;
3906
3975
  value: string | boolean;
@@ -3933,10 +4002,24 @@ type SegmentCountResult = {
3933
4002
  //#endregion
3934
4003
  //#region src/campaign/types.d.ts
3935
4004
  type CampaignChannel = 'email' | 'whatsapp' | 'sms' | 'push';
3936
- type CampaignStatus = 'draft' | 'pending' | 'approved' | 'rejected' | 'sending' | 'completed' | 'failed';
4005
+ type CampaignStatus = 'draft' | 'pending' | 'approved' | 'rejected' | 'scheduled' | 'sending' | 'completed' | 'failed';
3937
4006
  type CampaignCategory = 'MARKETING' | 'UTILITY' | 'AUTHENTICATION';
3938
4007
  type CampaignSkipReason = 'pending_consent' | 'opted_out' | 'missing_channel' | 'approval_skipped';
3939
4008
  type CampaignSkipReasons = Record<CampaignSkipReason, number>;
4009
+ type CampaignRecipientStatus = 'sent' | 'failed' | 'skipped' | 'pending';
4010
+ type CampaignRecipient = {
4011
+ id: string;
4012
+ name: string | null;
4013
+ email: string | null;
4014
+ phone: string | null;
4015
+ status: CampaignRecipientStatus;
4016
+ error: string | null;
4017
+ skipReason: CampaignSkipReason | null;
4018
+ retryable: boolean;
4019
+ sentAt: string | null;
4020
+ openedAt: string | null;
4021
+ clickedAt: string | null;
4022
+ };
3940
4023
  type CampaignAudiencePreview = {
3941
4024
  total: number;
3942
4025
  sendable: number;
@@ -3958,9 +4041,15 @@ type Campaign = {
3958
4041
  channel: CampaignChannel;
3959
4042
  subject: string | null;
3960
4043
  content: string;
4044
+ contentHtml?: boolean;
4045
+ scheduledAt?: string | null;
4046
+ openedCount?: number;
4047
+ clickedCount?: number;
3961
4048
  approval: CampaignApproval;
3962
4049
  agent: AgentSimple | null;
3963
4050
  tags: string[];
4051
+ segmentId?: string | null;
4052
+ contactIds?: string[];
3964
4053
  status: CampaignStatus;
3965
4054
  totalCount: number;
3966
4055
  remainingCount: number;
@@ -3977,6 +4066,7 @@ type CampaignCreatePayload = {
3977
4066
  channel: CampaignChannel;
3978
4067
  subject?: string;
3979
4068
  content: string;
4069
+ contentHtml?: boolean;
3980
4070
  language?: string;
3981
4071
  category?: CampaignCategory;
3982
4072
  templateParams?: Record<string, string>;
@@ -3990,11 +4080,15 @@ type CampaignUpdatePayload = {
3990
4080
  name: string;
3991
4081
  subject?: string;
3992
4082
  content: string;
4083
+ contentHtml?: boolean;
3993
4084
  language?: string;
3994
4085
  category?: CampaignCategory;
3995
4086
  templateParams?: Record<string, string>;
3996
4087
  aiParams?: Record<string, string>;
3997
4088
  agentId?: string;
4089
+ tags?: string[];
4090
+ contactIds?: string[];
4091
+ segmentId?: string;
3998
4092
  };
3999
4093
  type CampaignAudiencePreviewPayload = {
4000
4094
  campaignId: string;
@@ -4008,10 +4102,12 @@ type CampaignStats = {
4008
4102
  totalCampaigns: number;
4009
4103
  draftCampaigns: number;
4010
4104
  totalSent: number;
4105
+ totalOpened?: number;
4106
+ totalClicked?: number;
4011
4107
  };
4012
4108
  //#endregion
4013
4109
  //#region src/update/types.d.ts
4014
- type UpdateType = 'deal' | 'event' | 'news';
4110
+ type UpdateType = 'deal' | 'event' | 'news' | 'article';
4015
4111
  type UpdateStatus = 'draft' | 'published' | 'archived';
4016
4112
  type UpdateRelation = 'team';
4017
4113
  type Update = {
@@ -4047,6 +4143,7 @@ type UpdateStats = {
4047
4143
  dealsCount: number;
4048
4144
  eventsCount: number;
4049
4145
  newsCount: number;
4146
+ articlesCount: number;
4050
4147
  publishedCount: number;
4051
4148
  draftCount: number;
4052
4149
  archivedCount: number;
@@ -4324,4 +4421,4 @@ type CliSessionStatus = {
4324
4421
  meta: CliSessionMeta | null;
4325
4422
  };
4326
4423
  //#endregion
4327
- export { Achievement, Address, AddressCreatePayload, AddressInput, AddressSnapshot, type AddressType, AddressTypes, AddressUpdatePayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSetupTarget, AgentSimple, AgentToolingAccess, AgentWalletMode, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppAccessRule, AppEnv, AppFile, AppFileType, AppIngestion, AppSetupTarget, AppendKvEntryResult, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentPolicySync, AppointmentRequest, AppointmentSlot, Artifact, ArtifactContactSummary, ArtifactCreatePayload, ArtifactDeliverIntegration, ArtifactDeliverPayload, ArtifactDelivery, ArtifactLink, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AuthUser, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCategory, CampaignChannel, CampaignCreatePayload, CampaignSkipReason, CampaignSkipReasons, CampaignStats, CampaignStatus, CampaignUpdatePayload, Card, Cart, CartItem, CartLine, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CheckoutSnapshot, CheckoutSnapshotRequest, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactConsent, ContactConsentStatus, ContactCreatePayload, ContactFormData, ContactHealth, ContactViewable, Content, ContentDefinition, ContentEntry, ContentField, ContentFieldType, ContentPatch, ContentStatus, ContentValue, ContentVersion, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, CouponCondition, CouponRestrictedItem, CouponRestrictedItemType, CreateContentInput, CreateHookPayload, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, DefaultCodeMetadata, DefaultInviteTeamRole, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, EarnResponse, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, Fulfillment, FulfillmentLocation, type FulfillmentMethod, FulfillmentMethods, type FulfillmentStatus, FulfillmentStatuses, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, GuestBuyer, HintOptions, HintPosition, Hook, HookSample, HookTrigger, HookTriggerCondition, HookTriggerInput, HttpService, IAppResponse, IHttpService, IRequestOptions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Integration, IntegrationConnectionDetails, IntegrationDetails, IntegrationMeta, IntegrationType, Intent, InviteableTeamRoles, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, KvEntry, KvEntryPayload, KvField, KvFieldWithEntries, KvValue, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, LoyaltyAccount, LoyaltyMember, LoyaltyNextTier, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyStatus, LoyaltyTier, LoyaltyTierInfo, LoyaltyTransaction, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAspectRatio, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingSummary, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MollieTerminalPaymentResult, MultimodalContent, MultimodalFile, NATIVE_AUTH_TOKEN_PARAM, NativeApp, NativeApps, Notification, NotificationAction, NotificationAgent, NotificationChannel, NotificationSetting, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, OgImageParams, OgImageType, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderSource, OrderStatus, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PermissionPresetName, PermissionPresetNames, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, ProgramSettings, Project, ProjectAspectRatio, ProjectAssembly, ProjectCaptionStyle, ProjectClipCandidate, ProjectClips, ProjectExport, ProjectExportAsset, ProjectExportResponse, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectSelectedClip, ProjectShot, ProjectSoundtrack, ProjectSourceMedia, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, ProjectTranscript, ProjectTranscriptSegment, Proposal, ProposalAction, ProposalActionPayment, ProposalActionPaymentSerializable, ProposalActionSerializable, ProposalPollOption, ProposalStatus, PublicFormResults, PurchaseOptions, PurchaseResult, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Return, type ReturnStatus, ReturnStatuses, ReturnUpdateStatus, ReturnUpdateStatuses, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, Segment, SegmentCondition, SegmentConditionType, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, SegmentGroup, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, SetKvEntryResult, ShippingRate, ShippingZone, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, StampResponse, StoreAgent, StoreCheckoutItem, StoreData, StoreEntityType, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, Streak, Subscription, SubscriptionDelivery, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, Swarm, Tag, TagType, Task, Team, TeamAccessCatalog, TeamAccessConfig, TeamBrand, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureAccess, TeamFeatureArea, TeamFeatureUsage, TeamManageAccess, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPlace, TeamPrivate, TeamSettings, TeamUsage, TeamViewAccess, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, ToggleKvFieldResult, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, UNIFIED_MCP_SERVER_NAME, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, type UserPermission, UserPermissions, UserPrivate, type UserRole, UserRoles, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExecutionBackend, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, addressTypeValues, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildMcpServerName, cartLineTotal, createCursorMcpInstallLink, defaultInviteTeamRole, fulfillmentMethodValues, fulfillmentStatusValues, getAgentSetupPromptUrl, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getFormsBaseUrl, getLoginUrl, getMcpServerAgentUrl, getMcpServerUrl, getSiteUrl, getSitesBaseUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, hasAllPermissions, hasAllTeamPermissions, hasAnyPermissions, hasPermission, hasTeamPermission, inviteableTeamRoles, isCompleteAddressInput, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, ogImageUrl, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, withRetry };
4424
+ export { Achievement, Address, AddressCreatePayload, AddressInput, AddressSnapshot, type AddressType, AddressTypes, AddressUpdatePayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSetupTarget, AgentSimple, AgentToolingAccess, AgentWalletMode, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppAccessRule, AppEnv, AppFile, AppFileType, AppIngestion, AppSetupTarget, AppendKvEntryResult, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentPolicySync, AppointmentRequest, AppointmentSlot, Artifact, ArtifactBlock, ArtifactBlockType, ArtifactContactSummary, ArtifactCreatePayload, ArtifactDeliverIntegration, ArtifactDeliverPayload, ArtifactDelivery, ArtifactLink, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AuthUser, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCategory, CampaignChannel, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignSkipReason, CampaignSkipReasons, CampaignStats, CampaignStatus, CampaignUpdatePayload, Card, Cart, CartItem, CartLine, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CheckoutSnapshot, CheckoutSnapshotRequest, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactConsent, ContactConsentStatus, ContactCreatePayload, ContactFormData, ContactHealth, ContactRelation, ContactRelationCategory, ContactRelationContact, ContactRelationDirection, ContactRelationPayload, ContactRelationType, ContactRelationUpdatePayload, ContactViewable, Content, ContentDefinition, ContentEntry, ContentField, ContentFieldType, ContentPatch, ContentStatus, ContentValue, ContentVersion, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, CouponCondition, CouponRestrictedItem, CouponRestrictedItemType, CreateContentInput, CreateHookPayload, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, DefaultCodeMetadata, DefaultInviteTeamRole, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, EarnResponse, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, Fulfillment, FulfillmentLocation, type FulfillmentMethod, FulfillmentMethods, type FulfillmentStatus, FulfillmentStatuses, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, GuestBuyer, HintOptions, HintPosition, Hook, HookSample, HookTrigger, HookTriggerCondition, HookTriggerInput, HttpService, IAppResponse, IHttpService, IRequestOptions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Integration, IntegrationConnectionDetails, IntegrationDetails, IntegrationMeta, IntegrationType, Intent, InviteableTeamRoles, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, KvEntry, KvEntryPayload, KvField, KvFieldWithEntries, KvValue, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, LoyaltyAccount, LoyaltyMember, LoyaltyNextTier, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyStatus, LoyaltyTier, LoyaltyTierInfo, LoyaltyTransaction, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAspectRatio, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingSummary, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Metric, MetricSource, MetricsResult, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MollieTerminalPaymentResult, MultimodalContent, MultimodalFile, NATIVE_AUTH_TOKEN_PARAM, NativeApp, NativeApps, Notification, NotificationAction, NotificationAgent, NotificationChannel, NotificationSetting, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, OgImageParams, OgImageType, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderSource, OrderStatus, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PermissionPresetName, PermissionPresetNames, PersonaQuestionable, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, ProgramSettings, Project, ProjectAspectRatio, ProjectAssembly, ProjectCaptionStyle, ProjectClipCandidate, ProjectClips, ProjectExport, ProjectExportAsset, ProjectExportResponse, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectSelectedClip, ProjectShot, ProjectSoundtrack, ProjectSourceMedia, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, ProjectTranscript, ProjectTranscriptSegment, Proposal, ProposalAction, ProposalActionPayment, ProposalActionPaymentSerializable, ProposalActionSerializable, ProposalPollOption, ProposalStatus, PublicFormResults, PurchaseOptions, PurchaseResult, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Return, type ReturnStatus, ReturnStatuses, ReturnUpdateStatus, ReturnUpdateStatuses, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, Segment, SegmentCondition, SegmentConditionType, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, SegmentGroup, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, SetKvEntryResult, ShippingRate, ShippingZone, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, StampResponse, StoreAgent, StoreCheckoutItem, StoreData, StoreEntityType, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, Streak, Subscription, SubscriptionDelivery, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, Swarm, Tag, TagType, Task, Team, TeamAccessCatalog, TeamAccessConfig, TeamBrand, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureAccess, TeamFeatureArea, TeamFeatureUsage, TeamManageAccess, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPlace, TeamPrivate, TeamSettings, TeamUsage, TeamViewAccess, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, ToggleKvFieldResult, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, UNIFIED_MCP_SERVER_NAME, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, type UserPermission, UserPermissions, UserPrivate, type UserRole, UserRoles, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExecutionBackend, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, addressTypeValues, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildMcpServerName, cartLineTotal, createCursorMcpInstallLink, defaultInviteTeamRole, fulfillmentMethodValues, fulfillmentStatusValues, getAgentSetupPromptUrl, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getFormsBaseUrl, getLoginUrl, getMcpServerAgentUrl, getMcpServerUrl, getSiteUrl, getSitesBaseUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, hasAllPermissions, hasAllTeamPermissions, hasAnyPermissions, hasPermission, hasTeamPermission, inviteableTeamRoles, isCompleteAddressInput, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, ogImageUrl, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, withRetry };
package/dist/index.mjs CHANGED
@@ -56,7 +56,7 @@ const getSitesRootDomain = (env) => {
56
56
  if (env === "testnet") return "testnet-sites.joai.ai";
57
57
  return "sites.joai.ai";
58
58
  };
59
- const getSiteUrl = (env, teamSlug, brandSlug) => `https://${getSitesRootDomain(env)}/${teamSlug}/${brandSlug}`;
59
+ const getSiteUrl = (env, teamSlug, slug) => `https://${getSitesRootDomain(env)}/${teamSlug}/${slug}`;
60
60
  //#endregion
61
61
  //#region src/auth/token.ts
62
62
  /** One-time native/deep-link handoff fragment key (exchanged for a Bearer via POST). */
@@ -80,6 +80,7 @@ interface IHttpService {
80
80
  onUnauthorized: (response: IAppResponse<any>) => void;
81
81
  onSuccessfulResponse: (response: IAppResponse<any>) => void;
82
82
  onMaintenanceMode: (response: IAppResponse<any>) => void;
83
+ onTooManyRequests: (response: IAppResponse<any>) => void;
83
84
  get: <T>(url: string, options?: IRequestOptions) => Promise<IAppResponse<T>>;
84
85
  post: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
85
86
  put: <T>(url: string, data?: any, options?: IRequestOptions) => Promise<IAppResponse<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joai/core",
3
- "version": "4.10.0",
3
+ "version": "4.11.0",
4
4
  "description": "JoAi shared types, HTTP service, and config",
5
5
  "license": "MIT",
6
6
  "type": "module",