evo360-types 1.3.637 → 1.3.639

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.
@@ -12,7 +12,7 @@ export declare const zCsqAlertResolvedReasonSchema: z.ZodEnum<["fact", "judge_re
12
12
  export declare const zCsqVerificationStateSchema: z.ZodEnum<["pending", "confirmed_ok", "confirmed", "inconclusive"]>;
13
13
  export declare const zCsqRunStatusSchema: z.ZodEnum<["running", "done", "failed", "quarantined"]>;
14
14
  export declare const zCsqPhaseSchema: z.ZodEnum<["f0", "f1"]>;
15
- export declare const zCsqLlmConnectionSourceSchema: z.ZodEnum<["tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>;
15
+ export declare const zCsqLlmConnectionSourceSchema: z.ZodEnum<["binding", "tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>;
16
16
  export declare const zCsqReviewVerdictSchema: z.ZodEnum<["agree", "disagree"]>;
17
17
  export declare const zCsqAuthorKindSchema: z.ZodEnum<["lead", "human", "automation", "hubia", "event", "note"]>;
18
18
  /** Escala por criterio: 0 / 50 / 100 / N/A. */
@@ -2147,10 +2147,68 @@ export declare const zCsqDataQualitySchema: z.ZodObject<{
2147
2147
  missing_prompt_stack: z.ZodOptional<z.ZodBoolean>;
2148
2148
  missing_calendar: z.ZodOptional<z.ZodBoolean>;
2149
2149
  }, z.ZodTypeAny, "passthrough">>;
2150
+ export declare const zCsqReviewMissedAlertSchema: z.ZodObject<{
2151
+ code: z.ZodEnum<["AGENDAMENTO_INFORMADO_NAO_REGISTRADO", "AGENDAMENTO_DIVERGENTE", "AGENDAMENTO_SOBREPOSTO", "PACIENTE_NAO_VINCULADO", "CONTRADICAO_PREMISSA_ANTERIOR", "ORIENTACAO_CLINICA_INDEVIDA", "POLITICA_VIOLADA", "ULTIMA_MENSAGEM_SEM_RESPOSTA", "PERGUNTA_NAO_RESPONDIDA", "PROMESSA_NAO_CUMPRIDA", "IDENTIDADE_ERRADA", "DADO_JA_INFORMADO_RECOLETADO", "DADO_OBRIGATORIO_NAO_COLETADO", "FLUXO_VENDA_NAO_SEGUIDO", "MOTIVO_ENCERRAMENTO_INCOMPATIVEL", "SLA_RESPOSTA_ALTO", "LEAD_QUENTE_SEM_FOLLOWUP", "LEAD_ORIGEM_INCONSISTENTE", "LEAD_QUALIFICACAO_INCONSISTENTE", "AUTOMACAO_CONFLITANTE", "DADO_SENSIVEL_SOLICITADO", "URGENCIA_NAO_ENCAMINHADA", "NF_NAO_ENVIADA", "COBRANCA_NAO_ENVIADA"]>;
2152
+ severity: z.ZodOptional<z.ZodEnum<["critica", "alta", "media", "baixa"]>>;
2153
+ ticket_id: z.ZodOptional<z.ZodString>;
2154
+ note: z.ZodString;
2155
+ }, "strip", z.ZodTypeAny, {
2156
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
2157
+ note: string;
2158
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
2159
+ ticket_id?: string | undefined;
2160
+ }, {
2161
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
2162
+ note: string;
2163
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
2164
+ ticket_id?: string | undefined;
2165
+ }>;
2166
+ export declare const zCsqReviewCriterionDisagreementSchema: z.ZodObject<{
2167
+ criterion: z.ZodString;
2168
+ expected: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<50>, z.ZodLiteral<100>, z.ZodLiteral<"NA">]>;
2169
+ note: z.ZodOptional<z.ZodString>;
2170
+ }, "strip", z.ZodTypeAny, {
2171
+ expected: 0 | 50 | 100 | "NA";
2172
+ criterion: string;
2173
+ note?: string | undefined;
2174
+ }, {
2175
+ expected: 0 | 50 | 100 | "NA";
2176
+ criterion: string;
2177
+ note?: string | undefined;
2178
+ }>;
2150
2179
  export declare const zCsqReviewSchema: z.ZodObject<{
2151
2180
  verdict: z.ZodEnum<["agree", "disagree"]>;
2152
2181
  false_alert_fingerprints: z.ZodArray<z.ZodString, "many">;
2153
2182
  note: z.ZodOptional<z.ZodString>;
2183
+ missed_alerts: z.ZodOptional<z.ZodArray<z.ZodObject<{
2184
+ code: z.ZodEnum<["AGENDAMENTO_INFORMADO_NAO_REGISTRADO", "AGENDAMENTO_DIVERGENTE", "AGENDAMENTO_SOBREPOSTO", "PACIENTE_NAO_VINCULADO", "CONTRADICAO_PREMISSA_ANTERIOR", "ORIENTACAO_CLINICA_INDEVIDA", "POLITICA_VIOLADA", "ULTIMA_MENSAGEM_SEM_RESPOSTA", "PERGUNTA_NAO_RESPONDIDA", "PROMESSA_NAO_CUMPRIDA", "IDENTIDADE_ERRADA", "DADO_JA_INFORMADO_RECOLETADO", "DADO_OBRIGATORIO_NAO_COLETADO", "FLUXO_VENDA_NAO_SEGUIDO", "MOTIVO_ENCERRAMENTO_INCOMPATIVEL", "SLA_RESPOSTA_ALTO", "LEAD_QUENTE_SEM_FOLLOWUP", "LEAD_ORIGEM_INCONSISTENTE", "LEAD_QUALIFICACAO_INCONSISTENTE", "AUTOMACAO_CONFLITANTE", "DADO_SENSIVEL_SOLICITADO", "URGENCIA_NAO_ENCAMINHADA", "NF_NAO_ENVIADA", "COBRANCA_NAO_ENVIADA"]>;
2185
+ severity: z.ZodOptional<z.ZodEnum<["critica", "alta", "media", "baixa"]>>;
2186
+ ticket_id: z.ZodOptional<z.ZodString>;
2187
+ note: z.ZodString;
2188
+ }, "strip", z.ZodTypeAny, {
2189
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
2190
+ note: string;
2191
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
2192
+ ticket_id?: string | undefined;
2193
+ }, {
2194
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
2195
+ note: string;
2196
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
2197
+ ticket_id?: string | undefined;
2198
+ }>, "many">>;
2199
+ criteria_disagreements: z.ZodOptional<z.ZodArray<z.ZodObject<{
2200
+ criterion: z.ZodString;
2201
+ expected: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<50>, z.ZodLiteral<100>, z.ZodLiteral<"NA">]>;
2202
+ note: z.ZodOptional<z.ZodString>;
2203
+ }, "strip", z.ZodTypeAny, {
2204
+ expected: 0 | 50 | 100 | "NA";
2205
+ criterion: string;
2206
+ note?: string | undefined;
2207
+ }, {
2208
+ expected: 0 | 50 | 100 | "NA";
2209
+ criterion: string;
2210
+ note?: string | undefined;
2211
+ }>, "many">>;
2154
2212
  reviewer_login_id: z.ZodString;
2155
2213
  reviewed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
2156
2214
  }, "strip", z.ZodTypeAny, {
@@ -2159,11 +2217,33 @@ export declare const zCsqReviewSchema: z.ZodObject<{
2159
2217
  reviewer_login_id: string;
2160
2218
  reviewed_at: Date;
2161
2219
  note?: string | undefined;
2220
+ missed_alerts?: {
2221
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
2222
+ note: string;
2223
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
2224
+ ticket_id?: string | undefined;
2225
+ }[] | undefined;
2226
+ criteria_disagreements?: {
2227
+ expected: 0 | 50 | 100 | "NA";
2228
+ criterion: string;
2229
+ note?: string | undefined;
2230
+ }[] | undefined;
2162
2231
  }, {
2163
2232
  verdict: "agree" | "disagree";
2164
2233
  false_alert_fingerprints: string[];
2165
2234
  reviewer_login_id: string;
2166
2235
  note?: string | undefined;
2236
+ missed_alerts?: {
2237
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
2238
+ note: string;
2239
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
2240
+ ticket_id?: string | undefined;
2241
+ }[] | undefined;
2242
+ criteria_disagreements?: {
2243
+ expected: 0 | 50 | 100 | "NA";
2244
+ criterion: string;
2245
+ note?: string | undefined;
2246
+ }[] | undefined;
2167
2247
  reviewed_at?: unknown;
2168
2248
  }>;
2169
2249
  export declare const zCsqTriageModeSchema: z.ZodEnum<["skip_llm", "full_review"]>;
@@ -6835,6 +6915,35 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
6835
6915
  verdict: z.ZodEnum<["agree", "disagree"]>;
6836
6916
  false_alert_fingerprints: z.ZodArray<z.ZodString, "many">;
6837
6917
  note: z.ZodOptional<z.ZodString>;
6918
+ missed_alerts: z.ZodOptional<z.ZodArray<z.ZodObject<{
6919
+ code: z.ZodEnum<["AGENDAMENTO_INFORMADO_NAO_REGISTRADO", "AGENDAMENTO_DIVERGENTE", "AGENDAMENTO_SOBREPOSTO", "PACIENTE_NAO_VINCULADO", "CONTRADICAO_PREMISSA_ANTERIOR", "ORIENTACAO_CLINICA_INDEVIDA", "POLITICA_VIOLADA", "ULTIMA_MENSAGEM_SEM_RESPOSTA", "PERGUNTA_NAO_RESPONDIDA", "PROMESSA_NAO_CUMPRIDA", "IDENTIDADE_ERRADA", "DADO_JA_INFORMADO_RECOLETADO", "DADO_OBRIGATORIO_NAO_COLETADO", "FLUXO_VENDA_NAO_SEGUIDO", "MOTIVO_ENCERRAMENTO_INCOMPATIVEL", "SLA_RESPOSTA_ALTO", "LEAD_QUENTE_SEM_FOLLOWUP", "LEAD_ORIGEM_INCONSISTENTE", "LEAD_QUALIFICACAO_INCONSISTENTE", "AUTOMACAO_CONFLITANTE", "DADO_SENSIVEL_SOLICITADO", "URGENCIA_NAO_ENCAMINHADA", "NF_NAO_ENVIADA", "COBRANCA_NAO_ENVIADA"]>;
6920
+ severity: z.ZodOptional<z.ZodEnum<["critica", "alta", "media", "baixa"]>>;
6921
+ ticket_id: z.ZodOptional<z.ZodString>;
6922
+ note: z.ZodString;
6923
+ }, "strip", z.ZodTypeAny, {
6924
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
6925
+ note: string;
6926
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
6927
+ ticket_id?: string | undefined;
6928
+ }, {
6929
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
6930
+ note: string;
6931
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
6932
+ ticket_id?: string | undefined;
6933
+ }>, "many">>;
6934
+ criteria_disagreements: z.ZodOptional<z.ZodArray<z.ZodObject<{
6935
+ criterion: z.ZodString;
6936
+ expected: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<50>, z.ZodLiteral<100>, z.ZodLiteral<"NA">]>;
6937
+ note: z.ZodOptional<z.ZodString>;
6938
+ }, "strip", z.ZodTypeAny, {
6939
+ expected: 0 | 50 | 100 | "NA";
6940
+ criterion: string;
6941
+ note?: string | undefined;
6942
+ }, {
6943
+ expected: 0 | 50 | 100 | "NA";
6944
+ criterion: string;
6945
+ note?: string | undefined;
6946
+ }>, "many">>;
6838
6947
  reviewer_login_id: z.ZodString;
6839
6948
  reviewed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
6840
6949
  }, "strip", z.ZodTypeAny, {
@@ -6843,11 +6952,33 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
6843
6952
  reviewer_login_id: string;
6844
6953
  reviewed_at: Date;
6845
6954
  note?: string | undefined;
6955
+ missed_alerts?: {
6956
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
6957
+ note: string;
6958
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
6959
+ ticket_id?: string | undefined;
6960
+ }[] | undefined;
6961
+ criteria_disagreements?: {
6962
+ expected: 0 | 50 | 100 | "NA";
6963
+ criterion: string;
6964
+ note?: string | undefined;
6965
+ }[] | undefined;
6846
6966
  }, {
6847
6967
  verdict: "agree" | "disagree";
6848
6968
  false_alert_fingerprints: string[];
6849
6969
  reviewer_login_id: string;
6850
6970
  note?: string | undefined;
6971
+ missed_alerts?: {
6972
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
6973
+ note: string;
6974
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
6975
+ ticket_id?: string | undefined;
6976
+ }[] | undefined;
6977
+ criteria_disagreements?: {
6978
+ expected: 0 | 50 | 100 | "NA";
6979
+ criterion: string;
6980
+ note?: string | undefined;
6981
+ }[] | undefined;
6851
6982
  reviewed_at?: unknown;
6852
6983
  }>>;
