@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,135 @@
1
+ # libSQL Storage
2
+
3
+ [libSQL](https://docs.turso.tech/libsql) is an open-source, SQLite-compatible database that supports both local and remote deployments. It can be used to store message history, workflow snapshots, traces, and eval scores.
4
+
5
+ For vectors like semantic recall or traditional RAG, use [libSQL Vector](https://mastra.ai/reference/vectors/libsql) which covers embeddings and vector search.
6
+
7
+ ## Installation
8
+
9
+ Storage providers must be installed as separate packages:
10
+
11
+ **npm**:
12
+
13
+ ```bash
14
+ npm install @mastra/libsql@latest
15
+ ```
16
+
17
+ **pnpm**:
18
+
19
+ ```bash
20
+ pnpm add @mastra/libsql@latest
21
+ ```
22
+
23
+ **Yarn**:
24
+
25
+ ```bash
26
+ yarn add @mastra/libsql@latest
27
+ ```
28
+
29
+ **Bun**:
30
+
31
+ ```bash
32
+ bun add @mastra/libsql@latest
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ ```typescript
38
+ import { LibSQLStore } from '@mastra/libsql'
39
+ import { Mastra } from '@mastra/core'
40
+
41
+ const mastra = new Mastra({
42
+ storage: new LibSQLStore({
43
+ id: 'libsql-storage',
44
+ url: 'file:./storage.db',
45
+ }),
46
+ })
47
+ ```
48
+
49
+ Agent-level file storage:
50
+
51
+ ```typescript
52
+ import { Memory } from '@mastra/memory'
53
+ import { Agent } from '@mastra/core/agent'
54
+ import { LibSQLStore } from '@mastra/libsql'
55
+
56
+ export const agent = new Agent({
57
+ id: 'example-agent',
58
+ memory: new Memory({
59
+ storage: new LibSQLStore({
60
+ id: 'libsql-storage',
61
+ url: 'file:./agent.db',
62
+ }),
63
+ }),
64
+ })
65
+ ```
66
+
67
+ > **Warning:** File storage doesn't work with serverless platforms that have ephemeral file systems. For serverless deployments, use [Turso](https://turso.tech) or a different database engine.
68
+
69
+ Production with remote database:
70
+
71
+ ```typescript
72
+ storage: new LibSQLStore({
73
+ id: 'libsql-storage',
74
+ url: 'libsql://your-db-name.aws-ap-northeast-1.turso.io',
75
+ authToken: process.env.TURSO_AUTH_TOKEN,
76
+ })
77
+ ```
78
+
79
+ For local development and testing, you can store data in memory:
80
+
81
+ ```typescript
82
+ storage: new LibSQLStore({
83
+ id: 'libsql-storage',
84
+ url: ':memory:',
85
+ })
86
+ ```
87
+
88
+ > **Warning:** In-memory storage resets when the process changes. Only suitable for development.
89
+
90
+ ## Options
91
+
92
+ **url:** (`string`): Database URL. Use \`:memory:\` for in-memory database, \`file:filename.db\` for a file database, or a libSQL connection string (e.g., \`libsql://your-database.turso.io\`) for remote storage.
93
+
94
+ **authToken?:** (`string`): Authentication token for remote libSQL databases.
95
+
96
+ ## Initialization
97
+
98
+ When you pass storage to the Mastra class, `init()` is called automatically to create the [core schema](https://mastra.ai/reference/storage/overview):
99
+
100
+ ```typescript
101
+ import { Mastra } from '@mastra/core'
102
+ import { LibSQLStore } from '@mastra/libsql'
103
+
104
+ const storage = new LibSQLStore({
105
+ id: 'libsql-storage',
106
+ url: 'file:./storage.db',
107
+ })
108
+
109
+ const mastra = new Mastra({
110
+ storage, // init() called automatically
111
+ })
112
+ ```
113
+
114
+ If using storage directly without Mastra, call `init()` explicitly:
115
+
116
+ ```typescript
117
+ import { LibSQLStore } from '@mastra/libsql'
118
+
119
+ const storage = new LibSQLStore({
120
+ id: 'libsql-storage',
121
+ url: 'file:./storage.db',
122
+ })
123
+
124
+ await storage.init()
125
+
126
+ // Access domain-specific stores via getStore()
127
+ const memoryStore = await storage.getStore('memory')
128
+ const thread = await memoryStore?.getThreadById({ threadId: '...' })
129
+ ```
130
+
131
+ ## Observability
132
+
133
+ libSQL supports observability and is ideal for local development. Use the `realtime` [tracing strategy](https://mastra.ai/docs/observability/tracing/exporters/default) for immediate visibility while debugging.
134
+
135
+ For production environments with higher trace volumes, consider using [PostgreSQL](https://mastra.ai/reference/storage/postgresql) or [ClickHouse via composite storage](https://mastra.ai/reference/storage/composite).
@@ -0,0 +1,262 @@
1
+ # MongoDB Storage
2
+
3
+ The MongoDB storage implementation provides a scalable storage solution using MongoDB databases with support for both document storage and vector operations.
4
+
5
+ ## Installation
6
+
7
+ **npm**:
8
+
9
+ ```bash
10
+ npm install @mastra/mongodb@latest
11
+ ```
12
+
13
+ **pnpm**:
14
+
15
+ ```bash
16
+ pnpm add @mastra/mongodb@latest
17
+ ```
18
+
19
+ **Yarn**:
20
+
21
+ ```bash
22
+ yarn add @mastra/mongodb@latest
23
+ ```
24
+
25
+ **Bun**:
26
+
27
+ ```bash
28
+ bun add @mastra/mongodb@latest
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ Ensure you have a MongoDB Atlas Local (via Docker) or MongoDB Atlas Cloud instance with Atlas Search enabled. MongoDB 7.0+ is recommended.
34
+
35
+ ```typescript
36
+ import { MongoDBStore } from '@mastra/mongodb'
37
+
38
+ const storage = new MongoDBStore({
39
+ id: 'mongodb-storage',
40
+ uri: process.env.MONGODB_URI,
41
+ dbName: process.env.MONGODB_DATABASE,
42
+ })
43
+ ```
44
+
45
+ ## Parameters
46
+
47
+ **id:** (`string`): Unique identifier for this storage instance.
48
+
49
+ **uri:** (`string`): MongoDB connection string (e.g., mongodb+srv://user:password\@cluster.mongodb.net)
50
+
51
+ **url?:** (`string`): Deprecated. Use uri instead. MongoDB connection string (supported for backward compatibility).
52
+
53
+ **dbName:** (`string`): The name of the database you want the storage to use.
54
+
55
+ **options?:** (`MongoClientOptions`): MongoDB client options for advanced configuration (SSL, connection pooling, etc.).
56
+
57
+ > **Deprecation Notice:** The `url` parameter is deprecated but still supported for backward compatibility. Please use `uri` instead in all new code.
58
+
59
+ ## Constructor Examples
60
+
61
+ You can instantiate `MongoDBStore` in the following ways:
62
+
63
+ ```ts
64
+ import { MongoDBStore } from '@mastra/mongodb'
65
+
66
+ // Basic connection without custom options
67
+ const store1 = new MongoDBStore({
68
+ id: 'mongodb-storage-01',
69
+ uri: 'mongodb+srv://user:password@cluster.mongodb.net',
70
+ dbName: 'mastra_storage',
71
+ })
72
+
73
+ // Using connection string with options
74
+ const store2 = new MongoDBStore({
75
+ id: 'mongodb-storage-02',
76
+ uri: 'mongodb+srv://user:password@cluster.mongodb.net',
77
+ dbName: 'mastra_storage',
78
+ options: {
79
+ retryWrites: true,
80
+ maxPoolSize: 10,
81
+ serverSelectionTimeoutMS: 5000,
82
+ socketTimeoutMS: 45000,
83
+ },
84
+ })
85
+ ```
86
+
87
+ ## Additional Notes
88
+
89
+ ### Collection Management
90
+
91
+ The storage implementation handles collection creation and management automatically. It creates the following collections:
92
+
93
+ - `mastra_workflow_snapshot`: Stores workflow state and execution data
94
+ - `mastra_evals`: Stores evaluation results and metadata
95
+ - `mastra_threads`: Stores conversation threads
96
+ - `mastra_messages`: Stores individual messages
97
+ - `mastra_traces`: Stores telemetry and tracing data
98
+ - `mastra_scorers`: Stores scoring and evaluation data
99
+ - `mastra_resources`: Stores resource working memory data
100
+
101
+ ### Initialization
102
+
103
+ When you pass storage to the Mastra class, `init()` is called automatically before any storage operation:
104
+
105
+ ```typescript
106
+ import { Mastra } from '@mastra/core'
107
+ import { MongoDBStore } from '@mastra/mongodb'
108
+
109
+ const storage = new MongoDBStore({
110
+ id: 'mongodb-storage',
111
+ uri: process.env.MONGODB_URI,
112
+ dbName: process.env.MONGODB_DATABASE,
113
+ })
114
+
115
+ const mastra = new Mastra({
116
+ storage, // init() is called automatically
117
+ })
118
+ ```
119
+
120
+ If you're using storage directly without Mastra, you must call `init()` explicitly to create the collections:
121
+
122
+ ```typescript
123
+ import { MongoDBStore } from '@mastra/mongodb'
124
+
125
+ const storage = new MongoDBStore({
126
+ id: 'mongodb-storage',
127
+ uri: process.env.MONGODB_URI,
128
+ dbName: process.env.MONGODB_DATABASE,
129
+ })
130
+
131
+ // Required when using storage directly
132
+ await storage.init()
133
+
134
+ // Access domain-specific stores via getStore()
135
+ const memoryStore = await storage.getStore('memory')
136
+ const thread = await memoryStore?.getThreadById({ threadId: '...' })
137
+ ```
138
+
139
+ > **Warning:** If `init()` is not called, collections won't be created and storage operations will fail silently or throw errors.
140
+
141
+ ## Vector Search Capabilities
142
+
143
+ MongoDB storage includes built-in vector search capabilities for AI applications:
144
+
145
+ ### Vector Index Creation
146
+
147
+ ```typescript
148
+ import { MongoDBVector } from '@mastra/mongodb'
149
+
150
+ const vectorStore = new MongoDBVector({
151
+ id: 'mongodb-vector',
152
+ uri: process.env.MONGODB_URI,
153
+ dbName: process.env.MONGODB_DATABASE,
154
+ })
155
+
156
+ // Create a vector index for embeddings
157
+ await vectorStore.createIndex({
158
+ indexName: 'document_embeddings',
159
+ dimension: 1536,
160
+ })
161
+ ```
162
+
163
+ ### Vector Operations
164
+
165
+ ```typescript
166
+ // Store vectors with metadata
167
+ await vectorStore.upsert({
168
+ indexName: "document_embeddings",
169
+ vectors: [
170
+ {
171
+ id: "doc-1",
172
+ values: [0.1, 0.2, 0.3, ...], // 1536-dimensional vector
173
+ metadata: {
174
+ title: "Document Title",
175
+ category: "technical",
176
+ source: "api-docs",
177
+ },
178
+ },
179
+ ],
180
+ });
181
+
182
+ // Similarity search
183
+ const results = await vectorStore.query({
184
+ indexName: "document_embeddings",
185
+ vector: queryEmbedding,
186
+ topK: 5,
187
+ filter: {
188
+ category: "technical",
189
+ },
190
+ });
191
+ ```
192
+
193
+ ## Usage Example
194
+
195
+ ### Adding memory to an agent
196
+
197
+ To add MongoDB memory to an agent use the `Memory` class and create a new `storage` key using `MongoDBStore`. The configuration supports both local and remote MongoDB instances.
198
+
199
+ ```typescript
200
+ import { Memory } from '@mastra/memory'
201
+ import { Agent } from '@mastra/core/agent'
202
+ import { MongoDBStore } from '@mastra/mongodb'
203
+
204
+ export const mongodbAgent = new Agent({
205
+ id: 'mongodb-agent',
206
+ name: 'mongodb-agent',
207
+ instructions:
208
+ 'You are an AI agent with the ability to automatically recall memories from previous interactions.',
209
+ model: 'openai/gpt-5.1',
210
+ memory: new Memory({
211
+ storage: new MongoDBStore({
212
+ uri: process.env.MONGODB_URI!,
213
+ dbName: process.env.MONGODB_DB_NAME!,
214
+ }),
215
+ options: {
216
+ generateTitle: true,
217
+ },
218
+ }),
219
+ })
220
+ ```
221
+
222
+ ### Using the agent
223
+
224
+ Use `memoryOptions` to scope recall for this request. Set `lastMessages: 5` to limit recency-based recall, and use `semanticRecall` to fetch the `topK: 3` most relevant messages, including `messageRange: 2` neighboring messages for context around each match.
225
+
226
+ ```typescript
227
+ import 'dotenv/config'
228
+
229
+ import { mastra } from './mastra'
230
+
231
+ const threadId = '123'
232
+ const resourceId = 'user-456'
233
+
234
+ const agent = mastra.getAgent('mongodbAgent')
235
+
236
+ const message = await agent.stream('My name is Mastra', {
237
+ memory: {
238
+ thread: threadId,
239
+ resource: resourceId,
240
+ },
241
+ })
242
+
243
+ await message.textStream.pipeTo(new WritableStream())
244
+
245
+ const stream = await agent.stream("What's my name?", {
246
+ memory: {
247
+ thread: threadId,
248
+ resource: resourceId,
249
+ },
250
+ memoryOptions: {
251
+ lastMessages: 5,
252
+ semanticRecall: {
253
+ topK: 3,
254
+ messageRange: 2,
255
+ },
256
+ },
257
+ })
258
+
259
+ for await (const chunk of stream.textStream) {
260
+ process.stdout.write(chunk)
261
+ }
262
+ ```
@@ -0,0 +1,157 @@
1
+ # MSSQL Storage
2
+
3
+ The MSSQL storage implementation provides a production-ready storage solution using Microsoft SQL Server databases.
4
+
5
+ ## Installation
6
+
7
+ **npm**:
8
+
9
+ ```bash
10
+ npm install @mastra/mssql@latest
11
+ ```
12
+
13
+ **pnpm**:
14
+
15
+ ```bash
16
+ pnpm add @mastra/mssql@latest
17
+ ```
18
+
19
+ **Yarn**:
20
+
21
+ ```bash
22
+ yarn add @mastra/mssql@latest
23
+ ```
24
+
25
+ **Bun**:
26
+
27
+ ```bash
28
+ bun add @mastra/mssql@latest
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ```typescript
34
+ import { MSSQLStore } from '@mastra/mssql'
35
+
36
+ const storage = new MSSQLStore({
37
+ id: 'mssql-storage',
38
+ connectionString: process.env.DATABASE_URL,
39
+ })
40
+ ```
41
+
42
+ ## Parameters
43
+
44
+ **connectionString:** (`string`): MSSQL connection string (e.g., Server=localhost,1433;Database=mydb;User Id=sa;Password=password;Encrypt=true;TrustServerCertificate=true)
45
+
46
+ **schemaName?:** (`string`): The name of the schema you want the storage to use. Will use the default schema if not provided.
47
+
48
+ ## Constructor Examples
49
+
50
+ You can instantiate `MSSQLStore` in the following ways:
51
+
52
+ ```ts
53
+ import { MSSQLStore } from '@mastra/mssql'
54
+
55
+ // Using a connection string only
56
+ const store1 = new MSSQLStore({
57
+ id: 'mssql-storage-1',
58
+ connectionString:
59
+ 'Server=localhost,1433;Database=mydb;User Id=sa;Password=password;Encrypt=true;TrustServerCertificate=true',
60
+ })
61
+
62
+ // Using a connection string with a custom schema name
63
+ const store2 = new MSSQLStore({
64
+ id: 'mssql-storage-2',
65
+ connectionString:
66
+ 'Server=localhost,1433;Database=mydb;User Id=sa;Password=password;Encrypt=true;TrustServerCertificate=true',
67
+ schemaName: 'custom_schema', // optional
68
+ })
69
+
70
+ // Using individual connection parameters
71
+ const store4 = new MSSQLStore({
72
+ id: 'mssql-storage-3',
73
+ server: 'localhost',
74
+ port: 1433,
75
+ database: 'mydb',
76
+ user: 'user',
77
+ password: 'password',
78
+ })
79
+
80
+ // Individual parameters with schemaName
81
+ const store5 = new MSSQLStore({
82
+ id: 'mssql-storage-4',
83
+ server: 'localhost',
84
+ port: 1433,
85
+ database: 'mydb',
86
+ user: 'user',
87
+ password: 'password',
88
+ schemaName: 'custom_schema', // optional
89
+ })
90
+ ```
91
+
92
+ ## Additional Notes
93
+
94
+ ### Schema Management
95
+
96
+ The storage implementation handles schema creation and updates automatically. It creates the following tables:
97
+
98
+ - `mastra_workflow_snapshot`: Stores workflow state and execution data
99
+ - `mastra_evals`: Stores evaluation results and metadata
100
+ - `mastra_threads`: Stores conversation threads
101
+ - `mastra_messages`: Stores individual messages
102
+ - `mastra_traces`: Stores telemetry and tracing data
103
+ - `mastra_scorers`: Stores scoring and evaluation data
104
+ - `mastra_resources`: Stores resource working memory data
105
+
106
+ ### Initialization
107
+
108
+ When you pass storage to the Mastra class, `init()` is called automatically before any storage operation:
109
+
110
+ ```typescript
111
+ import { Mastra } from '@mastra/core'
112
+ import { MSSQLStore } from '@mastra/mssql'
113
+
114
+ const storage = new MSSQLStore({
115
+ connectionString: process.env.DATABASE_URL,
116
+ })
117
+
118
+ const mastra = new Mastra({
119
+ storage, // init() is called automatically
120
+ })
121
+ ```
122
+
123
+ If you're using storage directly without Mastra, you must call `init()` explicitly to create the tables:
124
+
125
+ ```typescript
126
+ import { MSSQLStore } from '@mastra/mssql'
127
+
128
+ const storage = new MSSQLStore({
129
+ id: 'mssql-storage',
130
+ connectionString: process.env.DATABASE_URL,
131
+ })
132
+
133
+ // Required when using storage directly
134
+ await storage.init()
135
+
136
+ // Access domain-specific stores via getStore()
137
+ const memoryStore = await storage.getStore('memory')
138
+ const thread = await memoryStore?.getThreadById({ threadId: '...' })
139
+ ```
140
+
141
+ > **Warning:** If `init()` is not called, tables won't be created and storage operations will fail silently or throw errors.
142
+
143
+ ### Direct Database and Pool Access
144
+
145
+ `MSSQLStore` exposes the mssql connection pool as public fields:
146
+
147
+ ```typescript
148
+ store.pool // mssql connection pool instance
149
+ ```
150
+
151
+ This enables direct queries and custom transaction management. When using these fields:
152
+
153
+ - You are responsible for proper connection and transaction handling.
154
+ - Closing the store (`store.close()`) will destroy the associated connection pool.
155
+ - Direct access bypasses any additional logic or validation provided by MSSQLStore methods.
156
+
157
+ This approach is intended for advanced scenarios where low-level access is required.
@@ -0,0 +1,121 @@
1
+ # Storage Overview
2
+
3
+ Mastra requires the following tables to be present in the database.
4
+
5
+ ## Core Schema
6
+
7
+ **Messages**:
8
+
9
+ Stores conversation messages and their metadata. Each message belongs to a thread and contains the actual content along with metadata about the sender role and message type.
10
+
11
+ iduuidv4PRIMARYKEYNOT NULLUnique identifier for the message (format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)thread\_iduuidv4FK → threads.idNOT NULLParent thread referenceresourceIduuidv4CAN BE NULLID of the resource that owns this messagecontenttextNOT NULLJSON of the message content in V2 format. Example: `{ format: 2, parts: [...] }`roletextNOT NULLEnum of `user | assistant`createdAttimestampNOT NULLUsed for thread message ordering
12
+
13
+ The message `content` column contains a JSON object conforming to the `MastraMessageContentV2` type, which is designed to align closely with the AI SDK `UIMessage` message shape.
14
+
15
+ formatintegerNOT NULLMessage format version (currently 2)partsarray (JSON)NOT NULLArray of message parts (text, tool-invocation, file, reasoning, etc.). The structure of items in this array varies by `type`.experimental\_attachmentsarray (JSON)CAN BE NULLOptional array of file attachmentscontenttextCAN BE NULLOptional main text content of the messagetoolInvocationsarray (JSON)CAN BE NULLOptional array summarizing tool calls and resultsreasoningobject (JSON)CAN BE NULLOptional information about the reasoning process behind the assistant's responseannotationsobject (JSON)CAN BE NULLOptional additional metadata or annotations
16
+
17
+ **Threads**:
18
+
19
+ Groups related messages together and associates them with a resource. Contains metadata about the conversation.
20
+
21
+ iduuidv4PRIMARYKEYNOT NULLUnique identifier for the thread (format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)resourceIdtextNOT NULLPrimary identifier of the external resource this thread is associated with. Used to group and retrieve related threads.titletextNOT NULLTitle of the conversation threadmetadatatextCustom thread metadata as stringified JSON. Example:
22
+
23
+ ```json
24
+ {
25
+ "category": "support",
26
+ "priority": 1
27
+ }
28
+ ```
29
+
30
+ createdAttimestampNOT NULLupdatedAttimestampNOT NULLUsed for thread ordering history
31
+
32
+ **Resources**:
33
+
34
+ Stores user-specific data for resource-scoped working memory. Each resource represents a user or entity, allowing working memory to persist across all conversation threads for that user.
35
+
36
+ idtextPRIMARYKEYNOT NULLResource identifier (user or entity ID) - same as resourceId used in threads and agent callsworkingMemorytextCAN BE NULLPersistent working memory data as Markdown text. Contains user profile, preferences, and contextual information that persists across conversation threads.metadatajsonbCAN BE NULLAdditional resource metadata as JSON. Example:
37
+
38
+ ```json
39
+ {
40
+ "preferences": {
41
+ "language": "en",
42
+ "timezone": "UTC"
43
+ },
44
+ "tags": [
45
+ "premium",
46
+ "beta-user"
47
+ ]
48
+ }
49
+ ```
50
+
51
+ createdAttimestampNOT NULLWhen the resource record was first createdupdatedAttimestampNOT NULLWhen the working memory was last updated
52
+
53
+ **Workflows**:
54
+
55
+ When `suspend` is called on a workflow, its state is saved in the following format. When `resume` is called, that state is rehydrated.
56
+
57
+ workflow\_nametextNOT NULLName of the workflowrun\_iduuidv4NOT NULLUnique identifier for the workflow execution. Used to track state across suspend/resume cycles (format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)snapshottextNOT NULLSerialized workflow state as JSON. Example:
58
+
59
+ ```json
60
+ {
61
+ "value": {
62
+ "currentState": "running"
63
+ },
64
+ "context": {
65
+ "stepResults": {},
66
+ "attempts": {},
67
+ "triggerData": {}
68
+ },
69
+ "activePaths": [],
70
+ "runId": "550e8400-e29b-41d4-a716-446655440000",
71
+ "timestamp": 1648176000000
72
+ }
73
+ ```
74
+
75
+ createdAttimestampNOT NULLupdatedAttimestampNOT NULLLast modification time, used to track state changes during workflow execution
76
+
77
+ **Evals**:
78
+
79
+ Stores eval results from running metrics against agent outputs.
80
+
81
+ inputtextNOT NULLInput provided to the agentoutputtextNOT NULLOutput generated by the agentresultjsonbNOT NULLEval result data that includes score and details. Example:
82
+
83
+ ```json
84
+ {
85
+ "score": 0.95,
86
+ "details": {
87
+ "reason": "Response accurately reflects source material",
88
+ "citations": [
89
+ "page 1",
90
+ "page 3"
91
+ ]
92
+ }
93
+ }
94
+ ```
95
+
96
+ agent\_nametextNOT NULLmetric\_nametextNOT NULLe.g Faithfulness, Hallucination, etc.instructionstextNOT NULLSystem prompt or instructions for the agenttest\_infojsonbNOT NULLAdditional test metadata and configurationglobal\_run\_iduuidv4NOT NULLGroups related evaluation runs (e.g. all unit tests in a CI run)run\_iduuidv4NOT NULLUnique identifier for the run being evaluated (format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)created\_attimestampNOT NULL
97
+
98
+ **Traces**:
99
+
100
+ Captures OpenTelemetry traces for monitoring and debugging.
101
+
102
+ idtextNOT NULLPRIMARYKEYUnique trace identifierparentSpanIdtextID of the parent span. Null if span is top levelnametextNOT NULLHierarchical operation name (e.g. `workflow.myWorkflow.execute`, `http.request`, `database.query`)traceIdtextNOT NULLRoot trace identifier that groups related spansscopetextNOT NULLLibrary/package/service that created the span (e.g. `@mastra/core`, `express`, `pg`)kindintegerNOT NULL`INTERNAL` (0, within process), `CLIENT` (1, outgoing calls), `SERVER` (2, incoming calls), `PRODUCER` (3, async job creation), `CONSUMER` (4, async job processing)attributesjsonbUser defined key-value pairs that contain span metadatastatusjsonbJSON object with `code` (UNSET=0, ERROR=1, OK=2) and optional `message`. Example:
103
+
104
+ ```json
105
+ {
106
+ "code": 1,
107
+ "message": "HTTP request failed with status 500"
108
+ }
109
+ ```
110
+
111
+ eventsjsonbTime-stamped events that occurred during the spanlinksjsonbLinks to other related spansothertextAdditional OpenTelemetry span fields as stringified JSON. Example:
112
+
113
+ ```json
114
+ {
115
+ "droppedAttributesCount": 2,
116
+ "droppedEventsCount": 1,
117
+ "instrumentationLibrary": "@opentelemetry/instrumentation-http"
118
+ }
119
+ ```
120
+
121
+ startTimebigintNOT NULLNanoseconds since Unix epoch when span startedendTimebigintNOT NULLNanoseconds since Unix epoch when span endedcreatedAttimestampNOT NULL