@joai/sdk 5.0.0 → 7.0.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,5 +1,5 @@
1
1
  import * as _$_joai_core0 from "@joai/core";
2
- import { Address, AddressCreatePayload, AddressInput, AddressType, AddressUpdatePayload, Affiliate, AffiliateTier, Agent, AgentActionHistoryEntry, AgentPrivate, AgentSettings, AiCostsResponse, Alert, ApiToken, AppEnv, AppIngestion, AppendKvEntryResult, AppointmentAvailability, AppointmentBooking, AppointmentPolicy, AppointmentRequest, Artifact, ArtifactCreatePayload, ArtifactDeliverPayload, ArtifactDelivery, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AuthUser, AuthUser as AuthUser$1, Automation, AutomationActionInput, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationStats, AutomationUpdatePayload, Blueprint, BlueprintSettings, BrandBackend, BrandSiteConfig, BrandSourceConfig, CalendarStatus, Campaign, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignStats, CampaignUpdatePayload, Card, Cart, Cart as Cart$1, ChangelogEntry, Character, CheckoutSnapshot, CheckoutSnapshot as CheckoutSnapshot$1, CheckoutSnapshotRequest, CommissionAgreement, Configuration, Contact, ContactActivity, ContactCreatePayload, ContactFormData, ContactRelation, ContactRelationPayload, ContactRelationUpdatePayload, Content, ContentVersion, Contract, ContractCategoryName, ContractVersion, Coupon, CouponCondition, CouponRestrictedItem, CreateContentInput, CreateHookPayload, CreateHookPayload as CreateHookPayload$1, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, Document, EarnResponse, Element, ElementSpec, ElementVariation, EmbedStatus, Entity, Flow, Fulfillment, FulfillmentLocation, FulfillmentLocation as FulfillmentLocation$1, FulfillmentMethod, GamificationData, Goal, GoalCreatePayload, GuestBuyer, GuestBuyer as GuestBuyer$1, Hook, Hook as Hook$1, HookSample, HookSample as HookSample$1, HookTrigger, HookTriggerCondition, HookTriggerInput, IAppResponse, IHttpService, IRequestOptions, Inquiry, InquiryType, Integration, IntegrationType, Intent, Item, ItemCreatePayload, ItemUpdatePayload, JsonValue, KvEntryPayload, KvField, KvFieldWithEntries, Link, LinkCreatePayload, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LoyaltyAccount, LoyaltyMember, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyTier, LoyaltyTransaction, McpToolCall, Media, MediaAspectRatio, Meeting, MeetingJoinInfo, MeetingSpeakerAssignment, MeetingSummary, Memory, Message, MetricSource, MetricsResult, Mission, MissionCreatePayload, Notification, NotificationChannel, NotificationSetting, OfficeSnapshot, Order, Order as Order$1, OrderContext, OrderPriceMode, OrderPriceMode as OrderPriceMode$1, OrderStatus, OrderStatus as OrderStatus$1, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, Plan, PlanFeature, Product, Product as Product$1, ProductRelation, ProductVariation, ProgramSettings, Project, ProjectExportResponse, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectStudioHistoryEntry, Proposal, ProposalAction, ProposalPollOption, PublicFormResults, PurchaseResult, RampProviderInfo, Reactions, RedeemResponse, Reminder, Return, ReturnStatus, Room, RoomKind, Segment, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, Service, SetKvEntryResult, ShippingRate, ShippingRate as ShippingRate$1, ShippingZone, Shortcut, Site, SiteBrand, Skill, SkillScopeValue, SocialAuthProvider, SocialBot, SocialPlatform, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPrivate, TeamUsage, TerminalConnectionToken, TerminalPaymentIntent, ToggleKvFieldResult, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeStatus, UserPrivate, UserRole, UserSettings, VolumePrice, WarpBackend, WarpBackendStatus, WarpExecutionBackend, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceInfo, XIntegrationStatus } from "@joai/core";
2
+ import { Address, AddressCreatePayload, AddressInput, AddressType, AddressUpdatePayload, Affiliate, AffiliateTier, Agent, AgentActionHistoryEntry, AgentPrivate, AgentSettings, AgentTrustedActionRule, AiCostsResponse, Alert, ApiToken, AppEnv, AppIngestion, AppendKvEntryResult, AppointmentAvailability, AppointmentBooking, AppointmentPolicy, AppointmentRequest, Artifact, ArtifactCreatePayload, ArtifactDeliverPayload, ArtifactDelivery, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AuthUser, AuthUser as AuthUser$1, Automation, AutomationActionInput, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationStats, AutomationUpdatePayload, Blueprint, BlueprintSettings, BrandBackend, BrandSiteConfig, BrandSourceConfig, CalendarStatus, Campaign, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignStats, CampaignUpdatePayload, Card, Cart, Cart as Cart$1, ChangelogEntry, Character, CheckoutSnapshot, CheckoutSnapshot as CheckoutSnapshot$1, CheckoutSnapshotRequest, CommissionAgreement, Configuration, Contact, ContactActivity, ContactCreatePayload, ContactFormData, ContactRelation, ContactRelationPayload, ContactRelationUpdatePayload, Content, ContentVersion, Contract, ContractCategoryName, ContractVersion, Coupon, CouponCondition, CouponRestrictedItem, CreateContentInput, CreateHookPayload, CreateHookPayload as CreateHookPayload$1, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, Document, EarnResponse, Element, ElementSpec, ElementVariation, EmbedStatus, Entity, Flow, Fulfillment, FulfillmentLocation, FulfillmentLocation as FulfillmentLocation$1, FulfillmentMethod, GamificationData, Goal, GoalCreatePayload, GuestBuyer, GuestBuyer as GuestBuyer$1, Hook, Hook as Hook$1, HookSample, HookSample as HookSample$1, HookTrigger, HookTriggerCondition, HookTriggerInput, IAppResponse, IHttpService, IRequestOptions, Inquiry, InquiryType, Integration, IntegrationType, Intent, Item, ItemCreatePayload, ItemUpdatePayload, JsonValue, KvEntryPayload, KvField, KvFieldWithEntries, Link, LinkCreatePayload, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LoyaltyAccount, LoyaltyMember, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyTier, LoyaltyTransaction, McpToolCall, Media, MediaAspectRatio, Meeting, MeetingJoinInfo, MeetingSpeakerAssignment, MeetingSummary, Memory, Message, MetricSource, MetricsResult, Mission, MissionCreatePayload, Notification, NotificationChannel, NotificationSetting, OfficeSnapshot, Order, Order as Order$1, OrderContext, OrderPriceMode, OrderPriceMode as OrderPriceMode$1, OrderStatus, OrderStatus as OrderStatus$1, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, Plan, PlanFeature, Product, Product as Product$1, ProductRelation, ProductVariation, ProgramSettings, Project, ProjectExportResponse, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectStudioHistoryEntry, Proposal, ProposalAction, ProposalPollOption, PublicFormResults, PurchaseResult, RampProviderInfo, Reactions, RedeemResponse, Reminder, Return, ReturnStatus, Room, RoomKind, Segment, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, Service, SetKvEntryResult, ShippingRate, ShippingRate as ShippingRate$1, ShippingZone, Shortcut, Site, SiteBrand, SiteType, Skill, SkillScopeValue, SocialAuthProvider, SocialBot, SocialPlatform, SocialPost, SocialPostConnection, SocialPostCreatePayload, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPrivate, TeamUsage, TerminalConnectionToken, TerminalPaymentIntent, ToggleKvFieldResult, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeStatus, UserPrivate, UserRole, UserSettings, VolumePrice, WarpBackend, WarpBackendStatus, WarpExecutionBackend, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceInfo, XIntegrationStatus } from "@joai/core";
3
3
  import { WarpChainName, WarpClient, WarpLocale, WarpText, WarpWalletProvider } from "@joai/warps";
