@mastra/server 1.65.0-alpha.1 → 1.65.0-alpha.10

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 (169) hide show
  1. package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/request-context/index.d.ts +14 -1
  2. package/dist/{a2a-C7OgMND3.cjs → a2a-CW4FVjHx.cjs} +72 -21
  3. package/dist/a2a-CW4FVjHx.cjs.map +1 -0
  4. package/dist/{a2a-DdCHhKh5.js → a2a-Di7S6YaM.js} +72 -21
  5. package/dist/a2a-Di7S6YaM.js.map +1 -0
  6. package/dist/{agents-BetrUB_N.js → agents-AMeMJBI1.js} +2 -7
  7. package/dist/agents-AMeMJBI1.js.map +1 -0
  8. package/dist/{agents-CLv_RFQx.cjs → agents-C3k-sZBO.cjs} +2 -7
  9. package/dist/agents-C3k-sZBO.cjs.map +1 -0
  10. package/dist/{api-schema-manifest-CenKfsu1.js → api-schema-manifest-BHT0tcvI.js} +2 -2
  11. package/dist/{api-schema-manifest-CenKfsu1.js.map → api-schema-manifest-BHT0tcvI.js.map} +1 -1
  12. package/dist/{api-schema-manifest-BxLfDBP-.cjs → api-schema-manifest-Dk_mN3ub.cjs} +2 -2
  13. package/dist/{api-schema-manifest-BxLfDBP-.cjs.map → api-schema-manifest-Dk_mN3ub.cjs.map} +1 -1
  14. package/dist/{datasets-B3DTc52y.cjs → datasets-C63D44YJ.cjs} +2 -1
  15. package/dist/datasets-C63D44YJ.cjs.map +1 -0
  16. package/dist/{datasets-dzuIwMeB.js → datasets-DFPCu6ID.js} +2 -1
  17. package/dist/{datasets-dzuIwMeB.js.map → datasets-DFPCu6ID.js.map} +1 -1
  18. package/dist/{dist-C8lAYOI6.cjs → dist-BLP1i9vT.cjs} +28 -7
  19. package/dist/dist-BLP1i9vT.cjs.map +1 -0
  20. package/dist/{dist-BW8S4tCf.js → dist-BLvSboHt.js} +28 -7
  21. package/dist/dist-BLvSboHt.js.map +1 -0
  22. package/dist/docs/SKILL.md +2 -1
  23. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  24. package/dist/docs/references/reference-observability-tracing-trace-query.md +179 -0
  25. package/dist/{editor-builder-BDEm-gZe.js → editor-builder-BmEpZsqX.js} +2 -2
  26. package/dist/{editor-builder-BDEm-gZe.js.map → editor-builder-BmEpZsqX.js.map} +1 -1
  27. package/dist/{editor-builder-B-KatZ10.cjs → editor-builder-DeFo8Kl5.cjs} +2 -2
  28. package/dist/{editor-builder-B-KatZ10.cjs.map → editor-builder-DeFo8Kl5.cjs.map} +1 -1
  29. package/dist/{editor-builder-c7QiLUV9.js → editor-builder-DzpPA6dp.js} +2 -2
  30. package/dist/{editor-builder-c7QiLUV9.js.map → editor-builder-DzpPA6dp.js.map} +1 -1
  31. package/dist/{editor-builder-DNRVszU-.cjs → editor-builder-WLxTW05v.cjs} +2 -2
  32. package/dist/{editor-builder-DNRVszU-.cjs.map → editor-builder-WLxTW05v.cjs.map} +1 -1
  33. package/dist/{observability-new-endpoints-BxXDVoQ0.cjs → observability-new-endpoints-DF85EOQS.cjs} +178 -15
  34. package/dist/observability-new-endpoints-DF85EOQS.cjs.map +1 -0
  35. package/dist/{observability-new-endpoints-C_om-Dj7.js → observability-new-endpoints-Zm5VNGIa.js} +174 -19
  36. package/dist/observability-new-endpoints-Zm5VNGIa.js.map +1 -0
  37. package/dist/{routes-wp2lb2LI.cjs → routes-BqrG1FfY.cjs} +6 -4
  38. package/dist/routes-BqrG1FfY.cjs.map +1 -0
  39. package/dist/{routes-bRlxNTKn.js → routes-CxuspiM8.js} +7 -5
  40. package/dist/routes-CxuspiM8.js.map +1 -0
  41. package/dist/server/a2a/tasks.d.ts +13 -1
  42. package/dist/server/a2a/tasks.d.ts.map +1 -1
  43. package/dist/server/handlers/a2a.cjs +1 -1
  44. package/dist/server/handlers/a2a.d.ts.map +1 -1
  45. package/dist/server/handlers/a2a.js +1 -1
  46. package/dist/server/handlers/agent-builder.cjs +2 -2
  47. package/dist/server/handlers/agent-builder.js +2 -2
  48. package/dist/server/handlers/agents.cjs +102 -41
  49. package/dist/server/handlers/agents.cjs.map +1 -1
  50. package/dist/server/handlers/agents.d.ts +55 -55
  51. package/dist/server/handlers/agents.d.ts.map +1 -1
  52. package/dist/server/handlers/agents.js +102 -41
  53. package/dist/server/handlers/agents.js.map +1 -1
  54. package/dist/server/handlers/author-enrichment.cjs +5 -3
  55. package/dist/server/handlers/author-enrichment.cjs.map +1 -1
  56. package/dist/server/handlers/author-enrichment.d.ts +1 -1
  57. package/dist/server/handlers/author-enrichment.d.ts.map +1 -1
  58. package/dist/server/handlers/author-enrichment.js +5 -3
  59. package/dist/server/handlers/author-enrichment.js.map +1 -1
  60. package/dist/server/handlers/datasets.cjs +2 -2
  61. package/dist/server/handlers/datasets.d.ts +2 -0
  62. package/dist/server/handlers/datasets.d.ts.map +1 -1
  63. package/dist/server/handlers/datasets.js +2 -2
  64. package/dist/server/handlers/editor-builder.cjs +1 -1
  65. package/dist/server/handlers/editor-builder.js +1 -1
  66. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  67. package/dist/server/handlers/favorites-enrichment.js +1 -1
  68. package/dist/server/handlers/mcp-client-versions.cjs +1 -1
  69. package/dist/server/handlers/mcp-client-versions.js +1 -1
  70. package/dist/server/handlers/observability-new-endpoints.cjs +2 -1
  71. package/dist/server/handlers/observability-new-endpoints.d.ts +302 -56
  72. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  73. package/dist/server/handlers/observability-new-endpoints.js +2 -2
  74. package/dist/server/handlers/observability-shared.cjs +13 -0
  75. package/dist/server/handlers/observability-shared.cjs.map +1 -1
  76. package/dist/server/handlers/observability-shared.d.ts +8 -0
  77. package/dist/server/handlers/observability-shared.d.ts.map +1 -1
  78. package/dist/server/handlers/observability-shared.js +13 -1
  79. package/dist/server/handlers/observability-shared.js.map +1 -1
  80. package/dist/server/handlers/observability-storage-schemas.cjs +5 -0
  81. package/dist/server/handlers/observability-storage-schemas.cjs.map +1 -1
  82. package/dist/server/handlers/observability-storage-schemas.d.ts +2 -0
  83. package/dist/server/handlers/observability-storage-schemas.d.ts.map +1 -1
  84. package/dist/server/handlers/observability-storage-schemas.js +4 -1
  85. package/dist/server/handlers/observability-storage-schemas.js.map +1 -1
  86. package/dist/server/handlers/observability.cjs +26 -1
  87. package/dist/server/handlers/observability.cjs.map +1 -1
  88. package/dist/server/handlers/observability.d.ts +2 -0
  89. package/dist/server/handlers/observability.d.ts.map +1 -1
  90. package/dist/server/handlers/observability.js +26 -3
  91. package/dist/server/handlers/observability.js.map +1 -1
  92. package/dist/server/handlers/plans.cjs +1 -1
  93. package/dist/server/handlers/plans.js +1 -1
  94. package/dist/server/handlers/prompt-block-versions.cjs +1 -1
  95. package/dist/server/handlers/prompt-block-versions.js +1 -1
  96. package/dist/server/handlers/responses.d.ts +11 -11
  97. package/dist/server/handlers/scorer-versions.cjs +1 -1
  98. package/dist/server/handlers/scorer-versions.js +1 -1
  99. package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
  100. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  101. package/dist/server/handlers/stored-agents.cjs +2 -2
  102. package/dist/server/handlers/stored-agents.js +2 -2
  103. package/dist/server/handlers/stored-mcp-clients.cjs +1 -1
  104. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  105. package/dist/server/handlers/stored-prompt-blocks.cjs +1 -1
  106. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  107. package/dist/server/handlers/stored-scorers.cjs +1 -1
  108. package/dist/server/handlers/stored-scorers.js +1 -1
  109. package/dist/server/handlers/stored-skill-favorites.cjs +2 -2
  110. package/dist/server/handlers/stored-skill-favorites.js +2 -2
  111. package/dist/server/handlers/stored-skills.cjs +2 -2
  112. package/dist/server/handlers/stored-skills.js +2 -2
  113. package/dist/server/handlers/system.cjs +7 -4
  114. package/dist/server/handlers/system.cjs.map +1 -1
  115. package/dist/server/handlers/system.d.ts +2 -0
  116. package/dist/server/handlers/system.d.ts.map +1 -1
  117. package/dist/server/handlers/system.js +7 -4
  118. package/dist/server/handlers/system.js.map +1 -1
  119. package/dist/server/handlers/tools.cjs +1 -1
  120. package/dist/server/handlers/tools.js +1 -1
  121. package/dist/server/handlers/workflows.cjs +2 -2
  122. package/dist/server/handlers/workflows.cjs.map +1 -1
  123. package/dist/server/handlers/workflows.js +2 -2
  124. package/dist/server/handlers/workflows.js.map +1 -1
  125. package/dist/server/handlers.cjs +1 -1
  126. package/dist/server/handlers.js +1 -1
  127. package/dist/server/schemas/agents.d.ts +8 -16
  128. package/dist/server/schemas/agents.d.ts.map +1 -1
  129. package/dist/server/schemas/datasets.d.ts +2 -0
  130. package/dist/server/schemas/datasets.d.ts.map +1 -1
  131. package/dist/server/schemas/feedback.d.ts +64 -0
  132. package/dist/server/schemas/feedback.d.ts.map +1 -0
  133. package/dist/server/schemas/index.cjs +5 -5
  134. package/dist/server/schemas/index.js +5 -5
  135. package/dist/server/schemas/system.d.ts +1 -0
  136. package/dist/server/schemas/system.d.ts.map +1 -1
  137. package/dist/server/server-adapter/index.cjs +9 -2
  138. package/dist/server/server-adapter/index.cjs.map +1 -1
  139. package/dist/server/server-adapter/index.d.ts +3 -0
  140. package/dist/server/server-adapter/index.d.ts.map +1 -1
  141. package/dist/server/server-adapter/index.js +8 -3
  142. package/dist/server/server-adapter/index.js.map +1 -1
  143. package/dist/server/server-adapter/routes/conversations.d.ts +3 -3
  144. package/dist/server/server-adapter/routes/datasets.d.ts +2 -0
  145. package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
  146. package/dist/server/server-adapter/routes/legacy.d.ts +6 -6
  147. package/dist/server/server-adapter/routes/observability.d.ts +122 -1
  148. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  149. package/dist/server/server-adapter/routes/system.d.ts +2 -0
  150. package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
  151. package/dist/server/server-adapter/routes/workspace.d.ts +23 -23
  152. package/dist/{system-wl_uZdyz.cjs → system-Cfo5a63a.cjs} +3 -1
  153. package/dist/system-Cfo5a63a.cjs.map +1 -0
  154. package/dist/{system-0TbTYKJY.js → system-DT2JfUun.js} +3 -1
  155. package/dist/system-DT2JfUun.js.map +1 -0
  156. package/package.json +6 -6
  157. package/dist/a2a-C7OgMND3.cjs.map +0 -1
  158. package/dist/a2a-DdCHhKh5.js.map +0 -1
  159. package/dist/agents-BetrUB_N.js.map +0 -1
  160. package/dist/agents-CLv_RFQx.cjs.map +0 -1
  161. package/dist/datasets-B3DTc52y.cjs.map +0 -1
  162. package/dist/dist-BW8S4tCf.js.map +0 -1
  163. package/dist/dist-C8lAYOI6.cjs.map +0 -1
  164. package/dist/observability-new-endpoints-BxXDVoQ0.cjs.map +0 -1
  165. package/dist/observability-new-endpoints-C_om-Dj7.js.map +0 -1
  166. package/dist/routes-bRlxNTKn.js.map +0 -1
  167. package/dist/routes-wp2lb2LI.cjs.map +0 -1
  168. package/dist/system-0TbTYKJY.js.map +0 -1
  169. package/dist/system-wl_uZdyz.cjs.map +0 -1
