@mastra/server 1.71.0 → 1.72.0-alpha.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 (74) hide show
  1. package/dist/{agents-CqEbqSrC.cjs → agents-DwJE1tsB.cjs} +5 -4
  2. package/dist/{agents-CqEbqSrC.cjs.map → agents-DwJE1tsB.cjs.map} +1 -1
  3. package/dist/{agents-Dstk6Isf.js → agents-kOz1lr_e.js} +5 -4
  4. package/dist/{agents-Dstk6Isf.js.map → agents-kOz1lr_e.js.map} +1 -1
  5. package/dist/{api-schema-manifest-wibRCXX8.js → api-schema-manifest-DJiUahwo.js} +2 -2
  6. package/dist/{api-schema-manifest-wibRCXX8.js.map → api-schema-manifest-DJiUahwo.js.map} +1 -1
  7. package/dist/{api-schema-manifest-CHTg1Kb-.cjs → api-schema-manifest-Maxewnw7.cjs} +2 -2
  8. package/dist/{api-schema-manifest-CHTg1Kb-.cjs.map → api-schema-manifest-Maxewnw7.cjs.map} +1 -1
  9. package/dist/{dist-D19QgTH4.js → dist-ABdCIqbD.js} +47 -10
  10. package/dist/dist-ABdCIqbD.js.map +1 -0
  11. package/dist/{dist-unhwBKm6.cjs → dist-Cfr6t0cK.cjs} +47 -10
  12. package/dist/dist-Cfr6t0cK.cjs.map +1 -0
  13. package/dist/docs/SKILL.md +1 -1
  14. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  15. package/dist/{editor-builder-DRn7G0Mr.js → editor-builder-BLi1jvZd.js} +2 -2
  16. package/dist/{editor-builder-DRn7G0Mr.js.map → editor-builder-BLi1jvZd.js.map} +1 -1
  17. package/dist/{editor-builder-BaIipd1y.js → editor-builder-BrkDnCEd.js} +2 -2
  18. package/dist/{editor-builder-BaIipd1y.js.map → editor-builder-BrkDnCEd.js.map} +1 -1
  19. package/dist/{editor-builder-BbdoWaL_.cjs → editor-builder-DIpISGSI.cjs} +2 -2
  20. package/dist/{editor-builder-BbdoWaL_.cjs.map → editor-builder-DIpISGSI.cjs.map} +1 -1
  21. package/dist/{editor-builder-ByrOB5f8.cjs → editor-builder-Dm6jviKJ.cjs} +2 -2
  22. package/dist/{editor-builder-ByrOB5f8.cjs.map → editor-builder-Dm6jviKJ.cjs.map} +1 -1
  23. package/dist/{routes-CLtivVqs.cjs → routes-C9CmwhbC.cjs} +3 -3
  24. package/dist/{routes-CLtivVqs.cjs.map → routes-C9CmwhbC.cjs.map} +1 -1
  25. package/dist/{routes-BRIkKqTl.js → routes-D6sAEgtj.js} +3 -3
  26. package/dist/{routes-BRIkKqTl.js.map → routes-D6sAEgtj.js.map} +1 -1
  27. package/dist/server/handlers/agent-builder.cjs +2 -2
  28. package/dist/server/handlers/agent-builder.js +2 -2
  29. package/dist/server/handlers/agent-controller.cjs +12 -1
  30. package/dist/server/handlers/agent-controller.cjs.map +1 -1
  31. package/dist/server/handlers/agent-controller.d.ts.map +1 -1
  32. package/dist/server/handlers/agent-controller.js +12 -1
  33. package/dist/server/handlers/agent-controller.js.map +1 -1
  34. package/dist/server/handlers/agents.cjs +17 -4
  35. package/dist/server/handlers/agents.cjs.map +1 -1
  36. package/dist/server/handlers/agents.d.ts +6 -0
  37. package/dist/server/handlers/agents.d.ts.map +1 -1
  38. package/dist/server/handlers/agents.js +17 -4
  39. package/dist/server/handlers/agents.js.map +1 -1
  40. package/dist/server/handlers/editor-builder.cjs +1 -1
  41. package/dist/server/handlers/editor-builder.js +1 -1
  42. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  43. package/dist/server/handlers/favorites-enrichment.js +1 -1
  44. package/dist/server/handlers/plans.cjs +1 -1
  45. package/dist/server/handlers/plans.js +1 -1
  46. package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
  47. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  48. package/dist/server/handlers/stored-agents.cjs +1 -1
  49. package/dist/server/handlers/stored-agents.js +1 -1
  50. package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
  51. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  52. package/dist/server/handlers/stored-skills.cjs +1 -1
  53. package/dist/server/handlers/stored-skills.js +1 -1
  54. package/dist/server/handlers/system.cjs +1 -1
  55. package/dist/server/handlers/system.js +1 -1
  56. package/dist/server/handlers/tools.cjs +1 -1
  57. package/dist/server/handlers/tools.js +1 -1
  58. package/dist/server/handlers/workflow-builder.cjs +1 -1
  59. package/dist/server/handlers/workflow-builder.js +1 -1
  60. package/dist/server/handlers/workflows.cjs +1 -1
  61. package/dist/server/handlers/workflows.js +1 -1
  62. package/dist/server/schemas/agents.d.ts +3 -0
  63. package/dist/server/schemas/agents.d.ts.map +1 -1
  64. package/dist/server/schemas/index.cjs +2 -2
  65. package/dist/server/schemas/index.js +2 -2
  66. package/dist/server/server-adapter/index.cjs +1 -1
  67. package/dist/server/server-adapter/index.js +1 -1
  68. package/dist/{workflow-builder-Cp9M5q2y.cjs → workflow-builder-DTcM8ER3.cjs} +3 -3
  69. package/dist/{workflow-builder-Cp9M5q2y.cjs.map → workflow-builder-DTcM8ER3.cjs.map} +1 -1
  70. package/dist/{workflow-builder-JDAg-Yz7.js → workflow-builder-KRSpDol2.js} +3 -3
  71. package/dist/{workflow-builder-JDAg-Yz7.js.map → workflow-builder-KRSpDol2.js.map} +1 -1
  72. package/package.json +6 -6
  73. package/dist/dist-D19QgTH4.js.map +0 -1
  74. package/dist/dist-unhwBKm6.cjs.map +0 -1
