@mastra/core 0.24.9-alpha.0 → 0.24.9

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 (105) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/agent/index.cjs +13 -13
  3. package/dist/agent/index.js +2 -2
  4. package/dist/agent/input-processor/index.cjs +6 -6
  5. package/dist/agent/input-processor/index.js +1 -1
  6. package/dist/ai-tracing/index.cjs +41 -41
  7. package/dist/ai-tracing/index.js +2 -2
  8. package/dist/ai-tracing/serialization.d.ts.map +1 -1
  9. package/dist/{chunk-3N7RP3UB.js → chunk-2BIQL3SK.js} +3 -3
  10. package/dist/{chunk-3N7RP3UB.js.map → chunk-2BIQL3SK.js.map} +1 -1
  11. package/dist/{chunk-LQJJBWFH.cjs → chunk-3L3ISSMS.cjs} +9 -9
  12. package/dist/chunk-3L3ISSMS.cjs.map +1 -0
  13. package/dist/{chunk-6ZBXSCZR.js → chunk-4DWBTEHS.js} +3 -3
  14. package/dist/{chunk-6ZBXSCZR.js.map → chunk-4DWBTEHS.js.map} +1 -1
  15. package/dist/{chunk-RR7QPRXN.js → chunk-5BMYOHKM.js} +4 -4
  16. package/dist/{chunk-RR7QPRXN.js.map → chunk-5BMYOHKM.js.map} +1 -1
  17. package/dist/{chunk-AOUR7HV5.js → chunk-5KSHWBRH.js} +4 -4
  18. package/dist/{chunk-AOUR7HV5.js.map → chunk-5KSHWBRH.js.map} +1 -1
  19. package/dist/{chunk-QCZOYIZC.js → chunk-5S5X3QPR.js} +3 -3
  20. package/dist/{chunk-QCZOYIZC.js.map → chunk-5S5X3QPR.js.map} +1 -1
  21. package/dist/{chunk-UK4QLV4O.cjs → chunk-7GUQ2EQ4.cjs} +9 -9
  22. package/dist/{chunk-UK4QLV4O.cjs.map → chunk-7GUQ2EQ4.cjs.map} +1 -1
  23. package/dist/{chunk-GWZTWJLK.js → chunk-BBE22VBK.js} +5 -5
  24. package/dist/{chunk-GWZTWJLK.js.map → chunk-BBE22VBK.js.map} +1 -1
  25. package/dist/{chunk-P67ES4L4.cjs → chunk-CSHVFDF6.cjs} +4 -4
  26. package/dist/{chunk-P67ES4L4.cjs.map → chunk-CSHVFDF6.cjs.map} +1 -1
  27. package/dist/{chunk-FTV3ZCSR.cjs → chunk-DGL7I4HZ.cjs} +9 -9
  28. package/dist/{chunk-FTV3ZCSR.cjs.map → chunk-DGL7I4HZ.cjs.map} +1 -1
  29. package/dist/{chunk-SQ4FHFMU.cjs → chunk-EHTC7VYS.cjs} +4 -4
  30. package/dist/{chunk-SQ4FHFMU.cjs.map → chunk-EHTC7VYS.cjs.map} +1 -1
  31. package/dist/{chunk-PTN7GTBG.js → chunk-EMTBCXQQ.js} +3 -3
  32. package/dist/{chunk-PTN7GTBG.js.map → chunk-EMTBCXQQ.js.map} +1 -1
  33. package/dist/{chunk-6KCZMULD.js → chunk-GEHKQTB2.js} +3 -3
  34. package/dist/{chunk-6KCZMULD.js.map → chunk-GEHKQTB2.js.map} +1 -1
  35. package/dist/{chunk-Z3PIE2HC.js → chunk-GSQD3QNR.js} +10 -10
  36. package/dist/{chunk-Z3PIE2HC.js.map → chunk-GSQD3QNR.js.map} +1 -1
  37. package/dist/{chunk-PVUCLWGL.js → chunk-HHPXFPNO.js} +3 -3
  38. package/dist/{chunk-PVUCLWGL.js.map → chunk-HHPXFPNO.js.map} +1 -1
  39. package/dist/{chunk-DM46TJNZ.cjs → chunk-MSFEDB5Z.cjs} +17 -17
  40. package/dist/{chunk-DM46TJNZ.cjs.map → chunk-MSFEDB5Z.cjs.map} +1 -1
  41. package/dist/{chunk-YWK4OFUM.js → chunk-NFJJ6B6P.js} +3 -3
  42. package/dist/{chunk-YWK4OFUM.js.map → chunk-NFJJ6B6P.js.map} +1 -1
  43. package/dist/{chunk-UG3C67I3.js → chunk-PA6Z5V6U.js} +9 -9
  44. package/dist/chunk-PA6Z5V6U.js.map +1 -0
  45. package/dist/{chunk-RLAYS3PT.cjs → chunk-PAW64WWA.cjs} +4 -4
  46. package/dist/{chunk-RLAYS3PT.cjs.map → chunk-PAW64WWA.cjs.map} +1 -1
  47. package/dist/{chunk-WHW7ZQCM.cjs → chunk-QETEFQ7T.cjs} +6 -6
  48. package/dist/{chunk-WHW7ZQCM.cjs.map → chunk-QETEFQ7T.cjs.map} +1 -1
  49. package/dist/{chunk-KPKDAZ5I.cjs → chunk-QGJF6TRY.cjs} +18 -18
  50. package/dist/{chunk-KPKDAZ5I.cjs.map → chunk-QGJF6TRY.cjs.map} +1 -1
  51. package/dist/{chunk-2L6LTY2M.cjs → chunk-QLPSR67Y.cjs} +15 -15
  52. package/dist/{chunk-2L6LTY2M.cjs.map → chunk-QLPSR67Y.cjs.map} +1 -1
  53. package/dist/{chunk-7XP3ZCBG.js → chunk-QQKRUSCB.js} +7 -7
  54. package/dist/{chunk-7XP3ZCBG.js.map → chunk-QQKRUSCB.js.map} +1 -1
  55. package/dist/{chunk-SJQ6OUHB.cjs → chunk-QWOKGSO2.cjs} +6 -6
  56. package/dist/{chunk-SJQ6OUHB.cjs.map → chunk-QWOKGSO2.cjs.map} +1 -1
  57. package/dist/{chunk-MIRRWDFC.cjs → chunk-RDD5YB3T.cjs} +4 -4
  58. package/dist/{chunk-MIRRWDFC.cjs.map → chunk-RDD5YB3T.cjs.map} +1 -1
  59. package/dist/{chunk-ZXVDL4TQ.cjs → chunk-W54LWXCG.cjs} +4 -4
  60. package/dist/{chunk-ZXVDL4TQ.cjs.map → chunk-W54LWXCG.cjs.map} +1 -1
  61. package/dist/{chunk-DQNIWOM3.cjs → chunk-ZWWHTQ72.cjs} +54 -54
  62. package/dist/{chunk-DQNIWOM3.cjs.map → chunk-ZWWHTQ72.cjs.map} +1 -1
  63. package/dist/{chunk-GLA7XHTK.js → chunk-ZZIYFEVM.js} +3 -3
  64. package/dist/{chunk-GLA7XHTK.js.map → chunk-ZZIYFEVM.js.map} +1 -1
  65. package/dist/index.cjs +73 -73
  66. package/dist/index.js +11 -11
  67. package/dist/loop/index.cjs +2 -2
  68. package/dist/loop/index.js +1 -1
  69. package/dist/mastra/index.cjs +2 -2
  70. package/dist/mastra/index.js +1 -1
  71. package/dist/memory/index.cjs +4 -4
  72. package/dist/memory/index.js +1 -1
  73. package/dist/processors/index.cjs +11 -11
  74. package/dist/processors/index.js +1 -1
  75. package/dist/relevance/index.cjs +4 -4
  76. package/dist/relevance/index.js +1 -1
  77. package/dist/scores/index.cjs +9 -9
  78. package/dist/scores/index.js +2 -2
  79. package/dist/scores/scoreTraces/index.cjs +8 -8
  80. package/dist/scores/scoreTraces/index.js +3 -3
  81. package/dist/server/index.cjs +2 -2
  82. package/dist/server/index.js +1 -1
  83. package/dist/storage/index.cjs +3 -3
  84. package/dist/storage/index.js +1 -1
  85. package/dist/stream/index.cjs +11 -11
  86. package/dist/stream/index.js +2 -2
  87. package/dist/telemetry/index.cjs +7 -7
  88. package/dist/telemetry/index.js +1 -1
  89. package/dist/test-utils/llm-mock.cjs +2 -2
  90. package/dist/test-utils/llm-mock.js +1 -1
  91. package/dist/tts/index.cjs +2 -2
  92. package/dist/tts/index.js +1 -1
  93. package/dist/utils.cjs +22 -22
  94. package/dist/utils.js +1 -1
  95. package/dist/voice/index.cjs +6 -6
  96. package/dist/voice/index.js +1 -1
  97. package/dist/workflows/evented/index.cjs +10 -10
  98. package/dist/workflows/evented/index.js +1 -1
  99. package/dist/workflows/index.cjs +17 -17
  100. package/dist/workflows/index.js +1 -1
  101. package/dist/workflows/legacy/index.cjs +22 -22
  102. package/dist/workflows/legacy/index.js +1 -1
  103. package/package.json +4 -4
  104. package/dist/chunk-LQJJBWFH.cjs.map +0 -1
  105. package/dist/chunk-UG3C67I3.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  // src/ai-tracing/serialization.ts
