@joai/core 4.12.0 → 4.13.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
@@ -305,6 +305,7 @@ type CheckoutSnapshot = {
305
305
  type GuestBuyer = {
306
306
  name: string;
307
307
  email: string;
308
+ phone?: string;
308
309
  };
309
310
  type CheckoutSnapshotRequest = {
310
311
  fulfillmentMethod: FulfillmentMethod;
@@ -375,6 +376,7 @@ type SubscriptionDelivery = {
375
376
  fulfillmentLocation?: {
376
377
  name: string;
377
378
  instructions: string | null;
379
+ address?: AddressSnapshot | null;
378
380
  } | null;
379
381
  };
380
382
  //#endregion
@@ -744,6 +746,7 @@ declare const NativeApps: {
744
746
  readonly Heartbeats: "heartbeats";
745
747
  readonly Wallets: "wallets";
746
748
  readonly Campaigns: "campaigns";
749
+ readonly Automations: "automations";
747
750
  readonly News: "news";
748
751
  readonly Sites: "sites";
749
752
  readonly Contracts: "contracts";
@@ -988,9 +991,10 @@ type AiCostsResponse = {
988
991
  //#endregion
989
992
  //#region src/billing/types.d.ts
990
993
  type TranslatableValue = Partial<Record<WarpLocale, string>>;
991
- type OrderStatus = 'pending' | 'completed' | 'delivered' | 'canceled';
994
+ type OrderStatus = 'pending' | 'confirmed' | 'processing' | 'shipped' | 'completed' | 'delivered' | 'canceled' | 'returned';
992
995
  type OrderSource = 'auto' | 'manual' | 'kiosk';
993
996
  type OrderType = 'order' | 'quote';
997
+ type OrderPriceMode = 'net' | 'gross';
994
998
  type SubscriptionStatus = 'active' | 'canceled' | 'past_due' | 'pending';
995
999
  type SubscriptionInterval = 'weekly' | 'biweekly' | 'monthly' | 'quarterly' | 'yearly';
996
1000
  type PricingModel = 'free' | 'one-time' | 'weekly' | 'biweekly' | 'monthly' | 'quarterly' | 'yearly' | 'per-run';
@@ -1229,6 +1233,7 @@ type Order = {
1229
1233
  source: OrderSource | null;
1230
1234
  context: OrderContext | null;
1231
1235
  paymentMode: string | null;
1236
+ priceMode?: OrderPriceMode | null;
1232
1237
  linkVariationId: string | null;
1233
1238
  notes: string | null;
1234
1239
  fulfillmentMethod?: FulfillmentMethod | null;
@@ -1238,6 +1243,7 @@ type Order = {
1238
1243
  fulfillmentLocation?: {
1239
1244
  name: string;
1240
1245
  instructions?: string | null;
1246
+ address?: AddressSnapshot | null;
1241
1247
  } | null;
1242
1248
  shippingFee?: number;
1243
1249
  fulfillments?: Fulfillment[];
@@ -2269,24 +2275,39 @@ type AppointmentRequest = {
2269
2275
  };
2270
2276
  //#endregion
2271
2277
  //#region src/automation/types.d.ts
2272
- type AutomationTriggerType = 'prop' | 'segment' | 'manual';
2273
- type AutomationActionType = 'wait' | 'send_email' | 'halt';
2274
- type AutomationSendMode = 'direct' | 'campaign';
2278
+ type AutomationTriggerType = 'prop' | 'segment' | 'manual' | 'webhook';
2279
+ type AutomationActionType = 'wait' | 'halt' | 'warp' | 'branch';
2275
2280
  type AutomationEnrollmentStatus = 'active' | 'completed' | 'skipped';
2281
+ type AutomationEnrollmentChange = 'created' | 'advanced' | 'sent' | 'completed' | 'skipped' | 'errored';
2276
2282
  type AutomationSkipReason = 'pending_consent' | 'opted_out' | 'missing_channel' | 'automation_disabled' | 'already_completed';
2283
+ declare const CONTACT_MESSAGE_SEND_WARP = "joai-contact-message-send";
2277
2284
  type AutomationTriggerConfig = {
2278
2285
  propKey?: string;
2279
2286
  propValue?: string | number | boolean;
2280
2287
  segmentId?: string;
2288
+ source?: string;
2289
+ trigger?: {
2290
+ event?: string;
2291
+ when?: Array<{
2292
+ path: string;
2293
+ operator: string;
2294
+ value?: unknown;
2295
+ }>;
2296
+ inputs?: Record<string, unknown>;
2297
+ };
2298
+ hookId?: string;
2281
2299
  };
2282
2300
  type AutomationActionConfig = {
2283
2301
  delayMinutes?: number;
2284
- sendMode?: AutomationSendMode;
2285
- campaignId?: string;
2286
- subject?: string;
2287
- body?: string;
2288
- contentHtml?: boolean;
2289
- sentPropKey?: string;
2302
+ warpId?: string;
2303
+ inputs?: Record<string, unknown>;
2304
+ when?: Array<{
2305
+ path: string;
2306
+ operator: string;
2307
+ value?: unknown;
2308
+ }>;
2309
+ thenPosition?: number;
2310
+ elsePosition?: number;
2290
2311
  [key: string]: unknown;
2291
2312
  };
2292
2313
  type AutomationAction = {
@@ -2303,6 +2324,10 @@ type Automation = {
2303
2324
  enabled: boolean;
2304
2325
  agent: AgentSimple | null;
2305
2326
  actions?: AutomationAction[];
2327
+ activeEnrollmentsCount?: number;
2328
+ completedEnrollmentsCount?: number;
2329
+ skippedEnrollmentsCount?: number;
2330
+ erroredEnrollmentsCount?: number;
2306
2331
  createdAt: string;
2307
2332
  updatedAt: string;
2308
2333
  };
@@ -2327,6 +2352,13 @@ type AutomationEnrollment = {
2327
2352
  createdAt: string;
2328
2353
  updatedAt: string;
2329
2354
  };
2355
+ type AutomationEnrollmentUpdatedPayload = {
2356
+ team?: string;
2357
+ change: AutomationEnrollmentChange;
2358
+ automationId?: string;
2359
+ automationName?: string;
2360
+ enrollment: AutomationEnrollment;
2361
+ };
2330
2362
  type AutomationActionInput = {
2331
2363
  type: AutomationActionType;
2332
2364
  config?: AutomationActionConfig;
@@ -2348,8 +2380,53 @@ type AutomationUpdatePayload = {
2348
2380
  };
2349
2381
  type AutomationAudiencePreview = {
2350
2382
  count: number;
2383
+ total: number;
2384
+ sendable: number;
2385
+ willSkip: number;
2386
+ reasons: Record<'pending_consent' | 'opted_out' | 'missing_channel', number>;
2351
2387
  sampleContactIds: string[];
2352
- };
2388
+ channel: string | null;
2389
+ };
2390
+ type AutomationStats = {
2391
+ totalAutomations: number;
2392
+ enabledAutomations: number;
2393
+ activeEnrollments: number;
2394
+ emailsSent: number;
2395
+ completedEnrollments: number;
2396
+ erroredEnrollments: number;
2397
+ };
2398
+ declare function isContactMessageWarpId(warpId?: string | null): boolean;
2399
+ declare function isContactMessageAction(action: {
2400
+ type: string;
2401
+ config?: {
2402
+ warpId?: string;
2403
+ };
2404
+ }): boolean;
2405
+ declare function normalizeAutomationActionType(type: string): AutomationActionType;
2406
+ //#endregion
2407
+ //#region src/outbound/channels.d.ts
2408
+ /** Outbound channels used across campaigns and automations. */
2409
+ type OutboundChannelId = 'email' | 'whatsapp' | 'whatsapp-personal' | 'sms' | 'push';
2410
+ type OutboundChannel = {
2411
+ id: OutboundChannelId;
2412
+ supportsHtml: boolean;
2413
+ requiresSubject: boolean;
2414
+ settingsKey?: keyof AgentSettings;
2415
+ };
2416
+ declare const OUTBOUND_CHANNELS: OutboundChannel[];
2417
+ type AutomationSendChannelId = 'email' | 'whatsapp-personal';
2418
+ type CampaignChannelId = 'email' | 'whatsapp' | 'sms' | 'push';
2419
+ type AutomationSendChannel = OutboundChannel & {
2420
+ id: AutomationSendChannelId;
2421
+ };
2422
+ declare const AUTOMATION_SEND_CHANNELS: AutomationSendChannel[];
2423
+ declare const CAMPAIGN_CHANNELS: CampaignChannelId[];
2424
+ declare function automationSendChannel(id: unknown): AutomationSendChannel;
2425
+ declare function isAutomationSendChannelId(id: unknown): id is AutomationSendChannelId;
2426
+ declare function isCampaignChannelId(id: unknown): id is CampaignChannelId;
2427
+ declare function outboundChannel(id: unknown): OutboundChannel;
2428
+ /** Integration settings slug for a channel (sms → twilio). */
2429
+ declare function integrationSlugForChannel(channel: string): string;
2353
2430
  //#endregion
2354
2431
  //#region src/content/types.d.ts
2355
2432
  type ContentStatus = 'draft' | 'published' | 'archived';
@@ -2411,6 +2488,9 @@ type PatchContentInput = {
2411
2488
  origin?: 'api' | 'inlineEditor' | 'joai' | 'mcp';
2412
2489
  };
2413
2490
  //#endregion
2491
+ //#region src/address/formatAddressSnapshot.d.ts
2492
+ declare const formatAddressSnapshotLines: (address: AddressSnapshot | null | undefined) => string[];
2493
+ //#endregion
2414
2494
  //#region src/commerce/helpers.d.ts
2415
2495
  type CartLine = {
2416
2496
  price: number;
@@ -2874,11 +2954,17 @@ type AppSetupTarget = {
2874
2954
  appSlug: string;
2875
2955
  mcpUrl: string;
2876
2956
  };
2957
+ type FeatureSetupTarget = {
2958
+ featureName?: string;
2959
+ taskHint?: string;
2960
+ };
2877
2961
  declare const UNIFIED_MCP_SERVER_NAME = "joai";
2878
2962
  declare const isUnifiedMcpUrl: (mcpUrl: string) => boolean;
2879
2963
  declare const getAgentSetupPromptUrl: (env: AppEnv) => string;
2880
2964
  declare const buildAgentSetupClipboardText: (env: AppEnv, target: AgentSetupTarget) => string;
2881
2965
  declare const buildAppSetupClipboardText: (env: AppEnv, target: AppSetupTarget) => string;
2966
+ /** Marketing / public pages: no known agent yet — unified MCP + OAuth agent pick. */
2967
+ declare const buildFeatureSetupClipboardText: (env: AppEnv, target?: FeatureSetupTarget) => string;
2882
2968
  declare const createCursorMcpInstallLink: (mcpServerUrl: string, serverName: string) => string;
2883
2969
  /** Default owner/connect MCP URL. Optional agent UUID soft-prefills OAuth via `?agent=`. */
2884
2970
  declare const resolveConnectMcpUrl: (env: AppEnv, mcpEndpoint?: string | null, preferredAgentUuid?: string | null) => string;
@@ -3846,6 +3932,8 @@ type SiteAgent = {
3846
3932
  type Site = {
3847
3933
  id: number;
3848
3934
  slug: string;
3935
+ name: string | null;
3936
+ url: string | null;
3849
3937
  brandSlug: string | null;
3850
3938
  customDomain: string | null;
3851
3939
  enabled: boolean;
@@ -4084,7 +4172,7 @@ type SegmentCountResult = {
4084
4172
  };
4085
4173
  //#endregion
4086
4174
  //#region src/campaign/types.d.ts
4087
- type CampaignChannel = 'email' | 'whatsapp' | 'sms' | 'push';
4175
+ type CampaignChannel = CampaignChannelId;
4088
4176
  type CampaignStatus = 'draft' | 'pending' | 'approved' | 'rejected' | 'scheduled' | 'sending' | 'completed' | 'failed';
4089
4177
  type CampaignCategory = 'MARKETING' | 'UTILITY' | 'AUTHENTICATION';
4090
4178
  type CampaignSkipReason = 'pending_consent' | 'opted_out' | 'missing_channel' | 'approval_skipped';
@@ -4350,10 +4438,10 @@ type HookTriggerCondition = {
4350
4438
  value?: unknown;
4351
4439
  };
4352
4440
  type HookTriggerInput = string | {
4353
- source: 'payload';
4441
+ source: 'payload' | 'contact' | 'enrollment';
4354
4442
  path: string;
4355
4443
  } | {
4356
- source: 'literal';
4444
+ source: 'literal' | 'static';
4357
4445
  value: unknown;
4358
4446
  };
4359
4447
  type HookTrigger = {
@@ -4504,4 +4592,4 @@ type CliSessionStatus = {
4504
4592
  meta: CliSessionMeta | null;
4505
4593
  };
4506
4594
  //#endregion
4507
- 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, Automation, AutomationAction, AutomationActionConfig, AutomationActionInput, AutomationActionType, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationEnrollmentStatus, AutomationSendMode, AutomationSkipReason, AutomationTriggerConfig, AutomationTriggerType, AutomationUpdatePayload, 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 };
4595
+ export { AUTOMATION_SEND_CHANNELS, 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, Automation, AutomationAction, AutomationActionConfig, AutomationActionInput, AutomationActionType, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationEnrollmentChange, AutomationEnrollmentStatus, AutomationEnrollmentUpdatedPayload, AutomationSendChannel, AutomationSendChannelId, AutomationSkipReason, AutomationStats, AutomationTriggerConfig, AutomationTriggerType, AutomationUpdatePayload, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CAMPAIGN_CHANNELS, CONTACT_MESSAGE_SEND_WARP, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCategory, CampaignChannel, CampaignChannelId, 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, FeatureSetupTarget, 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, OUTBOUND_CHANNELS, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, OgImageParams, OgImageType, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderPriceMode, OrderSource, OrderStatus, OrderType, OutboundChannel, OutboundChannelId, 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, automationSendChannel, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildFeatureSetupClipboardText, buildMcpServerName, cartLineTotal, createCursorMcpInstallLink, defaultInviteTeamRole, formatAddressSnapshotLines, 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, integrationSlugForChannel, inviteableTeamRoles, isAutomationSendChannelId, isCampaignChannelId, isCompleteAddressInput, isContactMessageAction, isContactMessageWarpId, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, normalizeAutomationActionType, ogImageUrl, outboundChannel, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, withRetry };
package/dist/index.mjs CHANGED
@@ -283,6 +283,69 @@ function resolveWarpText(text, locale = "en") {
283
283
  return text[locale] ?? text.en ?? Object.values(text)[0] ?? "";
284
284
  }
285
285
  //#endregion
286
+ //#region src/automation/types.ts
287
+ const CONTACT_MESSAGE_SEND_WARP = "joai-contact-message-send";
288
+ function isContactMessageWarpId(warpId) {
289
+ if (!warpId) return false;
290
+ return warpId.replace(/^@/, "").split("?")[0] === CONTACT_MESSAGE_SEND_WARP;
291
+ }
292
+ function isContactMessageAction(action) {
293
+ return action.type === "warp" && isContactMessageWarpId(action.config?.warpId);
294
+ }
295
+ function normalizeAutomationActionType(type) {
296
+ if (type === "wait" || type === "halt" || type === "warp" || type === "branch") return type;
297
+ return "halt";
298
+ }
299
+ //#endregion
300
+ //#region src/outbound/channels.ts
301
+ const OUTBOUND_CHANNELS = [
302
+ {
303
+ id: "email",
304
+ supportsHtml: true,
305
+ requiresSubject: true,
306
+ settingsKey: "email_provider"
307
+ },
308
+ {
309
+ id: "whatsapp",
310
+ supportsHtml: false,
311
+ requiresSubject: false
312
+ },
313
+ {
314
+ id: "whatsapp-personal",
315
+ supportsHtml: false,
316
+ requiresSubject: false
317
+ },
318
+ {
319
+ id: "sms",
320
+ supportsHtml: false,
321
+ requiresSubject: false
322
+ },
323
+ {
324
+ id: "push",
325
+ supportsHtml: false,
326
+ requiresSubject: true
327
+ }
328
+ ];
329
+ const AUTOMATION_SEND_CHANNELS = OUTBOUND_CHANNELS.filter((channel) => channel.id === "email" || channel.id === "whatsapp-personal");
330
+ const CAMPAIGN_CHANNELS = OUTBOUND_CHANNELS.map((channel) => channel.id).filter((id) => id !== "whatsapp-personal");
331
+ const defaultAutomationSendChannel = AUTOMATION_SEND_CHANNELS[0];
332
+ function automationSendChannel(id) {
333
+ return AUTOMATION_SEND_CHANNELS.find((channel) => channel.id === id) ?? defaultAutomationSendChannel;
334
+ }
335
+ function isAutomationSendChannelId(id) {
336
+ return typeof id === "string" && AUTOMATION_SEND_CHANNELS.some((channel) => channel.id === id);
337
+ }
338
+ function isCampaignChannelId(id) {
339
+ return typeof id === "string" && CAMPAIGN_CHANNELS.includes(id);
340
+ }
341
+ function outboundChannel(id) {
342
+ return OUTBOUND_CHANNELS.find((channel) => channel.id === id) ?? OUTBOUND_CHANNELS[0];
343
+ }
344
+ /** Integration settings slug for a channel (sms → twilio). */
345
+ function integrationSlugForChannel(channel) {
346
+ return channel === "sms" ? "twilio" : channel;
347
+ }
348
+ //#endregion
286
349
  //#region src/address/enums.ts
287
350
  const AddressTypes = {
288
351
  Billing: "billing",
@@ -290,6 +353,19 @@ const AddressTypes = {
290
353
  };
291
354
  const addressTypeValues = Object.values(AddressTypes);
292
355
  //#endregion
356
+ //#region src/address/formatAddressSnapshot.ts
357
+ const formatAddressSnapshotLines = (address) => {
358
+ if (!address) return [];
359
+ return [
360
+ address.company,
361
+ address.addressOne,
362
+ address.addressTwo,
363
+ [address.zipCode, address.city].filter(Boolean).join(" "),
364
+ address.state,
365
+ address.country
366
+ ].filter((line) => !!line && line.trim().length > 0);
367
+ };
368
+ //#endregion
293
369
  //#region src/commerce/enums.ts
294
370
  const FulfillmentStatuses = {
295
371
  Pending: "pending",
@@ -411,6 +487,25 @@ const buildAppSetupClipboardText = (env, target) => {
411
487
  `- MCP: ${target.mcpUrl}`
412
488
  ].join("\n");
413
489
  };
490
+ /** Marketing / public pages: no known agent yet — unified MCP + OAuth agent pick. */
491
+ const buildFeatureSetupClipboardText = (env, target = {}) => {
492
+ const promptUrl = getAgentSetupPromptUrl(env);
493
+ const mcpUrl = resolveConnectMcpUrl(env);
494
+ const featureName = target.featureName?.trim();
495
+ const lines = [
496
+ `Fetch and execute the appropriate instructions to set me up for JoAi from ${promptUrl}`,
497
+ "",
498
+ "Connect me to JoAi MCP:",
499
+ `- MCP: ${mcpUrl}`,
500
+ "",
501
+ "Authenticate with OAuth when asked. If you don’t have an agent yet, create and name one there. Pick my team and agent during login.",
502
+ "",
503
+ featureName ? `Once connected, help me with JoAi ${featureName}.` : "Once connected, help me run JoAi."
504
+ ];
505
+ if (target.taskHint?.trim()) lines.push(target.taskHint.trim());
506
+ lines.push(featureName ? "Install the app if its tools are missing." : "Install apps if their tools are missing.");
507
+ return lines.join("\n");
508
+ };
414
509
  const createCursorMcpInstallLink = (mcpServerUrl, serverName) => {
415
510
  const configJson = JSON.stringify({ url: mcpServerUrl });
416
511
  const encodedConfig = encodeURIComponent(btoa(configJson));
@@ -517,6 +612,7 @@ const NativeApps = {
517
612
  Heartbeats: "heartbeats",
518
613
  Wallets: "wallets",
519
614
  Campaigns: "campaigns",
615
+ Automations: "automations",
520
616
  News: "news",
521
617
  Sites: "sites",
522
618
  Contracts: "contracts",
@@ -618,4 +714,4 @@ const DefaultInviteTeamRole = UserRoles.Member;
618
714
  const inviteableTeamRoles = () => [...InviteableTeamRoles];
619
715
  const defaultInviteTeamRole = () => DefaultInviteTeamRole;
620
716
  //#endregion
621
- export { AddressTypes, AgentToolingAccess, BillingManageAccess, ContractCategoryDisplayNames, DefaultCodeMetadata, DefaultInviteTeamRole, FulfillmentMethods, FulfillmentStatuses, HttpService, InviteableTeamRoles, JoaiUrls, NATIVE_AUTH_TOKEN_PARAM, NativeApps, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, OgImageColors, PeriodTypeLabels, PeriodTypeOptions, PermissionPresetNames, ReturnStatuses, ReturnUpdateStatuses, SkillMediaBindingRole, SkillScope, SkillType, TeamManageAccess, TeamViewAccess, UNIFIED_MCP_SERVER_NAME, UserPermissions, UserRoles, 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 };
717
+ export { AUTOMATION_SEND_CHANNELS, AddressTypes, AgentToolingAccess, BillingManageAccess, CAMPAIGN_CHANNELS, CONTACT_MESSAGE_SEND_WARP, ContractCategoryDisplayNames, DefaultCodeMetadata, DefaultInviteTeamRole, FulfillmentMethods, FulfillmentStatuses, HttpService, InviteableTeamRoles, JoaiUrls, NATIVE_AUTH_TOKEN_PARAM, NativeApps, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, OUTBOUND_CHANNELS, OgImageColors, PeriodTypeLabels, PeriodTypeOptions, PermissionPresetNames, ReturnStatuses, ReturnUpdateStatuses, SkillMediaBindingRole, SkillScope, SkillType, TeamManageAccess, TeamViewAccess, UNIFIED_MCP_SERVER_NAME, UserPermissions, UserRoles, abbreviateNumber, addressTypeValues, automationSendChannel, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildFeatureSetupClipboardText, buildMcpServerName, cartLineTotal, createCursorMcpInstallLink, defaultInviteTeamRole, formatAddressSnapshotLines, 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, integrationSlugForChannel, inviteableTeamRoles, isAutomationSendChannelId, isCampaignChannelId, isCompleteAddressInput, isContactMessageAction, isContactMessageWarpId, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, normalizeAutomationActionType, ogImageUrl, outboundChannel, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, withRetry };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joai/core",
3
- "version": "4.12.0",
3
+ "version": "4.13.0",
4
4
  "description": "JoAi shared types, HTTP service, and config",
5
5
  "license": "MIT",
6
6
  "type": "module",