@n8n/agents 0.24.2 → 0.25.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.
Files changed (128) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/evals/parse-judge-response.js +2 -4
  3. package/dist/evals/parse-judge-response.js.map +1 -1
  4. package/dist/index.d.ts +10 -5
  5. package/dist/index.js +16 -8
  6. package/dist/index.js.map +1 -1
  7. package/dist/runtime/loop/agent-runtime.d.ts +11 -2
  8. package/dist/runtime/loop/agent-runtime.js +31 -5
  9. package/dist/runtime/loop/agent-runtime.js.map +1 -1
  10. package/dist/runtime/loop/runtime-context.d.ts +3 -2
  11. package/dist/runtime/loop/runtime-context.js +33 -5
  12. package/dist/runtime/loop/runtime-context.js.map +1 -1
  13. package/dist/runtime/loop/runtime-helpers.js +3 -2
  14. package/dist/runtime/loop/runtime-helpers.js.map +1 -1
  15. package/dist/runtime/loop/stream-sink.d.ts +2 -1
  16. package/dist/runtime/loop/stream-sink.js +43 -16
  17. package/dist/runtime/loop/stream-sink.js.map +1 -1
  18. package/dist/runtime/mcp/mcp-tool-resolver.js +1 -0
  19. package/dist/runtime/mcp/mcp-tool-resolver.js.map +1 -1
  20. package/dist/runtime/memory/episodic-memory-capture.d.ts +35 -0
  21. package/dist/runtime/memory/episodic-memory-capture.js +307 -0
  22. package/dist/runtime/memory/episodic-memory-capture.js.map +1 -0
  23. package/dist/runtime/memory/episodic-memory-defaults.d.ts +4 -9
  24. package/dist/runtime/memory/episodic-memory-defaults.js +15 -513
  25. package/dist/runtime/memory/episodic-memory-defaults.js.map +1 -1
  26. package/dist/runtime/memory/episodic-memory.d.ts +4 -25
  27. package/dist/runtime/memory/episodic-memory.js +32 -251
  28. package/dist/runtime/memory/episodic-memory.js.map +1 -1
  29. package/dist/runtime/memory/memory-orchestrator.d.ts +1 -1
  30. package/dist/runtime/memory/memory-orchestrator.js +56 -53
  31. package/dist/runtime/memory/memory-orchestrator.js.map +1 -1
  32. package/dist/runtime/memory/memory-store.d.ts +11 -6
  33. package/dist/runtime/memory/memory-store.js +105 -34
  34. package/dist/runtime/memory/memory-store.js.map +1 -1
  35. package/dist/runtime/memory/observation-log-observer.js +2 -6
  36. package/dist/runtime/memory/observation-log-observer.js.map +1 -1
  37. package/dist/runtime/memory/observation-log-reflector.js +2 -9
  38. package/dist/runtime/memory/observation-log-reflector.js.map +1 -1
  39. package/dist/runtime/model/message-list.d.ts +3 -2
  40. package/dist/runtime/model/message-list.js +8 -6
  41. package/dist/runtime/model/message-list.js.map +1 -1
  42. package/dist/runtime/model/messages.js.map +1 -1
  43. package/dist/runtime/model/model-factory.d.ts +2 -0
  44. package/dist/runtime/model/model-factory.js +41 -7
  45. package/dist/runtime/model/model-factory.js.map +1 -1
  46. package/dist/runtime/model/openai-api-style.d.ts +14 -0
  47. package/dist/runtime/model/openai-api-style.js +404 -0
  48. package/dist/runtime/model/openai-api-style.js.map +1 -0
  49. package/dist/runtime/model/prompt-cache.d.ts +0 -1
  50. package/dist/runtime/model/prompt-cache.js +3 -6
  51. package/dist/runtime/model/prompt-cache.js.map +1 -1
  52. package/dist/runtime/model/provider-credentials.js.map +1 -1
  53. package/dist/runtime/model/provider-quirks.d.ts +0 -1
  54. package/dist/runtime/model/provider-quirks.js +0 -4
  55. package/dist/runtime/model/provider-quirks.js.map +1 -1
  56. package/dist/runtime/model/raw-error.js +2 -2
  57. package/dist/runtime/model/raw-error.js.map +1 -1
  58. package/dist/runtime/model/raw-usage.js +2 -2
  59. package/dist/runtime/model/raw-usage.js.map +1 -1
  60. package/dist/runtime/skills/active-skills.d.ts +20 -0
  61. package/dist/runtime/skills/active-skills.js +139 -0
  62. package/dist/runtime/skills/active-skills.js.map +1 -0
  63. package/dist/runtime/streaming/stream-stall.d.ts +3 -2
  64. package/dist/runtime/streaming/stream-stall.js +20 -9
  65. package/dist/runtime/streaming/stream-stall.js.map +1 -1
  66. package/dist/runtime/telemetry/runtime-telemetry.js +2 -2
  67. package/dist/runtime/telemetry/runtime-telemetry.js.map +1 -1
  68. package/dist/runtime/tools/deferred-tool-manager.d.ts +2 -0
  69. package/dist/runtime/tools/deferred-tool-manager.js +17 -2
  70. package/dist/runtime/tools/deferred-tool-manager.js.map +1 -1
  71. package/dist/runtime/tools/delegate-sub-agent-tool.js.map +1 -1
  72. package/dist/runtime/tools/tool-adapter.js +2 -0
  73. package/dist/runtime/tools/tool-adapter.js.map +1 -1
  74. package/dist/runtime/tools/tool-call-executor.d.ts +5 -2
  75. package/dist/runtime/tools/tool-call-executor.js +26 -7
  76. package/dist/runtime/tools/tool-call-executor.js.map +1 -1
  77. package/dist/runtime/tools/tool-result-guard.js +2 -4
  78. package/dist/runtime/tools/tool-result-guard.js.map +1 -1
  79. package/dist/runtime/tools/untrusted-tool-output.d.ts +7 -0
  80. package/dist/runtime/tools/untrusted-tool-output.js +67 -0
  81. package/dist/runtime/tools/untrusted-tool-output.js.map +1 -0
  82. package/dist/sdk/agent.d.ts +3 -1
  83. package/dist/sdk/agent.js +16 -21
  84. package/dist/sdk/agent.js.map +1 -1
  85. package/dist/sdk/catalog.js +2 -2
  86. package/dist/sdk/catalog.js.map +1 -1
  87. package/dist/sdk/memory.js +3 -5
  88. package/dist/sdk/memory.js.map +1 -1
  89. package/dist/sdk/tool.d.ts +2 -0
  90. package/dist/sdk/tool.js +6 -0
  91. package/dist/sdk/tool.js.map +1 -1
  92. package/dist/sdk/untrusted-content.d.ts +3 -0
  93. package/dist/sdk/untrusted-content.js +24 -0
  94. package/dist/sdk/untrusted-content.js.map +1 -0
  95. package/dist/skills/index.d.ts +1 -1
  96. package/dist/skills/index.js.map +1 -1
  97. package/dist/skills/registry.d.ts +1 -0
  98. package/dist/skills/registry.js +9 -1
  99. package/dist/skills/registry.js.map +1 -1
  100. package/dist/skills/tools.d.ts +2 -1
  101. package/dist/skills/tools.js +24 -15
  102. package/dist/skills/tools.js.map +1 -1
  103. package/dist/skills/types.d.ts +9 -0
  104. package/dist/types/index.d.ts +1 -1
  105. package/dist/types/runtime/message-list.d.ts +1 -0
  106. package/dist/types/sdk/agent-builder.d.ts +2 -0
  107. package/dist/types/sdk/agent.d.ts +1 -0
  108. package/dist/types/sdk/memory.d.ts +58 -36
  109. package/dist/types/sdk/tool-descriptor.d.ts +1 -0
  110. package/dist/types/sdk/tool.d.ts +5 -0
  111. package/dist/types/utils/json.d.ts +1 -5
  112. package/dist/utils/model.d.ts +1 -0
  113. package/dist/utils/model.js +17 -0
  114. package/dist/utils/model.js.map +1 -1
  115. package/dist/utils/zod.d.ts +1 -4
  116. package/dist/utils/zod.js +4 -27
  117. package/dist/utils/zod.js.map +1 -1
  118. package/dist/workspace/lifecycle.js +2 -2
  119. package/dist/workspace/lifecycle.js.map +1 -1
  120. package/dist/workspace/sandbox/create-workspace.js +1 -0
  121. package/dist/workspace/sandbox/create-workspace.js.map +1 -1
  122. package/dist/workspace/sandbox/n8n-sandbox-sandbox.d.ts +1 -0
  123. package/dist/workspace/sandbox/n8n-sandbox-sandbox.js +4 -3
  124. package/dist/workspace/sandbox/n8n-sandbox-sandbox.js.map +1 -1
  125. package/dist/workspace/sandbox/types.d.ts +5 -4
  126. package/dist/workspace/tools/read-tool-result.js +7 -8
  127. package/dist/workspace/tools/read-tool-result.js.map +1 -1
  128. package/package.json +6 -6
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RECALL_MEMORY_TOOL_NAME = void 0;
4
4
  exports.isEpisodicMemoryEnabled = isEpisodicMemoryEnabled;
