n8n-nodes-tembory 1.0.54 → 1.0.56

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.
@@ -1453,6 +1453,10 @@ const applyOperationalPreset = (advanced = {}) => {
1453
1453
  if (resolved.useVectorMemory === false) {
1454
1454
  resolved.includeRelations = false;
1455
1455
  resolved.includeEntityTimeline = false;
1456
+ resolved.includeToolLedgerProbe = false;
1457
+ resolved.includeRecentMessageProbe = false;
1458
+ if (resolved.summarySource === 'vectorOnly' || resolved.summarySource === 'vectors')
1459
+ resolved.summarySource = 'activeContext';
1456
1460
  }
1457
1461
  return resolved;
1458
1462
  };
@@ -2700,13 +2704,13 @@ class Mem0Memory {
2700
2704
  name: 'retrievalMode',
2701
2705
  type: 'options',
2702
2706
  options: [
2703
- { name: 'Básico', value: 'basic', description: 'Retorna memórias brutas (recentes ou todas)' },
2707
+ { name: 'Operacional Estruturado', value: 'basic', description: 'Usa estado da thread, histórico de tools, mensagens recentes e resumo ativo, sem busca vetorial' },
2704
2708
  { name: 'Resumo', value: 'summary', description: 'Retorna um resumo simples em texto' },
2705
2709
  { name: 'Semântico (v1)', value: 'semantic', description: 'Busca semântica usando o endpoint v1 com opção de rerank' },
2706
2710
  { name: 'Semântico (v2)', value: 'semanticV2', description: 'Busca semântica avançada com filtros (v2)' },
2707
2711
  { name: 'Híbrido', value: 'hybrid', description: 'Combina memórias recentes com busca semântica (v2) usando time-decay e pontuação híbrida' },
2708
2712
  ],
2709
- default: 'hybrid',
2713
+ default: 'basic',
2710
2714
  },
2711
2715
  {
2712
2716
  displayName: 'Consulta',
@@ -2792,14 +2796,9 @@ class Mem0Memory {
2792
2796
  { displayName: 'Últimas N Mensagens', name: 'recentMessagesLastN', type: 'number', default: 50 },
2793
2797
  { displayName: 'Incluir Highlights Recentes', name: 'includeRecentHighlights', type: 'boolean', default: false },
2794
2798
  { displayName: 'Máximo de Highlights', name: 'recentHighlightsMaxItems', type: 'number', default: 6 },
2795
- { displayName: 'Incluir Grafo', name: 'includeRelations', type: 'boolean', default: false },
2796
- { displayName: 'Máximo de Relações', name: 'maxRelations', type: 'number', default: 10 },
2797
2799
  { displayName: 'Incluir Action Ledger', name: 'includeActionLedger', type: 'boolean', default: true },
2798
2800
  { displayName: 'Incluir Entity Timeline', name: 'includeEntityTimeline', type: 'boolean', default: false },
2799
- { displayName: 'Usar Memória Vetorial no Caminho Quente', name: 'useVectorMemory', type: 'boolean', default: false },
2800
2801
  { displayName: 'Persistir Memórias no Backend', name: 'persistBackendMemories', type: 'boolean', default: true },
2801
- { displayName: 'Probe Vetorial de Mensagens Recentes', name: 'includeRecentMessageProbe', type: 'boolean', default: false },
2802
- { displayName: 'Probe Vetorial de Tool Ledger', name: 'includeToolLedgerProbe', type: 'boolean', default: false },
2803
2802
  ],
2804
2803
  },
