@mastra/core 1.6.0 → 1.7.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 (453) hide show
  1. package/CHANGELOG.md +236 -0
  2. package/dist/agent/agent.d.ts +6 -0
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +8 -8
  5. package/dist/agent/index.js +1 -1
  6. package/dist/{chunk-VJWRJWSC.cjs → chunk-2X66GWF5.cjs} +94 -16
  7. package/dist/chunk-2X66GWF5.cjs.map +1 -0
  8. package/dist/{chunk-YM6245EM.js → chunk-6OXW5E2O.js} +3 -3
  9. package/dist/{chunk-YM6245EM.js.map → chunk-6OXW5E2O.js.map} +1 -1
  10. package/dist/{chunk-XWZAKKFT.cjs → chunk-6QBN6MZY.cjs} +14 -14
  11. package/dist/{chunk-XWZAKKFT.cjs.map → chunk-6QBN6MZY.cjs.map} +1 -1
  12. package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
  13. package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
  14. package/dist/{chunk-RZNHRIM7.cjs → chunk-A72NTLFT.cjs} +5 -5
  15. package/dist/{chunk-RZNHRIM7.cjs.map → chunk-A72NTLFT.cjs.map} +1 -1
  16. package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
  17. package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
  18. package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
  19. package/dist/chunk-GPJGPARM.js.map +1 -0
  20. package/dist/{chunk-LNKS4TJ6.cjs → chunk-HB6T4554.cjs} +8 -7
  21. package/dist/chunk-HB6T4554.cjs.map +1 -0
  22. package/dist/{chunk-DGS2KGDI.js → chunk-KUXNBWN7.js} +6 -5
  23. package/dist/chunk-KUXNBWN7.js.map +1 -0
  24. package/dist/{chunk-IHDE4CJV.js → chunk-QSHV7GPT.js} +89 -12
  25. package/dist/chunk-QSHV7GPT.js.map +1 -0
  26. package/dist/{chunk-3U3XFMGJ.cjs → chunk-QTAS3HND.cjs} +13 -8
  27. package/dist/chunk-QTAS3HND.cjs.map +1 -0
  28. package/dist/{chunk-RHKNKJNM.js → chunk-QWTB53GS.js} +4 -4
  29. package/dist/{chunk-RHKNKJNM.js.map → chunk-QWTB53GS.js.map} +1 -1
  30. package/dist/{chunk-4WG5K4CK.js → chunk-R4N65TLG.js} +7 -7
  31. package/dist/{chunk-4WG5K4CK.js.map → chunk-R4N65TLG.js.map} +1 -1
  32. package/dist/{chunk-5VQPSWPG.cjs → chunk-RABITNTG.cjs} +48 -48
  33. package/dist/{chunk-5VQPSWPG.cjs.map → chunk-RABITNTG.cjs.map} +1 -1
  34. package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
  35. package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
  36. package/dist/{chunk-MWGGSA5Q.js → chunk-T6GAM3SQ.js} +10 -5
  37. package/dist/chunk-T6GAM3SQ.js.map +1 -0
  38. package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
  39. package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
  40. package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
  41. package/dist/chunk-ZSBM2SVU.js.map +1 -0
  42. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  43. package/dist/datasets/index.cjs +17 -17
  44. package/dist/datasets/index.js +2 -2
  45. package/dist/evals/index.cjs +20 -20
  46. package/dist/evals/index.js +3 -3
  47. package/dist/evals/scoreTraces/index.cjs +7 -6
  48. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  49. package/dist/evals/scoreTraces/index.js +4 -3
  50. package/dist/evals/scoreTraces/index.js.map +1 -1
  51. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  52. package/dist/harness/harness.d.ts +21 -1
  53. package/dist/harness/harness.d.ts.map +1 -1
  54. package/dist/harness/index.cjs +422 -5
  55. package/dist/harness/index.cjs.map +1 -1
  56. package/dist/harness/index.d.ts +2 -1
  57. package/dist/harness/index.d.ts.map +1 -1
  58. package/dist/harness/index.js +418 -3
  59. package/dist/harness/index.js.map +1 -1
  60. package/dist/harness/types.d.ts +151 -0
  61. package/dist/harness/types.d.ts.map +1 -1
  62. package/dist/index.cjs +2 -2
  63. package/dist/index.js +1 -1
  64. package/dist/loop/index.cjs +12 -12
  65. package/dist/loop/index.js +1 -1
  66. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  67. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  68. package/dist/mastra/hooks.d.ts.map +1 -1
  69. package/dist/mastra/index.cjs +2 -2
  70. package/dist/mastra/index.js +1 -1
  71. package/dist/memory/index.cjs +14 -14
  72. package/dist/memory/index.js +1 -1
  73. package/dist/processor-provider/index.cjs +10 -10
  74. package/dist/processor-provider/index.js +1 -1
  75. package/dist/processors/index.cjs +45 -41
  76. package/dist/processors/index.js +1 -1
  77. package/dist/processors/processors/index.d.ts +1 -0
  78. package/dist/processors/processors/index.d.ts.map +1 -1
  79. package/dist/processors/processors/workspace-instructions.d.ts +50 -0
  80. package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
  81. package/dist/relevance/index.cjs +3 -3
  82. package/dist/relevance/index.js +1 -1
  83. package/dist/storage/constants.cjs +56 -56
  84. package/dist/storage/constants.d.ts.map +1 -1
  85. package/dist/storage/constants.js +1 -1
  86. package/dist/storage/index.cjs +160 -160
  87. package/dist/storage/index.js +2 -2
  88. package/dist/storage/types.d.ts +2 -0
  89. package/dist/storage/types.d.ts.map +1 -1
  90. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  91. package/dist/stream/base/output.d.ts.map +1 -1
  92. package/dist/stream/index.cjs +8 -8
  93. package/dist/stream/index.js +1 -1
  94. package/dist/tool-loop-agent/index.cjs +4 -4
  95. package/dist/tool-loop-agent/index.js +1 -1
  96. package/dist/vector/index.cjs +7 -7
  97. package/dist/vector/index.js +1 -1
  98. package/dist/workflows/evented/index.cjs +10 -10
  99. package/dist/workflows/evented/index.js +1 -1
  100. package/dist/workflows/index.cjs +25 -25
  101. package/dist/workflows/index.js +1 -1
  102. package/dist/workspace/constants/index.d.ts +2 -0
  103. package/dist/workspace/constants/index.d.ts.map +1 -1
  104. package/dist/workspace/errors.d.ts +1 -1
  105. package/dist/workspace/errors.d.ts.map +1 -1
  106. package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
  107. package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
  108. package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
  109. package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
  110. package/dist/workspace/filesystem/filesystem.d.ts +5 -1
  111. package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
  112. package/dist/workspace/filesystem/index.d.ts +1 -0
  113. package/dist/workspace/filesystem/index.d.ts.map +1 -1
  114. package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
  115. package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
  116. package/dist/workspace/index.cjs +72 -64
  117. package/dist/workspace/index.d.ts +3 -2
  118. package/dist/workspace/index.d.ts.map +1 -1
  119. package/dist/workspace/index.js +1 -1
  120. package/dist/workspace/lifecycle.d.ts +1 -9
  121. package/dist/workspace/lifecycle.d.ts.map +1 -1
  122. package/dist/workspace/sandbox/index.d.ts +2 -0
  123. package/dist/workspace/sandbox/index.d.ts.map +1 -1
  124. package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
  125. package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
  126. package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
  127. package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
  128. package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
  129. package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
  130. package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
  131. package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
  132. package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
  133. package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
  134. package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
  135. package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
  136. package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
  137. package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
  138. package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
  139. package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
  140. package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
  141. package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
  142. package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
  143. package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
  144. package/dist/workspace/sandbox/sandbox.d.ts +38 -2
  145. package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
  146. package/dist/workspace/sandbox/types.d.ts +9 -2
  147. package/dist/workspace/sandbox/types.d.ts.map +1 -1
  148. package/dist/workspace/sandbox/utils.d.ts +7 -0
  149. package/dist/workspace/sandbox/utils.d.ts.map +1 -0
  150. package/dist/workspace/tools/execute-command.d.ts +53 -2
  151. package/dist/workspace/tools/execute-command.d.ts.map +1 -1
  152. package/dist/workspace/tools/get-process-output.d.ts +6 -0
  153. package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
  154. package/dist/workspace/tools/index.d.ts +4 -1
  155. package/dist/workspace/tools/index.d.ts.map +1 -1
  156. package/dist/workspace/tools/kill-process.d.ts +4 -0
  157. package/dist/workspace/tools/kill-process.d.ts.map +1 -0
  158. package/dist/workspace/tools/output-helpers.d.ts +21 -0
  159. package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
  160. package/dist/workspace/tools/tools.d.ts.map +1 -1
  161. package/dist/workspace/types.d.ts +31 -0
  162. package/dist/workspace/types.d.ts.map +1 -1
  163. package/dist/workspace/utils.d.ts +11 -0
  164. package/dist/workspace/utils.d.ts.map +1 -0
  165. package/dist/workspace/workspace.d.ts +36 -0
  166. package/dist/workspace/workspace.d.ts.map +1 -1
  167. package/package.json +7 -7
  168. package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
  169. package/dist/chunk-5K45E5VE.js.map +0 -1
  170. package/dist/chunk-AYHSPIT6.cjs.map +0 -1
  171. package/dist/chunk-DGS2KGDI.js.map +0 -1
  172. package/dist/chunk-IHDE4CJV.js.map +0 -1
  173. package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
  174. package/dist/chunk-MWGGSA5Q.js.map +0 -1
  175. package/dist/chunk-TVPANHLE.cjs.map +0 -1
  176. package/dist/chunk-VJWRJWSC.cjs.map +0 -1
  177. package/dist/chunk-XB3DA67Q.js.map +0 -1
  178. package/dist/docs/SKILL.md +0 -301
  179. package/dist/docs/assets/SOURCE_MAP.json +0 -1413
  180. package/dist/docs/references/docs-agents-adding-voice.md +0 -353
  181. package/dist/docs/references/docs-agents-agent-approval.md +0 -377
  182. package/dist/docs/references/docs-agents-agent-memory.md +0 -212
  183. package/dist/docs/references/docs-agents-guardrails.md +0 -382
  184. package/dist/docs/references/docs-agents-network-approval.md +0 -275
  185. package/dist/docs/references/docs-agents-networks.md +0 -290
  186. package/dist/docs/references/docs-agents-overview.md +0 -309
  187. package/dist/docs/references/docs-agents-processors.md +0 -632
  188. package/dist/docs/references/docs-agents-structured-output.md +0 -271
  189. package/dist/docs/references/docs-agents-using-tools.md +0 -214
  190. package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
  191. package/dist/docs/references/docs-evals-overview.md +0 -146
  192. package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
  193. package/dist/docs/references/docs-mcp-overview.md +0 -370
  194. package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
  195. package/dist/docs/references/docs-memory-memory-processors.md +0 -316
  196. package/dist/docs/references/docs-memory-observational-memory.md +0 -246
  197. package/dist/docs/references/docs-memory-overview.md +0 -45
  198. package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
  199. package/dist/docs/references/docs-memory-storage.md +0 -261
  200. package/dist/docs/references/docs-memory-working-memory.md +0 -400
  201. package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
  202. package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
  203. package/dist/docs/references/docs-observability-logging.md +0 -99
  204. package/dist/docs/references/docs-observability-overview.md +0 -70
  205. package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
  206. package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
  207. package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
  208. package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
  209. package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
  210. package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
  211. package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
  212. package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
  213. package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
  214. package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
  215. package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
  216. package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
  217. package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
  218. package/dist/docs/references/docs-rag-graph-rag.md +0 -215
  219. package/dist/docs/references/docs-rag-overview.md +0 -72
  220. package/dist/docs/references/docs-rag-retrieval.md +0 -521
  221. package/dist/docs/references/docs-rag-vector-databases.md +0 -648
  222. package/dist/docs/references/docs-server-auth-auth0.md +0 -222
  223. package/dist/docs/references/docs-server-auth-clerk.md +0 -132
  224. package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
  225. package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
  226. package/dist/docs/references/docs-server-auth-firebase.md +0 -272
  227. package/dist/docs/references/docs-server-auth-jwt.md +0 -110
  228. package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
  229. package/dist/docs/references/docs-server-auth-supabase.md +0 -117
  230. package/dist/docs/references/docs-server-auth-workos.md +0 -190
  231. package/dist/docs/references/docs-server-custom-adapters.md +0 -374
  232. package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
  233. package/dist/docs/references/docs-server-mastra-client.md +0 -243
  234. package/dist/docs/references/docs-server-mastra-server.md +0 -71
  235. package/dist/docs/references/docs-server-middleware.md +0 -228
  236. package/dist/docs/references/docs-server-request-context.md +0 -478
  237. package/dist/docs/references/docs-streaming-events.md +0 -247
  238. package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
  239. package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
  240. package/dist/docs/references/docs-voice-overview.md +0 -979
  241. package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
  242. package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
  243. package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
  244. package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
  245. package/dist/docs/references/docs-workflows-control-flow.md +0 -823
  246. package/dist/docs/references/docs-workflows-error-handling.md +0 -360
  247. package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
  248. package/dist/docs/references/docs-workflows-overview.md +0 -372
  249. package/dist/docs/references/docs-workflows-snapshots.md +0 -238
  250. package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
  251. package/dist/docs/references/docs-workflows-time-travel.md +0 -309
  252. package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
  253. package/dist/docs/references/docs-workspace-filesystem.md +0 -162
  254. package/dist/docs/references/docs-workspace-overview.md +0 -239
  255. package/dist/docs/references/docs-workspace-sandbox.md +0 -63
  256. package/dist/docs/references/docs-workspace-search.md +0 -219
  257. package/dist/docs/references/docs-workspace-skills.md +0 -126
  258. package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
  259. package/dist/docs/references/reference-agents-agent.md +0 -142
  260. package/dist/docs/references/reference-agents-generate.md +0 -174
  261. package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
  262. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
  263. package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
  264. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
  265. package/dist/docs/references/reference-agents-getDescription.md +0 -21
  266. package/dist/docs/references/reference-agents-getInstructions.md +0 -34
  267. package/dist/docs/references/reference-agents-getLLM.md +0 -37
  268. package/dist/docs/references/reference-agents-getMemory.md +0 -34
  269. package/dist/docs/references/reference-agents-getModel.md +0 -34
  270. package/dist/docs/references/reference-agents-getTools.md +0 -29
  271. package/dist/docs/references/reference-agents-getVoice.md +0 -34
  272. package/dist/docs/references/reference-agents-listAgents.md +0 -35
  273. package/dist/docs/references/reference-agents-listScorers.md +0 -34
  274. package/dist/docs/references/reference-agents-listTools.md +0 -34
  275. package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
  276. package/dist/docs/references/reference-agents-network.md +0 -134
  277. package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
  278. package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
  279. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
  280. package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
  281. package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
  282. package/dist/docs/references/reference-auth-auth0.md +0 -73
  283. package/dist/docs/references/reference-auth-clerk.md +0 -36
  284. package/dist/docs/references/reference-auth-firebase.md +0 -80
  285. package/dist/docs/references/reference-auth-jwt.md +0 -26
  286. package/dist/docs/references/reference-auth-supabase.md +0 -33
  287. package/dist/docs/references/reference-auth-workos.md +0 -84
  288. package/dist/docs/references/reference-client-js-agents.md +0 -438
  289. package/dist/docs/references/reference-configuration.md +0 -749
  290. package/dist/docs/references/reference-core-addGateway.md +0 -42
  291. package/dist/docs/references/reference-core-getAgent.md +0 -21
  292. package/dist/docs/references/reference-core-getAgentById.md +0 -21
  293. package/dist/docs/references/reference-core-getDeployer.md +0 -22
  294. package/dist/docs/references/reference-core-getGateway.md +0 -38
  295. package/dist/docs/references/reference-core-getGatewayById.md +0 -41
  296. package/dist/docs/references/reference-core-getLogger.md +0 -22
  297. package/dist/docs/references/reference-core-getMCPServer.md +0 -45
  298. package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
  299. package/dist/docs/references/reference-core-getMemory.md +0 -50
  300. package/dist/docs/references/reference-core-getScorer.md +0 -54
  301. package/dist/docs/references/reference-core-getScorerById.md +0 -54
  302. package/dist/docs/references/reference-core-getServer.md +0 -22
  303. package/dist/docs/references/reference-core-getStorage.md +0 -22
  304. package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
  305. package/dist/docs/references/reference-core-getTelemetry.md +0 -22
  306. package/dist/docs/references/reference-core-getVector.md +0 -22
  307. package/dist/docs/references/reference-core-getWorkflow.md +0 -40
  308. package/dist/docs/references/reference-core-listAgents.md +0 -21
  309. package/dist/docs/references/reference-core-listGateways.md +0 -40
  310. package/dist/docs/references/reference-core-listLogs.md +0 -38
  311. package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
  312. package/dist/docs/references/reference-core-listMCPServers.md +0 -51
  313. package/dist/docs/references/reference-core-listMemory.md +0 -56
  314. package/dist/docs/references/reference-core-listScorers.md +0 -29
  315. package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
  316. package/dist/docs/references/reference-core-listVectors.md +0 -22
  317. package/dist/docs/references/reference-core-listWorkflows.md +0 -21
  318. package/dist/docs/references/reference-core-mastra-class.md +0 -66
  319. package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
  320. package/dist/docs/references/reference-core-setLogger.md +0 -26
  321. package/dist/docs/references/reference-core-setStorage.md +0 -27
  322. package/dist/docs/references/reference-datasets-addItem.md +0 -35
  323. package/dist/docs/references/reference-datasets-addItems.md +0 -33
  324. package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
  325. package/dist/docs/references/reference-datasets-create.md +0 -49
  326. package/dist/docs/references/reference-datasets-dataset.md +0 -78
  327. package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
  328. package/dist/docs/references/reference-datasets-delete.md +0 -23
  329. package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
  330. package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
  331. package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
  332. package/dist/docs/references/reference-datasets-get.md +0 -29
  333. package/dist/docs/references/reference-datasets-getDetails.md +0 -45
  334. package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
  335. package/dist/docs/references/reference-datasets-getItem.md +0 -31
  336. package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
  337. package/dist/docs/references/reference-datasets-list.md +0 -29
  338. package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
  339. package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
  340. package/dist/docs/references/reference-datasets-listItems.md +0 -44
  341. package/dist/docs/references/reference-datasets-listVersions.md +0 -31
  342. package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
  343. package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
  344. package/dist/docs/references/reference-datasets-update.md +0 -46
  345. package/dist/docs/references/reference-datasets-updateItem.md +0 -36
  346. package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
  347. package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
  348. package/dist/docs/references/reference-evals-bias.md +0 -120
  349. package/dist/docs/references/reference-evals-completeness.md +0 -137
  350. package/dist/docs/references/reference-evals-content-similarity.md +0 -101
  351. package/dist/docs/references/reference-evals-context-precision.md +0 -196
  352. package/dist/docs/references/reference-evals-create-scorer.md +0 -270
  353. package/dist/docs/references/reference-evals-faithfulness.md +0 -114
  354. package/dist/docs/references/reference-evals-hallucination.md +0 -220
  355. package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
  356. package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
  357. package/dist/docs/references/reference-evals-run-evals.md +0 -138
  358. package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
  359. package/dist/docs/references/reference-evals-textual-difference.md +0 -113
  360. package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
  361. package/dist/docs/references/reference-evals-toxicity.md +0 -123
  362. package/dist/docs/references/reference-harness-harness-class.md +0 -645
  363. package/dist/docs/references/reference-logging-pino-logger.md +0 -117
  364. package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
  365. package/dist/docs/references/reference-memory-memory-class.md +0 -147
  366. package/dist/docs/references/reference-memory-observational-memory.md +0 -565
  367. package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
  368. package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
  369. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
  370. package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
  371. package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
  372. package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
  373. package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
  374. package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
  375. package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
  376. package/dist/docs/references/reference-processors-language-detector.md +0 -81
  377. package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
  378. package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
  379. package/dist/docs/references/reference-processors-pii-detector.md +0 -107
  380. package/dist/docs/references/reference-processors-processor-interface.md +0 -525
  381. package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
  382. package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
  383. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
  384. package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
  385. package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
  386. package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
  387. package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
  388. package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
  389. package/dist/docs/references/reference-rag-database-config.md +0 -264
  390. package/dist/docs/references/reference-rag-embeddings.md +0 -92
  391. package/dist/docs/references/reference-server-mastra-server.md +0 -298
  392. package/dist/docs/references/reference-server-register-api-route.md +0 -249
  393. package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
  394. package/dist/docs/references/reference-storage-composite.md +0 -235
  395. package/dist/docs/references/reference-storage-lance.md +0 -131
  396. package/dist/docs/references/reference-storage-libsql.md +0 -135
  397. package/dist/docs/references/reference-storage-mongodb.md +0 -262
  398. package/dist/docs/references/reference-storage-mssql.md +0 -155
  399. package/dist/docs/references/reference-storage-overview.md +0 -121
  400. package/dist/docs/references/reference-storage-postgresql.md +0 -529
  401. package/dist/docs/references/reference-storage-upstash.md +0 -160
  402. package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
  403. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
  404. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
  405. package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
  406. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
  407. package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
  408. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
  409. package/dist/docs/references/reference-templates-overview.md +0 -194
  410. package/dist/docs/references/reference-tools-create-tool.md +0 -237
  411. package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
  412. package/dist/docs/references/reference-tools-mcp-client.md +0 -962
  413. package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
  414. package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
  415. package/dist/docs/references/reference-vectors-libsql.md +0 -305
  416. package/dist/docs/references/reference-vectors-mongodb.md +0 -295
  417. package/dist/docs/references/reference-vectors-pg.md +0 -408
  418. package/dist/docs/references/reference-vectors-upstash.md +0 -294
  419. package/dist/docs/references/reference-voice-composite-voice.md +0 -121
  420. package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
  421. package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
  422. package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
  423. package/dist/docs/references/reference-voice-voice.connect.md +0 -94
  424. package/dist/docs/references/reference-voice-voice.events.md +0 -37
  425. package/dist/docs/references/reference-voice-voice.listen.md +0 -164
  426. package/dist/docs/references/reference-voice-voice.on.md +0 -111
  427. package/dist/docs/references/reference-voice-voice.speak.md +0 -157
  428. package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
  429. package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
  430. package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
  431. package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
  432. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
  433. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
  434. package/dist/docs/references/reference-workflows-run.md +0 -59
  435. package/dist/docs/references/reference-workflows-step.md +0 -119
  436. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
  437. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
  438. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
  439. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
  440. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
  441. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
  442. package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
  443. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
  444. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
  445. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
  446. package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
  447. package/dist/docs/references/reference-workflows-workflow.md +0 -157
  448. package/dist/docs/references/reference-workspace-filesystem.md +0 -202
  449. package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
  450. package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
  451. package/dist/docs/references/reference-workspace-sandbox.md +0 -81
  452. package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
  453. package/dist/docs/references/reference.md +0 -276