@@ -4637,7 +4637,7 @@ function splitLines(text) {
4637
4637
  return result;
4638
4638
  }
4639
4639
  //#endregion
4640
- //#region ../memory/dist/src-DsewkOlu.js
4640
+ //#region ../memory/dist/src-B-_pkR2t.js
4641
4641
  var __defProp$3 = Object.defineProperty;
4642
4642
  var __exportAll = (all, no_symbols) => {
4643
4643
  let target = {};
@@ -27648,7 +27648,7 @@ async function summarizeConversation(opts) {
27648
27648
  usage: result.usage
27649
27649
  };
27650
27650
  }
27651
- const UPDATE_WORKING_MEMORY_TOOL_NAME = "updateWorkingMemory";
27651
+ const UPDATE_WORKING_MEMORY_TOOL_NAME$1 = "updateWorkingMemory";
27652
27652
  const SET_WORKING_MEMORY_TOOL_NAME = "setWorkingMemory";
27653
27653
  /**
27654
27654
  * Deep merges two objects, with special handling for null values (delete) and arrays (replace).
@@ -27906,7 +27906,7 @@ function createWorkingMemoryTool(config, options = {}) {
27906
27906
  const useStateSignals = config.workingMemory?.useStateSignals === true;
27907
27907
  const tool = options.vNext ? __experimental_updateWorkingMemoryToolVNext(config) : updateWorkingMemoryTool(config);
27908
27908
  return {
27909
- name: useStateSignals ? SET_WORKING_MEMORY_TOOL_NAME : UPDATE_WORKING_MEMORY_TOOL_NAME,
27909
+ name: useStateSignals ? SET_WORKING_MEMORY_TOOL_NAME : UPDATE_WORKING_MEMORY_TOOL_NAME$1,
27910
27910
  tool
27911
27911
  };
27912
27912
  }
@@ -33371,6 +33371,7 @@ function parseActivationTTL(value, fieldPath) {
33371
33371
  if (!Number.isFinite(amount) || amount < 0) throw new Error(`${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m".`);
33372
33372
  return amount * (unit === "ms" || unit === "msec" || unit === "msecs" || unit === "millisecond" || unit === "milliseconds" ? 1 : unit === "s" || unit === "sec" || unit === "secs" || unit === "second" || unit === "seconds" ? 1e3 : unit === "m" || unit === "min" || unit === "mins" || unit === "minute" || unit === "minutes" ? 6e4 : 36e5);
33373
33373
  }
33374
+ let hasWarnedResourceScopeDeprecation = false;
33374
33375
  /**
33375
33376
  * ObservationalMemory - A three-agent memory system for long conversations.
33376
33377
  *
@@ -33649,6 +33650,10 @@ var ObservationalMemory = class ObservationalMemory {
33649
33650
  hooks: this.hooks
33650
33651
  });
33651
33652
  this.validateBufferConfig();
33653
+ if (this.scope === "resource" && !hasWarnedResourceScopeDeprecation) {
33654
+ hasWarnedResourceScopeDeprecation = true;
33655
+ console.warn("[Mastra] Observational memory `scope: 'resource'` is deprecated and will be removed in a future release because it works much worse than thread scope for prompt caching and agent understanding. Remove `scope` to use the default thread scope, and enable `retrieval` for cross-thread recall. See https://mastra.ai/docs/memory/observational-memory#resource-scope-deprecated");
33656
+ }
33652
33657
  omDebug(`[OM:init] new ObservationalMemory instance created — scope=${this.scope}, messageTokens=${JSON.stringify(this.observationConfig.messageTokens)}, obsAsyncEnabled=${this.buffering.isAsyncObservationEnabled()}, bufferTokens=${this.observationConfig.bufferTokens}, bufferActivation=${this.observationConfig.bufferActivation}, blockAfter=${this.observationConfig.blockAfter}, reflectionTokens=${this.reflectionConfig.observationTokens}, refAsyncEnabled=${this.buffering.isAsyncReflectionEnabled()}, refAsyncActivation=${this.reflectionConfig.bufferActivation}, refBlockAfter=${this.reflectionConfig.blockAfter}`);
33653
33658
  }
33654
33659
  __registerMastra(mastra) {
@@ -36216,6 +36221,40 @@ function extractWorkingMemoryContent(text) {
36216
36221
  if (end === -1) return null;
36217
36222
  return text.substring(contentStart, end);
36218
36223
  }
36224
+ const UPDATE_WORKING_MEMORY_TOOL_NAME = "updateWorkingMemory";
36225
+ /**
36226
+ * Removes `updateWorkingMemory` tool invocations from stored message parts, one step
36227
+ * at a time. A step starts at a `step-start` part, or where a tool part is followed by
36228
+ * a non-tool part (the same boundary prompt conversion uses when markers are missing).
36229
+ * A step whose tool calls were all working-memory calls loses its tool-call/tool-result
36230
+ * boundary once they are removed. If only reasoning is left, the whole step is dropped:
36231
+ * replaying that signed reasoning merges it into the next step's assistant message,
36232
+ * which providers such as Anthropic reject (see #22798).
36233
+ */
36234
+ function removeWorkingMemoryToolInvocationParts(parts) {
36235
+ const isWorkingMemoryCall = (part) => part?.type === "tool-invocation" && part.toolInvocation?.toolName === UPDATE_WORKING_MEMORY_TOOL_NAME;
36236
+ if (!parts.some(isWorkingMemoryCall)) return parts;
36237
+ const steps = [];
36238
+ parts.forEach((part, i) => {
36239
+ const previous = parts[i - 1];
36240
+ if (part?.type === "step-start" || previous?.type === "tool-invocation" && part?.type !== "tool-invocation" || steps.length === 0) steps.push([]);
36241
+ steps[steps.length - 1].push(part);
36242
+ });
36243
+ return steps.flatMap((step) => {
36244
+ if (!step.some(isWorkingMemoryCall)) return step;
36245
+ const remaining = step.filter((part) => !isWorkingMemoryCall(part));
36246
+ return remaining.every((part) => part?.type === "step-start" || part?.type === "reasoning" || part?.type === "text" && !removeWorkingMemoryTags(part.text ?? "").trim()) ? [] : remaining;
36247
+ });
36248
+ }
36249
+ /**
36250
+ * Removes `updateWorkingMemory` entries from the legacy `toolInvocations` array so
36251
+ * prompt conversion cannot re-add a stripped working-memory call.
36252
+ */
36253
+ function removeWorkingMemoryToolInvocations(toolInvocations) {
36254
+ if (!toolInvocations?.some((invocation) => invocation.toolName === UPDATE_WORKING_MEMORY_TOOL_NAME)) return toolInvocations;
36255
+ const remaining = toolInvocations.filter((invocation) => invocation.toolName !== UPDATE_WORKING_MEMORY_TOOL_NAME);
36256
+ return remaining.length > 0 ? remaining : void 0;
36257
+ }
36219
36258
  function isRecallSignalType(type) {
36220
36259
  return type === "user" || type === "state" || type === "reactive" || type === "notification" || type === "user-message" || type === "system-reminder";
36221
36260
  }
