@trii/types 2.10.765 → 2.10.767
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/AI/MapPolygon.d.ts +22 -0
- package/dist/Automations/Events/Event.d.ts +3 -3
- package/dist/Common/Messages/Message.d.ts +1 -0
- package/dist/Contacts/CommunicationEndpoint.d.ts +8 -8
- package/dist/Conversations/Assignment.d.ts +11 -3
- package/dist/Conversations/Classifications/ConversationClassificationEvents.d.ts +2 -2
- package/dist/Conversations/Conversation.d.ts +67 -17
- package/dist/Conversations/ConversationAutomationState.d.ts +28 -6
- package/dist/Conversations/Flows/Nodes/NodeAIChatBot.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeAIChatBot.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeApi.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeApi.js +183 -0
- package/dist/Conversations/Flows/Nodes/NodeBotIA.d.ts +15 -0
- package/dist/Conversations/Flows/Nodes/NodeBotIA.js +6 -0
- package/dist/Conversations/Flows/Nodes/NodeChatBotIA.d.ts +15 -0
- package/dist/Conversations/Flows/Nodes/NodeChatBotIA.js +6 -0
- package/dist/Conversations/Flows/Nodes/NodeConditional.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConditional.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeContactSearch.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeContactSearch.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeContactUpdate.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeContactUpdate.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConversationAssignTo.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConversationAssignTo.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConversationFinalize.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConversationFinalize.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConversationUpdate.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeConversationUpdate.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeFillForm.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeFillForm.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeFillTicket.d.ts +1 -0
- package/dist/Conversations/Flows/Nodes/NodeFillTicket.js +9 -0
- package/dist/Conversations/Flows/Nodes/NodeGoogleCalendar.d.ts +20 -0
- package/dist/Conversations/Flows/Nodes/NodeGoogleCalendar.js +2 -0
- package/dist/Conversations/Flows/Nodes/NodeGoogleMaps copy.d.ts +12 -0
- package/dist/Conversations/Flows/Nodes/NodeGoogleMaps copy.js +6 -0
- package/dist/Conversations/Flows/Nodes/NodeGoogleMaps.d.ts +15 -0
- package/dist/Conversations/Flows/Nodes/NodeGoogleMaps.js +2 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgReply.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgReply.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgSend.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgSend.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgText.d.ts +1 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgText.js +27 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgWaitResponse.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeMsgWaitResponse.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeRedirect.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeRedirect.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeSendEmail.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeSendEmail.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeSqlQuery.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeSqlQuery.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeStart.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeStart.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeTimeScheduleControl.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeTimeScheduleControl.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeTimeTimer.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeTimeTimer.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeTimeWaitUntil.d.ts +0 -0
- package/dist/Conversations/Flows/Nodes/NodeTimeWaitUntil.js +0 -0
- package/dist/Conversations/Flows/Nodes/NodeToolCalculator.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolCalculator.js +37 -0
- package/dist/Conversations/Flows/Nodes/NodeToolContacts.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolContacts.js +59 -0
- package/dist/Conversations/Flows/Nodes/NodeToolFunction.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolFunction.js +45 -0
- package/dist/Conversations/Flows/Nodes/NodeToolGoogleCalendar.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolGoogleCalendar.js +87 -0
- package/dist/Conversations/Flows/Nodes/NodeToolGoogleMaps.d.ts +1 -0
- package/dist/Conversations/Flows/Nodes/NodeToolGoogleMaps.js +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolKnowledge.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolKnowledge.js +52 -0
- package/dist/Conversations/Flows/Nodes/NodeToolMapsCheckPolygon.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolMapsCheckPolygon.js +59 -0
- package/dist/Conversations/Flows/Nodes/NodeToolMcpClient.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolMcpClient.js +45 -0
- package/dist/Conversations/Flows/Nodes/NodeToolShoppingCart.d.ts +2 -0
- package/dist/Conversations/Flows/Nodes/NodeToolShoppingCart.js +81 -0
- package/dist/Conversations/Flows/Nodes/index.d.ts +24 -0
- package/dist/Conversations/Flows/Nodes/index.js +40 -0
- package/dist/Conversations/Routing.d.ts +10 -10
- package/dist/Events/DomainEventTypes.d.ts +23 -23
- package/dist/Presence/ChannelRoutingState.d.ts +17 -0
- package/dist/Presence/ChannelRoutingState.js +9 -0
- package/dist/Tickets/AccessLevel.d.ts +5 -0
- package/dist/Tickets/AccessLevel.js +9 -0
- package/dist/src/Automations/Capabilities/Capability.d.ts +48 -0
- package/dist/src/Automations/Capabilities/Capability.js +9 -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 +47 -0
- package/dist/src/Automations/Common.js +18 -0
- package/dist/src/Automations/Events/Event.d.ts +41 -0
- package/dist/src/Automations/Events/Event.js +2 -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 +114 -0
- package/dist/src/Automations/Executions/Execution.js +23 -0
- package/dist/src/Automations/Executions/index.d.ts +1 -0
- package/dist/src/Automations/Executions/index.js +17 -0
- package/dist/src/Automations/Flows/Canvas.d.ts +86 -0
- package/dist/src/Automations/Flows/Canvas.js +34 -0
- package/dist/src/Automations/Flows/Flow.d.ts +102 -0
- package/dist/src/Automations/Flows/Flow.js +34 -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 +75 -0
- package/dist/src/Automations/Nodes/Node.js +18 -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 +26 -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 +241 -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/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 +77 -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 +1 -1
- package/dist/src/Conversations/DashBoard/dashboardForms.d.ts +0 -44
- package/dist/src/Conversations/DashBoard/dashboardForms.js +0 -24
- /package/dist/{Conversations/InboxProjection.js → AI/MapPolygon.js} +0 -0
- /package/dist/{Conversations → src/Conversations}/InboxMongo.d.ts +0 -0
- /package/dist/{Conversations → src/Conversations}/InboxMongo.js +0 -0
- /package/dist/{Conversations → src/Conversations}/InboxProjection.d.ts +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface Map {
|
|
2
|
+
id?: string | null;
|
|
3
|
+
spaceId: string | "";
|
|
4
|
+
name: string | "";
|
|
5
|
+
description: string | "";
|
|
6
|
+
layers: MapLayer[];
|
|
7
|
+
createdAt: Date;
|
|
8
|
+
createdBy: string;
|
|
9
|
+
updatedAt?: Date | null;
|
|
10
|
+
updatedBy?: string | null;
|
|
11
|
+
deletedAt?: Date | null;
|
|
12
|
+
deletedBy?: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface MapLayer {
|
|
15
|
+
id?: string | null;
|
|
16
|
+
spaceId: string | "";
|
|
17
|
+
name: string | "";
|
|
18
|
+
fileName: string | "";
|
|
19
|
+
fileUrl: string | "";
|
|
20
|
+
data?: object | null;
|
|
21
|
+
polygons?: object | null;
|
|
22
|
+
}
|
|
@@ -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;
|
|
@@ -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;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ID } from './Conversation';
|
|
2
|
-
export type ConversationAssignmentEventType = 'enqueued'
|
|
3
|
-
|
|
2
|
+
export type ConversationAssignmentEventType = 'enqueued'
|
|
3
|
+
/** @deprecated Planning is technical work; new writers retain queued. */
|
|
4
|
+
| 'routing_started' | 'offered' | 'assigned' | 'accepted' | 'transferred' | 'released' | 'timed_out' | 'requeued' | 'declined' | 'cancelled';
|
|
5
|
+
export type ConversationAssignmentReason = 'conversation_created' | 'routing_selected' | 'manual_assignment' | 'manual_transfer' | 'flow_routing' | 'offer_timeout' | 'assignment_timeout' | 'agent_accepted' | 'agent_released' | 'supervisor_released' | 'capacity_rebalance' | 'sla_escalation' | 'system_recovery' | 'transfer_cancelled' | 'transfer_declined' | 'agent_declined' | 'assignment_cancelled';
|
|
4
6
|
export type AssignmentOwnerReference = {
|
|
5
7
|
type: 'none';
|
|
6
8
|
id?: never;
|
|
@@ -10,6 +12,9 @@ export type AssignmentOwnerReference = {
|
|
|
10
12
|
id: ID;
|
|
11
13
|
displayName?: string;
|
|
12
14
|
};
|
|
15
|
+
/** Historical reference to the same lifecycle as ConversationAssignmentSnapshot.
|
|
16
|
+
* routing is read compatibility only. An existing assignmentId does not imply completion.
|
|
17
|
+
*/
|
|
13
18
|
export type AssignmentStateReference = {
|
|
14
19
|
status: 'unrouted';
|
|
15
20
|
assignmentId?: never;
|
|
@@ -48,9 +53,12 @@ export type AssignmentActorReference = {
|
|
|
48
53
|
displayName?: string;
|
|
49
54
|
};
|
|
50
55
|
/**
|
|
51
|
-
* Immutable domain event stored in
|
|
56
|
+
* Immutable domain event stored in ConversationEvents.
|
|
52
57
|
*
|
|
53
58
|
* Events must only be inserted. Corrections are represented by a new event.
|
|
59
|
+
* Record previous/current atomically with the transition and durable publication.
|
|
60
|
+
* A decline/timeout/cancellation records the resulting queued state, with a new cycle ID.
|
|
61
|
+
* Transfer request outcomes concern pendingTransfer and may leave assignment unchanged.
|
|
54
62
|
*/
|
|
55
63
|
export interface ConversationAssignmentEvent {
|
|
56
64
|
id: ID;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ConversationClassificationEvaluationStatus } from './ConversationClassificationEvaluation';
|
|
2
2
|
export declare const CONVERSATION_CLASSIFICATION_EVENT_TYPES: {
|
|
3
|
-
readonly CONVERSATION_RESOLVED_FOR_EVALUATION:
|
|
4
|
-
readonly EVALUATION_FINISHED:
|
|
3
|
+
readonly CONVERSATION_RESOLVED_FOR_EVALUATION: "conversation.resolved-for-classification";
|
|
4
|
+
readonly EVALUATION_FINISHED: "conversation.classification-evaluation-finished";
|
|
5
5
|
};
|
|
6
6
|
export declare const CONVERSATION_CLASSIFICATION_EVENT_SCHEMA_VERSION: 1;
|
|
7
7
|
/**
|
|
@@ -69,10 +69,11 @@ export interface IConversation {
|
|
|
69
69
|
externalMessagingWindowEndAt?: Date;
|
|
70
70
|
/**
|
|
71
71
|
* Automatización que controla la conversación; null si no hay ejecución registrada.
|
|
72
|
-
* Actualizar con control de version y
|
|
72
|
+
* Actualizar con control de version y automation.workflowId para rechazar eventos antiguos.
|
|
73
|
+
* Cada ejecución puntual tiene su executionId, pero no reemplaza la identidad del workflow.
|
|
73
74
|
*/
|
|
74
75
|
automation?: ConversationAutomationState | null;
|
|
75
|
-
/** @deprecated Id
|
|
76
|
+
/** @deprecated Id del workflow completo legacy. Usar automation.workflowId. */
|
|
76
77
|
workflowId?: string;
|
|
77
78
|
/** @deprecated Usar automation.status; con automation presente no controla SLA. */
|
|
78
79
|
botStatus: ConversationBotStatus;
|
|
@@ -238,15 +239,62 @@ export interface FlowConversationOwner {
|
|
|
238
239
|
avatarUrl?: string;
|
|
239
240
|
}
|
|
240
241
|
export type ConversationOwner = NoConversationOwner | UserConversationOwner | BotConversationOwner | FlowConversationOwner;
|
|
241
|
-
|
|
242
|
-
|
|
242
|
+
/** Assignment lifecycle, independent of Conversation.status, pendingTransfer and sla.
|
|
243
|
+
* Finalization preserves the last snapshot for history but disables its operational effects.
|
|
244
|
+
*/
|
|
245
|
+
export type ConversationAssignmentStatus =
|
|
246
|
+
/** Outside human queue distribution. Bot/flow ownership is legacy; use automation. */
|
|
247
|
+
'unrouted'
|
|
248
|
+
/** In a queue without an individual owner, including shared/manual_pull queues. */
|
|
249
|
+
| 'queued'
|
|
250
|
+
/** @deprecated Technical worker state. New writers keep queued while planning. */
|
|
251
|
+
| 'routing'
|
|
252
|
+
/** Proposed user; responsibility is not confirmed until acceptance. */
|
|
253
|
+
| 'offered'
|
|
254
|
+
/** Effective responsibility without an explicit acceptance requirement. */
|
|
255
|
+
| 'assigned'
|
|
256
|
+
/** Effective responsibility explicitly accepted (including an agent taking work). */
|
|
257
|
+
| 'accepted';
|
|
258
|
+
/** Origen del ciclo identificado por assignmentId, no de su última transición.
|
|
259
|
+
* Se conserva al ofrecer, aceptar o tomar una conversación dentro del mismo ciclo.
|
|
260
|
+
* El actor y el motivo de cada acción se registran en el evento de asignación.
|
|
261
|
+
*/
|
|
262
|
+
export type ConversationAssignmentSource =
|
|
263
|
+
/** Ciclo iniciado por las reglas de enrutamiento, por ejemplo al ingresar a la
|
|
264
|
+
* cola configurada en el canal. No implica que ya exista un usuario seleccionado.
|
|
265
|
+
*/
|
|
266
|
+
'routing'
|
|
267
|
+
/** Ciclo iniciado por una asignación manual explícita de un usuario autorizado.
|
|
268
|
+
* Tomar o aceptar una asignación existente conserva su source; no la convierte en manual.
|
|
269
|
+
*/
|
|
270
|
+
| 'manual'
|
|
271
|
+
/** Ciclo creado al hacerse efectiva una transferencia a otra cola o responsable,
|
|
272
|
+
* solicitada por un usuario o una automatización. Una transferencia pendiente
|
|
273
|
+
* no modifica el source de la asignación origen.
|
|
274
|
+
*/
|
|
275
|
+
| 'transfer'
|
|
276
|
+
/** Nuevo ciclo de espera tras rechazo, vencimiento, cancelación de oferta,
|
|
277
|
+
* liberación o desborde a otra cola. Solo aplica cuando se reencola efectivamente;
|
|
278
|
+
* reintentar el procesamiento sin cambiar de ciclo conserva el source anterior.
|
|
279
|
+
*/
|
|
280
|
+
| 'requeue';
|
|
243
281
|
interface QueuedConversationAssignmentBase {
|
|
282
|
+
/** Assignment cycle identity, present from enqueue. Preserve through offer/acceptance;
|
|
283
|
+
* replace on requeue or effective change of queue/owner, never on a retry.
|
|
284
|
+
*/
|
|
244
285
|
assignmentId: ID;
|
|
245
286
|
queueId: ID;
|
|
246
287
|
source: ConversationAssignmentSource;
|
|
288
|
+
/** UTC start of this cycle in this queue. Preserve through offer/acceptance.
|
|
289
|
+
* Direct assignments use the transition time; SLA history is managed separately.
|
|
290
|
+
*/
|
|
247
291
|
queuedAt: Date;
|
|
248
292
|
lastRoutingDecisionId?: ID;
|
|
249
293
|
}
|
|
294
|
+
/** Current state only. Rejection, timeout, release and transfer are events, not states.
|
|
295
|
+
* All transitions require an open conversation, authorization, identity and version guards.
|
|
296
|
+
* See docs/conversation-contracts-migration.md for the transition table and migration rules.
|
|
297
|
+
*/
|
|
250
298
|
export type ConversationAssignmentSnapshot = {
|
|
251
299
|
status: 'unrouted';
|
|
252
300
|
assignmentId?: never;
|
|
@@ -259,35 +307,37 @@ export type ConversationAssignmentSnapshot = {
|
|
|
259
307
|
offerExpiresAt?: never;
|
|
260
308
|
assignedAt?: never;
|
|
261
309
|
acceptedAt?: never;
|
|
262
|
-
} |
|
|
310
|
+
} | QueuedConversationAssignmentBase & {
|
|
263
311
|
status: 'queued' | 'routing';
|
|
264
312
|
owner: NoConversationOwner;
|
|
265
313
|
offeredAt?: never;
|
|
266
314
|
offerExpiresAt?: never;
|
|
267
315
|
assignedAt?: never;
|
|
268
316
|
acceptedAt?: never;
|
|
269
|
-
}
|
|
317
|
+
} | QueuedConversationAssignmentBase & {
|
|
270
318
|
status: 'offered';
|
|
271
319
|
owner: UserConversationOwner;
|
|
272
320
|
offeredAt: Date;
|
|
273
|
-
|
|
321
|
+
/** UTC, strictly after offeredAt. New offers must have a finite acceptance window. */
|
|
322
|
+
offerExpiresAt: Date;
|
|
274
323
|
assignedAt?: never;
|
|
275
324
|
acceptedAt?: never;
|
|
276
|
-
}
|
|
325
|
+
} | QueuedConversationAssignmentBase & {
|
|
277
326
|
status: 'assigned';
|
|
278
327
|
owner: UserConversationOwner;
|
|
279
|
-
offeredAt?:
|
|
280
|
-
offerExpiresAt?:
|
|
328
|
+
offeredAt?: null;
|
|
329
|
+
offerExpiresAt?: null;
|
|
281
330
|
assignedAt: Date;
|
|
282
331
|
acceptedAt?: never;
|
|
283
|
-
}
|
|
332
|
+
} | QueuedConversationAssignmentBase & {
|
|
284
333
|
status: 'accepted';
|
|
285
334
|
owner: UserConversationOwner;
|
|
286
|
-
|
|
287
|
-
|
|
335
|
+
/** Present after accepting an offer; absent/null when taking work directly. */
|
|
336
|
+
offeredAt?: Date | null;
|
|
337
|
+
offerExpiresAt?: null;
|
|
288
338
|
assignedAt: Date;
|
|
289
339
|
acceptedAt: Date;
|
|
290
|
-
}
|
|
340
|
+
};
|
|
291
341
|
export type ActorType = 'user' | 'contact' | 'bot' | 'flow' | 'system';
|
|
292
342
|
export type ParticipantRole = 'owner' | 'collaborator' | 'follower' | 'mentioned' | 'supervisor' | 'bot' | 'flow' | 'historical';
|
|
293
343
|
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';
|
|
@@ -321,15 +371,15 @@ interface ConversationSubscriptionBase {
|
|
|
321
371
|
* A subscription is persistent product intent. Assignment or participation
|
|
322
372
|
* visibility must not create it unless an explicit auto-follow policy applies.
|
|
323
373
|
*/
|
|
324
|
-
export type ConversationSubscription =
|
|
374
|
+
export type ConversationSubscription = ConversationSubscriptionBase & {
|
|
325
375
|
status: 'following';
|
|
326
376
|
followedAt: Date;
|
|
327
377
|
unfollowedAt?: never;
|
|
328
|
-
}
|
|
378
|
+
} | ConversationSubscriptionBase & {
|
|
329
379
|
status: 'unfollowed';
|
|
330
380
|
followedAt: Date;
|
|
331
381
|
unfollowedAt: Date;
|
|
332
|
-
}
|
|
382
|
+
};
|
|
333
383
|
export interface PutConversationSubscriptionRequest {
|
|
334
384
|
expectedVersion?: number;
|
|
335
385
|
notifications: ConversationSubscriptionNotifications;
|
|
@@ -2,13 +2,17 @@ export type ConversationAutomationStatus = 'running' | 'completed' | 'cancelled'
|
|
|
2
2
|
/**
|
|
3
3
|
* Automatización que controla la conversación, como máximo una a la vez.
|
|
4
4
|
* No representa tareas auxiliares en segundo plano ni su historial.
|
|
5
|
-
*
|
|
5
|
+
* El estado corresponde al workflow completo, no a cada ejecución puntual (executionId).
|
|
6
|
+
* running incluye esperas internas y reintentos; failed significa fallo terminal del workflow.
|
|
7
|
+
* Terminar una ejecución puntual no termina el workflow.
|
|
6
8
|
*/
|
|
7
9
|
export interface ConversationAutomationState {
|
|
8
10
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
11
|
+
* Identifica el workflow (WorkFlow.id): ejecución completa de una configuración flow/automation.
|
|
12
|
+
* Cada ejecución puntual tiene su executionId, por ejemplo la disparada por un mensaje entrante.
|
|
13
|
+
* Esas ejecuciones conservan workflowId. Solo un workflow nuevo reemplaza esta identidad.
|
|
14
|
+
* Eventos de otro workflow no pueden modificar el estado ni reanudar sus SLA;
|
|
15
|
+
* eventos del mismo workflow también requieren control de versión para evitar regresiones.
|
|
12
16
|
*/
|
|
13
17
|
workflowId: string;
|
|
14
18
|
/**
|
|
@@ -16,12 +20,30 @@ export interface ConversationAutomationState {
|
|
|
16
20
|
* a un humano. Ningún estado terminal finaliza por sí solo la conversación.
|
|
17
21
|
*/
|
|
18
22
|
status: ConversationAutomationStatus;
|
|
19
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Referencia visual al agente IA que controla actualmente las respuestas al cliente.
|
|
25
|
+
* Opcional mientras running; null/ausente no implica que el workflow haya terminado.
|
|
26
|
+
* Establecer al tomar el control, reemplazar si cambia el agente y limpiar al devolver
|
|
27
|
+
* el control al flow/humano o terminar el workflow. No representa tareas auxiliares.
|
|
28
|
+
* Actualizar con workflowId y Conversation.version vigentes para rechazar eventos atrasados.
|
|
29
|
+
* No agrega participantes ni concede permisos; no modifica assignment ni controla SLA.
|
|
30
|
+
*/
|
|
31
|
+
activeAiAgent?: ConversationActiveAiAgent | null;
|
|
32
|
+
/** Fecha efectiva UTC en que el workflow tomó el control; no se reinicia por cada executionId. */
|
|
20
33
|
startedAt: Date;
|
|
21
34
|
/**
|
|
22
35
|
* Null mientras running; obligatoria en estados terminales y no anterior a startedAt.
|
|
23
36
|
* Fecha efectiva UTC de devolución del control. Conservar el objeto terminal hasta
|
|
24
|
-
*
|
|
37
|
+
* el siguiente workflow permite reconocer eventos atrasados.
|
|
25
38
|
*/
|
|
26
39
|
endedAt?: Date | null;
|
|
27
40
|
}
|
|
41
|
+
/** Identidad visual del agente IA activo; no es una cuenta de usuario ni historial. */
|
|
42
|
+
export interface ConversationActiveAiAgent {
|
|
43
|
+
/** Identificador estable del agente IA, no userId, workflowId ni executionId. */
|
|
44
|
+
id: string;
|
|
45
|
+
/** Nombre del agente para mostrar en el CRM. */
|
|
46
|
+
name: string;
|
|
47
|
+
/** Avatar opcional; sin imagen, la interfaz puede mostrar un icono de IA. */
|
|
48
|
+
imageUrl?: string | null;
|
|
49
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultNodeApi = void 0;
|
|
4
|
+
const Flow_1 = require("../Flow");
|
|
5
|
+
exports.defaultNodeApi = {
|
|
6
|
+
id: "NodeApi-{uid}",
|
|
7
|
+
type: Flow_1.NodeType.API,
|
|
8
|
+
category: 'action',
|
|
9
|
+
description: "Node for making API calls, allowing for dynamic interactions with external services.",
|
|
10
|
+
tags: [],
|
|
11
|
+
version: 1,
|
|
12
|
+
asyncLoadHandlesOut: false,
|
|
13
|
+
handlesIn: [
|
|
14
|
+
{
|
|
15
|
+
id: "in",
|
|
16
|
+
type: 'target',
|
|
17
|
+
position: 'left',
|
|
18
|
+
name: "IN",
|
|
19
|
+
nameKey: 'NODE_API_IN',
|
|
20
|
+
showName: false,
|
|
21
|
+
multiple: false
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
handlesOut: [
|
|
25
|
+
{
|
|
26
|
+
id: "onNext",
|
|
27
|
+
type: 'source',
|
|
28
|
+
position: 'right',
|
|
29
|
+
name: "Next",
|
|
30
|
+
nameKey: 'NODE_API_NEXT',
|
|
31
|
+
showName: true,
|
|
32
|
+
multiple: false
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
name: "API Node",
|
|
36
|
+
nameKey: 'NODE_API_NAME',
|
|
37
|
+
enableStatics: false,
|
|
38
|
+
properties: [
|
|
39
|
+
{
|
|
40
|
+
type: 'string',
|
|
41
|
+
id: 'url',
|
|
42
|
+
label: 'URL',
|
|
43
|
+
labelKey: 'NODE_API_URL',
|
|
44
|
+
optional: false,
|
|
45
|
+
default: '',
|
|
46
|
+
placeholder: 'Enter the URL for the API endpoint',
|
|
47
|
+
description: 'The URL of the API endpoint to which the request will be sent.'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'options',
|
|
51
|
+
id: 'method',
|
|
52
|
+
label: 'Method',
|
|
53
|
+
labelKey: 'NODE_API_METHOD',
|
|
54
|
+
optional: false,
|
|
55
|
+
default: 'GET',
|
|
56
|
+
options: [
|
|
57
|
+
{ id: 'GET', label: 'GET' },
|
|
58
|
+
{ id: 'POST', label: 'POST' },
|
|
59
|
+
{ id: 'PUT', label: 'PUT' },
|
|
60
|
+
{ id: 'DELETE', label: 'DELETE' },
|
|
61
|
+
{ id: 'PATCH', label: 'PATCH' },
|
|
62
|
+
{ id: 'HEAD', label: 'HEAD' },
|
|
63
|
+
{ id: 'OPTIONS', label: 'OPTIONS' }
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'options',
|
|
68
|
+
id: 'authType',
|
|
69
|
+
label: 'Authentication Type',
|
|
70
|
+
labelKey: 'NODE_API_AUTH_TYPE',
|
|
71
|
+
optional: true,
|
|
72
|
+
default: 'NONE',
|
|
73
|
+
options: [
|
|
74
|
+
{ id: 'NONE', label: 'None' },
|
|
75
|
+
{ id: 'BASIC', label: 'Basic Auth' },
|
|
76
|
+
{ id: 'API_KEY', label: 'API Key' },
|
|
77
|
+
{ id: 'BEARER', label: 'Bearer Token' }
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'array',
|
|
82
|
+
id: 'authBasic',
|
|
83
|
+
label: 'Basic Authentication',
|
|
84
|
+
labelKey: 'NODE_API_AUTH_BASIC',
|
|
85
|
+
show: {
|
|
86
|
+
authType: 'BASIC'
|
|
87
|
+
},
|
|
88
|
+
optional: true,
|
|
89
|
+
array: [
|
|
90
|
+
{
|
|
91
|
+
type: 'string',
|
|
92
|
+
id: 'username',
|
|
93
|
+
label: 'Username',
|
|
94
|
+
labelKey: 'NODE_API_AUTH_BASIC_USERNAME',
|
|
95
|
+
default: '',
|
|
96
|
+
optional: false
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'string',
|
|
100
|
+
id: 'password',
|
|
101
|
+
label: 'Password',
|
|
102
|
+
labelKey: 'NODE_API_AUTH_BASIC_PASSWORD',
|
|
103
|
+
default: '',
|
|
104
|
+
optional: false
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'array',
|
|
110
|
+
id: 'authApiKey',
|
|
111
|
+
label: 'API Key Authentication',
|
|
112
|
+
labelKey: 'NODE_API_AUTH_API_KEY',
|
|
113
|
+
show: {
|
|
114
|
+
authType: 'API_KEY'
|
|
115
|
+
},
|
|
116
|
+
optional: true,
|
|
117
|
+
array: [
|
|
118
|
+
{
|
|
119
|
+
type: 'string',
|
|
120
|
+
id: 'headerKey',
|
|
121
|
+
label: 'API Header Key',
|
|
122
|
+
labelKey: 'NODE_API_AUTH_API_KEY_NAME'
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'string',
|
|
126
|
+
id: 'key',
|
|
127
|
+
label: 'API Key',
|
|
128
|
+
labelKey: 'NODE_API_AUTH_API_KEY_KEY'
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'array',
|
|
134
|
+
id: 'authBearer',
|
|
135
|
+
label: 'Bearer Token Authentication',
|
|
136
|
+
show: {
|
|
137
|
+
authType: 'BEARER'
|
|
138
|
+
},
|
|
139
|
+
labelKey: 'NODE_API_AUTH_BEARER_TOKEN',
|
|
140
|
+
optional: true,
|
|
141
|
+
array: [
|
|
142
|
+
{
|
|
143
|
+
type: 'string',
|
|
144
|
+
id: 'token',
|
|
145
|
+
label: 'Bearer Token',
|
|
146
|
+
labelKey: 'NODE_API_AUTH_BEARER_TOKEN'
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
id: 'body',
|
|
152
|
+
type: 'string',
|
|
153
|
+
label: 'Request Body',
|
|
154
|
+
labelKey: 'NODE_API_REQUEST_BODY',
|
|
155
|
+
optional: true,
|
|
156
|
+
acceptVariable: true,
|
|
157
|
+
placeholder: 'Enter the request body in JSON format',
|
|
158
|
+
rows: 5
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'options',
|
|
162
|
+
id: 'responseContentType',
|
|
163
|
+
label: 'Response Content Type',
|
|
164
|
+
labelKey: 'NODE_API_CONTENT_TYPE',
|
|
165
|
+
optional: true,
|
|
166
|
+
default: 'application/json',
|
|
167
|
+
options: [
|
|
168
|
+
{ id: 'application/json', label: 'application/json' },
|
|
169
|
+
{ id: 'application/x-www-form-urlencoded', label: 'application/x-www-form-urlencoded' },
|
|
170
|
+
{ id: 'text/plain', label: 'text/plain' },
|
|
171
|
+
{ id: 'multipart/form-data', label: 'multipart/form-data' }
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
values: undefined,
|
|
176
|
+
color: '#00bcd4', // Cyan color for the start node
|
|
177
|
+
icon: '',
|
|
178
|
+
badge: undefined,
|
|
179
|
+
hideInput: true,
|
|
180
|
+
hideOutput: false,
|
|
181
|
+
author: '',
|
|
182
|
+
documentation: '',
|
|
183
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class NodeBotIA {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
enableStatics: boolean | false;
|
|
5
|
+
llmModel?: NodeBotIAModel;
|
|
6
|
+
llmTemperature?: number | 0.7;
|
|
7
|
+
llmMaxTokens?: number | 1000;
|
|
8
|
+
llmTopP?: number | 1;
|
|
9
|
+
prompt?: string | "";
|
|
10
|
+
retryCount?: number | 3;
|
|
11
|
+
retryDelay?: number | 1000;
|
|
12
|
+
apiKey?: string | "";
|
|
13
|
+
nextNodeId?: string | "";
|
|
14
|
+
}
|
|
15
|
+
export type NodeBotIAModel = "gpt-3.5-turbo" | "gpt-4" | "gpt-4-turbo" | "llama2" | "llama2-chat" | "llama2-7b-chat" | "llama2-13b-chat" | "llama2-70b-chat" | "llama2-7b" | "llama2-13b" | "llama2-70b" | "mistral" | "mistral-chat" | "mistral-7b-chat" | "mistral-7b";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class NodeChatBotIA {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
enableStatics: boolean | false;
|
|
5
|
+
llmModel?: NodeNodeChatBotModel;
|
|
6
|
+
llmTemperature?: number | 0.7;
|
|
7
|
+
llmMaxTokens?: number | 1000;
|
|
8
|
+
llmTopP?: number | 1;
|
|
9
|
+
prompt?: string | "";
|
|
10
|
+
retryCount?: number | 3;
|
|
11
|
+
retryDelay?: number | 1000;
|
|
12
|
+
apiKey?: string | "";
|
|
13
|
+
nextNodeId?: string | "";
|
|
14
|
+
}
|
|
15
|
+
export type NodeNodeChatBotModel = "gpt-3.5-turbo" | "gpt-4" | "gpt-4-turbo" | "llama2" | "llama2-chat" | "llama2-7b-chat" | "llama2-13b-chat" | "llama2-70b-chat" | "llama2-7b" | "llama2-13b" | "llama2-70b" | "mistral" | "mistral-chat" | "mistral-7b-chat" | "mistral-7b";
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var NodeFillTicketPriority;
|
|
4
|
+
(function (NodeFillTicketPriority) {
|
|
5
|
+
NodeFillTicketPriority[NodeFillTicketPriority["LOW"] = 100] = "LOW";
|
|
6
|
+
NodeFillTicketPriority[NodeFillTicketPriority["NORMAL"] = 200] = "NORMAL";
|
|
7
|
+
NodeFillTicketPriority[NodeFillTicketPriority["HIGH"] = 300] = "HIGH";
|
|
8
|
+
NodeFillTicketPriority[NodeFillTicketPriority["CRITICAL"] = 400] = "CRITICAL";
|
|
9
|
+
})(NodeFillTicketPriority || (NodeFillTicketPriority = {}));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NodeBase, NodeType } from '../Flow';
|
|
2
|
+
export interface NodeGoogleCalendar extends NodeBase {
|
|
3
|
+
type: NodeType.GOOGLE_CALENDAR;
|
|
4
|
+
typeName: "googleCalendar";
|
|
5
|
+
handles: ['onNext'];
|
|
6
|
+
categories: ['tool'];
|
|
7
|
+
enableStatics: boolean | false;
|
|
8
|
+
authCredentialId?: string | null;
|
|
9
|
+
eventsAdd?: boolean | false;
|
|
10
|
+
eventsEdit?: boolean | false;
|
|
11
|
+
eventsGet?: boolean | false;
|
|
12
|
+
eventsSearch?: boolean | false;
|
|
13
|
+
eventsDelete?: boolean | false;
|
|
14
|
+
calendarList?: boolean | false;
|
|
15
|
+
polygonsId?: string | null;
|
|
16
|
+
polygonsName?: string | null;
|
|
17
|
+
placeSearch?: boolean | false;
|
|
18
|
+
variables?: string | null;
|
|
19
|
+
saveAs?: string | null;
|
|
20
|
+
}
|