@wrcb/cb-common 1.0.887 → 1.0.889

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.
@@ -96,11 +96,49 @@ export interface CrmAgentToolCall {
96
96
  }
97
97
  export interface CrmGuardrails {
98
98
  forbiddenTopics: string[];
99
- blockUnsourcedRates: boolean;
100
- handoffOnSensitiveData: boolean;
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;
101
118
  mandatoryDisclaimer: string | null;
102
119
  maxAiTurnsBeforeHandoff: number | null;
103
120
  }
121
+ /**
122
+ * NÃO SÃO CONFIGURÁVEIS, de propósito — e vale registrar por quê, porque a
123
+ * pergunta volta:
124
+ *
125
+ * - PEDIR SENHA, CVV, NÚMERO DE CARTÃO OU TOKEN DE BANCO. Não é regra de
126
+ * ramo, é antifraude. Agente que pede isso está alucinando ou foi
127
+ * comprometido, e não existe negócio em que seja aceitável. Um interruptor
128
+ * aqui só serviria para alguém se machucar.
129
+ *
130
+ * - ENCENAR ESPERA ("um momento", "já te respondo"). Não é regra de ramo, é
131
+ * fato do runtime: a resposta é gerada inteira de uma vez e o agente não
132
+ * tem um segundo turno para voltar sozinho. O divisor de mensagens ainda
133
+ * entrega em partes espaçadas, o que dá aparência de tempo decorrido. A
134
+ * frase é mentira em qualquer ramo, e deixa o lead esperando algo que
135
+ * 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
+ */
104
142
  export declare enum CrmKnowledgeStatus {
105
143
  Uploaded = "Uploaded",
106
144
  Processing = "Processing",
@@ -140,7 +178,15 @@ export declare enum CrmDocumentRejectionReason {
140
178
  SuspectedTampering = "SuspectedTampering"
141
179
  }
142
180
  export interface CrmCadenceStep {
143
- afterHours: number;
181
+ /**
182
+ * Minutos após a última interação para disparar este passo.
183
+ *
184
+ * ERA `afterHours`, e hora era a menor unidade possível. Follow-up de
185
+ * poucos minutos é justamente o mais útil logo depois de um primeiro
186
+ * contato — quem pediu orçamento e não respondeu em 10 minutos ainda está
187
+ * com o assunto na cabeça; em 1 hora, já não está.
188
+ */
189
+ afterMinutes: number;
144
190
  stageKeys: string[];
145
191
  template: string | null;
146
192
  aiInstruction: string | null;
@@ -229,4 +275,15 @@ export interface CrmPublicPersona {
229
275
  agentId: string;
230
276
  name: string;
231
277
  publicTag: string | null;
278
+ /**
279
+ * A linha curta do card: idade, cidade, o que quiser. Texto livre, escrito
280
+ * no painel.
281
+ *
282
+ * Está aqui e não no site pela mesma razão do `name`: trocar a descrição de
283
+ * uma persona não pode exigir deploy. E NÃO é o `systemPrompt` — este é
284
+ * para o visitante ler, aquele é a receita do negócio e nunca sai do CRM.
285
+ */
286
+ publicHeadline: string | null;
287
+ /** Duas ou três frases, para o mesmo card. */
288
+ publicBio: string | null;
232
289
  }
@@ -159,6 +159,27 @@ var CrmAgentTool;
159
159
  // Devolve a conversa para um humano.
160
160
  CrmAgentTool["RequestHuman"] = "RequestHuman";
161
161
  })(CrmAgentTool || (exports.CrmAgentTool = CrmAgentTool = {}));
162
+ /**
163
+ * NÃO SÃO CONFIGURÁVEIS, de propósito — e vale registrar por quê, porque a
164
+ * pergunta volta:
165
+ *
166
+ * - PEDIR SENHA, CVV, NÚMERO DE CARTÃO OU TOKEN DE BANCO. Não é regra de
167
+ * ramo, é antifraude. Agente que pede isso está alucinando ou foi
168
+ * comprometido, e não existe negócio em que seja aceitável. Um interruptor
169
+ * aqui só serviria para alguém se machucar.
170
+ *
171
+ * - ENCENAR ESPERA ("um momento", "já te respondo"). Não é regra de ramo, é
172
+ * fato do runtime: a resposta é gerada inteira de uma vez e o agente não
173
+ * tem um segundo turno para voltar sozinho. O divisor de mensagens ainda
174
+ * entrega em partes espaçadas, o que dá aparência de tempo decorrido. A
175
+ * frase é mentira em qualquer ramo, e deixa o lead esperando algo que
176
+ * 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
+ */
162
183
  // ============================================
163
184
  // BASE DE CONHECIMENTO (RAG)
164
185
  // ============================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrcb/cb-common",
3
- "version": "1.0.887",
3
+ "version": "1.0.889",
4
4
  "description": "Common resources between services",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",