@mastra/server 1.75.0-alpha.6 → 1.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/{agents-kOz1lr_e.js → agents-BuKPiseS.js} +4 -2
  2. package/dist/agents-BuKPiseS.js.map +1 -0
  3. package/dist/{agents-DwJE1tsB.cjs → agents-COAEoXsc.cjs} +4 -2
  4. package/dist/agents-COAEoXsc.cjs.map +1 -0
  5. package/dist/{api-schema-manifest-BKsEMyEs.cjs → api-schema-manifest-D_esmkjG.cjs} +2 -2
  6. package/dist/{api-schema-manifest-BKsEMyEs.cjs.map → api-schema-manifest-D_esmkjG.cjs.map} +1 -1
  7. package/dist/{api-schema-manifest-KsETdHDS.js → api-schema-manifest-I5zotQbd.js} +2 -2
  8. package/dist/{api-schema-manifest-KsETdHDS.js.map → api-schema-manifest-I5zotQbd.js.map} +1 -1
  9. package/dist/{dist-D6XjxNT7.js → dist-DMtuYRLk.js} +117 -67
  10. package/dist/dist-DMtuYRLk.js.map +1 -0
  11. package/dist/{dist-Dz_c-SsY.cjs → dist-DpUNsgQx.cjs} +117 -67
  12. package/dist/dist-DpUNsgQx.cjs.map +1 -0
  13. package/dist/docs/SKILL.md +1 -1
  14. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  15. package/dist/{editor-builder-BLi1jvZd.js → editor-builder-CdLGv1Ka.js} +2 -2
  16. package/dist/{editor-builder-BLi1jvZd.js.map → editor-builder-CdLGv1Ka.js.map} +1 -1
  17. package/dist/{editor-builder-Dm6jviKJ.cjs → editor-builder-DJl5x_Kj.cjs} +2 -2
  18. package/dist/{editor-builder-Dm6jviKJ.cjs.map → editor-builder-DJl5x_Kj.cjs.map} +1 -1
  19. package/dist/{editor-builder-DrDs-t9i.cjs → editor-builder-DRlsFCN0.cjs} +2 -2
  20. package/dist/{editor-builder-DrDs-t9i.cjs.map → editor-builder-DRlsFCN0.cjs.map} +1 -1
  21. package/dist/{editor-builder-DJMAKDR5.js → editor-builder-DU3y5Ant.js} +2 -2
  22. package/dist/{editor-builder-DJMAKDR5.js.map → editor-builder-DU3y5Ant.js.map} +1 -1
  23. package/dist/{mcp-CzeJPT9B.js → mcp-BK6cmwww.js} +4 -2
  24. package/dist/{mcp-CzeJPT9B.js.map → mcp-BK6cmwww.js.map} +1 -1
  25. package/dist/{mcp-PvdJ7pkd.cjs → mcp-Jus386Vq.cjs} +4 -2
  26. package/dist/mcp-Jus386Vq.cjs.map +1 -0
  27. package/dist/{observability-new-endpoints-Kphyk3do.cjs → observability-new-endpoints-DBmaTpap.cjs} +2 -2
  28. package/dist/{observability-new-endpoints-Kphyk3do.cjs.map → observability-new-endpoints-DBmaTpap.cjs.map} +1 -1
  29. package/dist/{observability-new-endpoints-DQuhr8aL.js → observability-new-endpoints-wd_fs1mo.js} +2 -2
  30. package/dist/{observability-new-endpoints-DQuhr8aL.js.map → observability-new-endpoints-wd_fs1mo.js.map} +1 -1
  31. package/dist/{probe-image-size-CDCRrXNo.cjs → probe-image-size-DBGjhUtJ.cjs} +111 -161
  32. package/dist/probe-image-size-DBGjhUtJ.cjs.map +1 -0
  33. package/dist/{probe-image-size-Tf8sNZhU.js → probe-image-size-Dmoxv93t.js} +111 -161
  34. package/dist/probe-image-size-Dmoxv93t.js.map +1 -0
  35. package/dist/{routes-B_ehFjzs.js → routes-CdEBhq8U.js} +4 -4
  36. package/dist/{routes-B_ehFjzs.js.map → routes-CdEBhq8U.js.map} +1 -1
  37. package/dist/{routes-Op7uJGai.cjs → routes-CjpyDJjY.cjs} +4 -4
  38. package/dist/{routes-Op7uJGai.cjs.map → routes-CjpyDJjY.cjs.map} +1 -1
  39. package/dist/server/handlers/agent-builder.cjs +2 -2
  40. package/dist/server/handlers/agent-builder.js +2 -2
  41. package/dist/server/handlers/agent-controller.cjs +12 -9
  42. package/dist/server/handlers/agent-controller.cjs.map +1 -1
  43. package/dist/server/handlers/agent-controller.d.ts +8 -6
  44. package/dist/server/handlers/agent-controller.d.ts.map +1 -1
  45. package/dist/server/handlers/agent-controller.js +12 -9
  46. package/dist/server/handlers/agent-controller.js.map +1 -1
  47. package/dist/server/handlers/agents.cjs +1 -1
  48. package/dist/server/handlers/agents.d.ts +448 -0
  49. package/dist/server/handlers/agents.d.ts.map +1 -1
  50. package/dist/server/handlers/agents.js +1 -1
  51. package/dist/server/handlers/editor-builder.cjs +1 -1
  52. package/dist/server/handlers/editor-builder.js +1 -1
  53. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  54. package/dist/server/handlers/favorites-enrichment.js +1 -1
  55. package/dist/server/handlers/mcp.cjs +1 -1
  56. package/dist/server/handlers/mcp.d.ts +4 -0
  57. package/dist/server/handlers/mcp.d.ts.map +1 -1
  58. package/dist/server/handlers/mcp.js +1 -1
  59. package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
  60. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  61. package/dist/server/handlers/observability.cjs +1 -1
  62. package/dist/server/handlers/observability.js +1 -1
  63. package/dist/server/handlers/plans.cjs +1 -1
  64. package/dist/server/handlers/plans.js +1 -1
  65. package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
  66. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  67. package/dist/server/handlers/stored-agents.cjs +1 -1
  68. package/dist/server/handlers/stored-agents.js +1 -1
  69. package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
  70. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  71. package/dist/server/handlers/stored-skills.cjs +1 -1
  72. package/dist/server/handlers/stored-skills.js +1 -1
  73. package/dist/server/handlers/system.cjs +5 -2
  74. package/dist/server/handlers/system.cjs.map +1 -1
  75. package/dist/server/handlers/system.d.ts +2 -0
  76. package/dist/server/handlers/system.d.ts.map +1 -1
  77. package/dist/server/handlers/system.js +5 -2
  78. package/dist/server/handlers/system.js.map +1 -1
  79. package/dist/server/handlers/tools.cjs +1 -1
  80. package/dist/server/handlers/tools.js +1 -1
  81. package/dist/server/handlers/workflow-builder.cjs +1 -1
  82. package/dist/server/handlers/workflow-builder.js +1 -1
  83. package/dist/server/handlers/workflows.cjs +1 -1
  84. package/dist/server/handlers/workflows.js +1 -1
  85. package/dist/server/schemas/agents.d.ts +4 -0
  86. package/dist/server/schemas/agents.d.ts.map +1 -1
  87. package/dist/server/schemas/index.cjs +4 -4
  88. package/dist/server/schemas/index.js +4 -4
  89. package/dist/server/schemas/mcp.d.ts +4 -0
  90. package/dist/server/schemas/mcp.d.ts.map +1 -1
  91. package/dist/server/schemas/system.d.ts +1 -0
  92. package/dist/server/schemas/system.d.ts.map +1 -1
  93. package/dist/server/server-adapter/index.cjs +1 -1
  94. package/dist/server/server-adapter/index.js +1 -1
  95. package/dist/server/server-adapter/routes/mcp.d.ts +4 -0
  96. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -1
  97. package/dist/server/server-adapter/routes/system.d.ts +2 -0
  98. package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
  99. package/dist/{sync-BG15Yae1.js → sync-Ai_ZDz7U.js} +176 -132
  100. package/dist/sync-Ai_ZDz7U.js.map +1 -0
  101. package/dist/{sync-C4LbbSKR.cjs → sync-BrO5MtSe.cjs} +181 -131
  102. package/dist/sync-BrO5MtSe.cjs.map +1 -0
  103. package/dist/{system-Be5n6H_z.cjs → system-CycnKGR3.cjs} +3 -1
  104. package/dist/system-CycnKGR3.cjs.map +1 -0
  105. package/dist/{system-BtGAJr9R.js → system-Di2kpGTC.js} +3 -1
  106. package/dist/system-Di2kpGTC.js.map +1 -0
  107. package/dist/{workflow-builder-BSjQJCVD.cjs → workflow-builder-DYfgyaeB.cjs} +3 -3
  108. package/dist/{workflow-builder-BSjQJCVD.cjs.map → workflow-builder-DYfgyaeB.cjs.map} +1 -1
  109. package/dist/{workflow-builder-DJ48IzXQ.js → workflow-builder-DxQMzsT9.js} +3 -3
  110. package/dist/{workflow-builder-DJ48IzXQ.js.map → workflow-builder-DxQMzsT9.js.map} +1 -1
  111. package/package.json +8 -8
  112. package/dist/agents-DwJE1tsB.cjs.map +0 -1
  113. package/dist/agents-kOz1lr_e.js.map +0 -1
  114. package/dist/dist-D6XjxNT7.js.map +0 -1
  115. package/dist/dist-Dz_c-SsY.cjs.map +0 -1
  116. package/dist/mcp-PvdJ7pkd.cjs.map +0 -1
  117. package/dist/probe-image-size-CDCRrXNo.cjs.map +0 -1
  118. package/dist/probe-image-size-Tf8sNZhU.js.map +0 -1
  119. package/dist/sync-BG15Yae1.js.map +0 -1
  120. package/dist/sync-C4LbbSKR.cjs.map +0 -1
  121. package/dist/system-Be5n6H_z.cjs.map +0 -1
  122. package/dist/system-BtGAJr9R.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-BrO5MtSe.cjs","names":[],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ms/2.0.0/a65cc302695e9dde36bdbab59e67a07f313b77a4e7b89957a7bf17f930a58070/node_modules/ms/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/debug/2.6.9/801652e4785c84886fe45a314148ed1497034cb567c175a44cafefed7bfe99be/node_modules/debug/src/debug.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/debug/2.6.9/801652e4785c84886fe45a314148ed1497034cb567c175a44cafefed7bfe99be/node_modules/debug/src/browser.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/debug/2.6.9/801652e4785c84886fe45a314148ed1497034cb567c175a44cafefed7bfe99be/node_modules/debug/src/node.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/debug/2.6.9/801652e4785c84886fe45a314148ed1497034cb567c175a44cafefed7bfe99be/node_modules/debug/src/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/stream-parser/0.3.1/05001837beb9bed7e5025720d2f11fc3082c627fc85fbc1354f5c8b6191938d4/node_modules/stream-parser/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/common/read_le_be.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/common/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/miaf_utils.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/exif_utils.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/common/svg_header.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/avif.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/bmp.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/gif.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/ico.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/jpeg.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/png.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/psd.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/svg.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/tiff.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parse_sync/webp.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/lib/parsers_sync.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/probe-image-size/7.4.0/43b9b37f7c8cc84dfb4291a9197892579e4bb95490e2ba02998c927153256ea7/node_modules/probe-image-size/sync.js"],"sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require('fs');\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require('net');\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","\n/**\n * Module dependencies.\n */\n\nvar assert = require('assert');\nvar debug = require('debug')('stream-parser');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Parser;\n\n/**\n * Parser states.\n */\n\nvar INIT = -1;\nvar BUFFERING = 0;\nvar SKIPPING = 1;\nvar PASSTHROUGH = 2;\n\n/**\n * The `Parser` stream mixin works with either `Writable` or `Transform` stream\n * instances/subclasses. Provides a convenient generic \"parsing\" API:\n *\n * _bytes(n, cb) - buffers \"n\" bytes and then calls \"cb\" with the \"chunk\"\n * _skipBytes(n, cb) - skips \"n\" bytes and then calls \"cb\" when done\n *\n * If you extend a `Transform` stream, then the `_passthrough()` function is also\n * added:\n *\n * _passthrough(n, cb) - passes through \"n\" bytes untouched and then calls \"cb\"\n *\n * @param {Stream} stream Transform or Writable stream instance to extend\n * @api public\n */\n\nfunction Parser (stream) {\n var isTransform = stream && 'function' == typeof stream._transform;\n var isWritable = stream && 'function' == typeof stream._write;\n\n if (!isTransform && !isWritable) throw new Error('must pass a Writable or Transform stream in');\n debug('extending Parser into stream');\n\n // Transform streams and Writable streams get `_bytes()` and `_skipBytes()`\n stream._bytes = _bytes;\n stream._skipBytes = _skipBytes;\n\n // only Transform streams get the `_passthrough()` function\n if (isTransform) stream._passthrough = _passthrough;\n\n // take control of the streams2 callback functions for this stream\n if (isTransform) {\n stream._transform = transform;\n } else {\n stream._write = write;\n }\n}\n\nfunction init (stream) {\n debug('initializing parser stream');\n\n // number of bytes left to parser for the next \"chunk\"\n stream._parserBytesLeft = 0;\n\n // array of Buffer instances that make up the next \"chunk\"\n stream._parserBuffers = [];\n\n // number of bytes parsed so far for the next \"chunk\"\n stream._parserBuffered = 0;\n\n // flag that keeps track of if what the parser should do with bytes received\n stream._parserState = INIT;\n\n // the callback for the next \"chunk\"\n stream._parserCallback = null;\n\n // XXX: backwards compat with the old Transform API... remove at some point..\n if ('function' == typeof stream.push) {\n stream._parserOutput = stream.push.bind(stream);\n }\n\n stream._parserInit = true;\n}\n\n/**\n * Buffers `n` bytes and then invokes `fn` once that amount has been collected.\n *\n * @param {Number} n the number of bytes to buffer\n * @param {Function} fn callback function to invoke when `n` bytes are buffered\n * @api public\n */\n\nfunction _bytes (n, fn) {\n assert(!this._parserCallback, 'there is already a \"callback\" set!');\n assert(isFinite(n) && n > 0, 'can only buffer a finite number of bytes > 0, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug('buffering %o bytes', n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = BUFFERING;\n}\n\n/**\n * Skips over the next `n` bytes, then invokes `fn` once that amount has\n * been discarded.\n *\n * @param {Number} n the number of bytes to discard\n * @param {Function} fn callback function to invoke when `n` bytes have been skipped\n * @api public\n */\n\nfunction _skipBytes (n, fn) {\n assert(!this._parserCallback, 'there is already a \"callback\" set!');\n assert(n > 0, 'can only skip > 0 bytes, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug('skipping %o bytes', n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = SKIPPING;\n}\n\n/**\n * Passes through `n` bytes to the readable side of this stream untouched,\n * then invokes `fn` once that amount has been passed through.\n *\n * @param {Number} n the number of bytes to pass through\n * @param {Function} fn callback function to invoke when `n` bytes have passed through\n * @api public\n */\n\nfunction _passthrough (n, fn) {\n assert(!this._parserCallback, 'There is already a \"callback\" set!');\n assert(n > 0, 'can only pass through > 0 bytes, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug('passing through %o bytes', n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = PASSTHROUGH;\n}\n\n/**\n * The `_write()` callback function implementation.\n *\n * @api private\n */\n\nfunction write (chunk, encoding, fn) {\n if (!this._parserInit) init(this);\n debug('write(%o bytes)', chunk.length);\n\n // XXX: old Writable stream API compat... remove at some point...\n if ('function' == typeof encoding) fn = encoding;\n\n data(this, chunk, null, fn);\n}\n\n/**\n * The `_transform()` callback function implementation.\n *\n * @api private\n */\n\n\nfunction transform (chunk, output, fn) {\n if (!this._parserInit) init(this);\n debug('transform(%o bytes)', chunk.length);\n\n // XXX: old Transform stream API compat... remove at some point...\n if ('function' != typeof output) {\n output = this._parserOutput;\n }\n\n data(this, chunk, output, fn);\n}\n\n/**\n * The internal buffering/passthrough logic...\n *\n * This `_data` function get's \"trampolined\" to prevent stack overflows for tight\n * loops. This technique requires us to return a \"thunk\" function for any\n * synchronous action. Async stuff breaks the trampoline, but that's ok since it's\n * working with a new stack at that point anyway.\n *\n * @api private\n */\n\nfunction _data (stream, chunk, output, fn) {\n if (stream._parserBytesLeft <= 0) {\n return fn(new Error('got data but not currently parsing anything'));\n }\n\n if (chunk.length <= stream._parserBytesLeft) {\n // small buffer fits within the \"_parserBytesLeft\" window\n return function () {\n return process(stream, chunk, output, fn);\n };\n } else {\n // large buffer needs to be sliced on \"_parserBytesLeft\" and processed\n return function () {\n var b = chunk.slice(0, stream._parserBytesLeft);\n return process(stream, b, output, function (err) {\n if (err) return fn(err);\n if (chunk.length > b.length) {\n return function () {\n return _data(stream, chunk.slice(b.length), output, fn);\n };\n }\n });\n };\n }\n}\n\n/**\n * The internal `process` function gets called by the `data` function when\n * something \"interesting\" happens. This function takes care of buffering the\n * bytes when buffering, passing through the bytes when doing that, and invoking\n * the user callback when the number of bytes has been reached.\n *\n * @api private\n */\n\nfunction process (stream, chunk, output, fn) {\n stream._parserBytesLeft -= chunk.length;\n debug('%o bytes left for stream piece', stream._parserBytesLeft);\n\n if (stream._parserState === BUFFERING) {\n // buffer\n stream._parserBuffers.push(chunk);\n stream._parserBuffered += chunk.length;\n } else if (stream._parserState === PASSTHROUGH) {\n // passthrough\n output(chunk);\n }\n // don't need to do anything for the SKIPPING case\n\n if (0 === stream._parserBytesLeft) {\n // done with stream \"piece\", invoke the callback\n var cb = stream._parserCallback;\n if (cb && stream._parserState === BUFFERING && stream._parserBuffers.length > 1) {\n chunk = Buffer.concat(stream._parserBuffers, stream._parserBuffered);\n }\n if (stream._parserState !== BUFFERING) {\n chunk = null;\n }\n stream._parserCallback = null;\n stream._parserBuffered = 0;\n stream._parserState = INIT;\n stream._parserBuffers.splice(0); // empty\n\n if (cb) {\n var args = [];\n if (chunk) {\n // buffered\n args.push(chunk);\n } else {\n // passthrough\n }\n if (output) {\n // on a Transform stream, has \"output\" function\n args.push(output);\n }\n var async = cb.length > args.length;\n if (async) {\n args.push(trampoline(fn));\n }\n // invoke cb\n var rtn = cb.apply(stream, args);\n if (!async || fn === rtn) return fn;\n }\n } else {\n // need more bytes\n return fn;\n }\n}\n\nvar data = trampoline(_data);\n\n/**\n * Generic thunk-based \"trampoline\" helper function.\n *\n * @param {Function} input function\n * @return {Function} \"trampolined\" function\n * @api private\n */\n\nfunction trampoline (fn) {\n return function () {\n var result = fn.apply(this, arguments);\n\n while ('function' == typeof result) {\n result = result();\n }\n\n return result;\n };\n}\n","'use strict'\n\n\nexports.readUInt16LE = function (data, offset) {\n return data[offset] | (data[offset + 1] << 8)\n}\n\nexports.readUInt16BE = function (data, offset) {\n return (data[offset] << 8) | data[offset + 1]\n}\n\nexports.readInt16LE = function (data, offset) {\n return (exports.readUInt16LE(data, offset) << 16) >> 16\n}\n\nexports.readInt16BE = function (data, offset) {\n return (exports.readUInt16BE(data, offset) << 16) >> 16\n}\n\nexports.readUInt32LE = function (data, offset) {\n return (data[offset] |\n (data[offset + 1] << 8) |\n (data[offset + 2] << 16)) +\n data[offset + 3] * 0x1000000\n}\n\nexports.readUInt32BE = function (data, offset) {\n return data[offset] * 0x1000000 +\n ((data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3])\n}\n\nexports.readInt32LE = function (data, offset) {\n return exports.readUInt32LE(data, offset) | 0\n}\n\nexports.readInt32BE = function (data, offset) {\n return exports.readUInt32BE(data, offset) | 0\n}\n","'use strict'\n\n\nvar Transform = require('stream').Transform\nvar streamParser = require('stream-parser')\nvar readLeBe = require('./read_le_be')\n\n\nfunction ParserStream () {\n Transform.call(this, { readableObjectMode: true })\n}\n\n// Inherit from Transform\nParserStream.prototype = Object.create(Transform.prototype)\nParserStream.prototype.constructor = ParserStream\n\nstreamParser(ParserStream.prototype)\n\n\nexports.ParserStream = ParserStream\n\n\nexports.sliceEq = function (src, start, dest) {\n for (var i = start, j = 0; j < dest.length;) {\n if (src[i++] !== dest[j++]) return false\n }\n return true\n}\n\nexports.str2arr = function (str, format) {\n var arr = []\n var i = 0\n\n if (format && format === 'hex') {\n while (i < str.length) {\n arr.push(parseInt(str.slice(i, i + 2), 16))\n i += 2\n }\n } else {\n for (; i < str.length; i++) {\n arr.push(str.charCodeAt(i) & 0xFF)\n }\n }\n\n return arr\n}\n\nfunction ProbeError (message, code, statusCode) {\n Error.call(this)\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor)\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || ''\n }\n\n this.name = this.constructor.name\n\n this.message = message\n if (code) this.code = code\n if (statusCode) this.statusCode = statusCode\n}\n\n// Inherit from Error\nProbeError.prototype = Object.create(Error.prototype)\nProbeError.prototype.constructor = ProbeError\n\n\nexports.ProbeError = ProbeError\n\n// Re-export buffer readers\nexports.readUInt16LE = readLeBe.readUInt16LE\nexports.readUInt16BE = readLeBe.readUInt16BE\nexports.readInt16LE = readLeBe.readInt16LE\nexports.readInt16BE = readLeBe.readInt16BE\nexports.readUInt32LE = readLeBe.readUInt32LE\nexports.readUInt32BE = readLeBe.readUInt32BE\nexports.readInt32LE = readLeBe.readInt32LE\nexports.readInt32BE = readLeBe.readInt32BE\n","// Utils used to parse miaf-based files (avif/heic/heif)\n//\n// ISO media file spec:\n// https://web.archive.org/web/20180219054429/http://l.web.umkc.edu/lizhu/teaching/2016sp.video-communication/ref/mp4.pdf\n//\n// ISO image file format spec:\n// https://standards.iso.org/ittf/PubliclyAvailableStandards/c066067_ISO_IEC_23008-12_2017.zip\n//\n\n'use strict'\n\n\nvar readUInt16BE = require('./common').readUInt16BE\nvar readUInt32BE = require('./common').readUInt32BE\n\n/*\n * interface Box {\n * size: uint32; // if size == 0, box lasts until EOF\n * boxtype: char[4];\n * largesize?: uint64; // only if size == 1\n * usertype?: char[16]; // only if boxtype == 'uuid'\n * }\n */\nfunction unbox (data, offset) {\n if (data.length < 4 + offset) return null\n\n var size = readUInt32BE(data, offset)\n\n // size includes first 4 bytes (length)\n if (data.length < size + offset || size < 8) return null\n\n // if size === 1, real size is following uint64 (only for big boxes, not needed)\n // if size === 0, real size is until the end of the file (only for big boxes, not needed)\n\n return {\n boxtype: String.fromCharCode.apply(null, data.slice(offset + 4, offset + 8)),\n data: data.slice(offset + 8, offset + size),\n end: offset + size\n }\n}\n\n\nmodule.exports.unbox = unbox\n\n\n// parses `meta` -> `iprp` -> `ipco` box, returns:\n// {\n// sizes: [ { width, height } ],\n// transforms: [ { type, value } ]\n// }\nfunction scan_ipco (data, sandbox) {\n var offset = 0\n\n for (;;) {\n var box = unbox(data, offset)\n if (!box) break\n\n switch (box.boxtype) {\n case 'ispe':\n sandbox.sizes.push({\n width: readUInt32BE(box.data, 4),\n height: readUInt32BE(box.data, 8)\n })\n break\n\n case 'irot':\n sandbox.transforms.push({\n type: 'irot',\n value: box.data[0] & 3\n })\n break\n\n case 'imir':\n sandbox.transforms.push({\n type: 'imir',\n value: box.data[0] & 1\n })\n break\n }\n\n offset = box.end\n }\n}\n\n\nfunction readUIntBE (data, offset, size) {\n var result = 0\n\n for (var i = 0; i < size; i++) {\n result = result * 256 + (data[offset + i] || 0)\n }\n\n return result\n}\n\n\n// parses `meta` -> `iloc` box\nfunction scan_iloc (data, sandbox) {\n var offset_size = (data[4] >> 4) & 0xF\n var length_size = data[4] & 0xF\n var base_offset_size = (data[5] >> 4) & 0xF\n var item_count = readUInt16BE(data, 6)\n var offset = 8\n\n for (var i = 0; i < item_count; i++) {\n var item_ID = readUInt16BE(data, offset)\n offset += 2\n\n var data_reference_index = readUInt16BE(data, offset)\n offset += 2\n\n var base_offset = readUIntBE(data, offset, base_offset_size)\n offset += base_offset_size\n\n var extent_count = readUInt16BE(data, offset)\n offset += 2\n\n if (data_reference_index === 0 && extent_count === 1) {\n var first_extent_offset = readUIntBE(data, offset, offset_size)\n var first_extent_length = readUIntBE(data, offset + offset_size, length_size)\n sandbox.item_loc[item_ID] = { length: first_extent_length, offset: first_extent_offset + base_offset }\n }\n\n offset += extent_count * (offset_size + length_size)\n }\n}\n\n\n// parses `meta` -> `iinf` box\nfunction scan_iinf (data, sandbox) {\n var item_count = readUInt16BE(data, 4)\n var offset = 6\n\n for (var i = 0; i < item_count; i++) {\n var box = unbox(data, offset)\n if (!box) break\n if (box.boxtype === 'infe') {\n var item_id = readUInt16BE(box.data, 4)\n var item_name = ''\n\n for (var pos = 8; pos < box.data.length && box.data[pos]; pos++) {\n item_name += String.fromCharCode(box.data[pos])\n }\n\n sandbox.item_inf[item_name] = item_id\n }\n offset = box.end\n }\n}\n\n\n// parses `meta` -> `iprp` box\nfunction scan_iprp (data, sandbox) {\n var offset = 0\n\n for (;;) {\n var box = unbox(data, offset)\n if (!box) break\n if (box.boxtype === 'ipco') scan_ipco(box.data, sandbox)\n offset = box.end\n }\n}\n\n\n// parses `meta` box\nfunction scan_meta (data, sandbox) {\n var offset = 4 // version + flags\n\n for (;;) {\n var box = unbox(data, offset)\n if (!box) break\n if (box.boxtype === 'iprp') scan_iprp(box.data, sandbox)\n if (box.boxtype === 'iloc') scan_iloc(box.data, sandbox)\n if (box.boxtype === 'iinf') scan_iinf(box.data, sandbox)\n offset = box.end\n }\n}\n\n\n// get image with largest single dimension as base\nfunction getMaxSize (sizes) {\n var maxWidthSize = sizes.reduce(function (a, b) {\n return a.width > b.width || (a.width === b.width && a.height > b.height) ? a : b\n })\n\n var maxHeightSize = sizes.reduce(function (a, b) {\n return a.height > b.height || (a.height === b.height && a.width > b.width) ? a : b\n })\n\n var maxSize\n\n if (maxWidthSize.width > maxHeightSize.height ||\n (maxWidthSize.width === maxHeightSize.height && maxWidthSize.height > maxHeightSize.width)) {\n maxSize = maxWidthSize\n } else {\n maxSize = maxHeightSize\n }\n\n return maxSize\n}\n\n\nmodule.exports.readSizeFromMeta = function (data) {\n var sandbox = {\n sizes: [],\n transforms: [],\n item_inf: {},\n item_loc: {}\n }\n\n scan_meta(data, sandbox)\n\n if (!sandbox.sizes.length) return\n\n var maxSize = getMaxSize(sandbox.sizes)\n\n var orientation = 1\n\n // convert imir/irot to exif orientation\n sandbox.transforms.forEach(function (transform) {\n var rotate_ccw = { 1: 6, 2: 5, 3: 8, 4: 7, 5: 4, 6: 3, 7: 2, 8: 1 }\n var mirror_vert = { 1: 4, 2: 3, 3: 2, 4: 1, 5: 6, 6: 5, 7: 8, 8: 7 }\n\n if (transform.type === 'imir') {\n if (transform.value === 0) {\n // vertical flip\n orientation = mirror_vert[orientation]\n } else {\n // horizontal flip = vertical flip + 180 deg rotation\n orientation = mirror_vert[orientation]\n orientation = rotate_ccw[orientation]\n orientation = rotate_ccw[orientation]\n }\n }\n\n if (transform.type === 'irot') {\n // counter-clockwise rotation 90 deg 0-3 times\n for (var i = 0; i < transform.value; i++) {\n orientation = rotate_ccw[orientation]\n }\n }\n })\n\n var exif_location = null\n\n if (sandbox.item_inf.Exif) {\n exif_location = sandbox.item_loc[sandbox.item_inf.Exif]\n }\n\n return {\n width: maxSize.width,\n height: maxSize.height,\n orientation: sandbox.transforms.length ? orientation : null,\n variants: sandbox.sizes,\n exif_location: exif_location\n }\n}\n\n\nmodule.exports.getMimeType = function (data) {\n var brand = String.fromCharCode.apply(null, data.slice(0, 4))\n var compat = {}\n\n compat[brand] = true\n\n for (var i = 8; i < data.length; i += 4) {\n compat[String.fromCharCode.apply(null, data.slice(i, i + 4))] = true\n }\n\n // heic and avif are superset of miaf, so they should all list mif1 as compatible\n if (!compat.mif1 && !compat.msf1 && !compat.miaf) return\n\n if (brand === 'avif' || brand === 'avis' || brand === 'avio') {\n // `.avifs` and `image/avif-sequence` are removed from spec, all files have single type\n return { type: 'avif', mime: 'image/avif' }\n }\n\n // https://nokiatech.github.io/heif/technical.html\n if (brand === 'heic' || brand === 'heix') {\n return { type: 'heic', mime: 'image/heic' }\n }\n\n if (brand === 'hevc' || brand === 'hevx') {\n return { type: 'heic', mime: 'image/heic-sequence' }\n }\n\n if (compat.avif || compat.avis) {\n return { type: 'avif', mime: 'image/avif' }\n }\n\n if (compat.heic || compat.heix || compat.hevc || compat.hevx || compat.heis) {\n if (compat.msf1) {\n return { type: 'heif', mime: 'image/heif-sequence' }\n }\n return { type: 'heif', mime: 'image/heif' }\n }\n\n return { type: 'avif', mime: 'image/avif' }\n}\n","'use strict'\n\n//\n// Helpers\n//\nfunction error (message, code) {\n var err = new Error(message)\n err.code = code\n return err\n}\n\n\nfunction utf8_decode (str) {\n try {\n return decodeURIComponent(escape(str))\n } catch (_) {\n return str\n }\n}\n\n\n//\n// Exif parser\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - exif_start: Number - start of TIFF header (after Exif\\0\\0)\n// - exif_end: Number - end of Exif segment\n// - on_entry: Number - callback\n//\nfunction ExifParser (jpeg_bin, exif_start, exif_end) {\n // Uint8Array, exif without signature (which isn't included in offsets)\n this.input = jpeg_bin.subarray(exif_start, exif_end)\n\n // offset correction for `on_entry` callback\n this.start = exif_start\n\n // Check TIFF header (includes byte alignment and first IFD offset)\n var sig = String.fromCharCode.apply(null, this.input.subarray(0, 4))\n\n if (sig !== 'II\\x2A\\0' && sig !== 'MM\\0\\x2A') {\n throw error('invalid TIFF signature', 'EBADDATA')\n }\n\n // true if motorola (big endian) byte alignment, false if intel\n this.big_endian = sig[0] === 'M'\n}\n\n\nExifParser.prototype.each = function (on_entry) {\n // allow premature exit\n this.aborted = false\n\n var offset = this.read_uint32(4)\n\n this.ifds_to_read = [{\n id: 0,\n offset: offset\n }]\n\n while (this.ifds_to_read.length > 0 && !this.aborted) {\n var i = this.ifds_to_read.shift()\n if (!i.offset) continue\n this.scan_ifd(i.id, i.offset, on_entry)\n }\n}\n\n\nExifParser.prototype.read_uint16 = function (offset) {\n var d = this.input\n if (offset + 2 > d.length) throw error('unexpected EOF', 'EBADDATA')\n\n return this.big_endian\n ? d[offset] * 0x100 + d[offset + 1]\n : d[offset] + d[offset + 1] * 0x100\n}\n\n\nExifParser.prototype.read_uint32 = function (offset) {\n var d = this.input\n if (offset + 4 > d.length) throw error('unexpected EOF', 'EBADDATA')\n\n return this.big_endian\n ? d[offset] * 0x1000000 + d[offset + 1] * 0x10000 + d[offset + 2] * 0x100 + d[offset + 3]\n : d[offset] + d[offset + 1] * 0x100 + d[offset + 2] * 0x10000 + d[offset + 3] * 0x1000000\n}\n\n\nExifParser.prototype.is_subifd_link = function (ifd, tag) {\n return (ifd === 0 && tag === 0x8769) || // SubIFD\n (ifd === 0 && tag === 0x8825) || // GPS Info\n (ifd === 0x8769 && tag === 0xA005) // Interop IFD\n}\n\n\n// Returns byte length of a single component of a given format\n//\nExifParser.prototype.exif_format_length = function (format) {\n switch (format) {\n case 1: // byte\n case 2: // ascii\n case 6: // sbyte\n case 7: // undefined\n return 1\n\n case 3: // short\n case 8: // sshort\n return 2\n\n case 4: // long\n case 9: // slong\n case 11: // float\n return 4\n\n case 5: // rational\n case 10: // srational\n case 12: // double\n return 8\n\n default:\n // unknown type\n return 0\n }\n}\n\n\n// Reads Exif data\n//\nExifParser.prototype.exif_format_read = function (format, offset) {\n var v\n\n switch (format) {\n case 1: // byte\n case 2: // ascii\n v = this.input[offset]\n return v\n\n case 6: // sbyte\n v = this.input[offset]\n return v | (v & 0x80) * 0x1fffffe\n\n case 3: // short\n v = this.read_uint16(offset)\n return v\n\n case 8: // sshort\n v = this.read_uint16(offset)\n return v | (v & 0x8000) * 0x1fffe\n\n case 4: // long\n v = this.read_uint32(offset)\n return v\n\n case 9: // slong\n v = this.read_uint32(offset)\n return v | 0\n\n case 5: // rational\n case 10: // srational\n case 11: // float\n case 12: // double\n return null // not implemented\n\n case 7: // undefined\n return null // blob\n\n default:\n // unknown type\n return null\n }\n}\n\n\nExifParser.prototype.scan_ifd = function (ifd_no, offset, on_entry) {\n var entry_count = this.read_uint16(offset)\n\n offset += 2\n\n for (var i = 0; i < entry_count; i++) {\n var tag = this.read_uint16(offset)\n var format = this.read_uint16(offset + 2)\n var count = this.read_uint32(offset + 4)\n\n var comp_length = this.exif_format_length(format)\n var data_length = count * comp_length\n var data_offset = data_length <= 4 ? offset + 8 : this.read_uint32(offset + 8)\n var is_subifd_link = false\n\n if (data_offset + data_length > this.input.length) {\n throw error('unexpected EOF', 'EBADDATA')\n }\n\n var value = []\n var comp_offset = data_offset\n\n for (var j = 0; j < count; j++, comp_offset += comp_length) {\n var item = this.exif_format_read(format, comp_offset)\n if (item === null) {\n value = null\n break\n }\n value.push(item)\n }\n\n if (Array.isArray(value) && format === 2) {\n value = utf8_decode(String.fromCharCode.apply(null, value))\n if (value && value[value.length - 1] === '\\0') value = value.slice(0, -1)\n }\n\n if (this.is_subifd_link(ifd_no, tag)) {\n if (Array.isArray(value) && Number.isInteger(value[0]) && value[0] > 0) {\n this.ifds_to_read.push({\n id: tag,\n offset: value[0]\n })\n is_subifd_link = true\n }\n }\n\n var entry = {\n is_big_endian: this.big_endian,\n ifd: ifd_no,\n tag: tag,\n format: format,\n count: count,\n entry_offset: offset + this.start,\n data_length: data_length,\n data_offset: data_offset + this.start,\n value: value,\n is_subifd_link: is_subifd_link\n }\n\n if (on_entry(entry) === false) {\n this.aborted = true\n return\n }\n\n offset += 12\n }\n\n if (ifd_no === 0) {\n this.ifds_to_read.push({\n id: 1,\n offset: this.read_uint32(offset)\n })\n }\n}\n\n\nmodule.exports.ExifParser = ExifParser\n\n// returns orientation stored in Exif (1-8), 0 if none was found, -1 if error\nmodule.exports.get_orientation = function (data) {\n var orientation = 0\n try {\n new ExifParser(data, 0, data.length).each(function (entry) {\n if (entry.ifd === 0 && entry.tag === 0x112 && Array.isArray(entry.value)) {\n orientation = entry.value[0]\n return false\n }\n })\n return orientation\n } catch (err) {\n return -1\n }\n}\n","'use strict'\n\n\n// Parse the XML prolog and the root element of an SVG document.\n//\n// All regexps below are anchored (`^`) and applied at a known offset, so the\n// engine never rescans the input from every position. Alternatives inside\n// PROLOG_RE have disjoint prefixes (`\\s`, `<?`, `<!--`, `<![CDATA[`, `<!`+letter),\n// which keeps the repetition deterministic. Both properties are required to\n// stay linear on malformed input.\n\n// max size for pre-svg-tag comments plus svg tag itself\nexports.MAX_DATA_LENGTH = 1024 * 10\n\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*'\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+'\nvar single_quoted = \"'[^']*'\"\nvar double_quoted = '\"[^\"]*\"'\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')'\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)'\n\n// prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?, Misc ::= Comment | PI | S\nvar pi = '<[?][\\\\s\\\\S]*?[?]>'\nvar comment = '<!--(?:[^-]|-[^-]|--[^>])*-->'\nvar cdata = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>'\n// doctypedecl, including the optional internal subset: <!DOCTYPE svg [ ... ]>\nvar doctype = '<![A-Za-z][^[>]*(?:\\\\[[\\\\s\\\\S]*?\\\\][^>]*)?>'\n\nvar PROLOG_RE = new RegExp('^(?:\\\\s+|' + pi + '|' + comment + '|' + cdata + '|' + doctype + ')*')\n\n// root element: tag name + everything up to the closing bracket\nvar ROOT_RE = new RegExp('^<(' + attr_name + ')(' + attribute + '*)\\\\s*/?>')\n\n// single attribute, iterated over the blob captured by ROOT_RE\nvar ATTR_RE = new RegExp(\n '\\\\s+(' + attr_name + ')(?:\\\\s*=\\\\s*(?:(' + unquoted + \")|'([^']*)'|\\\"([^\\\"]*)\\\"))?\",\n 'g'\n)\n\nvar SVG_UNITS_RE = /in$|mm$|cm$|pt$|pc$|px$|em$|ex$/\n\n\n// Filter NaN, Infinity, < 0\nfunction isFinitePositive (val) {\n return typeof val === 'number' && isFinite(val) && val > 0\n}\n\n\nfunction units (str) {\n // all units are 2 chars long, no need to scan the whole value\n var suffix = str.slice(-2)\n\n var m = suffix.match(SVG_UNITS_RE)\n\n return m === null ? 'px' : m[0]\n}\n\n\n// Returns { width, height, type, mime, wUnits, hUnits } or undefined\n//\nexports.parse = function (str) {\n // skip prolog: xml declaration, comments, PIs, doctype\n var prolog = str.match(PROLOG_RE)[0]\n\n var root = ROOT_RE.exec(prolog.length ? str.slice(prolog.length) : str)\n if (!root) return\n\n // top level element must be svg (with optional namespace prefix),\n // used to skip svg embedded in html\n var tag = root[1]\n if (tag !== 'svg' && tag.slice(-4) !== ':svg') return\n\n // collect attributes by exact name, so that `stroke-width`, `data-height`\n // and values of unrelated attributes can't be picked up by accident\n var attrs = {}\n var m\n\n ATTR_RE.lastIndex = 0\n\n while ((m = ATTR_RE.exec(root[2])) !== null) {\n attrs[m[1]] = m[2] !== undefined ? m[2] : (m[3] !== undefined ? m[3] : m[4])\n }\n\n var wAttr = attrs.width\n var hAttr = attrs.height\n var vbAttr = attrs.viewBox || attrs.viewbox\n\n // percentages are relative to the viewport, we can't resolve those\n if (wAttr && wAttr.indexOf('%') !== -1) wAttr = undefined\n if (hAttr && hAttr.indexOf('%') !== -1) hAttr = undefined\n\n var width = parseFloat(wAttr)\n var height = parseFloat(hAttr)\n\n // Extract from direct values\n\n if (wAttr && hAttr) {\n if (!isFinitePositive(width) || !isFinitePositive(height)) return\n\n return {\n width: width,\n height: height,\n type: 'svg',\n mime: 'image/svg+xml',\n wUnits: units(wAttr),\n hUnits: units(hAttr)\n }\n }\n\n // Extract from viewbox\n\n var parts = (vbAttr || '').trim().split(/[\\s,]+/)\n var vbWidth = parseFloat(parts[2])\n var vbHeight = parseFloat(parts[3])\n\n if (!isFinitePositive(vbWidth) || !isFinitePositive(vbHeight)) return\n if (units(parts[2]) !== units(parts[3])) return\n\n var ratio = vbWidth / vbHeight\n\n if (wAttr) {\n if (!isFinitePositive(width)) return\n\n return {\n width: width,\n height: width / ratio,\n type: 'svg',\n mime: 'image/svg+xml',\n wUnits: units(wAttr),\n hUnits: units(wAttr)\n }\n }\n\n if (hAttr) {\n if (!isFinitePositive(height)) return\n\n return {\n width: height * ratio,\n height: height,\n type: 'svg',\n mime: 'image/svg+xml',\n wUnits: units(hAttr),\n hUnits: units(hAttr)\n }\n }\n\n return {\n width: vbWidth,\n height: vbHeight,\n type: 'svg',\n mime: 'image/svg+xml',\n wUnits: units(parts[2]),\n hUnits: units(parts[3])\n }\n}\n","// Utils used to parse miaf-based files (avif/heic/heif)\n//\n// - image collections are not supported (only last size is reported)\n// - images with metadata encoded after image data are not supported\n// - images without any `ispe` box are not supported\n//\n\n\n'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readUInt32BE = require('../common').readUInt32BE\nvar miaf = require('../miaf_utils')\nvar exif = require('../exif_utils')\n\nvar SIG_FTYP = str2arr('ftyp')\n\n\nmodule.exports = function (data) {\n // ISO media file (avif format) starts with ftyp box:\n // 0000 0020 6674 7970 6176 6966\n // (length) f t y p a v i f\n //\n if (!sliceEq(data, 4, SIG_FTYP)) return\n\n var firstBox = miaf.unbox(data, 0)\n if (!firstBox) return\n\n var fileType = miaf.getMimeType(firstBox.data)\n if (!fileType) return\n\n var meta\n var offset = firstBox.end\n\n for (;;) {\n var box = miaf.unbox(data, offset)\n if (!box) break\n offset = box.end\n\n // mdat block SHOULD be last (but not strictly required),\n // so it's unlikely that metadata is after it\n if (box.boxtype === 'mdat') return\n if (box.boxtype === 'meta') {\n meta = box.data\n break\n }\n }\n\n if (!meta) return\n\n var imgSize = miaf.readSizeFromMeta(meta)\n\n if (!imgSize) return\n\n var result = {\n width: imgSize.width,\n height: imgSize.height,\n type: fileType.type,\n mime: fileType.mime,\n wUnits: 'px',\n hUnits: 'px'\n }\n\n if (imgSize.variants.length > 1) {\n result.variants = imgSize.variants\n }\n\n if (imgSize.orientation) {\n result.orientation = imgSize.orientation\n }\n\n if (imgSize.exif_location &&\n imgSize.exif_location.offset + imgSize.exif_location.length <= data.length) {\n var sig_offset = readUInt32BE(data, imgSize.exif_location.offset)\n var exif_data = data.slice(\n imgSize.exif_location.offset + sig_offset + 4,\n imgSize.exif_location.offset + imgSize.exif_location.length)\n\n var orientation = exif.get_orientation(exif_data)\n\n if (orientation > 0) result.orientation = orientation\n }\n\n return result\n}\n","'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readInt16LE = require('../common').readInt16LE\nvar readInt32LE = require('../common').readInt32LE\nvar readUInt32LE = require('../common').readUInt32LE\n\nvar SIG_BM = str2arr('BM')\n\n\nmodule.exports = function (data) {\n if (data.length < 26) return\n\n if (!sliceEq(data, 0, SIG_BM)) return\n\n var h\n var w\n var headerSize = readUInt32LE(data, 14)\n\n if (headerSize === 12) {\n // BMP v2 header\n w = readInt16LE(data, 18)\n h = readInt16LE(data, 20)\n } else if (headerSize > 12) {\n // BMP v3+ header\n w = readInt32LE(data, 18)\n h = readInt32LE(data, 22)\n } else {\n // BPM v1 and other garbage (10 bytes usually)\n return\n }\n\n return {\n width: w,\n // Height can be negative to indicate a top-down bitmap\n height: Math.abs(h),\n type: 'bmp',\n mime: 'image/bmp',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n","'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readUInt16LE = require('../common').readUInt16LE\n\n\nvar SIG_GIF87a = str2arr('GIF87a')\nvar SIG_GIF89a = str2arr('GIF89a')\n\n\nmodule.exports = function (data) {\n if (data.length < 10) return\n\n if (!sliceEq(data, 0, SIG_GIF87a) && !sliceEq(data, 0, SIG_GIF89a)) return\n\n return {\n width: readUInt16LE(data, 6),\n height: readUInt16LE(data, 8),\n type: 'gif',\n mime: 'image/gif',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n","'use strict'\n\n\nvar readUInt16LE = require('../common').readUInt16LE\n\nvar HEADER = 0\nvar TYPE_ICO = 1\nvar INDEX_SIZE = 16\n\n// Format specification:\n// https://en.wikipedia.org/wiki/ICO_(file_format)#Icon_resource_structure\nmodule.exports = function (data) {\n var header = readUInt16LE(data, 0)\n var type = readUInt16LE(data, 2)\n var numImages = readUInt16LE(data, 4)\n\n if (header !== HEADER || type !== TYPE_ICO || !numImages) {\n return\n }\n\n if (data.length < 6 + numImages * INDEX_SIZE) return\n\n var variants = []\n var maxSize = { width: 0, height: 0 }\n\n for (var i = 0; i < numImages; i++) {\n var width = data[6 + INDEX_SIZE * i] || 256\n var height = data[6 + INDEX_SIZE * i + 1] || 256\n var size = { width: width, height: height }\n variants.push(size)\n\n if (width > maxSize.width || height > maxSize.height) {\n maxSize = size\n }\n }\n\n return {\n width: maxSize.width,\n height: maxSize.height,\n variants: variants,\n type: 'ico',\n mime: 'image/x-icon',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n","'use strict'\n\n\nvar readUInt16BE = require('../common').readUInt16BE\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar exif = require('../exif_utils')\n\n\nvar SIG_EXIF = str2arr('Exif\\0\\0')\n\n\nmodule.exports = function (data) {\n if (data.length < 2) return\n\n // first marker of the file MUST be 0xFFD8,\n // following by either 0xFFE0, 0xFFE2 or 0xFFE3\n if (data[0] !== 0xFF || data[1] !== 0xD8 || data[2] !== 0xFF) return\n\n var offset = 2\n\n for (;;) {\n // skip until we see 0xFF, see https://github.com/nodeca/probe-image-size/issues/68\n for (;;) {\n if (data.length - offset < 2) return\n if (data[offset++] === 0xFF) break\n }\n\n var code = data[offset++]\n var length\n\n // skip padding bytes\n while (code === 0xFF) code = data[offset++]\n\n // standalone markers, according to JPEG 1992,\n // http://www.w3.org/Graphics/JPEG/itu-t81.pdf, see Table B.1\n if ((code >= 0xD0 && code <= 0xD9) || code === 0x01) {\n length = 0\n } else if (code >= 0xC0 && code <= 0xFE) {\n // the rest of the unreserved markers\n if (data.length - offset < 2) return\n\n length = readUInt16BE(data, offset) - 2\n offset += 2\n } else {\n // unknown markers\n return\n }\n\n if (code === 0xD9 /* EOI */ || code === 0xDA /* SOS */) {\n // end of the datastream\n return\n }\n\n var orientation\n\n // try to get orientation from Exif segment\n if (code === 0xE1 && length >= 10 && sliceEq(data, offset, SIG_EXIF)) {\n orientation = exif.get_orientation(data.slice(offset + 6, offset + length))\n }\n\n if (length >= 5 &&\n (code >= 0xC0 && code <= 0xCF) &&\n code !== 0xC4 && code !== 0xC8 && code !== 0xCC) {\n if (data.length - offset < length) return\n\n var result = {\n width: readUInt16BE(data, offset + 3),\n height: readUInt16BE(data, offset + 1),\n type: 'jpg',\n mime: 'image/jpeg',\n wUnits: 'px',\n hUnits: 'px'\n }\n\n if (orientation > 0) {\n result.orientation = orientation\n }\n\n return result\n }\n\n offset += length\n }\n}\n","'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readUInt32BE = require('../common').readUInt32BE\n\n\nvar SIG_PNG = str2arr('\\x89PNG\\r\\n\\x1a\\n')\nvar SIG_IHDR = str2arr('IHDR')\n\n\nmodule.exports = function (data) {\n if (data.length < 24) return\n\n // check PNG signature\n if (!sliceEq(data, 0, SIG_PNG)) return\n\n // check that first chunk is IHDR\n if (!sliceEq(data, 12, SIG_IHDR)) return\n\n return {\n width: readUInt32BE(data, 16),\n height: readUInt32BE(data, 20),\n type: 'png',\n mime: 'image/png',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n","'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readUInt32BE = require('../common').readUInt32BE\n\n\nvar SIG_8BPS = str2arr('8BPS\\x00\\x01')\n\n\nmodule.exports = function (data) {\n if (data.length < 6 + 16) return\n\n // signature + version\n if (!sliceEq(data, 0, SIG_8BPS)) return\n\n return {\n width: readUInt32BE(data, 6 + 12),\n height: readUInt32BE(data, 6 + 8),\n type: 'psd',\n mime: 'image/vnd.adobe.photoshop',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n","'use strict'\n\n\nvar parseSvgHeader = require('../common/svg_header').parse\nvar MAX_DATA_LENGTH = require('../common/svg_header').MAX_DATA_LENGTH\n\n\nmodule.exports = function (data) {\n var start = 0\n\n // Skip byte order mark, https://github.com/nodeca/probe-image-size/issues/57\n // Bytes are copied as latin1 below, so BOM would not be seen as whitespace\n // by the header parser.\n if (data[0] === 0xEF && data[1] === 0xBB && data[2] === 0xBF) start = 3\n\n var str = ''\n var max = Math.min(data.length, start + MAX_DATA_LENGTH)\n\n for (var i = start; i < max; i++) {\n // 1. We can't rely on buffer features\n // 2. Don't care about UTF16 because ascii is enougth for our goals\n str += String.fromCharCode(data[i])\n }\n\n return parseSvgHeader(str)\n}\n","'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readUInt16LE = require('../common').readUInt16LE\nvar readUInt16BE = require('../common').readUInt16BE\nvar readUInt32LE = require('../common').readUInt32LE\nvar readUInt32BE = require('../common').readUInt32BE\n\n\nvar SIG_1 = str2arr('II\\x2A\\0')\nvar SIG_2 = str2arr('MM\\0\\x2A')\n\n\nfunction readUInt16 (buffer, offset, is_big_endian) {\n return is_big_endian ? readUInt16BE(buffer, offset) : readUInt16LE(buffer, offset)\n}\n\nfunction readUInt32 (buffer, offset, is_big_endian) {\n return is_big_endian ? readUInt32BE(buffer, offset) : readUInt32LE(buffer, offset)\n}\n\nfunction readIFDValue (data, data_offset, is_big_endian) {\n var type = readUInt16(data, data_offset + 2, is_big_endian)\n var values = readUInt32(data, data_offset + 4, is_big_endian)\n\n if (values !== 1 || (type !== 3 && type !== 4)) return null\n\n if (type === 3) {\n return readUInt16(data, data_offset + 8, is_big_endian)\n }\n\n return readUInt32(data, data_offset + 8, is_big_endian)\n}\n\nmodule.exports = function (data) {\n if (data.length < 8) return\n\n // check TIFF signature\n if (!sliceEq(data, 0, SIG_1) && !sliceEq(data, 0, SIG_2)) return\n\n var is_big_endian = (data[0] === 77 /* 'MM' */)\n var count = readUInt32(data, 4, is_big_endian) - 8\n\n if (count < 0) return\n\n // skip until IFD\n var offset = count + 8\n\n if (data.length - offset < 2) return\n\n // read number of IFD entries\n var ifd_size = readUInt16(data, offset + 0, is_big_endian) * 12\n\n if (ifd_size <= 0) return\n\n offset += 2\n\n // read all IFD entries\n if (data.length - offset < ifd_size) return\n\n var i, width, height, tag\n\n for (i = 0; i < ifd_size; i += 12) {\n tag = readUInt16(data, offset + i, is_big_endian)\n\n if (tag === 256) {\n width = readIFDValue(data, offset + i, is_big_endian)\n } else if (tag === 257) {\n height = readIFDValue(data, offset + i, is_big_endian)\n }\n }\n\n if (width && height) {\n return {\n width: width,\n height: height,\n type: 'tiff',\n mime: 'image/tiff',\n wUnits: 'px',\n hUnits: 'px'\n }\n }\n}\n","'use strict'\n\n\nvar str2arr = require('../common').str2arr\nvar sliceEq = require('../common').sliceEq\nvar readUInt16LE = require('../common').readUInt16LE\nvar readUInt32LE = require('../common').readUInt32LE\nvar exif = require('../exif_utils')\n\n\nvar SIG_RIFF = str2arr('RIFF')\nvar SIG_WEBP = str2arr('WEBP')\n\n\nfunction parseVP8 (data, offset) {\n if (data[offset + 3] !== 0x9D || data[offset + 4] !== 0x01 || data[offset + 5] !== 0x2A) {\n // bad code block signature\n return\n }\n\n return {\n width: readUInt16LE(data, offset + 6) & 0x3FFF,\n height: readUInt16LE(data, offset + 8) & 0x3FFF,\n type: 'webp',\n mime: 'image/webp',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n\n\nfunction parseVP8L (data, offset) {\n if (data[offset] !== 0x2F) return\n\n var bits = readUInt32LE(data, offset + 1)\n\n return {\n width: (bits & 0x3FFF) + 1,\n height: ((bits >> 14) & 0x3FFF) + 1,\n type: 'webp',\n mime: 'image/webp',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n\n\nfunction parseVP8X (data, offset) {\n return {\n // TODO: replace with `data.readUIntLE(8, 3) + 1`\n // when 0.10 support is dropped\n width: ((data[offset + 6] << 16) | (data[offset + 5] << 8) | data[offset + 4]) + 1,\n height: ((data[offset + 9] << 16) | (data[offset + 8] << 8) | data[offset + 7]) + 1,\n type: 'webp',\n mime: 'image/webp',\n wUnits: 'px',\n hUnits: 'px'\n }\n}\n\n\nmodule.exports = function (data) {\n if (data.length < 16) return\n\n // check /^RIFF....WEBPVP8([ LX])$/ signature\n if (!sliceEq(data, 0, SIG_RIFF) || !sliceEq(data, 8, SIG_WEBP)) return\n\n var offset = 12\n var result = null\n var exif_orientation = 0\n var fileLength = readUInt32LE(data, 4) + 8\n\n if (fileLength > data.length) return\n\n while (offset + 8 < fileLength) {\n if (data[offset] === 0) {\n // after each chunk of odd size there should be 0 byte of padding, skip those\n offset++\n continue\n }\n\n var header = String.fromCharCode.apply(null, data.slice(offset, offset + 4))\n var length = readUInt32LE(data, offset + 4)\n\n if (header === 'VP8 ' && length >= 10) {\n result = result || parseVP8(data, offset + 8)\n } else if (header === 'VP8L' && length >= 5) {\n result = result || parseVP8L(data, offset + 8)\n } else if (header === 'VP8X' && length >= 10) {\n result = result || parseVP8X(data, offset + 8)\n } else if (header === 'EXIF') {\n exif_orientation = exif.get_orientation(data.slice(offset + 8, offset + 8 + length))\n\n // exif is the last chunk we care about, stop after it\n offset = Infinity\n }\n\n offset += 8 + length\n }\n\n if (!result) return\n\n if (exif_orientation > 0) {\n result.orientation = exif_orientation\n }\n\n return result\n}\n","'use strict'\n\n\nmodule.exports = {\n avif: require('./parse_sync/avif'),\n bmp: require('./parse_sync/bmp'),\n gif: require('./parse_sync/gif'),\n ico: require('./parse_sync/ico'),\n jpeg: require('./parse_sync/jpeg'),\n png: require('./parse_sync/png'),\n psd: require('./parse_sync/psd'),\n svg: require('./parse_sync/svg'),\n tiff: require('./parse_sync/tiff'),\n webp: require('./parse_sync/webp')\n}\n","'use strict'\n\n\nvar parsers = require('./lib/parsers_sync')\n\n\nfunction probeBuffer (buffer) {\n var parser_names = Object.keys(parsers)\n\n for (var i = 0; i < parser_names.length; i++) {\n var result = parsers[parser_names[i]](buffer)\n\n if (result) {\n if (result.width > 0 && result.height > 0) return result\n return null\n }\n }\n\n return null\n}\n\n\nmodule.exports = function get_image_size (src) {\n return probeBuffer(src)\n}\n\nmodule.exports.parsers = parsers\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],"mappings":"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"}