5
5
  exports.hasEpisodicMemoryStore = hasEpisodicMemoryStore;
6
+ exports.hasEpisodicMemoryCaptureStore = hasEpisodicMemoryCaptureStore;
6
7
  exports.withEpisodicMemoryDefaults = withEpisodicMemoryDefaults;
7
- exports.runEpisodicMemoryIndexer = runEpisodicMemoryIndexer;
8
+ exports.withEmbeddingErrorContext = withEmbeddingErrorContext;
8
9
  exports.createRecallMemoryTool = createRecallMemoryTool;
9
10
  exports.rankEpisodicMemoryEntries = rankEpisodicMemoryEntries;
10
11
  exports.hashEpisodicMemoryContent = hashEpisodicMemoryContent;
@@ -13,16 +14,20 @@ exports.getEpisodicMemoryScope = getEpisodicMemoryScope;
13
14
  const crypto_1 = require("crypto");
14
15
  const zod_1 = require("zod");
15
16
  const episodic_memory_defaults_1 = require("./episodic-memory-defaults");
16
- const memory_lifecycle_1 = require("./memory-lifecycle");
17
- const observation_log_renderer_1 = require("./observation-log-renderer");
18
- const guardrails_1 = require("../../sdk/guardrails");
17
+ const observation_log_store_1 = require("./observation-log-store");
18
+ const abort_1 = require("../../sdk/abort");
19
19
  const tool_1 = require("../../sdk/tool");