@@ -1,222 +0,0 @@
1
- # MastraAuthAuth0 Class
2
-
3
- The `MastraAuthAuth0` class provides authentication for Mastra using Auth0. It verifies incoming requests using Auth0-issued JWT tokens and integrates with the Mastra server using the `auth` option.
4
-
5
- ## Prerequisites
6
-
7
- This example uses Auth0 authentication. Make sure to:
8
-
9
- 1. Create an Auth0 account at [auth0.com](https://auth0.com/)
10
- 2. Set up an Application in your Auth0 Dashboard
11
- 3. Configure an API in your Auth0 Dashboard with an identifier (audience)
12
- 4. Configure your application's allowed callback URLs, web origins, and logout URLs
13
-
14
- ```env
15
- AUTH0_DOMAIN=your-tenant.auth0.com
16
- AUTH0_AUDIENCE=your-api-identifier
17
- ```
18
-
19
- > **Note:** You can find your domain in the Auth0 Dashboard under Applications > Settings. The audience is the identifier of your API configured in Auth0 Dashboard > APIs.
20
- >
21
- > For detailed setup instructions, refer to the [Auth0 quickstarts](https://auth0.com/docs/quickstarts) for your specific platform.
22
-
23
- ## Installation
24
-
25
- Before you can use the `MastraAuthAuth0` class you have to install the `@mastra/auth-auth0` package.
26
-
27
- ```bash
28
- npm install @mastra/auth-auth0@latest
29
- ```
30
-
31
- ## Usage examples
32
-
33
- ### Basic usage with environment variables
34
-
35
- ```typescript
36
- import { Mastra } from "@mastra/core";
37
- import { MastraAuthAuth0 } from "@mastra/auth-auth0";
38
-
39
- export const mastra = new Mastra({
40
- server: {
41
- auth: new MastraAuthAuth0(),
42
- },
43
- });
44
- ```
45
-
46
- ### Custom configuration
47
-
48
- ```typescript
49
- import { Mastra } from "@mastra/core";
50
- import { MastraAuthAuth0 } from "@mastra/auth-auth0";
51
-
52
- export const mastra = new Mastra({
53
- server: {
54
- auth: new MastraAuthAuth0({
55
- domain: process.env.AUTH0_DOMAIN,
56
- audience: process.env.AUTH0_AUDIENCE,
57
- }),
58
- },
59
- });
60
- ```
61
-
62
- ## Configuration
63
-
64
- ### User Authorization
65
-
66
- By default, `MastraAuthAuth0` allows all authenticated users who have valid Auth0 tokens for the specified audience. The token verification ensures that:
67
-
68
- 1. The token is properly signed by Auth0
69
- 2. The token is not expired
70
- 3. The token audience matches your configured audience
71
- 4. The token issuer matches your Auth0 domain
72
-
73
- To customize user authorization, provide a custom `authorizeUser` function:
74
-
75
- ```typescript
76
- import { MastraAuthAuth0 } from "@mastra/auth-auth0";
77
-
78
- const auth0Provider = new MastraAuthAuth0({
79
- authorizeUser: async (user) => {
80
- // Custom authorization logic
81
- return user.email?.endsWith("@yourcompany.com") || false;
82
- },
83
- });
84
- ```
85
-
86
- > **Info:** Visit [MastraAuthAuth0](https://mastra.ai/reference/auth/auth0) for all available configuration options.
87
-
88
- ## Client-side setup
89
-
90
- When using Auth0 auth, you'll need to set up the Auth0 React SDK, authenticate users, and retrieve their access tokens to pass to your Mastra requests.
91
-
92
- ### Setting up Auth0 React SDK
93
-
94
- First, install and configure the Auth0 React SDK in your application:
95
-
96
- ```bash
97
- npm install @auth0/auth0-react
98
- ```
99
-
100
- ```typescript
101
- import React from 'react';
102
- import { Auth0Provider } from '@auth0/auth0-react';
103
-
104
- const Auth0ProviderWithHistory = ({ children }) => {
105
- return (
106
- <Auth0Provider
107
- domain={process.env.REACT_APP_AUTH0_DOMAIN}
108
- clientId={process.env.REACT_APP_AUTH0_CLIENT_ID}
109
- authorizationParams={{
110
- redirect_uri: window.location.origin,
111
- audience: process.env.REACT_APP_AUTH0_AUDIENCE,
112
- scope: "read:current_user update:current_user_metadata"
113
- }}
114
- >
115
- {children}
116
- </Auth0Provider>
117
- );
118
- };
119
-
120
- export default Auth0ProviderWithHistory;
121
- ```
122
-
123
- ### Retrieving access tokens
124
-
125
- Use the Auth0 React SDK to authenticate users and retrieve their access tokens:
126
-
127
- ```typescript
128
- import { useAuth0 } from "@auth0/auth0-react";
129
-
130
- export const useAuth0Token = () => {
131
- const { getAccessTokenSilently } = useAuth0();
132
-
133
- const getAccessToken = async () => {
134
- const token = await getAccessTokenSilently();
135
- return token;
136
- };
137
-
138
- return { getAccessToken };
139
- };
140
- ```
141
-
142
- > **Note:** Refer to the [Auth0 React SDK documentation](https://auth0.com/docs/libraries/auth0-react) for more authentication methods and configuration options.
143
-
144
- ## Configuring `MastraClient`
145
-
146
- When `auth` is enabled, all requests made with `MastraClient` must include a valid Auth0 access token in the `Authorization` header:
147
-
148
- ```typescript
149
- import { MastraClient } from "@mastra/client-js";
150
-
151
- export const createMastraClient = (accessToken: string) => {
152
- return new MastraClient({
153
- baseUrl: "https://<mastra-api-url>",
154
- headers: {
155
- Authorization: `Bearer ${accessToken}`,
156
- },
157
- });
158
- };
159
- ```
160
-
161
- > **Info:** The access token must be prefixed with `Bearer` in the Authorization header.
162
- >
163
- > Visit [Mastra Client SDK](https://mastra.ai/docs/server/mastra-client) for more configuration options.
164
-
165
- ### Making authenticated requests
166
-
167
- Once `MastraClient` is configured with the Auth0 access token, you can send authenticated requests:
168
-
169
- **React**:
170
-
171
- ```tsx
172
- import React, { useState } from 'react';
173
- import { useAuth0 } from '@auth0/auth0-react';
174
- import { MastraClient } from '@mastra/client-js';
175
-
176
- export const MastraApiTest = () => {
177
- const { getAccessTokenSilently } = useAuth0();
178
- const [result, setResult] = useState(null);
179
-
180
- const callMastraApi = async () => {
181
- const token = await getAccessTokenSilently();
182
-
183
- const mastra = new MastraClient({
184
- baseUrl: "http://localhost:4111",
185
- headers: {
186
- Authorization: `Bearer ${token}`
187
- }
188
- });
189
-
190
- const weatherAgent = mastra.getAgent("weatherAgent");
191
- const response = await weatherAgent.generate("What's the weather like in New York");
192
-
193
- setResult(response.text);
194
- };
195
-
196
- return (
197
- <div>
198
- <button onClick={callMastraApi}>
199
- Test Mastra API
200
- </button>
201
-
202
- {result && (
203
- <div className="result">
204
- <h6>Result:</h6>
205
- <pre>{result}</pre>
206
- </div>
207
- )}
208
- </div>
209
- );
210
- };
211
- ```
212
-
213
- **cURL**:
214
-
215
- ```bash
216
- curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \
217
- -H "Content-Type: application/json" \
218
- -H "Authorization: Bearer <your-auth0-access-token>" \
219
- -d '{
220
- "messages": "Weather in London"
221
- }'
222
- ```
@@ -1,132 +0,0 @@
1
- # MastraAuthClerk Class
2
-
3
- The `MastraAuthClerk` class provides authentication for Mastra using Clerk. It verifies incoming requests using Clerk's authentication system and integrates with the Mastra server using the `auth` option.
4
-
5
- ## Prerequisites
6
-
7
- This example uses Clerk authentication. Make sure to add your Clerk credentials to your `.env` file and ensure your Clerk project is properly configured.
8
-
9
- ```env
10
- CLERK_PUBLISHABLE_KEY=pk_test_...
11
- CLERK_SECRET_KEY=sk_test_...
12
- CLERK_JWKS_URI=https://your-clerk-domain.clerk.accounts.dev/.well-known/jwks.json
13
- ```
14
-
15
- > **Note:** You can find these keys in your Clerk Dashboard under "API Keys".
16
-
17
- ## Installation
18
-
19
- Before you can use the `MastraAuthClerk` class you have to install the `@mastra/auth-clerk` package.
20
-
21
- ```bash
22
- npm install @mastra/auth-clerk@latest
23
- ```
24
-
25
- ## Usage example
26
-
27
- ```typescript
28
- import { Mastra } from "@mastra/core";
29
- import { MastraAuthClerk } from "@mastra/auth-clerk";
30
-
31
- export const mastra = new Mastra({
32
- server: {
33
- auth: new MastraAuthClerk({
34
- publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
35
- secretKey: process.env.CLERK_SECRET_KEY,
36
- jwksUri: process.env.CLERK_JWKS_URI,
37
- }),
38
- },
39
- });
40
- ```
41
-
42
- > **Info:** The default `authorizeUser` method allows all authenticated users. To customize user authorization, provide a custom `authorizeUser` function when constructing the provider.
43
- >
44
- > Visit [MastraAuthClerk](https://mastra.ai/reference/auth/clerk) for all available configuration options.
45
-
46
- ## Client-side setup
47
-
48
- When using Clerk auth, you'll need to retrieve the access token from Clerk on the client side and pass it to your Mastra requests.
49
-
50
- ### Retrieving the access token
51
-
52
- Use the Clerk React hooks to authenticate users and retrieve their access token:
53
-
54
- ```typescript
55
- import { useAuth } from "@clerk/nextjs";
56
-
57
- export const useClerkAuth = () => {
58
- const { getToken } = useAuth();
59
-
60
- const getAccessToken = async () => {
61
- const token = await getToken();
62
- return token;
63
- };
64
-
65
- return { getAccessToken };
66
- };
67
- ```
68
-
69
- > **Info:** Refer to the [Clerk documentation](https://clerk.com/docs) for more information.
70
-
71
- ## Configuring `MastraClient`
72
-
73
- When `auth` is enabled, all requests made with `MastraClient` must include a valid Clerk access token in the `Authorization` header:
74
-
75
- ```typescript
76
- import { MastraClient } from "@mastra/client-js";
77
-
78
- export const mastraClient = new MastraClient({
79
- baseUrl: "https://<mastra-api-url>",
80
- headers: {
81
- Authorization: `Bearer ${accessToken}`,
82
- },
83
- });
84
- ```
85
-
86
- > **Info:** The access token must be prefixed with `Bearer` in the Authorization header.
87
- >
88
- > Visit [Mastra Client SDK](https://mastra.ai/docs/server/mastra-client) for more configuration options.
89
-
90
- ### Making authenticated requests
91
-
92
- Once `MastraClient` is configured with the Clerk access token, you can send authenticated requests:
93
-
94
- **React**:
95
-
96
- ```tsx
97
- "use client";
98
-
99
- import { useAuth } from "@clerk/nextjs";
100
- import { MastraClient } from "@mastra/client-js";
101
-
102
- export const TestAgent = () => {
103
- const { getToken } = useAuth();
104
-
105
- async function handleClick() {
106
- const token = await getToken();
107
-
108
- const client = new MastraClient({
109
- baseUrl: "http://localhost:4111",
110
- headers: token ? { Authorization: `Bearer ${token}` } : undefined,
111
- });
112
-
113
- const weatherAgent = client.getAgent("weatherAgent");
114
- const response = await weatherAgent.generate("What's the weather like in New York");
115
-
116
- console.log({ response });
117
- }
118
-
119
- return <button onClick={handleClick}>Test Agent</button>;
120
- };
121
- ```
122
-
123
- **cURL**:
124
-
125
- ```bash
126
- curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \
127
- -H "Content-Type: application/json" \
128
- -H "Authorization: Bearer <your-clerk-access-token>" \
129
- -d '{
130
- "messages": "Weather in London"
131
- }'
132
- ```
@@ -1,234 +0,0 @@
1
- # CompositeAuth Class
2
-
3
- The `CompositeAuth` class allows you to combine multiple authentication providers into a single auth handler. It tries each provider in order until one succeeds.
4
-
5
- ## Use Cases
6
-
7
- - Support both API keys and OAuth tokens
8
- - Migrate between auth providers without breaking existing clients
9
- - Allow multiple identity providers (e.g., Clerk for web, API keys for integrations)
10
- - Gradual rollout of new authentication methods
11
-
12
- ## Installation
13
-
14
- CompositeAuth is included in `@mastra/core`, no additional packages required.
15
-
16
- ```typescript
17
- import { CompositeAuth } from '@mastra/core/server';
18
- ```
19
-
20
- ## Usage Example
21
-
22
- Combine SimpleAuth (for API keys) with Clerk (for user sessions):
23
-
24
- ```typescript
25
- import { Mastra } from '@mastra/core';
26
- import { CompositeAuth, SimpleAuth } from '@mastra/core/server';
27
- import { MastraAuthClerk } from '@mastra/auth-clerk';
28
-
29
- // API key users
30
- type ApiKeyUser = {
31
- id: string;
32
- name: string;
33
- type: 'api-key';
34
- };
35
-
36
- const apiKeyAuth = new SimpleAuth<ApiKeyUser>({
37
- tokens: {
38
- 'sk-integration-key-123': {
39
- id: 'integration-1',
40
- name: 'CI/CD Pipeline',
41
- type: 'api-key',
42
- },
43
- },
44
- });
45
-
46
- // Clerk users (from web app)
47
- const clerkAuth = new MastraAuthClerk({
48
- publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
49
- secretKey: process.env.CLERK_SECRET_KEY,
50
- jwksUri: process.env.CLERK_JWKS_URI,
51
- });
52
-
53
- export const mastra = new Mastra({
54
- server: {
55
- auth: new CompositeAuth([apiKeyAuth, clerkAuth]),
56
- },
57
- });
58
- ```
59
-
60
- ## How It Works
61
-
62
- When a request comes in, CompositeAuth:
63
-
64
- 1. Extracts the token from the `Authorization` header
65
- 2. Tries each provider's `authenticateToken()` method in order
66
- 3. Returns the user from the first provider that succeeds
67
- 4. Returns `null` (401 Unauthorized) if all providers fail
68
-
69
- For authorization, it calls each provider's `authorizeUser()` method until one returns `true`.
70
-
71
- ```typescript
72
- // Pseudocode of CompositeAuth behavior
73
- async authenticateToken(token, request) {
74
- for (const provider of this.providers) {
75
- const user = await provider.authenticateToken(token, request);
76
- if (user) return user; // First match wins
77
- }
78
- return null; // All providers failed
79
- }
80
- ```
81
-
82
- ## Provider Order
83
-
84
- The order of providers matters. Place the most common authentication method first for better performance:
85
-
86
- ```typescript
87
- // If most requests use Clerk, put it first
88
- new CompositeAuth([
89
- clerkAuth, // Checked first (most common)
90
- apiKeyAuth, // Checked second (less common)
91
- ]);
92
-
93
- // If most requests use API keys, put it first
94
- new CompositeAuth([
95
- apiKeyAuth, // Checked first (most common)
96
- clerkAuth, // Checked second (less common)
97
- ]);
98
- ```
99
-
100
- ## Multiple OAuth Providers
101
-
102
- Support users from different identity providers:
103
-
104
- ```typescript
105
- import { CompositeAuth } from '@mastra/core/server';
106
- import { MastraAuthClerk } from '@mastra/auth-clerk';
107
- import { MastraAuthAuth0 } from '@mastra/auth-auth0';
108
-
109
- const clerkAuth = new MastraAuthClerk({
110
- publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
111
- secretKey: process.env.CLERK_SECRET_KEY,
112
- jwksUri: process.env.CLERK_JWKS_URI,
113
- });
114
-
115
- const auth0Auth = new MastraAuthAuth0({
116
- domain: process.env.AUTH0_DOMAIN,
117
- audience: process.env.AUTH0_AUDIENCE,
118
- });
119
-
120
- export const mastra = new Mastra({
121
- server: {
122
- auth: new CompositeAuth([clerkAuth, auth0Auth]),
123
- },
124
- });
125
- ```
126
-
127
- ## Migration Example
128
-
129
- Migrate from JWT to Clerk while maintaining backwards compatibility:
130
-
131
- ```typescript
132
- import { CompositeAuth } from '@mastra/core/server';
133
- import { MastraJwtAuth } from '@mastra/auth';
134
- import { MastraAuthClerk } from '@mastra/auth-clerk';
135
-
136
- // Legacy JWT auth (existing clients)
137
- const legacyAuth = new MastraJwtAuth({
138
- secret: process.env.JWT_SECRET,
139
- });
140
-
141
- // New Clerk auth (new clients)
142
- const clerkAuth = new MastraAuthClerk({
143
- publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
144
- secretKey: process.env.CLERK_SECRET_KEY,
145
- jwksUri: process.env.CLERK_JWKS_URI,
146
- });
147
-
148
- // Support both during migration
149
- export const mastra = new Mastra({
150
- server: {
151
- auth: new CompositeAuth([
152
- clerkAuth, // New auth method (preferred)
153
- legacyAuth, // Legacy support
154
- ]),
155
- },
156
- });
157
- ```
158
-
159
- ## With Custom Providers
160
-
161
- Combine built-in providers with custom implementations:
162
-
163
- ```typescript
164
- import { CompositeAuth, SimpleAuth } from '@mastra/core/server';
165
- import { MyCustomAuth } from './my-custom-auth';
166
-
167
- const apiKeyAuth = new SimpleAuth({
168
- tokens: {
169
- 'sk-key-123': { id: 'user-1', name: 'API User' },
170
- },
171
- });
172
-
173
- const customAuth = new MyCustomAuth({
174
- apiUrl: process.env.CUSTOM_AUTH_URL,
175
- });
176
-
177
- export const mastra = new Mastra({
178
- server: {
179
- auth: new CompositeAuth([apiKeyAuth, customAuth]),
180
- },
181
- });
182
- ```
183
-
184
- ## Error Handling
185
-
186
- CompositeAuth silently catches errors from individual providers and moves to the next one. This prevents one failing provider from blocking authentication:
187
-
188
- ```typescript
189
- // If clerkAuth throws an error, apiKeyAuth still gets tried
190
- new CompositeAuth([clerkAuth, apiKeyAuth]);
191
- ```
192
-
193
- To debug authentication issues, add logging to your custom providers or check individual provider configurations.
194
-
195
- ## Limitations
196
-
197
- - All providers share the same token from the `Authorization` header
198
- - User types may differ between providers (use discriminated unions if needed)
199
- - No built-in way to identify which provider authenticated a request
200
-
201
- ### Handling Different User Types
202
-
203
- When providers return different user types, use a discriminated union:
204
-
205
- ```typescript
206
- type ApiKeyUser = {
207
- type: 'api-key';
208
- id: string;
209
- name: string;
210
- };
211
-
212
- type ClerkUser = {
213
- type: 'clerk';
214
- sub: string;
215
- email: string;
216
- };
217
-
218
- type User = ApiKeyUser | ClerkUser;
219
-
220
- // In your application code
221
- function handleUser(user: User) {
222
- if (user.type === 'api-key') {
223
- console.log('API key user:', user.name);
224
- } else {
225
- console.log('Clerk user:', user.email);
226
- }
227
- }
228
- ```
229
-
230
- ## Related
231
-
232
- - [Auth Overview](https://mastra.ai/docs/server/auth) - Authentication concepts
233
- - [Simple Auth](https://mastra.ai/docs/server/auth/simple-auth) - Token-to-user mapping
234
- - [Custom Auth Provider](https://mastra.ai/docs/server/auth/custom-auth-provider) - Build your own provider