@mastra/memory 1.36.0-alpha.2 → 1.36.0-alpha.3

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.
@@ -3,7 +3,7 @@ name: mastra-memory
3
3
  description: Documentation for @mastra/memory. Use when working with @mastra/memory APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/memory"
6
- version: "1.36.0-alpha.2"
6
+ version: "1.36.0-alpha.3"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.36.0-alpha.2",
2
+ "version": "1.36.0-alpha.3",
3
3
  "package": "@mastra/memory",
4
4
  "exports": {},
5
5
  "modules": {
@@ -210,8 +210,6 @@ Observations are added in stable chunks, which helps providers reuse the existin
210
210
 
211
211
  ## Signals
212
212
 
213
- > **Beta:** Signals may change without a major version bump until the API is stable.
214
-
215
213
  [Signals](https://mastra.ai/docs/harness/signals) add messages or system-generated context to a memory-backed thread. Delivery depends on the thread's state: a signal can wake an idle agent or enter an active loop. It can also wait for the next turn or persist without waking the agent.
216
214
 
217
215
  State signals require memory and an existing thread. Notification inbox signals require a storage adapter with notification support.
@@ -4,9 +4,7 @@
4
4
 
5
5
  # Goals
6
6
 
7
- **Added in:** `@mastra/core@1.42.0`
8
-
9
- > **Beta:** Breaking changes may occur without a major version bump until the API is stable.
7
+ **Added in:** `@mastra/core@1.43.0`
10
8
 
11
9
  A goal is a durable, thread-scoped objective: a standing instruction the agent keeps working toward across loop iterations until a judge model decides it's satisfied or a run budget is exhausted.
12
10
 
@@ -418,6 +418,8 @@ new Agent({
418
418
 
419
419
  You can also pass an allowlist of mimeType globs (for example `['image/*']`) to forward only the kinds the Observer can handle. Alternatively, set `observeAttachments: 'auto'` so Mastra consults the provider capabilities registry. It forwards attachments when the Observer model supports multimodal input and drops them otherwise. If capability data is unavailable for the model, the setting falls back to `true`.
420
420
 
421
+ Attachments that the agent recorded as unavailable, because they could no longer be downloaded, are never sent to the Observer. The Observer still sees their `[Image #1: ...]` or `[File #1: ...]` line. See [attachment download failures](https://mastra.ai/docs/agents/processors) for how Mastra records them.
422
+
421
423
  ```md
422
424
  Date: 2026-01-15
423
425
 
@@ -4,8 +4,6 @@
4
4
 
5
5
  # Memory
6
6
 
7
- > **Beta:** Breaking changes may occur without a major version bump until the API is stable.
8
-
9
7
  A file-based agent gets [memory](https://mastra.ai/docs/memory/overview) from a `memory.ts` file that default-exports a [`Memory`](https://mastra.ai/reference/memory/memory-class) instance. Use this page for the file-based convention; use the memory docs for message history, semantic recall, storage, and processors.
10
8
 
11
9
  Without `memory.ts` or `config.memory`, the agent has no memory by default. Each `generate()` or `stream()` call starts without remembered conversation state unless you pass the prior context yourself.
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-OOB19zXe.cjs");
2
+ const require_src = require("./src-BBl5Qedz.cjs");
3
3
  let _mastra_core_processors = require("@mastra/core/processors");
4
4
  exports.Extractor = require_src.Extractor;
5
5
  exports.KnowledgeSemanticIndexCoordinator = require_src.KnowledgeSemanticIndexCoordinator;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { C as SUMMARIZE_THREAD_DEFAULTS, G as StaleKnowledgeSemanticIndexError, Q as Extractor, S as deepMergeWorkingMemory, U as Subconscious, W as KnowledgeSemanticIndexCoordinator, a as extractWorkingMemoryContent, c as getObservationsAsOf, d as WORKING_MEMORY_STATE_ID, f as WORKING_MEMORY_STATE_PROCESSOR_ID, i as WorkingMemory, n as MessageHistory, o as extractWorkingMemoryTags, p as WorkingMemoryStateProcessor, q as ModelByInputTokens, r as SemanticRecall, s as removeWorkingMemoryTags, t as Memory, w as summarizeConversation, x as WorkingMemoryExtractor } from "./src-BxI-PDpC.js";
1
+ import { C as SUMMARIZE_THREAD_DEFAULTS, G as StaleKnowledgeSemanticIndexError, Q as Extractor, S as deepMergeWorkingMemory, U as Subconscious, W as KnowledgeSemanticIndexCoordinator, a as extractWorkingMemoryContent, c as getObservationsAsOf, d as WORKING_MEMORY_STATE_ID, f as WORKING_MEMORY_STATE_PROCESSOR_ID, i as WorkingMemory, n as MessageHistory, o as extractWorkingMemoryTags, p as WorkingMemoryStateProcessor, q as ModelByInputTokens, r as SemanticRecall, s as removeWorkingMemoryTags, t as Memory, w as summarizeConversation, x as WorkingMemoryExtractor } from "./src-BQOm4kZc.js";
2
2
  export { Extractor, KnowledgeSemanticIndexCoordinator, Memory, MessageHistory, ModelByInputTokens, SUMMARIZE_THREAD_DEFAULTS, SemanticRecall, StaleKnowledgeSemanticIndexError, Subconscious, WORKING_MEMORY_STATE_ID, WORKING_MEMORY_STATE_PROCESSOR_ID, WorkingMemory, WorkingMemoryExtractor, WorkingMemoryStateProcessor, deepMergeWorkingMemory, extractWorkingMemoryContent, extractWorkingMemoryTags, getObservationsAsOf, removeWorkingMemoryTags, summarizeConversation };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("../src-OOB19zXe.cjs");
2
+ const require_src = require("../src-BBl5Qedz.cjs");
3
3
  exports.Extractor = require_src.Extractor;
4
4
  exports.KnowledgeSemanticIndexCoordinator = require_src.KnowledgeSemanticIndexCoordinator;
5
5
  exports.ModelByInputTokens = require_src.ModelByInputTokens;
@@ -1,2 +1,2 @@
1
- import { A as formatMessagesForObserver, B as OBSERVATION_CONTEXT_PROMPT_THREAD, D as buildObserverPrompt, E as OBSERVER_SYSTEM_PROMPT, F as parseAnchorId, G as StaleKnowledgeSemanticIndexError, H as getObservationContextPrompt, I as stripEphemeralAnchorIds, J as SUBCONSCIOUS_ACTIVITY_STATE_ID, K as SubconsciousRemindExtractor, L as OBSERVATIONAL_MEMORY_DEFAULTS, M as optimizeObservationsForContext, N as parseObserverOutput, O as buildObserverSystemPrompt, P as injectAnchorIds, Q as Extractor, R as OBSERVATION_CONTEXT_INSTRUCTIONS, T as TokenCounter, U as Subconscious, V as OBSERVATION_CONTINUATION_HINT, W as KnowledgeSemanticIndexCoordinator, X as publishSubconsciousActivity, Y as buildSubconsciousActivitySnapshot, Z as renderSubconsciousActivity, _ as reconcileObservationGroupsFromReflection, b as wrapInObservationGroup, c as getObservationsAsOf, g as parseObservationGroups, h as deriveObservationGroupProvenance, j as hasCurrentTaskSection, k as extractCurrentTask, l as ObservationalMemoryProcessor, m as combineObservationGroupRanges, q as ModelByInputTokens, u as ObservationalMemory, v as renderObservationGroupsForReflection, w as summarizeConversation, x as WorkingMemoryExtractor, y as stripObservationGroups, z as OBSERVATION_CONTEXT_PROMPT } from "../src-BxI-PDpC.js";
1
+ import { A as formatMessagesForObserver, B as OBSERVATION_CONTEXT_PROMPT_THREAD, D as buildObserverPrompt, E as OBSERVER_SYSTEM_PROMPT, F as parseAnchorId, G as StaleKnowledgeSemanticIndexError, H as getObservationContextPrompt, I as stripEphemeralAnchorIds, J as SUBCONSCIOUS_ACTIVITY_STATE_ID, K as SubconsciousRemindExtractor, L as OBSERVATIONAL_MEMORY_DEFAULTS, M as optimizeObservationsForContext, N as parseObserverOutput, O as buildObserverSystemPrompt, P as injectAnchorIds, Q as Extractor, R as OBSERVATION_CONTEXT_INSTRUCTIONS, T as TokenCounter, U as Subconscious, V as OBSERVATION_CONTINUATION_HINT, W as KnowledgeSemanticIndexCoordinator, X as publishSubconsciousActivity, Y as buildSubconsciousActivitySnapshot, Z as renderSubconsciousActivity, _ as reconcileObservationGroupsFromReflection, b as wrapInObservationGroup, c as getObservationsAsOf, g as parseObservationGroups, h as deriveObservationGroupProvenance, j as hasCurrentTaskSection, k as extractCurrentTask, l as ObservationalMemoryProcessor, m as combineObservationGroupRanges, q as ModelByInputTokens, u as ObservationalMemory, v as renderObservationGroupsForReflection, w as summarizeConversation, x as WorkingMemoryExtractor, y as stripObservationGroups, z as OBSERVATION_CONTEXT_PROMPT } from "../src-BQOm4kZc.js";
2
2
  export { Extractor, KnowledgeSemanticIndexCoordinator, ModelByInputTokens, OBSERVATIONAL_MEMORY_DEFAULTS, OBSERVATION_CONTEXT_INSTRUCTIONS, OBSERVATION_CONTEXT_PROMPT, OBSERVATION_CONTEXT_PROMPT_THREAD, OBSERVATION_CONTINUATION_HINT, OBSERVER_SYSTEM_PROMPT, ObservationalMemory, ObservationalMemoryProcessor, SUBCONSCIOUS_ACTIVITY_STATE_ID, StaleKnowledgeSemanticIndexError, Subconscious, SubconsciousRemindExtractor, TokenCounter, WorkingMemoryExtractor, buildObserverPrompt, buildObserverSystemPrompt, buildSubconsciousActivitySnapshot, combineObservationGroupRanges, deriveObservationGroupProvenance, extractCurrentTask, formatMessagesForObserver, getObservationContextPrompt, getObservationsAsOf, hasCurrentTaskSection, injectAnchorIds, optimizeObservationsForContext, parseAnchorId, parseObservationGroups, parseObserverOutput, publishSubconsciousActivity, reconcileObservationGroupsFromReflection, renderObservationGroupsForReflection, renderSubconsciousActivity, stripEphemeralAnchorIds, stripObservationGroups, summarizeConversation, wrapInObservationGroup };
@@ -1 +1 @@
1
- {"version":3,"file":"observer-agent.d.ts","sourceRoot":"","sources":["../../../src/processors/observational-memory/observer-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe7C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAE1D,KAAK,qBAAqB,GAAG;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,kHAAkH;IAClH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,2ucAuPoE,CAAC;AAElH;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAA8B,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CA4CxF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,6sDAgByD,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,GAAE,OAAe,EAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,GAAE,OAAe,EACnC,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,GACrC,MAAM,CA8IR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAA8B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IAErB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE5D,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sGAAsG;IACtG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA0qBD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAsB9G;AAeD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,WAAW,CAgBrH;AAUD;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAYR;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,WAAW,CAsCb;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,EACrB,qBAAqB,CAAC,EAAE,GAAG,CACzB,MAAM,EACN;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAChH,EACD,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,OAAO,EAC5B,UAAU,GAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAO,EAC1C,aAAa,CAAC,EAAE,qBAAqB,GACpC,WAAW,CAab;AAmFD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,yBAAyB;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAO,GACzC,yBAAyB,CA0E3B;AAED,UAAU,yBAAyB;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,yBAAyB,GAClC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,iBAAiB,EAAE,eAAe,EAAE,EACpC,OAAO,CAAC,EAAE,yBAAyB,EACnC,aAAa,CAAC,EAAE,qBAAqB,GACpC,WAAW,CAMb;AAmDD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,iBAAiB,EAAE,eAAe,EAAE,EACpC,OAAO,CAAC,EAAE;IACR,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,GACA,MAAM,CAGR;AAWD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAO,GAAG,cAAc,CA6B9G;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CA+C1E;AAmCD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAWrE;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuDhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,SAAM,GAAG,MAAM,CAoDjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAenE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAsB3E"}
1
+ {"version":3,"file":"observer-agent.d.ts","sourceRoot":"","sources":["../../../src/processors/observational-memory/observer-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe7C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAE1D,KAAK,qBAAqB,GAAG;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,kHAAkH;IAClH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,2ucAuPoE,CAAC;AAElH;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAA8B,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CA4CxF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,6sDAgByD,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,GAAE,OAAe,EAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,GAAE,OAAe,EACnC,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,GACrC,MAAM,CA8IR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAA8B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IAErB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE5D,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sGAAsG;IACtG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAksBD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAsB9G;AAeD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,WAAW,CAgBrH;AAUD;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAYR;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,WAAW,CAsCb;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,EACrB,qBAAqB,CAAC,EAAE,GAAG,CACzB,MAAM,EACN;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAChH,EACD,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,OAAO,EAC5B,UAAU,GAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAO,EAC1C,aAAa,CAAC,EAAE,qBAAqB,GACpC,WAAW,CAab;AAmFD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,yBAAyB;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAO,GACzC,yBAAyB,CA0E3B;AAED,UAAU,yBAAyB;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,yBAAyB,GAClC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,iBAAiB,EAAE,eAAe,EAAE,EACpC,OAAO,CAAC,EAAE,yBAAyB,EACnC,aAAa,CAAC,EAAE,qBAAqB,GACpC,WAAW,CAMb;AAmDD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,iBAAiB,EAAE,eAAe,EAAE,EACpC,OAAO,CAAC,EAAE;IACR,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,GACA,MAAM,CAGR;AAWD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,SAAS,CAAC,GAAG,CAAC,EAAO,GAAG,cAAc,CA6B9G;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CA+C1E;AAmCD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAWrE;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuDhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,SAAM,GAAG,MAAM,CAoDjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAenE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAsB3E"}
@@ -20825,6 +20825,25 @@ function getObserverMessageLabel(msg) {
20825
20825
  if (isSystemReminderMessage(msg)) return "system-reminder";
20826
20826
  return msg.role.charAt(0).toUpperCase() + msg.role.slice(1);
20827
20827
  }
20828
+ /**
20829
+ * Attachment URLs the agent already found undownloadable. Core records them on the user
20830
+ * message (`metadata.mastra.unavailableAttachments`) so they are not fetched again.
20831
+ */
20832
+ function getUnavailableAttachmentUrls(msg) {
20833
+ const mastra = msg.content?.metadata?.mastra;
20834
+ const urls = isRecord$2(mastra) ? mastra.unavailableAttachments : void 0;
20835
+ return new Set(Array.isArray(urls) ? urls.filter((url) => typeof url === "string") : []);
20836
+ }
20837
+ function getObserverAttachmentUrl(part) {
20838
+ const asset = part.type === "image" ? part.image : part.data ?? part.url;
20839
+ if (asset instanceof URL) return asset.toString();
20840
+ if (typeof asset !== "string") return void 0;
20841
+ try {
20842
+ return new URL(asset).toString();
20843
+ } catch {
20844
+ return;
20845
+ }
20846
+ }
20828
20847
  function formatObserverMessage(msg, counter, toolFormatting, options) {
20829
20848
  const maxLen = options?.maxPartLength;
20830
20849
  const maxToolResultTokens = options?.maxToolResultTokens ?? 5e3;
@@ -20833,6 +20852,7 @@ function formatObserverMessage(msg, counter, toolFormatting, options) {
20833
20852
  const role = getObserverMessageLabel(msg);
20834
20853
  const attachments = [];
20835
20854
  const messageCreatedAt = normalizeObserverCreatedAt(msg.createdAt);
20855
+ const unavailableUrls = getUnavailableAttachmentUrls(msg);
20836
20856
  let lines = [];
20837
20857
  const temporalGapText = isTemporalGapMarker(msg) ? getTemporalGapMarkerText(msg) : void 0;
20838
20858
  const pushLine = (title, body, createdAt) => {
@@ -20891,7 +20911,8 @@ function formatObserverMessage(msg, counter, toolFormatting, options) {
20891
20911
  }
20892
20912
  if (partType === "image" || partType === "file") {
20893
20913
  const attachment = part;
20894
- if (shouldIncludeObserverAttachment(attachment, attachmentFilter)) {
20914
+ const attachmentUrl = unavailableUrls.size > 0 ? getObserverAttachmentUrl(attachment) : void 0;
20915
+ if (!(attachmentUrl !== void 0 && unavailableUrls.has(attachmentUrl)) && shouldIncludeObserverAttachment(attachment, attachmentFilter)) {
20895
20916
  const inputAttachment = toObserverInputAttachmentPart(attachment);
20896
20917
  if (inputAttachment) attachments.push(inputAttachment);
20897
20918
  }
@@ -35590,4 +35611,4 @@ Object.defineProperty(exports, "wrapInObservationGroup", {
35590
35611
  }
35591
35612
  });
35592
35613
 
35593
- //# sourceMappingURL=src-OOB19zXe.cjs.map
35614
+ //# sourceMappingURL=src-BBl5Qedz.cjs.map