@mastra/core 1.7.0 → 1.8.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 (498) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/dist/agent/agent-legacy.d.ts +15 -0
  3. package/dist/agent/agent-legacy.d.ts.map +1 -1
  4. package/dist/agent/agent.d.ts +7 -0
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.types.d.ts +311 -2
  7. package/dist/agent/agent.types.d.ts.map +1 -1
  8. package/dist/agent/index.cjs +13 -13
  9. package/dist/agent/index.d.ts +3 -1
  10. package/dist/agent/index.d.ts.map +1 -1
  11. package/dist/agent/index.js +2 -2
  12. package/dist/agent/message-list/index.cjs +18 -18
  13. package/dist/agent/message-list/index.js +1 -1
  14. package/dist/agent/message-list/merge/MessageMerger.d.ts.map +1 -1
  15. package/dist/agent/message-list/message-list.d.ts.map +1 -1
  16. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  17. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  18. package/dist/{chunk-A72NTLFT.cjs → chunk-2IO5Q7OZ.cjs} +7 -7
  19. package/dist/{chunk-A72NTLFT.cjs.map → chunk-2IO5Q7OZ.cjs.map} +1 -1
  20. package/dist/{chunk-DFCRXDVK.js → chunk-2KHPZJNU.js} +10 -8
  21. package/dist/chunk-2KHPZJNU.js.map +1 -0
  22. package/dist/{chunk-R4N65TLG.js → chunk-2R5MQMSA.js} +35 -16
  23. package/dist/chunk-2R5MQMSA.js.map +1 -0
  24. package/dist/{chunk-ZSBM2SVU.js → chunk-4H5F6AFP.js} +1064 -226
  25. package/dist/chunk-4H5F6AFP.js.map +1 -0
  26. package/dist/{chunk-BQHWJLXU.js → chunk-63G75DJE.js} +9 -3
  27. package/dist/chunk-63G75DJE.js.map +1 -0
  28. package/dist/{chunk-SBOHDNIZ.cjs → chunk-6GSWC5ZA.cjs} +2 -2
  29. package/dist/{chunk-SBOHDNIZ.cjs.map → chunk-6GSWC5ZA.cjs.map} +1 -1
  30. package/dist/{chunk-QTAS3HND.cjs → chunk-6Q2UD3XF.cjs} +21 -14
  31. package/dist/chunk-6Q2UD3XF.cjs.map +1 -0
  32. package/dist/{chunk-GPJGPARM.js → chunk-DTPR3JAM.js} +2 -2
  33. package/dist/{chunk-GPJGPARM.js.map → chunk-DTPR3JAM.js.map} +1 -1
  34. package/dist/{chunk-NN26FSKL.js → chunk-FHJ2KIU5.js} +3 -3
  35. package/dist/{chunk-NN26FSKL.js.map → chunk-FHJ2KIU5.js.map} +1 -1
  36. package/dist/{chunk-RABITNTG.cjs → chunk-HWG7NPJA.cjs} +55 -55
  37. package/dist/{chunk-RABITNTG.cjs.map → chunk-HWG7NPJA.cjs.map} +1 -1
  38. package/dist/{chunk-HB6T4554.cjs → chunk-KH3G65IS.cjs} +10 -8
  39. package/dist/chunk-KH3G65IS.cjs.map +1 -0
  40. package/dist/{chunk-YQG7NBPR.cjs → chunk-KZ4IKNPN.cjs} +25 -23
  41. package/dist/chunk-KZ4IKNPN.cjs.map +1 -0
  42. package/dist/{chunk-6DUTLERJ.js → chunk-MRV5NCPC.js} +3 -3
  43. package/dist/{chunk-6DUTLERJ.js.map → chunk-MRV5NCPC.js.map} +1 -1
  44. package/dist/{chunk-O7PZ4VOO.cjs → chunk-N3ROEJG4.cjs} +12 -10
  45. package/dist/chunk-N3ROEJG4.cjs.map +1 -0
  46. package/dist/{chunk-7EXW4AAG.js → chunk-NXKI2L4X.js} +6 -4
  47. package/dist/chunk-NXKI2L4X.js.map +1 -0
  48. package/dist/{chunk-QWTB53GS.js → chunk-OSEPGSLN.js} +6 -6
  49. package/dist/{chunk-QWTB53GS.js.map → chunk-OSEPGSLN.js.map} +1 -1
  50. package/dist/{chunk-6OXW5E2O.js → chunk-PI7ONENO.js} +4 -4
  51. package/dist/{chunk-6OXW5E2O.js.map → chunk-PI7ONENO.js.map} +1 -1
  52. package/dist/{chunk-KUXNBWN7.js → chunk-Q4MV4XKX.js} +8 -6
  53. package/dist/chunk-Q4MV4XKX.js.map +1 -0
  54. package/dist/{chunk-7UAJ6LMR.cjs → chunk-QKQGKEN7.cjs} +1078 -241
  55. package/dist/chunk-QKQGKEN7.cjs.map +1 -0
  56. package/dist/{chunk-IC5OUWKJ.js → chunk-SP7P6Z4L.js} +19 -2
  57. package/dist/chunk-SP7P6Z4L.js.map +1 -0
  58. package/dist/{chunk-QDH6MVJ7.cjs → chunk-TGUDI64A.cjs} +14 -14
  59. package/dist/{chunk-QDH6MVJ7.cjs.map → chunk-TGUDI64A.cjs.map} +1 -1
  60. package/dist/{chunk-EAZ6YDCQ.cjs → chunk-U3HBG2GU.cjs} +9 -2
  61. package/dist/chunk-U3HBG2GU.cjs.map +1 -0
  62. package/dist/{chunk-6QBN6MZY.cjs → chunk-VAKB5EXJ.cjs} +42 -23
  63. package/dist/chunk-VAKB5EXJ.cjs.map +1 -0
  64. package/dist/{chunk-QSHV7GPT.js → chunk-VBPU6CLZ.js} +3808 -3026
  65. package/dist/chunk-VBPU6CLZ.js.map +1 -0
  66. package/dist/{chunk-2X66GWF5.cjs → chunk-VTVCMIAI.cjs} +3905 -3121
  67. package/dist/chunk-VTVCMIAI.cjs.map +1 -0
  68. package/dist/{chunk-PHHJLGZU.cjs → chunk-XNWF6CYR.cjs} +6 -6
  69. package/dist/{chunk-PHHJLGZU.cjs.map → chunk-XNWF6CYR.cjs.map} +1 -1
  70. package/dist/{chunk-T6GAM3SQ.js → chunk-ZRPTWYWJ.js} +18 -11
  71. package/dist/chunk-ZRPTWYWJ.js.map +1 -0
  72. package/dist/{chunk-DB7U2C5B.cjs → chunk-ZXOWG32X.cjs} +19 -2
  73. package/dist/chunk-ZXOWG32X.cjs.map +1 -0
  74. package/dist/datasets/experiment/index.d.ts.map +1 -1
  75. package/dist/datasets/experiment/scorer.d.ts +1 -1
  76. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  77. package/dist/datasets/index.cjs +17 -17
  78. package/dist/datasets/index.js +2 -2
  79. package/dist/docs/SKILL.md +300 -0
  80. package/dist/docs/assets/SOURCE_MAP.json +1423 -0
  81. package/dist/docs/references/docs-agents-adding-voice.md +349 -0
  82. package/dist/docs/references/docs-agents-agent-approval.md +558 -0
  83. package/dist/docs/references/docs-agents-agent-memory.md +209 -0
  84. package/dist/docs/references/docs-agents-guardrails.md +374 -0
  85. package/dist/docs/references/docs-agents-network-approval.md +275 -0
  86. package/dist/docs/references/docs-agents-networks.md +299 -0
  87. package/dist/docs/references/docs-agents-overview.md +304 -0
  88. package/dist/docs/references/docs-agents-processors.md +622 -0
  89. package/dist/docs/references/docs-agents-structured-output.md +273 -0
  90. package/dist/docs/references/docs-agents-supervisor-agents.md +304 -0
  91. package/dist/docs/references/docs-agents-using-tools.md +214 -0
  92. package/dist/docs/references/docs-evals-custom-scorers.md +519 -0
  93. package/dist/docs/references/docs-evals-overview.md +141 -0
  94. package/dist/docs/references/docs-evals-running-in-ci.md +124 -0
  95. package/dist/docs/references/docs-memory-memory-processors.md +314 -0
  96. package/dist/docs/references/docs-memory-observational-memory.md +248 -0
  97. package/dist/docs/references/docs-memory-overview.md +45 -0
  98. package/dist/docs/references/docs-memory-semantic-recall.md +272 -0
  99. package/dist/docs/references/docs-memory-storage.md +261 -0
  100. package/dist/docs/references/docs-memory-working-memory.md +400 -0
  101. package/dist/docs/references/docs-observability-datasets-overview.md +198 -0
  102. package/dist/docs/references/docs-observability-datasets-running-experiments.md +274 -0
  103. package/dist/docs/references/docs-observability-logging.md +99 -0
  104. package/dist/docs/references/docs-observability-overview.md +70 -0
  105. package/dist/docs/references/docs-observability-tracing-bridges-otel.md +209 -0
  106. package/dist/docs/references/docs-observability-tracing-exporters-arize.md +272 -0
  107. package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +111 -0
  108. package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +127 -0
  109. package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +187 -0
  110. package/dist/docs/references/docs-observability-tracing-exporters-default.md +209 -0
  111. package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +100 -0
  112. package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +213 -0
  113. package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +198 -0
  114. package/dist/docs/references/docs-observability-tracing-exporters-otel.md +476 -0
  115. package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +148 -0
  116. package/dist/docs/references/docs-observability-tracing-overview.md +1112 -0
  117. package/dist/docs/references/docs-rag-chunking-and-embedding.md +183 -0
  118. package/dist/docs/references/docs-rag-graph-rag.md +215 -0
  119. package/dist/docs/references/docs-rag-overview.md +72 -0
  120. package/dist/docs/references/docs-rag-retrieval.md +515 -0
  121. package/dist/docs/references/docs-rag-vector-databases.md +645 -0
  122. package/dist/docs/references/docs-server-auth-auth0.md +220 -0
  123. package/dist/docs/references/docs-server-auth-clerk.md +132 -0
  124. package/dist/docs/references/docs-server-auth-composite-auth.md +234 -0
  125. package/dist/docs/references/docs-server-auth-custom-auth-provider.md +513 -0
  126. package/dist/docs/references/docs-server-auth-firebase.md +272 -0
  127. package/dist/docs/references/docs-server-auth-jwt.md +110 -0
  128. package/dist/docs/references/docs-server-auth-simple-auth.md +180 -0
  129. package/dist/docs/references/docs-server-auth-supabase.md +117 -0
  130. package/dist/docs/references/docs-server-auth-workos.md +186 -0
  131. package/dist/docs/references/docs-server-custom-adapters.md +378 -0
  132. package/dist/docs/references/docs-server-custom-api-routes.md +267 -0
  133. package/dist/docs/references/docs-server-mastra-client.md +243 -0
  134. package/dist/docs/references/docs-server-mastra-server.md +71 -0
  135. package/dist/docs/references/docs-server-middleware.md +225 -0
  136. package/dist/docs/references/docs-server-request-context.md +471 -0
  137. package/dist/docs/references/docs-streaming-events.md +237 -0
  138. package/dist/docs/references/docs-streaming-tool-streaming.md +175 -0
  139. package/dist/docs/references/docs-streaming-workflow-streaming.md +109 -0
  140. package/dist/docs/references/docs-voice-overview.md +959 -0
  141. package/dist/docs/references/docs-voice-speech-to-speech.md +102 -0
  142. package/dist/docs/references/docs-voice-speech-to-text.md +79 -0
  143. package/dist/docs/references/docs-voice-text-to-speech.md +83 -0
  144. package/dist/docs/references/docs-workflows-agents-and-tools.md +166 -0
  145. package/dist/docs/references/docs-workflows-control-flow.md +822 -0
  146. package/dist/docs/references/docs-workflows-error-handling.md +360 -0
  147. package/dist/docs/references/docs-workflows-human-in-the-loop.md +215 -0
  148. package/dist/docs/references/docs-workflows-overview.md +370 -0
  149. package/dist/docs/references/docs-workflows-snapshots.md +238 -0
  150. package/dist/docs/references/docs-workflows-suspend-and-resume.md +205 -0
  151. package/dist/docs/references/docs-workflows-time-travel.md +309 -0
  152. package/dist/docs/references/docs-workflows-workflow-state.md +181 -0
  153. package/dist/docs/references/docs-workspace-filesystem.md +164 -0
  154. package/dist/docs/references/docs-workspace-overview.md +239 -0
  155. package/dist/docs/references/docs-workspace-sandbox.md +63 -0
  156. package/dist/docs/references/docs-workspace-search.md +243 -0
  157. package/dist/docs/references/docs-workspace-skills.md +169 -0
  158. package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +140 -0
  159. package/dist/docs/references/reference-agents-agent.md +141 -0
  160. package/dist/docs/references/reference-agents-generate.md +186 -0
  161. package/dist/docs/references/reference-agents-generateLegacy.md +173 -0
  162. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +36 -0
  163. package/dist/docs/references/reference-agents-getDefaultOptions.md +34 -0
  164. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +36 -0
  165. package/dist/docs/references/reference-agents-getDescription.md +21 -0
  166. package/dist/docs/references/reference-agents-getInstructions.md +34 -0
  167. package/dist/docs/references/reference-agents-getLLM.md +37 -0
  168. package/dist/docs/references/reference-agents-getMemory.md +34 -0
  169. package/dist/docs/references/reference-agents-getModel.md +34 -0
  170. package/dist/docs/references/reference-agents-getTools.md +29 -0
  171. package/dist/docs/references/reference-agents-getVoice.md +34 -0
  172. package/dist/docs/references/reference-agents-listAgents.md +35 -0
  173. package/dist/docs/references/reference-agents-listScorers.md +34 -0
  174. package/dist/docs/references/reference-agents-listTools.md +34 -0
  175. package/dist/docs/references/reference-agents-listWorkflows.md +34 -0
  176. package/dist/docs/references/reference-agents-network.md +133 -0
  177. package/dist/docs/references/reference-ai-sdk-chat-route.md +82 -0
  178. package/dist/docs/references/reference-ai-sdk-network-route.md +74 -0
  179. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +231 -0
  180. package/dist/docs/references/reference-ai-sdk-with-mastra.md +59 -0
  181. package/dist/docs/references/reference-ai-sdk-workflow-route.md +79 -0
  182. package/dist/docs/references/reference-auth-auth0.md +73 -0
  183. package/dist/docs/references/reference-auth-clerk.md +36 -0
  184. package/dist/docs/references/reference-auth-firebase.md +80 -0
  185. package/dist/docs/references/reference-auth-jwt.md +26 -0
  186. package/dist/docs/references/reference-auth-supabase.md +33 -0
  187. package/dist/docs/references/reference-auth-workos.md +84 -0
  188. package/dist/docs/references/reference-client-js-agents.md +437 -0
  189. package/dist/docs/references/reference-configuration.md +752 -0
  190. package/dist/docs/references/reference-core-addGateway.md +42 -0
  191. package/dist/docs/references/reference-core-getAgent.md +21 -0
  192. package/dist/docs/references/reference-core-getAgentById.md +21 -0
  193. package/dist/docs/references/reference-core-getDeployer.md +22 -0
  194. package/dist/docs/references/reference-core-getGateway.md +38 -0
  195. package/dist/docs/references/reference-core-getGatewayById.md +41 -0
  196. package/dist/docs/references/reference-core-getLogger.md +22 -0
  197. package/dist/docs/references/reference-core-getMCPServer.md +47 -0
  198. package/dist/docs/references/reference-core-getMCPServerById.md +55 -0
  199. package/dist/docs/references/reference-core-getMemory.md +50 -0
  200. package/dist/docs/references/reference-core-getScorer.md +54 -0
  201. package/dist/docs/references/reference-core-getScorerById.md +54 -0
  202. package/dist/docs/references/reference-core-getServer.md +22 -0
  203. package/dist/docs/references/reference-core-getStorage.md +22 -0
  204. package/dist/docs/references/reference-core-getStoredAgentById.md +89 -0
  205. package/dist/docs/references/reference-core-getTelemetry.md +22 -0
  206. package/dist/docs/references/reference-core-getVector.md +22 -0
  207. package/dist/docs/references/reference-core-getWorkflow.md +42 -0
  208. package/dist/docs/references/reference-core-listAgents.md +21 -0
  209. package/dist/docs/references/reference-core-listGateways.md +40 -0
  210. package/dist/docs/references/reference-core-listLogs.md +38 -0
  211. package/dist/docs/references/reference-core-listLogsByRunId.md +36 -0
  212. package/dist/docs/references/reference-core-listMCPServers.md +55 -0
  213. package/dist/docs/references/reference-core-listMemory.md +56 -0
  214. package/dist/docs/references/reference-core-listScorers.md +29 -0
  215. package/dist/docs/references/reference-core-listStoredAgents.md +93 -0
  216. package/dist/docs/references/reference-core-listVectors.md +22 -0
  217. package/dist/docs/references/reference-core-listWorkflows.md +21 -0
  218. package/dist/docs/references/reference-core-mastra-class.md +66 -0
  219. package/dist/docs/references/reference-core-mastra-model-gateway.md +153 -0
  220. package/dist/docs/references/reference-core-setLogger.md +26 -0
  221. package/dist/docs/references/reference-core-setStorage.md +27 -0
  222. package/dist/docs/references/reference-datasets-addItem.md +37 -0
  223. package/dist/docs/references/reference-datasets-addItems.md +35 -0
  224. package/dist/docs/references/reference-datasets-compareExperiments.md +52 -0
  225. package/dist/docs/references/reference-datasets-create.md +51 -0
  226. package/dist/docs/references/reference-datasets-dataset.md +82 -0
  227. package/dist/docs/references/reference-datasets-datasets-manager.md +94 -0
  228. package/dist/docs/references/reference-datasets-delete.md +25 -0
  229. package/dist/docs/references/reference-datasets-deleteExperiment.md +27 -0
  230. package/dist/docs/references/reference-datasets-deleteItem.md +27 -0
  231. package/dist/docs/references/reference-datasets-deleteItems.md +29 -0
  232. package/dist/docs/references/reference-datasets-get.md +31 -0
  233. package/dist/docs/references/reference-datasets-getDetails.md +47 -0
  234. package/dist/docs/references/reference-datasets-getExperiment.md +30 -0
  235. package/dist/docs/references/reference-datasets-getItem.md +33 -0
  236. package/dist/docs/references/reference-datasets-getItemHistory.md +31 -0
  237. package/dist/docs/references/reference-datasets-list.md +31 -0
  238. package/dist/docs/references/reference-datasets-listExperimentResults.md +39 -0
  239. package/dist/docs/references/reference-datasets-listExperiments.md +33 -0
  240. package/dist/docs/references/reference-datasets-listItems.md +46 -0
  241. package/dist/docs/references/reference-datasets-listVersions.md +33 -0
  242. package/dist/docs/references/reference-datasets-startExperiment.md +62 -0
  243. package/dist/docs/references/reference-datasets-startExperimentAsync.md +43 -0
  244. package/dist/docs/references/reference-datasets-update.md +48 -0
  245. package/dist/docs/references/reference-datasets-updateItem.md +38 -0
  246. package/dist/docs/references/reference-evals-answer-relevancy.md +105 -0
  247. package/dist/docs/references/reference-evals-answer-similarity.md +99 -0
  248. package/dist/docs/references/reference-evals-bias.md +120 -0
  249. package/dist/docs/references/reference-evals-completeness.md +136 -0
  250. package/dist/docs/references/reference-evals-content-similarity.md +101 -0
  251. package/dist/docs/references/reference-evals-context-precision.md +196 -0
  252. package/dist/docs/references/reference-evals-create-scorer.md +270 -0
  253. package/dist/docs/references/reference-evals-faithfulness.md +114 -0
  254. package/dist/docs/references/reference-evals-hallucination.md +213 -0
  255. package/dist/docs/references/reference-evals-keyword-coverage.md +128 -0
  256. package/dist/docs/references/reference-evals-mastra-scorer.md +123 -0
  257. package/dist/docs/references/reference-evals-run-evals.md +179 -0
  258. package/dist/docs/references/reference-evals-scorer-utils.md +326 -0
  259. package/dist/docs/references/reference-evals-textual-difference.md +113 -0
  260. package/dist/docs/references/reference-evals-tone-consistency.md +119 -0
  261. package/dist/docs/references/reference-evals-toxicity.md +123 -0
  262. package/dist/docs/references/reference-harness-harness-class.md +708 -0
  263. package/dist/docs/references/reference-logging-pino-logger.md +117 -0
  264. package/dist/docs/references/reference-memory-deleteMessages.md +38 -0
  265. package/dist/docs/references/reference-memory-memory-class.md +147 -0
  266. package/dist/docs/references/reference-memory-observational-memory.md +565 -0
  267. package/dist/docs/references/reference-observability-tracing-bridges-otel.md +131 -0
  268. package/dist/docs/references/reference-observability-tracing-configuration.md +178 -0
  269. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +138 -0
  270. package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +116 -0
  271. package/dist/docs/references/reference-observability-tracing-instances.md +107 -0
  272. package/dist/docs/references/reference-observability-tracing-interfaces.md +743 -0
  273. package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +144 -0
  274. package/dist/docs/references/reference-observability-tracing-spans.md +224 -0
  275. package/dist/docs/references/reference-processors-batch-parts-processor.md +61 -0
  276. package/dist/docs/references/reference-processors-language-detector.md +82 -0
  277. package/dist/docs/references/reference-processors-message-history-processor.md +85 -0
  278. package/dist/docs/references/reference-processors-moderation-processor.md +104 -0
  279. package/dist/docs/references/reference-processors-pii-detector.md +108 -0
  280. package/dist/docs/references/reference-processors-processor-interface.md +521 -0
  281. package/dist/docs/references/reference-processors-prompt-injection-detector.md +72 -0
  282. package/dist/docs/references/reference-processors-semantic-recall-processor.md +117 -0
  283. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +80 -0
  284. package/dist/docs/references/reference-processors-token-limiter-processor.md +115 -0
  285. package/dist/docs/references/reference-processors-tool-call-filter.md +85 -0
  286. package/dist/docs/references/reference-processors-tool-search-processor.md +111 -0
  287. package/dist/docs/references/reference-processors-unicode-normalizer.md +62 -0
  288. package/dist/docs/references/reference-processors-working-memory-processor.md +152 -0
  289. package/dist/docs/references/reference-rag-database-config.md +261 -0
  290. package/dist/docs/references/reference-rag-embeddings.md +92 -0
  291. package/dist/docs/references/reference-server-mastra-server.md +298 -0
  292. package/dist/docs/references/reference-server-register-api-route.md +249 -0
  293. package/dist/docs/references/reference-storage-cloudflare-d1.md +218 -0
  294. package/dist/docs/references/reference-storage-composite.md +235 -0
  295. package/dist/docs/references/reference-storage-lance.md +131 -0
  296. package/dist/docs/references/reference-storage-libsql.md +135 -0
  297. package/dist/docs/references/reference-storage-mongodb.md +262 -0
  298. package/dist/docs/references/reference-storage-mssql.md +157 -0
  299. package/dist/docs/references/reference-storage-overview.md +121 -0
  300. package/dist/docs/references/reference-storage-postgresql.md +526 -0
  301. package/dist/docs/references/reference-storage-upstash.md +160 -0
  302. package/dist/docs/references/reference-streaming-ChunkType.md +292 -0
  303. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +182 -0
  304. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +142 -0
  305. package/dist/docs/references/reference-streaming-workflows-observeStream.md +42 -0
  306. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +61 -0
  307. package/dist/docs/references/reference-streaming-workflows-stream.md +88 -0
  308. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +142 -0
  309. package/dist/docs/references/reference-templates-overview.md +194 -0
  310. package/dist/docs/references/reference-tools-create-tool.md +237 -0
  311. package/dist/docs/references/reference-tools-graph-rag-tool.md +182 -0
  312. package/dist/docs/references/reference-tools-mcp-client.md +954 -0
  313. package/dist/docs/references/reference-tools-mcp-server.md +1271 -0
  314. package/dist/docs/references/reference-tools-vector-query-tool.md +459 -0
  315. package/dist/docs/references/reference-vectors-libsql.md +305 -0
  316. package/dist/docs/references/reference-vectors-mongodb.md +295 -0
  317. package/dist/docs/references/reference-vectors-pg.md +408 -0
  318. package/dist/docs/references/reference-vectors-upstash.md +294 -0
  319. package/dist/docs/references/reference-voice-composite-voice.md +121 -0
  320. package/dist/docs/references/reference-voice-mastra-voice.md +311 -0
  321. package/dist/docs/references/reference-voice-voice.addInstructions.md +55 -0
  322. package/dist/docs/references/reference-voice-voice.addTools.md +67 -0
  323. package/dist/docs/references/reference-voice-voice.connect.md +94 -0
  324. package/dist/docs/references/reference-voice-voice.events.md +37 -0
  325. package/dist/docs/references/reference-voice-voice.listen.md +164 -0
  326. package/dist/docs/references/reference-voice-voice.on.md +111 -0
  327. package/dist/docs/references/reference-voice-voice.speak.md +157 -0
  328. package/dist/docs/references/reference-workflows-run-methods-cancel.md +86 -0
  329. package/dist/docs/references/reference-workflows-run-methods-restart.md +33 -0
  330. package/dist/docs/references/reference-workflows-run-methods-resume.md +59 -0
  331. package/dist/docs/references/reference-workflows-run-methods-start.md +58 -0
  332. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +67 -0
  333. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +142 -0
  334. package/dist/docs/references/reference-workflows-run.md +59 -0
  335. package/dist/docs/references/reference-workflows-step.md +119 -0
  336. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +25 -0
  337. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +17 -0
  338. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +63 -0
  339. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +25 -0
  340. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +25 -0
  341. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +118 -0
  342. package/dist/docs/references/reference-workflows-workflow-methods-map.md +93 -0
  343. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +21 -0
  344. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +35 -0
  345. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +35 -0
  346. package/dist/docs/references/reference-workflows-workflow-methods-then.md +21 -0
  347. package/dist/docs/references/reference-workflows-workflow.md +157 -0
  348. package/dist/docs/references/reference-workspace-filesystem.md +255 -0
  349. package/dist/docs/references/reference-workspace-local-filesystem.md +343 -0
  350. package/dist/docs/references/reference-workspace-local-sandbox.md +301 -0
  351. package/dist/docs/references/reference-workspace-sandbox.md +87 -0
  352. package/dist/docs/references/reference-workspace-workspace-class.md +244 -0
  353. package/dist/docs/references/reference.md +277 -0
  354. package/dist/evals/index.cjs +20 -20
  355. package/dist/evals/index.js +3 -3
  356. package/dist/evals/run/index.d.ts +9 -2
  357. package/dist/evals/run/index.d.ts.map +1 -1
  358. package/dist/evals/scoreTraces/index.cjs +5 -5
  359. package/dist/evals/scoreTraces/index.js +2 -2
  360. package/dist/harness/harness.d.ts +6 -0
  361. package/dist/harness/harness.d.ts.map +1 -1
  362. package/dist/harness/index.cjs +28 -13
  363. package/dist/harness/index.cjs.map +1 -1
  364. package/dist/harness/index.js +20 -5
  365. package/dist/harness/index.js.map +1 -1
  366. package/dist/index.cjs +2 -2
  367. package/dist/index.js +1 -1
  368. package/dist/integration/index.cjs +2 -2
  369. package/dist/integration/index.js +1 -1
  370. package/dist/llm/index.cjs +6 -6
  371. package/dist/llm/index.js +1 -1
  372. package/dist/llm/model/embedding-router.d.ts.map +1 -1
  373. package/dist/llm/model/model.loop.d.ts +1 -1
  374. package/dist/llm/model/model.loop.d.ts.map +1 -1
  375. package/dist/loop/index.cjs +20 -12
  376. package/dist/loop/index.js +1 -1
  377. package/dist/loop/network/index.d.ts.map +1 -1
  378. package/dist/loop/network/validation.d.ts +51 -0
  379. package/dist/loop/network/validation.d.ts.map +1 -1
  380. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  381. package/dist/loop/test-utils/options.d.ts.map +1 -1
  382. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  383. package/dist/loop/types.d.ts +15 -0
  384. package/dist/loop/types.d.ts.map +1 -1
  385. package/dist/loop/workflows/agentic-execution/index.d.ts +3 -0
  386. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  387. package/dist/loop/workflows/agentic-execution/is-task-complete-step.d.ts +126 -0
  388. package/dist/loop/workflows/agentic-execution/is-task-complete-step.d.ts.map +1 -0
  389. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +3 -1
  390. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  391. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +1 -0
  392. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  393. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  394. package/dist/loop/workflows/agentic-loop/index.d.ts +3 -0
  395. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  396. package/dist/loop/workflows/schema.d.ts +3 -0
  397. package/dist/loop/workflows/schema.d.ts.map +1 -1
  398. package/dist/mastra/index.cjs +2 -2
  399. package/dist/mastra/index.d.ts +9 -5
  400. package/dist/mastra/index.d.ts.map +1 -1
  401. package/dist/mastra/index.js +1 -1
  402. package/dist/memory/index.cjs +14 -14
  403. package/dist/memory/index.js +1 -1
  404. package/dist/processor-provider/index.cjs +10 -10
  405. package/dist/processor-provider/index.js +1 -1
  406. package/dist/processors/index.cjs +42 -42
  407. package/dist/processors/index.js +1 -1
  408. package/dist/processors/processors/skills.d.ts.map +1 -1
  409. package/dist/relevance/index.cjs +3 -3
  410. package/dist/relevance/index.js +1 -1
  411. package/dist/storage/constants.cjs +56 -56
  412. package/dist/storage/constants.js +1 -1
  413. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  414. package/dist/storage/index.cjs +160 -160
  415. package/dist/storage/index.js +2 -2
  416. package/dist/storage/types.d.ts +2 -3
  417. package/dist/storage/types.d.ts.map +1 -1
  418. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  419. package/dist/stream/base/output.d.ts +1 -0
  420. package/dist/stream/base/output.d.ts.map +1 -1
  421. package/dist/stream/index.cjs +11 -11
  422. package/dist/stream/index.js +2 -2
  423. package/dist/stream/types.d.ts +27 -1
  424. package/dist/stream/types.d.ts.map +1 -1
  425. package/dist/test-utils/llm-mock.cjs +4 -4
  426. package/dist/test-utils/llm-mock.js +1 -1
  427. package/dist/tool-loop-agent/index.cjs +4 -4
  428. package/dist/tool-loop-agent/index.js +1 -1
  429. package/dist/tools/index.cjs +9 -5
  430. package/dist/tools/index.d.ts +1 -1
  431. package/dist/tools/index.d.ts.map +1 -1
  432. package/dist/tools/index.js +1 -1
  433. package/dist/tools/is-vercel-tool.cjs +2 -2
  434. package/dist/tools/is-vercel-tool.js +1 -1
  435. package/dist/tools/toolchecks.d.ts +10 -0
  436. package/dist/tools/toolchecks.d.ts.map +1 -1
  437. package/dist/utils.cjs +23 -23
  438. package/dist/utils.js +1 -1
  439. package/dist/vector/index.cjs +7 -7
  440. package/dist/vector/index.js +1 -1
  441. package/dist/vector/types.d.ts +9 -1
  442. package/dist/vector/types.d.ts.map +1 -1
  443. package/dist/workflows/evented/index.cjs +10 -10
  444. package/dist/workflows/evented/index.js +1 -1
  445. package/dist/workflows/index.cjs +25 -25
  446. package/dist/workflows/index.js +1 -1
  447. package/dist/workflows/types.d.ts +14 -1
  448. package/dist/workflows/types.d.ts.map +1 -1
  449. package/dist/workflows/workflow.d.ts +3 -17
  450. package/dist/workflows/workflow.d.ts.map +1 -1
  451. package/dist/workspace/filesystem/composite-filesystem.d.ts +5 -0
  452. package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
  453. package/dist/workspace/filesystem/filesystem.d.ts +12 -0
  454. package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
  455. package/dist/workspace/filesystem/fs-utils.d.ts +12 -0
  456. package/dist/workspace/filesystem/fs-utils.d.ts.map +1 -1
  457. package/dist/workspace/filesystem/local-filesystem.d.ts +6 -0
  458. package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
  459. package/dist/workspace/index.cjs +66 -66
  460. package/dist/workspace/index.js +1 -1
  461. package/dist/workspace/lsp/client.d.ts +76 -0
  462. package/dist/workspace/lsp/client.d.ts.map +1 -0
  463. package/dist/workspace/lsp/index.d.ts +6 -0
  464. package/dist/workspace/lsp/index.d.ts.map +1 -0
  465. package/dist/workspace/lsp/language.d.ts +16 -0
  466. package/dist/workspace/lsp/language.d.ts.map +1 -0
  467. package/dist/workspace/lsp/manager.d.ts +72 -0
  468. package/dist/workspace/lsp/manager.d.ts.map +1 -0
  469. package/dist/workspace/lsp/servers.d.ts +43 -0
  470. package/dist/workspace/lsp/servers.d.ts.map +1 -0
  471. package/dist/workspace/lsp/types.d.ts +45 -0
  472. package/dist/workspace/lsp/types.d.ts.map +1 -0
  473. package/dist/workspace/tools/ast-edit.d.ts.map +1 -1
  474. package/dist/workspace/tools/edit-file.d.ts.map +1 -1
  475. package/dist/workspace/tools/helpers.d.ts +13 -0
  476. package/dist/workspace/tools/helpers.d.ts.map +1 -1
  477. package/dist/workspace/tools/write-file.d.ts.map +1 -1
  478. package/dist/workspace/workspace.d.ts +33 -0
  479. package/dist/workspace/workspace.d.ts.map +1 -1
  480. package/package.json +10 -8
  481. package/dist/chunk-2X66GWF5.cjs.map +0 -1
  482. package/dist/chunk-6QBN6MZY.cjs.map +0 -1
  483. package/dist/chunk-7EXW4AAG.js.map +0 -1
  484. package/dist/chunk-7UAJ6LMR.cjs.map +0 -1
  485. package/dist/chunk-BQHWJLXU.js.map +0 -1
  486. package/dist/chunk-DB7U2C5B.cjs.map +0 -1
  487. package/dist/chunk-DFCRXDVK.js.map +0 -1
  488. package/dist/chunk-EAZ6YDCQ.cjs.map +0 -1
  489. package/dist/chunk-HB6T4554.cjs.map +0 -1
  490. package/dist/chunk-IC5OUWKJ.js.map +0 -1
  491. package/dist/chunk-KUXNBWN7.js.map +0 -1
  492. package/dist/chunk-O7PZ4VOO.cjs.map +0 -1
  493. package/dist/chunk-QSHV7GPT.js.map +0 -1
  494. package/dist/chunk-QTAS3HND.cjs.map +0 -1
  495. package/dist/chunk-R4N65TLG.js.map +0 -1
  496. package/dist/chunk-T6GAM3SQ.js.map +0 -1
  497. package/dist/chunk-YQG7NBPR.cjs.map +0 -1
  498. package/dist/chunk-ZSBM2SVU.js.map +0 -1
