@mastra/server 1.82.0-alpha.2 → 1.82.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.
Files changed (158) hide show
  1. package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/@internal_ai-sdk-v5@0.0.94/dist/index.d.ts +1 -1
  2. package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/@internal_ai-v6@0.0.94/dist/index.d.ts +3 -3
  3. package/dist/{a2a-C_2w6OWn.js → a2a-CoiG3TAj.js} +3 -3
  4. package/dist/{a2a-C_2w6OWn.js.map → a2a-CoiG3TAj.js.map} +1 -1
  5. package/dist/{a2a-CNfj0wRr.cjs → a2a-DvqRdny6.cjs} +3 -3
  6. package/dist/{a2a-CNfj0wRr.cjs.map → a2a-DvqRdny6.cjs.map} +1 -1
  7. package/dist/{agent-builder-CrFZJ1mg.js → agent-builder-C_L1i2eE.js} +43 -40
  8. package/dist/agent-builder-C_L1i2eE.js.map +1 -0
  9. package/dist/{agent-builder-B7B1DSP9.cjs → agent-builder-D0Up9Fw1.cjs} +43 -40
  10. package/dist/agent-builder-D0Up9Fw1.cjs.map +1 -0
  11. package/dist/{agents-DPvMjiDf.js → agents-CgcW6lHt.js} +5 -4
  12. package/dist/agents-CgcW6lHt.js.map +1 -0
  13. package/dist/{agents-Cp4FBxQB.cjs → agents-DOHGWXDa.cjs} +5 -4
  14. package/dist/agents-DOHGWXDa.cjs.map +1 -0
  15. package/dist/{api-schema-manifest-BTfM-0md.js → api-schema-manifest-Ci2qUYHc.js} +2 -2
  16. package/dist/{api-schema-manifest-BTfM-0md.js.map → api-schema-manifest-Ci2qUYHc.js.map} +1 -1
  17. package/dist/{api-schema-manifest-C55f0tmn.cjs → api-schema-manifest-DCHOlOuJ.cjs} +2 -2
  18. package/dist/{api-schema-manifest-C55f0tmn.cjs.map → api-schema-manifest-DCHOlOuJ.cjs.map} +1 -1
  19. package/dist/{builder-registry-CkPRx_vx.cjs → builder-registry-D1_hGKCJ.cjs} +2 -2
  20. package/dist/{builder-registry-CkPRx_vx.cjs.map → builder-registry-D1_hGKCJ.cjs.map} +1 -1
  21. package/dist/{builder-registry-6TFaV4oT.js → builder-registry-m_gHCe12.js} +2 -2
  22. package/dist/{builder-registry-6TFaV4oT.js.map → builder-registry-m_gHCe12.js.map} +1 -1
  23. package/dist/{conversations-6DxLemUg.cjs → conversations-Ch_VuVwY.cjs} +2 -2
  24. package/dist/{conversations-6DxLemUg.cjs.map → conversations-Ch_VuVwY.cjs.map} +1 -1
  25. package/dist/{conversations-DDMCe7th.js → conversations-xS7yHuG1.js} +2 -2
  26. package/dist/{conversations-DDMCe7th.js.map → conversations-xS7yHuG1.js.map} +1 -1
  27. package/dist/{dist-CzWU4AmA.cjs → dist-BKNKucT9.cjs} +422 -286
  28. package/dist/dist-BKNKucT9.cjs.map +1 -0
  29. package/dist/{dist-DDo4vt34.js → dist-CIYZuix4.js} +422 -286
  30. package/dist/dist-CIYZuix4.js.map +1 -0
  31. package/dist/{dist-CjEJaGGe.cjs → dist-DgKeISkr.cjs} +1 -1
  32. package/dist/dist-mNQb9_wX.js +1 -0
  33. package/dist/docs/SKILL.md +1 -1
  34. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  35. package/dist/{editor-builder-BO0Pebws.cjs → editor-builder-CKfy5eZY.cjs} +2 -2
  36. package/dist/{editor-builder-BO0Pebws.cjs.map → editor-builder-CKfy5eZY.cjs.map} +1 -1
  37. package/dist/{editor-builder-CuT_ltBK.js → editor-builder-Ceen28s8.js} +2 -2
  38. package/dist/{editor-builder-CuT_ltBK.js.map → editor-builder-Ceen28s8.js.map} +1 -1
  39. package/dist/{knowledge-DykIi0wH.js → knowledge-Ba74qr0v.js} +89 -2
  40. package/dist/knowledge-Ba74qr0v.js.map +1 -0
  41. package/dist/{knowledge-qu0om3W7.cjs → knowledge-urR7FFG8.cjs} +100 -1
  42. package/dist/knowledge-urR7FFG8.cjs.map +1 -0
  43. package/dist/{plans-UPUTbvxx.cjs → plans-Djcp3C0d.cjs} +2 -2
  44. package/dist/{plans-UPUTbvxx.cjs.map → plans-Djcp3C0d.cjs.map} +1 -1
  45. package/dist/{plans-k4FuteiT.js → plans-nHOnlGzr.js} +2 -2
  46. package/dist/{plans-k4FuteiT.js.map → plans-nHOnlGzr.js.map} +1 -1
  47. package/dist/{probe-image-size-BRHrC0Va.cjs → probe-image-size-BAwk1h6w.cjs} +2 -2
  48. package/dist/{probe-image-size-BRHrC0Va.cjs.map → probe-image-size-BAwk1h6w.cjs.map} +1 -1
  49. package/dist/{probe-image-size-BmIt3CH4.js → probe-image-size-DGTRKrgq.js} +2 -2
  50. package/dist/{probe-image-size-BmIt3CH4.js.map → probe-image-size-DGTRKrgq.js.map} +1 -1
  51. package/dist/{responses-opDOcZYI.cjs → responses-BdOStKtX.cjs} +2 -2
  52. package/dist/{responses-opDOcZYI.cjs.map → responses-BdOStKtX.cjs.map} +1 -1
  53. package/dist/{responses-C8HCkptA.js → responses-CEet9y8G.js} +2 -2
  54. package/dist/{responses-C8HCkptA.js.map → responses-CEet9y8G.js.map} +1 -1
  55. package/dist/{routes-BCoCimCB.js → routes-5FpkkzND.js} +15 -13
  56. package/dist/routes-5FpkkzND.js.map +1 -0
  57. package/dist/{routes-FKc6a2N0.cjs → routes-DU_FlwJP.cjs} +15 -13
  58. package/dist/routes-DU_FlwJP.cjs.map +1 -0
  59. package/dist/{scores-CrpJomkR.js → scores-BaDFGpmr.js} +2 -2
  60. package/dist/{scores-CrpJomkR.js.map → scores-BaDFGpmr.js.map} +1 -1
  61. package/dist/{scores-CNMXAquK.cjs → scores-Bw6Tuga5.cjs} +2 -2
  62. package/dist/{scores-CNMXAquK.cjs.map → scores-Bw6Tuga5.cjs.map} +1 -1
  63. package/dist/server/handlers/a2a.cjs +1 -1
  64. package/dist/server/handlers/a2a.js +1 -1
  65. package/dist/server/handlers/agent-builder.cjs +1 -1
  66. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  67. package/dist/server/handlers/agent-builder.js +1 -1
  68. package/dist/server/handlers/agent-versions.cjs +1 -1
  69. package/dist/server/handlers/agent-versions.js +1 -1
  70. package/dist/server/handlers/agents.cjs +1 -1
  71. package/dist/server/handlers/agents.d.ts.map +1 -1
  72. package/dist/server/handlers/agents.js +1 -1
  73. package/dist/server/handlers/builder-registry.cjs +1 -1
  74. package/dist/server/handlers/builder-registry.js +1 -1
  75. package/dist/server/handlers/conversations.cjs +1 -1
  76. package/dist/server/handlers/conversations.js +1 -1
  77. package/dist/server/handlers/editor-builder.cjs +1 -1
  78. package/dist/server/handlers/editor-builder.js +1 -1
  79. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  80. package/dist/server/handlers/favorites-enrichment.js +1 -1
  81. package/dist/server/handlers/knowledge.cjs +3 -1
  82. package/dist/server/handlers/knowledge.d.ts +95 -0
  83. package/dist/server/handlers/knowledge.d.ts.map +1 -1
  84. package/dist/server/handlers/knowledge.js +1 -1
  85. package/dist/server/handlers/mcp-client-versions.cjs +1 -1
  86. package/dist/server/handlers/mcp-client-versions.js +1 -1
  87. package/dist/server/handlers/plans.cjs +1 -1
  88. package/dist/server/handlers/plans.js +1 -1
  89. package/dist/server/handlers/prompt-block-versions.cjs +1 -1
  90. package/dist/server/handlers/prompt-block-versions.js +1 -1
  91. package/dist/server/handlers/responses.cjs +1 -1
  92. package/dist/server/handlers/responses.js +1 -1
  93. package/dist/server/handlers/scorer-versions.cjs +1 -1
  94. package/dist/server/handlers/scorer-versions.js +1 -1
  95. package/dist/server/handlers/scores.cjs +1 -1
  96. package/dist/server/handlers/scores.js +1 -1
  97. package/dist/server/handlers/stored-agent-favorites.cjs +2 -2
  98. package/dist/server/handlers/stored-agent-favorites.js +2 -2
  99. package/dist/server/handlers/stored-agents.cjs +2 -2
  100. package/dist/server/handlers/stored-agents.js +2 -2
  101. package/dist/server/handlers/stored-mcp-clients.cjs +1 -1
  102. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  103. package/dist/server/handlers/stored-prompt-blocks.cjs +1 -1
  104. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  105. package/dist/server/handlers/stored-scorers.cjs +1 -1
  106. package/dist/server/handlers/stored-scorers.js +1 -1
  107. package/dist/server/handlers/stored-skill-favorites.cjs +2 -2
  108. package/dist/server/handlers/stored-skill-favorites.js +2 -2
  109. package/dist/server/handlers/stored-skills.cjs +2 -2
  110. package/dist/server/handlers/stored-skills.js +2 -2
  111. package/dist/server/handlers/stored-workspaces.cjs +1 -1
  112. package/dist/server/handlers/stored-workspaces.js +1 -1
  113. package/dist/server/handlers/system.cjs +1 -1
  114. package/dist/server/handlers/system.js +1 -1
  115. package/dist/server/handlers/tools.cjs +1 -1
  116. package/dist/server/handlers/tools.js +1 -1
  117. package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
  118. package/dist/server/handlers/validate-agent-instructions.js +1 -1
  119. package/dist/server/handlers/workflows.cjs +1 -1
  120. package/dist/server/handlers/workflows.js +1 -1
  121. package/dist/server/handlers.cjs +9 -9
  122. package/dist/server/handlers.js +9 -9
  123. package/dist/server/schemas/knowledge.d.ts +29 -0
  124. package/dist/server/schemas/knowledge.d.ts.map +1 -1
  125. package/dist/server/server-adapter/index.cjs +51 -3
  126. package/dist/server/server-adapter/index.cjs.map +1 -1
  127. package/dist/server/server-adapter/index.js +51 -3
  128. package/dist/server/server-adapter/index.js.map +1 -1
  129. package/dist/server/server-adapter/routes/knowledge.d.ts +93 -0
  130. package/dist/server/server-adapter/routes/knowledge.d.ts.map +1 -1
  131. package/dist/server/utils.d.ts +13 -7
  132. package/dist/server/utils.d.ts.map +1 -1
  133. package/dist/{tools-DP3yJsX7.js → tools-BAmCNGM5.js} +3 -3
  134. package/dist/{tools-DP3yJsX7.js.map → tools-BAmCNGM5.js.map} +1 -1
  135. package/dist/{tools-C6TLcPmD.cjs → tools-CI5oeJWT.cjs} +3 -3
  136. package/dist/{tools-C6TLcPmD.cjs.map → tools-CI5oeJWT.cjs.map} +1 -1
  137. package/dist/{utils-bQ6Jhog6.cjs → utils-BhBJHsqX.cjs} +45 -24
  138. package/dist/{utils-bQ6Jhog6.cjs.map → utils-BhBJHsqX.cjs.map} +1 -1
  139. package/dist/{utils-qaBKOShQ.js → utils-Dy_dQTlK.js} +45 -24
  140. package/dist/{utils-qaBKOShQ.js.map → utils-Dy_dQTlK.js.map} +1 -1
  141. package/dist/{workflows-DrDssVnE.js → workflows-BxXS5AfE.js} +3 -3
  142. package/dist/workflows-BxXS5AfE.js.map +1 -0
  143. package/dist/{workflows-CJxQkruy.cjs → workflows-Cdi6w8JW.cjs} +3 -3
  144. package/dist/workflows-Cdi6w8JW.cjs.map +1 -0
  145. package/package.json +9 -9
  146. package/dist/agent-builder-B7B1DSP9.cjs.map +0 -1
  147. package/dist/agent-builder-CrFZJ1mg.js.map +0 -1
  148. package/dist/agents-Cp4FBxQB.cjs.map +0 -1
  149. package/dist/agents-DPvMjiDf.js.map +0 -1
  150. package/dist/dist-CzWU4AmA.cjs.map +0 -1
  151. package/dist/dist-DDo4vt34.js.map +0 -1
  152. package/dist/dist-FafoYsHK.js +0 -1
  153. package/dist/knowledge-DykIi0wH.js.map +0 -1
  154. package/dist/knowledge-qu0om3W7.cjs.map +0 -1
  155. package/dist/routes-BCoCimCB.js.map +0 -1
  156. package/dist/routes-FKc6a2N0.cjs.map +0 -1
  157. package/dist/workflows-CJxQkruy.cjs.map +0 -1
  158. package/dist/workflows-DrDssVnE.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils-bQ6Jhog6.cjs","names":["isPlainObject","isPlainObject","isPlainObject","toStandardSchema","standardSchemaToJSONSchema","MASTRA_RESOURCE_ID_KEY","HTTPException"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/double-indexed-kv.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/class-registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/custom-transformer-registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/is.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/pathstringifier.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/transformer.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/accessDeep.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/plainer.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/copy-anything/4.1.5/dedefcf2f03e98e70d41bceb3c3897b84814fa553b00ef4acbcec74c4b246876/node_modules/copy-anything/dist/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/index.js","../src/server/utils.ts"],"sourcesContent":["export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\\\/g, '\\\\\\\\').replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string, legacyPaths) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n if (!legacyPaths && char === '\\\\') {\n const escaped = string.charAt(i + 1);\n if (escaped === '\\\\') {\n segment += '\\\\';\n i++;\n continue;\n }\n else if (escaped !== '.') {\n throw Error('invalid path');\n }\n }\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n if ('cause' in v) {\n baseError.cause = v.cause;\n }\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message, { cause: v.cause });\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n if (n > value.size)\n throw new Error('index out of bounds');\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isError, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nconst enableLegacyPaths = (version) => version < 1;\nfunction traverse(tree, walker, version, origin = []) {\n if (!tree) {\n return;\n }\n const legacyPaths = enableLegacyPaths(version);\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, version, [\n ...origin,\n ...parsePath(key, legacyPaths),\n ]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, version, [\n ...origin,\n ...parsePath(key, legacyPaths),\n ]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, version, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n }, version);\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations, version) {\n const legacyPaths = enableLegacyPaths(version);\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path, legacyPaths));\n identicalPaths\n .map(path => parsePath(path, legacyPaths))\n .forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath, legacyPaths), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isError(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[escapeKey(index)] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","/**\n * Assigns a prop the copy is keeping, preserving whether it was enumerable. Callers decide\n * _whether_ to keep a non-enumerable prop before getting here, so by this point the answer is\n * always yes.\n */\nfunction assignProp(carry, key, newVal, originalObject) {\n if (Object.prototype.propertyIsEnumerable.call(originalObject, key)) {\n carry[key] = newVal;\n return;\n }\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n}\n/**\n * Whether `value` is an object literal, as opposed to a class instance, a built-in like `Date`, an\n * `arguments` object, or an object with a null prototype.\n *\n * The prototype check comes first because it is cheap and rejects almost everything; the tag check\n * is only reached by values that are about to be cloned anyway.\n */\nfunction isPlainObject(value) {\n return (Object.getPrototypeOf(value) === Object.prototype &&\n Object.prototype.toString.call(value) === '[object Object]');\n}\n/**\n * Returns the clone that `value` should be replaced with, and queues it to be filled in later.\n * Anything that isn't an array or a plain object is returned untouched.\n *\n * Reusing the clone already registered in `clones` is what makes circular and shared references\n * work: the placeholder is registered before its contents exist, so a reference back to an ancestor\n * resolves to it rather than walking forever.\n */\nfunction cloneRef(value, clones, sources, dests) {\n if (typeof value !== 'object' || value === null)\n return value;\n const array = Array.isArray(value);\n if (!array && !isPlainObject(value))\n return value;\n const existing = clones.get(value);\n if (existing !== undefined)\n return existing;\n const clone = array ? new Array(value.length) : {};\n clones.set(value, clone);\n sources.push(value);\n dests.push(clone);\n return clone;\n}\n/**\n * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the\n * original object. Arrays and the objects inside them are cloned as well.\n *\n * Nesting depth is limited only by available memory, and circular references are reproduced in the\n * copy rather than followed forever. Two props pointing at the same object still point at one\n * shared copy afterwards.\n *\n * @param target Target can be anything\n * @param [options={}] See type {@link Options} for more details.\n *\n * - `{ props: ['key1'] }` will only copy the `key1` property. When using this you will need to cast\n * the return type manually (in order to keep the TS implementation in here simple I didn't\n * built a complex auto resolved type for those few cases people want to use this option)\n * - `{ nonenumerable: true }` will copy all non-enumerable properties. Default is `{}`\n *\n * @returns The target with replaced values\n */\nexport function copy(target, options = {}) {\n if (typeof target !== 'object' || target === null)\n return target;\n const clones = new Map();\n // An explicit work list rather than recursion, so nesting depth is bounded by the heap instead\n // of the call stack. Deeply nested input used to throw a RangeError here.\n const sources = [];\n const dests = [];\n const result = cloneRef(target, clones, sources, dests);\n const onlyProps = Array.isArray(options.props) ? options.props : undefined;\n const nonenumerable = options.nonenumerable === true;\n while (sources.length) {\n const source = sources.pop();\n const dest = dests.pop();\n if (Array.isArray(source)) {\n for (let i = 0; i < source.length; i++) {\n if (i in source)\n dest[i] = cloneRef(source[i], clones, sources, dests);\n }\n continue;\n }\n if (nonenumerable) {\n for (const key of Object.getOwnPropertyNames(source)) {\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n continue;\n if (onlyProps && !onlyProps.includes(key))\n continue;\n const newVal = cloneRef(source[key], clones, sources, dests);\n assignProp(dest, key, newVal, source);\n }\n }\n else {\n // `for in` skips non-enumerable keys and allocates no key array, which is why it beats\n // getOwnPropertyNames here. The own check is needed because it also walks the prototype.\n for (const key in source) {\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n continue;\n if (onlyProps && !onlyProps.includes(key))\n continue;\n dest[key] = cloneRef(source[key], clones, sources, dests);\n }\n }\n for (const key of Object.getOwnPropertySymbols(source)) {\n if (onlyProps && !onlyProps.includes(key))\n continue;\n if (!nonenumerable && !Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n const newVal = cloneRef(source[key], clones, sources, dests);\n assignProp(dest, key, newVal, source);\n }\n }\n return result;\n}\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nclass SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n if (res.meta)\n res.meta.v = 1;\n return res;\n }\n deserialize(payload, options) {\n const { json, meta } = payload;\n let result = options?.inPlace ? json : copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, meta.v ?? 0, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities, meta.v ?? 0);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string), { inPlace: true });\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport default SuperJSON;\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import type { Mastra } from '@mastra/core';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { StepWithComponent, Workflow, WorkflowInfo } from '@mastra/core/workflows';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\n\nimport { stringify } from 'superjson';\nimport { MASTRA_RESOURCE_ID_KEY } from './constants';\nimport { HTTPException } from './http-exception';\n\n/**\n * Convert any PublicSchema to a JSON Schema.\n * Uses toStandardSchema to handle all schema types (Zod v4, AI SDK Schema, JSON Schema).\n */\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) return undefined;\n\n // Convert any PublicSchema to StandardSchemaWithJSON, then extract JSON Schema\n const standardSchema = toStandardSchema(schema);\n return standardSchemaToJSONSchema(standardSchema);\n}\n\n/**\n * Normalizes a route path to ensure consistent formatting.\n * - Removes leading/trailing whitespace\n * - Validates no path traversal (..), query strings (?), or fragments (#)\n * - Collapses multiple consecutive slashes\n * - Removes trailing slashes\n * - Ensures leading slash (unless empty)\n *\n * @param path - The route path to normalize\n * @returns The normalized path (empty string for root paths)\n * @throws Error if path contains invalid characters\n */\nexport function normalizeRoutePath(path: string): string {\n let normalized = path.trim();\n if (normalized.includes('..') || normalized.includes('?') || normalized.includes('#')) {\n throw new Error(`Invalid route path: \"${path}\". Path cannot contain '..', '?', or '#'`);\n }\n normalized = normalized.replace(/\\/+/g, '/');\n if (normalized === '/' || normalized === '') {\n return '';\n }\n if (normalized.endsWith('/')) {\n normalized = normalized.slice(0, -1);\n }\n if (!normalized.startsWith('/')) {\n normalized = `/${normalized}`;\n }\n return normalized;\n}\n\nconst DEFAULT_STORED_RESOURCE_SCOPE_METADATA_KEY = 'mastra.resourceId';\n\nexport type StoredResourceScope = {\n metadataKey: string;\n value: string;\n};\n\nexport type StoredResourceLike = {\n metadata?: Record<string, unknown> | null;\n};\n\nexport async function getStoredResourceScope(\n mastra: Pick<Mastra, 'getServer'>,\n requestContext: RequestContext | undefined,\n): Promise<StoredResourceScope | undefined> {\n const scopeConfig = mastra?.getServer?.()?.storedResources?.scope;\n if (!scopeConfig) {\n return undefined;\n }\n\n const options = scopeConfig === true ? {} : scopeConfig;\n const metadataKey = options.metadataKey ?? DEFAULT_STORED_RESOURCE_SCOPE_METADATA_KEY;\n const user = requestContext?.get('user');\n const resolved = options.resolve\n ? await options.resolve({ requestContext, user })\n : (requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined);\n\n if (!resolved) {\n if (options.requireScope === false) {\n return undefined;\n }\n throw new HTTPException(403, { message: 'Stored resource scope is required' });\n }\n\n return { metadataKey, value: resolved };\n}\n\nexport function scopeStoredResourceMetadata(\n metadata: Record<string, unknown> | undefined,\n scope: StoredResourceScope | undefined,\n): Record<string, unknown> | undefined {\n if (!scope) {\n return metadata;\n }\n\n return {\n ...(metadata ?? {}),\n [scope.metadataKey]: scope.value,\n };\n}\n\nexport function assertStoredResourceScope(\n resource: StoredResourceLike | null | undefined,\n scope: StoredResourceScope | undefined,\n): void {\n if (!resource || !scope) {\n return;\n }\n\n if (resource.metadata?.[scope.metadataKey] !== scope.value) {\n throw new HTTPException(404, { message: 'Stored resource not found' });\n }\n}\n\n/**\n * Check if a schema looks like a processor step schema.\n * Processor step schemas are discriminated unions on 'phase' with specific values.\n */\nfunction looksLikeProcessorStepSchema(schema: PublicSchema<unknown> | undefined): boolean {\n if (!schema) return false;\n\n try {\n const jsonSchema = standardSchemaToJSONSchema(toStandardSchema(schema)) as Record<string, unknown> | undefined;\n if (!jsonSchema) return false;\n\n // Check for discriminated union pattern: anyOf/oneOf with phase discriminator\n const variants = (jsonSchema.anyOf || jsonSchema.oneOf) as Array<Record<string, unknown>> | undefined;\n if (!variants || !Array.isArray(variants)) return false;\n\n // Check if all variants have a 'phase' property with processor phase values\n const processorPhases = new Set(['input', 'inputStep', 'outputStream', 'outputResult', 'outputStep', 'toolResult']);\n\n for (const variant of variants) {\n const properties = variant.properties as Record<string, unknown> | undefined;\n if (!properties?.phase) return false;\n\n const phaseSchema = properties.phase as Record<string, unknown>;\n const phaseConst = phaseSchema?.const as string | undefined;\n const phaseEnum = Array.isArray(phaseSchema?.enum) ? (phaseSchema.enum as string[]) : [];\n const phaseValues = phaseConst ? [phaseConst] : phaseEnum;\n\n if (!phaseValues.length || phaseValues.some(phase => !processorPhases.has(phase))) {\n return false;\n }\n }\n\n return variants.length > 0;\n } catch {\n return false;\n }\n}\n\nfunction getSteps(steps: Record<string, StepWithComponent>, path?: string) {\n return Object.entries(steps).reduce<any>((acc, [key, step]) => {\n const fullKey = path ? `${path}.${key}` : key;\n acc[fullKey] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(schemaToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(schemaToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(schemaToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(schemaToJsonSchema(step.suspendSchema)) : undefined,\n stateSchema: step.stateSchema ? stringify(schemaToJsonSchema(step.stateSchema)) : undefined,\n isWorkflow: step.component === 'WORKFLOW',\n component: step.component,\n metadata: step.metadata,\n };\n\n if (step.component === 'WORKFLOW' && step.steps) {\n const nestedSteps = getSteps(step.steps, fullKey) || {};\n acc = { ...acc, ...nestedSteps };\n }\n\n return acc;\n }, {});\n}\n\nexport function getWorkflowInfo(workflow: Workflow, partial: boolean = false): WorkflowInfo {\n if (partial) {\n // Return minimal info in partial mode\n return {\n name: workflow.name,\n description: workflow.description,\n metadata: workflow.metadata,\n stepCount: Object.keys(workflow.steps).length,\n stepGraph: workflow.serializedStepGraph,\n options: workflow.options,\n steps: {},\n allSteps: {},\n inputSchema: undefined,\n outputSchema: undefined,\n stateSchema: undefined,\n requestContextSchema: undefined,\n origin: workflow.origin,\n } as WorkflowInfo;\n }\n\n return {\n name: workflow.name,\n description: workflow.description,\n metadata: workflow.metadata,\n origin: workflow.origin,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n acc[key] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(schemaToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(schemaToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(schemaToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(schemaToJsonSchema(step.suspendSchema)) : undefined,\n stateSchema: step.stateSchema ? stringify(schemaToJsonSchema(step.stateSchema)) : undefined,\n requestContextSchema: step.requestContextSchema\n ? stringify(schemaToJsonSchema(step.requestContextSchema))\n : undefined,\n component: step.component,\n metadata: step.metadata,\n };\n return acc;\n }, {}),\n allSteps: getSteps(workflow.steps) || {},\n stepGraph: workflow.serializedStepGraph,\n inputSchema: workflow.inputSchema ? stringify(schemaToJsonSchema(workflow.inputSchema)) : undefined,\n outputSchema: workflow.outputSchema ? stringify(schemaToJsonSchema(workflow.outputSchema)) : undefined,\n stateSchema: workflow.stateSchema ? stringify(schemaToJsonSchema(workflow.stateSchema)) : undefined,\n requestContextSchema: workflow.requestContextSchema\n ? stringify(schemaToJsonSchema(workflow.requestContextSchema))\n : undefined,\n options: workflow.options,\n isProcessorWorkflow: workflow.type === 'processor' || looksLikeProcessorStepSchema(workflow.inputSchema),\n };\n}\n\n/**\n * Workflow Registry for temporarily registering additional workflows\n * that are not part of the user's Mastra instance (e.g., internal template workflows)\n */\nexport class WorkflowRegistry {\n private static additionalWorkflows: Record<string, Workflow> = {};\n\n /**\n * Register a workflow temporarily\n */\n static registerTemporaryWorkflow(id: string, workflow: Workflow): void {\n this.additionalWorkflows[id] = workflow;\n }\n\n /**\n * Register all workflows from map\n */\n static registerTemporaryWorkflows(\n workflows: Record<string, Workflow>,\n mastra?: Mastra<any, any, any, any, any, any, any, any, any>,\n ): void {\n for (const [id, workflow] of Object.entries(workflows)) {\n // Register Mastra instance with the workflow if provided\n if (mastra) {\n workflow.__registerMastra(mastra);\n workflow.__registerPrimitives({\n logger: mastra.getLogger(),\n storage: mastra.getStorage(),\n agents: mastra.listAgents(),\n tts: mastra.getTTS(),\n vectors: mastra.listVectors(),\n });\n }\n this.additionalWorkflows[id] = workflow;\n }\n }\n\n /**\n * Get a workflow by ID from the registry (returns undefined if not found)\n */\n static getWorkflow(workflowId: string): Workflow | undefined {\n return this.additionalWorkflows[workflowId];\n }\n\n /**\n * Get all workflows from the registry\n */\n static getAllWorkflows(): Record<string, Workflow> {\n return { ...this.additionalWorkflows };\n }\n\n /**\n * Clean up a temporary workflow\n */\n static cleanupTemporaryWorkflow(workflowId: string): void {\n delete this.additionalWorkflows[workflowId];\n }\n /**\n * Clean up all registered workflows\n */\n static cleanup(): void {\n // Clear all workflows (since we register all agent-builder workflows each time)\n this.additionalWorkflows = {};\n }\n\n /**\n * Check if a workflow ID is a valid agent-builder workflow\n */\n static isAgentBuilderWorkflow(workflowId: string): boolean {\n return workflowId in this.additionalWorkflows;\n }\n\n /**\n * Get all registered temporary workflow IDs (for debugging)\n */\n static getRegisteredWorkflowIds(): string[] {\n return Object.keys(this.additionalWorkflows);\n }\n}\n\n/**\n * Converts a string to a URL-friendly slug.\n * Lowercases, replaces non-alphanumeric characters with hyphens,\n * collapses consecutive hyphens, and trims leading/trailing hyphens.\n */\nexport function toSlug(input: string): string {\n return input\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nexport function convertInstructionsToString(message: SystemMessage): string {\n if (!message) {\n return '';\n }\n\n if (typeof message === 'string') {\n return message;\n }\n\n if (Array.isArray(message)) {\n return message\n .map(m => {\n if (typeof m === 'string') {\n return m;\n }\n // Safely extract content from message objects\n return typeof m.content === 'string' ? m.content : '';\n })\n .filter(content => content) // Remove empty strings\n .join('\\n');\n }\n\n // Handle single message object - safely extract content\n return typeof message.content === 'string' ? message.content : '';\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11],"mappings":"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"}
1
+ {"version":3,"file":"utils-BhBJHsqX.cjs","names":["isPlainObject","isPlainObject","isPlainObject","toStandardSchema","standardSchemaToJSONSchema","MASTRA_RESOURCE_ID_KEY","HTTPException"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/double-indexed-kv.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/class-registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/custom-transformer-registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/is.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/pathstringifier.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/transformer.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/accessDeep.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/plainer.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/copy-anything/4.1.5/dedefcf2f03e98e70d41bceb3c3897b84814fa553b00ef4acbcec74c4b246876/node_modules/copy-anything/dist/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/index.js","../src/server/utils.ts"],"sourcesContent":["export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\\\/g, '\\\\\\\\').replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string, legacyPaths) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n if (!legacyPaths && char === '\\\\') {\n const escaped = string.charAt(i + 1);\n if (escaped === '\\\\') {\n segment += '\\\\';\n i++;\n continue;\n }\n else if (escaped !== '.') {\n throw Error('invalid path');\n }\n }\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n if ('cause' in v) {\n baseError.cause = v.cause;\n }\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message, { cause: v.cause });\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n if (n > value.size)\n throw new Error('index out of bounds');\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isError, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nconst enableLegacyPaths = (version) => version < 1;\nfunction traverse(tree, walker, version, origin = []) {\n if (!tree) {\n return;\n }\n const legacyPaths = enableLegacyPaths(version);\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, version, [\n ...origin,\n ...parsePath(key, legacyPaths),\n ]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, version, [\n ...origin,\n ...parsePath(key, legacyPaths),\n ]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, version, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n }, version);\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations, version) {\n const legacyPaths = enableLegacyPaths(version);\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path, legacyPaths));\n identicalPaths\n .map(path => parsePath(path, legacyPaths))\n .forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath, legacyPaths), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isError(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[escapeKey(index)] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","/**\n * Assigns a prop the copy is keeping, preserving whether it was enumerable. Callers decide\n * _whether_ to keep a non-enumerable prop before getting here, so by this point the answer is\n * always yes.\n */\nfunction assignProp(carry, key, newVal, originalObject) {\n if (Object.prototype.propertyIsEnumerable.call(originalObject, key)) {\n carry[key] = newVal;\n return;\n }\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n}\n/**\n * Whether `value` is an object literal, as opposed to a class instance, a built-in like `Date`, an\n * `arguments` object, or an object with a null prototype.\n *\n * The prototype check comes first because it is cheap and rejects almost everything; the tag check\n * is only reached by values that are about to be cloned anyway.\n */\nfunction isPlainObject(value) {\n return (Object.getPrototypeOf(value) === Object.prototype &&\n Object.prototype.toString.call(value) === '[object Object]');\n}\n/**\n * Returns the clone that `value` should be replaced with, and queues it to be filled in later.\n * Anything that isn't an array or a plain object is returned untouched.\n *\n * Reusing the clone already registered in `clones` is what makes circular and shared references\n * work: the placeholder is registered before its contents exist, so a reference back to an ancestor\n * resolves to it rather than walking forever.\n */\nfunction cloneRef(value, clones, sources, dests) {\n if (typeof value !== 'object' || value === null)\n return value;\n const array = Array.isArray(value);\n if (!array && !isPlainObject(value))\n return value;\n const existing = clones.get(value);\n if (existing !== undefined)\n return existing;\n const clone = array ? new Array(value.length) : {};\n clones.set(value, clone);\n sources.push(value);\n dests.push(clone);\n return clone;\n}\n/**\n * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the\n * original object. Arrays and the objects inside them are cloned as well.\n *\n * Nesting depth is limited only by available memory, and circular references are reproduced in the\n * copy rather than followed forever. Two props pointing at the same object still point at one\n * shared copy afterwards.\n *\n * @param target Target can be anything\n * @param [options={}] See type {@link Options} for more details.\n *\n * - `{ props: ['key1'] }` will only copy the `key1` property. When using this you will need to cast\n * the return type manually (in order to keep the TS implementation in here simple I didn't\n * built a complex auto resolved type for those few cases people want to use this option)\n * - `{ nonenumerable: true }` will copy all non-enumerable properties. Default is `{}`\n *\n * @returns The target with replaced values\n */\nexport function copy(target, options = {}) {\n if (typeof target !== 'object' || target === null)\n return target;\n const clones = new Map();\n // An explicit work list rather than recursion, so nesting depth is bounded by the heap instead\n // of the call stack. Deeply nested input used to throw a RangeError here.\n const sources = [];\n const dests = [];\n const result = cloneRef(target, clones, sources, dests);\n const onlyProps = Array.isArray(options.props) ? options.props : undefined;\n const nonenumerable = options.nonenumerable === true;\n while (sources.length) {\n const source = sources.pop();\n const dest = dests.pop();\n if (Array.isArray(source)) {\n for (let i = 0; i < source.length; i++) {\n if (i in source)\n dest[i] = cloneRef(source[i], clones, sources, dests);\n }\n continue;\n }\n if (nonenumerable) {\n for (const key of Object.getOwnPropertyNames(source)) {\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n continue;\n if (onlyProps && !onlyProps.includes(key))\n continue;\n const newVal = cloneRef(source[key], clones, sources, dests);\n assignProp(dest, key, newVal, source);\n }\n }\n else {\n // `for in` skips non-enumerable keys and allocates no key array, which is why it beats\n // getOwnPropertyNames here. The own check is needed because it also walks the prototype.\n for (const key in source) {\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n continue;\n if (onlyProps && !onlyProps.includes(key))\n continue;\n dest[key] = cloneRef(source[key], clones, sources, dests);\n }\n }\n for (const key of Object.getOwnPropertySymbols(source)) {\n if (onlyProps && !onlyProps.includes(key))\n continue;\n if (!nonenumerable && !Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n const newVal = cloneRef(source[key], clones, sources, dests);\n assignProp(dest, key, newVal, source);\n }\n }\n return result;\n}\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nclass SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n if (res.meta)\n res.meta.v = 1;\n return res;\n }\n deserialize(payload, options) {\n const { json, meta } = payload;\n let result = options?.inPlace ? json : copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, meta.v ?? 0, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities, meta.v ?? 0);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string), { inPlace: true });\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport default SuperJSON;\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import type { Mastra } from '@mastra/core';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { StepWithComponent, Workflow, WorkflowInfo } from '@mastra/core/workflows';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\n\nimport { stringify } from 'superjson';\nimport { MASTRA_RESOURCE_ID_KEY } from './constants';\nimport { HTTPException } from './http-exception';\n\n/**\n * Convert any PublicSchema to a JSON Schema.\n * Uses toStandardSchema to handle all schema types (Zod v4, AI SDK Schema, JSON Schema).\n */\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) return undefined;\n\n // Convert any PublicSchema to StandardSchemaWithJSON, then extract JSON Schema\n const standardSchema = toStandardSchema(schema);\n return standardSchemaToJSONSchema(standardSchema);\n}\n\n/**\n * Normalizes a route path to ensure consistent formatting.\n * - Removes leading/trailing whitespace\n * - Validates no path traversal (..), query strings (?), or fragments (#)\n * - Collapses multiple consecutive slashes\n * - Removes trailing slashes\n * - Ensures leading slash (unless empty)\n *\n * @param path - The route path to normalize\n * @returns The normalized path (empty string for root paths)\n * @throws Error if path contains invalid characters\n */\nexport function normalizeRoutePath(path: string): string {\n let normalized = path.trim();\n if (normalized.includes('..') || normalized.includes('?') || normalized.includes('#')) {\n throw new Error(`Invalid route path: \"${path}\". Path cannot contain '..', '?', or '#'`);\n }\n normalized = normalized.replace(/\\/+/g, '/');\n if (normalized === '/' || normalized === '') {\n return '';\n }\n if (normalized.endsWith('/')) {\n normalized = normalized.slice(0, -1);\n }\n if (!normalized.startsWith('/')) {\n normalized = `/${normalized}`;\n }\n return normalized;\n}\n\nconst DEFAULT_STORED_RESOURCE_SCOPE_METADATA_KEY = 'mastra.resourceId';\n\nexport type StoredResourceScope = {\n metadataKey: string;\n value: string;\n};\n\nexport type StoredResourceLike = {\n metadata?: Record<string, unknown> | null;\n};\n\nexport async function getStoredResourceScope(\n mastra: Pick<Mastra, 'getServer'>,\n requestContext: RequestContext | undefined,\n): Promise<StoredResourceScope | undefined> {\n const scopeConfig = mastra?.getServer?.()?.storedResources?.scope;\n if (!scopeConfig) {\n return undefined;\n }\n\n const options = scopeConfig === true ? {} : scopeConfig;\n const metadataKey = options.metadataKey ?? DEFAULT_STORED_RESOURCE_SCOPE_METADATA_KEY;\n const user = requestContext?.get('user');\n const resolved = options.resolve\n ? await options.resolve({ requestContext, user })\n : (requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined);\n\n if (!resolved) {\n if (options.requireScope === false) {\n return undefined;\n }\n throw new HTTPException(403, { message: 'Stored resource scope is required' });\n }\n\n return { metadataKey, value: resolved };\n}\n\nexport function scopeStoredResourceMetadata(\n metadata: Record<string, unknown> | undefined,\n scope: StoredResourceScope | undefined,\n): Record<string, unknown> | undefined {\n if (!scope) {\n return metadata;\n }\n\n return {\n ...(metadata ?? {}),\n [scope.metadataKey]: scope.value,\n };\n}\n\nexport function assertStoredResourceScope(\n resource: StoredResourceLike | null | undefined,\n scope: StoredResourceScope | undefined,\n): void {\n if (!resource || !scope) {\n return;\n }\n\n if (resource.metadata?.[scope.metadataKey] !== scope.value) {\n throw new HTTPException(404, { message: 'Stored resource not found' });\n }\n}\n\n/**\n * Check if a schema looks like a processor step schema.\n * Processor step schemas are discriminated unions on 'phase' with specific values.\n */\nfunction looksLikeProcessorStepSchema(schema: PublicSchema<unknown> | undefined): boolean {\n if (!schema) return false;\n\n try {\n const jsonSchema = standardSchemaToJSONSchema(toStandardSchema(schema)) as Record<string, unknown> | undefined;\n if (!jsonSchema) return false;\n\n // Check for discriminated union pattern: anyOf/oneOf with phase discriminator\n const variants = (jsonSchema.anyOf || jsonSchema.oneOf) as Array<Record<string, unknown>> | undefined;\n if (!variants || !Array.isArray(variants)) return false;\n\n // Check if all variants have a 'phase' property with processor phase values\n const processorPhases = new Set(['input', 'inputStep', 'outputStream', 'outputResult', 'outputStep', 'toolResult']);\n\n for (const variant of variants) {\n const properties = variant.properties as Record<string, unknown> | undefined;\n if (!properties?.phase) return false;\n\n const phaseSchema = properties.phase as Record<string, unknown>;\n const phaseConst = phaseSchema?.const as string | undefined;\n const phaseEnum = Array.isArray(phaseSchema?.enum) ? (phaseSchema.enum as string[]) : [];\n const phaseValues = phaseConst ? [phaseConst] : phaseEnum;\n\n if (!phaseValues.length || phaseValues.some(phase => !processorPhases.has(phase))) {\n return false;\n }\n }\n\n return variants.length > 0;\n } catch {\n return false;\n }\n}\n\nfunction getSteps(steps: Record<string, StepWithComponent>, path?: string) {\n return Object.entries(steps).reduce<any>((acc, [key, step]) => {\n const fullKey = path ? `${path}.${key}` : key;\n acc[fullKey] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(schemaToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(schemaToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(schemaToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(schemaToJsonSchema(step.suspendSchema)) : undefined,\n stateSchema: step.stateSchema ? stringify(schemaToJsonSchema(step.stateSchema)) : undefined,\n isWorkflow: step.component === 'WORKFLOW',\n component: step.component,\n metadata: step.metadata,\n };\n\n if (step.component === 'WORKFLOW' && step.steps) {\n const nestedSteps = getSteps(step.steps, fullKey) || {};\n acc = { ...acc, ...nestedSteps };\n }\n\n return acc;\n }, {});\n}\n\nexport function getWorkflowInfo(workflow: Workflow, partial: boolean = false): WorkflowInfo {\n if (partial) {\n // Return minimal info in partial mode\n return {\n name: workflow.name,\n description: workflow.description,\n metadata: workflow.metadata,\n stepCount: Object.keys(workflow.steps).length,\n stepGraph: workflow.serializedStepGraph,\n options: workflow.options,\n steps: {},\n allSteps: {},\n inputSchema: undefined,\n outputSchema: undefined,\n stateSchema: undefined,\n requestContextSchema: undefined,\n origin: workflow.origin,\n } as WorkflowInfo;\n }\n\n return {\n name: workflow.name,\n description: workflow.description,\n metadata: workflow.metadata,\n origin: workflow.origin,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n acc[key] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(schemaToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(schemaToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(schemaToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(schemaToJsonSchema(step.suspendSchema)) : undefined,\n stateSchema: step.stateSchema ? stringify(schemaToJsonSchema(step.stateSchema)) : undefined,\n requestContextSchema: step.requestContextSchema\n ? stringify(schemaToJsonSchema(step.requestContextSchema))\n : undefined,\n component: step.component,\n metadata: step.metadata,\n };\n return acc;\n }, {}),\n allSteps: getSteps(workflow.steps) || {},\n stepGraph: workflow.serializedStepGraph,\n inputSchema: workflow.inputSchema ? stringify(schemaToJsonSchema(workflow.inputSchema)) : undefined,\n outputSchema: workflow.outputSchema ? stringify(schemaToJsonSchema(workflow.outputSchema)) : undefined,\n stateSchema: workflow.stateSchema ? stringify(schemaToJsonSchema(workflow.stateSchema)) : undefined,\n requestContextSchema: workflow.requestContextSchema\n ? stringify(schemaToJsonSchema(workflow.requestContextSchema))\n : undefined,\n options: workflow.options,\n isProcessorWorkflow: workflow.type === 'processor' || looksLikeProcessorStepSchema(workflow.inputSchema),\n };\n}\n\ntype AnyMastra = Mastra<any, any, any, any, any, any, any, any, any>;\n\n/**\n * Workflow Registry for temporarily registering additional workflows\n * that are not part of the user's Mastra instance (e.g., internal template workflows)\n */\nexport class WorkflowRegistry {\n private static additionalWorkflows: Record<string, Workflow> = {};\n // Registrations made for a Mastra instance live under that instance, so concurrent requests for different\n // instances never resolve each other's workflows. `requests` counts in-flight requests; the entry is\n // dropped when the last one cleans up, which also releases the instance.\n private static instanceWorkflows = new Map<AnyMastra, { workflows: Record<string, Workflow>; requests: number }>();\n\n /**\n * Register a workflow temporarily\n */\n static registerTemporaryWorkflow(id: string, workflow: Workflow): void {\n this.additionalWorkflows[id] = workflow;\n }\n\n /**\n * Register all workflows from map. With `mastra`, binds them to that instance and keeps them registered until\n * the matching `cleanup(mastra)`.\n */\n static registerTemporaryWorkflows(workflows: Record<string, Workflow>, mastra?: AnyMastra): void {\n if (!mastra) {\n Object.assign(this.additionalWorkflows, workflows);\n return;\n }\n\n for (const workflow of Object.values(workflows)) {\n workflow.__registerMastra(mastra);\n workflow.__registerPrimitives({\n logger: mastra.getLogger(),\n storage: mastra.getStorage(),\n agents: mastra.listAgents(),\n tts: mastra.getTTS(),\n vectors: mastra.listVectors(),\n });\n }\n\n const entry = this.instanceWorkflows.get(mastra) ?? { workflows: {}, requests: 0 };\n Object.assign(entry.workflows, workflows);\n entry.requests++;\n this.instanceWorkflows.set(mastra, entry);\n }\n\n /**\n * Get a workflow by ID from the registry (returns undefined if not found). With `mastra`, only that\n * instance's registrations and the ones made without an instance are searched.\n */\n static getWorkflow(workflowId: string, mastra?: AnyMastra): Workflow | undefined {\n const registries = mastra\n ? [this.instanceWorkflows.get(mastra)?.workflows ?? {}, this.additionalWorkflows]\n : [this.getAllWorkflows()];\n // Own properties only, so ids like `constructor` don't resolve to Object.prototype members\n const registry = registries.find(workflows => Object.hasOwn(workflows, workflowId));\n return registry?.[workflowId];\n }\n\n /**\n * Get all workflows from the registry\n */\n static getAllWorkflows(): Record<string, Workflow> {\n const all = { ...this.additionalWorkflows };\n for (const { workflows } of this.instanceWorkflows.values()) Object.assign(all, workflows);\n return all;\n }\n\n /**\n * Clean up a temporary workflow\n */\n static cleanupTemporaryWorkflow(workflowId: string): void {\n delete this.additionalWorkflows[workflowId];\n for (const { workflows } of this.instanceWorkflows.values()) delete workflows[workflowId];\n }\n\n /**\n * Clean up registered workflows. With `mastra`, releases one registration made for that instance; without it,\n * clears everything.\n */\n static cleanup(mastra?: AnyMastra): void {\n if (!mastra) {\n this.additionalWorkflows = {};\n this.instanceWorkflows.clear();\n return;\n }\n\n const entry = this.instanceWorkflows.get(mastra);\n if (entry && --entry.requests <= 0) this.instanceWorkflows.delete(mastra);\n }\n\n /**\n * Check if a workflow ID is a valid agent-builder workflow\n */\n static isAgentBuilderWorkflow(workflowId: string, mastra?: AnyMastra): boolean {\n return this.getWorkflow(workflowId, mastra) !== undefined;\n }\n\n /**\n * Get all registered temporary workflow IDs (for debugging)\n */\n static getRegisteredWorkflowIds(): string[] {\n return Object.keys(this.getAllWorkflows());\n }\n}\n\n/**\n * Converts a string to a URL-friendly slug.\n * Lowercases, replaces non-alphanumeric characters with hyphens,\n * collapses consecutive hyphens, and trims leading/trailing hyphens.\n */\nexport function toSlug(input: string): string {\n return input\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nexport function convertInstructionsToString(message: SystemMessage): string {\n if (!message) {\n return '';\n }\n\n if (typeof message === 'string') {\n return message;\n }\n\n if (Array.isArray(message)) {\n return message\n .map(m => {\n if (typeof m === 'string') {\n return m;\n }\n // Safely extract content from message objects\n return typeof m.content === 'string' ? m.content : '';\n })\n .filter(content => content) // Remove empty strings\n .join('\\n');\n }\n\n // Handle single message object - safely extract content\n return typeof message.content === 'string' ? message.content : '';\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11],"mappings":"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"}
@@ -848,6 +848,7 @@ function getWorkflowInfo(workflow, partial = false) {
848
848
  */
849
849
  var WorkflowRegistry = class {
850
850
  static additionalWorkflows = {};
851
+ static instanceWorkflows = /* @__PURE__ */ new Map();
851
852
  /**
852
853
  * Register a workflow temporarily
853
854
  */
@@ -855,58 +856,78 @@ var WorkflowRegistry = class {
855
856
  this.additionalWorkflows[id] = workflow;
856
857
  }
857
858
  /**
858
- * Register all workflows from map
859
+ * Register all workflows from map. With `mastra`, binds them to that instance and keeps them registered until
860
+ * the matching `cleanup(mastra)`.
859
861
  */
860
862
  static registerTemporaryWorkflows(workflows, mastra) {
861
- for (const [id, workflow] of Object.entries(workflows)) {
862
- if (mastra) {
863
- workflow.__registerMastra(mastra);
864
- workflow.__registerPrimitives({
865
- logger: mastra.getLogger(),
866
- storage: mastra.getStorage(),
867
- agents: mastra.listAgents(),
868
- tts: mastra.getTTS(),
869
- vectors: mastra.listVectors()
870
- });
871
- }
872
- this.additionalWorkflows[id] = workflow;
863
+ if (!mastra) {
864
+ Object.assign(this.additionalWorkflows, workflows);
865
+ return;
866
+ }
867
+ for (const workflow of Object.values(workflows)) {
868
+ workflow.__registerMastra(mastra);
869
+ workflow.__registerPrimitives({
870
+ logger: mastra.getLogger(),
871
+ storage: mastra.getStorage(),
872
+ agents: mastra.listAgents(),
873
+ tts: mastra.getTTS(),
874
+ vectors: mastra.listVectors()
875
+ });
873
876
  }
877
+ const entry = this.instanceWorkflows.get(mastra) ?? {
878
+ workflows: {},
879
+ requests: 0
880
+ };
881
+ Object.assign(entry.workflows, workflows);
882
+ entry.requests++;
883
+ this.instanceWorkflows.set(mastra, entry);
874
884
  }
875
885
  /**
876
- * Get a workflow by ID from the registry (returns undefined if not found)
886
+ * Get a workflow by ID from the registry (returns undefined if not found). With `mastra`, only that
887
+ * instance's registrations and the ones made without an instance are searched.
877
888
  */
878
- static getWorkflow(workflowId) {
879
- return this.additionalWorkflows[workflowId];
889
+ static getWorkflow(workflowId, mastra) {
890
+ return (mastra ? [this.instanceWorkflows.get(mastra)?.workflows ?? {}, this.additionalWorkflows] : [this.getAllWorkflows()]).find((workflows) => Object.hasOwn(workflows, workflowId))?.[workflowId];
880
891
  }
881
892
  /**
882
893
  * Get all workflows from the registry
883
894
  */
884
895
  static getAllWorkflows() {
885
- return { ...this.additionalWorkflows };
896
+ const all = { ...this.additionalWorkflows };
897
+ for (const { workflows } of this.instanceWorkflows.values()) Object.assign(all, workflows);
898
+ return all;
886
899
  }
887
900
  /**
888
901
  * Clean up a temporary workflow
889
902
  */
890
903
  static cleanupTemporaryWorkflow(workflowId) {
891
904
  delete this.additionalWorkflows[workflowId];
905
+ for (const { workflows } of this.instanceWorkflows.values()) delete workflows[workflowId];
892
906
  }
893
907
  /**
894
- * Clean up all registered workflows
908
+ * Clean up registered workflows. With `mastra`, releases one registration made for that instance; without it,
909
+ * clears everything.
895
910
  */
896
- static cleanup() {
897
- this.additionalWorkflows = {};
911
+ static cleanup(mastra) {
912
+ if (!mastra) {
913
+ this.additionalWorkflows = {};
914
+ this.instanceWorkflows.clear();
915
+ return;
916
+ }
917
+ const entry = this.instanceWorkflows.get(mastra);
918
+ if (entry && --entry.requests <= 0) this.instanceWorkflows.delete(mastra);
898
919
  }
899
920
  /**
900
921
  * Check if a workflow ID is a valid agent-builder workflow
901
922
  */
902
- static isAgentBuilderWorkflow(workflowId) {
903
- return workflowId in this.additionalWorkflows;
923
+ static isAgentBuilderWorkflow(workflowId, mastra) {
924
+ return this.getWorkflow(workflowId, mastra) !== void 0;
904
925
  }
905
926
  /**
906
927
  * Get all registered temporary workflow IDs (for debugging)
907
928
  */
908
929
  static getRegisteredWorkflowIds() {
909
- return Object.keys(this.additionalWorkflows);
930
+ return Object.keys(this.getAllWorkflows());
910
931
  }
911
932
  };
912
933
  /**
@@ -928,4 +949,4 @@ function convertInstructionsToString(message) {
928
949
  }
929
950
  export { getWorkflowInfo as a, toSlug as c, getStoredResourceScope as i, stringify as l, assertStoredResourceScope as n, normalizeRoutePath as o, convertInstructionsToString as r, scopeStoredResourceMetadata as s, WorkflowRegistry as t };
930
951
 
931
- //# sourceMappingURL=utils-qaBKOShQ.js.map
952
+ //# sourceMappingURL=utils-Dy_dQTlK.js.map