@joai/sdk 7.0.3 → 7.0.5

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, 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, SocialPostGenerateCaptionPayload, SocialPostGeneratedCaption, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamOrderStats, 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, CartLine, 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, SharedSocialPost, ShippingRate, ShippingRate as ShippingRate$1, ShippingZone, Shortcut, Site, SiteBrand, SiteType, Skill, SkillScopeValue, SocialAuthProvider, SocialBot, SocialPlatform, SocialPost, SocialPostConnection, SocialPostCreatePayload, SocialPostGenerateCaptionPayload, SocialPostGeneratedCaption, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamOrderStats, 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
@@ -322,6 +322,75 @@ declare function placeGuestCheckoutOrder(options: {
322
322
  }): Promise<PlaceGuestCheckoutOrderResult>;
323
323
  declare const isGuestCheckoutError: (error: unknown) => error is GuestCheckoutError;
324
324
  //#endregion
325
+ //#region src/commerce/guestCoupon.d.ts
326
+ type GuestCouponPreview = {
327
+ code: string;
328
+ discount: number;
329
+ eligibleSubtotal: number;
330
+ };
331
+ type GuestCouponErrorCode = 'empty_code' | 'empty_cart' | 'invalid' | 'not_applicable';
332
+ declare class GuestCouponError extends Error {
333
+ readonly code: GuestCouponErrorCode;
334
+ /** Localized API message when present. */
335
+ readonly serverMessage?: string | undefined;
336
+ constructor(code: GuestCouponErrorCode, /** Localized API message when present. */
337
+
338
+ serverMessage?: string | undefined);
339
+ }
340
+ type GuestCouponClient = {
341
+ commerce: {
342
+ checkout: {
343
+ validateCoupon(team: string, data: {
344
+ couponCode: string;
345
+ items: GuestCheckoutCartItem[];
346
+ }): Promise<IAppResponse<GuestCouponPreview>>;
347
+ };
348
+ };
349
+ };
350
+ /** First `couponCode` validation message from an API error payload. */
351
+ declare const guestCouponMessageFromErrors: (errors: unknown) => string | undefined;
352
+ declare const isGuestCouponError: (error: unknown) => error is GuestCouponError;
353
+ type GuestCartAmounts = {
354
+ subtotal: number;
355
+ discount: number;
356
+ total: number;
357
+ };
358
+ /**
359
+ * Merchandise subtotal, coupon discount, and payable total (cents) for a guest cart.
360
+ * Pass the validated preview (or null) so discount and total stay in sync.
361
+ */
362
+ declare const guestCartAmounts: <T extends CartLine>(cart: T[], preview?: GuestCouponPreview | null) => GuestCartAmounts;
363
+ /**
364
+ * Validates a guest coupon against cart lines. Throws {@link GuestCouponError} when the
365
+ * code is empty, the cart is empty, the API rejects it, or the preview discount is ≤ 0
366
+ * (never treat a no-effect coupon as applied).
367
+ */
368
+ declare function validateGuestCoupon(options: {
369
+ client: GuestCouponClient;
370
+ team: string;
371
+ couponCode: string;
372
+ items: GuestCheckoutCartItem[];
373
+ }): Promise<GuestCouponPreview>;
374
+ type RevalidateGuestCouponResult = {
375
+ status: 'none';
376
+ } | {
377
+ status: 'applied';
378
+ preview: GuestCouponPreview;
379
+ } | {
380
+ status: 'rejected';
381
+ error: GuestCouponError;
382
+ };
383
+ /**
384
+ * Re-checks a stored coupon against the current cart (hydrate / cart sync).
385
+ * Never throws — use `status` to clear or re-apply the draft code.
386
+ */
387
+ declare function revalidateGuestCoupon(options: {
388
+ client: GuestCouponClient;
389
+ team: string;
390
+ couponCode?: string | null;
391
+ items: GuestCheckoutCartItem[];
392
+ }): Promise<RevalidateGuestCouponResult>;
393
+ //#endregion
325
394
  //#region src/commerce/index.d.ts
