@trii/types 2.10.768 → 2.10.770

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.
@@ -74,6 +74,12 @@ export interface PersonalInboxItem {
74
74
  readState: IConversation['readState'];
75
75
  slaStatus: IConversation['sla']['status'];
76
76
  slaDeadlineAt: string | null;
77
+ /** Current conversation commitments; absent in older inbox snapshots. */
78
+ slaClocks?: {
79
+ metric: IConversation['sla']['clocks'][number]['metric'];
80
+ status: IConversation['sla']['clocks'][number]['status'];
81
+ deadlineAt: string | null;
82
+ }[];
77
83
  queueId: ID | null;
78
84
  ownerUserId: ID | null;
79
85
  ownerName: string | null;
@@ -1,6 +1,7 @@
1
1
  import { ID } from './Conversation';
2
2
  import { QueueRoutingPolicy } from './Routing';
3
3
  export type QueueSlaTransferBehavior = 'preserve' | 'restart' | 'recalculate';
4
+ /** Service time targets only; never grants visibility or selects an assignee. */
4
5
  export type ConversationQueueSlaConfig = {
5
6
  enabled: false;
6
7
  policyId?: never;
@@ -12,23 +13,15 @@ export type ConversationQueueSlaConfig = {
12
13
  policyVersion: number;
13
14
  onTransferIn: QueueSlaTransferBehavior;
14
15
  };
16
+ /** Visibility granted to supervisorGroupIds; independent of work eligibility. */
17
+ export type QueueSupervisionMode = 'all_current' | 'sla_only' | 'escalations_only' | 'none';
15
18
  /**
16
- * distribution:
17
- * visibility follows shared, manual_pull or exclusive routing semantics.
18
- * all_current:
19
- * all authorized queue members can see current queue conversations.
19
+ * Open conversations only. Finalization retains authorized following, not queue visibility.
20
+ * Labels and pins never grant visibility. Missing configuration grants no supervision access.
21
+ * Migration: copy legacy audience.supervisors here before replacing stored queues.
20
22
  */
21
- export type QueueMemberAudienceMode = 'distribution' | 'all_current' | 'none';
22
- export type QueueSupervisorAudienceMode = 'all_current' | 'sla_only' | 'escalations_only' | 'none';
23
- /** Open conversations only. Finalization retains authorized following, not queue visibility. */
24
- export interface ConversationQueueAudienceConfig {
25
- members: {
26
- mode: QueueMemberAudienceMode;
27
- requireActiveParticipation: boolean;
28
- };
29
- supervisors: {
30
- mode: QueueSupervisorAudienceMode;
31
- };
23
+ export interface ConversationQueueSupervisionConfig {
24
+ mode: QueueSupervisionMode;
32
25
  }
33
26
  export interface ConversationQueueInfo {
34
27
  id: ID;
@@ -47,11 +40,16 @@ export interface ConversationQueue {
47
40
  description?: string;
48
41
  color?: string;
49
42
  enabled: boolean;
43
+ /**
44
+ * Groups authorized to attend this queue. New work visibility follows routing eligibility
45
+ * and distribution. Existing owners/participants retain access when unavailable or paused,
46
+ * subject to current authorization. Conversation participation is not required for eligibility.
47
+ */
50
48
  memberGroupIds: ID[];
51
49
  supervisorGroupIds: ID[];
52
50
  routing: QueueRoutingPolicy;
53
51
  sla: ConversationQueueSlaConfig;
54
- audience: ConversationQueueAudienceConfig;
52
+ supervision: ConversationQueueSupervisionConfig;
55
53
  version: number;
56
54
  createdAt: Date;
57
55
  createdByUserId?: ID;
@@ -62,18 +60,23 @@ export interface ConversationQueue {
62
60
  * Editable Queue definition sent by clients.
63
61
  *
64
62
  * It excludes id, version and audit fields controlled by the backend. Nested
65
- * routing, SLA and audience objects use full-replacement semantics.
63
+ * routing, SLA and supervision objects use full-replacement semantics.
66
64
  */
67
65
  export interface ConversationQueueDefinitionInput {
68
66
  name: string;
69
67
  description?: string;
70
68
  color?: string;
71
69
  enabled: boolean;
70
+ /**
71
+ * Groups authorized to attend this queue. New work visibility follows routing eligibility
72
+ * and distribution. Existing owners/participants retain access when unavailable or paused,
73
+ * subject to current authorization. Conversation participation is not required for eligibility.
74
+ */
72
75
  memberGroupIds: ID[];
73
76
  supervisorGroupIds: ID[];
74
77
  routing: QueueRoutingPolicy;
75
78
  sla: ConversationQueueSlaConfig;
76
- audience: ConversationQueueAudienceConfig;
79
+ supervision: ConversationQueueSupervisionConfig;
77
80
  }
78
81
  /**
79
82
  * Creates a Queue. commandId makes retries idempotent. The backend assigns
@@ -1,6 +1,9 @@
1
1
  interface QueueRoutingPolicyBase {
2
+ /** Active participation in the queue, not Conversation.participants, to receive or discover new work. */
2
3
  requireActiveParticipation: boolean;
4
+ /** Available presence for new work. Losing eligibility does not hide existing owned/participating conversations. */
3
5
  requireAvailablePresence: boolean;
6
+ /** Acceptance of an exclusive offer; does not control visibility. An explicit manual claim is itself acceptance. */
4
7
  requireAcceptance: boolean;
5
8
  fallback: {
6
9
  action: 'keep_queued' | 'overflow_queue' | 'assign_supervisor';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trii/types",
3
- "version": "2.10.768",
3
+ "version": "2.10.770",
4
4
  "description": "Types definitions for Trii projects - ",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",