@wrcb/cb-common 1.0.890 → 1.0.892
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/build/types/crm.d.ts +6 -54
- package/build/types/crm.js +21 -43
- package/package.json +1 -1
package/build/types/crm.d.ts
CHANGED
|
@@ -76,16 +76,19 @@ export declare enum CrmHandoffReason {
|
|
|
76
76
|
LeadRequested = "LeadRequested",
|
|
77
77
|
OutOfScope = "OutOfScope",
|
|
78
78
|
Sensitive = "Sensitive",
|
|
79
|
-
DocumentBlocked = "DocumentBlocked",
|
|
80
79
|
ManualTakeover = "ManualTakeover",
|
|
81
|
-
SlaBreach = "SlaBreach"
|
|
80
|
+
SlaBreach = "SlaBreach",
|
|
81
|
+
MinorSuspected = "MinorSuspected"
|
|
82
|
+
}
|
|
83
|
+
export declare enum CrmAgentStyle {
|
|
84
|
+
Service = "Service",
|
|
85
|
+
Companion = "Companion"
|
|
82
86
|
}
|
|
83
87
|
export declare enum CrmAgentTool {
|
|
84
88
|
SearchKnowledge = "SearchKnowledge",
|
|
85
89
|
MoveStage = "MoveStage",
|
|
86
90
|
ScheduleFollowUp = "ScheduleFollowUp",
|
|
87
91
|
RecordField = "RecordField",
|
|
88
|
-
RequestDocument = "RequestDocument",
|
|
89
92
|
RequestHuman = "RequestHuman"
|
|
90
93
|
}
|
|
91
94
|
export interface CrmAgentToolCall {
|
|
@@ -96,25 +99,6 @@ export interface CrmAgentToolCall {
|
|
|
96
99
|
}
|
|
97
100
|
export interface CrmGuardrails {
|
|
98
101
|
forbiddenTopics: string[];
|
|
99
|
-
/**
|
|
100
|
-
* Assuntos que o agente só pode citar se tiver consultado o material de
|
|
101
|
-
* apoio. Um por linha, em linguagem natural: "taxa", "juros", "prazo de
|
|
102
|
-
* entrega", "tempo de recuperação".
|
|
103
|
-
*
|
|
104
|
-
* SUBSTITUIU o antigo `blockUnsourcedRates`, que era um sim/não com os
|
|
105
|
-
* padrões de taxa e juros fixos no código. Servia a um ramo só: um salão
|
|
106
|
-
* não tem taxa, mas tem prazo; uma clínica não tem juros, mas tem tempo de
|
|
107
|
-
* recuperação. Lista vazia = trava desligada.
|
|
108
|
-
*/
|
|
109
|
-
sourcedTopics: string[];
|
|
110
|
-
/**
|
|
111
|
-
* Proibir o agente de afirmar que algo foi aprovado, garantido ou liberado.
|
|
112
|
-
*
|
|
113
|
-
* Nasceu de crédito, onde prometer aprovação é problema jurídico. É regra
|
|
114
|
-
* de NEGÓCIO, não do produto — uma imobiliária quer isto ligado, uma
|
|
115
|
-
* oficina que aprova orçamento na hora, não.
|
|
116
|
-
*/
|
|
117
|
-
blockApprovalPromise: boolean;
|
|
118
102
|
mandatoryDisclaimer: string | null;
|
|
119
103
|
maxAiTurnsBeforeHandoff: number | null;
|
|
120
104
|
}
|
|
@@ -133,11 +117,6 @@ export interface CrmGuardrails {
|
|
|
133
117
|
* entrega em partes espaçadas, o que dá aparência de tempo decorrido. A
|
|
134
118
|
* frase é mentira em qualquer ramo, e deixa o lead esperando algo que
|
|
135
119
|
* nunca foi agendado.
|
|
136
|
-
*
|
|
137
|
-
* - AFIRMAR QUE RECEBEU OU CONFERIU DOCUMENTO. Esta é condicional por
|
|
138
|
-
* construção, não por configuração: só vale quando a conta tem checklist.
|
|
139
|
-
* Sem documentos configurados o agente nem recebe a ferramenta, e não há
|
|
140
|
-
* afirmação a policiar.
|
|
141
120
|
*/
|
|
142
121
|
export declare enum CrmKnowledgeStatus {
|
|
143
122
|
Uploaded = "Uploaded",
|
|
@@ -152,31 +131,6 @@ export declare enum CrmKnowledgeFormat {
|
|
|
152
131
|
Markdown = "Markdown",
|
|
153
132
|
Inline = "Inline"
|
|
154
133
|
}
|
|
155
|
-
export interface CrmDocumentRequirement {
|
|
156
|
-
key: string;
|
|
157
|
-
label: string;
|
|
158
|
-
aiInstruction: string;
|
|
159
|
-
validationHints: string[];
|
|
160
|
-
required: boolean;
|
|
161
|
-
acceptedMimeTypes: string[];
|
|
162
|
-
maxFiles: number;
|
|
163
|
-
maxRejections: number;
|
|
164
|
-
}
|
|
165
|
-
export declare enum CrmLeadDocumentStatus {
|
|
166
|
-
Received = "Received",
|
|
167
|
-
Validating = "Validating",
|
|
168
|
-
Approved = "Approved",
|
|
169
|
-
Rejected = "Rejected",
|
|
170
|
-
PendingReview = "PendingReview",
|
|
171
|
-
Purged = "Purged"
|
|
172
|
-
}
|
|
173
|
-
export declare enum CrmDocumentRejectionReason {
|
|
174
|
-
Unreadable = "Unreadable",
|
|
175
|
-
WrongDocument = "WrongDocument",
|
|
176
|
-
Incomplete = "Incomplete",
|
|
177
|
-
Expired = "Expired",
|
|
178
|
-
SuspectedTampering = "SuspectedTampering"
|
|
179
|
-
}
|
|
180
134
|
export interface CrmCadenceStep {
|
|
181
135
|
/**
|
|
182
136
|
* Minutos após a última interação para disparar este passo.
|
|
@@ -243,8 +197,6 @@ export declare enum CrmEventType {
|
|
|
243
197
|
MessageSent = "MessageSent",
|
|
244
198
|
MessageReceived = "MessageReceived",
|
|
245
199
|
ControlChanged = "ControlChanged",
|
|
246
|
-
DocumentReceived = "DocumentReceived",
|
|
247
|
-
DocumentReviewed = "DocumentReviewed",
|
|
248
200
|
CadenceStepFired = "CadenceStepFired",
|
|
249
201
|
CadenceStopped = "CadenceStopped",
|
|
250
202
|
OptedOut = "OptedOut",
|
package/build/types/crm.js
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
// enquanto o gn-social-media não for portado para este núcleo.
|
|
7
7
|
//
|
|
8
8
|
// Regra de ouro deste módulo: o que varia por tenant é DADO, não código.
|
|
9
|
-
// Por isso estágio de funil, passo de cadência
|
|
10
|
-
//
|
|
9
|
+
// Por isso estágio de funil, passo de cadência e ferramenta do agente são
|
|
10
|
+
// interfaces/configuração — nunca enum fechado.
|
|
11
11
|
// Enum aqui é só para o que é genuinamente fixo (canal, direção, ator).
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.CrmEventType = exports.CrmCadenceStopReason = exports.
|
|
13
|
+
exports.CrmEventType = exports.CrmCadenceStopReason = exports.CrmKnowledgeFormat = exports.CrmKnowledgeStatus = exports.CrmAgentTool = exports.CrmAgentStyle = exports.CrmHandoffReason = exports.CrmOptOutReason = exports.CrmControl = exports.CrmLeadSource = exports.CrmStageChangedBy = exports.CrmWindowState = exports.CrmConnectionState = exports.CrmMessageStatus = exports.CrmMessageType = exports.CrmDirection = exports.CrmActor = exports.CrmChannel = void 0;
|
|
14
14
|
// ============================================
|
|
15
15
|
// CANAL E MENSAGEM
|
|
16
16
|
// ============================================
|
|
@@ -80,7 +80,7 @@ var CrmStageChangedBy;
|
|
|
80
80
|
(function (CrmStageChangedBy) {
|
|
81
81
|
CrmStageChangedBy["Ai"] = "Ai";
|
|
82
82
|
CrmStageChangedBy["Human"] = "Human";
|
|
83
|
-
// Regra do sistema
|
|
83
|
+
// Regra do sistema, sem passar pelo modelo nem por um operador.
|
|
84
84
|
CrmStageChangedBy["Automation"] = "Automation";
|
|
85
85
|
})(CrmStageChangedBy || (exports.CrmStageChangedBy = CrmStageChangedBy = {}));
|
|
86
86
|
// ============================================
|
|
@@ -131,18 +131,30 @@ var CrmHandoffReason;
|
|
|
131
131
|
CrmHandoffReason["OutOfScope"] = "OutOfScope";
|
|
132
132
|
// Assunto sensível (reclamação, ameaça de processo, dado bancário).
|
|
133
133
|
CrmHandoffReason["Sensitive"] = "Sensitive";
|
|
134
|
-
// Documento reprovado mais vezes que o limite configurado.
|
|
135
|
-
CrmHandoffReason["DocumentBlocked"] = "DocumentBlocked";
|
|
136
134
|
// Um operador assumiu pelo painel, sem a IA ter pedido.
|
|
137
135
|
CrmHandoffReason["ManualTakeover"] = "ManualTakeover";
|
|
138
136
|
// Estourou o SLA do estágio.
|
|
139
137
|
CrmHandoffReason["SlaBreach"] = "SlaBreach";
|
|
138
|
+
// O contato disse ou deu sinal de ter menos de 18 anos, numa conversa de
|
|
139
|
+
// persona adulta. A IA sai e não volta sozinha.
|
|
140
|
+
CrmHandoffReason["MinorSuspected"] = "MinorSuspected";
|
|
140
141
|
})(CrmHandoffReason || (exports.CrmHandoffReason = CrmHandoffReason = {}));
|
|
142
|
+
// Como o agente conversa. Muda o que o núcleo injeta no prompt, a leitura do
|
|
143
|
+
// opt-out e as travas — não o que a persona é, que continua no `systemPrompt`.
|
|
144
|
+
var CrmAgentStyle;
|
|
145
|
+
(function (CrmAgentStyle) {
|
|
146
|
+
// Atendimento comercial: qualifica, tira dúvida, move o card, chama humano.
|
|
147
|
+
CrmAgentStyle["Service"] = "Service";
|
|
148
|
+
// Persona de companhia adulta: conversa pela conversa, fica no personagem.
|
|
149
|
+
// Liga a trava de menor de idade e um opt-out que só entende frase
|
|
150
|
+
// inequívoca — "chega mais" e "não para" são flerte, não pedido de parada.
|
|
151
|
+
CrmAgentStyle["Companion"] = "Companion";
|
|
152
|
+
})(CrmAgentStyle || (exports.CrmAgentStyle = CrmAgentStyle = {}));
|
|
141
153
|
// ============================================
|
|
142
154
|
// AGENTE
|
|
143
155
|
// ============================================
|
|
144
|
-
// Ferramentas que o agente pode receber. Habilitadas por
|
|
145
|
-
//
|
|
156
|
+
// Ferramentas que o agente pode receber. Habilitadas por agente: cada
|
|
157
|
+
// operação liga só as que fazem sentido para ela.
|
|
146
158
|
var CrmAgentTool;
|
|
147
159
|
(function (CrmAgentTool) {
|
|
148
160
|
// Busca vetorial na base de conhecimento do tenant (apostila, tabela de
|
|
@@ -154,8 +166,6 @@ var CrmAgentTool;
|
|
|
154
166
|
CrmAgentTool["ScheduleFollowUp"] = "ScheduleFollowUp";
|
|
155
167
|
// Grava um dado coletado na conversa em customFields.
|
|
156
168
|
CrmAgentTool["RecordField"] = "RecordField";
|
|
157
|
-
// Pede um documento da checklist ao lead.
|
|
158
|
-
CrmAgentTool["RequestDocument"] = "RequestDocument";
|
|
159
169
|
// Devolve a conversa para um humano.
|
|
160
170
|
CrmAgentTool["RequestHuman"] = "RequestHuman";
|
|
161
171
|
})(CrmAgentTool || (exports.CrmAgentTool = CrmAgentTool = {}));
|
|
@@ -174,11 +184,6 @@ var CrmAgentTool;
|
|
|
174
184
|
* entrega em partes espaçadas, o que dá aparência de tempo decorrido. A
|
|
175
185
|
* frase é mentira em qualquer ramo, e deixa o lead esperando algo que
|
|
176
186
|
* nunca foi agendado.
|
|
177
|
-
*
|
|
178
|
-
* - AFIRMAR QUE RECEBEU OU CONFERIU DOCUMENTO. Esta é condicional por
|
|
179
|
-
* construção, não por configuração: só vale quando a conta tem checklist.
|
|
180
|
-
* Sem documentos configurados o agente nem recebe a ferramenta, e não há
|
|
181
|
-
* afirmação a policiar.
|
|
182
187
|
*/
|
|
183
188
|
// ============================================
|
|
184
189
|
// BASE DE CONHECIMENTO (RAG)
|
|
@@ -203,30 +208,6 @@ var CrmKnowledgeFormat;
|
|
|
203
208
|
// Texto colado direto no painel, sem arquivo.
|
|
204
209
|
CrmKnowledgeFormat["Inline"] = "Inline";
|
|
205
210
|
})(CrmKnowledgeFormat || (exports.CrmKnowledgeFormat = CrmKnowledgeFormat = {}));
|
|
206
|
-
var CrmLeadDocumentStatus;
|
|
207
|
-
(function (CrmLeadDocumentStatus) {
|
|
208
|
-
// Recebido e armazenado, ainda não analisado.
|
|
209
|
-
CrmLeadDocumentStatus["Received"] = "Received";
|
|
210
|
-
// Em análise pelo modelo de visão.
|
|
211
|
-
CrmLeadDocumentStatus["Validating"] = "Validating";
|
|
212
|
-
// Aprovado automaticamente ou por um operador.
|
|
213
|
-
CrmLeadDocumentStatus["Approved"] = "Approved";
|
|
214
|
-
// Ilegível, documento errado ou fora de validade.
|
|
215
|
-
CrmLeadDocumentStatus["Rejected"] = "Rejected";
|
|
216
|
-
// Aguardando conferência humana (o modelo não teve confiança suficiente).
|
|
217
|
-
CrmLeadDocumentStatus["PendingReview"] = "PendingReview";
|
|
218
|
-
// Removido por retenção/pedido do titular (LGPD). O registro permanece
|
|
219
|
-
// para auditoria; o arquivo no Wasabi já não existe.
|
|
220
|
-
CrmLeadDocumentStatus["Purged"] = "Purged";
|
|
221
|
-
})(CrmLeadDocumentStatus || (exports.CrmLeadDocumentStatus = CrmLeadDocumentStatus = {}));
|
|
222
|
-
var CrmDocumentRejectionReason;
|
|
223
|
-
(function (CrmDocumentRejectionReason) {
|
|
224
|
-
CrmDocumentRejectionReason["Unreadable"] = "Unreadable";
|
|
225
|
-
CrmDocumentRejectionReason["WrongDocument"] = "WrongDocument";
|
|
226
|
-
CrmDocumentRejectionReason["Incomplete"] = "Incomplete";
|
|
227
|
-
CrmDocumentRejectionReason["Expired"] = "Expired";
|
|
228
|
-
CrmDocumentRejectionReason["SuspectedTampering"] = "SuspectedTampering";
|
|
229
|
-
})(CrmDocumentRejectionReason || (exports.CrmDocumentRejectionReason = CrmDocumentRejectionReason = {}));
|
|
230
211
|
var CrmCadenceStopReason;
|
|
231
212
|
(function (CrmCadenceStopReason) {
|
|
232
213
|
CrmCadenceStopReason["LeadReplied"] = "LeadReplied";
|
|
@@ -239,8 +220,7 @@ var CrmCadenceStopReason;
|
|
|
239
220
|
// EVENTOS DE AUDITORIA
|
|
240
221
|
// ============================================
|
|
241
222
|
// Tudo que muda um lead vira um CrmEvent. É o que permite responder "por que
|
|
242
|
-
// este lead foi para 'perdido' às 3h da manhã"
|
|
243
|
-
// LGPD quando há decisão automatizada sobre crédito.
|
|
223
|
+
// este lead foi para 'perdido' às 3h da manhã".
|
|
244
224
|
var CrmEventType;
|
|
245
225
|
(function (CrmEventType) {
|
|
246
226
|
CrmEventType["LeadCreated"] = "LeadCreated";
|
|
@@ -248,8 +228,6 @@ var CrmEventType;
|
|
|
248
228
|
CrmEventType["MessageSent"] = "MessageSent";
|
|
249
229
|
CrmEventType["MessageReceived"] = "MessageReceived";
|
|
250
230
|
CrmEventType["ControlChanged"] = "ControlChanged";
|
|
251
|
-
CrmEventType["DocumentReceived"] = "DocumentReceived";
|
|
252
|
-
CrmEventType["DocumentReviewed"] = "DocumentReviewed";
|
|
253
231
|
CrmEventType["CadenceStepFired"] = "CadenceStepFired";
|
|
254
232
|
CrmEventType["CadenceStopped"] = "CadenceStopped";
|
|
255
233
|
CrmEventType["OptedOut"] = "OptedOut";
|