@@ -0,0 +1,267 @@
1
+ # Custom API Routes
2
+
3
+ By default, Mastra automatically exposes registered agents and workflows via its server. For additional behavior you can define your own HTTP routes.
4
+
5
+ Routes are provided with a helper `registerApiRoute()` from `@mastra/core/server`. Routes can live in the same file as the `Mastra` instance but separating them helps keep configuration concise.
6
+
7
+ ```typescript
8
+ import { Mastra } from '@mastra/core'
9
+ import { registerApiRoute } from '@mastra/core/server'
10
+
11
+ export const mastra = new Mastra({
12
+ server: {
13
+ apiRoutes: [
14
+ registerApiRoute('/my-custom-route', {
15
+ method: 'GET',
16
+ handler: async c => {
17
+ const mastra = c.get('mastra')
18
+ const agent = await mastra.getAgent('my-agent')
19
+
20
+ return c.json({ message: 'Custom route' })
21
+ },
22
+ }),
23
+ ],
24
+ },
25
+ })
26
+ ```
27
+
28
+ Once registered, a custom route will be accessible from the root of the server. For example:
29
+
30
+ ```bash
31
+ curl http://localhost:4111/my-custom-route
32
+ ```
33
+
34
+ Each route's handler receives the Hono `Context`. Within the handler you can access the `Mastra` instance to fetch or call agents and workflows.
35
+
36
+ ## Middleware
37
+
38
+ To add route-specific middleware pass a `middleware` array when calling `registerApiRoute()`.
39
+
40
+ ```typescript
41
+ import { Mastra } from '@mastra/core'
42
+ import { registerApiRoute } from '@mastra/core/server'
43
+
44
+ export const mastra = new Mastra({
45
+ server: {
46
+ apiRoutes: [
47
+ registerApiRoute('/my-custom-route', {
48
+ method: 'GET',
49
+ middleware: [
50
+ async (c, next) => {
51
+ console.log(`${c.req.method} ${c.req.url}`)
52
+ await next()
53
+ },
54
+ ],
55
+ handler: async c => {
56
+ return c.json({ message: 'Custom route with middleware' })
57
+ },
58
+ }),
59
+ ],
60
+ },
61
+ })
62
+ ```
63
+
64
+ ## OpenAPI Documentation
65
+
66
+ Custom routes can include OpenAPI metadata to appear in the Swagger UI alongside Mastra server routes. Pass an `openapi` option with standard OpenAPI operation fields.
67
+
68
+ ```typescript
69
+ import { Mastra } from '@mastra/core'
70
+ import { registerApiRoute } from '@mastra/core/server'
71
+ import { z } from 'zod'
72
+
73
+ export const mastra = new Mastra({
74
+ server: {
75
+ apiRoutes: [
76
+ registerApiRoute('/items/:itemId', {
77
+ method: 'GET',
78
+ openapi: {
79
+ summary: 'Get item by ID',
80
+ description: 'Retrieves a single item by its unique identifier',
81
+ tags: ['Items'],
82
+ parameters: [
83
+ {
84
+ name: 'itemId',
85
+ in: 'path',
86
+ required: true,
87
+ description: 'The item ID',
88
+ schema: { type: 'string' },
89
+ },
90
+ ],
91
+ responses: {
92
+ 200: {
93
+ description: 'Item found',
94
+ content: {
95
+ 'application/json': {
96
+ schema: {
97
+ type: 'object',
98
+ properties: {
99
+ id: { type: 'string' },
100
+ name: { type: 'string' },
101
+ },
102
+ },
103
+ },
104
+ },
105
+ },
106
+ 404: {
107
+ description: 'Item not found',
108
+ },
109
+ },
110
+ },
111
+ handler: async c => {
112
+ const itemId = c.req.param('itemId')
113
+ return c.json({ id: itemId, name: 'Example Item' })
114
+ },
115
+ }),
116
+ ],
117
+ },
118
+ })
119
+ ```
120
+
121
+ ### Using Zod Schemas
122
+
123
+ Zod schemas in the `openapi` configuration are converted to JSON Schema when the OpenAPI document is generated:
124
+
125
+ ```typescript
126
+ import { Mastra } from '@mastra/core'
127
+ import { registerApiRoute } from '@mastra/core/server'
128
+ import { z } from 'zod'
129
+
130
+ const ItemSchema = z.object({
131
+ id: z.string(),
132
+ name: z.string(),
133
+ price: z.number(),
134
+ })
135
+
136
+ const CreateItemSchema = z.object({
137
+ name: z.string().min(1),
138
+ price: z.number().positive(),
139
+ })
140
+
141
+ export const mastra = new Mastra({
142
+ server: {
143
+ apiRoutes: [
144
+ registerApiRoute('/items', {
145
+ method: 'POST',
146
+ openapi: {
147
+ summary: 'Create a new item',
148
+ tags: ['Items'],
149
+ requestBody: {
150
+ required: true,
151
+ content: {
152
+ 'application/json': {
153
+ schema: CreateItemSchema,
154
+ },
155
+ },
156
+ },
157
+ responses: {
158
+ 201: {
159
+ description: 'Item created',
160
+ content: {
161
+ 'application/json': {
162
+ schema: ItemSchema,
163
+ },
164
+ },
165
+ },
166
+ },
167
+ },
168
+ handler: async c => {
169
+ const body = await c.req.json()
170
+ return c.json({ id: 'new-id', ...body }, 201)
171
+ },
172
+ }),
173
+ ],
174
+ },
175
+ })
176
+ ```
177
+
178
+ ### Viewing in Swagger UI
179
+
180
+ When running in development mode (`mastra dev`) or with `swaggerUI: true` in build options, your custom routes appear in the Swagger UI at `/swagger-ui`.
181
+
182
+ ```typescript
183
+ export const mastra = new Mastra({
184
+ server: {
185
+ build: {
186
+ swaggerUI: true, // Enable in production builds
187
+ },
188
+ apiRoutes: [
189
+ // Your routes...
190
+ ],
191
+ },
192
+ })
193
+ ```
194
+
195
+ ## Authentication
196
+
197
+ When authentication is configured on your Mastra server, custom API routes require authentication by default. To make a route publicly accessible, set `requiresAuth: false`:
198
+
199
+ ```typescript
200
+ import { Mastra } from '@mastra/core'
201
+ import { registerApiRoute } from '@mastra/core/server'
202
+ import { MastraJwtAuth } from '@mastra/auth'
203
+
204
+ export const mastra = new Mastra({
205
+ server: {
206
+ auth: new MastraJwtAuth({
207
+ secret: process.env.MASTRA_JWT_SECRET,
208
+ }),
209
+ apiRoutes: [
210
+ // Protected route (default behavior)
211
+ registerApiRoute('/protected-data', {
212
+ method: 'GET',
213
+ handler: async c => {
214
+ // Access authenticated user from request context
215
+ const user = c.get('requestContext').get('user')
216
+ return c.json({ message: 'Authenticated user', user })
217
+ },
218
+ }),
219
+
220
+ // Public route (no authentication required)
221
+ registerApiRoute('/webhooks/github', {
222
+ method: 'POST',
223
+ requiresAuth: false, // Explicitly opt out of authentication
224
+ handler: async c => {
225
+ const payload = await c.req.json()
226
+ // Process webhook without authentication
227
+ return c.json({ received: true })
228
+ },
229
+ }),
230
+ ],
231
+ },
232
+ })
233
+ ```
234
+
235
+ ### Authentication behavior
236
+
237
+ - **No auth configured**: All routes (built-in and custom) are public
238
+
239
+ - **Auth configured**:
240
+
241
+ - Mastra-provided routes (`/api/agents/*`, `/api/workflows/*`, etc.) require authentication
242
+ - Custom routes require authentication by default
243
+ - Custom routes can opt out with `requiresAuth: false`
244
+
245
+ ### Accessing user information
246
+
247
+ When a request is authenticated, the user object is available in the request context:
248
+
249
+ ```typescript
250
+ registerApiRoute('/user-profile', {
251
+ method: 'GET',
252
+ handler: async c => {
253
+ const requestContext = c.get('requestContext')
254
+ const user = requestContext.get('user')
255
+
256
+ return c.json({ user })
257
+ },
258
+ })
259
+ ```
260
+
261
+ For more information about authentication providers, see the [Auth documentation](https://mastra.ai/docs/server/auth).
262
+
263
+ ## Related
264
+
265
+ - [registerApiRoute() Reference](https://mastra.ai/reference/server/register-api-route) - Full API reference
266
+ - [Server Middleware](https://mastra.ai/docs/server/middleware) - Global middleware configuration
267
+ - [Mastra Server](https://mastra.ai/docs/server/mastra-server) - Server configuration options
@@ -0,0 +1,243 @@
1
+ # Mastra Client SDK
2
+
3
+ The Mastra Client SDK provides a simple and type-safe interface for interacting with your [Mastra Server](https://mastra.ai/docs/server/mastra-server) from your client environment.
4
+
5
+ ## Prerequisites
6
+
7
+ To ensure smooth local development, make sure you have:
8
+
9
+ - Node.js `v22.13.0` or later
10
+ - TypeScript `v4.7` or higher (if using TypeScript)
11
+ - Your local Mastra server running (typically on port `4111`)
12
+
13
+ ## Usage
14
+
15
+ The Mastra Client SDK is designed for browser environments and uses the native `fetch` API for making HTTP requests to your Mastra server.
16
+
17
+ ## Installation
18
+
19
+ To use the Mastra Client SDK, install the required dependencies:
20
+
21
+ **npm**:
22
+
23
+ ```bash
24
+ npm install @mastra/client-js@latest
25
+ ```
26
+
27
+ **pnpm**:
28
+
29
+ ```bash
30
+ pnpm add @mastra/client-js@latest
31
+ ```
32
+
33
+ **Yarn**:
34
+
35
+ ```bash
36
+ yarn add @mastra/client-js@latest
37
+ ```
38
+
39
+ **Bun**:
40
+
41
+ ```bash
42
+ bun add @mastra/client-js@latest
43
+ ```
44
+
45
+ ### Initialize the `MastraClient`
46
+
47
+ Once initialized with a `baseUrl`, `MastraClient` exposes a type-safe interface for calling agents, tools, and workflows.
48
+
49
+ ```typescript
50
+ import { MastraClient } from '@mastra/client-js'
51
+
52
+ export const mastraClient = new MastraClient({
53
+ baseUrl: process.env.MASTRA_API_URL || 'http://localhost:4111',
54
+ })
55
+ ```
56
+
57
+ ## Core APIs
58
+
59
+ The Mastra Client SDK exposes all resources served by the Mastra Server
60
+
61
+ - **[Agents](https://mastra.ai/reference/client-js/agents)**: Generate responses and stream conversations.
62
+ - **[Memory](https://mastra.ai/reference/client-js/memory)**: Manage conversation threads and message history.
63
+ - **[Tools](https://mastra.ai/reference/client-js/tools)**: Executed and managed tools.
64
+ - **[Workflows](https://mastra.ai/reference/client-js/workflows)**: Trigger workflows and track their execution.
65
+ - **[Vectors](https://mastra.ai/reference/client-js/vectors)**: Use vector embeddings for semantic search.
66
+ - **[Logs](https://mastra.ai/reference/client-js/logs)**: View logs and debug system behavior.
67
+ - **[Telemetry](https://mastra.ai/reference/client-js/telemetry)**: Monitor app performance and trace activity.
68
+
69
+ ## Generating responses
70
+
71
+ Call `.generate()` with a string prompt:
72
+
73
+ ```typescript
74
+ import { mastraClient } from 'lib/mastra-client'
75
+
76
+ const testAgent = async () => {
77
+ try {
78
+ const agent = mastraClient.getAgent('testAgent')
79
+
80
+ const response = await agent.generate('Hello')
81
+
82
+ console.log(response.text)
83
+ } catch (error) {
84
+ return 'Error occurred while generating response'
85
+ }
86
+ }
87
+ ```
88
+
89
+ > **Info:** You can also call `.generate()` with an array of message objects that include `role` and `content`. Visit the [.generate() reference](https://mastra.ai/reference/client-js/agents) for more information.
90
+
91
+ ## Streaming responses
92
+
93
+ Use `.stream()` for real-time responses with a string prompt:
94
+
95
+ ```typescript
96
+ import { mastraClient } from 'lib/mastra-client'
97
+
98
+ const testAgent = async () => {
99
+ try {
100
+ const agent = mastraClient.getAgent('testAgent')
101
+
102
+ const stream = await agent.stream('Hello')
103
+
104
+ stream.processDataStream({
105
+ onTextPart: text => {
106
+ console.log(text)
107
+ },
108
+ })
109
+ } catch (error) {
110
+ return 'Error occurred while generating response'
111
+ }
112
+ }
113
+ ```
114
+
115
+ > **Info:** You can also call `.stream()` with an array of message objects that include `role` and `content`. Visit the [.stream() reference](https://mastra.ai/reference/client-js/agents) for more information.
116
+
117
+ ## Configuration options
118
+
119
+ `MastraClient` accepts optional parameters like `retries`, `backoffMs`, and `headers` to control request behavior. These parameters are useful for controlling retry behavior and including diagnostic metadata.
120
+
121
+ ```typescript
122
+ import { MastraClient } from '@mastra/client-js'
123
+
124
+ export const mastraClient = new MastraClient({
125
+ retries: 3,
126
+ backoffMs: 300,
127
+ maxBackoffMs: 5000,
128
+ headers: {
129
+ 'X-Development': 'true',
130
+ },
131
+ })
132
+ ```
133
+
134
+ > **Info:** Visit [MastraClient](https://mastra.ai/reference/client-js/mastra-client) for more configuration options.
135
+
136
+ ## Adding request cancelling
137
+
138
+ `MastraClient` supports request cancellation using the standard Node.js `AbortSignal` API. Useful for canceling in-flight requests, such as when users abort an operation or to clean up stale network calls.
139
+
140
+ Pass an `AbortSignal` to the client constructor to enable cancellation across all requests.
141
+
142
+ ```typescript
143
+ import { MastraClient } from '@mastra/client-js'
144
+
145
+ export const controller = new AbortController()
146
+
147
+ export const mastraClient = new MastraClient({
148
+ baseUrl: process.env.MASTRA_API_URL || 'http://localhost:4111',
149
+ abortSignal: controller.signal,
150
+ })
151
+ ```
152
+
153
+ ### Using the `AbortController`
154
+
155
+ Calling `.abort()` will cancel any ongoing requests tied to that signal.
156
+
157
+ ```typescript
158
+ import { mastraClient, controller } from 'lib/mastra-client'
159
+
160
+ const handleAbort = () => {
161
+ controller.abort()
162
+ }
163
+ ```
164
+
165
+ ## Client tools
166
+
167
+ Define tools directly in client-side applications using the `createTool()` function. Pass them to agents via the `clientTools` parameter in `.generate()` or `.stream()` calls.
168
+
169
+ This lets agents trigger browser-side functionality such as DOM manipulation, local storage access, or other Web APIs, enabling tool execution in the user's environment rather than on the server.
170
+
171
+ ```typescript
172
+ import { createTool } from '@mastra/client-js'
173
+ import { z } from 'zod'
174
+
175
+ const handleClientTool = async () => {
176
+ try {
177
+ const agent = mastraClient.getAgent('colorAgent')
178
+
179
+ const colorChangeTool = createTool({
180
+ id: 'color-change-tool',
181
+ description: 'Changes the HTML background color',
182
+ inputSchema: z.object({
183
+ color: z.string(),
184
+ }),
185
+ outputSchema: z.object({
186
+ success: z.boolean(),
187
+ }),
188
+ execute: async inputData => {
189
+ const { color } = inputData
190
+
191
+ document.body.style.backgroundColor = color
192
+ return { success: true }
193
+ },
194
+ })
195
+
196
+ const response = await agent.generate('Change the background to blue', {
197
+ clientTools: { colorChangeTool },
198
+ })
199
+
200
+ console.log(response)
201
+ } catch (error) {
202
+ console.error(error)
203
+ }
204
+ }
205
+ ```
206
+
207
+ ### Client tool's agent
208
+
209
+ This is a standard Mastra [agent](https://mastra.ai/docs/agents/overview) configured to return hex color codes, intended to work with the browser-based client tool defined above.
210
+
211
+ ```typescript
212
+ import { Agent } from '@mastra/core/agent'
213
+
214
+ export const colorAgent = new Agent({
215
+ id: 'color-agent',
216
+ name: 'Color Agent',
217
+ instructions: `You are a helpful CSS assistant.
218
+ You can change the background color of web pages.
219
+ Respond with a hex reference for the color requested by the user`,
220
+ model: 'openai/gpt-5.1',
221
+ })
222
+ ```
223
+
224
+ ## Server-side environments
225
+
226
+ You can also use `MastraClient` in server-side environments such as API routes, serverless functions or actions. The usage will broadly remain the same but you may need to recreate the response to your client:
227
+
228
+ ```typescript
229
+ export async function action() {
230
+ const agent = mastraClient.getAgent('testAgent')
231
+
232
+ const stream = await agent.stream('Hello')
233
+
234
+ return new Response(stream.body)
235
+ }
236
+ ```
237
+
238
+ ## Best practices
239
+
240
+ 1. **Error Handling**: Implement proper [error handling](https://mastra.ai/reference/client-js/error-handling) for development scenarios.
241
+ 2. **Environment Variables**: Use environment variables for configuration.
242
+ 3. **Debugging**: Enable detailed [logging](https://mastra.ai/reference/client-js/logs) when needed.
243
+ 4. **Performance**: Monitor application performance, [telemetry](https://mastra.ai/reference/client-js/telemetry) and traces.
@@ -0,0 +1,71 @@
1
+ # Server Overview
2
+
3
+ Mastra runs as an HTTP server that exposes your agents, workflows, and other functionality as API endpoints. The server handles request routing, middleware execution, authentication, and streaming responses.
4
+
5
+ > **Info:** This page covers the [`server`](https://mastra.ai/reference/configuration) configuration options passed to the `Mastra` constructor. For running Mastra with your own HTTP server (Hono, Express, etc.), visit [Server Adapters](https://mastra.ai/docs/server/server-adapters).
6
+
7
+ ## Server architecture
8
+
9
+ Mastra uses [Hono](https://hono.dev) as its underlying HTTP server framework. When you build a Mastra application using `mastra build`, it generates a Hono-based HTTP server in the `.mastra` directory.
10
+
11
+ The server provides:
12
+
13
+ - API endpoints for all registered agents and workflows
14
+ - Custom API routes and middleware
15
+ - Authentication with multiple providers
16
+ - Request context for dynamic configuration
17
+ - Stream data redaction for secure responses
18
+
19
+ ## Configuration
20
+
21
+ Configure the server by passing a `server` object to the `Mastra` constructor:
22
+
23
+ ```typescript
24
+ import { Mastra } from '@mastra/core'
25
+
26
+ export const mastra = new Mastra({
27
+ server: {
28
+ port: 3000, // Defaults to 4111
29
+ host: '0.0.0.0', // Defaults to 'localhost'
30
+ },
31
+ })
32
+ ```
33
+
34
+ > **Info:** Visit the [configuration reference](https://mastra.ai/reference/configuration) for a full list of available server options.
35
+
36
+ ## Server features
37
+
38
+ - **[Middleware](https://mastra.ai/docs/server/middleware)**: Intercept requests for authentication, logging, CORS, or injecting request-specific context.
39
+ - **[Custom API Routes](https://mastra.ai/docs/server/custom-api-routes)**: Extend the server with your own HTTP endpoints that have access to the Mastra instance.
40
+ - **[Request Context](https://mastra.ai/docs/server/request-context)**: Pass request-specific values to agents, tools, and workflows based on runtime conditions.
41
+ - **[Server Adapters](https://mastra.ai/docs/server/server-adapters)**: Run Mastra with Express, Hono, or your own HTTP server instead of the generated server.
42
+ - **[Custom Adapters](https://mastra.ai/docs/server/custom-adapters)**: Build adapters for frameworks not officially supported.
43
+ - **[Mastra Client SDK](https://mastra.ai/docs/server/mastra-client)**: Type-safe client for calling agents, workflows, and tools from browser or server environments.
44
+ - **[Authentication](https://mastra.ai/docs/server/auth)**: Secure endpoints with JWT, Clerk, Supabase, Firebase, Auth0, or WorkOS.
45
+
46
+ ## Stream data redaction
47
+
48
+ When streaming agent responses, the HTTP layer redacts system prompts, tool definitions, API keys, and similar data from each chunk before sending it to clients. This is enabled by default.
49
+
50
+ This behavior is only configurable by using [server adapters](https://mastra.ai/docs/server/server-adapters). For server adapters, stream data redaction is enabled by default, too.
51
+
52
+ ## TypeScript configuration
53
+
54
+ Mastra requires `module` and `moduleResolution` settings compatible with modern Node.js. Legacy options like `CommonJS` or `node` are not supported.
55
+
56
+ ```json
57
+ {
58
+ "compilerOptions": {
59
+ "target": "ES2022",
60
+ "module": "ES2022",
61
+ "moduleResolution": "bundler",
62
+ "esModuleInterop": true,
63
+ "forceConsistentCasingInFileNames": true,
64
+ "strict": true,
65
+ "skipLibCheck": true,
66
+ "noEmit": true,
67
+ "outDir": "dist"
68
+ },
69
+ "include": ["src/**/*"]
70
+ }
71
+ ```