326
395
  declare class CommerceResource {
327
396
  readonly checkout: CheckoutResource;
@@ -810,16 +879,23 @@ declare class ContractsResource {
810
879
  declare class DocumentsResource {
811
880
  private readonly http;
812
881
  constructor(http: IHttpService);
813
- list(agent: string, search?: string): Promise<_$_joai_core0.IAppResponse<Document[]>>;
882
+ list(agent: string, params?: {
883
+ search?: string;
884
+ archived?: boolean;
885
+ }): Promise<_$_joai_core0.IAppResponse<Document[]>>;
814
886
  create(agent: string, data: {
815
887
  title: string;
816
888
  content: string;
817
889
  blueprint?: string;
818
890
  }): Promise<_$_joai_core0.IAppResponse<Document>>;
819
891
  get(id: string): Promise<_$_joai_core0.IAppResponse<Document>>;
892
+ getShared(slug: string): Promise<_$_joai_core0.IAppResponse<Document>>;
820
893
  update(id: string, data: {
821
894
  title?: string;
822
895
  content?: string;
896
+ public?: boolean;
897
+ archived?: boolean;
898
+ meta?: Record<string, unknown>;
823
899
  }): Promise<_$_joai_core0.IAppResponse<Document>>;
824
900
  delete(id: string): Promise<_$_joai_core0.IAppResponse<void>>;
825
901
  trainFromUrl(agent: string, url: string): Promise<_$_joai_core0.IAppResponse<Document>>;
@@ -972,12 +1048,17 @@ declare class IntentsResource {
972
1048
  }
973
1049
  //#endregion
974
1050
  //#region src/resources/items.d.ts
1051
+ type ItemListParams = {
1052
+ status?: string;
1053
+ priority?: string;
1054
+ dueToday?: boolean;
1055
+ scope?: 'mine' | 'all';
1056
+ tag?: string;
1057
+ };
975
1058
  declare class ItemsResource {
976
1059
  private readonly http;
977
1060
  constructor(http: IHttpService);
978
- list(params?: {
979
- status?: string;
980
- }): Promise<_$_joai_core0.IAppResponse<Item[]>>;
1061
+ list(params?: ItemListParams): Promise<_$_joai_core0.IAppResponse<Item[]>>;
981
1062
  get(id: string): Promise<_$_joai_core0.IAppResponse<Item>>;
982
1063
  create(payload: ItemCreatePayload): Promise<_$_joai_core0.IAppResponse<Item>>;
983
1064
  update(id: string, data: ItemUpdatePayload): Promise<_$_joai_core0.IAppResponse<Item>>;
@@ -1877,6 +1958,9 @@ declare class SocialPostsResource {
1877
1958
  schedule(id: string, scheduledAt?: string | null): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1878
1959
  cancel(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1879
1960
  retry(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1961
+ share(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1962
+ revokeShare(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1963
+ getShared(token: string): Promise<_$_joai_core0.IAppResponse<SharedSocialPost>>;
1880
1964
  delete(id: string): Promise<_$_joai_core0.IAppResponse<void>>;
1881
1965
  }
1882
1966
  //#endregion
@@ -2260,4 +2344,4 @@ declare class DistributionResource {
2260
2344
  private fetchDistribution;
2261
2345
  }
2262
2346
  //#endregion
2263
- 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 };
2347
+ 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 GuestCartAmounts, type GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorage, type GuestCommerceStorageOptions, type GuestCouponClient, GuestCouponError, type GuestCouponErrorCode, type GuestCouponPreview, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, type ItemListParams, 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, type RevalidateGuestCouponResult, 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, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, validateGuestCoupon };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { HttpService, getApiBaseUrl, isCompleteAddressInput } from "@joai/core";
1
+ import { HttpService, cartLineTotal, cartPayableTotal, getApiBaseUrl, isCompleteAddressInput } from "@joai/core";
2
2
  import { WarpClient } from "@joai/warps";
3
3
  //#region src/resources/agents.ts
4
4
  var AgentsResource = class {
@@ -534,6 +534,90 @@ const isGuestCheckoutError = (error) => {
534
534
  return typeof error === "object" && error !== null && error.name === "GuestCheckoutError" && typeof error.code === "string";
535
535
  };
536
536
  //#endregion
537
+ //#region src/commerce/guestCoupon.ts
538
+ var GuestCouponError = class extends Error {
539
+ constructor(code, serverMessage) {
540
+ super(serverMessage ?? code);
541
+ this.code = code;
542
+ this.serverMessage = serverMessage;
543
+ this.name = "GuestCouponError";
544
+ }
545
+ };
546
+ /** First `couponCode` validation message from an API error payload. */
547
+ const guestCouponMessageFromErrors = (errors) => {
548
+ if (!errors || typeof errors !== "object" || Array.isArray(errors)) return void 0;
549
+ const couponError = errors.couponCode;
550
+ if (Array.isArray(couponError) && typeof couponError[0] === "string") return couponError[0];
551
+ if (typeof couponError === "string") return couponError;
552
+ };
553
+ const isGuestCouponError = (error) => {
554
+ if (error instanceof GuestCouponError) return true;
555
+ return typeof error === "object" && error !== null && error.name === "GuestCouponError" && typeof error.code === "string";
556
+ };
557
+ const toCheckoutItems = (items) => items.map(({ id, type, quantity }) => ({
558
+ id,
559
+ type,
560
+ quantity
561
+ }));
562
+ /**
563
+ * Merchandise subtotal, coupon discount, and payable total (cents) for a guest cart.
564
+ * Pass the validated preview (or null) so discount and total stay in sync.
565
+ */
566
+ const guestCartAmounts = (cart, preview) => {
567
+ const subtotal = cartLineTotal(cart);
568
+ const discount = Math.max(0, preview?.discount ?? 0);
569
+ return {
570
+ subtotal,
571
+ discount,
572
+ total: cartPayableTotal(cart, discount)
573
+ };
574
+ };
575
+ /**
576
+ * Validates a guest coupon against cart lines. Throws {@link GuestCouponError} when the
577
+ * code is empty, the cart is empty, the API rejects it, or the preview discount is ≤ 0
578
+ * (never treat a no-effect coupon as applied).
579
+ */
580
+ async function validateGuestCoupon(options) {
581
+ const code = options.couponCode.trim();
582
+ if (!code) throw new GuestCouponError("empty_code");
583
+ if (!options.items.length) throw new GuestCouponError("empty_cart");
584
+ const response = await options.client.commerce.checkout.validateCoupon(options.team, {
585
+ couponCode: code,
586
+ items: toCheckoutItems(options.items)
587
+ });
588
+ if (!response.ok || !response.data?.code) throw new GuestCouponError("invalid", guestCouponMessageFromErrors(response.errors));
589
+ if (response.data.discount <= 0) throw new GuestCouponError("not_applicable", guestCouponMessageFromErrors(response.errors));
590
+ return response.data;
591
+ }
592
+ /**
593
+ * Re-checks a stored coupon against the current cart (hydrate / cart sync).
594
+ * Never throws — use `status` to clear or re-apply the draft code.
595
+ */
596
+ async function revalidateGuestCoupon(options) {
597
+ const code = options.couponCode?.trim();
598
+ if (!code || !options.items.length) return { status: "none" };
599
+ try {
600
+ return {
601
+ status: "applied",
602
+ preview: await validateGuestCoupon({
603
+ client: options.client,
604
+ team: options.team,
605
+ couponCode: code,
606
+ items: options.items
607
+ })
608
+ };
609
+ } catch (error) {
610
+ if (isGuestCouponError(error)) return {
611
+ status: "rejected",
612
+ error
613
+ };
614
+ return {
615
+ status: "rejected",
616
+ error: new GuestCouponError("invalid")
617
+ };
618
+ }
619
+ }
620
+ //#endregion
537
621
  //#region src/commerce/index.ts
538
622
  var CommerceResource = class {
539
623
  constructor(http) {
@@ -1249,10 +1333,12 @@ var DocumentsResource = class {
1249
1333
  constructor(http) {
1250
1334
  this.http = http;
1251
1335
  }
1252
- list(agent, search) {
1253
- const params = new URLSearchParams();
1254
- if (search) params.set("search", search);
1255
- return this.http.get(`agents/${agent}/documents?${params.toString()}`);
1336
+ list(agent, params) {
1337
+ const query = new URLSearchParams();
1338
+ if (params?.search) query.set("search", params.search);
1339
+ if (params?.archived) query.set("archived", "1");
1340
+ const qs = query.toString();
1341
+ return this.http.get(`agents/${agent}/documents${qs ? `?${qs}` : ""}`);
1256
1342
  }
1257
1343
  create(agent, data) {
1258
1344
  return this.http.post(`agents/${agent}/documents`, data);
@@ -1260,6 +1346,9 @@ var DocumentsResource = class {
1260
1346
  get(id) {
1261
1347
  return this.http.get(`documents/${id}`);
1262
1348
  }
1349
+ getShared(slug) {
1350
+ return this.http.get(`documents/shared/${encodeURIComponent(slug)}`);
1351
+ }
1263
1352
  update(id, data) {
1264
1353
  return this.http.put(`documents/${id}`, data);
1265
1354
  }
@@ -1466,6 +1555,10 @@ var ItemsResource = class {
1466
1555
  list(params) {
1467
1556
  const query = new URLSearchParams();
1468
1557
  if (params?.status) query.set("status", params.status);
1558
+ if (params?.priority) query.set("priority", params.priority);
1559
+ if (params?.dueToday) query.set("dueToday", "1");
1560
+ if (params?.scope) query.set("scope", params.scope);
1561
+ if (params?.tag) query.set("tag", params.tag);
1469
1562
  const qs = query.toString();
1470
1563
  return this.http.get(`items${qs ? "?" + qs : ""}`);
1471
1564
  }
@@ -2785,6 +2878,15 @@ var SocialPostsResource = class {
2785
2878
  retry(id) {
2786
2879
  return this.http.post(`social-posts/${id}/retry`, {});
2787
2880
  }
2881
+ share(id) {
2882
+ return this.http.post(`social-posts/${id}/share`, {});
2883
+ }
2884
+ revokeShare(id) {
2885
+ return this.http.delete(`social-posts/${id}/share`);
2886
+ }
2887
+ getShared(token) {
2888
+ return this.http.get(`social-posts/shared/${token}`);
2889
+ }
2788
2890
  delete(id) {
2789
2891
  return this.http.delete(`social-posts/${id}`);
2790
2892
  }
@@ -3440,4 +3542,4 @@ var DistributionResource = class {
3440
3542
  }
3441
3543
  };
3442
3544
  //#endregion
3443
- 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 };
3545
+ 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, GuestCouponError, 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, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, validateGuestCoupon };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joai/sdk",
3
- "version": "7.0.3",
3
+ "version": "7.0.5",
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.15.2",
38
+ "@joai/core": "^4.15.4",
39
39
  "@joai/warps": "*"
40
40
  },
41
41
  "peerDependencies": {
42
- "@joai/core": "^4.15.2"
42
+ "@joai/core": "^4.15.4"
43
43
  },
44
44
  "devDependencies": {
45
45
  "tsdown": "^0.21.0",