evo360-types 1.3.378 → 1.3.383

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.
@@ -13,9 +13,7 @@ export interface IChannelProviderRef {
13
13
  export interface ICallDeflectionConfig {
14
14
  enabled: boolean;
15
15
  mode: 'template' | 'text';
16
- template?: {
17
- name: string;
18
- language: string;
16
+ template?: ICallHsmTemplateRef & {
19
17
  category?: string;
20
18
  };
21
19
  text?: string;
@@ -23,12 +21,18 @@ export interface ICallDeflectionConfig {
23
21
  only_outside_business_hours?: boolean;
24
22
  cooldown_minutes?: number;
25
23
  }
24
+ /** Referência a HSM aprovado na Meta (nome + idioma + variáveis opcionais). */
25
+ export interface ICallHsmTemplateRef {
26
+ name: string;
27
+ language: string;
28
+ /** Valores do BODY na ordem {{1}}, {{2}}, … Suporta placeholder {{contact_name}}. */
29
+ body_parameters?: string[];
30
+ /** Valores do HEADER TEXT na ordem {{1}}, … */
31
+ header_parameters?: string[];
32
+ }
26
33
  export interface ICallOutboundPermissionConfig {
27
34
  enabled: boolean;
28
- request_template?: {
29
- name: string;
30
- language: string;
31
- };
35
+ request_template?: ICallHsmTemplateRef;
32
36
  }
33
37
  export interface ICallsChannelConfig {
34
38
  enabled: boolean;
@@ -25,20 +25,30 @@ export interface IChannelProviderRef {
25
25
  export interface ICallDeflectionConfig {
26
26
  enabled: boolean;
27
27
  mode: 'template' | 'text';
28
- template?: { name: string; language: string; category?: string };
28
+ template?: ICallHsmTemplateRef & { category?: string };
29
29
  text?: string; // mode 'text' — só aplicado com janela de 24h aberta
30
30
  end_call: boolean; // default true — terminate/reject via call-control
31
31
  only_outside_business_hours?: boolean;
32
32
  cooldown_minutes?: number; // hardening leve (notificação repetida)
33
33
  }
34
34
 
35
+ /** Referência a HSM aprovado na Meta (nome + idioma + variáveis opcionais). */
36
+ export interface ICallHsmTemplateRef {
37
+ name: string;
38
+ language: string;
39
+ /** Valores do BODY na ordem {{1}}, {{2}}, … Suporta placeholder {{contact_name}}. */
40
+ body_parameters?: string[];
41
+ /** Valores do HEADER TEXT na ordem {{1}}, … */
42
+ header_parameters?: string[];
43
+ }
44
+
35
45
  // Permissão para ligação outbound (business-initiated) — Fase 2.
36
46
  // Antes de discar, a clínica precisa de permissão do usuário; quando ausente,
37
47
  // envia-se um HSM com componente CALL_PERMISSION_REQUEST (template aprovado).
38
48
  export interface ICallOutboundPermissionConfig {
39
49
  enabled: boolean;
40
50
  // Template HSM com botão/ação CALL_PERMISSION_REQUEST.
41
- request_template?: { name: string; language: string };
51
+ request_template?: ICallHsmTemplateRef;
42
52
  }
43
53
 
44
54
  export interface ICallsChannelConfig {
@@ -1,4 +1,15 @@
1
1
  export declare const EvoMcpPermissions: {
2
+ /**
3
+ * @deprecated desde feat-022 (2026-06-03). Não gateia mais a conexão nem
4
+ * tools — a conexão passou a exigir Read/WriteLowRisk/WriteHighRisk.
5
+ * Mantido exportado apenas para compatibilidade com consumidores antigos.
6
+ */
2
7
  readonly Access: "evo_mcp_access";
8
+ /** Gate de leitura: exigido por toda read tool, junto da perm read do módulo. */
9
+ readonly Read: "evo_mcp_read";
10
+ /** Gate de write reversível/baixo blast-radius (criar lead, fechar ticket, etc.). */
11
+ readonly WriteLowRisk: "evo_mcp_write_low_risk";
12
+ /** Gate de write com side-effect externo/irreversível (enviar WhatsApp, mover appointment, etc.). */
13
+ readonly WriteHighRisk: "evo_mcp_write_high_risk";
3
14
  };
4
15
  export type EvoMcpPermissions = (typeof EvoMcpPermissions)[keyof typeof EvoMcpPermissions];
@@ -2,6 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvoMcpPermissions = void 0;
4
4
  // Permissões para o evo-mcp (servidor MCP tenant-level)
5
+ //
6
+ // Modelo de gating (feat-022, reconciliação 2026-06-03):
7
+ // - Conexão: usuário precisa de Read OU WriteLowRisk OU WriteHighRisk no tenant.
8
+ // - Read tool: Read + perm read do módulo.
9
+ // - Write low-risk: WriteLowRisk + perm write do módulo.
10
+ // - Write high-risk: WriteHighRisk + perm write do módulo.
11
+ // - Admin (is_admin no JWT) bypassa membership + perms (tenant continua obrigatório).
5
12
  exports.EvoMcpPermissions = {
13
+ /**
14
+ * @deprecated desde feat-022 (2026-06-03). Não gateia mais a conexão nem
15
+ * tools — a conexão passou a exigir Read/WriteLowRisk/WriteHighRisk.
16
+ * Mantido exportado apenas para compatibilidade com consumidores antigos.
17
+ */
6
18
  Access: "evo_mcp_access",
19
+ /** Gate de leitura: exigido por toda read tool, junto da perm read do módulo. */
20
+ Read: "evo_mcp_read",
21
+ /** Gate de write reversível/baixo blast-radius (criar lead, fechar ticket, etc.). */
22
+ WriteLowRisk: "evo_mcp_write_low_risk",
23
+ /** Gate de write com side-effect externo/irreversível (enviar WhatsApp, mover appointment, etc.). */
24
+ WriteHighRisk: "evo_mcp_write_high_risk",
7
25
  };
@@ -1,6 +1,24 @@
1
1
  // Permissões para o evo-mcp (servidor MCP tenant-level)
2
+ //
3
+ // Modelo de gating (feat-022, reconciliação 2026-06-03):
4
+ // - Conexão: usuário precisa de Read OU WriteLowRisk OU WriteHighRisk no tenant.
5
+ // - Read tool: Read + perm read do módulo.
6
+ // - Write low-risk: WriteLowRisk + perm write do módulo.
7
+ // - Write high-risk: WriteHighRisk + perm write do módulo.
8
+ // - Admin (is_admin no JWT) bypassa membership + perms (tenant continua obrigatório).
2
9
  export const EvoMcpPermissions = {
10
+ /**
11
+ * @deprecated desde feat-022 (2026-06-03). Não gateia mais a conexão nem
12
+ * tools — a conexão passou a exigir Read/WriteLowRisk/WriteHighRisk.
13
+ * Mantido exportado apenas para compatibilidade com consumidores antigos.
14
+ */
3
15
  Access: "evo_mcp_access",
16
+ /** Gate de leitura: exigido por toda read tool, junto da perm read do módulo. */
17
+ Read: "evo_mcp_read",
18
+ /** Gate de write reversível/baixo blast-radius (criar lead, fechar ticket, etc.). */
19
+ WriteLowRisk: "evo_mcp_write_low_risk",
20
+ /** Gate de write com side-effect externo/irreversível (enviar WhatsApp, mover appointment, etc.). */
21
+ WriteHighRisk: "evo_mcp_write_high_risk",
4
22
  } as const;
5
23
 
6
24
  export type EvoMcpPermissions =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.378",
3
+ "version": "1.3.383",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",