@@ -37075,10 +37114,8 @@ ${workingMemory}`;
37075
37114
  if (message.content && typeof message.content === "object" && !Array.isArray(message.content)) newMessage.content = { ...message.content };
37076
37115
  if (typeof newMessage.content?.content === "string" && newMessage.content.content.length > 0) newMessage.content.content = removeWorkingMemoryTags(newMessage.content.content).trim();
37077
37116
  if (Array.isArray(newMessage.content?.parts)) {
37078
- newMessage.content.parts = newMessage.content.parts.filter((part) => {
37079
- if (part?.type === "tool-invocation") return part.toolInvocation?.toolName !== "updateWorkingMemory";
37080
- return true;
37081
- }).map((part) => {
37117
+ if (Array.isArray(newMessage.content.toolInvocations)) newMessage.content.toolInvocations = removeWorkingMemoryToolInvocations(newMessage.content.toolInvocations);
37118
+ newMessage.content.parts = removeWorkingMemoryToolInvocationParts(newMessage.content.parts).map((part) => {
37082
37119
  if (part?.type === "text") {
37083
37120
  const text = typeof part.text === "string" ? part.text : "";
37084
37121
  return {
@@ -37431,7 +37468,7 @@ ${hasEmptyWorkingMemoryTemplateObject ? "When working with json data, the object
37431
37468
  ${hasEmptyWorkingMemoryTemplateObject ? JSON.stringify(emptyWorkingMemoryTemplateObject) : ""}
37432
37469
 
37433
37470
  <working_memory_data>
37434
- ${data}
37471
+ ${data || "No working memory data available."}
37435
37472
  </working_memory_data>
37436
37473
 
37437
37474
  Notes:
@@ -37460,7 +37497,7 @@ ${template.content}
37460
37497
  </working_memory_template>
37461
37498
 
37462
37499
  <working_memory_data>
37463
- ${data}
37500
+ ${data || "No working memory data available."}
37464
37501
  </working_memory_data>
37465
37502
 
37466
37503
  Notes:
@@ -49233,4 +49270,4 @@ const agentBuilderWorkflows = {
49233
49270
  //#endregion
49234
49271
  export { agentBuilderWorkflows };
49235
49272
 
49236
- //# sourceMappingURL=dist-D19QgTH4.js.map
49273
+ //# sourceMappingURL=dist-ABdCIqbD.js.map