2
- var DEFAULT_SERIALIZATION_LIMITS = {
2
+ var DEFAULT_SERIALIZATION_LIMITS = Object.freeze({
3
3
  maxAttrChars: 1024,
4
4
  maxDepth: 6,
5
5
  maxKeys: 50,
6
6
  maxArrayItems: 50,
7
7
  maxTotalChars: 8192
8
- };
8
+ });
9
9
  function truncateString(s, maxChars) {
10
10
  if (s.length <= maxChars) return s;
11
11
  return s.slice(0, maxChars) + "\u2026[truncated]";
@@ -35,10 +35,7 @@ function deepClean(value, options = {}) {
35
35
  return val;
36
36
  }
37
37
  if (typeof val === "string") {
38
- if (val.length > maxStringLength) {
39
- return val.slice(0, maxStringLength) + "\u2026[truncated]";
40
- }
41
- return val;
38
+ return truncateString(val, maxStringLength);
42
39
  }
43
40
  if (typeof val === "number" || typeof val === "boolean") {
44
41
  return val;
@@ -52,10 +49,13 @@ function deepClean(value, options = {}) {
52
49
  if (typeof val === "symbol") {
53
50
  return val.description ? `[Symbol(${val.description})]` : "[Symbol]";
54
51
  }
52
+ if (val instanceof Date) {
53
+ return val;
54
+ }
55
55
  if (val instanceof Error) {
56
56
  return {
57
57
  name: val.name,
58
- message: val.message ? val.message.length > maxStringLength ? val.message.slice(0, maxStringLength) + "\u2026[truncated]" : val.message : void 0
58
+ message: val.message ? truncateString(val.message, maxStringLength) : void 0
59
59
  };
60
60
  }
61
61
  if (typeof val === "object") {
@@ -120,5 +120,5 @@ function boundedStringify(value) {
120
120
  }
121
121
 
122
122
  export { DEFAULT_KEYS_TO_STRIP, DEFAULT_SERIALIZATION_LIMITS, boundedStringify, deepClean, truncateString };
123
- //# sourceMappingURL=chunk-UG3C67I3.js.map
124
- //# sourceMappingURL=chunk-UG3C67I3.js.map
123
+ //# sourceMappingURL=chunk-PA6Z5V6U.js.map
124
+ //# sourceMappingURL=chunk-PA6Z5V6U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ai-tracing/serialization.ts"],"names":["cleaned"],"mappings":"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","file":"chunk-PA6Z5V6U.js","sourcesContent":["/**\n * Bounded serialization utilities for AI tracing.\n *\n * These utilities prevent memory issues by enforcing strict limits on\n * string lengths, array sizes, object depths, and total output size.\n * They are designed to be used across all tracing/telemetry systems.\n */\n\n/**\n * Configuration limits for serialization.\n * These defaults are intentionally conservative to prevent OOM issues.\n */\nexport interface SerializationLimits {\n /** Maximum characters for any single attribute string (default: 1024) */\n maxAttrChars: number;\n /** Maximum depth for recursive serialization (default: 6) */\n maxDepth: number;\n /** Maximum object keys to serialize (default: 50) */\n maxKeys: number;\n /** Maximum array elements to serialize (default: 50) */\n maxArrayItems: number;\n /** Maximum total output characters (default: 8192) */\n maxTotalChars: number;\n}\n\nexport const DEFAULT_SERIALIZATION_LIMITS: SerializationLimits = Object.freeze({\n maxAttrChars: 1024,\n maxDepth: 6,\n maxKeys: 50,\n maxArrayItems: 50,\n maxTotalChars: 8192,\n});\n\n/**\n * Hard-cap any string to prevent unbounded growth.\n */\nexport function truncateString(s: string, maxChars: number): string {\n if (s.length <= maxChars) return s;\n return s.slice(0, maxChars) + '…[truncated]';\n}\n\n/**\n * Default keys to strip from objects during deep cleaning.\n * These are typically internal/sensitive fields that shouldn't be traced.\n */\nexport const DEFAULT_KEYS_TO_STRIP = new Set([\n 'logger',\n 'experimental_providerMetadata',\n 'providerMetadata',\n 'steps',\n 'tracingContext',\n]);\n\n/** Empty set for when you don't want to strip any keys */\nconst NO_KEYS_TO_STRIP = new Set<string>();\n\nexport interface DeepCleanOptions {\n keysToStrip?: Set<string>;\n maxDepth?: number;\n maxStringLength?: number;\n maxArrayLength?: number;\n maxObjectKeys?: number;\n}\n\n/**\n * Recursively cleans a value by removing circular references, stripping problematic keys,\n * and enforcing size limits on strings, arrays, and objects.\n *\n * This is used by AI tracing spans to sanitize input/output data before storing.\n *\n * @param value - The value to clean (object, array, primitive, etc.)\n * @param options - Optional configuration for cleaning behavior\n * @returns A cleaned version of the input with size limits enforced\n */\nexport function deepClean(value: any, options: DeepCleanOptions = {}): any {\n const {\n keysToStrip = DEFAULT_KEYS_TO_STRIP,\n maxDepth = DEFAULT_SERIALIZATION_LIMITS.maxDepth,\n maxStringLength = DEFAULT_SERIALIZATION_LIMITS.maxAttrChars,\n maxArrayLength = DEFAULT_SERIALIZATION_LIMITS.maxArrayItems,\n maxObjectKeys = DEFAULT_SERIALIZATION_LIMITS.maxKeys,\n } = options;\n\n const seen = new WeakSet<any>();\n\n function helper(val: any, depth: number): any {\n if (depth > maxDepth) {\n return '[MaxDepth]';\n }\n\n // Handle primitives\n if (val === null || val === undefined) {\n return val;\n }\n\n // Handle strings - enforce length limit\n if (typeof val === 'string') {\n return truncateString(val, maxStringLength);\n }\n\n // Handle other non-object primitives explicitly\n if (typeof val === 'number' || typeof val === 'boolean') {\n return val;\n }\n if (typeof val === 'bigint') {\n return `${val}n`;\n }\n if (typeof val === 'function') {\n return '[Function]';\n }\n if (typeof val === 'symbol') {\n return val.description ? `[Symbol(${val.description})]` : '[Symbol]';\n }\n\n // Handle Date objects - preserve as-is\n if (val instanceof Date) {\n return val;\n }\n\n // Handle Errors specially - preserve name and message\n if (val instanceof Error) {\n return {\n name: val.name,\n message: val.message ? truncateString(val.message, maxStringLength) : undefined,\n };\n }\n\n // Handle circular references\n if (typeof val === 'object') {\n if (seen.has(val)) {\n return '[Circular]';\n }\n seen.add(val);\n }\n\n // Handle arrays - enforce length limit\n if (Array.isArray(val)) {\n const limitedArray = val.slice(0, maxArrayLength);\n const cleaned = limitedArray.map(item => helper(item, depth + 1));\n if (val.length > maxArrayLength) {\n cleaned.push(`[…${val.length - maxArrayLength} more items]`);\n }\n return cleaned;\n }\n\n // Handle Buffer and typed arrays - don't serialize large binary data\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(val)) {\n return `[Buffer length=${val.length}]`;\n }\n\n if (ArrayBuffer.isView(val)) {\n const ctor = (val as any).constructor?.name ?? 'TypedArray';\n const byteLength = (val as any).byteLength ?? '?';\n return `[${ctor} byteLength=${byteLength}]`;\n }\n\n if (val instanceof ArrayBuffer) {\n return `[ArrayBuffer byteLength=${val.byteLength}]`;\n }\n\n // Handle objects - enforce key limit\n const cleaned: Record<string, any> = {};\n const entries = Object.entries(val);\n let keyCount = 0;\n\n for (const [key, v] of entries) {\n if (keysToStrip.has(key)) {\n continue;\n }\n\n if (keyCount >= maxObjectKeys) {\n cleaned['__truncated'] = `${entries.length - keyCount} more keys omitted`;\n break;\n }\n\n try {\n cleaned[key] = helper(v, depth + 1);\n keyCount++;\n } catch (error) {\n cleaned[key] = `[${error instanceof Error ? error.message : String(error)}]`;\n keyCount++;\n }\n }\n\n return cleaned;\n }\n\n return helper(value, 0);\n}\n\n/**\n * Bounded safe stringify for when you need JSON output.\n * Uses deepClean internally, then JSON.stringify with total length limit.\n *\n * @param value - The value to stringify\n * @returns A JSON string representation with enforced limits\n */\nexport function boundedStringify(value: unknown): string {\n const cleaned = deepClean(value, { keysToStrip: NO_KEYS_TO_STRIP });\n\n try {\n const json = JSON.stringify(cleaned);\n if (json.length > DEFAULT_SERIALIZATION_LIMITS.maxTotalChars) {\n return json.slice(0, DEFAULT_SERIALIZATION_LIMITS.maxTotalChars) + '…[truncated]';\n }\n return json;\n } catch {\n return '[Not Serializable]';\n }\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkUK4QLV4O_cjs = require('./chunk-UK4QLV4O.cjs');
3
+ var chunk7GUQ2EQ4_cjs = require('./chunk-7GUQ2EQ4.cjs');
4
4
  var chunk6VOPKVYH_cjs = require('./chunk-6VOPKVYH.cjs');
5
5
  var chunkEBVYYC2Q_cjs = require('./chunk-EBVYYC2Q.cjs');
6
6
 
7
7
  // src/tts/index.ts
8
8
  var _MastraTTS_decorators, _init, _a;
9
- _MastraTTS_decorators = [chunkUK4QLV4O_cjs.InstrumentClass({
9
+ _MastraTTS_decorators = [chunk7GUQ2EQ4_cjs.InstrumentClass({
10
10
  prefix: "tts",
11
11
  excludeMethods: ["__setTools", "__setLogger", "__setTelemetry", "#log"]
12
12
  })];
@@ -35,5 +35,5 @@ exports.MastraTTS = /*@__PURE__*/(_ => {
35
35
  chunkEBVYYC2Q_cjs.__runInitializers(_init, 1, exports.MastraTTS);
36
36
  return exports.MastraTTS;
37
37
  })();
38
- //# sourceMappingURL=chunk-RLAYS3PT.cjs.map
39
- //# sourceMappingURL=chunk-RLAYS3PT.cjs.map
38
+ //# sourceMappingURL=chunk-PAW64WWA.cjs.map
39
+ //# sourceMappingURL=chunk-PAW64WWA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tts/index.ts"],"names":["MastraTTS","__decoratorStart","__decorateElement","__runInitializers"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAA;AAaA,GAAA,EAAA;AAAiB,IACf,KAAA,CAAQ;AAAA,MACR,SAAA,EAAA;AACF,KAAC,CAAA;AACM,IAAe,IAAA,CAAA,KAAA;AAA6B,EACjD;AAAA,EACA,MAAA,CAAA,MAAY,EAAE,UAAoB,EAAA;AAChC,IAAA,OAAM,IAAA,CAAA,SAAA,EAAA,WAAA,CAAA,MAAA,EAAA;AAAA,MACJ,QAAA,EAAA,CAAW,EAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA;AAAA,MACZ,UAAA,EAAA;AACD,QAAA,UAAa,EAAA,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA;AAAA;AACf,KAEA,CAAA;AACE,EAAA;AACsC;AACYA,iBAC9C,gBAAY,CAAA,CAAA,IAAA;AAAA,EAAA,KAAA,GACVC,kCAAe,CAAA,EAAK,CAAA;AAAU,EAAAD,iBAChC,GAAAE,mCAAA,CAAA,KAAA,EAAA,CAAA,EAAA,WAAA,EAAA,qBAAA,EAAAF,iBAAA,CAAA;AAAA,EAAAG,mCACI,CAAA,KAAA,EAAA,CAAA,EAAAH,iBAAA,CAAA;AAAA,EAEV,OAAAA,iBAAA;AAIF,CAAA,EAAA","file":"chunk-RLAYS3PT.cjs","sourcesContent":["import { MastraBase } from '../base';\nimport { InstrumentClass } from '../telemetry';\n\ninterface BuiltInModelConfig {\n provider: string;\n name: string;\n apiKey?: string;\n}\n\nexport interface TTSConfig {\n model: BuiltInModelConfig;\n}\n\n@InstrumentClass({\n prefix: 'tts',\n excludeMethods: ['__setTools', '__setLogger', '__setTelemetry', '#log'],\n})\nexport abstract class MastraTTS extends MastraBase {\n model: BuiltInModelConfig;\n constructor({ model }: TTSConfig) {\n super({\n component: 'TTS',\n });\n this.model = model;\n }\n\n traced<T extends Function>(method: T, methodName: string): T {\n return (\n this.telemetry?.traceMethod(method, {\n spanName: `${this.model.name}-tts.${methodName}`,\n attributes: {\n 'tts.type': `${this.model.name}`,\n },\n }) ?? method\n );\n }\n\n abstract generate({ text }: { text: string }): Promise<any>;\n abstract stream({ text }: { text: string }): Promise<any>;\n}\n"]}
1
+ {"version":3,"sources":["../src/tts/index.ts"],"names":["MastraTTS","__decoratorStart","__decorateElement","__runInitializers"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAA;AAaA,GAAA,EAAA;AAAiB,IACf,KAAA,CAAQ;AAAA,MACR,SAAA,EAAA;AACF,KAAC,CAAA;AACM,IAAe,IAAA,CAAA,KAAA;AAA6B,EACjD;AAAA,EACA,MAAA,CAAA,MAAY,EAAE,UAAoB,EAAA;AAChC,IAAA,OAAM,IAAA,CAAA,SAAA,EAAA,WAAA,CAAA,MAAA,EAAA;AAAA,MACJ,QAAA,EAAA,CAAW,EAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA;AAAA,MACZ,UAAA,EAAA;AACD,QAAA,UAAa,EAAA,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA;AAAA;AACf,KAEA,CAAA;AACE,EAAA;AACsC;AACYA,iBAC9C,gBAAY,CAAA,CAAA,IAAA;AAAA,EAAA,KAAA,GACVC,kCAAe,CAAA,EAAK,CAAA;AAAU,EAAAD,iBAChC,GAAAE,mCAAA,CAAA,KAAA,EAAA,CAAA,EAAA,WAAA,EAAA,qBAAA,EAAAF,iBAAA,CAAA;AAAA,EAAAG,mCACI,CAAA,KAAA,EAAA,CAAA,EAAAH,iBAAA,CAAA;AAAA,EAEV,OAAAA,iBAAA;AAIF,CAAA,EAAA","file":"chunk-PAW64WWA.cjs","sourcesContent":["import { MastraBase } from '../base';\nimport { InstrumentClass } from '../telemetry';\n\ninterface BuiltInModelConfig {\n provider: string;\n name: string;\n apiKey?: string;\n}\n\nexport interface TTSConfig {\n model: BuiltInModelConfig;\n}\n\n@InstrumentClass({\n prefix: 'tts',\n excludeMethods: ['__setTools', '__setLogger', '__setTelemetry', '#log'],\n})\nexport abstract class MastraTTS extends MastraBase {\n model: BuiltInModelConfig;\n constructor({ model }: TTSConfig) {\n super({\n component: 'TTS',\n });\n this.model = model;\n }\n\n traced<T extends Function>(method: T, methodName: string): T {\n return (\n this.telemetry?.traceMethod(method, {\n spanName: `${this.model.name}-tts.${methodName}`,\n attributes: {\n 'tts.type': `${this.model.name}`,\n },\n }) ?? method\n );\n }\n\n abstract generate({ text }: { text: string }): Promise<any>;\n abstract stream({ text }: { text: string }): Promise<any>;\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkV3VLOOSW_cjs = require('./chunk-V3VLOOSW.cjs');
4
- var chunkMIRRWDFC_cjs = require('./chunk-MIRRWDFC.cjs');
4
+ var chunkRDD5YB3T_cjs = require('./chunk-RDD5YB3T.cjs');
5
5
  var chunk22DLIF7L_cjs = require('./chunk-22DLIF7L.cjs');
6
- var chunkKPKDAZ5I_cjs = require('./chunk-KPKDAZ5I.cjs');
6
+ var chunkQGJF6TRY_cjs = require('./chunk-QGJF6TRY.cjs');
7
7
  var chunk6VOPKVYH_cjs = require('./chunk-6VOPKVYH.cjs');
8
8
 
9
9
  // src/memory/memory.ts
@@ -154,7 +154,7 @@ https://mastra.ai/en/docs/memory/overview`
154
154
  if (config?.workingMemory && "use" in config.workingMemory) {
155
155
  throw new Error("The workingMemory.use option has been removed. Working memory always uses tool-call mode.");
156
156
  }
157
- const mergedConfig = chunkKPKDAZ5I_cjs.deepMerge(this.threadConfig, config || {});
157
+ const mergedConfig = chunkQGJF6TRY_cjs.deepMerge(this.threadConfig, config || {});
158
158
  if (config?.workingMemory?.schema) {
159
159
  if (mergedConfig.workingMemory) {
160
160
  mergedConfig.workingMemory.schema = config.workingMemory.schema;
@@ -252,7 +252,7 @@ https://mastra.ai/en/docs/memory/overview`
252
252
  toolCallIds
253
253
  };
254
254
  const savedMessages = await this.saveMessages({ messages: [message], memoryConfig: config });
255
- const list = new chunkMIRRWDFC_cjs.MessageList({ threadId, resourceId }).add(savedMessages[0], "memory");
255
+ const list = new chunkRDD5YB3T_cjs.MessageList({ threadId, resourceId }).add(savedMessages[0], "memory");
256
256
  return list.get.all.v1()[0];
257
257
  }
258
258
  /**
@@ -267,5 +267,5 @@ https://mastra.ai/en/docs/memory/overview`
267
267
  exports.MastraMemory = MastraMemory;
268
268
  exports.MemoryProcessor = MemoryProcessor;
269
269
  exports.memoryDefaultOptions = memoryDefaultOptions;
270
- //# sourceMappingURL=chunk-WHW7ZQCM.cjs.map
271
- //# sourceMappingURL=chunk-WHW7ZQCM.cjs.map
270
+ //# sourceMappingURL=chunk-QETEFQ7T.cjs.map
271
+ //# sourceMappingURL=chunk-QETEFQ7T.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/memory/memory.ts"],"names":["MastraBase","augmentWithInit","ModelRouterEmbeddingModel","deepMerge","MessageList"],"mappings":"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","file":"chunk-WHW7ZQCM.cjs","sourcesContent":["import type { EmbeddingModelV2 } from '@ai-sdk/provider-v5';\nimport type { AssistantContent, UserContent, CoreMessage, EmbeddingModel } from 'ai';\nimport { MessageList } from '../agent/message-list';\nimport type { MastraMessageV2, UIMessageWithMetadata } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport { ModelRouterEmbeddingModel } from '../llm/model/index.js';\nimport type { Mastra } from '../mastra';\nimport type { MastraStorage, PaginationInfo, StorageGetMessagesArg, ThreadSortOptions } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport type { ToolAction } from '../tools';\nimport { deepMerge } from '../utils';\nimport type { MastraVector } from '../vector';\n\nimport type {\n SharedMemoryConfig,\n StorageThreadType,\n MemoryConfig,\n MastraMessageV1,\n WorkingMemoryTemplate,\n} from './types';\n\nexport type MemoryProcessorOpts = {\n systemMessage?: string;\n memorySystemMessage?: string;\n newMessages?: CoreMessage[];\n};\n/**\n * Interface for message processors that can filter or transform messages\n * before they're sent to the LLM.\n */\nexport abstract class MemoryProcessor extends MastraBase {\n /**\n * Process a list of messages and return a filtered or transformed list.\n * @param messages The messages to process\n * @returns The processed messages\n */\n process(messages: CoreMessage[], _opts: MemoryProcessorOpts): CoreMessage[] | Promise<CoreMessage[]> {\n return messages;\n }\n}\n\nexport const memoryDefaultOptions = {\n lastMessages: 10,\n semanticRecall: false,\n threads: {\n generateTitle: true,\n },\n workingMemory: {\n enabled: false,\n template: `\n# User Information\n- **First Name**: \n- **Last Name**: \n- **Location**: \n- **Occupation**: \n- **Interests**: \n- **Goals**: \n- **Events**: \n- **Facts**: \n- **Projects**: \n`,\n },\n} satisfies MemoryConfig;\n\n/**\n * Abstract base class for implementing conversation memory systems.\n *\n * Key features:\n * - Thread-based conversation organization with resource association\n * - Optional vector database integration for semantic similarity search\n * - Working memory templates for structured conversation state\n * - Handles memory processors to manipulate messages before they are sent to the LLM\n */\nexport abstract class MastraMemory extends MastraBase {\n MAX_CONTEXT_TOKENS?: number;\n\n protected _storage?: MastraStorage;\n vector?: MastraVector;\n embedder?: EmbeddingModel<string> | EmbeddingModelV2<string>;\n private processors: MemoryProcessor[] = [];\n protected threadConfig: MemoryConfig = { ...memoryDefaultOptions };\n #mastra?: Mastra;\n\n constructor(config: { name: string } & SharedMemoryConfig) {\n super({ component: 'MEMORY', name: config.name });\n\n if (config.options) this.threadConfig = this.getMergedThreadConfig(config.options);\n if (config.processors) this.processors = config.processors;\n if (config.storage) {\n this._storage = augmentWithInit(config.storage);\n this._hasOwnStorage = true;\n }\n\n if (this.threadConfig.semanticRecall) {\n if (!config.vector) {\n throw new Error(\n `Semantic recall requires a vector store to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n this.vector = config.vector;\n\n if (!config.embedder) {\n throw new Error(\n `Semantic recall requires an embedder to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n\n // Convert string embedder to ModelRouterEmbeddingModel\n if (typeof config.embedder === 'string') {\n this.embedder = new ModelRouterEmbeddingModel(config.embedder);\n } else {\n this.embedder = config.embedder;\n }\n }\n }\n\n /**\n * Internal method used by Mastra to register itself with the memory.\n * @param mastra The Mastra instance.\n * @internal\n */\n __registerMastra(mastra: Mastra): void {\n this.#mastra = mastra;\n }\n\n protected _hasOwnStorage = false;\n get hasOwnStorage() {\n return this._hasOwnStorage;\n }\n\n get storage() {\n if (!this._storage) {\n throw new Error(\n `Memory requires a storage provider to function. Add a storage configuration to Memory or to your Mastra instance.\\n\\nhttps://mastra.ai/en/docs/memory/overview`,\n );\n }\n return this._storage;\n }\n\n public setStorage(storage: MastraStorage) {\n this._storage = augmentWithInit(storage);\n }\n\n public setVector(vector: MastraVector) {\n this.vector = vector;\n }\n\n public setEmbedder(embedder: EmbeddingModel<string>) {\n this.embedder = embedder;\n }\n\n /**\n * Get a system message to inject into the conversation.\n * This will be called before each conversation turn.\n * Implementations can override this to inject custom system messages.\n */\n public async getSystemMessage(_input: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null> {\n return null;\n }\n\n /**\n * Get tools that should be available to the agent.\n * This will be called when converting tools for the agent.\n * Implementations can override this to provide additional tools.\n */\n public getTools(_config?: MemoryConfig): Record<string, ToolAction<any, any, any>> {\n return {};\n }\n\n protected async createEmbeddingIndex(dimensions?: number, config?: MemoryConfig): Promise<{ indexName: string }> {\n const defaultDimensions = 1536;\n const isDefault = dimensions === defaultDimensions;\n const usedDimensions = dimensions ?? defaultDimensions;\n const separator = this.vector?.indexSeparator ?? '_';\n const indexName = isDefault\n ? `memory${separator}messages`\n : `memory${separator}messages${separator}${usedDimensions}`;\n\n if (typeof this.vector === `undefined`) {\n throw new Error(`Tried to create embedding index but no vector db is attached to this Memory instance.`);\n }\n\n // Get index configuration from memory config\n const semanticConfig = typeof config?.semanticRecall === 'object' ? config.semanticRecall : undefined;\n const indexConfig = semanticConfig?.indexConfig;\n\n // Base parameters that all vector stores support\n const createParams: any = {\n indexName,\n dimension: usedDimensions,\n ...(indexConfig?.metric && { metric: indexConfig.metric }),\n };\n\n // Add PG-specific configuration if provided\n // Only PG vector store will use these parameters\n if (indexConfig && (indexConfig.type || indexConfig.ivf || indexConfig.hnsw)) {\n createParams.indexConfig = {};\n if (indexConfig.type) createParams.indexConfig.type = indexConfig.type;\n if (indexConfig.ivf) createParams.indexConfig.ivf = indexConfig.ivf;\n if (indexConfig.hnsw) createParams.indexConfig.hnsw = indexConfig.hnsw;\n }\n\n await this.vector.createIndex(createParams);\n return { indexName };\n }\n\n public getMergedThreadConfig(config?: MemoryConfig): MemoryConfig {\n if (config?.workingMemory && 'use' in config.workingMemory) {\n throw new Error('The workingMemory.use option has been removed. Working memory always uses tool-call mode.');\n }\n const mergedConfig = deepMerge(this.threadConfig, config || {});\n\n if (config?.workingMemory?.schema) {\n if (mergedConfig.workingMemory) {\n mergedConfig.workingMemory.schema = config.workingMemory.schema;\n }\n }\n\n return mergedConfig;\n }\n\n /**\n * Apply all configured message processors to a list of messages.\n * @param messages The messages to process\n * @returns The processed messages\n */\n protected async applyProcessors(\n messages: CoreMessage[],\n opts: {\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts,\n ): Promise<CoreMessage[]> {\n const processors = opts.processors || this.processors;\n if (!processors || processors.length === 0) {\n return messages;\n }\n\n let processedMessages = [...messages];\n\n for (const processor of processors) {\n processedMessages = await processor.process(processedMessages, {\n systemMessage: opts.systemMessage,\n newMessages: opts.newMessages,\n memorySystemMessage: opts.memorySystemMessage,\n });\n }\n\n return processedMessages;\n }\n\n processMessages({\n messages,\n processors,\n ...opts\n }: {\n messages: CoreMessage[];\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts) {\n return this.applyProcessors(messages, { processors: processors || this.processors, ...opts });\n }\n\n abstract rememberMessages({\n threadId,\n resourceId,\n vectorMessageSearch,\n config,\n }: {\n threadId: string;\n resourceId?: string;\n vectorMessageSearch?: string;\n config?: MemoryConfig;\n }): Promise<{ messages: MastraMessageV1[]; messagesV2: MastraMessageV2[] }>;\n\n estimateTokens(text: string): number {\n return Math.ceil(text.split(' ').length * 1.3);\n }\n\n /**\n * Retrieves a specific thread by its ID\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to the thread or null if not found\n */\n abstract getThreadById({ threadId }: { threadId: string }): Promise<StorageThreadType | null>;\n\n /**\n * Retrieves all threads that belong to the specified resource.\n * @param resourceId - The unique identifier of the resource\n * @param orderBy - Which timestamp field to sort by (`'createdAt'` or `'updatedAt'`);\n * defaults to `'createdAt'`\n * @param sortDirection - Sort order for the results (`'ASC'` or `'DESC'`);\n * defaults to `'DESC'`\n * @returns Promise resolving to an array of matching threads; resolves to an empty array\n * if the resource has no threads\n */\n abstract getThreadsByResourceId({\n resourceId,\n orderBy,\n sortDirection,\n }: { resourceId: string } & ThreadSortOptions): Promise<StorageThreadType[]>;\n\n abstract getThreadsByResourceIdPaginated(\n args: {\n resourceId: string;\n page: number;\n perPage: number;\n } & ThreadSortOptions,\n ): Promise<PaginationInfo & { threads: StorageThreadType[] }>;\n\n /**\n * Saves or updates a thread\n * @param thread - The thread data to save\n * @returns Promise resolving to the saved thread\n */\n abstract saveThread({\n thread,\n memoryConfig,\n }: {\n thread: StorageThreadType;\n memoryConfig?: MemoryConfig;\n }): Promise<StorageThreadType>;\n\n /**\n * Saves messages to a thread\n * @param messages - Array of messages to save\n * @returns Promise resolving to the saved messages\n */\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1';\n }): Promise<MastraMessageV1[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format: 'v2';\n }): Promise<MastraMessageV2[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1' | 'v2';\n }): Promise<MastraMessageV2[] | MastraMessageV1[]>;\n\n /**\n * Retrieves all messages for a specific thread\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to array of messages, uiMessages, and messagesV2\n */\n abstract query({ threadId, resourceId, selectBy }: StorageGetMessagesArg): Promise<{\n messages: CoreMessage[];\n uiMessages: UIMessageWithMetadata[];\n messagesV2: MastraMessageV2[];\n }>;\n\n /**\n * Helper method to create a new thread\n * @param title - Optional title for the thread\n * @param metadata - Optional metadata for the thread\n * @returns Promise resolving to the created thread\n */\n async createThread({\n threadId,\n resourceId,\n title,\n metadata,\n memoryConfig,\n saveThread = true,\n }: {\n resourceId: string;\n threadId?: string;\n title?: string;\n metadata?: Record<string, unknown>;\n memoryConfig?: MemoryConfig;\n saveThread?: boolean;\n }): Promise<StorageThreadType> {\n const thread: StorageThreadType = {\n id: threadId || this.generateId(),\n title: title || `New Thread ${new Date().toISOString()}`,\n resourceId,\n createdAt: new Date(),\n updatedAt: new Date(),\n metadata,\n };\n\n return saveThread ? this.saveThread({ thread, memoryConfig }) : thread;\n }\n\n /**\n * Helper method to delete a thread\n * @param threadId - the id of the thread to delete\n */\n abstract deleteThread(threadId: string): Promise<void>;\n\n /**\n * Helper method to add a single message to a thread\n * @param threadId - The thread to add the message to\n * @param content - The message content\n * @param role - The role of the message sender\n * @param type - The type of the message\n * @param toolNames - Optional array of tool names that were called\n * @param toolCallArgs - Optional array of tool call arguments\n * @param toolCallIds - Optional array of tool call ids\n * @returns Promise resolving to the saved message\n * @deprecated use saveMessages instead\n */\n async addMessage({\n threadId,\n resourceId,\n config,\n content,\n role,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n }: {\n threadId: string;\n resourceId: string;\n config?: MemoryConfig;\n content: UserContent | AssistantContent;\n role: 'user' | 'assistant';\n type: 'text' | 'tool-call' | 'tool-result';\n toolNames?: string[];\n toolCallArgs?: Record<string, unknown>[];\n toolCallIds?: string[];\n }): Promise<MastraMessageV1> {\n const message: MastraMessageV1 = {\n id: this.generateId(),\n content,\n role,\n createdAt: new Date(),\n threadId,\n resourceId,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n };\n\n const savedMessages = await this.saveMessages({ messages: [message], memoryConfig: config });\n const list = new MessageList({ threadId, resourceId }).add(savedMessages[0]!, 'memory');\n return list.get.all.v1()[0]!;\n }\n\n /**\n * Generates a unique identifier\n * @returns A unique string ID\n */\n public generateId(): string {\n return this.#mastra?.generateId() || crypto.randomUUID();\n }\n\n /**\n * Retrieves working memory for a specific thread\n * @param threadId - The unique identifier of the thread\n * @param resourceId - The unique identifier of the resource\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory data or null if not found\n */\n abstract getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null>;\n\n /**\n * Retrieves working memory template for a specific thread\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory template or null if not found\n */\n abstract getWorkingMemoryTemplate({\n memoryConfig,\n }?: {\n memoryConfig?: MemoryConfig;\n }): Promise<WorkingMemoryTemplate | null>;\n\n abstract updateWorkingMemory({\n threadId,\n resourceId,\n workingMemory,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n memoryConfig?: MemoryConfig;\n }): Promise<void>;\n\n /**\n * @warning experimental! can be removed or changed at any time\n */\n abstract __experimental_updateWorkingMemoryVNext({\n threadId,\n resourceId,\n workingMemory,\n searchString,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n searchString?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<{ success: boolean; reason: string }>;\n\n /**\n * Deletes multiple messages by their IDs\n * @param messageIds - Array of message IDs to delete\n * @returns Promise that resolves when all messages are deleted\n */\n abstract deleteMessages(messageIds: string[]): Promise<void>;\n}\n"]}
1
+ {"version":3,"sources":["../src/memory/memory.ts"],"names":["MastraBase","augmentWithInit","ModelRouterEmbeddingModel","deepMerge","MessageList"],"mappings":"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","file":"chunk-QETEFQ7T.cjs","sourcesContent":["import type { EmbeddingModelV2 } from '@ai-sdk/provider-v5';\nimport type { AssistantContent, UserContent, CoreMessage, EmbeddingModel } from 'ai';\nimport { MessageList } from '../agent/message-list';\nimport type { MastraMessageV2, UIMessageWithMetadata } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport { ModelRouterEmbeddingModel } from '../llm/model/index.js';\nimport type { Mastra } from '../mastra';\nimport type { MastraStorage, PaginationInfo, StorageGetMessagesArg, ThreadSortOptions } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport type { ToolAction } from '../tools';\nimport { deepMerge } from '../utils';\nimport type { MastraVector } from '../vector';\n\nimport type {\n SharedMemoryConfig,\n StorageThreadType,\n MemoryConfig,\n MastraMessageV1,\n WorkingMemoryTemplate,\n} from './types';\n\nexport type MemoryProcessorOpts = {\n systemMessage?: string;\n memorySystemMessage?: string;\n newMessages?: CoreMessage[];\n};\n/**\n * Interface for message processors that can filter or transform messages\n * before they're sent to the LLM.\n */\nexport abstract class MemoryProcessor extends MastraBase {\n /**\n * Process a list of messages and return a filtered or transformed list.\n * @param messages The messages to process\n * @returns The processed messages\n */\n process(messages: CoreMessage[], _opts: MemoryProcessorOpts): CoreMessage[] | Promise<CoreMessage[]> {\n return messages;\n }\n}\n\nexport const memoryDefaultOptions = {\n lastMessages: 10,\n semanticRecall: false,\n threads: {\n generateTitle: true,\n },\n workingMemory: {\n enabled: false,\n template: `\n# User Information\n- **First Name**: \n- **Last Name**: \n- **Location**: \n- **Occupation**: \n- **Interests**: \n- **Goals**: \n- **Events**: \n- **Facts**: \n- **Projects**: \n`,\n },\n} satisfies MemoryConfig;\n\n/**\n * Abstract base class for implementing conversation memory systems.\n *\n * Key features:\n * - Thread-based conversation organization with resource association\n * - Optional vector database integration for semantic similarity search\n * - Working memory templates for structured conversation state\n * - Handles memory processors to manipulate messages before they are sent to the LLM\n */\nexport abstract class MastraMemory extends MastraBase {\n MAX_CONTEXT_TOKENS?: number;\n\n protected _storage?: MastraStorage;\n vector?: MastraVector;\n embedder?: EmbeddingModel<string> | EmbeddingModelV2<string>;\n private processors: MemoryProcessor[] = [];\n protected threadConfig: MemoryConfig = { ...memoryDefaultOptions };\n #mastra?: Mastra;\n\n constructor(config: { name: string } & SharedMemoryConfig) {\n super({ component: 'MEMORY', name: config.name });\n\n if (config.options) this.threadConfig = this.getMergedThreadConfig(config.options);\n if (config.processors) this.processors = config.processors;\n if (config.storage) {\n this._storage = augmentWithInit(config.storage);\n this._hasOwnStorage = true;\n }\n\n if (this.threadConfig.semanticRecall) {\n if (!config.vector) {\n throw new Error(\n `Semantic recall requires a vector store to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n this.vector = config.vector;\n\n if (!config.embedder) {\n throw new Error(\n `Semantic recall requires an embedder to be configured.\\n\\nhttps://mastra.ai/en/docs/memory/semantic-recall`,\n );\n }\n\n // Convert string embedder to ModelRouterEmbeddingModel\n if (typeof config.embedder === 'string') {\n this.embedder = new ModelRouterEmbeddingModel(config.embedder);\n } else {\n this.embedder = config.embedder;\n }\n }\n }\n\n /**\n * Internal method used by Mastra to register itself with the memory.\n * @param mastra The Mastra instance.\n * @internal\n */\n __registerMastra(mastra: Mastra): void {\n this.#mastra = mastra;\n }\n\n protected _hasOwnStorage = false;\n get hasOwnStorage() {\n return this._hasOwnStorage;\n }\n\n get storage() {\n if (!this._storage) {\n throw new Error(\n `Memory requires a storage provider to function. Add a storage configuration to Memory or to your Mastra instance.\\n\\nhttps://mastra.ai/en/docs/memory/overview`,\n );\n }\n return this._storage;\n }\n\n public setStorage(storage: MastraStorage) {\n this._storage = augmentWithInit(storage);\n }\n\n public setVector(vector: MastraVector) {\n this.vector = vector;\n }\n\n public setEmbedder(embedder: EmbeddingModel<string>) {\n this.embedder = embedder;\n }\n\n /**\n * Get a system message to inject into the conversation.\n * This will be called before each conversation turn.\n * Implementations can override this to inject custom system messages.\n */\n public async getSystemMessage(_input: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null> {\n return null;\n }\n\n /**\n * Get tools that should be available to the agent.\n * This will be called when converting tools for the agent.\n * Implementations can override this to provide additional tools.\n */\n public getTools(_config?: MemoryConfig): Record<string, ToolAction<any, any, any>> {\n return {};\n }\n\n protected async createEmbeddingIndex(dimensions?: number, config?: MemoryConfig): Promise<{ indexName: string }> {\n const defaultDimensions = 1536;\n const isDefault = dimensions === defaultDimensions;\n const usedDimensions = dimensions ?? defaultDimensions;\n const separator = this.vector?.indexSeparator ?? '_';\n const indexName = isDefault\n ? `memory${separator}messages`\n : `memory${separator}messages${separator}${usedDimensions}`;\n\n if (typeof this.vector === `undefined`) {\n throw new Error(`Tried to create embedding index but no vector db is attached to this Memory instance.`);\n }\n\n // Get index configuration from memory config\n const semanticConfig = typeof config?.semanticRecall === 'object' ? config.semanticRecall : undefined;\n const indexConfig = semanticConfig?.indexConfig;\n\n // Base parameters that all vector stores support\n const createParams: any = {\n indexName,\n dimension: usedDimensions,\n ...(indexConfig?.metric && { metric: indexConfig.metric }),\n };\n\n // Add PG-specific configuration if provided\n // Only PG vector store will use these parameters\n if (indexConfig && (indexConfig.type || indexConfig.ivf || indexConfig.hnsw)) {\n createParams.indexConfig = {};\n if (indexConfig.type) createParams.indexConfig.type = indexConfig.type;\n if (indexConfig.ivf) createParams.indexConfig.ivf = indexConfig.ivf;\n if (indexConfig.hnsw) createParams.indexConfig.hnsw = indexConfig.hnsw;\n }\n\n await this.vector.createIndex(createParams);\n return { indexName };\n }\n\n public getMergedThreadConfig(config?: MemoryConfig): MemoryConfig {\n if (config?.workingMemory && 'use' in config.workingMemory) {\n throw new Error('The workingMemory.use option has been removed. Working memory always uses tool-call mode.');\n }\n const mergedConfig = deepMerge(this.threadConfig, config || {});\n\n if (config?.workingMemory?.schema) {\n if (mergedConfig.workingMemory) {\n mergedConfig.workingMemory.schema = config.workingMemory.schema;\n }\n }\n\n return mergedConfig;\n }\n\n /**\n * Apply all configured message processors to a list of messages.\n * @param messages The messages to process\n * @returns The processed messages\n */\n protected async applyProcessors(\n messages: CoreMessage[],\n opts: {\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts,\n ): Promise<CoreMessage[]> {\n const processors = opts.processors || this.processors;\n if (!processors || processors.length === 0) {\n return messages;\n }\n\n let processedMessages = [...messages];\n\n for (const processor of processors) {\n processedMessages = await processor.process(processedMessages, {\n systemMessage: opts.systemMessage,\n newMessages: opts.newMessages,\n memorySystemMessage: opts.memorySystemMessage,\n });\n }\n\n return processedMessages;\n }\n\n processMessages({\n messages,\n processors,\n ...opts\n }: {\n messages: CoreMessage[];\n processors?: MemoryProcessor[];\n } & MemoryProcessorOpts) {\n return this.applyProcessors(messages, { processors: processors || this.processors, ...opts });\n }\n\n abstract rememberMessages({\n threadId,\n resourceId,\n vectorMessageSearch,\n config,\n }: {\n threadId: string;\n resourceId?: string;\n vectorMessageSearch?: string;\n config?: MemoryConfig;\n }): Promise<{ messages: MastraMessageV1[]; messagesV2: MastraMessageV2[] }>;\n\n estimateTokens(text: string): number {\n return Math.ceil(text.split(' ').length * 1.3);\n }\n\n /**\n * Retrieves a specific thread by its ID\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to the thread or null if not found\n */\n abstract getThreadById({ threadId }: { threadId: string }): Promise<StorageThreadType | null>;\n\n /**\n * Retrieves all threads that belong to the specified resource.\n * @param resourceId - The unique identifier of the resource\n * @param orderBy - Which timestamp field to sort by (`'createdAt'` or `'updatedAt'`);\n * defaults to `'createdAt'`\n * @param sortDirection - Sort order for the results (`'ASC'` or `'DESC'`);\n * defaults to `'DESC'`\n * @returns Promise resolving to an array of matching threads; resolves to an empty array\n * if the resource has no threads\n */\n abstract getThreadsByResourceId({\n resourceId,\n orderBy,\n sortDirection,\n }: { resourceId: string } & ThreadSortOptions): Promise<StorageThreadType[]>;\n\n abstract getThreadsByResourceIdPaginated(\n args: {\n resourceId: string;\n page: number;\n perPage: number;\n } & ThreadSortOptions,\n ): Promise<PaginationInfo & { threads: StorageThreadType[] }>;\n\n /**\n * Saves or updates a thread\n * @param thread - The thread data to save\n * @returns Promise resolving to the saved thread\n */\n abstract saveThread({\n thread,\n memoryConfig,\n }: {\n thread: StorageThreadType;\n memoryConfig?: MemoryConfig;\n }): Promise<StorageThreadType>;\n\n /**\n * Saves messages to a thread\n * @param messages - Array of messages to save\n * @returns Promise resolving to the saved messages\n */\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1';\n }): Promise<MastraMessageV1[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format: 'v2';\n }): Promise<MastraMessageV2[]>;\n abstract saveMessages(args: {\n messages: (MastraMessageV1 | MastraMessageV2)[] | MastraMessageV1[] | MastraMessageV2[];\n memoryConfig?: MemoryConfig | undefined;\n format?: 'v1' | 'v2';\n }): Promise<MastraMessageV2[] | MastraMessageV1[]>;\n\n /**\n * Retrieves all messages for a specific thread\n * @param threadId - The unique identifier of the thread\n * @returns Promise resolving to array of messages, uiMessages, and messagesV2\n */\n abstract query({ threadId, resourceId, selectBy }: StorageGetMessagesArg): Promise<{\n messages: CoreMessage[];\n uiMessages: UIMessageWithMetadata[];\n messagesV2: MastraMessageV2[];\n }>;\n\n /**\n * Helper method to create a new thread\n * @param title - Optional title for the thread\n * @param metadata - Optional metadata for the thread\n * @returns Promise resolving to the created thread\n */\n async createThread({\n threadId,\n resourceId,\n title,\n metadata,\n memoryConfig,\n saveThread = true,\n }: {\n resourceId: string;\n threadId?: string;\n title?: string;\n metadata?: Record<string, unknown>;\n memoryConfig?: MemoryConfig;\n saveThread?: boolean;\n }): Promise<StorageThreadType> {\n const thread: StorageThreadType = {\n id: threadId || this.generateId(),\n title: title || `New Thread ${new Date().toISOString()}`,\n resourceId,\n createdAt: new Date(),\n updatedAt: new Date(),\n metadata,\n };\n\n return saveThread ? this.saveThread({ thread, memoryConfig }) : thread;\n }\n\n /**\n * Helper method to delete a thread\n * @param threadId - the id of the thread to delete\n */\n abstract deleteThread(threadId: string): Promise<void>;\n\n /**\n * Helper method to add a single message to a thread\n * @param threadId - The thread to add the message to\n * @param content - The message content\n * @param role - The role of the message sender\n * @param type - The type of the message\n * @param toolNames - Optional array of tool names that were called\n * @param toolCallArgs - Optional array of tool call arguments\n * @param toolCallIds - Optional array of tool call ids\n * @returns Promise resolving to the saved message\n * @deprecated use saveMessages instead\n */\n async addMessage({\n threadId,\n resourceId,\n config,\n content,\n role,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n }: {\n threadId: string;\n resourceId: string;\n config?: MemoryConfig;\n content: UserContent | AssistantContent;\n role: 'user' | 'assistant';\n type: 'text' | 'tool-call' | 'tool-result';\n toolNames?: string[];\n toolCallArgs?: Record<string, unknown>[];\n toolCallIds?: string[];\n }): Promise<MastraMessageV1> {\n const message: MastraMessageV1 = {\n id: this.generateId(),\n content,\n role,\n createdAt: new Date(),\n threadId,\n resourceId,\n type,\n toolNames,\n toolCallArgs,\n toolCallIds,\n };\n\n const savedMessages = await this.saveMessages({ messages: [message], memoryConfig: config });\n const list = new MessageList({ threadId, resourceId }).add(savedMessages[0]!, 'memory');\n return list.get.all.v1()[0]!;\n }\n\n /**\n * Generates a unique identifier\n * @returns A unique string ID\n */\n public generateId(): string {\n return this.#mastra?.generateId() || crypto.randomUUID();\n }\n\n /**\n * Retrieves working memory for a specific thread\n * @param threadId - The unique identifier of the thread\n * @param resourceId - The unique identifier of the resource\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory data or null if not found\n */\n abstract getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<string | null>;\n\n /**\n * Retrieves working memory template for a specific thread\n * @param memoryConfig - Optional memory configuration\n * @returns Promise resolving to working memory template or null if not found\n */\n abstract getWorkingMemoryTemplate({\n memoryConfig,\n }?: {\n memoryConfig?: MemoryConfig;\n }): Promise<WorkingMemoryTemplate | null>;\n\n abstract updateWorkingMemory({\n threadId,\n resourceId,\n workingMemory,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n memoryConfig?: MemoryConfig;\n }): Promise<void>;\n\n /**\n * @warning experimental! can be removed or changed at any time\n */\n abstract __experimental_updateWorkingMemoryVNext({\n threadId,\n resourceId,\n workingMemory,\n searchString,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n searchString?: string;\n memoryConfig?: MemoryConfig;\n }): Promise<{ success: boolean; reason: string }>;\n\n /**\n * Deletes multiple messages by their IDs\n * @param messageIds - Array of message IDs to delete\n * @returns Promise that resolves when all messages are deleted\n */\n abstract deleteMessages(messageIds: string[]): Promise<void>;\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkLQJJBWFH_cjs = require('./chunk-LQJJBWFH.cjs');
4
- var chunkX7F4CSGR_cjs = require('./chunk-X7F4CSGR.cjs');
5
- var chunkVF676YCO_cjs = require('./chunk-VF676YCO.cjs');
3
+ var chunk3L3ISSMS_cjs = require('./chunk-3L3ISSMS.cjs');
6
4
  var chunkGPWMM745_cjs = require('./chunk-GPWMM745.cjs');
7
5
  var chunk5NTO7S5I_cjs = require('./chunk-5NTO7S5I.cjs');
6
+ var chunkX7F4CSGR_cjs = require('./chunk-X7F4CSGR.cjs');
7
+ var chunkVF676YCO_cjs = require('./chunk-VF676YCO.cjs');
8
8
  var chunk6VOPKVYH_cjs = require('./chunk-6VOPKVYH.cjs');
9
9
  var chunkA5KDVZDL_cjs = require('./chunk-A5KDVZDL.cjs');
10
10
  var crypto$1 = require('crypto');
@@ -109,8 +109,8 @@ var BaseAISpan = class {
109
109
  constructor(options, aiTracing) {
110
110
  this.name = options.name;
111
111
  this.type = options.type;
112
- this.attributes = chunkLQJJBWFH_cjs.deepClean(options.attributes) || {};
113
- this.metadata = chunkLQJJBWFH_cjs.deepClean(options.metadata);
112
+ this.attributes = chunk3L3ISSMS_cjs.deepClean(options.attributes) || {};
113
+ this.metadata = chunk3L3ISSMS_cjs.deepClean(options.metadata);
114
114
  this.parent = options.parent;
115
115
  this.startTime = /* @__PURE__ */ new Date();
116
116
  this.aiTracing = aiTracing;
@@ -118,9 +118,9 @@ var BaseAISpan = class {
118
118
  this.isInternal = isSpanInternal(this.type, options.tracingPolicy?.internal);
119
119
  this.traceState = options.traceState;
120
120
  if (this.isEvent) {
121
- this.output = chunkLQJJBWFH_cjs.deepClean(options.output);
121
+ this.output = chunk3L3ISSMS_cjs.deepClean(options.output);
122
122
  } else {
123
- this.input = chunkLQJJBWFH_cjs.deepClean(options.input);
123
+ this.input = chunk3L3ISSMS_cjs.deepClean(options.input);
124
124
  }
125
125
  }
126
126
  createChildSpan(options) {
@@ -211,13 +211,13 @@ var DefaultAISpan = class extends BaseAISpan {
211
211
  }
212
212
  this.endTime = /* @__PURE__ */ new Date();
213
213
  if (options?.output !== void 0) {
214
- this.output = chunkLQJJBWFH_cjs.deepClean(options.output);
214
+ this.output = chunk3L3ISSMS_cjs.deepClean(options.output);
215
215
  }
216
216
  if (options?.attributes) {
217
- this.attributes = { ...this.attributes, ...chunkLQJJBWFH_cjs.deepClean(options.attributes) };
217
+ this.attributes = { ...this.attributes, ...chunk3L3ISSMS_cjs.deepClean(options.attributes) };
218
218
  }
219
219
  if (options?.metadata) {
220
- this.metadata = { ...this.metadata, ...chunkLQJJBWFH_cjs.deepClean(options.metadata) };
220
+ this.metadata = { ...this.metadata, ...chunk3L3ISSMS_cjs.deepClean(options.metadata) };
221
221
  }
222
222
  }
223
223
  error(options) {
@@ -235,10 +235,10 @@ var DefaultAISpan = class extends BaseAISpan {
235
235
  message: error.message
236
236
  };
237
237
  if (attributes) {
238
- this.attributes = { ...this.attributes, ...chunkLQJJBWFH_cjs.deepClean(attributes) };
238
+ this.attributes = { ...this.attributes, ...chunk3L3ISSMS_cjs.deepClean(attributes) };
239
239
  }
240
240
  if (metadata) {
241
- this.metadata = { ...this.metadata, ...chunkLQJJBWFH_cjs.deepClean(metadata) };
241
+ this.metadata = { ...this.metadata, ...chunk3L3ISSMS_cjs.deepClean(metadata) };
242
242
  }
243
243
  if (endSpan) {
244
244
  this.end();
@@ -251,16 +251,16 @@ var DefaultAISpan = class extends BaseAISpan {
251
251
  return;
252
252
  }
253
253
  if (options.input !== void 0) {
254
- this.input = chunkLQJJBWFH_cjs.deepClean(options.input);
254
+ this.input = chunk3L3ISSMS_cjs.deepClean(options.input);
255
255
  }
256
256
  if (options.output !== void 0) {
257
- this.output = chunkLQJJBWFH_cjs.deepClean(options.output);
257
+ this.output = chunk3L3ISSMS_cjs.deepClean(options.output);
258
258
  }
259
259
  if (options.attributes) {
260
- this.attributes = { ...this.attributes, ...chunkLQJJBWFH_cjs.deepClean(options.attributes) };
260
+ this.attributes = { ...this.attributes, ...chunk3L3ISSMS_cjs.deepClean(options.attributes) };
261
261
  }
262
262
  if (options.metadata) {
263
- this.metadata = { ...this.metadata, ...chunkLQJJBWFH_cjs.deepClean(options.metadata) };
263
+ this.metadata = { ...this.metadata, ...chunk3L3ISSMS_cjs.deepClean(options.metadata) };
264
264
  }
265
265
  }
266
266
  get isValid() {
@@ -2931,5 +2931,5 @@ exports.setupAITracing = setupAITracing;
2931
2931
  exports.shutdownAITracingRegistry = shutdownAITracingRegistry;
2932
2932
  exports.unregisterAITracing = unregisterAITracing;
2933
2933
  exports.wrapMastra = wrapMastra;
2934
- //# sourceMappingURL=chunk-KPKDAZ5I.cjs.map
2935
- //# sourceMappingURL=chunk-KPKDAZ5I.cjs.map
2934
+ //# sourceMappingURL=chunk-QGJF6TRY.cjs.map
2935
+ //# sourceMappingURL=chunk-QGJF6TRY.cjs.map