@trii/types 2.10.730 → 2.10.732
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/Automations/Events/Event.d.ts +3 -3
- package/dist/Common/index.js +7 -17
- package/dist/Contacts/CommunicationEndpoint.d.ts +8 -8
- package/dist/Conversations/Classifications/ClassificationTaxonomy.d.ts +67 -0
- package/dist/Conversations/Classifications/ClassificationTaxonomy.js +5 -0
- package/dist/Conversations/Classifications/ConversationClassificationEvaluation.d.ts +67 -0
- package/dist/Conversations/Classifications/ConversationClassificationEvents.d.ts +29 -0
- package/dist/Conversations/Classifications/ConversationClassificationEvents.js +8 -0
- package/dist/Conversations/Classifications/index.d.ts +3 -0
- package/dist/Conversations/Classifications/index.js +19 -0
- package/dist/Conversations/Conversation.d.ts +27 -12
- package/dist/Conversations/InboxMongo.d.ts +12 -12
- package/dist/Conversations/Routing.d.ts +10 -10
- package/dist/Conversations/index.d.ts +1 -0
- package/dist/Conversations/index.js +8 -17
- package/dist/Events/DomainEventTypes.d.ts +23 -23
- package/dist/index.js +7 -17
- package/dist/src/Automations/Capabilities/Capability.d.ts +81 -0
- package/dist/src/Automations/Capabilities/Capability.js +23 -0
- package/dist/src/Automations/Capabilities/index.d.ts +1 -0
- package/dist/src/Automations/Capabilities/index.js +17 -0
- package/dist/src/Automations/Common.d.ts +94 -0
- package/dist/src/Automations/Common.js +40 -0
- package/dist/src/Automations/Events/Event.d.ts +69 -0
- package/dist/src/Automations/Events/Event.js +14 -0
- package/dist/src/Automations/Events/index.d.ts +1 -0
- package/dist/src/Automations/Events/index.js +17 -0
- package/dist/src/Automations/Executions/Execution.d.ts +254 -0
- package/dist/src/Automations/Executions/Execution.js +62 -0
- package/dist/src/Automations/Executions/Testing.d.ts +166 -0
- package/dist/src/Automations/Executions/Testing.js +54 -0
- package/dist/src/Automations/Executions/index.d.ts +2 -0
- package/dist/src/Automations/Executions/index.js +18 -0
- package/dist/src/Automations/Flows/Canvas.d.ts +103 -0
- package/dist/src/Automations/Flows/Canvas.js +38 -0
- package/dist/src/Automations/Flows/Flow.d.ts +147 -0
- package/dist/src/Automations/Flows/Flow.js +58 -0
- package/dist/src/Automations/Flows/Requests.d.ts +71 -0
- package/dist/src/Automations/Flows/Requests.js +2 -0
- package/dist/src/Automations/Flows/Validation.d.ts +28 -0
- package/dist/src/Automations/Flows/Validation.js +9 -0
- package/dist/src/Automations/Flows/index.d.ts +4 -0
- package/dist/src/Automations/Flows/index.js +20 -0
- package/dist/src/Automations/Nodes/Node.d.ts +113 -0
- package/dist/src/Automations/Nodes/Node.js +27 -0
- package/dist/src/Automations/Nodes/index.d.ts +1 -0
- package/dist/src/Automations/Nodes/index.js +17 -0
- package/dist/src/Automations/index.d.ts +6 -0
- package/dist/src/Automations/index.js +22 -0
- package/dist/src/Chats/Chat.d.ts +61 -0
- package/dist/src/Chats/Chat.js +28 -0
- package/dist/src/Common/Channels/Channel.d.ts +28 -1
- package/dist/src/Contacts/contacts.d.ts +2 -2
- package/dist/src/Conversations/Assignment.d.ts +81 -0
- package/dist/src/Conversations/Assignment.js +4 -0
- package/dist/src/Conversations/Conversation.d.ts +331 -48
- package/dist/src/Conversations/Conversation.js +14 -34
- package/dist/src/Conversations/DashBoard/dashboard.d.ts +2 -2
- package/dist/src/Conversations/Flows/Workflows/Workflow.d.ts +280 -123
- package/dist/src/Conversations/Flows/Workflows/Workflow.js +85 -35
- package/dist/src/Conversations/Groups/Group.d.ts +2 -8
- package/dist/src/Conversations/Groups/Group.js +0 -6
- package/dist/src/Conversations/InboxMongo.d.ts +154 -0
- package/dist/src/Conversations/InboxMongo.js +128 -0
- package/dist/src/Conversations/InboxProjection.d.ts +162 -0
- package/dist/src/Conversations/InboxProjection.js +2 -0
- package/dist/src/Conversations/Label.d.ts +1 -1
- package/dist/src/Conversations/Outbox.d.ts +24 -0
- package/dist/src/Conversations/Outbox.js +4 -0
- package/dist/src/Conversations/Queue.d.ts +107 -0
- package/dist/src/Conversations/Queue.js +4 -0
- package/dist/src/Conversations/Routing.d.ts +164 -0
- package/dist/src/Conversations/Routing.js +2 -0
- package/dist/src/Conversations/Sla.d.ts +227 -0
- package/dist/src/Conversations/Sla.js +6 -0
- package/dist/src/Conversations/Transfer.d.ts +73 -0
- package/dist/src/Conversations/Transfer.js +2 -0
- package/dist/src/Conversations/WebHook.d.ts +1 -1
- package/dist/src/Conversations/index.d.ts +9 -1
- package/dist/src/Conversations/index.js +9 -1
- package/dist/src/Forms/API.d.ts +53 -0
- package/dist/src/Forms/API.js +2 -0
- package/dist/src/Forms/SubmittedForm.d.ts +56 -0
- package/dist/src/Forms/SubmittedForm.js +9 -0
- package/dist/src/Forms/index.d.ts +2 -0
- package/dist/src/Forms/index.js +18 -0
- package/dist/src/Presence/AgentPause.d.ts +24 -0
- package/dist/src/Presence/AgentPause.js +19 -0
- package/dist/src/Presence/QueueParticipation.d.ts +17 -0
- package/dist/src/Presence/QueueParticipation.js +2 -0
- package/dist/src/Presence/QueueRoutingState.d.ts +27 -0
- package/dist/src/Presence/QueueRoutingState.js +9 -0
- package/dist/src/Presence/index.d.ts +3 -0
- package/dist/src/Presence/index.js +19 -0
- package/dist/src/Tickets/Category.d.ts +18 -0
- package/dist/src/Tickets/Dashboard.d.ts +78 -0
- package/dist/src/Tickets/Dashboard.js +13 -1
- package/dist/src/Tickets/Fields.d.ts +1 -0
- package/dist/src/Tickets/Layouts.d.ts +3 -1
- package/dist/src/Tickets/Workflow.d.ts +20 -0
- package/dist/src/Users/UserTrii.d.ts +10 -0
- package/dist/src/Users/UserTrii.js +8 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +4 -1
- package/package.json +5 -2
- package/dist/Conversations/DashBoard/dashboardForms.d.ts +0 -44
- package/dist/Conversations/DashBoard/dashboardForms.js +0 -24
- package/dist/Conversations/InboxCounters.d.ts +0 -18
- package/dist/src/Conversations/DashBoard/dashboardForms.d.ts +0 -44
- package/dist/src/Conversations/DashBoard/dashboardForms.js +0 -24
- /package/dist/Conversations/{InboxCounters.js → Classifications/ConversationClassificationEvaluation.js} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AutomationCustomer, AutomationJsonObject, AutomationJsonSchema, AutomationResourceReference, AutomationSourceApplication } from '../Common';
|
|
2
2
|
export declare const AUTOMATION_MESSAGE_SCHEMAS: {
|
|
3
|
-
readonly DOMAIN_EVENT_V1:
|
|
4
|
-
readonly START_REQUEST_V1:
|
|
5
|
-
readonly EXECUTION_WORK_ITEM_V1:
|
|
3
|
+
readonly DOMAIN_EVENT_V1: "automations.domain-event/v1";
|
|
4
|
+
readonly START_REQUEST_V1: "automations.start-request/v1";
|
|
5
|
+
readonly EXECUTION_WORK_ITEM_V1: "automations.execution.work-item/v1";
|
|
6
6
|
};
|
|
7
7
|
export interface AutomationEventDefinition {
|
|
8
8
|
eventType: string;
|
package/dist/Common/index.js
CHANGED
|
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
35
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
26
|
exports.QueueEvent = exports.Schedules = exports.Notifications = exports.Messages = exports.Channels = exports.API = void 0;
|
|
37
27
|
exports.API = __importStar(require("./API/index"));
|
|
@@ -9,22 +9,22 @@ export declare enum CommunicationEndpointKind {
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const providerIdentityNamespaces: {
|
|
11
11
|
readonly meta: {
|
|
12
|
-
readonly instagramUser:
|
|
13
|
-
readonly messengerUser:
|
|
14
|
-
readonly whatsappUser:
|
|
12
|
+
readonly instagramUser: "instagram_user";
|
|
13
|
+
readonly messengerUser: "messenger_user";
|
|
14
|
+
readonly whatsappUser: "whatsapp_user";
|
|
15
15
|
};
|
|
16
16
|
readonly telegram: {
|
|
17
|
-
readonly user:
|
|
18
|
-
readonly chat:
|
|
17
|
+
readonly user: "user";
|
|
18
|
+
readonly chat: "chat";
|
|
19
19
|
};
|
|
20
20
|
readonly trii: {
|
|
21
|
-
readonly webchatVisitor:
|
|
21
|
+
readonly webchatVisitor: "webchat_visitor";
|
|
22
22
|
};
|
|
23
23
|
readonly mercadolibre: {
|
|
24
|
-
readonly buyer:
|
|
24
|
+
readonly buyer: "buyer";
|
|
25
25
|
};
|
|
26
26
|
readonly google: {
|
|
27
|
-
readonly businessMessagesUser:
|
|
27
|
+
readonly businessMessagesUser: "business_messages_user";
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
30
|
export type KnownIdentityProvider = keyof typeof providerIdentityNamespaces;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ClassificationSeverity } from './ConversationClassificationEvaluation';
|
|
2
|
+
export declare const CLASSIFICATION_TAXONOMY_VERSIONS_COLLECTION = "classification_taxonomy_versions";
|
|
3
|
+
export declare const CONVERSATION_EVALUATIONS_COLLECTION = "conversation_evaluations";
|
|
4
|
+
export type ConversationClassificationDimension = 'contact_reason' | 'incident' | 'outcome' | 'recovery';
|
|
5
|
+
export type ClassificationTaxonomyStatus = 'draft' | 'published' | 'archived';
|
|
6
|
+
/**
|
|
7
|
+
* Versioned classification configuration for a space. Draft changes increment
|
|
8
|
+
* revision; publishing assigns version and only applies to future evaluations.
|
|
9
|
+
*/
|
|
10
|
+
export interface ClassificationTaxonomy {
|
|
11
|
+
id?: string;
|
|
12
|
+
spaceId: string;
|
|
13
|
+
status: ClassificationTaxonomyStatus;
|
|
14
|
+
version?: number;
|
|
15
|
+
revision: number;
|
|
16
|
+
basedOnVersion?: number;
|
|
17
|
+
effectiveFrom?: Date;
|
|
18
|
+
dimensions: ClassificationDimensionConfiguration[];
|
|
19
|
+
createdByUserId: string;
|
|
20
|
+
createdAt: Date;
|
|
21
|
+
updatedByUserId?: string;
|
|
22
|
+
updatedAt: Date;
|
|
23
|
+
publishedByUserId?: string;
|
|
24
|
+
publishedAt?: Date;
|
|
25
|
+
archivedAt?: Date;
|
|
26
|
+
}
|
|
27
|
+
export interface ClassificationDimensionConfiguration {
|
|
28
|
+
dimension: ConversationClassificationDimension;
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
categories: ClassificationCategory[];
|
|
31
|
+
}
|
|
32
|
+
export interface ClassificationCategory {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
inclusionCriteria: string[];
|
|
37
|
+
exclusionCriteria: string[];
|
|
38
|
+
positiveExamples: string[];
|
|
39
|
+
negativeExamples: string[];
|
|
40
|
+
allowMultiple: boolean;
|
|
41
|
+
defaultSeverity?: ClassificationSeverity;
|
|
42
|
+
sortOrder: number;
|
|
43
|
+
active: boolean;
|
|
44
|
+
subcategories: ClassificationSubcategory[];
|
|
45
|
+
}
|
|
46
|
+
export interface ClassificationSubcategory {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
description?: string;
|
|
50
|
+
inclusionCriteria: string[];
|
|
51
|
+
exclusionCriteria: string[];
|
|
52
|
+
positiveExamples: string[];
|
|
53
|
+
negativeExamples: string[];
|
|
54
|
+
sortOrder: number;
|
|
55
|
+
active: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Creates or replaces the editable draft. expectedRevision provides optimistic concurrency.
|
|
59
|
+
*/
|
|
60
|
+
export interface SaveClassificationTaxonomyDraftRequest {
|
|
61
|
+
expectedRevision?: number;
|
|
62
|
+
dimensions: ClassificationDimensionConfiguration[];
|
|
63
|
+
}
|
|
64
|
+
/** Publishes the current draft as the next immutable version. */
|
|
65
|
+
export interface PublishClassificationTaxonomyRequest {
|
|
66
|
+
expectedRevision: number;
|
|
67
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONVERSATION_EVALUATIONS_COLLECTION = exports.CLASSIFICATION_TAXONOMY_VERSIONS_COLLECTION = void 0;
|
|
4
|
+
exports.CLASSIFICATION_TAXONOMY_VERSIONS_COLLECTION = 'classification_taxonomy_versions';
|
|
5
|
+
exports.CONVERSATION_EVALUATIONS_COLLECTION = 'conversation_evaluations';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ConversationClassificationDimension } from './ClassificationTaxonomy';
|
|
2
|
+
export type ConversationRelationshipType = 'new_contact' | 'acknowledgement' | 'continuation' | 'recontact_same_issue' | 'uncertain';
|
|
3
|
+
export type ConversationClassificationEvaluationStatus = 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
|
|
4
|
+
export type ClassificationSeverity = 'low' | 'medium' | 'high' | 'critical';
|
|
5
|
+
export type ClassificationFindingSource = 'ai' | 'system_rule' | 'manual_override';
|
|
6
|
+
/**
|
|
7
|
+
* Result of evaluating one resolved conversation against one published taxonomy version.
|
|
8
|
+
* The unique business key is spaceId + conversationId + conversationVersion + taxonomyVersion.
|
|
9
|
+
*/
|
|
10
|
+
export interface ConversationClassificationEvaluation {
|
|
11
|
+
id?: string;
|
|
12
|
+
spaceId: string;
|
|
13
|
+
conversationId: string;
|
|
14
|
+
analyticalCaseId: string;
|
|
15
|
+
conversationVersion: number;
|
|
16
|
+
contactId?: string;
|
|
17
|
+
resolvedAt: Date;
|
|
18
|
+
taxonomyId: string;
|
|
19
|
+
taxonomyVersion: number;
|
|
20
|
+
status: ConversationClassificationEvaluationStatus;
|
|
21
|
+
relationship: ConversationAnalyticalRelationship;
|
|
22
|
+
findings: ConversationClassificationFinding[];
|
|
23
|
+
processor?: ConversationClassificationProcessor;
|
|
24
|
+
idempotencyKey: string;
|
|
25
|
+
errorCode?: string;
|
|
26
|
+
errorMessage?: string;
|
|
27
|
+
createdAt: Date;
|
|
28
|
+
updatedAt: Date;
|
|
29
|
+
startedAt?: Date;
|
|
30
|
+
completedAt?: Date;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Groups operational conversations into an analytical case without modifying Conversation.
|
|
34
|
+
* For a new contact analyticalCaseId is normally the current conversationId.
|
|
35
|
+
*/
|
|
36
|
+
export interface ConversationAnalyticalRelationship {
|
|
37
|
+
analyticalCaseId: string;
|
|
38
|
+
parentConversationId?: string;
|
|
39
|
+
type: ConversationRelationshipType;
|
|
40
|
+
isNewContact: boolean;
|
|
41
|
+
confidence: number;
|
|
42
|
+
summary?: string;
|
|
43
|
+
evidenceMessageIds: string[];
|
|
44
|
+
}
|
|
45
|
+
export interface ConversationClassificationFinding {
|
|
46
|
+
id: string;
|
|
47
|
+
dimension: ConversationClassificationDimension;
|
|
48
|
+
categoryId: string;
|
|
49
|
+
categoryName: string;
|
|
50
|
+
subcategoryId?: string;
|
|
51
|
+
subcategoryName?: string;
|
|
52
|
+
primary: boolean;
|
|
53
|
+
severity?: ClassificationSeverity;
|
|
54
|
+
confidence: number;
|
|
55
|
+
summary?: string;
|
|
56
|
+
evidenceMessageIds: string[];
|
|
57
|
+
source: ClassificationFindingSource;
|
|
58
|
+
}
|
|
59
|
+
export interface ConversationClassificationProcessor {
|
|
60
|
+
provider: string;
|
|
61
|
+
model: string;
|
|
62
|
+
promptVersion: string;
|
|
63
|
+
runId?: string;
|
|
64
|
+
durationMs?: number;
|
|
65
|
+
inputTokens?: number;
|
|
66
|
+
outputTokens?: number;
|
|
67
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ConversationClassificationEvaluationStatus } from './ConversationClassificationEvaluation';
|
|
2
|
+
export declare const CONVERSATION_CLASSIFICATION_EVENT_TYPES: {
|
|
3
|
+
readonly CONVERSATION_RESOLVED_FOR_EVALUATION: "conversation.resolved-for-classification";
|
|
4
|
+
readonly EVALUATION_FINISHED: "conversation.classification-evaluation-finished";
|
|
5
|
+
};
|
|
6
|
+
export declare const CONVERSATION_CLASSIFICATION_EVENT_SCHEMA_VERSION: 1;
|
|
7
|
+
/**
|
|
8
|
+
* Payload emitted transactionally with conversation resolution through OutboxEvent.
|
|
9
|
+
* The evaluator resolves the taxonomy version effective at resolvedAt.
|
|
10
|
+
*/
|
|
11
|
+
export interface ConversationResolvedForClassificationEvent {
|
|
12
|
+
spaceId: string;
|
|
13
|
+
conversationId: string;
|
|
14
|
+
conversationVersion: number;
|
|
15
|
+
contactId?: string;
|
|
16
|
+
resolvedAt: Date;
|
|
17
|
+
correlationId: string;
|
|
18
|
+
}
|
|
19
|
+
/** Payload emitted when evaluation reaches completed, failed or skipped. */
|
|
20
|
+
export interface ConversationClassificationEvaluationFinishedEvent {
|
|
21
|
+
spaceId: string;
|
|
22
|
+
conversationId: string;
|
|
23
|
+
conversationVersion: number;
|
|
24
|
+
evaluationId: string;
|
|
25
|
+
taxonomyVersion: number;
|
|
26
|
+
status: ConversationClassificationEvaluationStatus;
|
|
27
|
+
finishedAt: Date;
|
|
28
|
+
correlationId: string;
|
|
29
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONVERSATION_CLASSIFICATION_EVENT_SCHEMA_VERSION = exports.CONVERSATION_CLASSIFICATION_EVENT_TYPES = void 0;
|
|
4
|
+
exports.CONVERSATION_CLASSIFICATION_EVENT_TYPES = {
|
|
5
|
+
CONVERSATION_RESOLVED_FOR_EVALUATION: 'conversation.resolved-for-classification',
|
|
6
|
+
EVALUATION_FINISHED: 'conversation.classification-evaluation-finished',
|
|
7
|
+
};
|
|
8
|
+
exports.CONVERSATION_CLASSIFICATION_EVENT_SCHEMA_VERSION = 1;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ClassificationTaxonomy"), exports);
|
|
18
|
+
__exportStar(require("./ConversationClassificationEvaluation"), exports);
|
|
19
|
+
__exportStar(require("./ConversationClassificationEvents"), exports);
|
|
@@ -164,7 +164,7 @@ export declare enum ConversationStatus {
|
|
|
164
164
|
FINALIZED = 3,// Alias for RESOLVED
|
|
165
165
|
WAITING = 10
|
|
166
166
|
}
|
|
167
|
-
export type InboxViewId = 'pending' | 'following' | 'sla_warning' | 'sla_breached' | 'team_sla_breached' | 'resolved';
|
|
167
|
+
export type InboxViewId = 'pending' | 'following' | 'sla_warning' | 'sla_breached' | 'team_sla_breached' | 'resolved' | 'label';
|
|
168
168
|
export type OwnerType = 'user' | 'bot' | 'flow' | 'none';
|
|
169
169
|
export interface NoConversationOwner {
|
|
170
170
|
type: 'none';
|
|
@@ -212,35 +212,35 @@ export type ConversationAssignmentSnapshot = {
|
|
|
212
212
|
offerExpiresAt?: never;
|
|
213
213
|
assignedAt?: never;
|
|
214
214
|
acceptedAt?: never;
|
|
215
|
-
} |
|
|
215
|
+
} | QueuedConversationAssignmentBase & {
|
|
216
216
|
status: 'queued' | 'routing';
|
|
217
217
|
owner: NoConversationOwner;
|
|
218
218
|
offeredAt?: never;
|
|
219
219
|
offerExpiresAt?: never;
|
|
220
220
|
assignedAt?: never;
|
|
221
221
|
acceptedAt?: never;
|
|
222
|
-
}
|
|
222
|
+
} | QueuedConversationAssignmentBase & {
|
|
223
223
|
status: 'offered';
|
|
224
224
|
owner: UserConversationOwner;
|
|
225
225
|
offeredAt: Date;
|
|
226
226
|
offerExpiresAt?: Date;
|
|
227
227
|
assignedAt?: never;
|
|
228
228
|
acceptedAt?: never;
|
|
229
|
-
}
|
|
229
|
+
} | QueuedConversationAssignmentBase & {
|
|
230
230
|
status: 'assigned';
|
|
231
231
|
owner: UserConversationOwner;
|
|
232
232
|
offeredAt?: Date;
|
|
233
233
|
offerExpiresAt?: Date;
|
|
234
234
|
assignedAt: Date;
|
|
235
235
|
acceptedAt?: never;
|
|
236
|
-
}
|
|
236
|
+
} | QueuedConversationAssignmentBase & {
|
|
237
237
|
status: 'accepted';
|
|
238
238
|
owner: UserConversationOwner;
|
|
239
239
|
offeredAt?: Date;
|
|
240
240
|
offerExpiresAt?: Date;
|
|
241
241
|
assignedAt: Date;
|
|
242
242
|
acceptedAt: Date;
|
|
243
|
-
}
|
|
243
|
+
};
|
|
244
244
|
export type ActorType = 'user' | 'contact' | 'bot' | 'flow' | 'system';
|
|
245
245
|
export type ParticipantRole = 'owner' | 'collaborator' | 'follower' | 'mentioned' | 'supervisor' | 'bot' | 'flow' | 'historical';
|
|
246
246
|
export type ConversationEventType = 'conversation_created' | 'queued' | 'assigned' | 'accepted' | 'transferred' | 'consult_requested' | 'collaborator_added' | 'participant_added' | 'participant_removed' | 'participation_abandoned' | 'follow_started' | 'follow_stopped' | 'message_sent' | 'message_received' | 'internal_note_added' | 'bot_started' | 'bot_finished' | 'flow_started' | 'flow_finished' | 'status_changed' | 'resolved' | 'reopened' | 'sla_warning' | 'sla_breached' | 'sla_started' | 'sla_paused' | 'sla_resumed' | 'sla_met' | 'sla_overridden';
|
|
@@ -274,15 +274,15 @@ interface ConversationSubscriptionBase {
|
|
|
274
274
|
* A subscription is persistent product intent. Assignment or participation
|
|
275
275
|
* visibility must not create it unless an explicit auto-follow policy applies.
|
|
276
276
|
*/
|
|
277
|
-
export type ConversationSubscription =
|
|
277
|
+
export type ConversationSubscription = ConversationSubscriptionBase & {
|
|
278
278
|
status: 'following';
|
|
279
279
|
followedAt: Date;
|
|
280
280
|
unfollowedAt?: never;
|
|
281
|
-
}
|
|
281
|
+
} | ConversationSubscriptionBase & {
|
|
282
282
|
status: 'unfollowed';
|
|
283
283
|
followedAt: Date;
|
|
284
284
|
unfollowedAt: Date;
|
|
285
|
-
}
|
|
285
|
+
};
|
|
286
286
|
export interface PutConversationSubscriptionRequest {
|
|
287
287
|
expectedVersion?: number;
|
|
288
288
|
notifications: ConversationSubscriptionNotifications;
|
|
@@ -308,7 +308,7 @@ export interface PutConversationReadStateRequest {
|
|
|
308
308
|
export interface PutConversationPinRequest {
|
|
309
309
|
pinned: boolean;
|
|
310
310
|
}
|
|
311
|
-
export type InboxVisibilityReason = 'manual_follow' | 'assigned_to_user' | 'shared_queue_member' | 'queue_claimable' | 'active_participant' | 'sla_warning_owner' | 'sla_breached_owner' | 'supervised_queue_sla' | 'supervisor_escalation' | 'resolved_visible';
|
|
311
|
+
export type InboxVisibilityReason = 'manual_follow' | 'assigned_to_user' | 'shared_queue_member' | 'queue_claimable' | 'active_participant' | 'sla_warning_owner' | 'sla_breached_owner' | 'supervised_queue_sla' | 'supervisor_escalation' | 'resolved_visible' | 'labeled';
|
|
312
312
|
export interface ConversationInboxSnapshot {
|
|
313
313
|
interactionKind: 'private' | 'wall_post' | 'comment' | 'mention';
|
|
314
314
|
channelType: string;
|
|
@@ -331,12 +331,21 @@ export interface ConversationInboxSnapshot {
|
|
|
331
331
|
deadlineAt?: Date;
|
|
332
332
|
};
|
|
333
333
|
lastActivityAt: Date;
|
|
334
|
+
labels: {
|
|
335
|
+
id: ID;
|
|
336
|
+
name: string;
|
|
337
|
+
color?: string;
|
|
338
|
+
}[];
|
|
334
339
|
}
|
|
335
340
|
/**
|
|
336
341
|
* Membership of one materialized conversation in one logical inbox view.
|
|
337
342
|
*
|
|
338
343
|
* visibilityReasons has set semantics: values must be unique and non-empty.
|
|
339
344
|
* Removing one reason preserves the view while at least one reason remains.
|
|
345
|
+
*
|
|
346
|
+
* labelId is only populated when viewId is 'label' - identifies which of the
|
|
347
|
+
* space's labels this particular view entry represents (InboxViewId is a
|
|
348
|
+
* fixed enum, but labels are dynamic per space).
|
|
340
349
|
*/
|
|
341
350
|
export interface UserInboxItemView {
|
|
342
351
|
viewId: InboxViewId;
|
|
@@ -345,12 +354,16 @@ export interface UserInboxItemView {
|
|
|
345
354
|
...InboxVisibilityReason[]
|
|
346
355
|
];
|
|
347
356
|
requiresAction: boolean;
|
|
357
|
+
labelId?: ID;
|
|
348
358
|
}
|
|
349
359
|
/**
|
|
350
360
|
* Materialized read model. There is exactly one document for each
|
|
351
361
|
* spaceId + userId + conversationId tuple.
|
|
352
362
|
*
|
|
353
|
-
* views must contain unique viewId values
|
|
363
|
+
* views must contain unique viewId values, EXCEPT for viewId='label': a
|
|
364
|
+
* conversation can carry multiple labels, so multiple entries with
|
|
365
|
+
* viewId='label' are allowed as long as their labelId differs (unique
|
|
366
|
+
* (viewId, labelId) pairs for that case). Delete the document when the last
|
|
354
367
|
* view is removed.
|
|
355
368
|
*/
|
|
356
369
|
export interface UserInboxItemDocument {
|
|
@@ -370,7 +383,8 @@ export interface UserInboxItemDocument {
|
|
|
370
383
|
projectedAt: Date;
|
|
371
384
|
}
|
|
372
385
|
/**
|
|
373
|
-
* Materialized counters for exactly one user/view pair
|
|
386
|
+
* Materialized counters for exactly one user/view pair (user/view/label when
|
|
387
|
+
* viewId is 'label' - labelId becomes part of the logical key in that case).
|
|
374
388
|
*
|
|
375
389
|
* total and requiresAction count conversations, never visibility reasons.
|
|
376
390
|
* unread counts conversations whose snapshot.unreadCount is greater than zero,
|
|
@@ -381,6 +395,7 @@ export interface UserInboxCounterDocument {
|
|
|
381
395
|
spaceId: ID;
|
|
382
396
|
userId: ID;
|
|
383
397
|
viewId: InboxViewId;
|
|
398
|
+
labelId?: ID;
|
|
384
399
|
total: number;
|
|
385
400
|
requiresAction: number;
|
|
386
401
|
unread: number;
|
|
@@ -11,7 +11,7 @@ export declare const INBOX_PROCESSOR_RECEIPTS_COLLECTION = "inbox_processor_rece
|
|
|
11
11
|
* InboxAudienceResolver receives as input.
|
|
12
12
|
*/
|
|
13
13
|
export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
|
|
14
|
-
readonly name:
|
|
14
|
+
readonly name: "uq_subscription_user_conversation";
|
|
15
15
|
readonly key: {
|
|
16
16
|
readonly spaceId: 1;
|
|
17
17
|
readonly userId: 1;
|
|
@@ -19,7 +19,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
|
|
|
19
19
|
};
|
|
20
20
|
readonly unique: true;
|
|
21
21
|
}, {
|
|
22
|
-
readonly name:
|
|
22
|
+
readonly name: "ix_subscription_conversation_followers";
|
|
23
23
|
readonly key: {
|
|
24
24
|
readonly spaceId: 1;
|
|
25
25
|
readonly conversationId: 1;
|
|
@@ -35,7 +35,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
|
|
|
35
35
|
* must not combine multiple array paths.
|
|
36
36
|
*/
|
|
37
37
|
export declare const USER_INBOX_ITEM_INDEXES: readonly [{
|
|
38
|
-
readonly name:
|
|
38
|
+
readonly name: "uq_inbox_item_user_conversation";
|
|
39
39
|
readonly key: {
|
|
40
40
|
readonly spaceId: 1;
|
|
41
41
|
readonly userId: 1;
|
|
@@ -43,7 +43,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
|
|
|
43
43
|
};
|
|
44
44
|
readonly unique: true;
|
|
45
45
|
}, {
|
|
46
|
-
readonly name:
|
|
46
|
+
readonly name: "ix_inbox_view_activity";
|
|
47
47
|
readonly key: {
|
|
48
48
|
readonly spaceId: 1;
|
|
49
49
|
readonly userId: 1;
|
|
@@ -53,7 +53,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
|
|
|
53
53
|
readonly id: -1;
|
|
54
54
|
};
|
|
55
55
|
}, {
|
|
56
|
-
readonly name:
|
|
56
|
+
readonly name: "ix_inbox_view_priority";
|
|
57
57
|
readonly key: {
|
|
58
58
|
readonly spaceId: 1;
|
|
59
59
|
readonly userId: 1;
|
|
@@ -64,7 +64,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
|
|
|
64
64
|
readonly id: -1;
|
|
65
65
|
};
|
|
66
66
|
}, {
|
|
67
|
-
readonly name:
|
|
67
|
+
readonly name: "ix_inbox_view_status_activity";
|
|
68
68
|
readonly key: {
|
|
69
69
|
readonly spaceId: 1;
|
|
70
70
|
readonly userId: 1;
|
|
@@ -74,7 +74,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
|
|
|
74
74
|
readonly id: -1;
|
|
75
75
|
};
|
|
76
76
|
}, {
|
|
77
|
-
readonly name:
|
|
77
|
+
readonly name: "ix_inbox_view_queue_activity";
|
|
78
78
|
readonly key: {
|
|
79
79
|
readonly spaceId: 1;
|
|
80
80
|
readonly userId: 1;
|
|
@@ -91,7 +91,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
|
|
|
91
91
|
* spaceId + userId prefix.
|
|
92
92
|
*/
|
|
93
93
|
export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
|
|
94
|
-
readonly name:
|
|
94
|
+
readonly name: "uq_inbox_counter_user_view";
|
|
95
95
|
readonly key: {
|
|
96
96
|
readonly spaceId: 1;
|
|
97
97
|
readonly userId: 1;
|
|
@@ -103,7 +103,7 @@ export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
|
|
|
103
103
|
* MongoDB indexes for durable processor idempotency receipts.
|
|
104
104
|
*/
|
|
105
105
|
export declare const INBOX_PROCESSOR_RECEIPT_INDEXES: readonly [{
|
|
106
|
-
readonly name:
|
|
106
|
+
readonly name: "uq_inbox_processor_source_scope";
|
|
107
107
|
readonly key: {
|
|
108
108
|
readonly processor: 1;
|
|
109
109
|
readonly sourceEventId: 1;
|
|
@@ -144,11 +144,11 @@ interface InboxPageQueryBase {
|
|
|
144
144
|
viewId: InboxViewId;
|
|
145
145
|
limit: number;
|
|
146
146
|
}
|
|
147
|
-
export type InboxPageQuery =
|
|
147
|
+
export type InboxPageQuery = InboxPageQueryBase & {
|
|
148
148
|
sort: 'activity';
|
|
149
149
|
cursor?: InboxActivityCursor;
|
|
150
|
-
}
|
|
150
|
+
} | InboxPageQueryBase & {
|
|
151
151
|
sort: 'priority';
|
|
152
152
|
cursor?: InboxPriorityCursor;
|
|
153
|
-
}
|
|
153
|
+
};
|
|
154
154
|
export {};
|
|
@@ -26,27 +26,27 @@ export interface PartyOwnerAssigneeResolver {
|
|
|
26
26
|
mode: 'prefer' | 'required';
|
|
27
27
|
}
|
|
28
28
|
export type QueueOwnerAssigneeResolver = PartyOwnerAssigneeResolver;
|
|
29
|
-
export type QueueRoutingPolicy =
|
|
29
|
+
export type QueueRoutingPolicy = QueueRoutingPolicyBase & {
|
|
30
30
|
distributionMode: 'shared';
|
|
31
31
|
strategy?: never;
|
|
32
32
|
ownerResolver?: never;
|
|
33
|
-
}
|
|
33
|
+
} | QueueRoutingPolicyBase & {
|
|
34
34
|
distributionMode: 'manual_pull';
|
|
35
35
|
strategy?: never;
|
|
36
36
|
ownerResolver?: never;
|
|
37
|
-
}
|
|
37
|
+
} | QueueRoutingPolicyBase & {
|
|
38
38
|
distributionMode: 'exclusive';
|
|
39
39
|
strategy: QueueRoutingStrategy;
|
|
40
|
-
ownerResolver?: undefined |
|
|
40
|
+
ownerResolver?: undefined | PartyOwnerAssigneeResolver & {
|
|
41
41
|
mode: 'prefer';
|
|
42
|
-
}
|
|
43
|
-
}
|
|
42
|
+
};
|
|
43
|
+
} | QueueRoutingPolicyBase & {
|
|
44
44
|
distributionMode: 'exclusive';
|
|
45
45
|
strategy?: never;
|
|
46
46
|
ownerResolver: PartyOwnerAssigneeResolver & {
|
|
47
47
|
mode: 'required';
|
|
48
48
|
};
|
|
49
|
-
}
|
|
49
|
+
};
|
|
50
50
|
export type QueueRoutingConfig = QueueRoutingPolicy & {
|
|
51
51
|
queueId: string;
|
|
52
52
|
spaceId: string;
|
|
@@ -133,15 +133,15 @@ export type PartyOwnerAssigneeEvaluation = {
|
|
|
133
133
|
}>;
|
|
134
134
|
outcome: 'selected';
|
|
135
135
|
nextStep?: never;
|
|
136
|
-
} |
|
|
136
|
+
} | FailedPartyOwnerEvaluation & {
|
|
137
137
|
type: 'party_owner';
|
|
138
138
|
mode: 'prefer';
|
|
139
139
|
nextStep: 'strategy';
|
|
140
|
-
}
|
|
140
|
+
} | FailedPartyOwnerEvaluation & {
|
|
141
141
|
type: 'party_owner';
|
|
142
142
|
mode: 'required';
|
|
143
143
|
nextStep: 'fallback';
|
|
144
|
-
}
|
|
144
|
+
};
|
|
145
145
|
export interface RoutingDecision {
|
|
146
146
|
decisionId: string;
|
|
147
147
|
spaceId: string;
|
|
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
35
25
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
27
|
};
|
|
@@ -58,3 +48,4 @@ __exportStar(require("./Queue"), exports);
|
|
|
58
48
|
__exportStar(require("./Routing"), exports);
|
|
59
49
|
__exportStar(require("./Sla"), exports);
|
|
60
50
|
__exportStar(require("./Transfer"), exports);
|
|
51
|
+
__exportStar(require("./Classifications"), exports);
|