6853
6984
  suppressed_alert_fingerprints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -6902,7 +7033,7 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
6902
7033
  llm_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6903
7034
  llm_location: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6904
7035
  llm_connection_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6905
- llm_connection_source: z.ZodOptional<z.ZodNullable<z.ZodEnum<["tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>>>;
7036
+ llm_connection_source: z.ZodOptional<z.ZodNullable<z.ZodEnum<["binding", "tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>>>;
6906
7037
  trail: z.ZodArray<z.ZodObject<{
6907
7038
  ticket_id: z.ZodString;
6908
7039
  closed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
@@ -8997,6 +9128,35 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
8997
9128
  verdict: z.ZodEnum<["agree", "disagree"]>;
8998
9129
  false_alert_fingerprints: z.ZodArray<z.ZodString, "many">;
8999
9130
  note: z.ZodOptional<z.ZodString>;
9131
+ missed_alerts: z.ZodOptional<z.ZodArray<z.ZodObject<{
9132
+ code: z.ZodEnum<["AGENDAMENTO_INFORMADO_NAO_REGISTRADO", "AGENDAMENTO_DIVERGENTE", "AGENDAMENTO_SOBREPOSTO", "PACIENTE_NAO_VINCULADO", "CONTRADICAO_PREMISSA_ANTERIOR", "ORIENTACAO_CLINICA_INDEVIDA", "POLITICA_VIOLADA", "ULTIMA_MENSAGEM_SEM_RESPOSTA", "PERGUNTA_NAO_RESPONDIDA", "PROMESSA_NAO_CUMPRIDA", "IDENTIDADE_ERRADA", "DADO_JA_INFORMADO_RECOLETADO", "DADO_OBRIGATORIO_NAO_COLETADO", "FLUXO_VENDA_NAO_SEGUIDO", "MOTIVO_ENCERRAMENTO_INCOMPATIVEL", "SLA_RESPOSTA_ALTO", "LEAD_QUENTE_SEM_FOLLOWUP", "LEAD_ORIGEM_INCONSISTENTE", "LEAD_QUALIFICACAO_INCONSISTENTE", "AUTOMACAO_CONFLITANTE", "DADO_SENSIVEL_SOLICITADO", "URGENCIA_NAO_ENCAMINHADA", "NF_NAO_ENVIADA", "COBRANCA_NAO_ENVIADA"]>;
9133
+ severity: z.ZodOptional<z.ZodEnum<["critica", "alta", "media", "baixa"]>>;
9134
+ ticket_id: z.ZodOptional<z.ZodString>;
9135
+ note: z.ZodString;
9136
+ }, "strip", z.ZodTypeAny, {
9137
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
9138
+ note: string;
9139
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
9140
+ ticket_id?: string | undefined;
9141
+ }, {
9142
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
9143
+ note: string;
9144
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
9145
+ ticket_id?: string | undefined;
9146
+ }>, "many">>;
9147
+ criteria_disagreements: z.ZodOptional<z.ZodArray<z.ZodObject<{
9148
+ criterion: z.ZodString;
9149
+ expected: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<50>, z.ZodLiteral<100>, z.ZodLiteral<"NA">]>;
9150
+ note: z.ZodOptional<z.ZodString>;
9151
+ }, "strip", z.ZodTypeAny, {
9152
+ expected: 0 | 50 | 100 | "NA";
9153
+ criterion: string;
9154
+ note?: string | undefined;
9155
+ }, {
9156
+ expected: 0 | 50 | 100 | "NA";
9157
+ criterion: string;
9158
+ note?: string | undefined;
9159
+ }>, "many">>;
9000
9160
  reviewer_login_id: z.ZodString;
9001
9161
  reviewed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
9002
9162
  }, "strip", z.ZodTypeAny, {
@@ -9005,11 +9165,33 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
9005
9165
  reviewer_login_id: string;
9006
9166
  reviewed_at: Date;
9007
9167
  note?: string | undefined;
9168
+ missed_alerts?: {
9169
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
9170
+ note: string;
9171
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
9172
+ ticket_id?: string | undefined;
9173
+ }[] | undefined;
9174
+ criteria_disagreements?: {
9175
+ expected: 0 | 50 | 100 | "NA";
9176
+ criterion: string;
9177
+ note?: string | undefined;
9178
+ }[] | undefined;
9008
9179
  }, {
9009
9180
  verdict: "agree" | "disagree";
9010
9181
  false_alert_fingerprints: string[];
9011
9182
  reviewer_login_id: string;
9012
9183
  note?: string | undefined;
9184
+ missed_alerts?: {
9185
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
9186
+ note: string;
9187
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
9188
+ ticket_id?: string | undefined;
9189
+ }[] | undefined;
9190
+ criteria_disagreements?: {
9191
+ expected: 0 | 50 | 100 | "NA";
9192
+ criterion: string;
9193
+ note?: string | undefined;
9194
+ }[] | undefined;
9013
9195
  reviewed_at?: unknown;
9014
9196
  }>>;
9015
9197
  suppressed_alert_fingerprints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -9064,7 +9246,7 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
9064
9246
  llm_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9065
9247
  llm_location: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9066
9248
  llm_connection_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9067
- llm_connection_source: z.ZodOptional<z.ZodNullable<z.ZodEnum<["tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>>>;
9249
+ llm_connection_source: z.ZodOptional<z.ZodNullable<z.ZodEnum<["binding", "tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>>>;
9068
9250
  trail: z.ZodArray<z.ZodObject<{
9069
9251
  ticket_id: z.ZodString;
9070
9252
  closed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
@@ -11159,6 +11341,35 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
11159
11341
  verdict: z.ZodEnum<["agree", "disagree"]>;
11160
11342
  false_alert_fingerprints: z.ZodArray<z.ZodString, "many">;
11161
11343
  note: z.ZodOptional<z.ZodString>;
11344
+ missed_alerts: z.ZodOptional<z.ZodArray<z.ZodObject<{
11345
+ code: z.ZodEnum<["AGENDAMENTO_INFORMADO_NAO_REGISTRADO", "AGENDAMENTO_DIVERGENTE", "AGENDAMENTO_SOBREPOSTO", "PACIENTE_NAO_VINCULADO", "CONTRADICAO_PREMISSA_ANTERIOR", "ORIENTACAO_CLINICA_INDEVIDA", "POLITICA_VIOLADA", "ULTIMA_MENSAGEM_SEM_RESPOSTA", "PERGUNTA_NAO_RESPONDIDA", "PROMESSA_NAO_CUMPRIDA", "IDENTIDADE_ERRADA", "DADO_JA_INFORMADO_RECOLETADO", "DADO_OBRIGATORIO_NAO_COLETADO", "FLUXO_VENDA_NAO_SEGUIDO", "MOTIVO_ENCERRAMENTO_INCOMPATIVEL", "SLA_RESPOSTA_ALTO", "LEAD_QUENTE_SEM_FOLLOWUP", "LEAD_ORIGEM_INCONSISTENTE", "LEAD_QUALIFICACAO_INCONSISTENTE", "AUTOMACAO_CONFLITANTE", "DADO_SENSIVEL_SOLICITADO", "URGENCIA_NAO_ENCAMINHADA", "NF_NAO_ENVIADA", "COBRANCA_NAO_ENVIADA"]>;
11346
+ severity: z.ZodOptional<z.ZodEnum<["critica", "alta", "media", "baixa"]>>;
11347
+ ticket_id: z.ZodOptional<z.ZodString>;
11348
+ note: z.ZodString;
11349
+ }, "strip", z.ZodTypeAny, {
11350
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
11351
+ note: string;
11352
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
11353
+ ticket_id?: string | undefined;
11354
+ }, {
11355
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
11356
+ note: string;
11357
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
11358
+ ticket_id?: string | undefined;
11359
+ }>, "many">>;
11360
+ criteria_disagreements: z.ZodOptional<z.ZodArray<z.ZodObject<{
11361
+ criterion: z.ZodString;
11362
+ expected: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<50>, z.ZodLiteral<100>, z.ZodLiteral<"NA">]>;
11363
+ note: z.ZodOptional<z.ZodString>;
11364
+ }, "strip", z.ZodTypeAny, {
11365
+ expected: 0 | 50 | 100 | "NA";
11366
+ criterion: string;
11367
+ note?: string | undefined;
11368
+ }, {
11369
+ expected: 0 | 50 | 100 | "NA";
11370
+ criterion: string;
11371
+ note?: string | undefined;
11372
+ }>, "many">>;
11162
11373
  reviewer_login_id: z.ZodString;
11163
11374
  reviewed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
11164
11375
  }, "strip", z.ZodTypeAny, {
@@ -11167,11 +11378,33 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
11167
11378
  reviewer_login_id: string;
11168
11379
  reviewed_at: Date;
11169
11380
  note?: string | undefined;
11381
+ missed_alerts?: {
11382
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
11383
+ note: string;
11384
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
11385
+ ticket_id?: string | undefined;
11386
+ }[] | undefined;
11387
+ criteria_disagreements?: {
11388
+ expected: 0 | 50 | 100 | "NA";
11389
+ criterion: string;
11390
+ note?: string | undefined;
11391
+ }[] | undefined;
11170
11392
  }, {
11171
11393
  verdict: "agree" | "disagree";
11172
11394
  false_alert_fingerprints: string[];
11173
11395
  reviewer_login_id: string;
11174
11396
  note?: string | undefined;
11397
+ missed_alerts?: {
11398
+ code: "AGENDAMENTO_INFORMADO_NAO_REGISTRADO" | "AGENDAMENTO_DIVERGENTE" | "AGENDAMENTO_SOBREPOSTO" | "PACIENTE_NAO_VINCULADO" | "CONTRADICAO_PREMISSA_ANTERIOR" | "ORIENTACAO_CLINICA_INDEVIDA" | "POLITICA_VIOLADA" | "ULTIMA_MENSAGEM_SEM_RESPOSTA" | "PERGUNTA_NAO_RESPONDIDA" | "PROMESSA_NAO_CUMPRIDA" | "IDENTIDADE_ERRADA" | "DADO_JA_INFORMADO_RECOLETADO" | "DADO_OBRIGATORIO_NAO_COLETADO" | "FLUXO_VENDA_NAO_SEGUIDO" | "MOTIVO_ENCERRAMENTO_INCOMPATIVEL" | "SLA_RESPOSTA_ALTO" | "LEAD_QUENTE_SEM_FOLLOWUP" | "LEAD_ORIGEM_INCONSISTENTE" | "LEAD_QUALIFICACAO_INCONSISTENTE" | "AUTOMACAO_CONFLITANTE" | "DADO_SENSIVEL_SOLICITADO" | "URGENCIA_NAO_ENCAMINHADA" | "NF_NAO_ENVIADA" | "COBRANCA_NAO_ENVIADA";
11399
+ note: string;
11400
+ severity?: "media" | "critica" | "alta" | "baixa" | undefined;
11401
+ ticket_id?: string | undefined;
11402
+ }[] | undefined;
11403
+ criteria_disagreements?: {
11404
+ expected: 0 | 50 | 100 | "NA";
11405
+ criterion: string;
11406
+ note?: string | undefined;
11407
+ }[] | undefined;
11175
11408
  reviewed_at?: unknown;
11176
11409
  }>>;
11177
11410
  suppressed_alert_fingerprints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -11226,7 +11459,7 @@ export declare const zCsqLeadReportSchema: z.ZodObject<{
11226
11459
  llm_provider: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11227
11460
  llm_location: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11228
11461
  llm_connection_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11229
- llm_connection_source: z.ZodOptional<z.ZodNullable<z.ZodEnum<["tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>>>;
11462
+ llm_connection_source: z.ZodOptional<z.ZodNullable<z.ZodEnum<["binding", "tenant", "legacy_channel", "platform_default", "constant", "kill_switch"]>>>;
11230
11463
  trail: z.ZodArray<z.ZodObject<{
11231
11464
  ticket_id: z.ZodString;
11232
11465
  closed_at: z.ZodEffects<z.ZodDate, Date, unknown>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zCsqTicketSummarySchema = exports.zCsqTrailEntrySchema = exports.zCsqPromptBlockUsageSchema = exports.zCsqTriageDecisionSchema = exports.zCsqTriageReasonSchema = exports.zCsqTriageModeSchema = exports.zCsqReviewSchema = exports.zCsqDataQualitySchema = exports.zCsqCoverageSchema = exports.zCsqContributorSchema = exports.zCsqEvaluationSchema = exports.zCsqPillarScoreSchema = exports.zCsqPillarCoverageSchema = exports.zCsqCriterionScoreSchema = exports.zCsqCrossCheckSchema = exports.zCsqClaimTypeSchema = exports.zCsqClaimSchema = exports.zCsqClaimPriceInformedSchema = exports.zCsqClaimPatientStatusSchema = exports.zCsqClaimFirstConcreteOfferSchema = exports.zCsqClaimQuestionRequiresAnswerSchema = exports.zCsqClaimOutcomeSchema = exports.zCsqClaimRequiredDataSchema = exports.zCsqClaimDataCollectedSchema = exports.zCsqClaimPromiseSchema = exports.zCsqClaimAppointmentInformedSchema = exports.zCsqLeadStateSchema = exports.zCsqLeadStateListFieldSchema = exports.zCsqLeadStateFieldSchema = exports.zCsqIndicatorsSchema = exports.zCsqIndicatorsSetSchema = exports.zCsqAlertSchema = exports.zCsqEvidenceSchema = exports.zCsqAlertSubtypeSchema = exports.zCsqAlertCodeSchema = exports.zCsqPillarCodeSchema = exports.zCsqCriterionScoreValueSchema = exports.zCsqAuthorKindSchema = exports.zCsqReviewVerdictSchema = exports.zCsqLlmConnectionSourceSchema = exports.zCsqPhaseSchema = exports.zCsqRunStatusSchema = exports.zCsqVerificationStateSchema = exports.zCsqAlertResolvedReasonSchema = exports.zCsqAlertLifecycleSchema = exports.zCsqAlertScopeSchema = exports.zCsqAlertSourceSchema = exports.zCsqSeveritySchema = exports.zCsqStatusSchema = exports.zCsqModeSchema = void 0;
4
- exports.zCsqLeadReportSchema = exports.zCsqRunSchema = exports.zCsqAlertCountsSchema = exports.zCsqEligibilitySchema = exports.zCsqEvaluatedForSchema = exports.zCsqReportHeaderSchema = exports.zCsqReportAttendantSchema = exports.zCsqReportPatientSchema = exports.zCsqReportLeadSchema = exports.zCsqSystemFactsSchema = exports.zCsqBillingFactSchema = exports.zCsqPreviousTicketFactSchema = exports.zCsqOverlapFactSchema = exports.zCsqOverlapFamilyHintsSchema = exports.zCsqOverlapAppointmentFactSchema = exports.zCsqAppointmentFactSchema = exports.zCsqJudgeOutputSchema = exports.zCsqJudgeResolvedAlertSchema = exports.zCsqJudgeRevalidationSchema = exports.zCsqLlmUsageSchema = exports.zCsqTranscriptMessageSchema = void 0;
3
+ exports.zCsqPromptBlockUsageSchema = exports.zCsqTriageDecisionSchema = exports.zCsqTriageReasonSchema = exports.zCsqTriageModeSchema = exports.zCsqReviewSchema = exports.zCsqReviewCriterionDisagreementSchema = exports.zCsqReviewMissedAlertSchema = exports.zCsqDataQualitySchema = exports.zCsqCoverageSchema = exports.zCsqContributorSchema = exports.zCsqEvaluationSchema = exports.zCsqPillarScoreSchema = exports.zCsqPillarCoverageSchema = exports.zCsqCriterionScoreSchema = exports.zCsqCrossCheckSchema = exports.zCsqClaimTypeSchema = exports.zCsqClaimSchema = exports.zCsqClaimPriceInformedSchema = exports.zCsqClaimPatientStatusSchema = exports.zCsqClaimFirstConcreteOfferSchema = exports.zCsqClaimQuestionRequiresAnswerSchema = exports.zCsqClaimOutcomeSchema = exports.zCsqClaimRequiredDataSchema = exports.zCsqClaimDataCollectedSchema = exports.zCsqClaimPromiseSchema = exports.zCsqClaimAppointmentInformedSchema = exports.zCsqLeadStateSchema = exports.zCsqLeadStateListFieldSchema = exports.zCsqLeadStateFieldSchema = exports.zCsqIndicatorsSchema = exports.zCsqIndicatorsSetSchema = exports.zCsqAlertSchema = exports.zCsqEvidenceSchema = exports.zCsqAlertSubtypeSchema = exports.zCsqAlertCodeSchema = exports.zCsqPillarCodeSchema = exports.zCsqCriterionScoreValueSchema = exports.zCsqAuthorKindSchema = exports.zCsqReviewVerdictSchema = exports.zCsqLlmConnectionSourceSchema = exports.zCsqPhaseSchema = exports.zCsqRunStatusSchema = exports.zCsqVerificationStateSchema = exports.zCsqAlertResolvedReasonSchema = exports.zCsqAlertLifecycleSchema = exports.zCsqAlertScopeSchema = exports.zCsqAlertSourceSchema = exports.zCsqSeveritySchema = exports.zCsqStatusSchema = exports.zCsqModeSchema = void 0;
4
+ exports.zCsqLeadReportSchema = exports.zCsqRunSchema = exports.zCsqAlertCountsSchema = exports.zCsqEligibilitySchema = exports.zCsqEvaluatedForSchema = exports.zCsqReportHeaderSchema = exports.zCsqReportAttendantSchema = exports.zCsqReportPatientSchema = exports.zCsqReportLeadSchema = exports.zCsqSystemFactsSchema = exports.zCsqBillingFactSchema = exports.zCsqPreviousTicketFactSchema = exports.zCsqOverlapFactSchema = exports.zCsqOverlapFamilyHintsSchema = exports.zCsqOverlapAppointmentFactSchema = exports.zCsqAppointmentFactSchema = exports.zCsqJudgeOutputSchema = exports.zCsqJudgeResolvedAlertSchema = exports.zCsqJudgeRevalidationSchema = exports.zCsqLlmUsageSchema = exports.zCsqTranscriptMessageSchema = exports.zCsqTicketSummarySchema = exports.zCsqTrailEntrySchema = void 0;
5
5
  const zod_1 = require("zod");
6
6
  const zod_schemas_1 = require("../shared/zod-schemas");
7
7
  // Schemas zod do CSQ 2.0 (feat-154). As interfaces TS equivalentes ficam em
@@ -46,6 +46,7 @@ exports.zCsqRunStatusSchema = zod_1.z.enum([
46
46
  ]);
47
47
  exports.zCsqPhaseSchema = zod_1.z.enum(["f0", "f1"]);
48
48
  exports.zCsqLlmConnectionSourceSchema = zod_1.z.enum([
49
+ "binding",
49
50
  "tenant",
50
51
  "legacy_channel",
51
52
  "platform_default",
@@ -343,10 +344,25 @@ exports.zCsqDataQualitySchema = zod_1.z
343
344
  missing_calendar: zod_1.z.boolean().optional(),
344
345
  })
345
346
  .passthrough();
347
+ exports.zCsqReviewMissedAlertSchema = zod_1.z.object({
348
+ code: exports.zCsqAlertCodeSchema,
349
+ severity: exports.zCsqSeveritySchema.optional(),
350
+ ticket_id: zod_1.z.string().optional(),
351
+ note: zod_1.z.string(),
352
+ });
353
+ exports.zCsqReviewCriterionDisagreementSchema = zod_1.z.object({
354
+ criterion: zod_1.z.string(),
355
+ expected: exports.zCsqCriterionScoreValueSchema,
356
+ note: zod_1.z.string().optional(),
357
+ });
346
358
  exports.zCsqReviewSchema = zod_1.z.object({
347
359
  verdict: exports.zCsqReviewVerdictSchema,
348
360
  false_alert_fingerprints: zod_1.z.array(zod_1.z.string()),
349
361
  note: zod_1.z.string().optional(),
362
+ missed_alerts: zod_1.z.array(exports.zCsqReviewMissedAlertSchema).optional(),
363
+ criteria_disagreements: zod_1.z
364
+ .array(exports.zCsqReviewCriterionDisagreementSchema)
365
+ .optional(),
350
366
  reviewer_login_id: zod_1.z.string(),
351
367
  reviewed_at: zod_schemas_1.zFirestoreDateSchema,
352
368
  });
@@ -56,6 +56,7 @@ export const zCsqRunStatusSchema = z.enum([
56
56
  export const zCsqPhaseSchema = z.enum(["f0", "f1"]);
57
57
 
58
58
  export const zCsqLlmConnectionSourceSchema = z.enum([
59
+ "binding",
59
60
  "tenant",
60
61
  "legacy_channel",
61
62
  "platform_default",
@@ -394,10 +395,27 @@ export const zCsqDataQualitySchema = z
394
395
  })
395
396
  .passthrough();
396
397
 
398
+ export const zCsqReviewMissedAlertSchema = z.object({
399
+ code: zCsqAlertCodeSchema,
400
+ severity: zCsqSeveritySchema.optional(),
401
+ ticket_id: z.string().optional(),
402
+ note: z.string(),
403
+ });
404
+
405
+ export const zCsqReviewCriterionDisagreementSchema = z.object({
406
+ criterion: z.string(),
407
+ expected: zCsqCriterionScoreValueSchema,
408
+ note: z.string().optional(),
409
+ });
410
+
397
411
  export const zCsqReviewSchema = z.object({
398
412
  verdict: zCsqReviewVerdictSchema,
399
413
  false_alert_fingerprints: z.array(z.string()),
400
414
  note: z.string().optional(),
415
+ missed_alerts: z.array(zCsqReviewMissedAlertSchema).optional(),
416
+ criteria_disagreements: z
417
+ .array(zCsqReviewCriterionDisagreementSchema)
418
+ .optional(),
401
419
  reviewer_login_id: z.string(),
402
420
  reviewed_at: zFirestoreDateSchema,
403
421
  });
@@ -2341,6 +2341,22 @@ export declare const zAiBindingSchema: z.ZodObject<{
2341
2341
  /** CSQ 2.0 — off (default) | shadow (avalia, não notifica) | active.
2342
2342
  * Ausente equivale a `off`: o gate do pipeline só segue com `shadow`/`active`. */
2343
2343
  csq_mode: z.ZodOptional<z.ZodEnum<["off", "shadow", "active"]>>;
2344
+ /** feat-226: conexão do juiz do CSQ (`/platform/evo-csq/llm-connections/{id}`).
2345
+ * `null`/ausente = default da plataforma. Independente do `llm_connection_id`
2346
+ * da HubIA: o juiz e o atendimento escolhem modelo por motivos diferentes. */
2347
+ csq_judge_connection_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2348
+ /** feat-226: tokens do juiz contam no consumo do tenant. Só vale com
2349
+ * `csq_mode: 'active'`; em `shadow` nunca cobra. Ausente = `false`. */
2350
+ csq_billable: z.ZodOptional<z.ZodBoolean>;
2351
+ /** feat-226: texto só do juiz, fora de `prompt_overrides` para a HubIA nunca
2352
+ * o ler. Entra no prompt do juiz depois do roteiro, com a mesma precedência. */
2353
+ csq_prompts: z.ZodOptional<z.ZodObject<{
2354
+ policy_addendum: z.ZodOptional<z.ZodString>;
2355
+ }, "strip", z.ZodTypeAny, {
2356
+ policy_addendum?: string | undefined;
2357
+ }, {
2358
+ policy_addendum?: string | undefined;
2359
+ }>>;
2344
2360
  /** Conexão do catálogo da plataforma (`/platform/evo-ai/llm-connections/{id}`,
2345
2361
  * com `hubia` em `usable_for`) usada neste departamento. Vence o
2346
2362
  * `llm_connection_id` do canal. `null`/ausente = herda do canal. */
@@ -3091,6 +3107,22 @@ export declare const zAiBindingSchema: z.ZodObject<{
3091
3107
  /** CSQ 2.0 — off (default) | shadow (avalia, não notifica) | active.
3092
3108
  * Ausente equivale a `off`: o gate do pipeline só segue com `shadow`/`active`. */
3093
3109
  csq_mode: z.ZodOptional<z.ZodEnum<["off", "shadow", "active"]>>;
3110
+ /** feat-226: conexão do juiz do CSQ (`/platform/evo-csq/llm-connections/{id}`).
3111
+ * `null`/ausente = default da plataforma. Independente do `llm_connection_id`
3112
+ * da HubIA: o juiz e o atendimento escolhem modelo por motivos diferentes. */
3113
+ csq_judge_connection_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3114
+ /** feat-226: tokens do juiz contam no consumo do tenant. Só vale com
3115
+ * `csq_mode: 'active'`; em `shadow` nunca cobra. Ausente = `false`. */
3116
+ csq_billable: z.ZodOptional<z.ZodBoolean>;
3117
+ /** feat-226: texto só do juiz, fora de `prompt_overrides` para a HubIA nunca
3118
+ * o ler. Entra no prompt do juiz depois do roteiro, com a mesma precedência. */
3119
+ csq_prompts: z.ZodOptional<z.ZodObject<{
3120
+ policy_addendum: z.ZodOptional<z.ZodString>;
3121
+ }, "strip", z.ZodTypeAny, {
3122
+ policy_addendum?: string | undefined;
3123
+ }, {
3124
+ policy_addendum?: string | undefined;
3125
+ }>>;
3094
3126
  /** Conexão do catálogo da plataforma (`/platform/evo-ai/llm-connections/{id}`,
3095
3127
  * com `hubia` em `usable_for`) usada neste departamento. Vence o
3096
3128
  * `llm_connection_id` do canal. `null`/ausente = herda do canal. */
@@ -3841,6 +3873,22 @@ export declare const zAiBindingSchema: z.ZodObject<{
3841
3873
  /** CSQ 2.0 — off (default) | shadow (avalia, não notifica) | active.
3842
3874
  * Ausente equivale a `off`: o gate do pipeline só segue com `shadow`/`active`. */
3843
3875
  csq_mode: z.ZodOptional<z.ZodEnum<["off", "shadow", "active"]>>;
3876
+ /** feat-226: conexão do juiz do CSQ (`/platform/evo-csq/llm-connections/{id}`).
3877
+ * `null`/ausente = default da plataforma. Independente do `llm_connection_id`
3878
+ * da HubIA: o juiz e o atendimento escolhem modelo por motivos diferentes. */
3879
+ csq_judge_connection_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3880
+ /** feat-226: tokens do juiz contam no consumo do tenant. Só vale com
3881
+ * `csq_mode: 'active'`; em `shadow` nunca cobra. Ausente = `false`. */
3882
+ csq_billable: z.ZodOptional<z.ZodBoolean>;
3883
+ /** feat-226: texto só do juiz, fora de `prompt_overrides` para a HubIA nunca
3884
+ * o ler. Entra no prompt do juiz depois do roteiro, com a mesma precedência. */
3885
+ csq_prompts: z.ZodOptional<z.ZodObject<{
3886
+ policy_addendum: z.ZodOptional<z.ZodString>;
3887
+ }, "strip", z.ZodTypeAny, {
3888
+ policy_addendum?: string | undefined;
3889
+ }, {
3890
+ policy_addendum?: string | undefined;
3891
+ }>>;
3844
3892
  /** Conexão do catálogo da plataforma (`/platform/evo-ai/llm-connections/{id}`,
3845
3893
  * com `hubia` em `usable_for`) usada neste departamento. Vence o
3846
3894
  * `llm_connection_id` do canal. `null`/ausente = herda do canal. */
@@ -371,6 +371,18 @@ exports.zAiBindingSchema = zod_schemas_1.zFireDocSchema.extend({
371
371
  /** CSQ 2.0 — off (default) | shadow (avalia, não notifica) | active.
372
372
  * Ausente equivale a `off`: o gate do pipeline só segue com `shadow`/`active`. */
373
373
  csq_mode: zod_schemas_2.zCsqModeSchema.optional(),
374
+ /** feat-226: conexão do juiz do CSQ (`/platform/evo-csq/llm-connections/{id}`).
375
+ * `null`/ausente = default da plataforma. Independente do `llm_connection_id`
376
+ * da HubIA: o juiz e o atendimento escolhem modelo por motivos diferentes. */
377
+ csq_judge_connection_id: zod_1.z.string().nullable().optional(),
378
+ /** feat-226: tokens do juiz contam no consumo do tenant. Só vale com
379
+ * `csq_mode: 'active'`; em `shadow` nunca cobra. Ausente = `false`. */
380
+ csq_billable: zod_1.z.boolean().optional(),
381
+ /** feat-226: texto só do juiz, fora de `prompt_overrides` para a HubIA nunca
382
+ * o ler. Entra no prompt do juiz depois do roteiro, com a mesma precedência. */
383
+ csq_prompts: zod_1.z.object({
384
+ policy_addendum: zod_1.z.string().max(4000).optional(),
385
+ }).optional(),
374
386
  // ───── LLM (feat-210) ─────
375
387
  /** Conexão do catálogo da plataforma (`/platform/evo-ai/llm-connections/{id}`,
376
388
  * com `hubia` em `usable_for`) usada neste departamento. Vence o
@@ -417,6 +417,18 @@ export const zAiBindingSchema = zFireDocSchema.extend({
417
417
  /** CSQ 2.0 — off (default) | shadow (avalia, não notifica) | active.
418
418
  * Ausente equivale a `off`: o gate do pipeline só segue com `shadow`/`active`. */
419
419
  csq_mode: zCsqModeSchema.optional(),
420
+ /** feat-226: conexão do juiz do CSQ (`/platform/evo-csq/llm-connections/{id}`).
421
+ * `null`/ausente = default da plataforma. Independente do `llm_connection_id`
422
+ * da HubIA: o juiz e o atendimento escolhem modelo por motivos diferentes. */
423
+ csq_judge_connection_id: z.string().nullable().optional(),
424
+ /** feat-226: tokens do juiz contam no consumo do tenant. Só vale com
425
+ * `csq_mode: 'active'`; em `shadow` nunca cobra. Ausente = `false`. */
426
+ csq_billable: z.boolean().optional(),
427
+ /** feat-226: texto só do juiz, fora de `prompt_overrides` para a HubIA nunca
428
+ * o ler. Entra no prompt do juiz depois do roteiro, com a mesma precedência. */
429
+ csq_prompts: z.object({
430
+ policy_addendum: z.string().max(4000).optional(),
431
+ }).optional(),
420
432
 
421
433
  // ───── LLM (feat-210) ─────
422
434
  /** Conexão do catálogo da plataforma (`/platform/evo-ai/llm-connections/{id}`,
@@ -58,12 +58,12 @@ export type CsqReviewVerdict = "agree" | "disagree";
58
58
  /** Fase do pipeline: `f0` = so indicadores + alertas deterministicos;
59
59
  * `f1` = com o juiz LLM. */
60
60
  export type CsqPhase = "f0" | "f1";
61
- /** De onde veio a conexao de LLM do juiz (feat-191 §2.3), na ordem de
62
- * resolucao: `tenant` (`judge_connection_id`), `legacy_channel`
63
- * (`channel_config.csq_judge_model`), `platform_default`, `constant`; e
64
- * `kill_switch` quando `/platform/evo-csq.llm.transport_kill_switch` forca a
65
- * Anthropic direta. */
66
- export type CsqLlmConnectionSource = "tenant" | "legacy_channel" | "platform_default" | "constant" | "kill_switch";
61
+ /** De onde veio a conexao de LLM do juiz. Desde a feat-226 a ordem e
62
+ * `binding` (`csq_judge_connection_id` do binding da HubIA),
63
+ * `platform_default`, `constant`; e `kill_switch` quando
64
+ * `/platform/evo-csq.llm.transport_kill_switch` forca a Anthropic direta.
65
+ * `tenant` e `legacy_channel` so aparecem em laudos anteriores a feat-226. */
66
+ export type CsqLlmConnectionSource = "binding" | "tenant" | "legacy_channel" | "platform_default" | "constant" | "kill_switch";
67
67
  /** Autor de uma mensagem da transcricao entregue ao juiz. */
68
68
  export type CsqAuthorKind = "lead" | "human" | "automation" | "hubia" | "event" | "note";
69
69
  /** Codigos de alerta v1. Os subtipos de `POLITICA_VIOLADA` e
@@ -414,9 +414,39 @@ export interface ICsqReview {
414
414
  /** Fingerprints dos alertas marcados como falso positivo. */
415
415
  false_alert_fingerprints: string[];
416
416
  note?: string;
417
+ /** feat-206 F5: alertas que o juiz deixou de dar (falso negativo). Dado de
418
+ * calibracao: nao vira alerta nem altera o laudo. */
419
+ missed_alerts?: ICsqReviewMissedAlert[];
420
+ /** feat-206 F5: criterios em que o supervisor discorda da nota do juiz. */
421
+ criteria_disagreements?: ICsqReviewCriterionDisagreement[];
417
422
  reviewer_login_id: string;
418
423
  reviewed_at: Date;
419
424
  }
425
+ /** Alerta que faltou no laudo, segundo o supervisor (feat-206 F5). */
426
+ export interface ICsqReviewMissedAlert {
427
+ code: CsqAlertCode;
428
+ /** Severidade que o supervisor acha que deveria ter. */
429
+ severity?: CsqSeverity;
430
+ /** Onde aconteceu; ausente = o ticket avaliado. */
431
+ ticket_id?: string;
432
+ /** Obrigatoria e curta (ate `CSQ_REVIEW_LIMITS.note_max_chars`). */
433
+ note: string;
434
+ }
435
+ /** Discordancia de nota de um criterio da rubrica (feat-206 F5). */
436
+ export interface ICsqReviewCriterionDisagreement {
437
+ /** `code` do criterio na rubrica (mesmo de `ICsqCriterionScore.criterion`). */
438
+ criterion: string;
439
+ /** Nota que o supervisor esperava. */
440
+ expected: CsqCriterionScore;
441
+ note?: string;
442
+ }
443
+ /** Tetos da revisao validados pelo backend (feat-206 F5). */
444
+ export declare const CSQ_REVIEW_LIMITS: {
445
+ /** Maximo de itens em `missed_alerts` e em `criteria_disagreements`. */
446
+ readonly max_items: 10;
447
+ /** Maximo de caracteres de cada nota de item. */
448
+ readonly note_max_chars: 300;
449
+ };
420
450
  /** Modo decidido pela triagem deterministica antes do prompt. Os modos
421
451
  * intermediarios ficam para a F3/F4. */
422
452
  export type CsqTriageMode = "skip_llm" | "full_review";
@@ -22,7 +22,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
22
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.CSQ_DEFAULTS = exports.CSQ_RUBRIC_V1 = exports.CSQ_AUTO_FAIL_POLICY_SUBTYPES = exports.CSQ_AUTO_FAIL_ALERT_CODES = exports.CSQ_SALES_FLOW_SUBTYPES = exports.CSQ_POLICY_VIOLATION_SUBTYPES = exports.CSQ_ALERT_CODES = exports.CSQ_RUBRIC_VERSION = void 0;
25
+ exports.CSQ_REVIEW_LIMITS = exports.CSQ_DEFAULTS = exports.CSQ_RUBRIC_V1 = exports.CSQ_AUTO_FAIL_POLICY_SUBTYPES = exports.CSQ_AUTO_FAIL_ALERT_CODES = exports.CSQ_SALES_FLOW_SUBTYPES = exports.CSQ_POLICY_VIOLATION_SUBTYPES = exports.CSQ_ALERT_CODES = exports.CSQ_RUBRIC_VERSION = void 0;
26
26
  __exportStar(require("./fb_collections"), exports);
27
27
  // ───────── Versao da rubrica ─────────
28
28
  /** Versao da rubrica da plataforma gravada em cada avaliacao. Pesos e criterios
@@ -193,3 +193,10 @@ exports.CSQ_DEFAULTS = {
193
193
  /** Atraso da rechecagem agendada da agenda (minutos apos closed_at). */
194
194
  recheck_delay_min: 30,
195
195
  };
196
+ /** Tetos da revisao validados pelo backend (feat-206 F5). */
197
+ exports.CSQ_REVIEW_LIMITS = {
198
+ /** Maximo de itens em `missed_alerts` e em `criteria_disagreements`. */
199
+ max_items: 10,
200
+ /** Maximo de caracteres de cada nota de item. */
201
+ note_max_chars: 300,
202
+ };
@@ -102,12 +102,13 @@ export type CsqReviewVerdict = "agree" | "disagree";
102
102
  * `f1` = com o juiz LLM. */
103
103
  export type CsqPhase = "f0" | "f1";
104
104
 
105
- /** De onde veio a conexao de LLM do juiz (feat-191 §2.3), na ordem de
106
- * resolucao: `tenant` (`judge_connection_id`), `legacy_channel`
107
- * (`channel_config.csq_judge_model`), `platform_default`, `constant`; e
108
- * `kill_switch` quando `/platform/evo-csq.llm.transport_kill_switch` forca a
109
- * Anthropic direta. */
105
+ /** De onde veio a conexao de LLM do juiz. Desde a feat-226 a ordem e
106
+ * `binding` (`csq_judge_connection_id` do binding da HubIA),
107
+ * `platform_default`, `constant`; e `kill_switch` quando
108
+ * `/platform/evo-csq.llm.transport_kill_switch` forca a Anthropic direta.
109
+ * `tenant` e `legacy_channel` so aparecem em laudos anteriores a feat-226. */
110
110
  export type CsqLlmConnectionSource =
111
+ | "binding"
111
112
  | "tenant"
112
113
  | "legacy_channel"
113
114
  | "platform_default"
@@ -659,10 +660,43 @@ export interface ICsqReview {
659
660
  /** Fingerprints dos alertas marcados como falso positivo. */
660
661
  false_alert_fingerprints: string[];
661
662
  note?: string;
663
+ /** feat-206 F5: alertas que o juiz deixou de dar (falso negativo). Dado de
664
+ * calibracao: nao vira alerta nem altera o laudo. */
665
+ missed_alerts?: ICsqReviewMissedAlert[];
666
+ /** feat-206 F5: criterios em que o supervisor discorda da nota do juiz. */
667
+ criteria_disagreements?: ICsqReviewCriterionDisagreement[];
662
668
  reviewer_login_id: string;
663
669
  reviewed_at: Date;
664
670
  }
665
671
 
672
+ /** Alerta que faltou no laudo, segundo o supervisor (feat-206 F5). */
673
+ export interface ICsqReviewMissedAlert {
674
+ code: CsqAlertCode;
675
+ /** Severidade que o supervisor acha que deveria ter. */
676
+ severity?: CsqSeverity;
677
+ /** Onde aconteceu; ausente = o ticket avaliado. */
678
+ ticket_id?: string;
679
+ /** Obrigatoria e curta (ate `CSQ_REVIEW_LIMITS.note_max_chars`). */
680
+ note: string;
681
+ }
682
+
683
+ /** Discordancia de nota de um criterio da rubrica (feat-206 F5). */
684
+ export interface ICsqReviewCriterionDisagreement {
685
+ /** `code` do criterio na rubrica (mesmo de `ICsqCriterionScore.criterion`). */
686
+ criterion: string;
687
+ /** Nota que o supervisor esperava. */
688
+ expected: CsqCriterionScore;
689
+ note?: string;
690
+ }
691
+
692
+ /** Tetos da revisao validados pelo backend (feat-206 F5). */
693
+ export const CSQ_REVIEW_LIMITS = {
694
+ /** Maximo de itens em `missed_alerts` e em `criteria_disagreements`. */
695
+ max_items: 10,
696
+ /** Maximo de caracteres de cada nota de item. */
697
+ note_max_chars: 300,
698
+ } as const;
699
+
666
700
  // ───────── Trilha e denormalizacao ─────────
667
701
 
668
702
  // ───────── Triagem sem LLM (feat-206 F1) ─────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.637",
3
+ "version": "1.3.639",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",