@mastra/core 0.24.8 → 0.24.9-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 (121) hide show
  1. package/CHANGELOG.md +6 -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 +56 -39
  7. package/dist/ai-tracing/index.d.ts +1 -0
  8. package/dist/ai-tracing/index.d.ts.map +1 -1
  9. package/dist/ai-tracing/index.js +2 -1
  10. package/dist/ai-tracing/serialization.d.ts +60 -0
  11. package/dist/ai-tracing/serialization.d.ts.map +1 -0
  12. package/dist/ai-tracing/spans/base.d.ts +0 -17
  13. package/dist/ai-tracing/spans/base.d.ts.map +1 -1
  14. package/dist/ai-tracing/spans/default.d.ts.map +1 -1
  15. package/dist/{chunk-FQTJPLCW.cjs → chunk-2L6LTY2M.cjs} +15 -15
  16. package/dist/{chunk-FQTJPLCW.cjs.map → chunk-2L6LTY2M.cjs.map} +1 -1
  17. package/dist/{chunk-V2IMZSNO.js → chunk-3N7RP3UB.js} +3 -3
  18. package/dist/{chunk-V2IMZSNO.js.map → chunk-3N7RP3UB.js.map} +1 -1
  19. package/dist/{chunk-RP4YCZP7.js → chunk-6KCZMULD.js} +3 -3
  20. package/dist/{chunk-RP4YCZP7.js.map → chunk-6KCZMULD.js.map} +1 -1
  21. package/dist/{chunk-E5NCEJEJ.js → chunk-6ZBXSCZR.js} +3 -3
  22. package/dist/{chunk-E5NCEJEJ.js.map → chunk-6ZBXSCZR.js.map} +1 -1
  23. package/dist/{chunk-N6P5GJRO.js → chunk-7XP3ZCBG.js} +7 -7
  24. package/dist/{chunk-N6P5GJRO.js.map → chunk-7XP3ZCBG.js.map} +1 -1
  25. package/dist/{chunk-2BY7C6Y7.js → chunk-AOUR7HV5.js} +4 -4
  26. package/dist/{chunk-2BY7C6Y7.js.map → chunk-AOUR7HV5.js.map} +1 -1
  27. package/dist/{chunk-CNIM7N4E.cjs → chunk-DM46TJNZ.cjs} +17 -17
  28. package/dist/{chunk-CNIM7N4E.cjs.map → chunk-DM46TJNZ.cjs.map} +1 -1
  29. package/dist/{chunk-YYKN3NDZ.cjs → chunk-DQNIWOM3.cjs} +54 -54
  30. package/dist/{chunk-YYKN3NDZ.cjs.map → chunk-DQNIWOM3.cjs.map} +1 -1
  31. package/dist/{chunk-X5JTTWMF.cjs → chunk-FTV3ZCSR.cjs} +9 -9
  32. package/dist/{chunk-X5JTTWMF.cjs.map → chunk-FTV3ZCSR.cjs.map} +1 -1
  33. package/dist/{chunk-6VB52TJV.js → chunk-GLA7XHTK.js} +3 -3
  34. package/dist/{chunk-6VB52TJV.js.map → chunk-GLA7XHTK.js.map} +1 -1
  35. package/dist/{chunk-PPAIPZ6C.js → chunk-GWZTWJLK.js} +6 -45
  36. package/dist/chunk-GWZTWJLK.js.map +1 -0
  37. package/dist/{chunk-YPYLWTZI.cjs → chunk-KPKDAZ5I.cjs} +18 -58
  38. package/dist/chunk-KPKDAZ5I.cjs.map +1 -0
  39. package/dist/chunk-LQJJBWFH.cjs +130 -0
  40. package/dist/chunk-LQJJBWFH.cjs.map +1 -0
  41. package/dist/{chunk-4YYPQOP7.cjs → chunk-MIRRWDFC.cjs} +4 -4
  42. package/dist/{chunk-4YYPQOP7.cjs.map → chunk-MIRRWDFC.cjs.map} +1 -1
  43. package/dist/{chunk-2YE6RNCZ.cjs → chunk-P67ES4L4.cjs} +4 -4
  44. package/dist/{chunk-2YE6RNCZ.cjs.map → chunk-P67ES4L4.cjs.map} +1 -1
  45. package/dist/{chunk-RLYWCJQ6.js → chunk-PTN7GTBG.js} +3 -3
  46. package/dist/{chunk-RLYWCJQ6.js.map → chunk-PTN7GTBG.js.map} +1 -1
  47. package/dist/{chunk-2YN6HGEH.js → chunk-PVUCLWGL.js} +3 -3
  48. package/dist/{chunk-2YN6HGEH.js.map → chunk-PVUCLWGL.js.map} +1 -1
  49. package/dist/{chunk-DSUKMFZY.js → chunk-QCZOYIZC.js} +92 -111
  50. package/dist/chunk-QCZOYIZC.js.map +1 -0
  51. package/dist/{chunk-DISETAP2.cjs → chunk-RLAYS3PT.cjs} +4 -4
  52. package/dist/{chunk-DISETAP2.cjs.map → chunk-RLAYS3PT.cjs.map} +1 -1
  53. package/dist/{chunk-Z6ZIJYKK.js → chunk-RR7QPRXN.js} +4 -4
  54. package/dist/{chunk-Z6ZIJYKK.js.map → chunk-RR7QPRXN.js.map} +1 -1
  55. package/dist/{chunk-RQPGIUUA.cjs → chunk-SJQ6OUHB.cjs} +6 -6
  56. package/dist/{chunk-RQPGIUUA.cjs.map → chunk-SJQ6OUHB.cjs.map} +1 -1
  57. package/dist/{chunk-3IDFSGG3.cjs → chunk-SQ4FHFMU.cjs} +4 -4
  58. package/dist/{chunk-3IDFSGG3.cjs.map → chunk-SQ4FHFMU.cjs.map} +1 -1
  59. package/dist/chunk-UG3C67I3.js +124 -0
  60. package/dist/chunk-UG3C67I3.js.map +1 -0
  61. package/dist/{chunk-5PSD3IKG.cjs → chunk-UK4QLV4O.cjs} +92 -111
  62. package/dist/chunk-UK4QLV4O.cjs.map +1 -0
  63. package/dist/{chunk-ICICKWAG.cjs → chunk-WHW7ZQCM.cjs} +6 -6
  64. package/dist/{chunk-ICICKWAG.cjs.map → chunk-WHW7ZQCM.cjs.map} +1 -1
  65. package/dist/{chunk-GIK7MM2K.js → chunk-YWK4OFUM.js} +3 -3
  66. package/dist/{chunk-GIK7MM2K.js.map → chunk-YWK4OFUM.js.map} +1 -1
  67. package/dist/{chunk-Y2BH2LUD.js → chunk-Z3PIE2HC.js} +10 -10
  68. package/dist/{chunk-Y2BH2LUD.js.map → chunk-Z3PIE2HC.js.map} +1 -1
  69. package/dist/{chunk-RWPKCFZT.cjs → chunk-ZXVDL4TQ.cjs} +4 -4
  70. package/dist/{chunk-RWPKCFZT.cjs.map → chunk-ZXVDL4TQ.cjs.map} +1 -1
  71. package/dist/index.cjs +73 -73
  72. package/dist/index.js +11 -11
  73. package/dist/loop/index.cjs +2 -2
  74. package/dist/loop/index.js +1 -1
  75. package/dist/loop/workflows/agentic-execution/index.d.ts +24 -24
  76. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +16 -16
  77. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +8 -8
  78. package/dist/loop/workflows/agentic-loop/index.d.ts +24 -24
  79. package/dist/loop/workflows/schema.d.ts +8 -8
  80. package/dist/mastra/index.cjs +2 -2
  81. package/dist/mastra/index.js +1 -1
  82. package/dist/memory/index.cjs +4 -4
  83. package/dist/memory/index.js +1 -1
  84. package/dist/processors/index.cjs +11 -11
  85. package/dist/processors/index.js +1 -1
  86. package/dist/relevance/index.cjs +4 -4
  87. package/dist/relevance/index.js +1 -1
  88. package/dist/scores/index.cjs +9 -9
  89. package/dist/scores/index.js +2 -2
  90. package/dist/scores/scoreTraces/index.cjs +8 -8
  91. package/dist/scores/scoreTraces/index.js +3 -3
  92. package/dist/server/index.cjs +2 -2
  93. package/dist/server/index.js +1 -1
  94. package/dist/storage/index.cjs +3 -3
  95. package/dist/storage/index.js +1 -1
  96. package/dist/stream/index.cjs +11 -11
  97. package/dist/stream/index.js +2 -2
  98. package/dist/telemetry/index.cjs +7 -7
  99. package/dist/telemetry/index.js +1 -1
  100. package/dist/telemetry/telemetry.d.ts.map +1 -1
  101. package/dist/telemetry/telemetry.decorators.d.ts.map +1 -1
  102. package/dist/test-utils/llm-mock.cjs +2 -2
  103. package/dist/test-utils/llm-mock.js +1 -1
  104. package/dist/tts/index.cjs +2 -2
  105. package/dist/tts/index.js +1 -1
  106. package/dist/utils.cjs +22 -22
  107. package/dist/utils.js +1 -1
  108. package/dist/voice/index.cjs +6 -6
  109. package/dist/voice/index.js +1 -1
  110. package/dist/workflows/evented/index.cjs +10 -10
  111. package/dist/workflows/evented/index.js +1 -1
  112. package/dist/workflows/index.cjs +17 -17
  113. package/dist/workflows/index.js +1 -1
  114. package/dist/workflows/legacy/index.cjs +22 -22
  115. package/dist/workflows/legacy/index.js +1 -1
  116. package/dist/workflows/legacy/machine.d.ts +1 -1
  117. package/package.json +3 -3
  118. package/dist/chunk-5PSD3IKG.cjs.map +0 -1
  119. package/dist/chunk-DSUKMFZY.js.map +0 -1
  120. package/dist/chunk-PPAIPZ6C.js.map +0 -1
  121. package/dist/chunk-YPYLWTZI.cjs.map +0 -1
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ // src/ai-tracing/serialization.ts
4
+ var DEFAULT_SERIALIZATION_LIMITS = {
5
+ maxAttrChars: 1024,
6
+ maxDepth: 6,
7
+ maxKeys: 50,
8
+ maxArrayItems: 50,
9
+ maxTotalChars: 8192
10
+ };
11
+ function truncateString(s, maxChars) {
12
+ if (s.length <= maxChars) return s;
13
+ return s.slice(0, maxChars) + "\u2026[truncated]";
14
+ }
15
+ var DEFAULT_KEYS_TO_STRIP = /* @__PURE__ */ new Set([
16
+ "logger",
17
+ "experimental_providerMetadata",
18
+ "providerMetadata",
19
+ "steps",
20
+ "tracingContext"
21
+ ]);
22
+ var NO_KEYS_TO_STRIP = /* @__PURE__ */ new Set();
23
+ function deepClean(value, options = {}) {
24
+ const {
25
+ keysToStrip = DEFAULT_KEYS_TO_STRIP,
26
+ maxDepth = DEFAULT_SERIALIZATION_LIMITS.maxDepth,
27
+ maxStringLength = DEFAULT_SERIALIZATION_LIMITS.maxAttrChars,
28
+ maxArrayLength = DEFAULT_SERIALIZATION_LIMITS.maxArrayItems,
29
+ maxObjectKeys = DEFAULT_SERIALIZATION_LIMITS.maxKeys
30
+ } = options;
31
+ const seen = /* @__PURE__ */ new WeakSet();
32
+ function helper(val, depth) {
33
+ if (depth > maxDepth) {
34
+ return "[MaxDepth]";
35
+ }
36
+ if (val === null || val === void 0) {
37
+ return val;
38
+ }
39
+ if (typeof val === "string") {
40
+ if (val.length > maxStringLength) {
41
+ return val.slice(0, maxStringLength) + "\u2026[truncated]";
42
+ }
43
+ return val;
44
+ }
45
+ if (typeof val === "number" || typeof val === "boolean") {
46
+ return val;
47
+ }
48
+ if (typeof val === "bigint") {
49
+ return `${val}n`;
50
+ }
51
+ if (typeof val === "function") {
52
+ return "[Function]";
53
+ }
54
+ if (typeof val === "symbol") {
55
+ return val.description ? `[Symbol(${val.description})]` : "[Symbol]";
56
+ }
57
+ if (val instanceof Error) {
58
+ return {
59
+ name: val.name,
60
+ message: val.message ? val.message.length > maxStringLength ? val.message.slice(0, maxStringLength) + "\u2026[truncated]" : val.message : void 0
61
+ };
62
+ }
63
+ if (typeof val === "object") {
64
+ if (seen.has(val)) {
65
+ return "[Circular]";
66
+ }
67
+ seen.add(val);
68
+ }
69
+ if (Array.isArray(val)) {
70
+ const limitedArray = val.slice(0, maxArrayLength);
71
+ const cleaned2 = limitedArray.map((item) => helper(item, depth + 1));
72
+ if (val.length > maxArrayLength) {
73
+ cleaned2.push(`[\u2026${val.length - maxArrayLength} more items]`);
74
+ }
75
+ return cleaned2;
76
+ }
77
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer(val)) {
78
+ return `[Buffer length=${val.length}]`;
79
+ }
80
+ if (ArrayBuffer.isView(val)) {
81
+ const ctor = val.constructor?.name ?? "TypedArray";
82
+ const byteLength = val.byteLength ?? "?";
83
+ return `[${ctor} byteLength=${byteLength}]`;
84
+ }
85
+ if (val instanceof ArrayBuffer) {
86
+ return `[ArrayBuffer byteLength=${val.byteLength}]`;
87
+ }
88
+ const cleaned = {};
89
+ const entries = Object.entries(val);
90
+ let keyCount = 0;
91
+ for (const [key, v] of entries) {
92
+ if (keysToStrip.has(key)) {
93
+ continue;
94
+ }
95
+ if (keyCount >= maxObjectKeys) {
96
+ cleaned["__truncated"] = `${entries.length - keyCount} more keys omitted`;
97
+ break;
98
+ }
99
+ try {
100
+ cleaned[key] = helper(v, depth + 1);
101
+ keyCount++;
102
+ } catch (error) {
103
+ cleaned[key] = `[${error instanceof Error ? error.message : String(error)}]`;
104
+ keyCount++;
105
+ }
106
+ }
107
+ return cleaned;
108
+ }
109
+ return helper(value, 0);
110
+ }
111
+ function boundedStringify(value) {
112
+ const cleaned = deepClean(value, { keysToStrip: NO_KEYS_TO_STRIP });
113
+ try {
114
+ const json = JSON.stringify(cleaned);
115
+ if (json.length > DEFAULT_SERIALIZATION_LIMITS.maxTotalChars) {
116
+ return json.slice(0, DEFAULT_SERIALIZATION_LIMITS.maxTotalChars) + "\u2026[truncated]";
117
+ }
118
+ return json;
119
+ } catch {
120
+ return "[Not Serializable]";
121
+ }
122
+ }
123
+
124
+ exports.DEFAULT_KEYS_TO_STRIP = DEFAULT_KEYS_TO_STRIP;
125
+ exports.DEFAULT_SERIALIZATION_LIMITS = DEFAULT_SERIALIZATION_LIMITS;
126
+ exports.boundedStringify = boundedStringify;
127
+ exports.deepClean = deepClean;
128
+ exports.truncateString = truncateString;
129
+ //# sourceMappingURL=chunk-LQJJBWFH.cjs.map
130
+ //# sourceMappingURL=chunk-LQJJBWFH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ai-tracing/serialization.ts"],"names":["cleaned"],"mappings":"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","file":"chunk-LQJJBWFH.cjs","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 = {\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 if (val.length > maxStringLength) {\n return val.slice(0, maxStringLength) + '…[truncated]';\n }\n return val;\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 Errors specially - preserve name and message\n if (val instanceof Error) {\n return {\n name: val.name,\n message: val.message\n ? val.message.length > maxStringLength\n ? val.message.slice(0, maxStringLength) + '…[truncated]'\n : val.message\n : 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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkYPYLWTZI_cjs = require('./chunk-YPYLWTZI.cjs');
3
+ var chunkKPKDAZ5I_cjs = require('./chunk-KPKDAZ5I.cjs');
4
4
  var chunk5NTO7S5I_cjs = require('./chunk-5NTO7S5I.cjs');
5
5
  var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
6
6
  var crypto = require('crypto');
@@ -730,7 +730,7 @@ function convertToV1Messages(messages) {
730
730
  var downloadFromUrl = async ({ url, downloadRetries }) => {
731
731
  const urlText = url.toString();
732
732
  try {
733
- const response = await chunkYPYLWTZI_cjs.fetchWithRetry(
733
+ const response = await chunkKPKDAZ5I_cjs.fetchWithRetry(
734
734
  urlText,
735
735
  {
736
736
  method: "GET"
@@ -3204,5 +3204,5 @@ exports.DefaultGeneratedFile = DefaultGeneratedFile;
3204
3204
  exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
3205
3205
  exports.MessageList = MessageList;
3206
3206
  exports.convertMessages = convertMessages;
3207
- //# sourceMappingURL=chunk-4YYPQOP7.cjs.map
3208
- //# sourceMappingURL=chunk-4YYPQOP7.cjs.map
3207
+ //# sourceMappingURL=chunk-MIRRWDFC.cjs.map
3208
+ //# sourceMappingURL=chunk-MIRRWDFC.cjs.map