2805
2804
  {
@@ -2832,7 +2831,6 @@ class Mem0Memory {
2832
2831
  options: [
2833
2832
  { name: 'Automático', value: 'auto' },
2834
2833
  { name: 'Contexto Ativo', value: 'activeContext' },
2835
- { name: 'Somente Vetores', value: 'vectorOnly' },
2836
2834
  { name: 'Desligado', value: 'off' },
2837
2835
  ],
2838
2836
  default: 'auto',
@@ -3439,13 +3437,14 @@ class Mem0Memory {
3439
3437
  async loadMemoryVariablesForItem(itemIndex, inputValues = {}) {
3440
3438
  var _a, _b, _c, _d, _e, _f, _g;
3441
3439
  const memoryKey = this.getNodeParameter('memoryKey', itemIndex);
3442
- const retrievalMode = this.getNodeParameter('retrievalMode', itemIndex);
3440
+ const requestedRetrievalMode = this.getNodeParameter('retrievalMode', itemIndex);
3443
3441
  let payloadFormat = this.getNodeParameter('payloadFormat', itemIndex, 'structured');
3444
3442
  const threadId = this.getNodeParameter('threadId', itemIndex);
3445
3443
  const project = this.getNodeParameter('project', itemIndex, '');
3446
3444
  const adv = applyOperationalPreset(readAdvancedOptions(this, itemIndex));
3447
3445
  payloadFormat = adv.payloadFormat || payloadFormat;
3448
3446
  const vectorMemoryEnabled = adv.useVectorMemory !== false;
3447
+ const retrievalMode = vectorMemoryEnabled ? requestedRetrievalMode : 'basic';
3449
3448
  const backendPersistenceEnabled = adv.persistBackendMemories !== false;
3450
3449
  const store = getMemoryStore(this);
3451
3450
  const key = userKeyFrom(threadId, adv, project);
@@ -3484,6 +3483,7 @@ class Mem0Memory {
3484
3483
  this.logger?.debug('Tembory loading memory variables before model invocation', {
3485
3484
  itemIndex,
3486
3485
  retrievalMode,
3486
+ requestedRetrievalMode,
3487
3487
  hasQuery: String(query || '').trim().length > 0,
3488
3488
  connectedAi,
3489
3489
  });
@@ -3967,6 +3967,7 @@ class Mem0Memory {
3967
3967
  project: project || undefined,
3968
3968
  query,
3969
3969
  retrievalMode,
3970
+ requestedRetrievalMode: requestedRetrievalMode === retrievalMode ? undefined : requestedRetrievalMode,
3970
3971
  payloadFormat,
3971
3972
  options: {
3972
3973
  includeContextHeader: adv.includeContextHeader !== false,
@@ -4066,13 +4067,14 @@ class Mem0Memory {
4066
4067
  const count = Math.max(items.length, 1);
4067
4068
  for (let i = 0; i < count; i++) {
4068
4069
  const memoryKey = this.getNodeParameter('memoryKey', i);
4069
- const retrievalMode = this.getNodeParameter('retrievalMode', i);
4070
+ const requestedRetrievalMode = this.getNodeParameter('retrievalMode', i);
4070
4071
  const threadId = this.getNodeParameter('threadId', i);
4071
4072
  const project = this.getNodeParameter('project', i, '');
4072
4073
  const adv = applyOperationalPreset(readAdvancedOptions(this, i));
4074
+ const retrievalMode = adv.useVectorMemory === false ? 'basic' : requestedRetrievalMode;
4073
4075
  const key = userKeyFrom(threadId, adv, project);
4074
4076
  const query = asSearchQuery(this.getNodeParameter('query', i, ''));
4075
- const connectedEmbedding = await getConnectedEmbedding(this, i);
4077
+ const connectedEmbedding = adv.useVectorMemory === false ? null : await getConnectedEmbedding(this, i);
4076
4078
  let payload;
4077
4079
  if (retrievalMode === 'semantic' || retrievalMode === 'semanticV2') {
4078
4080
  const body = { query: String(query || '') };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-tembory",
3
- "version": "1.0.54",
3
+ "version": "1.0.56",
4
4
  "description": "Tembory node for n8n AI Agents with profile, tools, timeline, graph and semantic memory",
5
5
  "license": "MIT",
6
6
  "homepage": "https://tembory.com",