@@ -7,7 +7,9 @@ require("../../rolldown-runtime-Bd6kNlEP.cjs");
7
7
  * - no server config is registered;
8
8
  * - `server.auth` is a `MastraAuthConfig`, not a `MastraAuthProvider`.
9
9
  */
10
- function getAuthProvider(mastra) {
10
+ function getAuthProvider(mastra, isStudio) {
11
+ const studioAuth = isStudio ? mastra.getStudio?.()?.auth : void 0;
12
+ if (studioAuth && typeof studioAuth.authenticateToken === "function") return studioAuth;
11
13
  const serverConfig = mastra.getServer?.();
12
14
  if (!serverConfig?.auth) return null;
13
15
  if (typeof serverConfig.auth.authenticateToken === "function") return serverConfig.auth;
@@ -45,8 +47,8 @@ function projectUser(user) {
45
47
  * The returned map is keyed by the **requested** ID (not the user's `id`
46
48
  * field) to be robust against providers that normalize identifiers.
47
49
  */
48
- async function prepareAuthorEnrichment(mastra, _requestContext, authorIds) {
49
- const provider = getAuthProvider(mastra);
50
+ async function prepareAuthorEnrichment(mastra, _requestContext, authorIds, isStudio = false) {
51
+ const provider = getAuthProvider(mastra, isStudio);
50
52
  if (!provider || !isUserProvider(provider)) return null;
51
53
  const uniqueIds = dedupeIds(authorIds);
52
54
  if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"author-enrichment.cjs","names":[],"sources":["../../../src/server/handlers/author-enrichment.ts"],"sourcesContent":["import type { Mastra } from '@mastra/core';\nimport type { IUserProvider, User } from '@mastra/core/auth';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { IMastraAuthProvider } from '@mastra/core/server';\n\n/**\n * Public-safe resolved author shape — same fields exposed by `/auth/me`.\n * Provider-specific extras are intentionally stripped to avoid leaking\n * unexpected data through the stored-agent (and future stored-resource) APIs.\n */\nexport type ResolvedAuthor = {\n id: string;\n name?: string;\n email?: string;\n avatarUrl?: string;\n};\n\n/**\n * Locate the auth provider from a Mastra instance using the same\n * private helper pattern as `auth.ts`. Returns null when:\n * - no server config is registered;\n * - `server.auth` is a `MastraAuthConfig`, not a `MastraAuthProvider`.\n */\nfunction getAuthProvider(mastra: Mastra): IMastraAuthProvider | null {\n const serverConfig = (mastra as { getServer?: () => { auth?: unknown } }).getServer?.();\n if (!serverConfig?.auth) return null;\n if (typeof (serverConfig.auth as { authenticateToken?: unknown }).authenticateToken === 'function') {\n return serverConfig.auth as IMastraAuthProvider;\n }\n return null;\n}\n\nfunction isUserProvider(p: unknown): p is IUserProvider {\n return (\n p !== null &&\n typeof p === 'object' &&\n typeof (p as { getCurrentUser?: unknown }).getCurrentUser === 'function' &&\n typeof (p as { getUser?: unknown }).getUser === 'function'\n );\n}\n\nfunction dedupeIds(authorIds: ReadonlyArray<string | null | undefined>): string[] {\n const set = new Set<string>();\n for (const id of authorIds) {\n if (typeof id === 'string' && id.length > 0) set.add(id);\n }\n return Array.from(set);\n}\n\nfunction projectUser(user: User | null): Omit<ResolvedAuthor, 'id'> | null {\n if (!user) return null;\n const out: Omit<ResolvedAuthor, 'id'> = {};\n if (typeof user.name === 'string') out.name = user.name;\n if (typeof user.email === 'string') out.email = user.email;\n if (typeof user.avatarUrl === 'string') out.avatarUrl = user.avatarUrl;\n return out;\n}\n\n/**\n * Resolve a set of author IDs against the configured auth provider in one\n * shot. Soft-gated: returns `null` when there is no auth provider, the\n * provider does not implement `IUserProvider`, or the input has no valid\n * IDs to look up. Callers should treat `null` as \"do not attach an `author`\n * field\" so behavior matches setups without user awareness.\n *\n * When the provider exposes the optional `getUsers` batch method, the helper\n * calls it once with the deduped ID list. Otherwise it falls back to\n * `Promise.all(getUser(id))`, parallelized per unique ID. Provider errors\n * per ID are caught and treated as \"unresolved\" — they do not reject the\n * enrichment call.\n *\n * The returned map is keyed by the **requested** ID (not the user's `id`\n * field) to be robust against providers that normalize identifiers.\n */\nexport async function prepareAuthorEnrichment(\n mastra: Mastra,\n _requestContext: RequestContext,\n authorIds: ReadonlyArray<string | null | undefined>,\n): Promise<Map<string, ResolvedAuthor> | null> {\n const provider = getAuthProvider(mastra);\n if (!provider || !isUserProvider(provider)) return null;\n\n const uniqueIds = dedupeIds(authorIds);\n if (uniqueIds.length === 0) return new Map();\n\n let users: Array<User | null>;\n if (typeof provider.getUsers === 'function') {\n try {\n users = await provider.getUsers(uniqueIds);\n } catch {\n // Batch lookup failed entirely — degrade gracefully to \"no enrichment\"\n return new Map();\n }\n } else {\n users = await Promise.all(uniqueIds.map(id => provider.getUser(id).catch((): User | null => null)));\n }\n\n const map = new Map<string, ResolvedAuthor>();\n uniqueIds.forEach((id, index) => {\n const projected = projectUser(users[index] ?? null);\n if (projected !== null) {\n map.set(id, { id, ...projected });\n }\n });\n return map;\n}\n\n/**\n * Attach a resolved `author` to a record by looking it up in the map by\n * `record.authorId`. When `authors` is `null` (feature off) or the id is\n * missing from the map, the record passes through unchanged.\n */\nexport function attachAuthor<T extends { authorId?: string | null }>(\n record: T,\n authors: Map<string, ResolvedAuthor> | null,\n): T & { author?: ResolvedAuthor } {\n if (!authors) return record;\n const id = record.authorId;\n if (typeof id !== 'string' || id.length === 0) return record;\n const author = authors.get(id);\n if (!author) return record;\n return { ...record, author };\n}\n"],"mappings":";;;;;;;;;AAuBA,SAAS,gBAAgB,QAA4C;CACnE,MAAM,eAAgB,OAAoD,YAAY;CACtF,IAAI,CAAC,cAAc,MAAM,OAAO;CAChC,IAAI,OAAQ,aAAa,KAAyC,sBAAsB,YACtF,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,SAAS,eAAe,GAAgC;CACtD,OACE,MAAM,QACN,OAAO,MAAM,YACb,OAAQ,EAAmC,mBAAmB,cAC9D,OAAQ,EAA4B,YAAY;AAEpD;AAEA,SAAS,UAAU,WAA+D;CAChF,MAAM,sBAAM,IAAI,IAAY;CAC5B,KAAK,MAAM,MAAM,WACf,IAAI,OAAO,OAAO,YAAY,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE;CAEzD,OAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAS,YAAY,MAAsD;CACzE,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,MAAkC,CAAC;CACzC,IAAI,OAAO,KAAK,SAAS,UAAU,IAAI,OAAO,KAAK;CACnD,IAAI,OAAO,KAAK,UAAU,UAAU,IAAI,QAAQ,KAAK;CACrD,IAAI,OAAO,KAAK,cAAc,UAAU,IAAI,YAAY,KAAK;CAC7D,OAAO;AACT;;;;;;;;;;;;;;;;;AAkBA,eAAsB,wBACpB,QACA,iBACA,WAC6C;CAC7C,MAAM,WAAW,gBAAgB,MAAM;CACvC,IAAI,CAAC,YAAY,CAAC,eAAe,QAAQ,GAAG,OAAO;CAEnD,MAAM,YAAY,UAAU,SAAS;CACrC,IAAI,UAAU,WAAW,GAAG,uBAAO,IAAI,IAAI;CAE3C,IAAI;CACJ,IAAI,OAAO,SAAS,aAAa,YAC/B,IAAI;EACF,QAAQ,MAAM,SAAS,SAAS,SAAS;CAC3C,QAAQ;EAEN,uBAAO,IAAI,IAAI;CACjB;MAEA,QAAQ,MAAM,QAAQ,IAAI,UAAU,KAAI,OAAM,SAAS,QAAQ,EAAE,CAAC,CAAC,YAAyB,IAAI,CAAC,CAAC;CAGpG,MAAM,sBAAM,IAAI,IAA4B;CAC5C,UAAU,SAAS,IAAI,UAAU;EAC/B,MAAM,YAAY,YAAY,MAAM,UAAU,IAAI;EAClD,IAAI,cAAc,MAChB,IAAI,IAAI,IAAI;GAAE;GAAI,GAAG;EAAU,CAAC;CAEpC,CAAC;CACD,OAAO;AACT;;;;;;AAOA,SAAgB,aACd,QACA,SACiC;CACjC,IAAI,CAAC,SAAS,OAAO;CACrB,MAAM,KAAK,OAAO;CAClB,IAAI,OAAO,OAAO,YAAY,GAAG,WAAW,GAAG,OAAO;CACtD,MAAM,SAAS,QAAQ,IAAI,EAAE;CAC7B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO;EAAE,GAAG;EAAQ;CAAO;AAC7B"}
1
+ {"version":3,"file":"author-enrichment.cjs","names":[],"sources":["../../../src/server/handlers/author-enrichment.ts"],"sourcesContent":["import type { Mastra } from '@mastra/core';\nimport type { IUserProvider, User } from '@mastra/core/auth';\nimport type { RequestContext } from '@mastra/core/di';\n\n/**\n * Public-safe resolved author shape — same fields exposed by `/auth/me`.\n * Provider-specific extras are intentionally stripped to avoid leaking\n * unexpected data through the stored-agent (and future stored-resource) APIs.\n */\nexport type ResolvedAuthor = {\n id: string;\n name?: string;\n email?: string;\n avatarUrl?: string;\n};\n\n/**\n * Locate the auth provider from a Mastra instance using the same\n * private helper pattern as `auth.ts`. Returns null when:\n * - no server config is registered;\n * - `server.auth` is a `MastraAuthConfig`, not a `MastraAuthProvider`.\n */\nfunction getAuthProvider(mastra: Mastra, isStudio: boolean): unknown {\n const studioAuth = isStudio ? mastra.getStudio?.()?.auth : undefined;\n if (studioAuth && typeof studioAuth.authenticateToken === 'function') return studioAuth;\n const serverConfig = (mastra as { getServer?: () => { auth?: unknown } }).getServer?.();\n if (!serverConfig?.auth) return null;\n if (typeof (serverConfig.auth as { authenticateToken?: unknown }).authenticateToken === 'function') {\n return serverConfig.auth;\n }\n return null;\n}\n\nfunction isUserProvider(p: unknown): p is IUserProvider {\n return (\n p !== null &&\n typeof p === 'object' &&\n typeof (p as { getCurrentUser?: unknown }).getCurrentUser === 'function' &&\n typeof (p as { getUser?: unknown }).getUser === 'function'\n );\n}\n\nfunction dedupeIds(authorIds: ReadonlyArray<string | null | undefined>): string[] {\n const set = new Set<string>();\n for (const id of authorIds) {\n if (typeof id === 'string' && id.length > 0) set.add(id);\n }\n return Array.from(set);\n}\n\nfunction projectUser(user: User | null): Omit<ResolvedAuthor, 'id'> | null {\n if (!user) return null;\n const out: Omit<ResolvedAuthor, 'id'> = {};\n if (typeof user.name === 'string') out.name = user.name;\n if (typeof user.email === 'string') out.email = user.email;\n if (typeof user.avatarUrl === 'string') out.avatarUrl = user.avatarUrl;\n return out;\n}\n\n/**\n * Resolve a set of author IDs against the configured auth provider in one\n * shot. Soft-gated: returns `null` when there is no auth provider, the\n * provider does not implement `IUserProvider`, or the input has no valid\n * IDs to look up. Callers should treat `null` as \"do not attach an `author`\n * field\" so behavior matches setups without user awareness.\n *\n * When the provider exposes the optional `getUsers` batch method, the helper\n * calls it once with the deduped ID list. Otherwise it falls back to\n * `Promise.all(getUser(id))`, parallelized per unique ID. Provider errors\n * per ID are caught and treated as \"unresolved\" — they do not reject the\n * enrichment call.\n *\n * The returned map is keyed by the **requested** ID (not the user's `id`\n * field) to be robust against providers that normalize identifiers.\n */\nexport async function prepareAuthorEnrichment(\n mastra: Mastra,\n _requestContext: RequestContext,\n authorIds: ReadonlyArray<string | null | undefined>,\n isStudio = false,\n): Promise<Map<string, ResolvedAuthor> | null> {\n const provider = getAuthProvider(mastra, isStudio);\n if (!provider || !isUserProvider(provider)) return null;\n\n const uniqueIds = dedupeIds(authorIds);\n if (uniqueIds.length === 0) return new Map();\n\n let users: Array<User | null>;\n if (typeof provider.getUsers === 'function') {\n try {\n users = await provider.getUsers(uniqueIds);\n } catch {\n // Batch lookup failed entirely — degrade gracefully to \"no enrichment\"\n return new Map();\n }\n } else {\n users = await Promise.all(uniqueIds.map(id => provider.getUser(id).catch((): User | null => null)));\n }\n\n const map = new Map<string, ResolvedAuthor>();\n uniqueIds.forEach((id, index) => {\n const projected = projectUser(users[index] ?? null);\n if (projected !== null) {\n map.set(id, { id, ...projected });\n }\n });\n return map;\n}\n\n/**\n * Attach a resolved `author` to a record by looking it up in the map by\n * `record.authorId`. When `authors` is `null` (feature off) or the id is\n * missing from the map, the record passes through unchanged.\n */\nexport function attachAuthor<T extends { authorId?: string | null }>(\n record: T,\n authors: Map<string, ResolvedAuthor> | null,\n): T & { author?: ResolvedAuthor } {\n if (!authors) return record;\n const id = record.authorId;\n if (typeof id !== 'string' || id.length === 0) return record;\n const author = authors.get(id);\n if (!author) return record;\n return { ...record, author };\n}\n"],"mappings":";;;;;;;;;AAsBA,SAAS,gBAAgB,QAAgB,UAA4B;CACnE,MAAM,aAAa,WAAW,OAAO,YAAY,CAAC,EAAE,OAAO,KAAA;CAC3D,IAAI,cAAc,OAAO,WAAW,sBAAsB,YAAY,OAAO;CAC7E,MAAM,eAAgB,OAAoD,YAAY;CACtF,IAAI,CAAC,cAAc,MAAM,OAAO;CAChC,IAAI,OAAQ,aAAa,KAAyC,sBAAsB,YACtF,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,SAAS,eAAe,GAAgC;CACtD,OACE,MAAM,QACN,OAAO,MAAM,YACb,OAAQ,EAAmC,mBAAmB,cAC9D,OAAQ,EAA4B,YAAY;AAEpD;AAEA,SAAS,UAAU,WAA+D;CAChF,MAAM,sBAAM,IAAI,IAAY;CAC5B,KAAK,MAAM,MAAM,WACf,IAAI,OAAO,OAAO,YAAY,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE;CAEzD,OAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAS,YAAY,MAAsD;CACzE,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,MAAkC,CAAC;CACzC,IAAI,OAAO,KAAK,SAAS,UAAU,IAAI,OAAO,KAAK;CACnD,IAAI,OAAO,KAAK,UAAU,UAAU,IAAI,QAAQ,KAAK;CACrD,IAAI,OAAO,KAAK,cAAc,UAAU,IAAI,YAAY,KAAK;CAC7D,OAAO;AACT;;;;;;;;;;;;;;;;;AAkBA,eAAsB,wBACpB,QACA,iBACA,WACA,WAAW,OACkC;CAC7C,MAAM,WAAW,gBAAgB,QAAQ,QAAQ;CACjD,IAAI,CAAC,YAAY,CAAC,eAAe,QAAQ,GAAG,OAAO;CAEnD,MAAM,YAAY,UAAU,SAAS;CACrC,IAAI,UAAU,WAAW,GAAG,uBAAO,IAAI,IAAI;CAE3C,IAAI;CACJ,IAAI,OAAO,SAAS,aAAa,YAC/B,IAAI;EACF,QAAQ,MAAM,SAAS,SAAS,SAAS;CAC3C,QAAQ;EAEN,uBAAO,IAAI,IAAI;CACjB;MAEA,QAAQ,MAAM,QAAQ,IAAI,UAAU,KAAI,OAAM,SAAS,QAAQ,EAAE,CAAC,CAAC,YAAyB,IAAI,CAAC,CAAC;CAGpG,MAAM,sBAAM,IAAI,IAA4B;CAC5C,UAAU,SAAS,IAAI,UAAU;EAC/B,MAAM,YAAY,YAAY,MAAM,UAAU,IAAI;EAClD,IAAI,cAAc,MAChB,IAAI,IAAI,IAAI;GAAE;GAAI,GAAG;EAAU,CAAC;CAEpC,CAAC;CACD,OAAO;AACT;;;;;;AAOA,SAAgB,aACd,QACA,SACiC;CACjC,IAAI,CAAC,SAAS,OAAO;CACrB,MAAM,KAAK,OAAO;CAClB,IAAI,OAAO,OAAO,YAAY,GAAG,WAAW,GAAG,OAAO;CACtD,MAAM,SAAS,QAAQ,IAAI,EAAE;CAC7B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO;EAAE,GAAG;EAAQ;CAAO;AAC7B"}
@@ -27,7 +27,7 @@ export type ResolvedAuthor = {
27
27
  * The returned map is keyed by the **requested** ID (not the user's `id`
28
28
  * field) to be robust against providers that normalize identifiers.
29
29
  */
30
- export declare function prepareAuthorEnrichment(mastra: Mastra, _requestContext: RequestContext, authorIds: ReadonlyArray<string | null | undefined>): Promise<Map<string, ResolvedAuthor> | null>;
30
+ export declare function prepareAuthorEnrichment(mastra: Mastra, _requestContext: RequestContext, authorIds: ReadonlyArray<string | null | undefined>, isStudio?: boolean): Promise<Map<string, ResolvedAuthor> | null>;
31
31
  /**
32
32
  * Attach a resolved `author` to a record by looking it up in the map by
33
33
  * `record.authorId`. When `authors` is `null` (feature off) or the id is
@@ -1 +1 @@
1
- {"version":3,"file":"author-enrichment.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/author-enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2CF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,cAAc,EAC/B,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAClD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,CA2B7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACjE,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,GAC1C,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,CAOjC"}
1
+ {"version":3,"file":"author-enrichment.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/author-enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA6CF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,cAAc,EAC/B,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EACnD,QAAQ,UAAQ,GACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,CA2B7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACjE,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,GAC1C,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,CAOjC"}
@@ -5,7 +5,9 @@
5
5
  * - no server config is registered;
6
6
  * - `server.auth` is a `MastraAuthConfig`, not a `MastraAuthProvider`.
7
7
  */
8
- function getAuthProvider(mastra) {
8
+ function getAuthProvider(mastra, isStudio) {
9
+ const studioAuth = isStudio ? mastra.getStudio?.()?.auth : void 0;
10
+ if (studioAuth && typeof studioAuth.authenticateToken === "function") return studioAuth;
9
11
  const serverConfig = mastra.getServer?.();
10
12
  if (!serverConfig?.auth) return null;
11
13
  if (typeof serverConfig.auth.authenticateToken === "function") return serverConfig.auth;
@@ -43,8 +45,8 @@ function projectUser(user) {
43
45
  * The returned map is keyed by the **requested** ID (not the user's `id`
44
46
  * field) to be robust against providers that normalize identifiers.
45
47
  */
46
- async function prepareAuthorEnrichment(mastra, _requestContext, authorIds) {
47
- const provider = getAuthProvider(mastra);
48
+ async function prepareAuthorEnrichment(mastra, _requestContext, authorIds, isStudio = false) {
49
+ const provider = getAuthProvider(mastra, isStudio);
48
50
  if (!provider || !isUserProvider(provider)) return null;
49
51
  const uniqueIds = dedupeIds(authorIds);
50
52
  if (uniqueIds.length === 0) return /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"author-enrichment.js","names":[],"sources":["../../../src/server/handlers/author-enrichment.ts"],"sourcesContent":["import type { Mastra } from '@mastra/core';\nimport type { IUserProvider, User } from '@mastra/core/auth';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { IMastraAuthProvider } from '@mastra/core/server';\n\n/**\n * Public-safe resolved author shape — same fields exposed by `/auth/me`.\n * Provider-specific extras are intentionally stripped to avoid leaking\n * unexpected data through the stored-agent (and future stored-resource) APIs.\n */\nexport type ResolvedAuthor = {\n id: string;\n name?: string;\n email?: string;\n avatarUrl?: string;\n};\n\n/**\n * Locate the auth provider from a Mastra instance using the same\n * private helper pattern as `auth.ts`. Returns null when:\n * - no server config is registered;\n * - `server.auth` is a `MastraAuthConfig`, not a `MastraAuthProvider`.\n */\nfunction getAuthProvider(mastra: Mastra): IMastraAuthProvider | null {\n const serverConfig = (mastra as { getServer?: () => { auth?: unknown } }).getServer?.();\n if (!serverConfig?.auth) return null;\n if (typeof (serverConfig.auth as { authenticateToken?: unknown }).authenticateToken === 'function') {\n return serverConfig.auth as IMastraAuthProvider;\n }\n return null;\n}\n\nfunction isUserProvider(p: unknown): p is IUserProvider {\n return (\n p !== null &&\n typeof p === 'object' &&\n typeof (p as { getCurrentUser?: unknown }).getCurrentUser === 'function' &&\n typeof (p as { getUser?: unknown }).getUser === 'function'\n );\n}\n\nfunction dedupeIds(authorIds: ReadonlyArray<string | null | undefined>): string[] {\n const set = new Set<string>();\n for (const id of authorIds) {\n if (typeof id === 'string' && id.length > 0) set.add(id);\n }\n return Array.from(set);\n}\n\nfunction projectUser(user: User | null): Omit<ResolvedAuthor, 'id'> | null {\n if (!user) return null;\n const out: Omit<ResolvedAuthor, 'id'> = {};\n if (typeof user.name === 'string') out.name = user.name;\n if (typeof user.email === 'string') out.email = user.email;\n if (typeof user.avatarUrl === 'string') out.avatarUrl = user.avatarUrl;\n return out;\n}\n\n/**\n * Resolve a set of author IDs against the configured auth provider in one\n * shot. Soft-gated: returns `null` when there is no auth provider, the\n * provider does not implement `IUserProvider`, or the input has no valid\n * IDs to look up. Callers should treat `null` as \"do not attach an `author`\n * field\" so behavior matches setups without user awareness.\n *\n * When the provider exposes the optional `getUsers` batch method, the helper\n * calls it once with the deduped ID list. Otherwise it falls back to\n * `Promise.all(getUser(id))`, parallelized per unique ID. Provider errors\n * per ID are caught and treated as \"unresolved\" — they do not reject the\n * enrichment call.\n *\n * The returned map is keyed by the **requested** ID (not the user's `id`\n * field) to be robust against providers that normalize identifiers.\n */\nexport async function prepareAuthorEnrichment(\n mastra: Mastra,\n _requestContext: RequestContext,\n authorIds: ReadonlyArray<string | null | undefined>,\n): Promise<Map<string, ResolvedAuthor> | null> {\n const provider = getAuthProvider(mastra);\n if (!provider || !isUserProvider(provider)) return null;\n\n const uniqueIds = dedupeIds(authorIds);\n if (uniqueIds.length === 0) return new Map();\n\n let users: Array<User | null>;\n if (typeof provider.getUsers === 'function') {\n try {\n users = await provider.getUsers(uniqueIds);\n } catch {\n // Batch lookup failed entirely — degrade gracefully to \"no enrichment\"\n return new Map();\n }\n } else {\n users = await Promise.all(uniqueIds.map(id => provider.getUser(id).catch((): User | null => null)));\n }\n\n const map = new Map<string, ResolvedAuthor>();\n uniqueIds.forEach((id, index) => {\n const projected = projectUser(users[index] ?? null);\n if (projected !== null) {\n map.set(id, { id, ...projected });\n }\n });\n return map;\n}\n\n/**\n * Attach a resolved `author` to a record by looking it up in the map by\n * `record.authorId`. When `authors` is `null` (feature off) or the id is\n * missing from the map, the record passes through unchanged.\n */\nexport function attachAuthor<T extends { authorId?: string | null }>(\n record: T,\n authors: Map<string, ResolvedAuthor> | null,\n): T & { author?: ResolvedAuthor } {\n if (!authors) return record;\n const id = record.authorId;\n if (typeof id !== 'string' || id.length === 0) return record;\n const author = authors.get(id);\n if (!author) return record;\n return { ...record, author };\n}\n"],"mappings":";;;;;;;AAuBA,SAAS,gBAAgB,QAA4C;CACnE,MAAM,eAAgB,OAAoD,YAAY;CACtF,IAAI,CAAC,cAAc,MAAM,OAAO;CAChC,IAAI,OAAQ,aAAa,KAAyC,sBAAsB,YACtF,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,SAAS,eAAe,GAAgC;CACtD,OACE,MAAM,QACN,OAAO,MAAM,YACb,OAAQ,EAAmC,mBAAmB,cAC9D,OAAQ,EAA4B,YAAY;AAEpD;AAEA,SAAS,UAAU,WAA+D;CAChF,MAAM,sBAAM,IAAI,IAAY;CAC5B,KAAK,MAAM,MAAM,WACf,IAAI,OAAO,OAAO,YAAY,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE;CAEzD,OAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAS,YAAY,MAAsD;CACzE,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,MAAkC,CAAC;CACzC,IAAI,OAAO,KAAK,SAAS,UAAU,IAAI,OAAO,KAAK;CACnD,IAAI,OAAO,KAAK,UAAU,UAAU,IAAI,QAAQ,KAAK;CACrD,IAAI,OAAO,KAAK,cAAc,UAAU,IAAI,YAAY,KAAK;CAC7D,OAAO;AACT;;;;;;;;;;;;;;;;;AAkBA,eAAsB,wBACpB,QACA,iBACA,WAC6C;CAC7C,MAAM,WAAW,gBAAgB,MAAM;CACvC,IAAI,CAAC,YAAY,CAAC,eAAe,QAAQ,GAAG,OAAO;CAEnD,MAAM,YAAY,UAAU,SAAS;CACrC,IAAI,UAAU,WAAW,GAAG,uBAAO,IAAI,IAAI;CAE3C,IAAI;CACJ,IAAI,OAAO,SAAS,aAAa,YAC/B,IAAI;EACF,QAAQ,MAAM,SAAS,SAAS,SAAS;CAC3C,QAAQ;EAEN,uBAAO,IAAI,IAAI;CACjB;MAEA,QAAQ,MAAM,QAAQ,IAAI,UAAU,KAAI,OAAM,SAAS,QAAQ,EAAE,CAAC,CAAC,YAAyB,IAAI,CAAC,CAAC;CAGpG,MAAM,sBAAM,IAAI,IAA4B;CAC5C,UAAU,SAAS,IAAI,UAAU;EAC/B,MAAM,YAAY,YAAY,MAAM,UAAU,IAAI;EAClD,IAAI,cAAc,MAChB,IAAI,IAAI,IAAI;GAAE;GAAI,GAAG;EAAU,CAAC;CAEpC,CAAC;CACD,OAAO;AACT;;;;;;AAOA,SAAgB,aACd,QACA,SACiC;CACjC,IAAI,CAAC,SAAS,OAAO;CACrB,MAAM,KAAK,OAAO;CAClB,IAAI,OAAO,OAAO,YAAY,GAAG,WAAW,GAAG,OAAO;CACtD,MAAM,SAAS,QAAQ,IAAI,EAAE;CAC7B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO;EAAE,GAAG;EAAQ;CAAO;AAC7B"}
1
+ {"version":3,"file":"author-enrichment.js","names":[],"sources":["../../../src/server/handlers/author-enrichment.ts"],"sourcesContent":["import type { Mastra } from '@mastra/core';\nimport type { IUserProvider, User } from '@mastra/core/auth';\nimport type { RequestContext } from '@mastra/core/di';\n\n/**\n * Public-safe resolved author shape — same fields exposed by `/auth/me`.\n * Provider-specific extras are intentionally stripped to avoid leaking\n * unexpected data through the stored-agent (and future stored-resource) APIs.\n */\nexport type ResolvedAuthor = {\n id: string;\n name?: string;\n email?: string;\n avatarUrl?: string;\n};\n\n/**\n * Locate the auth provider from a Mastra instance using the same\n * private helper pattern as `auth.ts`. Returns null when:\n * - no server config is registered;\n * - `server.auth` is a `MastraAuthConfig`, not a `MastraAuthProvider`.\n */\nfunction getAuthProvider(mastra: Mastra, isStudio: boolean): unknown {\n const studioAuth = isStudio ? mastra.getStudio?.()?.auth : undefined;\n if (studioAuth && typeof studioAuth.authenticateToken === 'function') return studioAuth;\n const serverConfig = (mastra as { getServer?: () => { auth?: unknown } }).getServer?.();\n if (!serverConfig?.auth) return null;\n if (typeof (serverConfig.auth as { authenticateToken?: unknown }).authenticateToken === 'function') {\n return serverConfig.auth;\n }\n return null;\n}\n\nfunction isUserProvider(p: unknown): p is IUserProvider {\n return (\n p !== null &&\n typeof p === 'object' &&\n typeof (p as { getCurrentUser?: unknown }).getCurrentUser === 'function' &&\n typeof (p as { getUser?: unknown }).getUser === 'function'\n );\n}\n\nfunction dedupeIds(authorIds: ReadonlyArray<string | null | undefined>): string[] {\n const set = new Set<string>();\n for (const id of authorIds) {\n if (typeof id === 'string' && id.length > 0) set.add(id);\n }\n return Array.from(set);\n}\n\nfunction projectUser(user: User | null): Omit<ResolvedAuthor, 'id'> | null {\n if (!user) return null;\n const out: Omit<ResolvedAuthor, 'id'> = {};\n if (typeof user.name === 'string') out.name = user.name;\n if (typeof user.email === 'string') out.email = user.email;\n if (typeof user.avatarUrl === 'string') out.avatarUrl = user.avatarUrl;\n return out;\n}\n\n/**\n * Resolve a set of author IDs against the configured auth provider in one\n * shot. Soft-gated: returns `null` when there is no auth provider, the\n * provider does not implement `IUserProvider`, or the input has no valid\n * IDs to look up. Callers should treat `null` as \"do not attach an `author`\n * field\" so behavior matches setups without user awareness.\n *\n * When the provider exposes the optional `getUsers` batch method, the helper\n * calls it once with the deduped ID list. Otherwise it falls back to\n * `Promise.all(getUser(id))`, parallelized per unique ID. Provider errors\n * per ID are caught and treated as \"unresolved\" — they do not reject the\n * enrichment call.\n *\n * The returned map is keyed by the **requested** ID (not the user's `id`\n * field) to be robust against providers that normalize identifiers.\n */\nexport async function prepareAuthorEnrichment(\n mastra: Mastra,\n _requestContext: RequestContext,\n authorIds: ReadonlyArray<string | null | undefined>,\n isStudio = false,\n): Promise<Map<string, ResolvedAuthor> | null> {\n const provider = getAuthProvider(mastra, isStudio);\n if (!provider || !isUserProvider(provider)) return null;\n\n const uniqueIds = dedupeIds(authorIds);\n if (uniqueIds.length === 0) return new Map();\n\n let users: Array<User | null>;\n if (typeof provider.getUsers === 'function') {\n try {\n users = await provider.getUsers(uniqueIds);\n } catch {\n // Batch lookup failed entirely — degrade gracefully to \"no enrichment\"\n return new Map();\n }\n } else {\n users = await Promise.all(uniqueIds.map(id => provider.getUser(id).catch((): User | null => null)));\n }\n\n const map = new Map<string, ResolvedAuthor>();\n uniqueIds.forEach((id, index) => {\n const projected = projectUser(users[index] ?? null);\n if (projected !== null) {\n map.set(id, { id, ...projected });\n }\n });\n return map;\n}\n\n/**\n * Attach a resolved `author` to a record by looking it up in the map by\n * `record.authorId`. When `authors` is `null` (feature off) or the id is\n * missing from the map, the record passes through unchanged.\n */\nexport function attachAuthor<T extends { authorId?: string | null }>(\n record: T,\n authors: Map<string, ResolvedAuthor> | null,\n): T & { author?: ResolvedAuthor } {\n if (!authors) return record;\n const id = record.authorId;\n if (typeof id !== 'string' || id.length === 0) return record;\n const author = authors.get(id);\n if (!author) return record;\n return { ...record, author };\n}\n"],"mappings":";;;;;;;AAsBA,SAAS,gBAAgB,QAAgB,UAA4B;CACnE,MAAM,aAAa,WAAW,OAAO,YAAY,CAAC,EAAE,OAAO,KAAA;CAC3D,IAAI,cAAc,OAAO,WAAW,sBAAsB,YAAY,OAAO;CAC7E,MAAM,eAAgB,OAAoD,YAAY;CACtF,IAAI,CAAC,cAAc,MAAM,OAAO;CAChC,IAAI,OAAQ,aAAa,KAAyC,sBAAsB,YACtF,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,SAAS,eAAe,GAAgC;CACtD,OACE,MAAM,QACN,OAAO,MAAM,YACb,OAAQ,EAAmC,mBAAmB,cAC9D,OAAQ,EAA4B,YAAY;AAEpD;AAEA,SAAS,UAAU,WAA+D;CAChF,MAAM,sBAAM,IAAI,IAAY;CAC5B,KAAK,MAAM,MAAM,WACf,IAAI,OAAO,OAAO,YAAY,GAAG,SAAS,GAAG,IAAI,IAAI,EAAE;CAEzD,OAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAS,YAAY,MAAsD;CACzE,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,MAAkC,CAAC;CACzC,IAAI,OAAO,KAAK,SAAS,UAAU,IAAI,OAAO,KAAK;CACnD,IAAI,OAAO,KAAK,UAAU,UAAU,IAAI,QAAQ,KAAK;CACrD,IAAI,OAAO,KAAK,cAAc,UAAU,IAAI,YAAY,KAAK;CAC7D,OAAO;AACT;;;;;;;;;;;;;;;;;AAkBA,eAAsB,wBACpB,QACA,iBACA,WACA,WAAW,OACkC;CAC7C,MAAM,WAAW,gBAAgB,QAAQ,QAAQ;CACjD,IAAI,CAAC,YAAY,CAAC,eAAe,QAAQ,GAAG,OAAO;CAEnD,MAAM,YAAY,UAAU,SAAS;CACrC,IAAI,UAAU,WAAW,GAAG,uBAAO,IAAI,IAAI;CAE3C,IAAI;CACJ,IAAI,OAAO,SAAS,aAAa,YAC/B,IAAI;EACF,QAAQ,MAAM,SAAS,SAAS,SAAS;CAC3C,QAAQ;EAEN,uBAAO,IAAI,IAAI;CACjB;MAEA,QAAQ,MAAM,QAAQ,IAAI,UAAU,KAAI,OAAM,SAAS,QAAQ,EAAE,CAAC,CAAC,YAAyB,IAAI,CAAC,CAAC;CAGpG,MAAM,sBAAM,IAAI,IAA4B;CAC5C,UAAU,SAAS,IAAI,UAAU;EAC/B,MAAM,YAAY,YAAY,MAAM,UAAU,IAAI;EAClD,IAAI,cAAc,MAChB,IAAI,IAAI,IAAI;GAAE;GAAI,GAAG;EAAU,CAAC;CAEpC,CAAC;CACD,OAAO;AACT;;;;;;AAOA,SAAgB,aACd,QACA,SACiC;CACjC,IAAI,CAAC,SAAS,OAAO;CACrB,MAAM,KAAK,OAAO;CAClB,IAAI,OAAO,OAAO,YAAY,GAAG,WAAW,GAAG,OAAO;CACtD,MAAM,SAAS,QAAQ,IAAI,EAAE;CAC7B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO;EAAE,GAAG;EAAQ;CAAO;AAC7B"}
@@ -5,13 +5,13 @@ const require_common = require("../../common-DQn8jX5T.cjs");
5
5
  const require_route_builder = require("../../route-builder-C8n4ugUf.cjs");
6
6
  const require_constants = require("../../constants-4IJp_uzj.cjs");
7
7
  const require_server_handlers_error = require("./error.cjs");
8
- const require_datasets = require("../../datasets-B3DTc52y.cjs");
8
+ const require_datasets = require("../../datasets-C63D44YJ.cjs");
9
9
  let zod = require("zod");
10
10
  let _mastra_core_agent = require("@mastra/core/agent");
11
11
  let _mastra_core_error = require("@mastra/core/error");
12
12
  let _mastra_core_llm = require("@mastra/core/llm");
13
- let _mastra_core_features = require("@mastra/core/features");
14
13
  let _mastra_core_request_context = require("@mastra/core/request-context");
14
+ let _mastra_core_features = require("@mastra/core/features");
15
15
  //#region src/server/handlers/datasets.ts
16
16
  function assertDatasetsAvailable() {
17
17
  if (!_mastra_core_features.coreFeatures.has("datasets")) throw new require_http_exception.HTTPException(501, { message: "Datasets require @mastra/core >= 1.4.0" });
@@ -2893,6 +2893,7 @@ export declare const LIST_ITEM_VERSIONS_ROUTE: Omit<import("@mastra/core/server"
2893
2893
  }[] | undefined;
2894
2894
  unmockedToolPolicy?: "allow" | "deny" | undefined;
2895
2895
  scorerIds?: string[] | undefined;
2896
+ requestContext?: Record<string, unknown> | undefined;
2896
2897
  metadata?: Record<string, unknown> | undefined;
2897
2898
  validTo: number | null;
2898
2899
  isDeleted: boolean;
@@ -2935,6 +2936,7 @@ export declare const LIST_ITEM_VERSIONS_ROUTE: Omit<import("@mastra/core/server"
2935
2936
  deny: "deny";
2936
2937
  }>>;
2937
2938
  scorerIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2939
+ requestContext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2938
2940
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2939
2941
  validTo: z.ZodNullable<z.ZodNumber>;
2940
2942
  isDeleted: z.ZodBoolean;
@@ -1 +1 @@
1
- {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/datasets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/datasets.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@ import { d as successResponseSchema } from "../../common-5ZZuR6wj.js";
3
3
  import { n as createRoute } from "../../route-builder-BveLN9LU.js";
4
4
  import { p as isReservedRequestContextKey } from "../../constants-0jFCWoex.js";
5
5
  import { handleError } from "./error.js";
6
- import { A as listDatasetsResponseSchema, B as runExperimentItemResponseSchema, E as generateItemsResponseSchema, F as listItemsQuerySchema, G as updateDatasetBodySchema, H as submitExperimentResultBodySchema, I as listItemsResponseSchema, J as updateItemBodySchema, K as updateExperimentBodySchema, L as paginationQuerySchema, M as listExperimentsQuerySchema, N as listExperimentsResponseSchema, P as listItemVersionsResponseSchema, R as reviewSummaryResponseSchema, S as experimentResultResponseSchema, T as generateItemsBodySchema, U as tenancyQuerySchema, W as triggerExperimentBodySchema, _ as datasetResponseSchema, a as batchInsertItemsResponseSchema, b as experimentResponseSchema, c as compareExperimentsBodySchema, d as datasetAndExperimentIdPathParams, f as datasetAndItemIdPathParams, g as datasetItemVersionPathParams, h as datasetItemResponseSchema, i as batchInsertItemsBodySchema, j as listExperimentResultsResponseSchema, k as listDatasetVersionsResponseSchema, l as comparisonResponseSchema, m as datasetIdPathParams, n as batchDeleteItemsBodySchema, o as clusterFailuresBodySchema, p as datasetExperimentAndItemIdPathParams, q as updateExperimentResultBodySchema, r as batchDeleteItemsResponseSchema, s as clusterFailuresResponseSchema, t as addItemBodySchema, u as createDatasetBodySchema, w as experimentSummaryResponseSchema, x as experimentResultIdPathParams, z as runExperimentItemBodySchema } from "../../datasets-dzuIwMeB.js";
6
+ import { A as listDatasetsResponseSchema, B as runExperimentItemResponseSchema, E as generateItemsResponseSchema, F as listItemsQuerySchema, G as updateDatasetBodySchema, H as submitExperimentResultBodySchema, I as listItemsResponseSchema, J as updateItemBodySchema, K as updateExperimentBodySchema, L as paginationQuerySchema, M as listExperimentsQuerySchema, N as listExperimentsResponseSchema, P as listItemVersionsResponseSchema, R as reviewSummaryResponseSchema, S as experimentResultResponseSchema, T as generateItemsBodySchema, U as tenancyQuerySchema, W as triggerExperimentBodySchema, _ as datasetResponseSchema, a as batchInsertItemsResponseSchema, b as experimentResponseSchema, c as compareExperimentsBodySchema, d as datasetAndExperimentIdPathParams, f as datasetAndItemIdPathParams, g as datasetItemVersionPathParams, h as datasetItemResponseSchema, i as batchInsertItemsBodySchema, j as listExperimentResultsResponseSchema, k as listDatasetVersionsResponseSchema, l as comparisonResponseSchema, m as datasetIdPathParams, n as batchDeleteItemsBodySchema, o as clusterFailuresBodySchema, p as datasetExperimentAndItemIdPathParams, q as updateExperimentResultBodySchema, r as batchDeleteItemsResponseSchema, s as clusterFailuresResponseSchema, t as addItemBodySchema, u as createDatasetBodySchema, w as experimentSummaryResponseSchema, x as experimentResultIdPathParams, z as runExperimentItemBodySchema } from "../../datasets-DFPCu6ID.js";
7
7
  import { z as z$1 } from "zod";
8
8
  import { Agent } from "@mastra/core/agent";
9
9
  import { MastraError } from "@mastra/core/error";
10
10
  import { resolveModelConfig } from "@mastra/core/llm";
11
- import { coreFeatures } from "@mastra/core/features";
12
11
  import { RequestContext } from "@mastra/core/request-context";
12
+ import { coreFeatures } from "@mastra/core/features";
13
13
  //#region src/server/handlers/datasets.ts
14
14
  function assertDatasetsAvailable() {
15
15
  if (!coreFeatures.has("datasets")) throw new HTTPException(501, { message: "Datasets require @mastra/core >= 1.4.0" });
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../rolldown-runtime-Bd6kNlEP.cjs");
3
- const require_editor_builder = require("../../editor-builder-B-KatZ10.cjs");
3
+ const require_editor_builder = require("../../editor-builder-DeFo8Kl5.cjs");
4
4
  exports.GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = require_editor_builder.GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE;
5
5
  exports.GET_EDITOR_BUILDER_SETTINGS_ROUTE = require_editor_builder.GET_EDITOR_BUILDER_SETTINGS_ROUTE;
6
6
  exports.GET_INFRASTRUCTURE_STATUS_ROUTE = require_editor_builder.GET_INFRASTRUCTURE_STATUS_ROUTE;
@@ -1,2 +1,2 @@
1
- import { a as requireBuilderFeature, i as isBuilderFeatureEnabled, n as GET_EDITOR_BUILDER_SETTINGS_ROUTE, r as GET_INFRASTRUCTURE_STATUS_ROUTE, t as GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE } from "../../editor-builder-c7QiLUV9.js";
1
+ import { a as requireBuilderFeature, i as isBuilderFeatureEnabled, n as GET_EDITOR_BUILDER_SETTINGS_ROUTE, r as GET_INFRASTRUCTURE_STATUS_ROUTE, t as GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE } from "../../editor-builder-DzpPA6dp.js";
2
2
  export { GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE, GET_EDITOR_BUILDER_SETTINGS_ROUTE, GET_INFRASTRUCTURE_STATUS_ROUTE, isBuilderFeatureEnabled, requireBuilderFeature };
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../rolldown-runtime-Bd6kNlEP.cjs");
3
3
  const require_server_handlers_authorship = require("./authorship.cjs");
4
- const require_editor_builder = require("../../editor-builder-B-KatZ10.cjs");
4
+ const require_editor_builder = require("../../editor-builder-DeFo8Kl5.cjs");
5
5
  //#region src/server/handlers/favorites-enrichment.ts
6
6
  /**
7
7
  * Resolve the EE feature flag plus the caller's favorited set for a list of
@@ -1,5 +1,5 @@
1
1
  import { getCallerAuthorId } from "./authorship.js";
2
- import { i as isBuilderFeatureEnabled } from "../../editor-builder-c7QiLUV9.js";
2
+ import { i as isBuilderFeatureEnabled } from "../../editor-builder-DzpPA6dp.js";
3
3
  //#region src/server/handlers/favorites-enrichment.ts
4
4
  /**
5
5
  * Resolve the EE feature flag plus the caller's favorited set for a list of
@@ -4,8 +4,8 @@ const require_http_exception = require("../../http-exception-CKDHupKw.cjs");
4
4
  const require_route_builder = require("../../route-builder-C8n4ugUf.cjs");
5
5
  const require_utils = require("../../utils-CmYnjLcY.cjs");
6
6
  const require_server_handlers_error = require("./error.cjs");
7
- const require_mcp_client_versions = require("../../mcp-client-versions-CG7po4hq.cjs");
8
7
  const require_server_handlers_version_helpers = require("./version-helpers.cjs");
8
+ const require_mcp_client_versions = require("../../mcp-client-versions-CG7po4hq.cjs");
9
9
  //#region src/server/handlers/mcp-client-versions.ts
10
10
  /**
11
11
  * GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client
@@ -2,8 +2,8 @@ import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
2
2
  import { n as createRoute } from "../../route-builder-BveLN9LU.js";
3
3
  import { i as getStoredResourceScope, n as assertStoredResourceScope } from "../../utils-B2vd77Fi.js";
4
4
  import { handleError } from "./error.js";
5
- import { a as createMCPClientVersionResponseSchema, c as listMCPClientVersionsQuerySchema, d as mcpClientVersionPathParams, i as createMCPClientVersionBodySchema, l as listMCPClientVersionsResponseSchema, n as compareMCPClientVersionsQuerySchema, o as deleteMCPClientVersionResponseSchema, p as restoreMCPClientVersionResponseSchema, r as compareMCPClientVersionsResponseSchema, s as getMCPClientVersionResponseSchema, t as activateMCPClientVersionResponseSchema, u as mcpClientVersionIdPathParams } from "../../mcp-client-versions-Co8d39A6.js";
6
5
  import { MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS, calculateChangedFields, computeVersionDiffs, createVersionWithRetry, enforceRetentionLimit, extractConfigFromVersion } from "./version-helpers.js";
6
+ import { a as createMCPClientVersionResponseSchema, c as listMCPClientVersionsQuerySchema, d as mcpClientVersionPathParams, i as createMCPClientVersionBodySchema, l as listMCPClientVersionsResponseSchema, n as compareMCPClientVersionsQuerySchema, o as deleteMCPClientVersionResponseSchema, p as restoreMCPClientVersionResponseSchema, r as compareMCPClientVersionsResponseSchema, s as getMCPClientVersionResponseSchema, t as activateMCPClientVersionResponseSchema, u as mcpClientVersionIdPathParams } from "../../mcp-client-versions-Co8d39A6.js";
7
7
  //#region src/server/handlers/mcp-client-versions.ts
8
8
  /**
9
9
  * GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../rolldown-runtime-Bd6kNlEP.cjs");
3
- const require_observability_new_endpoints = require("../../observability-new-endpoints-BxXDVoQ0.cjs");
3
+ const require_observability_new_endpoints = require("../../observability-new-endpoints-DF85EOQS.cjs");
4
4
  exports.CREATE_FEEDBACK = require_observability_new_endpoints.CREATE_FEEDBACK;
5
5
  exports.CREATE_SCORE = require_observability_new_endpoints.CREATE_SCORE;
6
6
  exports.GET_ENTITY_NAMES = require_observability_new_endpoints.GET_ENTITY_NAMES;
@@ -29,4 +29,5 @@ exports.LIST_LOGS = require_observability_new_endpoints.LIST_LOGS;
29
29
  exports.LIST_METRICS = require_observability_new_endpoints.LIST_METRICS;
30
30
  exports.LIST_SCORES = require_observability_new_endpoints.LIST_SCORES;
31
31
  exports.NEW_ROUTES = require_observability_new_endpoints.NEW_ROUTES;
32
+ exports.QUERY_TRACES = require_observability_new_endpoints.QUERY_TRACES;
32
33
  exports.UPDATE_FEEDBACK_REVIEW_STATUS = require_observability_new_endpoints.UPDATE_FEEDBACK_REVIEW_STATUS;