@pam-ai/pam-ordo-contracts 3.30.0 → 3.31.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.
@@ -243,6 +243,26 @@ export interface paths {
243
243
  patch?: never;
244
244
  trace?: never;
245
245
  };
246
+ "/v1/inbox/desktop-notification-settings": {
247
+ parameters: {
248
+ query?: never;
249
+ header?: never;
250
+ path?: never;
251
+ cookie?: never;
252
+ };
253
+ /**
254
+ * Read the authenticated User's effective desktop-notification setting
255
+ * @description Returns the selected rooftop's default, the caller's optional rooftop-specific override, and the effective value. A present User override wins over the rooftop default in both directions. Browser permission and device subscription state remain local browser concerns and do not change this product preference.
256
+ */
257
+ get: operations["getDesktopNotificationSettings"];
258
+ put?: never;
259
+ post?: never;
260
+ delete?: never;
261
+ options?: never;
262
+ head?: never;
263
+ patch?: never;
264
+ trace?: never;
265
+ };
246
266
  "/v1/inbox/commands/create-customer": {
247
267
  parameters: {
248
268
  query?: never;
@@ -550,6 +570,60 @@ export interface paths {
550
570
  patch?: never;
551
571
  trace?: never;
552
572
  };
573
+ "/v1/inbox/commands/set-desktop-notification-preference": {
574
+ parameters: {
575
+ query?: never;
576
+ header?: never;
577
+ path?: never;
578
+ cookie?: never;
579
+ };
580
+ get?: never;
581
+ put?: never;
582
+ /** Set or clear the authenticated User's rooftop-specific desktop-notification override */
583
+ post: operations["setDesktopNotificationPreference"];
584
+ delete?: never;
585
+ options?: never;
586
+ head?: never;
587
+ patch?: never;
588
+ trace?: never;
589
+ };
590
+ "/v1/inbox/commands/register-desktop-push-subscription": {
591
+ parameters: {
592
+ query?: never;
593
+ header?: never;
594
+ path?: never;
595
+ cookie?: never;
596
+ };
597
+ get?: never;
598
+ put?: never;
599
+ /**
600
+ * Register or refresh an account-wide browser push subscription
601
+ * @description The authenticated User owns the subscription. It can deliver eligible notifications from every rooftop that User can currently access; rooftop and User preferences are still evaluated independently for each notification. An endpoint already owned by another User is never silently rebound.
602
+ */
603
+ post: operations["registerDesktopPushSubscription"];
604
+ delete?: never;
605
+ options?: never;
606
+ head?: never;
607
+ patch?: never;
608
+ trace?: never;
609
+ };
610
+ "/v1/inbox/commands/unregister-desktop-push-subscription": {
611
+ parameters: {
612
+ query?: never;
613
+ header?: never;
614
+ path?: never;
615
+ cookie?: never;
616
+ };
617
+ get?: never;
618
+ put?: never;
619
+ /** Unregister the authenticated User's browser push subscription */
620
+ post: operations["unregisterDesktopPushSubscription"];
621
+ delete?: never;
622
+ options?: never;
623
+ head?: never;
624
+ patch?: never;
625
+ trace?: never;
626
+ };
553
627
  "/v1/inbox/commands/resolve-mention": {
554
628
  parameters: {
555
629
  query?: never;
@@ -998,6 +1072,7 @@ export interface components {
998
1072
  notifications: components["schemas"]["InboxPolicyNotificationRuleV1"][];
999
1073
  customerMessageNotifications?: components["schemas"]["InboxPolicyCustomerMessageNotificationsV1"];
1000
1074
  emailDelivery?: components["schemas"]["InboxEmailDeliveryPolicyV1"];
1075
+ webPushDelivery?: components["schemas"]["InboxWebPushDeliveryPolicyV1"];
1001
1076
  staffWorkStatus?: components["schemas"]["InboxPolicyStaffWorkStatusV1"];
1002
1077
  };
1003
1078
  /** @description Rooftop activation for authoritative Permissions work status. Missing is normalized as DISPLAY_ONLY. SHADOW records the decision without changing routing; ENFORCED may exclude non-AVAILABLE Users from automatic routing. Manual assignment continues to use manualAssignmentEligible. */
@@ -1014,6 +1089,12 @@ export interface components {
1014
1089
  activatedAt: string;
1015
1090
  kinds: components["schemas"]["NotificationKind"][];
1016
1091
  };
1092
+ /** @description Optional forward-only rooftop default for desktop Web Push. Missing policy or enabled=false defaults delivery off. A User's explicit rooftop override wins over this value in either direction. Only notifications created at or after activatedAt are eligible. */
1093
+ InboxWebPushDeliveryPolicyV1: {
1094
+ enabled: boolean;
1095
+ /** Format: date-time */
1096
+ activatedAt: string;
1097
+ };
1017
1098
  /** @enum {string} */
1018
1099
  RealtimeQueryAreaV1: "inbox" | "conversation" | "customer_notes" | "notifications";
1019
1100
  /** @description Refetch instruction, never canonical state. eventId deduplicates repeated delivery. aggregateVersion is only a hint for the named aggregate and must not suppress independent comment, note, label, or recipient changes. A scope-only invalidation deliberately omits Conversation and aggregate identity, including when a formerly visible Conversation is no longer authorized. Notification areas are recipient-only. No source payloads, message bodies, Customer information, or subscription credentials belong in this frame. */
@@ -2108,6 +2189,32 @@ export interface components {
2108
2189
  /** @description Opaque continuation cursor from the immediately preceding page. */
2109
2190
  cursor?: string;
2110
2191
  };
2192
+ SetDesktopNotificationPreferenceCommand: {
2193
+ operationId: string;
2194
+ clientOrgId: string;
2195
+ /** @description Explicit User setting, or null to inherit the rooftop default. */
2196
+ override: boolean | null;
2197
+ };
2198
+ WebPushSubscriptionKeys: {
2199
+ p256dh: string;
2200
+ auth: string;
2201
+ };
2202
+ RegisterDesktopPushSubscriptionCommand: {
2203
+ operationId: string;
2204
+ clientOrgId: string;
2205
+ subscription: {
2206
+ /** Format: uri */
2207
+ endpoint: string;
2208
+ expirationTime: number | null;
2209
+ keys: components["schemas"]["WebPushSubscriptionKeys"];
2210
+ };
2211
+ };
2212
+ UnregisterDesktopPushSubscriptionCommand: {
2213
+ operationId: string;
2214
+ clientOrgId: string;
2215
+ /** Format: uri */
2216
+ endpoint: string;
2217
+ };
2111
2218
  /**
2112
2219
  * @description Mark the caller's outstanding Mentions on one WorkCycle dealt with.
2113
2220
  * CONVERSATION-WIDE, NOT PER-MENTION, and the shape is the point. A recipient does not think in Mentions; they think "I have handled this thread". Two colleagues naming the same person in one exchange raises two Mentions, and clearing one of them would leave the row on the Mentions list with nothing on screen to explain why.
@@ -2451,6 +2558,41 @@ export interface components {
2451
2558
  nextCursor: string | null;
2452
2559
  };
2453
2560
  };
2561
+ DesktopNotificationSettingsResponse: {
2562
+ data: {
2563
+ clientOrgId: string;
2564
+ rooftopDefaultEnabled: boolean;
2565
+ userOverride: boolean | null;
2566
+ effectiveEnabled: boolean;
2567
+ /** Format: date-time */
2568
+ activatedAt: string | null;
2569
+ vapidPublicKey: string;
2570
+ };
2571
+ };
2572
+ DesktopNotificationPreferenceResult: {
2573
+ data: {
2574
+ operationId: string;
2575
+ applied: boolean;
2576
+ replayed: boolean;
2577
+ clientOrgId: string;
2578
+ rooftopDefaultEnabled: boolean;
2579
+ userOverride: boolean | null;
2580
+ effectiveEnabled: boolean;
2581
+ };
2582
+ };
2583
+ DesktopPushSubscriptionResult: {
2584
+ data: {
2585
+ operationId: string;
2586
+ applied: boolean;
2587
+ replayed: boolean;
2588
+ /**
2589
+ * Format: uuid
2590
+ * @description Existing subscription identity, or null when unregistration was a no-op.
2591
+ */
2592
+ subscriptionId: string | null;
2593
+ active: boolean;
2594
+ };
2595
+ };
2454
2596
  ErrorEnvelope: {
2455
2597
  error: {
2456
2598
  code: string;
@@ -2553,6 +2695,36 @@ export interface components {
2553
2695
  "application/json": components["schemas"]["DismissNotificationsResult"];
2554
2696
  };
2555
2697
  };
2698
+ /** @description Applied or idempotently replayed desktop-notification preference. */
2699
+ DesktopNotificationPreferenceApplied: {
2700
+ headers: {
2701
+ "x-correlation-id": components["headers"]["CorrelationId"];
2702
+ [name: string]: unknown;
2703
+ };
2704
+ content: {
2705
+ "application/json": components["schemas"]["DesktopNotificationPreferenceResult"];
2706
+ };
2707
+ };
2708
+ /** @description Registered, refreshed, or idempotently replayed browser subscription. */
2709
+ DesktopPushSubscriptionRegistered: {
2710
+ headers: {
2711
+ "x-correlation-id": components["headers"]["CorrelationId"];
2712
+ [name: string]: unknown;
2713
+ };
2714
+ content: {
2715
+ "application/json": components["schemas"]["DesktopPushSubscriptionResult"];
2716
+ };
2717
+ };
2718
+ /** @description Unregistered or idempotently replayed browser subscription. */
2719
+ DesktopPushSubscriptionUnregistered: {
2720
+ headers: {
2721
+ "x-correlation-id": components["headers"]["CorrelationId"];
2722
+ [name: string]: unknown;
2723
+ };
2724
+ content: {
2725
+ "application/json": components["schemas"]["DesktopPushSubscriptionResult"];
2726
+ };
2727
+ };
2556
2728
  /** @description Created or idempotently replayed canonical Customer result. */
2557
2729
  InboxCustomerCreated: {
2558
2730
  headers: {
@@ -2735,6 +2907,21 @@ export interface components {
2735
2907
  "application/json": components["schemas"]["DismissNotificationsCommand"];
2736
2908
  };
2737
2909
  };
2910
+ SetDesktopNotificationPreferenceCommand: {
2911
+ content: {
2912
+ "application/json": components["schemas"]["SetDesktopNotificationPreferenceCommand"];
2913
+ };
2914
+ };
2915
+ RegisterDesktopPushSubscriptionCommand: {
2916
+ content: {
2917
+ "application/json": components["schemas"]["RegisterDesktopPushSubscriptionCommand"];
2918
+ };
2919
+ };
2920
+ UnregisterDesktopPushSubscriptionCommand: {
2921
+ content: {
2922
+ "application/json": components["schemas"]["UnregisterDesktopPushSubscriptionCommand"];
2923
+ };
2924
+ };
2738
2925
  CreateInboxCustomerCommand: {
2739
2926
  content: {
2740
2927
  "application/json": components["schemas"]["CreateInboxCustomerCommand"];
@@ -3254,6 +3441,34 @@ export interface operations {
3254
3441
  503: components["responses"]["ServiceUnavailable"];
3255
3442
  };
3256
3443
  };
3444
+ getDesktopNotificationSettings: {
3445
+ parameters: {
3446
+ query?: never;
3447
+ header: {
3448
+ /** @description Authorized rooftop context. For commands this value must match body.clientOrgId; neither value is trusted without DASH-233 resolution. */
3449
+ "x-client-org-id": components["parameters"]["ClientOrgId"];
3450
+ };
3451
+ path?: never;
3452
+ cookie?: never;
3453
+ };
3454
+ requestBody?: never;
3455
+ responses: {
3456
+ /** @description Effective desktop-notification settings for the selected rooftop. */
3457
+ 200: {
3458
+ headers: {
3459
+ "x-correlation-id": components["headers"]["CorrelationId"];
3460
+ [name: string]: unknown;
3461
+ };
3462
+ content: {
3463
+ "application/json": components["schemas"]["DesktopNotificationSettingsResponse"];
3464
+ };
3465
+ };
3466
+ 401: components["responses"]["Unauthorized"];
3467
+ 403: components["responses"]["Forbidden"];
3468
+ 500: components["responses"]["InternalError"];
3469
+ 503: components["responses"]["ServiceUnavailable"];
3470
+ };
3471
+ };
3257
3472
  createInboxCustomer: {
3258
3473
  parameters: {
3259
3474
  query?: never;
@@ -3641,6 +3856,69 @@ export interface operations {
3641
3856
  503: components["responses"]["ServiceUnavailable"];
3642
3857
  };
3643
3858
  };
3859
+ setDesktopNotificationPreference: {
3860
+ parameters: {
3861
+ query?: never;
3862
+ header: {
3863
+ /** @description Authorized rooftop context. For commands this value must match body.clientOrgId; neither value is trusted without DASH-233 resolution. */
3864
+ "x-client-org-id": components["parameters"]["ClientOrgId"];
3865
+ };
3866
+ path?: never;
3867
+ cookie?: never;
3868
+ };
3869
+ requestBody: components["requestBodies"]["SetDesktopNotificationPreferenceCommand"];
3870
+ responses: {
3871
+ 200: components["responses"]["DesktopNotificationPreferenceApplied"];
3872
+ 400: components["responses"]["BadRequest"];
3873
+ 401: components["responses"]["Unauthorized"];
3874
+ 403: components["responses"]["Forbidden"];
3875
+ 409: components["responses"]["Conflict"];
3876
+ 500: components["responses"]["InternalError"];
3877
+ 503: components["responses"]["ServiceUnavailable"];
3878
+ };
3879
+ };
3880
+ registerDesktopPushSubscription: {
3881
+ parameters: {
3882
+ query?: never;
3883
+ header: {
3884
+ /** @description Authorized rooftop context. For commands this value must match body.clientOrgId; neither value is trusted without DASH-233 resolution. */
3885
+ "x-client-org-id": components["parameters"]["ClientOrgId"];
3886
+ };
3887
+ path?: never;
3888
+ cookie?: never;
3889
+ };
3890
+ requestBody: components["requestBodies"]["RegisterDesktopPushSubscriptionCommand"];
3891
+ responses: {
3892
+ 200: components["responses"]["DesktopPushSubscriptionRegistered"];
3893
+ 400: components["responses"]["BadRequest"];
3894
+ 401: components["responses"]["Unauthorized"];
3895
+ 403: components["responses"]["Forbidden"];
3896
+ 409: components["responses"]["Conflict"];
3897
+ 500: components["responses"]["InternalError"];
3898
+ 503: components["responses"]["ServiceUnavailable"];
3899
+ };
3900
+ };
3901
+ unregisterDesktopPushSubscription: {
3902
+ parameters: {
3903
+ query?: never;
3904
+ header: {
3905
+ /** @description Authorized rooftop context. For commands this value must match body.clientOrgId; neither value is trusted without DASH-233 resolution. */
3906
+ "x-client-org-id": components["parameters"]["ClientOrgId"];
3907
+ };
3908
+ path?: never;
3909
+ cookie?: never;
3910
+ };
3911
+ requestBody: components["requestBodies"]["UnregisterDesktopPushSubscriptionCommand"];
3912
+ responses: {
3913
+ 200: components["responses"]["DesktopPushSubscriptionUnregistered"];
3914
+ 400: components["responses"]["BadRequest"];
3915
+ 401: components["responses"]["Unauthorized"];
3916
+ 403: components["responses"]["Forbidden"];
3917
+ 409: components["responses"]["Conflict"];
3918
+ 500: components["responses"]["InternalError"];
3919
+ 503: components["responses"]["ServiceUnavailable"];
3920
+ };
3921
+ };
3644
3922
  resolveInboxMentions: {
3645
3923
  parameters: {
3646
3924
  query?: never;