portal-aiatende-api 0.6.0 → 0.8.0

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/index.d.mts CHANGED
@@ -379,6 +379,16 @@ interface MessagingConversation {
379
379
  aiCareStatusSetByName: string | null;
380
380
  /** Só presente na resposta do GET de detalhe (não na listagem). */
381
381
  aiResumeMode?: AiResumeMode | null;
382
+ /**
383
+ * Resumo + motivo do último handoff (IA -> humano) — guardam só a transferência mais recente,
384
+ * sem histórico (uma nova transferência sobrescreve). `summary` é congelado no momento do
385
+ * handoff (não atualizado a cada resposta da IA). Ver Conversation.summary/handoffReason em
386
+ * prisma/schema.prisma do Portal.
387
+ */
388
+ summary?: string | null;
389
+ handoffReason?: string | null;
390
+ handoffSetAt?: Date | string | null;
391
+ handoffSetByName?: string | null;
382
392
  /**
383
393
  * Lead da Kommo dono desse mesmo número de telefone — hoje toda a movimentação/tools da IA
384
394
  * (agendamento, mover pipeline, etc.) opera em cima de um lead_id da Kommo; este canal não tem
@@ -456,6 +466,18 @@ interface PatchConversationPayload {
456
466
  kommoLeadId?: number | null;
457
467
  /** Status de triagem, puramente organizacional (não bloqueia envio/recebimento). Reabre sozinho ('open') com qualquer mensagem inbound nova. */
458
468
  status?: 'open' | 'closed';
469
+ /**
470
+ * Resumo da conversa, congelado no momento do handoff — reaproveita o `resumo_conversa` que
471
+ * as tools de handoff já pedem ao modelo hoje. Não é recalculado a cada resposta da IA.
472
+ */
473
+ summary?: string;
474
+ /**
475
+ * Motivo do handoff/perda — texto livre de propósito (sem lista fechada de opções no Portal:
476
+ * um valor nunca visto antes é aceito e passa a aparecer nas sugestões da UI sozinho). Quando
477
+ * enviado junto com `aiCareStatus: 'INACTIVE'` sem `assignedToId` explícito, o Portal pode
478
+ * auto-atribuir a conversa por round-robin (ver MessagingConfig.assignmentMode).
479
+ */
480
+ handoffReason?: string;
459
481
  }
460
482
  /**
461
483
  * `actor` só é respeitado pelo Portal quando o chamador é um papel de sistema/staff (ex.: o
@@ -633,6 +655,11 @@ interface UpdateContactPayload {
633
655
  * chaves sem definição são preservadas sem validação.
634
656
  */
635
657
  customFields?: Record<string, unknown>;
658
+ /**
659
+ * Vínculo com o lead da Kommo — fonte única de verdade (ver Contact.kommoLeadId no Portal).
660
+ * `null` limpa o vínculo (ex.: self-healing após 404 da Kommo).
661
+ */
662
+ kommoLeadId?: number | null;
636
663
  }
637
664
 
638
665
  /**
package/dist/index.d.ts CHANGED
@@ -379,6 +379,16 @@ interface MessagingConversation {
379
379
  aiCareStatusSetByName: string | null;
380
380
  /** Só presente na resposta do GET de detalhe (não na listagem). */
381
381
  aiResumeMode?: AiResumeMode | null;
382
+ /**
383
+ * Resumo + motivo do último handoff (IA -> humano) — guardam só a transferência mais recente,
384
+ * sem histórico (uma nova transferência sobrescreve). `summary` é congelado no momento do
385
+ * handoff (não atualizado a cada resposta da IA). Ver Conversation.summary/handoffReason em
386
+ * prisma/schema.prisma do Portal.
387
+ */
388
+ summary?: string | null;
389
+ handoffReason?: string | null;
390
+ handoffSetAt?: Date | string | null;
391
+ handoffSetByName?: string | null;
382
392
  /**
383
393
  * Lead da Kommo dono desse mesmo número de telefone — hoje toda a movimentação/tools da IA
384
394
  * (agendamento, mover pipeline, etc.) opera em cima de um lead_id da Kommo; este canal não tem
@@ -456,6 +466,18 @@ interface PatchConversationPayload {
456
466
  kommoLeadId?: number | null;
457
467
  /** Status de triagem, puramente organizacional (não bloqueia envio/recebimento). Reabre sozinho ('open') com qualquer mensagem inbound nova. */
458
468
  status?: 'open' | 'closed';
469
+ /**
470
+ * Resumo da conversa, congelado no momento do handoff — reaproveita o `resumo_conversa` que
471
+ * as tools de handoff já pedem ao modelo hoje. Não é recalculado a cada resposta da IA.
472
+ */
473
+ summary?: string;
474
+ /**
475
+ * Motivo do handoff/perda — texto livre de propósito (sem lista fechada de opções no Portal:
476
+ * um valor nunca visto antes é aceito e passa a aparecer nas sugestões da UI sozinho). Quando
477
+ * enviado junto com `aiCareStatus: 'INACTIVE'` sem `assignedToId` explícito, o Portal pode
478
+ * auto-atribuir a conversa por round-robin (ver MessagingConfig.assignmentMode).
479
+ */
480
+ handoffReason?: string;
459
481
  }
460
482
  /**
461
483
  * `actor` só é respeitado pelo Portal quando o chamador é um papel de sistema/staff (ex.: o
@@ -633,6 +655,11 @@ interface UpdateContactPayload {
633
655
  * chaves sem definição são preservadas sem validação.
634
656
  */
635
657
  customFields?: Record<string, unknown>;
658
+ /**
659
+ * Vínculo com o lead da Kommo — fonte única de verdade (ver Contact.kommoLeadId no Portal).
660
+ * `null` limpa o vínculo (ex.: self-healing após 404 da Kommo).
661
+ */
662
+ kommoLeadId?: number | null;
636
663
  }
637
664
 
638
665
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "portal-aiatende-api",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Cliente TypeScript tipado para a API interna do Portal AI Atende.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",