@wondai/n8n-nodes-nucleo 0.5.4 → 0.5.5

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/README.md CHANGED
@@ -32,6 +32,29 @@ parede. Isso mantém o segredo fora do workflow, a lógica num lugar só e o tok
32
32
  **Resolver Produtos** é a operação inteligente: manda várias consultas numa chamada (máx 10),
33
33
  tolera erro de digitação (`banofe`→Banoffee), falta de acento (`pao frances`→Pão Francês) e
34
34
  apelidos; devolve no máx 3 candidatos por consulta com `status` (`achou`/`ambiguo`/`nao_achou`).
35
+ Produtos configuráveis também devolvem `regras_compra`. O agente deve coletar as opções
36
+ obrigatórias e enviá-las em `itens[].configuracao`; o Núcleo recusa com HTTP 422 qualquer combo
37
+ incompleto, opção inventada, quantidade inválida, prazo impossível ou personalização proibida.
38
+
39
+ Exemplo de item configurável:
40
+
41
+ ```json
42
+ {
43
+ "produto_id": "uuid-do-produto",
44
+ "quantidade": 1,
45
+ "configuracao": {
46
+ "opcoes": [
47
+ {
48
+ "grupo_id": "uuid-do-grupo",
49
+ "opcao_id": "uuid-da-opcao"
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ ```
55
+
56
+ O node não interpreta essas regras: ele encaminha o JSON sem alteração. A validação e o snapshot
57
+ imutável do contrato aplicado pertencem à API do Núcleo (ADR-035).
35
58
 
36
59
  **Disponibilidade na Rede** ("tem na outra loja?") é exposta como **tool** do AI Agent, mas com regra
37
60
  estrita no prompt: **usar SÓ quando o cliente pedir explicitamente outra unidade**. Passe o `produto_id`
@@ -189,7 +189,7 @@ class Nucleo {
189
189
  name: "Resolver Produtos",
190
190
  value: "resolver",
191
191
  action: "Resolver produtos do catálogo",
192
- description: "Busca vários produtos numa chamada tolera erro de digitação e apelidos",
192
+ description: "Busca vários produtos numa chamada, tolera erro de digitação e apelidos e devolve regras_compra quando houver escolhas, limites ou restrições obrigatórias",
193
193
  },
194
194
  {
195
195
  name: "Disponibilidade Na Rede",
@@ -319,7 +319,7 @@ class Nucleo {
319
319
  default: "",
320
320
  required: true,
321
321
  placeholder: "banofe, pão francês, coxinha",
322
- description: "Produtos a buscar: um por linha ou separados por vírgula (máx 10). Aceita erro de digitação, falta de acento e apelidos. Ex: 'banofe, pão francês'.",
322
+ description: "Produtos a buscar: um por linha ou separados por vírgula (máx 10). Aceita erro de digitação, falta de acento e apelidos. Para produto configurável, use regras_compra como fonte da verdade e colete todas as opções obrigatórias antes de criar o pedido.",
323
323
  displayOptions: { show: { resource: ["catalogo"], operation: ["resolver"] } },
324
324
  },
325
325
  // ----------------------------------------------------------------- catalogo:disponibilidadeRede
@@ -385,7 +385,7 @@ class Nucleo {
385
385
  type: "json",
386
386
  default: "[]",
387
387
  required: true,
388
- description: 'Array de itens. Cada item: {"produto_id" OU "alias", "variacao_id"?, "quantidade", "personalizacao"?}. Ex: [{"alias":"paozinho","quantidade":6},{"produto_id":"...","quantidade":1}]',
388
+ description: 'Array de itens. Cada item: {"produto_id" OU "alias", "variacao_id"?, "quantidade", "personalizacao"?, "configuracao"?}. Para produto configurável, copie somente escolhas devolvidas em regras_compra: {"configuracao":{"opcoes":[{"grupo_id":"uuid","opcao_id":"uuid"}],"quantidade_referencia":100,"confirmacao_humana":true}}. A API recusa combo incompleto ou opção inventada com 422.',
389
389
  displayOptions: { show: { resource: ["pedido"], operation: ["criar"] } },
390
390
  },
391
391
  {
@@ -531,7 +531,7 @@ class Nucleo {
531
531
  name: "adicionarItens",
532
532
  type: "json",
533
533
  default: "[]",
534
- description: "Mesma forma de Itens. Vazio = não adiciona.",
534
+ description: "Mesma forma de Itens, incluindo configuracao para escolhas obrigatórias retornadas em regras_compra. Vazio = não adiciona; item incompleto é recusado com 422.",
535
535
  displayOptions: { show: { resource: ["pedido"], operation: ["alterar"] } },
536
536
  },
537
537
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wondai/n8n-nodes-nucleo",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "description": "Node n8n para o Núcleo Wondai — atendimento de IA (gate liga/desliga, cliente, catálogo fuzzy, disponibilidade em rede, pedidos, contexto operacional, telemetria) com assinatura HMAC v1. Tenant vem do token (a parede, ADR-013).",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",