4
4
 
5
5
  //#region src/resources/agents.d.ts
@@ -43,6 +43,12 @@ declare class AgentsResource {
43
43
  error?: string;
44
44
  meta?: Record<string, any>;
45
45
  }): Promise<_$_joai_core0.IAppResponse<unknown>>;
46
+ listTrustedActions(uuid: string): Promise<_$_joai_core0.IAppResponse<{
47
+ rules: AgentTrustedActionRule[];
48
+ }>>;
49
+ removeTrustedAction(uuid: string, ruleId: string): Promise<_$_joai_core0.IAppResponse<{
50
+ rules: AgentTrustedActionRule[];
51
+ }>>;
46
52
  }
47
53
  //#endregion
48
54
  //#region src/address/addresses.d.ts
@@ -182,11 +188,16 @@ type GuestCheckoutDraft<TCart = unknown> = {
182
188
  fulfillmentMethod: FulfillmentMethod;
183
189
  shippingRateId: number | null;
184
190
  fulfillmentLocationId: number | null;
191
+ couponCode?: string | null;
185
192
  };
186
193
  type GuestCommerceStorageOptions = {
187
194
  namespace: string;
188
195
  maxOrders?: number;
189
196
  };
197
+ declare function buildGuestOrderReturnUrl(ordersPageUrl: string, orderId: string, accessToken: string): string;
198
+ declare function readGuestOrderReturnAccess(search: string | URLSearchParams): GuestOrderAccess | null;
199
+ declare function stripGuestOrderReturnToken(pathname: string, search: string | URLSearchParams): string;
200
+ type GuestCommerceStorage = ReturnType<typeof createGuestCommerceStorage>;
190
201
  declare function createGuestCommerceStorage(options: GuestCommerceStorageOptions): {
191
202
  saveCheckoutDraft<TCart>(draft: GuestCheckoutDraft<TCart>): void;
192
203
  readCheckoutDraft<TCart>(fallback: GuestCheckoutDraft<TCart>): GuestCheckoutDraft<TCart>;
@@ -195,7 +206,10 @@ declare function createGuestCommerceStorage(options: GuestCommerceStorageOptions
195
206
  accessToken
196
207
  }: GuestOrderAccess): void;