20
20
  const execution_counter_1 = require("../loop/execution-counter");
21
21
  const runtime_telemetry_1 = require("../telemetry/runtime-telemetry");
22
22
  exports.RECALL_MEMORY_TOOL_NAME = 'recall_memory';
23
23
  const RRF_K = 60;
24
- const RECENCY_RRF_WEIGHT = 1;
25
- const MIN_VECTOR_RELEVANCE_SCORE = 0.2;
24
+ const RECENCY_RRF_WEIGHT = 0.25;
25
+ const CAPTURE_STORE_METHODS = [
26
+ 'enqueueCaptureCandidate',
27
+ 'getPendingCaptureCandidates',
28
+ 'completeCaptureCandidates',
29
+ 'recordCaptureCandidateFailure',
30
+ ];
26
31
  const RecallMemoryInputSchema = zod_1.z.object({
27
32
  query: zod_1.z.string().min(1),
28
33
  });
@@ -46,9 +51,12 @@ function hasEpisodicMemoryStore(memory) {
46
51
  typeof episodic.saveEntryWithSources === 'function' &&
47
52
  typeof episodic.searchEntries === 'function' &&
48
53
  typeof episodic.getEntrySources === 'function' &&
49
- typeof episodic.applyReflection === 'function' &&
50
- typeof episodic.getCursor === 'function' &&
51
- typeof episodic.setCursor === 'function');
54
+ typeof episodic.applyReflection === 'function');
55
+ }
56
+ function hasEpisodicMemoryCaptureStore(memory) {
57
+ if (!hasEpisodicMemoryStore(memory))
58
+ return false;
59
+ return CAPTURE_STORE_METHODS.every((method) => (0, observation_log_store_1.hasFunctionProperty)(memory.episodic, method));
52
60
  }