@@ -59,6 +59,8 @@ const systemPackagesResponseSchema = zod_v4.z.object({
59
59
  cmsEnabled: zod_v4.z.boolean(),
60
60
  /** Whether the default LiveKit connection-details route is registered — not whether credentials or a worker exist. */
61
61
  liveKitConnectionRouteEnabled: zod_v4.z.boolean(),
62
+ /** True when the default LiveKit trace recording review route is registered. */
63
+ liveKitRecordingRouteEnabled: zod_v4.z.boolean().optional(),
62
64
  /**
63
65
  * The editor's configured source, when set. `'code'` swaps Studio's
64
66
  * Save/Publish UI for Download JSON + Open PR. `'db'` keeps the standard
@@ -160,4 +162,4 @@ Object.defineProperty(exports, "systemPackagesResponseSchema", {
160
162
  }
161
163
  });
162
164
 
163
- //# sourceMappingURL=system-Be5n6H_z.cjs.map
165
+ //# sourceMappingURL=system-CycnKGR3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-CycnKGR3.cjs","names":["z"],"sources":["../src/server/schemas/system.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\nexport const mastraPackageSchema = z.object({\n name: z.string(),\n version: z.string(),\n});\n\nexport const observabilityRuntimeStrategySchema = z.enum([\n 'realtime',\n 'batch-with-updates',\n 'insert-only',\n 'event-sourced',\n]);\n\nexport const observabilityDiscoveryCapabilitiesSchema = z.object({\n entityTypes: z.boolean().describe('GET /observability/discovery/entity-types'),\n entityNames: z.boolean().describe('GET /observability/discovery/entity-names'),\n serviceNames: z.boolean().describe('GET /observability/discovery/service-names'),\n environments: z.boolean().describe('GET /observability/discovery/environments'),\n tags: z.boolean().describe('GET /observability/discovery/tags'),\n metrics: z.boolean().describe('GET /observability/discovery/metric-names, metric-label-keys and metric-label-values'),\n});\n\n/**\n * Optional observability APIs the configured observability store can serve.\n * Omitted when no observability store is configured.\n */\nexport const observabilityStorageCapabilitiesSchema = z.object({\n metrics: z.boolean().describe('Metrics endpoints (/observability/metrics and /observability/metrics/*)'),\n logs: z.boolean().describe('Logs endpoint (GET /observability/logs)'),\n discovery: observabilityDiscoveryCapabilitiesSchema.describe(\n 'Filter discovery endpoints. Unsupported discovery routes return empty results.',\n ),\n deltaPolling: z.boolean().describe(\"Cursor-based `mode: 'delta'` polling on observability list endpoints\"),\n traceQuery: z\n .boolean()\n .describe(\n 'Advanced trace queries (POST /observability/traces/query). When false, list traces with GET /observability/traces/light instead.',\n ),\n traceQueryRootDuration: z.boolean().describe('`durationMs` predicates in trace and thread queries'),\n traceQueryContextIds: z\n .boolean()\n .describe('`runId`, `sessionId`, `userId` and `organizationId` predicates in trace and thread queries'),\n traceQueryDiscovery: z\n .boolean()\n .describe('Trace query field discovery (POST /observability/traces/query/fields and /values)'),\n traceQueryTenantScope: z.boolean().describe('Trusted tenant scoping of trace and thread queries'),\n threadQuery: z.boolean().describe('Advanced thread queries (POST /observability/threads/query)'),\n spanQuery: z.boolean().describe('Span queries (POST /observability/spans/query)'),\n feedback: z\n .boolean()\n .describe(\n 'Feedback endpoints (/observability/feedback and /observability/feedback/*). Unsupported feedback routes return 501.',\n ),\n});\n\nexport const editorSourceSchema = z.enum(['code', 'db']);\n\nexport const editorSourceCapabilitiesSchema = z.object({\n source: editorSourceSchema,\n storage: z.enum(['database', 'filesystem', 'source-provider', 'unavailable']),\n provider: z\n .object({\n id: z.string(),\n displayName: z.string(),\n })\n .optional(),\n canSave: z.boolean(),\n canOpenChangeRequest: z.boolean(),\n unavailableReason: z.string().optional(),\n});\n\nexport const systemPackagesResponseSchema = z.object({\n packages: z.array(mastraPackageSchema),\n isDev: z.boolean(),\n cmsEnabled: z.boolean(),\n /** Whether the default LiveKit connection-details route is registered — not whether credentials or a worker exist. */\n liveKitConnectionRouteEnabled: z.boolean(),\n /** True when the default LiveKit trace recording review route is registered. */\n liveKitRecordingRouteEnabled: z.boolean().optional(),\n /**\n * The editor's configured source, when set. `'code'` swaps Studio's\n * Save/Publish UI for Download JSON + Open PR. `'db'` keeps the standard\n * Save/Publish flow. Omitted when the editor has no explicit source.\n */\n editorSource: editorSourceSchema.optional(),\n editorSourceCapabilities: editorSourceCapabilitiesSchema.optional(),\n observabilityEnabled: z.boolean(),\n storageType: z.string().optional(),\n observabilityStorageType: z.string().optional(),\n observabilityStorageCapabilities: observabilityStorageCapabilitiesSchema.optional(),\n observabilityRuntimeStrategy: observabilityRuntimeStrategySchema.optional(),\n});\n\nconst jsonSchemaRecordSchema = z.record(z.string(), z.unknown());\n\nexport const apiSchemaResponseShapeSchema = z.object({\n kind: z.enum(['array', 'record', 'object-property', 'single', 'unknown']),\n listProperty: z.string().optional(),\n paginationProperty: z.string().optional(),\n});\n\nexport const apiSchemaManifestRouteSchema = z.object({\n method: z.string(),\n path: z.string(),\n responseType: z.string(),\n pathParamSchema: jsonSchemaRecordSchema.optional(),\n queryParamSchema: jsonSchemaRecordSchema.optional(),\n bodySchema: jsonSchemaRecordSchema.optional(),\n responseSchema: jsonSchemaRecordSchema.optional(),\n responseShape: apiSchemaResponseShapeSchema,\n});\n\nexport const apiSchemaManifestResponseSchema = z.object({\n version: z.literal(1),\n routes: z.array(apiSchemaManifestRouteSchema),\n});\n\nexport type MastraPackage = z.infer<typeof mastraPackageSchema>;\nexport type SystemPackagesResponse = z.infer<typeof systemPackagesResponseSchema>;\n"],"mappings":"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"}
@@ -59,6 +59,8 @@ const systemPackagesResponseSchema = z.object({
59
59
  cmsEnabled: z.boolean(),
60
60
  /** Whether the default LiveKit connection-details route is registered — not whether credentials or a worker exist. */
61
61
  liveKitConnectionRouteEnabled: z.boolean(),
62
+ /** True when the default LiveKit trace recording review route is registered. */
63
+ liveKitRecordingRouteEnabled: z.boolean().optional(),
62
64
  /**
63
65
  * The editor's configured source, when set. `'code'` swaps Studio's
64
66
  * Save/Publish UI for Download JSON + Open PR. `'db'` keeps the standard
@@ -101,4 +103,4 @@ const apiSchemaManifestResponseSchema = z.object({
101
103
  //#endregion
102
104
  export { editorSourceSchema as a, observabilityRuntimeStrategySchema as c, editorSourceCapabilitiesSchema as i, observabilityStorageCapabilitiesSchema as l, apiSchemaManifestRouteSchema as n, mastraPackageSchema as o, apiSchemaResponseShapeSchema as r, observabilityDiscoveryCapabilitiesSchema as s, apiSchemaManifestResponseSchema as t, systemPackagesResponseSchema as u };
103
105
 
104
- //# sourceMappingURL=system-BtGAJr9R.js.map
106
+ //# sourceMappingURL=system-Di2kpGTC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-Di2kpGTC.js","names":[],"sources":["../src/server/schemas/system.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\nexport const mastraPackageSchema = z.object({\n name: z.string(),\n version: z.string(),\n});\n\nexport const observabilityRuntimeStrategySchema = z.enum([\n 'realtime',\n 'batch-with-updates',\n 'insert-only',\n 'event-sourced',\n]);\n\nexport const observabilityDiscoveryCapabilitiesSchema = z.object({\n entityTypes: z.boolean().describe('GET /observability/discovery/entity-types'),\n entityNames: z.boolean().describe('GET /observability/discovery/entity-names'),\n serviceNames: z.boolean().describe('GET /observability/discovery/service-names'),\n environments: z.boolean().describe('GET /observability/discovery/environments'),\n tags: z.boolean().describe('GET /observability/discovery/tags'),\n metrics: z.boolean().describe('GET /observability/discovery/metric-names, metric-label-keys and metric-label-values'),\n});\n\n/**\n * Optional observability APIs the configured observability store can serve.\n * Omitted when no observability store is configured.\n */\nexport const observabilityStorageCapabilitiesSchema = z.object({\n metrics: z.boolean().describe('Metrics endpoints (/observability/metrics and /observability/metrics/*)'),\n logs: z.boolean().describe('Logs endpoint (GET /observability/logs)'),\n discovery: observabilityDiscoveryCapabilitiesSchema.describe(\n 'Filter discovery endpoints. Unsupported discovery routes return empty results.',\n ),\n deltaPolling: z.boolean().describe(\"Cursor-based `mode: 'delta'` polling on observability list endpoints\"),\n traceQuery: z\n .boolean()\n .describe(\n 'Advanced trace queries (POST /observability/traces/query). When false, list traces with GET /observability/traces/light instead.',\n ),\n traceQueryRootDuration: z.boolean().describe('`durationMs` predicates in trace and thread queries'),\n traceQueryContextIds: z\n .boolean()\n .describe('`runId`, `sessionId`, `userId` and `organizationId` predicates in trace and thread queries'),\n traceQueryDiscovery: z\n .boolean()\n .describe('Trace query field discovery (POST /observability/traces/query/fields and /values)'),\n traceQueryTenantScope: z.boolean().describe('Trusted tenant scoping of trace and thread queries'),\n threadQuery: z.boolean().describe('Advanced thread queries (POST /observability/threads/query)'),\n spanQuery: z.boolean().describe('Span queries (POST /observability/spans/query)'),\n feedback: z\n .boolean()\n .describe(\n 'Feedback endpoints (/observability/feedback and /observability/feedback/*). Unsupported feedback routes return 501.',\n ),\n});\n\nexport const editorSourceSchema = z.enum(['code', 'db']);\n\nexport const editorSourceCapabilitiesSchema = z.object({\n source: editorSourceSchema,\n storage: z.enum(['database', 'filesystem', 'source-provider', 'unavailable']),\n provider: z\n .object({\n id: z.string(),\n displayName: z.string(),\n })\n .optional(),\n canSave: z.boolean(),\n canOpenChangeRequest: z.boolean(),\n unavailableReason: z.string().optional(),\n});\n\nexport const systemPackagesResponseSchema = z.object({\n packages: z.array(mastraPackageSchema),\n isDev: z.boolean(),\n cmsEnabled: z.boolean(),\n /** Whether the default LiveKit connection-details route is registered — not whether credentials or a worker exist. */\n liveKitConnectionRouteEnabled: z.boolean(),\n /** True when the default LiveKit trace recording review route is registered. */\n liveKitRecordingRouteEnabled: z.boolean().optional(),\n /**\n * The editor's configured source, when set. `'code'` swaps Studio's\n * Save/Publish UI for Download JSON + Open PR. `'db'` keeps the standard\n * Save/Publish flow. Omitted when the editor has no explicit source.\n */\n editorSource: editorSourceSchema.optional(),\n editorSourceCapabilities: editorSourceCapabilitiesSchema.optional(),\n observabilityEnabled: z.boolean(),\n storageType: z.string().optional(),\n observabilityStorageType: z.string().optional(),\n observabilityStorageCapabilities: observabilityStorageCapabilitiesSchema.optional(),\n observabilityRuntimeStrategy: observabilityRuntimeStrategySchema.optional(),\n});\n\nconst jsonSchemaRecordSchema = z.record(z.string(), z.unknown());\n\nexport const apiSchemaResponseShapeSchema = z.object({\n kind: z.enum(['array', 'record', 'object-property', 'single', 'unknown']),\n listProperty: z.string().optional(),\n paginationProperty: z.string().optional(),\n});\n\nexport const apiSchemaManifestRouteSchema = z.object({\n method: z.string(),\n path: z.string(),\n responseType: z.string(),\n pathParamSchema: jsonSchemaRecordSchema.optional(),\n queryParamSchema: jsonSchemaRecordSchema.optional(),\n bodySchema: jsonSchemaRecordSchema.optional(),\n responseSchema: jsonSchemaRecordSchema.optional(),\n responseShape: apiSchemaResponseShapeSchema,\n});\n\nexport const apiSchemaManifestResponseSchema = z.object({\n version: z.literal(1),\n routes: z.array(apiSchemaManifestRouteSchema),\n});\n\nexport type MastraPackage = z.infer<typeof mastraPackageSchema>;\nexport type SystemPackagesResponse = z.infer<typeof systemPackagesResponseSchema>;\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  const require_http_exception = require("./http-exception-CKDHupKw.cjs");
2
- const require_agents = require("./agents-DwJE1tsB.cjs");
2
+ const require_agents = require("./agents-COAEoXsc.cjs");
3
3
  const require_route_builder = require("./route-builder-2yrD15TL.cjs");
4
4
  const require_server_handlers_error = require("./server/handlers/error.cjs");
5
5
  const require_utils = require("./utils-HqDZJwRc.cjs");
6
- const require_editor_builder = require("./editor-builder-Dm6jviKJ.cjs");
6
+ const require_editor_builder = require("./editor-builder-DJl5x_Kj.cjs");
7
7
  let zod_v4 = require("zod/v4");
8
8
  //#region src/server/schemas/workflow-builder.ts
9
9
  const workflowBuilderSettingsResponseSchema = zod_v4.z.object({
@@ -112,4 +112,4 @@ Object.defineProperty(exports, "STREAM_WORKFLOW_BUILDER_ROUTE", {
112
112
  }
113
113
  });
114
114
 
115
- //# sourceMappingURL=workflow-builder-BSjQJCVD.cjs.map
115
+ //# sourceMappingURL=workflow-builder-DYfgyaeB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-builder-BSjQJCVD.cjs","names":["z","builderModelPolicySchema","createRoute","handleError","agentExecutionBodySchema","streamResponseSchema","HTTPException","getEffectiveResourceId","getEffectiveThreadId","enforceThreadAccess"],"sources":["../src/server/schemas/workflow-builder.ts","../src/server/handlers/workflow-builder.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { builderModelPolicySchema } from './editor-builder';\n\nexport const workflowBuilderSettingsResponseSchema = z.object({\n enabled: z.boolean(),\n modelPolicy: builderModelPolicySchema.optional(),\n});\n\nexport type WorkflowBuilderSettingsResponse = z.infer<typeof workflowBuilderSettingsResponseSchema>;\n","import { HTTPException } from '../http-exception';\nimport { agentExecutionBodySchema, streamResponseSchema } from '../schemas/agents';\nimport { workflowBuilderSettingsResponseSchema } from '../schemas/workflow-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport {\n enforceThreadAccess,\n getEffectiveResourceId,\n getEffectiveThreadId,\n mergeBodyRequestContext,\n requireEffectiveResourceId,\n validateBody,\n} from './utils';\n\nexport const GET_WORKFLOW_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/workflow-builder/settings',\n responseType: 'json',\n responseSchema: workflowBuilderSettingsResponseSchema,\n summary: 'Get persisted workflow builder settings',\n description: 'Returns whether the editor-owned persisted workflow builder is available',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveWorkflowBuilder !== 'function') return { enabled: false };\n if (!editor.hasEnabledWorkflowBuilderConfig?.()) return { enabled: false };\n\n const builder = await editor.resolveWorkflowBuilder();\n return {\n enabled: builder?.enabled === true,\n modelPolicy: builder?.getModelPolicy(),\n };\n } catch (error) {\n return handleError(error, 'Error getting workflow builder settings');\n }\n },\n});\n\nexport const STREAM_WORKFLOW_BUILDER_ROUTE = createRoute({\n method: 'POST',\n path: '/editor/workflow-builder/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream persisted workflow builder response',\n description: 'Streams from the hidden editor-owned workflow builder agent',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:write',\n handler: async ({ mastra, abortSignal, requestContext: serverRequestContext, ...params }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor?.hasEnabledWorkflowBuilderConfig?.() || typeof editor.resolveWorkflowBuilder !== 'function') {\n throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n }\n\n const builder = await editor.resolveWorkflowBuilder();\n if (!builder?.enabled) throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n const agent = builder.getAgent();\n\n const { messages, memory: memoryOption, requestContext: bodyRequestContext, ...rest } = params;\n validateBody({ messages });\n\n mergeBodyRequestContext(serverRequestContext, bodyRequestContext);\n\n let authorizedMemoryOption = memoryOption;\n if (memoryOption) {\n const clientThreadId = typeof memoryOption.thread === 'string' ? memoryOption.thread : memoryOption.thread?.id;\n const effectiveResourceId = getEffectiveResourceId(serverRequestContext, memoryOption.resource);\n requireEffectiveResourceId(effectiveResourceId);\n const effectiveThreadId = getEffectiveThreadId(serverRequestContext, clientThreadId);\n\n if (effectiveThreadId) {\n const memory = await agent.getMemory({ requestContext: serverRequestContext });\n const thread = await memory?.getThreadById({ threadId: effectiveThreadId });\n if (thread) {\n await enforceThreadAccess({\n mastra,\n requestContext: serverRequestContext,\n threadId: effectiveThreadId,\n thread,\n effectiveResourceId,\n permission: 'memory:write',\n });\n }\n }\n\n authorizedMemoryOption = {\n ...memoryOption,\n resource: effectiveResourceId ?? memoryOption.resource,\n thread: effectiveThreadId ?? memoryOption.thread,\n };\n }\n\n const { structuredOutput, ...streamOptions } = rest;\n const options: Record<string, any> = {\n ...streamOptions,\n requestContext: serverRequestContext,\n memory: authorizedMemoryOption,\n abortSignal,\n };\n const result = structuredOutput\n ? await agent.stream(messages, { ...options, structuredOutput })\n : await agent.stream(messages, options);\n return result.fullStream;\n } catch (error) {\n return handleError(error, 'Error streaming workflow builder response');\n }\n },\n});\n"],"mappings":";;;;;;;;AAGA,MAAa,wCAAwCA,OAAAA,EAAE,OAAO;CAC5D,SAASA,OAAAA,EAAE,QAAQ;CACnB,aAAaC,uBAAAA,yBAAyB,SAAS;AACjD,CAAC;;;ACQD,MAAa,sCAAsCC,sBAAAA,YAAY;CAC7D,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,UAAU,OAAO,OAAO,2BAA2B,YAAY,OAAO,EAAE,SAAS,MAAM;GAC5F,IAAI,CAAC,OAAO,kCAAkC,GAAG,OAAO,EAAE,SAAS,MAAM;GAEzE,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,OAAO;IACL,SAAS,SAAS,YAAY;IAC9B,aAAa,SAAS,eAAe;GACvC;EACF,SAAS,OAAO;GACd,OAAOC,8BAAAA,YAAY,OAAO,yCAAyC;EACrE;CACF;AACF,CAAC;AAED,MAAa,gCAAgCD,sBAAAA,YAAY;CACvD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,YAAYE,eAAAA;CACZ,gBAAgBC,eAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,QAAQ,aAAa,gBAAgB,sBAAsB,GAAG,aAAa;EAC3F,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,QAAQ,kCAAkC,KAAK,OAAO,OAAO,2BAA2B,YAC3F,MAAM,IAAIC,uBAAAA,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAG7E,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,IAAI,CAAC,SAAS,SAAS,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAClG,MAAM,QAAQ,QAAQ,SAAS;GAE/B,MAAM,EAAE,UAAU,QAAQ,cAAc,gBAAgB,oBAAoB,GAAG,SAAS;GACxF,cAAA,aAAa,EAAE,SAAS,CAAC;GAEzB,cAAA,wBAAwB,sBAAsB,kBAAkB;GAEhE,IAAI,yBAAyB;GAC7B,IAAI,cAAc;IAChB,MAAM,iBAAiB,OAAO,aAAa,WAAW,WAAW,aAAa,SAAS,aAAa,QAAQ;IAC5G,MAAM,sBAAsBC,cAAAA,uBAAuB,sBAAsB,aAAa,QAAQ;IAC9F,cAAA,2BAA2B,mBAAmB;IAC9C,MAAM,oBAAoBC,cAAAA,qBAAqB,sBAAsB,cAAc;IAEnF,IAAI,mBAAmB;KAErB,MAAM,SAAS,OAAM,MADA,MAAM,UAAU,EAAE,gBAAgB,qBAAqB,CAAC,EAAA,EAChD,cAAc,EAAE,UAAU,kBAAkB,CAAC;KAC1E,IAAI,QACF,MAAMC,cAAAA,oBAAoB;MACxB;MACA,gBAAgB;MAChB,UAAU;MACV;MACA;MACA,YAAY;KACd,CAAC;IAEL;IAEA,yBAAyB;KACvB,GAAG;KACH,UAAU,uBAAuB,aAAa;KAC9C,QAAQ,qBAAqB,aAAa;IAC5C;GACF;GAEA,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;GAC/C,MAAM,UAA+B;IACnC,GAAG;IACH,gBAAgB;IAChB,QAAQ;IACR;GACF;GAIA,QAHe,mBACX,MAAM,MAAM,OAAO,UAAU;IAAE,GAAG;IAAS;GAAiB,CAAC,IAC7D,MAAM,MAAM,OAAO,UAAU,OAAO,EAAA,CAC1B;EAChB,SAAS,OAAO;GACd,OAAON,8BAAAA,YAAY,OAAO,2CAA2C;EACvE;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"workflow-builder-DYfgyaeB.cjs","names":["z","builderModelPolicySchema","createRoute","handleError","agentExecutionBodySchema","streamResponseSchema","HTTPException","getEffectiveResourceId","getEffectiveThreadId","enforceThreadAccess"],"sources":["../src/server/schemas/workflow-builder.ts","../src/server/handlers/workflow-builder.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { builderModelPolicySchema } from './editor-builder';\n\nexport const workflowBuilderSettingsResponseSchema = z.object({\n enabled: z.boolean(),\n modelPolicy: builderModelPolicySchema.optional(),\n});\n\nexport type WorkflowBuilderSettingsResponse = z.infer<typeof workflowBuilderSettingsResponseSchema>;\n","import { HTTPException } from '../http-exception';\nimport { agentExecutionBodySchema, streamResponseSchema } from '../schemas/agents';\nimport { workflowBuilderSettingsResponseSchema } from '../schemas/workflow-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport {\n enforceThreadAccess,\n getEffectiveResourceId,\n getEffectiveThreadId,\n mergeBodyRequestContext,\n requireEffectiveResourceId,\n validateBody,\n} from './utils';\n\nexport const GET_WORKFLOW_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/workflow-builder/settings',\n responseType: 'json',\n responseSchema: workflowBuilderSettingsResponseSchema,\n summary: 'Get persisted workflow builder settings',\n description: 'Returns whether the editor-owned persisted workflow builder is available',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveWorkflowBuilder !== 'function') return { enabled: false };\n if (!editor.hasEnabledWorkflowBuilderConfig?.()) return { enabled: false };\n\n const builder = await editor.resolveWorkflowBuilder();\n return {\n enabled: builder?.enabled === true,\n modelPolicy: builder?.getModelPolicy(),\n };\n } catch (error) {\n return handleError(error, 'Error getting workflow builder settings');\n }\n },\n});\n\nexport const STREAM_WORKFLOW_BUILDER_ROUTE = createRoute({\n method: 'POST',\n path: '/editor/workflow-builder/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream persisted workflow builder response',\n description: 'Streams from the hidden editor-owned workflow builder agent',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:write',\n handler: async ({ mastra, abortSignal, requestContext: serverRequestContext, ...params }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor?.hasEnabledWorkflowBuilderConfig?.() || typeof editor.resolveWorkflowBuilder !== 'function') {\n throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n }\n\n const builder = await editor.resolveWorkflowBuilder();\n if (!builder?.enabled) throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n const agent = builder.getAgent();\n\n const { messages, memory: memoryOption, requestContext: bodyRequestContext, ...rest } = params;\n validateBody({ messages });\n\n mergeBodyRequestContext(serverRequestContext, bodyRequestContext);\n\n let authorizedMemoryOption = memoryOption;\n if (memoryOption) {\n const clientThreadId = typeof memoryOption.thread === 'string' ? memoryOption.thread : memoryOption.thread?.id;\n const effectiveResourceId = getEffectiveResourceId(serverRequestContext, memoryOption.resource);\n requireEffectiveResourceId(effectiveResourceId);\n const effectiveThreadId = getEffectiveThreadId(serverRequestContext, clientThreadId);\n\n if (effectiveThreadId) {\n const memory = await agent.getMemory({ requestContext: serverRequestContext });\n const thread = await memory?.getThreadById({ threadId: effectiveThreadId });\n if (thread) {\n await enforceThreadAccess({\n mastra,\n requestContext: serverRequestContext,\n threadId: effectiveThreadId,\n thread,\n effectiveResourceId,\n permission: 'memory:write',\n });\n }\n }\n\n authorizedMemoryOption = {\n ...memoryOption,\n resource: effectiveResourceId ?? memoryOption.resource,\n thread: effectiveThreadId ?? memoryOption.thread,\n };\n }\n\n const { structuredOutput, ...streamOptions } = rest;\n const options: Record<string, any> = {\n ...streamOptions,\n requestContext: serverRequestContext,\n memory: authorizedMemoryOption,\n abortSignal,\n };\n const result = structuredOutput\n ? await agent.stream(messages, { ...options, structuredOutput })\n : await agent.stream(messages, options);\n return result.fullStream;\n } catch (error) {\n return handleError(error, 'Error streaming workflow builder response');\n }\n },\n});\n"],"mappings":";;;;;;;;AAGA,MAAa,wCAAwCA,OAAAA,EAAE,OAAO;CAC5D,SAASA,OAAAA,EAAE,QAAQ;CACnB,aAAaC,uBAAAA,yBAAyB,SAAS;AACjD,CAAC;;;ACQD,MAAa,sCAAsCC,sBAAAA,YAAY;CAC7D,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,UAAU,OAAO,OAAO,2BAA2B,YAAY,OAAO,EAAE,SAAS,MAAM;GAC5F,IAAI,CAAC,OAAO,kCAAkC,GAAG,OAAO,EAAE,SAAS,MAAM;GAEzE,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,OAAO;IACL,SAAS,SAAS,YAAY;IAC9B,aAAa,SAAS,eAAe;GACvC;EACF,SAAS,OAAO;GACd,OAAOC,8BAAAA,YAAY,OAAO,yCAAyC;EACrE;CACF;AACF,CAAC;AAED,MAAa,gCAAgCD,sBAAAA,YAAY;CACvD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,YAAYE,eAAAA;CACZ,gBAAgBC,eAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,QAAQ,aAAa,gBAAgB,sBAAsB,GAAG,aAAa;EAC3F,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,QAAQ,kCAAkC,KAAK,OAAO,OAAO,2BAA2B,YAC3F,MAAM,IAAIC,uBAAAA,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAG7E,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,IAAI,CAAC,SAAS,SAAS,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAClG,MAAM,QAAQ,QAAQ,SAAS;GAE/B,MAAM,EAAE,UAAU,QAAQ,cAAc,gBAAgB,oBAAoB,GAAG,SAAS;GACxF,cAAA,aAAa,EAAE,SAAS,CAAC;GAEzB,cAAA,wBAAwB,sBAAsB,kBAAkB;GAEhE,IAAI,yBAAyB;GAC7B,IAAI,cAAc;IAChB,MAAM,iBAAiB,OAAO,aAAa,WAAW,WAAW,aAAa,SAAS,aAAa,QAAQ;IAC5G,MAAM,sBAAsBC,cAAAA,uBAAuB,sBAAsB,aAAa,QAAQ;IAC9F,cAAA,2BAA2B,mBAAmB;IAC9C,MAAM,oBAAoBC,cAAAA,qBAAqB,sBAAsB,cAAc;IAEnF,IAAI,mBAAmB;KAErB,MAAM,SAAS,OAAM,MADA,MAAM,UAAU,EAAE,gBAAgB,qBAAqB,CAAC,EAAA,EAChD,cAAc,EAAE,UAAU,kBAAkB,CAAC;KAC1E,IAAI,QACF,MAAMC,cAAAA,oBAAoB;MACxB;MACA,gBAAgB;MAChB,UAAU;MACV;MACA;MACA,YAAY;KACd,CAAC;IAEL;IAEA,yBAAyB;KACvB,GAAG;KACH,UAAU,uBAAuB,aAAa;KAC9C,QAAQ,qBAAqB,aAAa;IAC5C;GACF;GAEA,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;GAC/C,MAAM,UAA+B;IACnC,GAAG;IACH,gBAAgB;IAChB,QAAQ;IACR;GACF;GAIA,QAHe,mBACX,MAAM,MAAM,OAAO,UAAU;IAAE,GAAG;IAAS;GAAiB,CAAC,IAC7D,MAAM,MAAM,OAAO,UAAU,OAAO,EAAA,CAC1B;EAChB,SAAS,OAAO;GACd,OAAON,8BAAAA,YAAY,OAAO,2CAA2C;EACvE;CACF;AACF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { t as HTTPException } from "./http-exception-CyfxZB6W.js";
2
- import { J as streamResponseSchema, r as agentExecutionBodySchema } from "./agents-kOz1lr_e.js";
2
+ import { J as streamResponseSchema, r as agentExecutionBodySchema } from "./agents-BuKPiseS.js";
3
3
  import { n as createRoute } from "./route-builder-lBil8Cvo.js";
4
4
  import { handleError } from "./server/handlers/error.js";
5
5
  import { a as mergeBodyRequestContext, c as requireEffectiveResourceId, d as validateBody, i as getEffectiveThreadId, r as getEffectiveResourceId, t as enforceThreadAccess } from "./utils-KcHk7C0D.js";
6
- import { a as builderModelPolicySchema } from "./editor-builder-BLi1jvZd.js";
6
+ import { a as builderModelPolicySchema } from "./editor-builder-CdLGv1Ka.js";
7
7
  import { z } from "zod/v4";
8
8
  //#endregion
9
9
  //#region src/server/handlers/workflow-builder.ts
@@ -99,4 +99,4 @@ const STREAM_WORKFLOW_BUILDER_ROUTE = createRoute({
99
99
  //#endregion
100
100
  export { STREAM_WORKFLOW_BUILDER_ROUTE as n, GET_WORKFLOW_BUILDER_SETTINGS_ROUTE as t };
101
101
 
102
- //# sourceMappingURL=workflow-builder-DJ48IzXQ.js.map
102
+ //# sourceMappingURL=workflow-builder-DxQMzsT9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-builder-DJ48IzXQ.js","names":[],"sources":["../src/server/schemas/workflow-builder.ts","../src/server/handlers/workflow-builder.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { builderModelPolicySchema } from './editor-builder';\n\nexport const workflowBuilderSettingsResponseSchema = z.object({\n enabled: z.boolean(),\n modelPolicy: builderModelPolicySchema.optional(),\n});\n\nexport type WorkflowBuilderSettingsResponse = z.infer<typeof workflowBuilderSettingsResponseSchema>;\n","import { HTTPException } from '../http-exception';\nimport { agentExecutionBodySchema, streamResponseSchema } from '../schemas/agents';\nimport { workflowBuilderSettingsResponseSchema } from '../schemas/workflow-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport {\n enforceThreadAccess,\n getEffectiveResourceId,\n getEffectiveThreadId,\n mergeBodyRequestContext,\n requireEffectiveResourceId,\n validateBody,\n} from './utils';\n\nexport const GET_WORKFLOW_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/workflow-builder/settings',\n responseType: 'json',\n responseSchema: workflowBuilderSettingsResponseSchema,\n summary: 'Get persisted workflow builder settings',\n description: 'Returns whether the editor-owned persisted workflow builder is available',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveWorkflowBuilder !== 'function') return { enabled: false };\n if (!editor.hasEnabledWorkflowBuilderConfig?.()) return { enabled: false };\n\n const builder = await editor.resolveWorkflowBuilder();\n return {\n enabled: builder?.enabled === true,\n modelPolicy: builder?.getModelPolicy(),\n };\n } catch (error) {\n return handleError(error, 'Error getting workflow builder settings');\n }\n },\n});\n\nexport const STREAM_WORKFLOW_BUILDER_ROUTE = createRoute({\n method: 'POST',\n path: '/editor/workflow-builder/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream persisted workflow builder response',\n description: 'Streams from the hidden editor-owned workflow builder agent',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:write',\n handler: async ({ mastra, abortSignal, requestContext: serverRequestContext, ...params }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor?.hasEnabledWorkflowBuilderConfig?.() || typeof editor.resolveWorkflowBuilder !== 'function') {\n throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n }\n\n const builder = await editor.resolveWorkflowBuilder();\n if (!builder?.enabled) throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n const agent = builder.getAgent();\n\n const { messages, memory: memoryOption, requestContext: bodyRequestContext, ...rest } = params;\n validateBody({ messages });\n\n mergeBodyRequestContext(serverRequestContext, bodyRequestContext);\n\n let authorizedMemoryOption = memoryOption;\n if (memoryOption) {\n const clientThreadId = typeof memoryOption.thread === 'string' ? memoryOption.thread : memoryOption.thread?.id;\n const effectiveResourceId = getEffectiveResourceId(serverRequestContext, memoryOption.resource);\n requireEffectiveResourceId(effectiveResourceId);\n const effectiveThreadId = getEffectiveThreadId(serverRequestContext, clientThreadId);\n\n if (effectiveThreadId) {\n const memory = await agent.getMemory({ requestContext: serverRequestContext });\n const thread = await memory?.getThreadById({ threadId: effectiveThreadId });\n if (thread) {\n await enforceThreadAccess({\n mastra,\n requestContext: serverRequestContext,\n threadId: effectiveThreadId,\n thread,\n effectiveResourceId,\n permission: 'memory:write',\n });\n }\n }\n\n authorizedMemoryOption = {\n ...memoryOption,\n resource: effectiveResourceId ?? memoryOption.resource,\n thread: effectiveThreadId ?? memoryOption.thread,\n };\n }\n\n const { structuredOutput, ...streamOptions } = rest;\n const options: Record<string, any> = {\n ...streamOptions,\n requestContext: serverRequestContext,\n memory: authorizedMemoryOption,\n abortSignal,\n };\n const result = structuredOutput\n ? await agent.stream(messages, { ...options, structuredOutput })\n : await agent.stream(messages, options);\n return result.fullStream;\n } catch (error) {\n return handleError(error, 'Error streaming workflow builder response');\n }\n },\n});\n"],"mappings":";;;;;;;;;ACcA,MAAa,sCAAsC,YAAY;CAC7D,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBDfmD,EAAE,OAAO;EAC5D,SAAS,EAAE,QAAQ;EACnB,aAAa,yBAAyB,SAAS;CACjD,CCYkB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,UAAU,OAAO,OAAO,2BAA2B,YAAY,OAAO,EAAE,SAAS,MAAM;GAC5F,IAAI,CAAC,OAAO,kCAAkC,GAAG,OAAO,EAAE,SAAS,MAAM;GAEzE,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,OAAO;IACL,SAAS,SAAS,YAAY;IAC9B,aAAa,SAAS,eAAe;GACvC;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,yCAAyC;EACrE;CACF;AACF,CAAC;AAED,MAAa,gCAAgC,YAAY;CACvD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,QAAQ,aAAa,gBAAgB,sBAAsB,GAAG,aAAa;EAC3F,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,QAAQ,kCAAkC,KAAK,OAAO,OAAO,2BAA2B,YAC3F,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAG7E,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,IAAI,CAAC,SAAS,SAAS,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAClG,MAAM,QAAQ,QAAQ,SAAS;GAE/B,MAAM,EAAE,UAAU,QAAQ,cAAc,gBAAgB,oBAAoB,GAAG,SAAS;GACxF,aAAa,EAAE,SAAS,CAAC;GAEzB,wBAAwB,sBAAsB,kBAAkB;GAEhE,IAAI,yBAAyB;GAC7B,IAAI,cAAc;IAChB,MAAM,iBAAiB,OAAO,aAAa,WAAW,WAAW,aAAa,SAAS,aAAa,QAAQ;IAC5G,MAAM,sBAAsB,uBAAuB,sBAAsB,aAAa,QAAQ;IAC9F,2BAA2B,mBAAmB;IAC9C,MAAM,oBAAoB,qBAAqB,sBAAsB,cAAc;IAEnF,IAAI,mBAAmB;KAErB,MAAM,SAAS,OAAM,MADA,MAAM,UAAU,EAAE,gBAAgB,qBAAqB,CAAC,EAAA,EAChD,cAAc,EAAE,UAAU,kBAAkB,CAAC;KAC1E,IAAI,QACF,MAAM,oBAAoB;MACxB;MACA,gBAAgB;MAChB,UAAU;MACV;MACA;MACA,YAAY;KACd,CAAC;IAEL;IAEA,yBAAyB;KACvB,GAAG;KACH,UAAU,uBAAuB,aAAa;KAC9C,QAAQ,qBAAqB,aAAa;IAC5C;GACF;GAEA,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;GAC/C,MAAM,UAA+B;IACnC,GAAG;IACH,gBAAgB;IAChB,QAAQ;IACR;GACF;GAIA,QAHe,mBACX,MAAM,MAAM,OAAO,UAAU;IAAE,GAAG;IAAS;GAAiB,CAAC,IAC7D,MAAM,MAAM,OAAO,UAAU,OAAO,EAAA,CAC1B;EAChB,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,2CAA2C;EACvE;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"workflow-builder-DxQMzsT9.js","names":[],"sources":["../src/server/schemas/workflow-builder.ts","../src/server/handlers/workflow-builder.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { builderModelPolicySchema } from './editor-builder';\n\nexport const workflowBuilderSettingsResponseSchema = z.object({\n enabled: z.boolean(),\n modelPolicy: builderModelPolicySchema.optional(),\n});\n\nexport type WorkflowBuilderSettingsResponse = z.infer<typeof workflowBuilderSettingsResponseSchema>;\n","import { HTTPException } from '../http-exception';\nimport { agentExecutionBodySchema, streamResponseSchema } from '../schemas/agents';\nimport { workflowBuilderSettingsResponseSchema } from '../schemas/workflow-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport {\n enforceThreadAccess,\n getEffectiveResourceId,\n getEffectiveThreadId,\n mergeBodyRequestContext,\n requireEffectiveResourceId,\n validateBody,\n} from './utils';\n\nexport const GET_WORKFLOW_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/workflow-builder/settings',\n responseType: 'json',\n responseSchema: workflowBuilderSettingsResponseSchema,\n summary: 'Get persisted workflow builder settings',\n description: 'Returns whether the editor-owned persisted workflow builder is available',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveWorkflowBuilder !== 'function') return { enabled: false };\n if (!editor.hasEnabledWorkflowBuilderConfig?.()) return { enabled: false };\n\n const builder = await editor.resolveWorkflowBuilder();\n return {\n enabled: builder?.enabled === true,\n modelPolicy: builder?.getModelPolicy(),\n };\n } catch (error) {\n return handleError(error, 'Error getting workflow builder settings');\n }\n },\n});\n\nexport const STREAM_WORKFLOW_BUILDER_ROUTE = createRoute({\n method: 'POST',\n path: '/editor/workflow-builder/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream persisted workflow builder response',\n description: 'Streams from the hidden editor-owned workflow builder agent',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:write',\n handler: async ({ mastra, abortSignal, requestContext: serverRequestContext, ...params }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor?.hasEnabledWorkflowBuilderConfig?.() || typeof editor.resolveWorkflowBuilder !== 'function') {\n throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n }\n\n const builder = await editor.resolveWorkflowBuilder();\n if (!builder?.enabled) throw new HTTPException(404, { message: 'Workflow builder is not enabled' });\n const agent = builder.getAgent();\n\n const { messages, memory: memoryOption, requestContext: bodyRequestContext, ...rest } = params;\n validateBody({ messages });\n\n mergeBodyRequestContext(serverRequestContext, bodyRequestContext);\n\n let authorizedMemoryOption = memoryOption;\n if (memoryOption) {\n const clientThreadId = typeof memoryOption.thread === 'string' ? memoryOption.thread : memoryOption.thread?.id;\n const effectiveResourceId = getEffectiveResourceId(serverRequestContext, memoryOption.resource);\n requireEffectiveResourceId(effectiveResourceId);\n const effectiveThreadId = getEffectiveThreadId(serverRequestContext, clientThreadId);\n\n if (effectiveThreadId) {\n const memory = await agent.getMemory({ requestContext: serverRequestContext });\n const thread = await memory?.getThreadById({ threadId: effectiveThreadId });\n if (thread) {\n await enforceThreadAccess({\n mastra,\n requestContext: serverRequestContext,\n threadId: effectiveThreadId,\n thread,\n effectiveResourceId,\n permission: 'memory:write',\n });\n }\n }\n\n authorizedMemoryOption = {\n ...memoryOption,\n resource: effectiveResourceId ?? memoryOption.resource,\n thread: effectiveThreadId ?? memoryOption.thread,\n };\n }\n\n const { structuredOutput, ...streamOptions } = rest;\n const options: Record<string, any> = {\n ...streamOptions,\n requestContext: serverRequestContext,\n memory: authorizedMemoryOption,\n abortSignal,\n };\n const result = structuredOutput\n ? await agent.stream(messages, { ...options, structuredOutput })\n : await agent.stream(messages, options);\n return result.fullStream;\n } catch (error) {\n return handleError(error, 'Error streaming workflow builder response');\n }\n },\n});\n"],"mappings":";;;;;;;;;ACcA,MAAa,sCAAsC,YAAY;CAC7D,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBDfmD,EAAE,OAAO;EAC5D,SAAS,EAAE,QAAQ;EACnB,aAAa,yBAAyB,SAAS;CACjD,CCYkB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,UAAU,OAAO,OAAO,2BAA2B,YAAY,OAAO,EAAE,SAAS,MAAM;GAC5F,IAAI,CAAC,OAAO,kCAAkC,GAAG,OAAO,EAAE,SAAS,MAAM;GAEzE,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,OAAO;IACL,SAAS,SAAS,YAAY;IAC9B,aAAa,SAAS,eAAe;GACvC;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,yCAAyC;EACrE;CACF;AACF,CAAC;AAED,MAAa,gCAAgC,YAAY;CACvD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,QAAQ;CACf,cAAc;CACd,oBAAoB;CACpB,SAAS,OAAO,EAAE,QAAQ,aAAa,gBAAgB,sBAAsB,GAAG,aAAa;EAC3F,IAAI;GACF,MAAM,SAAS,OAAO,UAAU;GAChC,IAAI,CAAC,QAAQ,kCAAkC,KAAK,OAAO,OAAO,2BAA2B,YAC3F,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAG7E,MAAM,UAAU,MAAM,OAAO,uBAAuB;GACpD,IAAI,CAAC,SAAS,SAAS,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kCAAkC,CAAC;GAClG,MAAM,QAAQ,QAAQ,SAAS;GAE/B,MAAM,EAAE,UAAU,QAAQ,cAAc,gBAAgB,oBAAoB,GAAG,SAAS;GACxF,aAAa,EAAE,SAAS,CAAC;GAEzB,wBAAwB,sBAAsB,kBAAkB;GAEhE,IAAI,yBAAyB;GAC7B,IAAI,cAAc;IAChB,MAAM,iBAAiB,OAAO,aAAa,WAAW,WAAW,aAAa,SAAS,aAAa,QAAQ;IAC5G,MAAM,sBAAsB,uBAAuB,sBAAsB,aAAa,QAAQ;IAC9F,2BAA2B,mBAAmB;IAC9C,MAAM,oBAAoB,qBAAqB,sBAAsB,cAAc;IAEnF,IAAI,mBAAmB;KAErB,MAAM,SAAS,OAAM,MADA,MAAM,UAAU,EAAE,gBAAgB,qBAAqB,CAAC,EAAA,EAChD,cAAc,EAAE,UAAU,kBAAkB,CAAC;KAC1E,IAAI,QACF,MAAM,oBAAoB;MACxB;MACA,gBAAgB;MAChB,UAAU;MACV;MACA;MACA,YAAY;KACd,CAAC;IAEL;IAEA,yBAAyB;KACvB,GAAG;KACH,UAAU,uBAAuB,aAAa;KAC9C,QAAQ,qBAAqB,aAAa;IAC5C;GACF;GAEA,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;GAC/C,MAAM,UAA+B;IACnC,GAAG;IACH,gBAAgB;IAChB,QAAQ;IACR;GACF;GAIA,QAHe,mBACX,MAAM,MAAM,OAAO,UAAU;IAAE,GAAG;IAAS;GAAiB,CAAC,IAC7D,MAAM,MAAM,OAAO,UAAU,OAAO,EAAA,CAC1B;EAChB,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,2CAA2C;EACvE;CACF;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/server",
3
- "version": "1.75.0-alpha.6",
3
+ "version": "1.75.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
@@ -117,13 +117,13 @@
117
117
  "zod": "^4.6.4",
118
118
  "zod-to-ts": "^2.1.0",
119
119
  "@internal/core": "0.1.2",
120
- "@internal/lint": "0.0.140",
121
- "@internal/test-utils": "0.0.76",
122
- "@internal/types-builder": "0.0.115",
123
- "@internal/voice": "0.0.38",
124
- "@mastra/agent-builder": "1.1.26-alpha.4",
125
- "@internal/storage-test-utils": "0.0.136",
126
- "@mastra/core": "1.75.0-alpha.6",
120
+ "@internal/lint": "0.0.141",
121
+ "@internal/test-utils": "0.0.77",
122
+ "@internal/storage-test-utils": "0.0.137",
123
+ "@internal/types-builder": "0.0.116",
124
+ "@internal/voice": "0.0.39",
125
+ "@mastra/agent-builder": "1.1.26",
126
+ "@mastra/core": "1.75.0",
127
127
  "@mastra/schema-compat": "1.3.13"
128
128
  },
129
129
  "homepage": "https://mastra.ai",
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents-DwJE1tsB.cjs","names":["z","typedPermissive","defaultOptionsSchema","coreMessageSchema","tracingOptionsSchema","messageResponseSchema"],"sources":["../src/server/schemas/agents.ts"],"sourcesContent":["import type {\n AgentExecutionOptions,\n PublicStructuredOutputOptions,\n ToolsetsInput,\n ToolsInput,\n} from '@mastra/core/agent';\nimport type { CoreMessageV4 } from '@mastra/core/agent/message-list';\nimport type { ScoringSamplingConfig } from '@mastra/core/evals';\nimport type { OutputType, SystemMessage } from '@mastra/core/llm';\nimport type { ReasoningLevel } from '@mastra/core/loop';\nimport { z } from 'zod/v4';\n\n/**\n * Structural mirror of LoopOptions['modelSettings'] (ai-sdk CallSettings minus\n * abortSignal, plus reasoning). CallSettings is not publicly exported from\n * @mastra/core, so its fields are restated here to keep declaration emit portable.\n */\n/**\n * Structural mirror of LoopOptions['stopWhen'] entries. The ai-sdk StopCondition\n * type is not publicly exported from @mastra/core, so an assignable function\n * shape is used to keep declaration emit portable.\n */\ntype StopConditionArg = (event: unknown) => boolean | PromiseLike<boolean>;\n\ntype ModelSettings = {\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n stopSequences?: string[];\n seed?: number;\n maxRetries?: number;\n headers?: Record<string, string | undefined>;\n reasoning?: ReasoningLevel;\n};\nimport { tracingOptionsSchema, coreMessageSchema, messageResponseSchema, typedPermissive } from './common';\nimport { defaultOptionsSchema } from './default-options';\n\nexport {\n generateSpeechBodySchema,\n getListenerResponseSchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n voiceSpeakersResponseSchema,\n} from '@internal/voice/routes';\n\ntype JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\n\nconst jsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\nconst jsonRecordSchema = z.record(z.string(), jsonValueSchema);\n\nconst signalAttributesSchema = z.record(\n z.string(),\n z.union([z.string(), z.number(), z.boolean(), z.null(), z.undefined()]),\n);\n\nconst baseSignalSchema = z.object({\n id: z.string().optional(),\n createdAt: z.union([z.string(), z.date()]).optional(),\n metadata: jsonRecordSchema.optional(),\n attributes: signalAttributesSchema.optional(),\n});\n\nconst partProviderOptionsSchema = z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional();\n\nconst signalTextPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n providerOptions: partProviderOptionsSchema,\n});\n\nconst signalFilePartSchema = z.object({\n type: z.literal('file'),\n data: z.string(),\n mediaType: z.string(),\n filename: z.string().optional(),\n providerOptions: partProviderOptionsSchema,\n});\n\nconst userMessageSignalContentsSchema = z.union([\n z.string(),\n z.array(z.union([signalTextPartSchema, signalFilePartSchema])),\n]);\n\nconst agentMessageInputObjectSchema = z.object({\n contents: userMessageSignalContentsSchema,\n attributes: signalAttributesSchema.optional(),\n metadata: jsonRecordSchema.optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n});\n\nconst agentMessageInputSchema = z.union([userMessageSignalContentsSchema, agentMessageInputObjectSchema]);\n\nconst agentSignalBaseSchema = baseSignalSchema.extend({\n tagName: z.string().optional(),\n contents: userMessageSignalContentsSchema,\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n});\n\nconst agentSignalSchema = z.discriminatedUnion('type', [\n agentSignalBaseSchema.extend({\n type: z.literal('state'),\n transient: z.never().optional(),\n }),\n agentSignalBaseSchema.extend({\n type: z.enum(['user', 'reactive', 'notification', 'user-message', 'system-reminder']),\n transient: z.boolean().optional(),\n }),\n]);\n\n// Path parameter schemas\nexport const agentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\n/**\n * Query params for GET /agents/:agentId — controls which stored config version is used for overrides.\n * When `status` and `versionId` are both provided, `versionId` takes precedence.\n * - `status` — 'draft' (latest version) or 'published' (active published version, default).\n * - `versionId` — Resolve with a specific version ID.\n */\nexport const agentVersionQuerySchema = z.object({\n status: z\n .enum(['draft', 'published'])\n .optional()\n .describe(\n 'Which stored config version to resolve: draft (latest version) or published (active version, default). When both status and versionId are provided, versionId takes precedence.',\n ),\n versionId: z\n .string()\n .optional()\n .describe('Specific version ID to resolve. Takes precedence over status when both are provided.'),\n});\n\nexport const agentPlanQuerySchema = agentVersionQuerySchema.extend({\n path: z.string().describe('Relative path to a markdown plan under .mastracode/plans/'),\n});\n\nexport const agentPlanResponseSchema = z.object({\n path: z.string(),\n content: z.string(),\n});\n\nexport const toolIdPathParams = z.object({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const agentToolPathParams = agentIdPathParams.extend({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const agentSkillPathParams = agentIdPathParams.extend({\n skillName: z.string().describe('Name of the skill'),\n});\n\nexport const modelConfigIdPathParams = agentIdPathParams.extend({\n modelConfigId: z.string().describe('Unique identifier for the model configuration'),\n});\n\n/**\n * Schema for serialized processor metadata\n */\nexport const serializedProcessorSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n});\n\n/**\n * Schema for serialized tool with JSON schemas\n */\nexport const serializedToolSchema = z.object({\n id: z.string(),\n title: z.string().optional(),\n description: z.string().optional(),\n inputSchema: z.string().optional(),\n outputSchema: z.string().optional(),\n requestContextSchema: z.string().optional(),\n requireApproval: z.boolean().optional(),\n});\n\n/**\n * Schema for serialized workflow with steps\n */\nexport const serializedWorkflowSchema = z.object({\n name: z.string(),\n steps: z\n .record(\n z.string(),\n z.object({\n id: z.string(),\n description: z.string().optional(),\n }),\n )\n .optional(),\n});\n\n/**\n * Schema for serialized agent definition (referenced by other agents)\n */\nexport const serializedAgentDefinitionSchema = z.object({\n id: z.string(),\n name: z.string(),\n});\n\n/**\n * Schema for SystemMessage type\n * Can be string, string[], or various message objects\n */\nconst systemMessageSchema = typedPermissive<SystemMessage>(\n z.union([\n z.string(),\n z.array(z.string()),\n z.unknown(), // CoreSystemMessage or SystemModelMessage\n z.array(z.unknown()),\n ]),\n);\n\n/**\n * Schema for model configuration in model list\n */\nconst modelConfigSchema = z.object({\n id: z.string(),\n enabled: z.boolean(),\n maxRetries: z.number(),\n model: z.object({\n modelId: z.string(),\n provider: z.string(),\n modelVersion: z.string(),\n }),\n});\n\nconst serializedSkillSchema = z.object({\n name: z.string(),\n description: z.string(),\n license: z.string().optional(),\n path: z.string(),\n});\n\nconst agentEditorConfigSchema = z.union([\n z.literal(false),\n z.object({\n instructions: z.boolean().optional(),\n tools: z.union([z.boolean(), z.object({ description: z.boolean().optional() })]).optional(),\n }),\n]);\n\n/**\n * Main schema for serialized agent representation\n */\nexport const serializedAgentSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n instructions: systemMessageSchema.optional(),\n tools: z.record(z.string(), serializedToolSchema),\n agents: z.record(z.string(), serializedAgentDefinitionSchema),\n workflows: z.record(z.string(), serializedWorkflowSchema),\n skills: z.array(serializedSkillSchema),\n workspaceTools: z.array(z.string()),\n browserTools: z.array(z.string()),\n hasBrowser: z.boolean(),\n workspaceId: z.string().optional(),\n inputProcessors: z.array(serializedProcessorSchema),\n outputProcessors: z.array(serializedProcessorSchema),\n provider: z.string().optional(),\n modelId: z.string().optional(),\n modelVersion: z.string().optional(),\n supportsMemory: z.boolean().optional(),\n modelList: z.array(modelConfigSchema).optional(),\n defaultOptions: defaultOptionsSchema.optional(),\n defaultGenerateOptionsLegacy: z.record(z.string(), z.unknown()).optional(),\n defaultStreamOptionsLegacy: z.record(z.string(), z.unknown()).optional(),\n requestContextSchema: z.string().optional(),\n source: z.enum(['code', 'stored', 'fs']).optional(),\n status: z.enum(['draft', 'published', 'archived']).optional(),\n activeVersionId: z.string().optional(),\n hasDraft: z.boolean().optional(),\n editor: agentEditorConfigSchema.optional(),\n});\n\n/**\n * Schema for agent with ID\n */\nexport const serializedAgentWithIdSchema = serializedAgentSchema.extend({\n id: z.string(),\n});\n\n/**\n * Schema for individual provider information\n */\nexport const providerSchema = z.object({\n id: z.string(),\n name: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n envVar: z.union([z.string(), z.array(z.string())]),\n connected: z.boolean(),\n docUrl: z.string().optional(),\n models: z.array(z.string()),\n});\n\n/**\n * Schema for providers endpoint response\n */\nexport const providersResponseSchema = z.object({\n providers: z.array(providerSchema),\n});\n\nexport type ProviderListItem = z.infer<typeof providerSchema>;\n\n/**\n * Schema for list agents endpoint response\n * Returns a record of agent ID to serialized agent\n */\nexport const listAgentsResponseSchema = z.record(z.string(), serializedAgentSchema);\n\n/**\n * Schema for list tools endpoint response\n * Returns a record of tool ID to serialized tool\n */\nexport const listToolsResponseSchema = z.record(z.string(), serializedToolSchema);\n\n// ============================================================================\n// Agent Execution Body Schemas\n// ============================================================================\n\n/**\n * Schema for agent memory option\n */\nconst agentMemoryOptionSchema = z.object({\n thread: z.union([z.string(), z.object({ id: z.string() }).passthrough()]),\n /**\n * Optional so authenticated setups can rely on the server-derived resource ID\n * (`mapUserToResourceId` sets MASTRA_RESOURCE_ID_KEY in the request context, which\n * takes precedence over this value). Handlers return a 400 when neither the body\n * nor the request context provides a resource ID.\n */\n resource: z.string().optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n readOnly: z.boolean().optional(),\n});\n\n/**\n * Schema for tool choice configuration\n */\nconst toolChoiceSchema = z.union([\n z.enum(['auto', 'none', 'required']),\n z.object({ type: z.literal('tool'), toolName: z.string() }),\n]);\n\n/**\n * Comprehensive body schema for agent generate and stream endpoints\n * Validates common fields while using passthrough for complex nested objects\n *\n * EXCLUDED FIELDS (not serializable):\n * - Callbacks: onStepFinish, onFinish, onChunk, onError, onAbort, prepareStep\n * - Class instances: inputProcessors, outputProcessors\n * - Non-serializable: abortSignal, tracingContext\n */\nexport const agentExecutionBodySchema = z\n .object({\n // REQUIRED\n messages: z.union([\n z.array(coreMessageSchema), // Array of messages\n z.string(), // Single user message shorthand\n ]),\n\n // Message Configuration\n instructions: systemMessageSchema.optional(),\n system: systemMessageSchema.optional(),\n // ModelMessage[] at runtime; handlers cast since the AI SDK ModelMessage\n // type is not portable for declaration emit.\n context: z.array(coreMessageSchema).optional(),\n\n // Memory & Persistence\n memory: agentMemoryOptionSchema.optional(),\n runId: z.string().optional(),\n savePerStep: z.boolean().optional(),\n\n // Request Context (handler-specific field - merged with server's requestContext)\n requestContext: z.record(z.string(), z.unknown()).optional(),\n\n // Version overrides for sub-agents (and future primitives)\n versions: z\n .object({\n agents: z\n .record(\n z.string(),\n z.union([z.object({ versionId: z.string() }), z.object({ status: z.enum(['draft', 'published']) })]),\n )\n .optional(),\n defaultStatus: z.enum(['draft', 'published']).optional(),\n })\n .optional(),\n\n // Execution Control\n maxSteps: z.number().optional(),\n // Stop conditions are functions and cannot be validated by zod.\n stopWhen: typedPermissive<StopConditionArg | StopConditionArg[]>(z.unknown()).optional(),\n\n // Model Configuration\n model: z.string().optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n modelSettings: typedPermissive<ModelSettings>(z.unknown()).optional(),\n\n // Tool Configuration\n activeTools: z.array(z.string()).optional(),\n // Tool entries contain execute functions and cannot be validated by zod.\n toolsets: typedPermissive<ToolsetsInput>(z.record(z.string(), z.unknown())).optional(),\n clientTools: typedPermissive<ToolsInput>(z.record(z.string(), z.unknown())).optional(),\n toolChoice: toolChoiceSchema.optional(),\n requireToolApproval: z.boolean().optional(),\n\n // Evaluation\n scorers: typedPermissive<Record<string, { scorer: string; sampling?: ScoringSamplingConfig }>>(\n z.union([\n z.record(z.string(), z.unknown()),\n z.record(\n z.string(),\n z.object({\n scorer: z.string(),\n sampling: z.unknown().optional(),\n }),\n ),\n ]),\n ).optional(),\n returnScorerData: z.boolean().optional(),\n\n // Observability\n tracingOptions: tracingOptionsSchema.optional(),\n\n // Structured Output\n // Zod schema, JSON schema, or structured output object — cannot be validated by zod.\n output: typedPermissive<OutputType>(z.unknown()).optional(),\n // The concrete options type cannot be expressed field-by-field because of\n // the fallback discriminated union.\n structuredOutput: typedPermissive<PublicStructuredOutputOptions<Record<string, unknown>>>(\n z.object({\n schema: z.object({}).passthrough(),\n model: z.union([z.string(), z.unknown()]).optional(),\n instructions: z.string().optional(),\n jsonPromptInjection: z.boolean().optional(),\n errorStrategy: z.enum(['strict', 'warn', 'fallback']).optional(),\n fallbackValue: z.unknown().optional(),\n }),\n ).optional(),\n\n // Idle-loop streaming (collapses streamUntilIdle into stream)\n untilIdle: z.union([z.boolean(), z.object({ maxIdleMs: z.number().int().positive().optional() })]).optional(),\n })\n .passthrough(); // Allow additional fields for forward compatibility\n\n/**\n * Legacy body schema for deprecated endpoints that still use threadId/resourceId\n * Used by /agents/:agentId/generate-legacy and /agents/:agentId/stream-legacy\n */\nexport const agentExecutionLegacyBodySchema = agentExecutionBodySchema.extend({\n resourceId: z.string().optional(),\n resourceid: z.string().optional(), // lowercase variant\n threadId: z.string().optional(),\n // Legacy generate/stream expect AI SDK v4 CoreMessage context and a string system message.\n context: typedPermissive<CoreMessageV4[]>(z.array(coreMessageSchema)).optional(),\n system: typedPermissive<string>(systemMessageSchema).optional(),\n});\n\nexport const streamUntilIdleBodySchema = agentExecutionBodySchema.extend({\n maxIdleMs: z.number().int().positive().optional(),\n untilIdle: z.union([z.boolean(), z.object({ maxIdleMs: z.number().int().positive().optional() })]).optional(),\n});\n\nexport const resumeStreamUntilIdleBodySchema = agentExecutionBodySchema.omit({ messages: true }).extend({\n runId: z.string(),\n resumeData: z.unknown().refine(x => x !== undefined, { message: 'resumeData is required' }),\n toolCallId: z.string().optional(),\n maxIdleMs: z.number().int().positive().optional(),\n});\n/**\n * Body schema for tool execute endpoint\n * Simple schema - tool validates its own input data\n * Note: The .refine() ensures data is required\n * (bare z.unknown() is treated as optional by Zod)\n */\nconst executeToolDataBodySchema = z.object({\n data: z.unknown().refine(x => x !== undefined, { message: 'data is required' }),\n});\n\nexport const executeToolBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const executeToolContextBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\n// ============================================================================\n// Tool Approval Schemas\n// ============================================================================\n\n/**\n * Base schema for tool approval/decline operations\n * Both approve and decline use the same parameters\n */\nconst toolCallActionBodySchema = z.object({\n runId: z.string(),\n model: z.string().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n toolCallId: z.string(),\n format: z.string().optional(),\n});\nconst networkToolCallActionBodySchema = z.object({\n runId: z.string(),\n model: z.string().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n format: z.string().optional(),\n});\n\n/**\n * Body schema for approving tool call\n */\nexport const approveToolCallBodySchema = toolCallActionBodySchema;\n\n/**\n * Body schema for declining tool call\n */\nexport const declineToolCallBodySchema = toolCallActionBodySchema.extend({\n /** Optional explanation surfaced to the model in place of the default decline message. */\n reason: z.string().optional(),\n});\n\n/**\n * Body schema for approving network tool call\n */\nexport const approveNetworkToolCallBodySchema = networkToolCallActionBodySchema;\n\n/**\n * Body schema for declining network tool call\n */\nexport const declineNetworkToolCallBodySchema = networkToolCallActionBodySchema.extend({\n /** Optional explanation surfaced in place of the default decline message. */\n reason: z.string().optional(),\n});\n\n/**\n * Response schema for tool approval/decline\n */\nexport const toolCallResponseSchema = z.object({\n fullStream: z.unknown(), // ReadableStream\n});\n\nexport const sendToolApprovalResponseSchema = z.object({\n accepted: z.literal(true),\n runId: z.string(),\n toolCallId: z.string().optional(),\n});\n\n/**\n * Query schema for listing suspended agent runs\n */\nexport const listSuspendedRunsQuerySchema = z\n .object({\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n perPage: z.coerce.number().int().positive().optional(),\n // page is zero-indexed, so 0 is valid\n page: z.coerce.number().int().nonnegative().optional(),\n })\n .refine(data => !data.fromDate || !data.toDate || data.fromDate <= data.toDate, {\n message: 'fromDate must be less than or equal to toDate',\n path: ['fromDate'],\n });\n\n/**\n * Response schema for listing suspended agent runs\n */\nexport const listSuspendedRunsResponseSchema = z.object({\n runs: z.array(\n z.object({\n runId: z.string(),\n status: z.literal('suspended'),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n suspendedAt: z.date(),\n toolCalls: z.array(\n z.object({\n toolCallId: z.string().optional(),\n toolName: z.string().optional(),\n args: z.unknown().optional(),\n requiresApproval: z.boolean(),\n suspendPayload: z.unknown().optional(),\n }),\n ),\n }),\n ),\n total: z.number().int().nonnegative(),\n});\n\n// ============================================================================\n// Resume Stream Schema\n// ============================================================================\n\n/**\n * Body schema for resuming a suspended agent stream with custom data.\n * Extends the agent execution body without messages, since resume\n * continues from a prior suspension point rather than starting fresh.\n */\nexport const resumeStreamBodySchema = agentExecutionBodySchema.omit({ messages: true }).extend({\n runId: z.string(),\n resumeData: z.unknown().refine(x => x !== undefined, { message: 'resumeData is required' }),\n toolCallId: z.string().optional(),\n});\n\n// ============================================================================\n// Recover Schema\n// ============================================================================\n\n/**\n * Body schema for recovering an orphaned RUNNING durable-agent run.\n * Thread and resource are read from the persisted snapshot, so we only accept\n * the runId plus request-context / version overrides needed for auth and\n * routing.\n */\nexport const recoverBodySchema = z.object({\n runId: z.string(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n versions: z\n .object({\n agents: z\n .record(\n z.string(),\n z.union([z.object({ versionId: z.string() }), z.object({ status: z.enum(['draft', 'published']) })]),\n )\n .optional(),\n defaultStatus: z.enum(['draft', 'published']).optional(),\n })\n .optional(),\n});\n\n// ============================================================================\n// Model Management Schemas\n// ============================================================================\n\n/**\n * Body schema for updating agent model\n */\nexport const updateAgentModelBodySchema = z.object({\n modelId: z.string(),\n provider: z.string(),\n});\n\n/**\n * Body schema for reordering agent model list\n */\nexport const reorderAgentModelListBodySchema = z.object({\n reorderedModelIds: z.array(z.string()),\n});\n\n/**\n * Body schema for updating model in model list\n */\nexport const updateAgentModelInModelListBodySchema = z.object({\n model: z\n .object({\n modelId: z.string(),\n provider: z.string(),\n })\n .optional(),\n maxRetries: z.number().optional(),\n enabled: z.boolean().optional(),\n});\n\n/**\n * Response schema for model management operations\n */\nexport const modelManagementResponseSchema = messageResponseSchema;\n\n// ============================================================================\n// Response schemas for agent generation endpoints\n// These return AI SDK types which have complex structures\n// ============================================================================\n\nexport const generateResponseSchema = z.unknown(); // AI SDK GenerateResult type\nexport const streamResponseSchema = z.unknown(); // AI SDK StreamResult type\nexport const executeToolResponseSchema = z.unknown(); // Tool execution result varies by tool\n\n// ============================================================================\n// Instruction Enhancement Schemas\n// ============================================================================\n\n/**\n * Body schema for enhancing agent instructions\n */\nexport const enhanceInstructionsBodySchema = z.object({\n instructions: z.string().describe('The current agent instructions to enhance'),\n comment: z.string().describe('User comment describing how to enhance the instructions'),\n});\n\n/**\n * Response schema for enhanced instructions\n */\nexport const enhanceInstructionsResponseSchema = z.object({\n explanation: z.string().describe('Explanation of the changes made'),\n new_prompt: z.string().describe('The enhanced instructions'),\n});\n\n// ============================================================================\n// Observe (Resumable Streams) Schemas\n// ============================================================================\n\n/**\n * Body schema for observing an agent stream\n * Used to reconnect to an existing stream and receive missed events\n */\nexport const observeAgentBodySchema = z.object({\n runId: z.string().describe('The run ID to observe/reconnect to'),\n offset: z.number().optional().describe('Resume from this event index (0-based). If omitted, replays all events.'),\n});\n\nconst signalActiveBehaviorSchema = z.enum(['deliver', 'persist', 'discard']);\nconst signalIdleBehaviorSchema = z.enum(['wake', 'persist', 'discard']);\n\nconst signalTargetBaseBodySchema = z.object({\n ifActive: z\n .object({\n behavior: signalActiveBehaviorSchema.optional(),\n attributes: signalAttributesSchema.optional(),\n })\n .optional(),\n});\n\nconst signalTargetBodySchema = z.union([\n signalTargetBaseBodySchema.extend({\n runId: z.string(),\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n ifIdle: z.undefined().optional(),\n }),\n signalTargetBaseBodySchema.extend({\n runId: z.undefined().optional(),\n resourceId: z.string(),\n threadId: z.string(),\n ifIdle: z\n .object({\n behavior: signalIdleBehaviorSchema.optional(),\n streamOptions: agentExecutionBodySchema.omit({ messages: true }).optional(),\n attributes: signalAttributesSchema.optional(),\n })\n .optional(),\n }),\n]);\n\nexport const sendAgentSignalBodySchema = z.union([\n signalTargetBodySchema.options[0].extend({ signal: agentSignalSchema }),\n signalTargetBodySchema.options[1].extend({ signal: agentSignalSchema }),\n]);\n\nexport const sendAgentMessageBodySchema = z.union([\n signalTargetBodySchema.options[0].extend({ message: agentMessageInputSchema }),\n signalTargetBodySchema.options[1].extend({ message: agentMessageInputSchema }),\n]);\n\nexport const queueAgentMessageBodySchema = sendAgentMessageBodySchema;\n\nconst agentThreadBodySchema = z.object({\n resourceId: z.string().optional(),\n threadId: z.string(),\n});\n\nexport const subscribeAgentThreadBodySchema = agentThreadBodySchema.extend({\n withInitialHistory: z\n .union([z.boolean(), z.object({ perPage: z.number().int().positive().optional() })])\n .optional()\n .describe('Emit one thread-history chunk with stored messages before live parts'),\n});\n\nexport const abortAgentThreadBodySchema = agentThreadBodySchema.extend({\n threadId: z.string().min(1),\n clearPendingSignals: z.boolean().optional(),\n expectedRunId: z.string().optional(),\n});\n\nexport const cancelPendingAgentSignalsBodySchema = agentThreadBodySchema.extend({\n threadId: z.string().min(1),\n signalIds: z.array(z.string().min(1)).min(1).max(1000),\n});\n\nexport const cancelPendingAgentSignalsResponseSchema = z.object({\n cancelledSignalIds: z.array(z.string()),\n});\n\nexport const sendToolApprovalBodySchema = z.object({\n resourceId: z.string(),\n threadId: z.string(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n toolCallId: z.string(),\n approved: z.boolean(),\n resumeData: z.unknown().optional(),\n format: z.string().optional(),\n messages: z.array(coreMessageSchema).optional(),\n streamOptions: typedPermissive<AgentExecutionOptions<undefined>>(z.unknown()).optional(),\n});\n\nexport const abortAgentThreadResponseSchema = z.object({\n aborted: z.boolean(),\n});\n\n/**\n * Response schema for observe endpoint (streaming response)\n */\nexport const observeAgentResponseSchema = z.unknown(); // Streaming response\n"],"mappings":"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"}