197
208
  readOrderAccess(orderId: string): string | null;
198
- listOrderAccess(): GuestOrderAccess[];
209
+ listOrderAccess(): GuestOrderAccess[]; /** Absolute shop URL from a path or full URL (e.g. orders page). */
210
+ shopUrl(ordersPage: string): string; /** Thank-you → shop handoff URL with capability token query params. */
211
+ orderReturnUrl(ordersPage: string, orderId: string, accessToken: string): string; /** Persist `order` + `orderAccessToken` from the shop handoff query, then strip the token. */
212
+ claimOrderReturn(): GuestOrderAccess | null;
199
213
  };
200
214
  //#endregion
201
215
  //#region src/commerce/guestCheckout.d.ts
@@ -279,7 +293,8 @@ type PlaceGuestCheckoutOrderResult = {
279
293
  *
280
294
  * When `pay` is enabled (default), `paymentUrl` is only set from a successful `orders.pay`
281
295
  * response. `order.paymentUrl` from create is the JoAi thank-you URL and must not be used
282
- * as a gateway redirect.
296
+ * as a gateway redirect. After payment, the thank-you page redirects to the team's shop
297
+ * site URL when one is configured (`sites.type = shop`).
283
298
  */
284
299
  declare function placeGuestCheckoutOrder(options: {
285
300
  client: GuestCheckoutClient;
@@ -468,6 +483,7 @@ declare class AppointmentsResource {
468
483
  timezone?: string;
469
484
  attendeeEmail?: string;
470
485
  attendeeName?: string;
486
+ contactIds?: string[];
471
487
  attendees?: {
472
488
  email: string;
473
489
  name?: string;
@@ -1293,7 +1309,7 @@ declare class OrdersResource {
1293
1309
  pay(id: string, provider?: PaymentProvider, accessToken?: string): Promise<_$_joai_core0.IAppResponse<{
1294
1310
  url: string;
1295
1311
  }>>;
1296
- notify(id: string, type?: string): Promise<_$_joai_core0.IAppResponse<{
1312
+ notify(id: string, type: string | undefined, agentId: string): Promise<_$_joai_core0.IAppResponse<{
1297
1313
  message: string;
1298
1314
  }>>;
1299
1315
  }
@@ -1494,6 +1510,7 @@ declare class SitesResource {
1494
1510
  create(teamSlug: string, data: {
1495
1511
  name: string;
1496
1512
  url?: string | null;
1513
+ type?: SiteType;
1497
1514
  contactId?: string | null;
1498
1515
  metricsSource?: string | null;
1499
1516
  metricsResource?: string | null;
@@ -1510,6 +1527,7 @@ declare class SitesResource {
1510
1527
  modules?: string[];
1511
1528
  name?: string | null;
1512
1529
  url?: string | null;
1530
+ type?: SiteType;
1513
1531
  contactId?: string | null;
1514
1532
  metricsSource?: string | null;
1515
1533
  metricsResource?: string | null;
@@ -1826,6 +1844,23 @@ declare class UpdatesResource {
1826
1844
  stats(): Promise<_$_joai_core0.IAppResponse<UpdateStats>>;
1827
1845
  }
1828
1846
  //#endregion
1847
+ //#region src/resources/social-posts.d.ts
1848
+ declare class SocialPostsResource {
1849
+ private readonly http;
1850
+ constructor(http: IHttpService);
1851
+ connections(): Promise<_$_joai_core0.IAppResponse<SocialPostConnection[]>>;
1852
+ list(params?: {
1853
+ status?: SocialPostStatus;
1854
+ platform?: SocialPostPlatform;
1855
+ }): Promise<_$_joai_core0.IAppResponse<SocialPost[]>>;
1856
+ create(payload: SocialPostCreatePayload): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1857
+ update(id: string, payload: SocialPostUpdatePayload): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1858
+ schedule(id: string, scheduledAt?: string | null): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1859
+ cancel(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1860
+ retry(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1861
+ delete(id: string): Promise<_$_joai_core0.IAppResponse<void>>;
1862
+ }
1863
+ //#endregion
1829
1864
  //#region src/resources/upgrades.d.ts
1830
1865
  declare class UpgradesResource {
1831
1866
  private readonly http;
@@ -2127,6 +2162,7 @@ declare class JoAiClient {
2127
2162
  readonly automations: AutomationsResource;
2128
2163
  readonly segments: SegmentsResource;
2129
2164
  readonly updates: UpdatesResource;
2165
+ readonly socialPosts: SocialPostsResource;
2130
2166
  readonly upgrades: UpgradesResource;
2131
2167
  readonly users: UsersResource;
2132
2168
  readonly voice: VoiceResource;
@@ -2204,4 +2240,4 @@ declare class DistributionResource {
2204
2240
  private fetchDistribution;
2205
2241
  }
2206
2242
  //#endregion
2207
- export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, type AttachedMedia, type AuthConfirmCodeRequest, type AuthConfirmCodeResponse, type AuthNativeSessionResponse, type AuthPortalSessionResponse, AuthResource, type AuthSendCodeRequest, type AuthUser, AutomationsResource, type BackendWarp, type BackendWarpBrand, BillingResource, BlueprintsResource, type CacheConfig, CachedHttpService, CampaignsResource, CardsResource, type Cart, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, type CheckoutSnapshot, CommerceResource, ContactsResource, ContentResource, ContractsResource, type CreateEmptyGuestCheckoutOptions, type CreateHookPayload, type CreateInboundHookPayload, type CreateInternalHookPayload, type CreateWarpLinkedHookPayload, type CreateWebHookPayload, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, type FulfillmentLocation, type FulfillmentLocationInput, FulfillmentsResource, GoalsResource, type GuestBuyer, type GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorageOptions, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, ItemsResource, JoAiClient, type JoAiClientConfig, KvResource, LinksResource, LoyaltyResource, McpResource, type MediaUploadType, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, type OpenPortalSessionOptions, type OpeningHoursEntry, type OpeningHoursFormatOptions, type Order, type OrderPriceMode, type OrderStatus, OrdersResource, PersonaResource, type PlaceCheckoutOrderRequest, type PlaceGuestCheckoutOrderResult, type Product, type ProductVariation, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, SegmentsResource, ServicesResource, type ShippingRate, type ShippingRateInput, ShippingResource, type ShippingZoneInput, ShortcutsResource, SitesResource, SkillsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, type TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, sanitizePortalCallbackUrl, toGuestCheckoutDraft };
2243
+ export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, type AttachedMedia, type AuthConfirmCodeRequest, type AuthConfirmCodeResponse, type AuthNativeSessionResponse, type AuthPortalSessionResponse, AuthResource, type AuthSendCodeRequest, type AuthUser, AutomationsResource, type BackendWarp, type BackendWarpBrand, BillingResource, BlueprintsResource, type CacheConfig, CachedHttpService, CampaignsResource, CardsResource, type Cart, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, type CheckoutSnapshot, CommerceResource, ContactsResource, ContentResource, ContractsResource, type CreateEmptyGuestCheckoutOptions, type CreateHookPayload, type CreateInboundHookPayload, type CreateInternalHookPayload, type CreateWarpLinkedHookPayload, type CreateWebHookPayload, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, type FulfillmentLocation, type FulfillmentLocationInput, FulfillmentsResource, GoalsResource, type GuestBuyer, type GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorage, type GuestCommerceStorageOptions, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, ItemsResource, JoAiClient, type JoAiClientConfig, KvResource, LinksResource, LoyaltyResource, McpResource, type MediaUploadType, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, type OpenPortalSessionOptions, type OpeningHoursEntry, type OpeningHoursFormatOptions, type Order, type OrderPriceMode, type OrderStatus, OrdersResource, PersonaResource, type PlaceCheckoutOrderRequest, type PlaceGuestCheckoutOrderResult, type Product, type ProductVariation, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, SegmentsResource, ServicesResource, type ShippingRate, type ShippingRateInput, ShippingResource, type ShippingZoneInput, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, type TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft };
package/dist/index.mjs CHANGED
@@ -88,6 +88,12 @@ var AgentsResource = class {
88
88
  result
89
89
  });
90
90
  }
91
+ listTrustedActions(uuid) {
92
+ return this.http.get(`agents/${uuid}/trusted-actions`);
93
+ }
94
+ removeTrustedAction(uuid, ruleId) {
95
+ return this.http.delete(`agents/${uuid}/trusted-actions/${encodeURIComponent(ruleId)}`);
96
+ }
91
97
  };
92
98
  //#endregion
93
99
  //#region src/address/addresses.ts
@@ -262,9 +268,41 @@ const readOrderList = (namespace) => {
262
268
  return [];
263
269
  }
264
270
  };
271
+ function buildGuestOrderReturnUrl(ordersPageUrl, orderId, accessToken) {
272
+ try {
273
+ const url = new URL(ordersPageUrl);
274
+ if (url.protocol !== "http:" && url.protocol !== "https:") return ordersPageUrl;
275
+ url.searchParams.set("order", orderId);
276
+ url.searchParams.set("orderAccessToken", accessToken);
277
+ return url.toString();
278
+ } catch {
279
+ return ordersPageUrl;
280
+ }
281
+ }
282
+ function readGuestOrderReturnAccess(search) {
283
+ const query = typeof search === "string" ? new URLSearchParams(search) : search;
284
+ const orderId = query.get("order");
285
+ const accessToken = query.get("orderAccessToken");
286
+ if (!orderId || !accessToken) return null;
287
+ return {
288
+ orderId,
289
+ accessToken
290
+ };
291
+ }
292
+ function stripGuestOrderReturnToken(pathname, search) {
293
+ const query = new URLSearchParams(typeof search === "string" ? search : search.toString());
294
+ query.delete("orderAccessToken");
295
+ const next = query.toString();
296
+ return `${pathname}${next ? `?${next}` : ""}`;
297
+ }
298
+ const absoluteOrdersPageUrl = (ordersPage) => {
299
+ if (/^https?:\/\//i.test(ordersPage)) return ordersPage;
300
+ const origin = typeof window !== "undefined" ? window.location.origin : "http://localhost";
301
+ return new URL(ordersPage, origin).toString();
302
+ };
265
303
  function createGuestCommerceStorage(options) {
266
304
  const maxOrders = options.maxOrders ?? 10;
267
- return {
305
+ const storage = {
268
306
  saveCheckoutDraft(draft) {
269
307
  safeSet(checkoutKey(options.namespace), JSON.stringify(draft));
270
308
  },
@@ -301,8 +339,26 @@ function createGuestCommerceStorage(options) {
301
339
  orderId: entry.orderId,
302
340
  accessToken: entry.accessToken || safeGet(orderAccessKey(options.namespace, entry.orderId))
303
341
  }));
342
+ },
343
+ /** Absolute shop URL from a path or full URL (e.g. orders page). */
344
+ shopUrl(ordersPage) {
345
+ return absoluteOrdersPageUrl(ordersPage);
346
+ },
347
+ /** Thank-you → shop handoff URL with capability token query params. */
348
+ orderReturnUrl(ordersPage, orderId, accessToken) {
349
+ return buildGuestOrderReturnUrl(absoluteOrdersPageUrl(ordersPage), orderId, accessToken);
350
+ },
351
+ /** Persist `order` + `orderAccessToken` from the shop handoff query, then strip the token. */
352
+ claimOrderReturn() {
353
+ if (typeof window === "undefined") return null;
354
+ const access = readGuestOrderReturnAccess(window.location.search);
355
+ if (!access?.accessToken) return null;
356
+ storage.saveOrderAccess(access);
357
+ window.history.replaceState({}, "", stripGuestOrderReturnToken(window.location.pathname, window.location.search));
358
+ return access;
304
359
  }
305
360
  };
361
+ return storage;
306
362
  }
307
363
  //#endregion
308
364
  //#region src/commerce/guestCheckout.ts
@@ -330,13 +386,15 @@ const createEmptyGuestCheckoutState = (options = {}) => ({
330
386
  phone: ""
331
387
  },
332
388
  shippingRateId: null,
333
- fulfillmentLocationId: null
389
+ fulfillmentLocationId: null,
390
+ couponCode: null
334
391
  });
335
392
  const toGuestCheckoutDraft = (state) => ({
336
393
  cart: state.cart,
337
394
  fulfillmentMethod: state.fulfillmentMethod,
338
395
  shippingRateId: state.shippingRateId,
339
- fulfillmentLocationId: state.fulfillmentLocationId
396
+ fulfillmentLocationId: state.fulfillmentLocationId,
397
+ couponCode: state.couponCode ?? null
340
398
  });
341
399
  const assertGuestCheckoutReady = (state, pickupLocationIds = []) => {
342
400
  if (!state.cart.length) throw new GuestCheckoutError("empty_cart");
@@ -375,13 +433,15 @@ const buildGuestCheckoutSnapshotRequest = (state, options = {}) => {
375
433
  ...address,
376
434
  type: "shipping"
377
435
  },
378
- shippingRateId: rate.id
436
+ shippingRateId: rate.id,
437
+ couponCode: state.couponCode?.trim() || void 0
379
438
  };
380
439
  }
381
440
  return {
382
441
  fulfillmentMethod: "pickup",
383
442
  items,
384
- fulfillmentLocationId: state.fulfillmentLocationId || options.pickupLocationIds?.[0] || null
443
+ fulfillmentLocationId: state.fulfillmentLocationId || options.pickupLocationIds?.[0] || null,
444
+ couponCode: state.couponCode?.trim() || void 0
385
445
  };
386
446
  };
387
447
  async function createGuestCheckoutSnapshot(options) {
@@ -430,7 +490,8 @@ async function createGuestCheckoutSnapshot(options) {
430
490
  *
431
491
  * When `pay` is enabled (default), `paymentUrl` is only set from a successful `orders.pay`
432
492
  * response. `order.paymentUrl` from create is the JoAi thank-you URL and must not be used
433
- * as a gateway redirect.
493
+ * as a gateway redirect. After payment, the thank-you page redirects to the team's shop
494
+ * site URL when one is configured (`sites.type = shop`).
434
495
  */
435
496
  async function placeGuestCheckoutOrder(options) {
436
497
  if (!options.acceptedTerms) throw new GuestCheckoutError("terms_required");
@@ -1898,10 +1959,13 @@ var OrdersResource = class {
1898
1959
  return this.http.delete(`orders/${id}`);
1899
1960
  }
1900
1961
  pay(id, provider, accessToken) {
1901
- return this.http.post(`orders/${id}/pay`, provider ? { provider } : {}, orderAccessHeaders(accessToken));
1962
+ return this.http.post(`orders/${id}/pay`, { ...provider ? { provider } : {} }, orderAccessHeaders(accessToken));
1902
1963
  }
1903
- notify(id, type = "confirmation") {
1904
- return this.http.post(`orders/${id}/notify`, { type });
1964
+ notify(id, type = "confirmation", agentId) {
1965
+ return this.http.post(`orders/${id}/notify`, {
1966
+ type,
1967
+ agentId
1968
+ });
1905
1969
  }
1906
1970
  };
1907
1971
  //#endregion
@@ -2674,6 +2738,41 @@ var UpdatesResource = class {
2674
2738
  }
2675
2739
  };
2676
2740
  //#endregion
2741
+ //#region src/resources/social-posts.ts
2742
+ var SocialPostsResource = class {
2743
+ constructor(http) {
2744
+ this.http = http;
2745
+ }
2746
+ connections() {
2747
+ return this.http.get("social-posts/connections");
2748
+ }
2749
+ list(params) {
2750
+ const query = new URLSearchParams();
2751
+ if (params?.status) query.set("status", params.status);
2752
+ if (params?.platform) query.set("platform", params.platform);
2753
+ const qs = query.toString();
2754
+ return this.http.get(`social-posts${qs ? "?" + qs : ""}`);
2755
+ }
2756
+ create(payload) {
2757
+ return this.http.post("social-posts", payload);
2758
+ }
2759
+ update(id, payload) {
2760
+ return this.http.patch(`social-posts/${id}`, payload);
2761
+ }
2762
+ schedule(id, scheduledAt) {
2763
+ return this.http.post(`social-posts/${id}/schedule`, scheduledAt ? { scheduledAt } : {});
2764
+ }
2765
+ cancel(id) {
2766
+ return this.http.post(`social-posts/${id}/cancel`, {});
2767
+ }
2768
+ retry(id) {
2769
+ return this.http.post(`social-posts/${id}/retry`, {});
2770
+ }
2771
+ delete(id) {
2772
+ return this.http.delete(`social-posts/${id}`);
2773
+ }
2774
+ };
2775
+ //#endregion
2677
2776
  //#region src/resources/upgrades.ts
2678
2777
  var UpgradesResource = class {
2679
2778
  constructor(http) {
@@ -3209,6 +3308,7 @@ var JoAiClient = class {
3209
3308
  this.automations = new AutomationsResource(this.http);
3210
3309
  this.segments = new SegmentsResource(this.http);
3211
3310
  this.updates = new UpdatesResource(this.http);
3311
+ this.socialPosts = new SocialPostsResource(this.http);
3212
3312
  this.upgrades = new UpgradesResource(this.http);
3213
3313
  this.users = new UsersResource(this.http);
3214
3314
  this.voice = new VoiceResource(this.http);
@@ -3322,4 +3422,4 @@ var DistributionResource = class {
3322
3422
  }
3323
3423
  };
3324
3424
  //#endregion
3325
- export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, AuthResource, AutomationsResource, BillingResource, BlueprintsResource, CachedHttpService, CampaignsResource, CardsResource, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, CommerceResource, ContactsResource, ContentResource, ContractsResource, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, FulfillmentsResource, GoalsResource, GuestCheckoutError, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, ItemsResource, JoAiClient, KvResource, LinksResource, LoyaltyResource, McpResource, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, OrdersResource, PersonaResource, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, SegmentsResource, ServicesResource, ShippingResource, ShortcutsResource, SitesResource, SkillsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, sanitizePortalCallbackUrl, toGuestCheckoutDraft };
3425
+ export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, AuthResource, AutomationsResource, BillingResource, BlueprintsResource, CachedHttpService, CampaignsResource, CardsResource, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, CommerceResource, ContactsResource, ContentResource, ContractsResource, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, FulfillmentsResource, GoalsResource, GuestCheckoutError, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, ItemsResource, JoAiClient, KvResource, LinksResource, LoyaltyResource, McpResource, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, OrdersResource, PersonaResource, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, SegmentsResource, ServicesResource, ShippingResource, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joai/sdk",
3
- "version": "5.0.0",
3
+ "version": "7.0.0",
4
4
  "description": "JoAi public API SDK — build with your AI agents",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,11 +35,11 @@
35
35
  "test": "jest --config jest.config.js"
36
36
  },
37
37
  "dependencies": {
38
- "@joai/core": "^4.13.0",
38
+ "@joai/core": "^4.15.0",
39
39
  "@joai/warps": "*"
40
40
  },
41
41
  "peerDependencies": {
42
- "@joai/core": "^4.13.0"
42
+ "@joai/core": "^4.15.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "tsdown": "^0.21.0",