53
61
  function withEpisodicMemoryDefaults(config) {
54
62
  if (!config.embedder) {
@@ -59,68 +67,23 @@ function withEpisodicMemoryDefaults(config) {
59
67
  maxEntriesPerRun: config.maxEntriesPerRun ?? episodic_memory_defaults_1.DEFAULT_EPISODIC_MEMORY_MAX_ENTRIES_PER_RUN,
60
68
  embedder: config.embedder,
61
69
  embeddingModel: config.embeddingModel ?? 'custom',
62
- extract: config.extract,
63
70
  reflect: config.reflect,
64
71
  recallToolInstruction: config.prompts?.recallToolInstruction ?? episodic_memory_defaults_1.DEFAULT_EPISODIC_MEMORY_RECALL_TOOL_INSTRUCTION,
65
72
  };
66
73
  }
67
- async function runEpisodicMemoryIndexer(opts) {
68
- if (!isEpisodicMemoryEnabled(opts.config))
69
- return { status: 'skipped', reason: 'disabled' };
70
- const normalized = withEpisodicMemoryDefaults(opts.config);
71
- if (!normalized.extract)
72
- return { status: 'skipped', reason: 'no-extract' };
73
- const observations = await getNewActiveObservations(opts.memory, opts.observationScope);
74
- if (observations.length === 0)
75
- return { status: 'skipped', reason: 'no-observations' };
76
- const renderedObservations = (0, observation_log_renderer_1.renderObservationLog)(observations) ?? '';
77
- const existingEntries = await opts.memory.episodic.searchEntries(opts.scope, observations.map((entry) => entry.text).join('\n'), { topK: Math.max(normalized.topK, 20) });
78
- const extraction = await normalized.extract({
79
- scope: opts.scope,
80
- observationScope: opts.observationScope,
81
- now: opts.now ?? new Date(),
82
- observations,
83
- renderedObservations,
84
- existingEntries,
85
- executionCounter: opts.executionCounter,
86
- });
87
- const candidates = validateCandidates(extraction.entries, observations).slice(0, normalized.maxEntriesPerRun);
88
- const savedEntries = [];
89
- if (candidates.length > 0) {
90
- await (0, runtime_telemetry_1.withMemorySpan)('save_memory', opts.agentName ?? 'agent', opts.telemetry, () => ({
91
- types: ['agent'],
92
- owners: [opts.scope.resourceId],
93
- ...(0, runtime_telemetry_1.inferMemoryStoreAttributes)(opts.memory),
94
- }), async () => {
95
- const { embedMany } = await import('ai');
96
- const { embeddings, usage } = await embedMany({
97
- model: normalized.embedder,
98
- values: candidates.map((entry) => entry.content),
99
- });
100
- (0, execution_counter_1.incrementTokenCountFromUsage)(opts.executionCounter, usage);
101
- for (const [index, candidate] of candidates.entries()) {
102
- const saved = await saveCandidate(opts, normalized, candidate, embeddings[index]);
103
- if (saved)
104
- savedEntries.push(saved);
105
- }
106
- return {
107
- result: undefined,
108
- attributes: {
109
- ids: savedEntries.map((entry) => entry.id),
110
- operations: savedEntries.map(() => 'created'),
111
- },
112
- };
113
- });
74
+ async function withEmbeddingErrorContext(run) {
75
+ try {
76
+ return await run();
114
77
  }
115
- if (savedEntries.length > 0 && normalized.reflect) {
116
- await runEpisodicMemoryReflection(opts, normalized, savedEntries, observations);
78
+ catch (error) {
79
+ if ((0, abort_1.isAbortError)(error))
80
+ throw error;
81
+ const status = error instanceof Error && 'statusCode' in error && typeof error.statusCode === 'number'
82
+ ? ` (HTTP ${error.statusCode})`
83
+ : '';
84
+ const message = error instanceof Error ? error.message : String(error);
85
+ throw new Error(`Episodic memory embedding request failed${status}: ${message}. Check the episodic memory embedding credential and model.`, { cause: error });
117
86
  }
118
- await advanceEpisodicCursor(opts.memory, opts.observationScope, observations);
119
- return {
120
- status: 'ran',
121
- entriesWritten: savedEntries.length,
122
- observationsIndexed: observations.length,
123
- };
124
87
  }
125
88
  function createRecallMemoryTool(opts) {
126
89
  const normalized = withEpisodicMemoryDefaults(opts.config);
@@ -131,11 +94,11 @@ function createRecallMemoryTool(opts) {
131
94
  .output(RecallMemoryOutputSchema)
132
95
  .handler(async ({ query }, ctx) => {
133
96
  const { embed } = await import('ai');
134
- const { embedding: queryEmbedding, usage } = await embed({
97
+ const { embedding: queryEmbedding, usage } = await withEmbeddingErrorContext(async () => await embed({
135
98
  model: normalized.embedder,
136
99
  value: query,
137
100
  abortSignal: ctx.abortSignal,
138
- });
101
+ }));
139
102
  (0, execution_counter_1.incrementTokenCountFromUsage)(opts.executionCounter, usage);
140
103
  return await (0, runtime_telemetry_1.withMemorySpan)('query_memory', opts.agentName ?? 'agent', ctx.parentTelemetry, () => ({
141
104
  types: ['agent'],
@@ -179,7 +142,7 @@ function rankEpisodicMemoryEntries(entries, query, opts = {}) {
179
142
  ? cosineSimilarity(opts.queryEmbedding, entry.embedding)
180
143
  : 0,
181
144
  }))
182
- .filter((item) => item.score >= MIN_VECTOR_RELEVANCE_SCORE)
145
+ .filter((item) => item.score > 0)
183
146
  .sort(compareScoredEntries);
184
147
  const relevantIds = new Set([
185
148
  ...lexical.map((item) => item.entry.id),
@@ -234,178 +197,11 @@ function hashEpisodicMemoryEvidence(evidenceText) {
234
197
  function requireEpisodicMemoryScope(persistence) {
235
198
  if (!persistence?.resourceId)
236
199
  return null;
237
- return { resourceId: persistence.resourceId };
200
+ return { resourceId: persistence.resourceId, threadId: persistence.threadId };
238
201
  }
239
202
  function getEpisodicMemoryScope(persistence) {
240
203
  return requireEpisodicMemoryScope(persistence);
241
204
  }
242
- async function getNewActiveObservations(memory, scope) {
243
- if (!('getActiveObservationLog' in memory) ||
244
- typeof memory.getActiveObservationLog !== 'function') {
245
- return [];
246
- }
247
- const observationMemory = memory;
248
- const [cursor, active] = await Promise.all([
249
- memory.episodic.getCursor(scope),
250
- observationMemory.getActiveObservationLog({ ...scope, order: 'asc' }),
251
- ]);
252
- if (!cursor)
253
- return active;
254
- return active.filter((entry) => compareKeyset({ createdAt: entry.createdAt, id: entry.id }, {
255
- createdAt: cursor.lastIndexedObservationCreatedAt,
256
- id: cursor.lastIndexedObservationId,
257
- }) > 0);
258
- }
259
- async function saveCandidate(opts, config, candidate, embedding) {
260
- const now = opts.now ?? new Date();
261
- return await opts.memory.episodic.saveEntryWithSources({
262
- ...opts.scope,
263
- content: candidate.content,
264
- contentHash: hashEpisodicMemoryContent(candidate.content),
265
- embedding,
266
- embeddingModel: config.embeddingModel,
267
- createdAt: now,
268
- lastSeenAt: now,
269
- }, candidate.sources.map((source) => ({
270
- observationId: source.observationId,
271
- threadId: opts.threadId,
272
- evidenceText: (0, guardrails_1.redactText)(source.evidence).text,
273
- createdAt: now,
274
- })));
275
- }
276
- async function runEpisodicMemoryReflection(opts, config, savedEntries, observations) {
277
- if (!config.reflect)
278
- return;
279
- const cluster = await buildReflectionCluster(opts, config, savedEntries, observations);
280
- if (cluster.length === 0)
281
- return;
282
- const sources = await opts.memory.episodic.getEntrySources(cluster.map((entry) => entry.id));
283
- const reflection = normalizeEpisodicMemoryReflection(cluster, await config.reflect({
284
- scope: opts.scope,
285
- now: opts.now ?? new Date(),
286
- seedEntryIds: savedEntries.map((entry) => entry.id),
287
- entries: cluster,
288
- sources,
289
- executionCounter: opts.executionCounter,
290
- }));
291
- if (reflection.drop.length === 0 && reflection.merge.length === 0)
292
- return;
293
- const mergeContents = reflection.merge.map((entry) => entry.content);
294
- let mergeEmbeddings = [];
295
- if (mergeContents.length > 0) {
296
- const { embedMany } = await import('ai');
297
- const { embeddings, usage } = await embedMany({
298
- model: config.embedder,
299
- values: mergeContents,
300
- });
301
- mergeEmbeddings = embeddings;
302
- (0, execution_counter_1.incrementTokenCountFromUsage)(opts.executionCounter, usage);
303
- }
304
- await opts.memory.episodic.applyReflection(opts.scope, {
305
- drop: reflection.drop,
306
- merge: reflection.merge.map((merge, index) => ({
307
- supersedes: merge.supersedes,
308
- entry: {
309
- ...opts.scope,
310
- content: merge.content,
311
- contentHash: hashEpisodicMemoryContent(merge.content),
312
- embedding: mergeEmbeddings[index],
313
- embeddingModel: config.embeddingModel,
314
- createdAt: opts.now ?? new Date(),
315
- lastSeenAt: opts.now ?? new Date(),
316
- },
317
- })),
318
- });
319
- }
320
- async function buildReflectionCluster(opts, config, savedEntries, observations) {
321
- const query = [
322
- ...savedEntries.map((entry) => entry.content),
323
- ...observations.map((entry) => entry.text),
324
- ].join('\n');
325
- const related = await opts.memory.episodic.searchEntries(opts.scope, query, {
326
- topK: Math.max(config.topK, 20),
327
- });
328
- const relatedById = new Map(related.map((entry) => [entry.id, entry]));
329
- for (const saved of savedEntries) {
330
- if (saved.status !== 'active' || relatedById.has(saved.id))
331
- continue;
332
- relatedById.set(saved.id, toRetrievedEntry(saved));
333
- }
334
- return [...relatedById.values()];
335
- }
336
- function normalizeEpisodicMemoryReflection(activeEntries, reflection) {
337
- const activeIds = new Set(activeEntries.filter((entry) => entry.status === 'active').map((entry) => entry.id));
338
- return (0, memory_lifecycle_1.normalizeFlatReflectionActions)({
339
- activeIds,
340
- drop: reflection.drop,
341
- merge: reflection.merge,
342
- normalizeMerge: (entry, supersedes) => {
343
- const content = normalizeEntryContent(entry.content);
344
- return content ? { supersedes, content } : null;
345
- },
346
- });
347
- }
348
- async function advanceEpisodicCursor(memory, scope, observations) {
349
- const last = observations.at(-1);
350
- if (!last)
351
- return;
352
- await memory.episodic.setCursor({
353
- ...scope,
354
- lastIndexedObservationId: last.id,
355
- lastIndexedObservationCreatedAt: last.createdAt,
356
- });
357
- }
358
- function validateCandidates(candidates, observations) {
359
- const observationsById = new Map(observations.map((entry) => [entry.id, entry]));
360
- const valid = [];
361
- for (const candidate of candidates) {
362
- const sourceKeys = new Set();
363
- const sources = candidate.sources.flatMap((source) => {
364
- const evidence = source.evidence.trim();
365
- if (!evidence)
366
- return [];
367
- const observation = observationsById.get(source.observationId);
368
- if (!observation?.text.includes(evidence))
369
- return [];
370
- const key = `${source.observationId}\n${evidence}`;
371
- if (sourceKeys.has(key))
372
- return [];
373
- sourceKeys.add(key);
374
- return [{ observationId: source.observationId, evidence }];
375
- });
376
- if (sources.length === 0)
377
- continue;
378
- const content = normalizeEntryContent(candidate.content);
379
- if (!content)
380
- continue;
381
- const evidenceText = sources.map((source) => source.evidence).join('\n');
382
- const sourceText = sources
383
- .map((source) => observationsById.get(source.observationId)?.text ?? '')
384
- .join('\n');
385
- if (isFailedRecallCandidate(content, evidenceText, sourceText))
386
- continue;
387
- valid.push({
388
- content,
389
- sources,
390
- });
391
- }
392
- return valid;
393
- }
394
- function isFailedRecallCandidate(content, evidence, sourceText) {
395
- const text = `${content}\n${evidence}\n${sourceText}`.toLowerCase();
396
- if (!/\b(memory|recall|prior notes|saved decisions)\b/.test(text))
397
- return false;
398
- return [
399
- /no (?:entries|memory entries|prior notes|saved decisions|matching memory entries) (?:were )?found/,
400
- /queried memory[^.]*no entries/,
401
- /memory lookup[^.]*no saved/,
402
- /could not (?:reliably )?(?:recover|confirm|recall)/,
403
- /re-establish(?:ing)? .* baseline/,
404
- ].some((pattern) => pattern.test(text));
405
- }
406
- function normalizeEntryContent(content) {
407
- return (0, guardrails_1.redactText)(content.replace(/\s+/g, ' ').trim()).text;
408
- }
409
205
  function normalizeHashContent(content) {
410
206
  return content.replace(/\s+/g, ' ').trim().toLowerCase();
411
207
  }
@@ -445,12 +241,6 @@ function compareScoredEntries(a, b) {
445
241
  return (b.score - a.score ||
446
242
  getEntryRecencyDate(b.entry).getTime() - getEntryRecencyDate(a.entry).getTime());
447
243
  }
448
- function compareKeyset(a, b) {
449
- const t = a.createdAt.getTime() - b.createdAt.getTime();
450
- if (t !== 0)
451
- return t;
452
- return a.id.localeCompare(b.id);
453
- }
454
244
  function toRecallToolEntry(entry) {
455
245
  return {
456
246
  id: entry.id,
@@ -462,13 +252,4 @@ function toRecallToolEntry(entry) {
462
252
  finalScore: entry.finalScore,
463
253
  };
464
254
  }
465
- function toRetrievedEntry(entry) {
466
- return {
467
- ...entry,
468
- lexicalScore: 0,
469
- vectorScore: 0,
470
- rrfScore: 0,
471
- finalScore: 0,
472
- };
473
- }
474
255
  //# sourceMappingURL=episodic-memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"episodic-memory.js","sourceRoot":"","sources":["../../../src/runtime/memory/episodic-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"episodic-memory.js","sourceRoot":"","sources":["../../../src/runtime/memory/episodic-memory.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare class MemoryOrchestrator {
14
14
  private readonly runtimeTelemetry;
15
15
  private readonly tokenCounter;
16
16
  private memoryTasks;
17
- private episodicMemoryTasksByResource;
17
+ private episodicMemoryTasks;
18
18
  private visibleTokenEstimates;
19
19
  private visibleTokenEstimateTotal;
20
20
  private midRunObserverTask;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MemoryOrchestrator = void 0;
4
- const episodic_memory_1 = require("./episodic-memory");
4
+ const episodic_memory_capture_1 = require("./episodic-memory-capture");
5
5
  const logger_1 = require("../logger");
6
6
  const memory_store_1 = require("./memory-store");
7
7
  const observation_log_observer_1 = require("./observation-log-observer");
@@ -44,6 +44,14 @@ function serializeMessageForBudget(message) {
44
44
  }
45
45
  return parts.join('\n');
46
46
  }
47
+ function hasSuccessfulMemoryFlag(list) {
48
+ return list
49
+ .turnDelta()
50
+ .some((message) => 'content' in message &&
51
+ message.content.some((part) => part.type === 'tool-call' &&
52
+ part.toolName === episodic_memory_capture_1.FLAG_MEMORY_TOOL_NAME &&
53
+ part.state === 'resolved'));
54
+ }
47
55
  function hasFunctionProperty(value, property) {
48
56
  return property in value && typeof Reflect.get(value, property) === 'function';
49
57
  }
@@ -63,7 +71,7 @@ class MemoryOrchestrator {
63
71
  this.eventBus = eventBus;
64
72
  this.runtimeTelemetry = runtimeTelemetry;
65
73
  this.tokenCounter = tokenCounter;
66
- this.episodicMemoryTasksByResource = new Map();
74
+ this.episodicMemoryTasks = new Map();
67
75
  this.visibleTokenEstimates = new Map();
68
76
  this.visibleTokenEstimateTotal = 0;
69
77
  this.midRunNonAdvancingAttempts = 0;
@@ -109,6 +117,7 @@ class MemoryOrchestrator {
109
117
  this.resetRunState();
110
118
  if (this.config.memory && options?.persistence?.threadId) {
111
119
  const telemetry = this.runtimeTelemetry.resolve(options);
120
+ this.scheduleEpisodicMemoryJob(options.persistence, options.executionCounter, telemetry);
112
121
  const memMessages = await this.loadHistoryMessages(options.persistence, telemetry);
113
122
  if (memMessages.length > 0) {
114
123
  list.addHistory((0, strip_orphaned_tool_messages_1.settleOrphanedToolMessages)(memMessages));
@@ -214,8 +223,10 @@ class MemoryOrchestrator {
214
223
  return;
215
224
  const telemetry = this.runtimeTelemetry.resolve(options);
216
225
  await this.saveMessagesWithSpan(memory, options.persistence.threadId, options.persistence.resourceId, delta, telemetry);
217
- const observationTasks = await this.scheduleObservationLogJobs(list, options.persistence, options.executionCounter, telemetry);
218
- this.scheduleEpisodicMemoryJob(options.persistence, observationTasks, options.executionCounter, telemetry);
226
+ await this.scheduleObservationLogJobs(list, options.persistence, options.executionCounter, telemetry);
227
+ if (hasSuccessfulMemoryFlag(list)) {
228
+ this.scheduleEpisodicMemoryJob(options.persistence, options.executionCounter, telemetry);
229
+ }
219
230
  }
220
231
  async maybeObserveMidRun(list, options) {
221
232
  try {
@@ -251,6 +262,8 @@ class MemoryOrchestrator {
251
262
  const { memory, observationalMemory } = this.config;
252
263
  if (!memory || !options?.persistence || !hasObservationLogObserverMemory(memory))
253
264
  return;
265
+ if (observationalMemory?.midRunObservation === false)
266
+ return;
254
267
  const observerThresholdTokens = observationalMemory?.observerThresholdTokens;
255
268
  if (!observationalMemory?.observe || observerThresholdTokens === undefined)
256
269
  return;
@@ -375,31 +388,27 @@ class MemoryOrchestrator {
375
388
  async scheduleObservationLogJobs(list, persistence, executionCounter, telemetry) {
376
389
  const { memory, observationalMemory } = this.config;
377
390
  if (!memory || !observationalMemory || !(0, observation_log_store_1.hasObservationLogStore)(memory))
378
- return [];
391
+ return;
379
392
  const scope = this.getObservationLogScope(persistence);
380
393
  const runner = this.getMemoryTaskRunner(memory, observationalMemory.lockTtlMs);
381
- const tasks = [];
382
394
  const midRunTask = this.midRunObserverTask;
383
395
  if (midRunTask?.result)
384
396
  this.midRunObserverTask = undefined;
385
397
  if (midRunTask &&
386
398
  !midRunTask.result &&
387
399
  midRunTask.handle.observationScopeId === scope.observationScopeId) {
388
- tasks.push(midRunTask.handle.done);
389
400
  void midRunTask.handle.done.then(() => {
390
401
  if (this.midRunObserverTask === midRunTask)
391
402
  this.midRunObserverTask = undefined;
392
403
  });
393
404
  }
394
405
  else if (await this.shouldScheduleObserver(list, persistence.threadId)) {
395
- const observerHandle = this.scheduleObserverTask(persistence, executionCounter, telemetry);
396
- if (observerHandle)
397
- tasks.push(observerHandle.done);
406
+ this.scheduleObserverTask(persistence, executionCounter, telemetry);
398
407
  }
399
408
  const reflect = observationalMemory.reflect;
400
409
  const reflectorThresholdTokens = observationalMemory.reflectorThresholdTokens;
401
410
  if (reflect && reflectorThresholdTokens !== undefined) {
402
- tasks.push(this.scheduleMemoryTask(runner, scope, 'reflector', async () => await (0, observation_log_reflector_1.runObservationLogReflector)({
411
+ void this.scheduleMemoryTask(runner, scope, 'reflector', async () => await (0, observation_log_reflector_1.runObservationLogReflector)({
403
412
  memory,
404
413
  ...scope,
405
414
  reflectorThresholdTokens,
@@ -407,9 +416,8 @@ class MemoryOrchestrator {
407
416
  tokenCounter: this.tokenCounter,
408
417
  executionCounter,
409
418
  telemetry,
410
- })));
419
+ }));
411
420
  }
412
- return tasks;
413
421
  }
414
422
  async shouldScheduleObserver(list, threadId) {
415
423
  const observerThresholdTokens = this.config.observationalMemory?.observerThresholdTokens;
@@ -426,54 +434,49 @@ class MemoryOrchestrator {
426
434
  return false;
427
435
  }
428
436
  }
429
- scheduleEpisodicMemoryJob(persistence, observationTasks, executionCounter, telemetry) {
430
- const { memory, episodicMemory } = this.config;
431
- if (!memory ||
432
- !episodicMemory ||
433
- !(0, episodic_memory_1.isEpisodicMemoryEnabled)(episodicMemory) ||
434
- !(0, episodic_memory_1.hasEpisodicMemoryStore)(memory) ||
435
- !(0, observation_log_store_1.hasObservationLogStore)(memory) ||
436
- !episodicMemory.extract) {
437
- return;
438
- }
439
- const scope = (0, episodic_memory_1.getEpisodicMemoryScope)(persistence);
440
- if (!scope)
437
+ scheduleEpisodicMemoryJob(persistence, executionCounter, telemetry) {
438
+ const capture = (0, episodic_memory_capture_1.resolveEpisodicMemoryCapture)(this.config, persistence);
439
+ if (!capture)
441
440
  return;
442
- const observationScope = this.getObservationLogScope(persistence);
443
- this.scheduleEpisodicMemoryTask(memory, scope.resourceId, async () => {
444
- await Promise.allSettled(observationTasks);
445
- await (0, episodic_memory_1.runEpisodicMemoryIndexer)({
446
- memory,
447
- config: episodicMemory,
448
- scope,
449
- observationScope,
450
- threadId: persistence.threadId,
451
- executionCounter,
452
- telemetry,
453
- agentName: this.config.name,
454
- });
441
+ this.scheduleEpisodicMemoryTask(capture.memory, capture.scope, async () => {
442
+ let result;
443
+ do {
444
+ result = await (0, episodic_memory_capture_1.runEpisodicMemoryCandidateProcessor)({
445
+ ...capture,
446
+ executionCounter,
447
+ telemetry,
448
+ agentName: this.config.name,
449
+ });
450
+ } while (result.status === 'ran');
455
451
  });
456
452
  }
457
- scheduleEpisodicMemoryTask(memory, resourceId, task) {
453
+ scheduleEpisodicMemoryTask(memory, scope, task) {
458
454
  const id = crypto.randomUUID();
459
- const previous = this.episodicMemoryTasksByResource.get(resourceId) ?? Promise.resolve();
460
- const done = previous
461
- .catch(() => undefined)
462
- .then(async () => await this.runEpisodicMemoryTask(memory, resourceId, id, task));
455
+ const keys = [`resource:${scope.resourceId}`, `thread:${scope.threadId}`];
456
+ const previous = [];
457
+ for (const key of keys) {
458
+ const running = this.episodicMemoryTasks.get(key);
459
+ if (running)
460
+ previous.push(running);
461
+ }
462
+ const done = Promise.allSettled(previous).then(async () => await this.runEpisodicMemoryTask(memory, scope, id, task));
463
463
  const queued = done.finally(() => {
464
- if (this.episodicMemoryTasksByResource.get(resourceId) === queued) {
465
- this.episodicMemoryTasksByResource.delete(resourceId);
464
+ for (const key of keys) {
465
+ if (this.episodicMemoryTasks.get(key) === queued) {
466
+ this.episodicMemoryTasks.delete(key);
467
+ }
466
468
  }
467
469
  });
468
- this.episodicMemoryTasksByResource.set(resourceId, queued);
470
+ for (const key of keys)
471
+ this.episodicMemoryTasks.set(key, queued);
469
472
  this.backgroundTasks.track(queued);
470
473
  }
471
- async runEpisodicMemoryTask(memory, resourceId, holderId, task) {
474
+ async runEpisodicMemoryTask(memory, scope, holderId, task) {
472
475
  const taskLock = memory.episodic?.taskLock;
473
476
  let lock = null;
474
477
  try {
475
478
  if (taskLock) {
476
- lock = await taskLock.acquire(resourceId, {
479
+ lock = await taskLock.acquire(scope, {
477
480
  holderId,
478
481
  ttlMs: this.config.observationalMemory?.lockTtlMs ?? DEFAULT_MEMORY_TASK_LOCK_TTL_MS,
479
482
  });
@@ -483,22 +486,22 @@ class MemoryOrchestrator {
483
486
  await task();
484
487
  }
485
488
  catch (error) {
486
- const message = 'Episodic memory indexing task failed';
487
- logger.warn(message, { error, resourceId });
489
+ const message = 'Episodic memory processing task failed';
490
+ logger.warn(message, { error, ...scope });
488
491
  this.eventBus.emit({ type: "error", message, error, source: 'episodic-memory' });
489
492
  }
490
493
  finally {
491
494
  if (lock) {
492
- await this.releaseEpisodicMemoryTaskLock(taskLock, lock, resourceId);
495
+ await this.releaseEpisodicMemoryTaskLock(taskLock, lock, scope);
493
496
  }
494
497
  }
495
498
  }
496
- async releaseEpisodicMemoryTaskLock(taskLock, lock, resourceId) {
499
+ async releaseEpisodicMemoryTaskLock(taskLock, lock, scope) {
497
500
  try {
498
501
  await taskLock?.release(lock);
499
502
  }
500
503
  catch (error) {
501
- logger.warn('Episodic memory indexing lock release failed', { error, resourceId });
504
+ logger.warn('Episodic memory processing lock release failed', { error, ...scope });
502
505
  }
503
506
  }
504
507
  async scheduleMemoryTask(runner, scope, taskKind, task) {