@mastra/core 1.9.0 → 1.10.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 (438) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/dist/agent/agent.d.ts +22 -3
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +13 -13
  5. package/dist/agent/index.js +2 -2
  6. package/dist/agent/message-list/index.cjs +18 -18
  7. package/dist/agent/message-list/index.js +1 -1
  8. package/dist/agent/message-list/message-list.d.ts.map +1 -1
  9. package/dist/{chunk-IOY7Y5GV.js → chunk-3VVNJPTO.js} +602 -187
  10. package/dist/chunk-3VVNJPTO.js.map +1 -0
  11. package/dist/{chunk-VDKWYUGC.cjs → chunk-5WBEMKE2.cjs} +7 -3
  12. package/dist/chunk-5WBEMKE2.cjs.map +1 -0
  13. package/dist/{chunk-H5S4PS44.cjs → chunk-76Q75VI4.cjs} +602 -187
  14. package/dist/chunk-76Q75VI4.cjs.map +1 -0
  15. package/dist/{chunk-ZBESCKPX.cjs → chunk-7AHCLTZZ.cjs} +1572 -36
  16. package/dist/chunk-7AHCLTZZ.cjs.map +1 -0
  17. package/dist/{chunk-SEKQJ447.js → chunk-ACAILOJE.js} +166 -68
  18. package/dist/chunk-ACAILOJE.js.map +1 -0
  19. package/dist/{chunk-YIJZBU54.cjs → chunk-BCSVBOAN.cjs} +240 -463
  20. package/dist/chunk-BCSVBOAN.cjs.map +1 -0
  21. package/dist/{chunk-ZVWVQ6MG.js → chunk-CY4ZWL2X.js} +8 -3
  22. package/dist/chunk-CY4ZWL2X.js.map +1 -0
  23. package/dist/{chunk-ET7GXCHS.js → chunk-DIKRJVK6.js} +5 -5
  24. package/dist/{chunk-ET7GXCHS.js.map → chunk-DIKRJVK6.js.map} +1 -1
  25. package/dist/{chunk-P6ZX7OKT.cjs → chunk-E6I5LBDM.cjs} +7 -7
  26. package/dist/{chunk-P6ZX7OKT.cjs.map → chunk-E6I5LBDM.cjs.map} +1 -1
  27. package/dist/{chunk-BFV3GSGS.js → chunk-FT5Q6XTK.js} +1546 -22
  28. package/dist/chunk-FT5Q6XTK.js.map +1 -0
  29. package/dist/{chunk-K54LFB4P.js → chunk-FXOWXS4O.js} +3 -3
  30. package/dist/{chunk-K54LFB4P.js.map → chunk-FXOWXS4O.js.map} +1 -1
  31. package/dist/{chunk-QNXY3J6B.cjs → chunk-GCRPNAAR.cjs} +22 -19
  32. package/dist/chunk-GCRPNAAR.cjs.map +1 -0
  33. package/dist/{chunk-5M3RMO7U.js → chunk-GTA5BKXZ.js} +8 -8
  34. package/dist/{chunk-5M3RMO7U.js.map → chunk-GTA5BKXZ.js.map} +1 -1
  35. package/dist/{chunk-G5R2755Q.cjs → chunk-HAIQ57YB.cjs} +53 -20
  36. package/dist/chunk-HAIQ57YB.cjs.map +1 -0
  37. package/dist/{chunk-3ZBLD2Y4.cjs → chunk-HH76UOJL.cjs} +2 -2
  38. package/dist/{chunk-3ZBLD2Y4.cjs.map → chunk-HH76UOJL.cjs.map} +1 -1
  39. package/dist/{chunk-HAGCXIBX.cjs → chunk-HNYQITSV.cjs} +9 -9
  40. package/dist/{chunk-HAGCXIBX.cjs.map → chunk-HNYQITSV.cjs.map} +1 -1
  41. package/dist/{chunk-GJTLWOKJ.js → chunk-HQA3IBLZ.js} +51 -18
  42. package/dist/chunk-HQA3IBLZ.js.map +1 -0
  43. package/dist/{chunk-4BXXAZ75.js → chunk-HQTHWVAK.js} +15 -7
  44. package/dist/chunk-HQTHWVAK.js.map +1 -0
  45. package/dist/{chunk-CCLV5CAA.js → chunk-JGOH7RWL.js} +7 -3
  46. package/dist/chunk-JGOH7RWL.js.map +1 -0
  47. package/dist/{chunk-Y6TGIUGL.js → chunk-LSF5WJ6G.js} +2 -2
  48. package/dist/{chunk-Y6TGIUGL.js.map → chunk-LSF5WJ6G.js.map} +1 -1
  49. package/dist/{chunk-D6HO5QAM.cjs → chunk-M26GEN4C.cjs} +14 -9
  50. package/dist/chunk-M26GEN4C.cjs.map +1 -0
  51. package/dist/{chunk-4P35AVPE.cjs → chunk-MEMYFFOL.cjs} +256 -157
  52. package/dist/chunk-MEMYFFOL.cjs.map +1 -0
  53. package/dist/{chunk-BQ355Z3O.js → chunk-NUZWQA4J.js} +4 -4
  54. package/dist/{chunk-BQ355Z3O.js.map → chunk-NUZWQA4J.js.map} +1 -1
  55. package/dist/{chunk-JIRB5LX4.js → chunk-OHX36YXF.js} +5 -3
  56. package/dist/chunk-OHX36YXF.js.map +1 -0
  57. package/dist/{chunk-PKORY4ZZ.cjs → chunk-OOTLMVNN.cjs} +107 -7
  58. package/dist/chunk-OOTLMVNN.cjs.map +1 -0
  59. package/dist/{chunk-D4M6E4OQ.cjs → chunk-OWZ6QT24.cjs} +16 -8
  60. package/dist/chunk-OWZ6QT24.cjs.map +1 -0
  61. package/dist/{chunk-6OHS6ZQ3.js → chunk-PDJCIONR.js} +8 -8
  62. package/dist/{chunk-6OHS6ZQ3.js.map → chunk-PDJCIONR.js.map} +1 -1
  63. package/dist/{chunk-WU2P7XOU.cjs → chunk-PP4G2TZZ.cjs} +20 -20
  64. package/dist/{chunk-WU2P7XOU.cjs.map → chunk-PP4G2TZZ.cjs.map} +1 -1
  65. package/dist/{chunk-VWAK25TU.js → chunk-SBBWRNZA.js} +10 -7
  66. package/dist/chunk-SBBWRNZA.js.map +1 -0
  67. package/dist/{chunk-TU4YMXOQ.js → chunk-TJIFNVPX.js} +6 -6
  68. package/dist/{chunk-TU4YMXOQ.js.map → chunk-TJIFNVPX.js.map} +1 -1
  69. package/dist/{chunk-V5YNS2QO.cjs → chunk-XJNQHPBJ.cjs} +15 -15
  70. package/dist/{chunk-V5YNS2QO.cjs.map → chunk-XJNQHPBJ.cjs.map} +1 -1
  71. package/dist/{chunk-MVYP55NA.js → chunk-YC6Z75K2.js} +113 -336
  72. package/dist/chunk-YC6Z75K2.js.map +1 -0
  73. package/dist/{chunk-3ZF7IC6Q.cjs → chunk-YZMSJKAK.cjs} +5 -3
  74. package/dist/chunk-YZMSJKAK.cjs.map +1 -0
  75. package/dist/{chunk-L3WDI7HP.cjs → chunk-Z2X5VTYJ.cjs} +65 -65
  76. package/dist/{chunk-L3WDI7HP.cjs.map → chunk-Z2X5VTYJ.cjs.map} +1 -1
  77. package/dist/{chunk-BN5MV2QK.cjs → chunk-Z52OAJ73.cjs} +4 -4
  78. package/dist/{chunk-BN5MV2QK.cjs.map → chunk-Z52OAJ73.cjs.map} +1 -1
  79. package/dist/{chunk-WYPSC6CO.js → chunk-ZBU6P4JV.js} +104 -4
  80. package/dist/chunk-ZBU6P4JV.js.map +1 -0
  81. package/dist/datasets/experiment/index.d.ts.map +1 -1
  82. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  83. package/dist/datasets/index.cjs +17 -17
  84. package/dist/datasets/index.js +2 -2
  85. package/dist/di/index.cjs +4 -4
  86. package/dist/di/index.js +1 -1
  87. package/dist/docs/SKILL.md +1 -1
  88. package/dist/docs/assets/SOURCE_MAP.json +443 -384
  89. package/dist/docs/references/docs-agents-agent-approval.md +61 -31
  90. package/dist/docs/references/docs-agents-supervisor-agents.md +1 -1
  91. package/dist/docs/references/docs-memory-observational-memory.md +9 -0
  92. package/dist/docs/references/docs-memory-semantic-recall.md +17 -1
  93. package/dist/docs/references/docs-workspace-skills.md +7 -5
  94. package/dist/docs/references/reference-agents-agent.md +20 -20
  95. package/dist/docs/references/reference-agents-generate.md +200 -66
  96. package/dist/docs/references/reference-agents-generateLegacy.md +77 -35
  97. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +4 -6
  98. package/dist/docs/references/reference-agents-getDefaultOptions.md +4 -6
  99. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +4 -6
  100. package/dist/docs/references/reference-agents-getDescription.md +1 -1
  101. package/dist/docs/references/reference-agents-getInstructions.md +4 -6
  102. package/dist/docs/references/reference-agents-getLLM.md +6 -8
  103. package/dist/docs/references/reference-agents-getMemory.md +4 -6
  104. package/dist/docs/references/reference-agents-getModel.md +4 -6
  105. package/dist/docs/references/reference-agents-getTools.md +5 -7
  106. package/dist/docs/references/reference-agents-getVoice.md +4 -6
  107. package/dist/docs/references/reference-agents-listAgents.md +4 -6
  108. package/dist/docs/references/reference-agents-listScorers.md +4 -6
  109. package/dist/docs/references/reference-agents-listTools.md +4 -6
  110. package/dist/docs/references/reference-agents-listWorkflows.md +4 -6
  111. package/dist/docs/references/reference-agents-network.md +69 -23
  112. package/dist/docs/references/reference-ai-sdk-chat-route.md +7 -7
  113. package/dist/docs/references/reference-ai-sdk-network-route.md +3 -3
  114. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +9 -9
  115. package/dist/docs/references/reference-ai-sdk-with-mastra.md +12 -12
  116. package/dist/docs/references/reference-ai-sdk-workflow-route.md +3 -3
  117. package/dist/docs/references/reference-auth-auth0.md +6 -6
  118. package/dist/docs/references/reference-auth-clerk.md +5 -5
  119. package/dist/docs/references/reference-auth-firebase.md +7 -7
  120. package/dist/docs/references/reference-auth-jwt.md +1 -1
  121. package/dist/docs/references/reference-auth-supabase.md +4 -4
  122. package/dist/docs/references/reference-auth-workos.md +6 -6
  123. package/dist/docs/references/reference-core-addGateway.md +2 -2
  124. package/dist/docs/references/reference-core-getAgent.md +2 -2
  125. package/dist/docs/references/reference-core-getAgentById.md +2 -2
  126. package/dist/docs/references/reference-core-getDeployer.md +1 -1
  127. package/dist/docs/references/reference-core-getGateway.md +2 -2
  128. package/dist/docs/references/reference-core-getGatewayById.md +2 -2
  129. package/dist/docs/references/reference-core-getLogger.md +1 -1
  130. package/dist/docs/references/reference-core-getMCPServer.md +2 -2
  131. package/dist/docs/references/reference-core-getMCPServerById.md +3 -3
  132. package/dist/docs/references/reference-core-getMemory.md +2 -2
  133. package/dist/docs/references/reference-core-getScorer.md +2 -2
  134. package/dist/docs/references/reference-core-getScorerById.md +2 -2
  135. package/dist/docs/references/reference-core-getServer.md +1 -1
  136. package/dist/docs/references/reference-core-getStorage.md +1 -1
  137. package/dist/docs/references/reference-core-getStoredAgentById.md +18 -20
  138. package/dist/docs/references/reference-core-getTelemetry.md +1 -1
  139. package/dist/docs/references/reference-core-getVector.md +2 -2
  140. package/dist/docs/references/reference-core-getWorkflow.md +3 -3
  141. package/dist/docs/references/reference-core-listAgents.md +1 -1
  142. package/dist/docs/references/reference-core-listGateways.md +1 -1
  143. package/dist/docs/references/reference-core-listLogs.md +9 -11
  144. package/dist/docs/references/reference-core-listLogsByRunId.md +9 -9
  145. package/dist/docs/references/reference-core-listMCPServers.md +1 -1
  146. package/dist/docs/references/reference-core-listMemory.md +1 -1
  147. package/dist/docs/references/reference-core-listScorers.md +1 -1
  148. package/dist/docs/references/reference-core-listStoredAgents.md +9 -11
  149. package/dist/docs/references/reference-core-listVectors.md +1 -1
  150. package/dist/docs/references/reference-core-listWorkflows.md +2 -2
  151. package/dist/docs/references/reference-core-mastra-class.md +17 -17
  152. package/dist/docs/references/reference-core-mastra-model-gateway.md +15 -15
  153. package/dist/docs/references/reference-core-setLogger.md +2 -4
  154. package/dist/docs/references/reference-core-setStorage.md +1 -1
  155. package/dist/docs/references/reference-datasets-addItem.md +20 -4
  156. package/dist/docs/references/reference-datasets-addItems.md +8 -2
  157. package/dist/docs/references/reference-datasets-compareExperiments.md +15 -3
  158. package/dist/docs/references/reference-datasets-create.md +6 -6
  159. package/dist/docs/references/reference-datasets-dataset.md +1 -1
  160. package/dist/docs/references/reference-datasets-delete.md +2 -2
  161. package/dist/docs/references/reference-datasets-deleteExperiment.md +2 -2
  162. package/dist/docs/references/reference-datasets-deleteItem.md +2 -2
  163. package/dist/docs/references/reference-datasets-deleteItems.md +2 -2
  164. package/dist/docs/references/reference-datasets-get.md +2 -2
  165. package/dist/docs/references/reference-datasets-getDetails.md +9 -9
  166. package/dist/docs/references/reference-datasets-getExperiment.md +2 -2
  167. package/dist/docs/references/reference-datasets-getItem.md +3 -3
  168. package/dist/docs/references/reference-datasets-getItemHistory.md +22 -2
  169. package/dist/docs/references/reference-datasets-list.md +7 -3
  170. package/dist/docs/references/reference-datasets-listExperimentResults.md +34 -4
  171. package/dist/docs/references/reference-datasets-listExperiments.md +41 -3
  172. package/dist/docs/references/reference-datasets-listItems.md +18 -6
  173. package/dist/docs/references/reference-datasets-listVersions.md +23 -3
  174. package/dist/docs/references/reference-datasets-startExperiment.md +62 -12
  175. package/dist/docs/references/reference-datasets-startExperimentAsync.md +5 -1
  176. package/dist/docs/references/reference-datasets-update.md +6 -6
  177. package/dist/docs/references/reference-datasets-updateItem.md +5 -5
  178. package/dist/docs/references/reference-evals-answer-relevancy.md +11 -11
  179. package/dist/docs/references/reference-evals-answer-similarity.md +17 -19
  180. package/dist/docs/references/reference-evals-bias.md +10 -10
  181. package/dist/docs/references/reference-evals-completeness.md +3 -3
  182. package/dist/docs/references/reference-evals-content-similarity.md +6 -6
  183. package/dist/docs/references/reference-evals-context-precision.md +4 -4
  184. package/dist/docs/references/reference-evals-create-scorer.md +47 -49
  185. package/dist/docs/references/reference-evals-faithfulness.md +11 -11
  186. package/dist/docs/references/reference-evals-hallucination.md +17 -21
  187. package/dist/docs/references/reference-evals-keyword-coverage.md +4 -4
  188. package/dist/docs/references/reference-evals-mastra-scorer.md +14 -14
  189. package/dist/docs/references/reference-evals-run-evals.md +16 -16
  190. package/dist/docs/references/reference-evals-scorer-utils.md +3 -3
  191. package/dist/docs/references/reference-evals-textual-difference.md +3 -3
  192. package/dist/docs/references/reference-evals-tone-consistency.md +3 -3
  193. package/dist/docs/references/reference-evals-toxicity.md +8 -8
  194. package/dist/docs/references/reference-harness-harness-class.md +34 -42
  195. package/dist/docs/references/reference-logging-pino-logger.md +5 -5
  196. package/dist/docs/references/reference-memory-deleteMessages.md +2 -2
  197. package/dist/docs/references/reference-memory-memory-class.md +12 -14
  198. package/dist/docs/references/reference-memory-observational-memory.md +102 -94
  199. package/dist/docs/references/reference-observability-tracing-configuration.md +27 -10
  200. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +4 -7
  201. package/dist/docs/references/reference-processors-batch-parts-processor.md +8 -10
  202. package/dist/docs/references/reference-processors-language-detector.md +14 -16
  203. package/dist/docs/references/reference-processors-message-history-processor.md +7 -9
  204. package/dist/docs/references/reference-processors-moderation-processor.md +13 -15
  205. package/dist/docs/references/reference-processors-pii-detector.md +14 -16
  206. package/dist/docs/references/reference-processors-processor-interface.md +62 -62
  207. package/dist/docs/references/reference-processors-prompt-injection-detector.md +11 -13
  208. package/dist/docs/references/reference-processors-semantic-recall-processor.md +14 -16
  209. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +12 -14
  210. package/dist/docs/references/reference-processors-token-limiter-processor.md +11 -13
  211. package/dist/docs/references/reference-processors-tool-call-filter.md +5 -7
  212. package/dist/docs/references/reference-processors-tool-search-processor.md +9 -11
  213. package/dist/docs/references/reference-processors-unicode-normalizer.md +8 -10
  214. package/dist/docs/references/reference-processors-working-memory-processor.md +14 -18
  215. package/dist/docs/references/reference-rag-database-config.md +11 -7
  216. package/dist/docs/references/reference-rag-embeddings.md +12 -12
  217. package/dist/docs/references/reference-server-mastra-server.md +10 -10
  218. package/dist/docs/references/reference-server-register-api-route.md +13 -13
  219. package/dist/docs/references/reference-storage-cloudflare-d1.md +5 -5
  220. package/dist/docs/references/reference-storage-composite.md +9 -9
  221. package/dist/docs/references/reference-storage-lance.md +3 -3
  222. package/dist/docs/references/reference-storage-libsql.md +2 -2
  223. package/dist/docs/references/reference-storage-mongodb.md +5 -5
  224. package/dist/docs/references/reference-storage-mssql.md +2 -2
  225. package/dist/docs/references/reference-storage-postgresql.md +25 -25
  226. package/dist/docs/references/reference-storage-upstash.md +3 -3
  227. package/dist/docs/references/reference-streaming-ChunkType.md +251 -59
  228. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +86 -16
  229. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +79 -39
  230. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +18 -8
  231. package/dist/docs/references/reference-streaming-workflows-stream.md +21 -9
  232. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +4 -4
  233. package/dist/docs/references/reference-tools-create-tool.md +25 -21
  234. package/dist/docs/references/reference-tools-graph-rag-tool.md +16 -18
  235. package/dist/docs/references/reference-tools-mcp-client.md +38 -27
  236. package/dist/docs/references/reference-tools-mcp-server.md +45 -45
  237. package/dist/docs/references/reference-tools-vector-query-tool.md +34 -22
  238. package/dist/docs/references/reference-vectors-libsql.md +31 -31
  239. package/dist/docs/references/reference-vectors-mongodb.md +32 -32
  240. package/dist/docs/references/reference-vectors-pg.md +60 -44
  241. package/dist/docs/references/reference-vectors-upstash.md +25 -25
  242. package/dist/docs/references/reference-voice-composite-voice.md +10 -10
  243. package/dist/docs/references/reference-voice-mastra-voice.md +20 -20
  244. package/dist/docs/references/reference-voice-voice.addInstructions.md +1 -1
  245. package/dist/docs/references/reference-voice-voice.addTools.md +1 -1
  246. package/dist/docs/references/reference-voice-voice.connect.md +3 -3
  247. package/dist/docs/references/reference-voice-voice.events.md +11 -11
  248. package/dist/docs/references/reference-voice-voice.listen.md +9 -9
  249. package/dist/docs/references/reference-voice-voice.on.md +2 -2
  250. package/dist/docs/references/reference-voice-voice.speak.md +11 -11
  251. package/dist/docs/references/reference-workflows-run-methods-cancel.md +2 -2
  252. package/dist/docs/references/reference-workflows-run-methods-restart.md +17 -5
  253. package/dist/docs/references/reference-workflows-run-methods-resume.md +23 -9
  254. package/dist/docs/references/reference-workflows-run-methods-start.md +22 -8
  255. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +12 -6
  256. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +29 -13
  257. package/dist/docs/references/reference-workflows-run.md +12 -12
  258. package/dist/docs/references/reference-workflows-step.md +24 -26
  259. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +2 -2
  260. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +1 -1
  261. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +4 -4
  262. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +3 -3
  263. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +3 -3
  264. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +9 -9
  265. package/dist/docs/references/reference-workflows-workflow-methods-map.md +2 -2
  266. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +2 -2
  267. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +2 -2
  268. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +2 -2
  269. package/dist/docs/references/reference-workflows-workflow-methods-then.md +2 -2
  270. package/dist/docs/references/reference-workflows-workflow.md +40 -50
  271. package/dist/docs/references/reference-workspace-filesystem.md +22 -22
  272. package/dist/docs/references/reference-workspace-local-filesystem.md +35 -35
  273. package/dist/docs/references/reference-workspace-local-sandbox.md +26 -26
  274. package/dist/docs/references/reference-workspace-sandbox.md +8 -8
  275. package/dist/docs/references/reference-workspace-workspace-class.md +30 -34
  276. package/dist/editor/types.d.ts +1 -0
  277. package/dist/editor/types.d.ts.map +1 -1
  278. package/dist/evals/index.cjs +20 -20
  279. package/dist/evals/index.js +3 -3
  280. package/dist/evals/scoreTraces/index.cjs +5 -5
  281. package/dist/evals/scoreTraces/index.js +2 -2
  282. package/dist/harness/harness.d.ts.map +1 -1
  283. package/dist/harness/index.cjs +25 -21
  284. package/dist/harness/index.cjs.map +1 -1
  285. package/dist/harness/index.js +15 -11
  286. package/dist/harness/index.js.map +1 -1
  287. package/dist/index.cjs +2 -2
  288. package/dist/index.js +1 -1
  289. package/dist/integration/index.cjs +2 -2
  290. package/dist/integration/index.js +1 -1
  291. package/dist/llm/index.cjs +12 -12
  292. package/dist/llm/index.js +3 -3
  293. package/dist/llm/model/model.d.ts.map +1 -1
  294. package/dist/llm/model/model.loop.d.ts.map +1 -1
  295. package/dist/llm/model/provider-types.generated.d.ts +5 -1
  296. package/dist/loop/index.cjs +14 -14
  297. package/dist/loop/index.js +1 -1
  298. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  299. package/dist/mastra/index.cjs +2 -2
  300. package/dist/mastra/index.js +1 -1
  301. package/dist/memory/index.cjs +14 -14
  302. package/dist/memory/index.js +1 -1
  303. package/dist/models-dev-2FJK72J2.cjs +12 -0
  304. package/dist/{models-dev-UVWCKPA2.cjs.map → models-dev-2FJK72J2.cjs.map} +1 -1
  305. package/dist/models-dev-CMQG6EMO.js +3 -0
  306. package/dist/{models-dev-W3LXZTEB.js.map → models-dev-CMQG6EMO.js.map} +1 -1
  307. package/dist/processor-provider/index.cjs +10 -10
  308. package/dist/processor-provider/index.js +1 -1
  309. package/dist/processors/index.cjs +42 -42
  310. package/dist/processors/index.js +1 -1
  311. package/dist/processors/processors/skills.d.ts +9 -42
  312. package/dist/processors/processors/skills.d.ts.map +1 -1
  313. package/dist/provider-registry-EHOAWHFE.cjs +40 -0
  314. package/dist/{provider-registry-4HLP2JRR.cjs.map → provider-registry-EHOAWHFE.cjs.map} +1 -1
  315. package/dist/provider-registry-LVP6T63V.js +3 -0
  316. package/dist/{provider-registry-K3DWQSMH.js.map → provider-registry-LVP6T63V.js.map} +1 -1
  317. package/dist/provider-registry.json +12 -4
  318. package/dist/relevance/index.cjs +3 -3
  319. package/dist/relevance/index.js +1 -1
  320. package/dist/request-context/index.cjs +4 -4
  321. package/dist/request-context/index.d.ts.map +1 -1
  322. package/dist/request-context/index.js +1 -1
  323. package/dist/storage/base.d.ts +34 -1
  324. package/dist/storage/base.d.ts.map +1 -1
  325. package/dist/storage/constants.cjs +56 -56
  326. package/dist/storage/constants.js +1 -1
  327. package/dist/storage/domains/agents/filesystem.d.ts +28 -0
  328. package/dist/storage/domains/agents/filesystem.d.ts.map +1 -0
  329. package/dist/storage/domains/agents/index.d.ts +1 -0
  330. package/dist/storage/domains/agents/index.d.ts.map +1 -1
  331. package/dist/storage/domains/experiments/inmemory.d.ts.map +1 -1
  332. package/dist/storage/domains/mcp-clients/filesystem.d.ts +28 -0
  333. package/dist/storage/domains/mcp-clients/filesystem.d.ts.map +1 -0
  334. package/dist/storage/domains/mcp-clients/index.d.ts +1 -0
  335. package/dist/storage/domains/mcp-clients/index.d.ts.map +1 -1
  336. package/dist/storage/domains/mcp-servers/filesystem.d.ts +28 -0
  337. package/dist/storage/domains/mcp-servers/filesystem.d.ts.map +1 -0
  338. package/dist/storage/domains/mcp-servers/index.d.ts +1 -0
  339. package/dist/storage/domains/mcp-servers/index.d.ts.map +1 -1
  340. package/dist/storage/domains/prompt-blocks/filesystem.d.ts +28 -0
  341. package/dist/storage/domains/prompt-blocks/filesystem.d.ts.map +1 -0
  342. package/dist/storage/domains/prompt-blocks/index.d.ts +1 -0
  343. package/dist/storage/domains/prompt-blocks/index.d.ts.map +1 -1
  344. package/dist/storage/domains/scorer-definitions/filesystem.d.ts +28 -0
  345. package/dist/storage/domains/scorer-definitions/filesystem.d.ts.map +1 -0
  346. package/dist/storage/domains/scorer-definitions/index.d.ts +1 -0
  347. package/dist/storage/domains/scorer-definitions/index.d.ts.map +1 -1
  348. package/dist/storage/domains/skills/filesystem.d.ts +28 -0
  349. package/dist/storage/domains/skills/filesystem.d.ts.map +1 -0
  350. package/dist/storage/domains/skills/index.d.ts +1 -0
  351. package/dist/storage/domains/skills/index.d.ts.map +1 -1
  352. package/dist/storage/domains/workspaces/filesystem.d.ts +28 -0
  353. package/dist/storage/domains/workspaces/filesystem.d.ts.map +1 -0
  354. package/dist/storage/domains/workspaces/index.d.ts +1 -0
  355. package/dist/storage/domains/workspaces/index.d.ts.map +1 -1
  356. package/dist/storage/filesystem-db.d.ts +82 -0
  357. package/dist/storage/filesystem-db.d.ts.map +1 -0
  358. package/dist/storage/filesystem-versioned.d.ts +148 -0
  359. package/dist/storage/filesystem-versioned.d.ts.map +1 -0
  360. package/dist/storage/filesystem.d.ts +39 -0
  361. package/dist/storage/filesystem.d.ts.map +1 -0
  362. package/dist/storage/git-history.d.ts +68 -0
  363. package/dist/storage/git-history.d.ts.map +1 -0
  364. package/dist/storage/index.cjs +208 -160
  365. package/dist/storage/index.d.ts +4 -0
  366. package/dist/storage/index.d.ts.map +1 -1
  367. package/dist/storage/index.js +2 -2
  368. package/dist/storage/types.d.ts +1 -0
  369. package/dist/storage/types.d.ts.map +1 -1
  370. package/dist/stream/RunOutput.d.ts +1 -1
  371. package/dist/stream/aisdk/v5/output-helpers.d.ts +6 -6
  372. package/dist/stream/base/output.d.ts +3 -3
  373. package/dist/stream/base/schema.d.ts +1 -1
  374. package/dist/stream/index.cjs +11 -11
  375. package/dist/stream/index.js +2 -2
  376. package/dist/test-utils/llm-mock.cjs +4 -4
  377. package/dist/test-utils/llm-mock.js +1 -1
  378. package/dist/tool-loop-agent/index.cjs +4 -4
  379. package/dist/tool-loop-agent/index.js +1 -1
  380. package/dist/tools/index.cjs +6 -6
  381. package/dist/tools/index.js +1 -1
  382. package/dist/tools/is-vercel-tool.cjs +2 -2
  383. package/dist/tools/is-vercel-tool.js +1 -1
  384. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  385. package/dist/tools/tool.d.ts +6 -0
  386. package/dist/tools/tool.d.ts.map +1 -1
  387. package/dist/tools/types.d.ts +27 -0
  388. package/dist/tools/types.d.ts.map +1 -1
  389. package/dist/utils.cjs +23 -23
  390. package/dist/utils.js +1 -1
  391. package/dist/vector/index.cjs +9 -9
  392. package/dist/vector/index.js +2 -2
  393. package/dist/workflows/evented/index.cjs +10 -10
  394. package/dist/workflows/evented/index.js +1 -1
  395. package/dist/workflows/index.cjs +25 -25
  396. package/dist/workflows/index.js +1 -1
  397. package/dist/workspace/index.cjs +70 -66
  398. package/dist/workspace/index.d.ts +1 -0
  399. package/dist/workspace/index.d.ts.map +1 -1
  400. package/dist/workspace/index.js +1 -1
  401. package/dist/workspace/sandbox/execa.d.ts +9 -0
  402. package/dist/workspace/sandbox/execa.d.ts.map +1 -0
  403. package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -1
  404. package/dist/workspace/skills/index.d.ts +1 -0
  405. package/dist/workspace/skills/index.d.ts.map +1 -1
  406. package/dist/workspace/skills/tools.d.ts +36 -0
  407. package/dist/workspace/skills/tools.d.ts.map +1 -0
  408. package/dist/workspace/tools/execute-command.d.ts.map +1 -1
  409. package/dist/workspace/tools/output-helpers.d.ts +4 -3
  410. package/dist/workspace/tools/output-helpers.d.ts.map +1 -1
  411. package/package.json +9 -9
  412. package/src/llm/model/provider-types.generated.d.ts +5 -1
  413. package/dist/chunk-3ZF7IC6Q.cjs.map +0 -1
  414. package/dist/chunk-4BXXAZ75.js.map +0 -1
  415. package/dist/chunk-4P35AVPE.cjs.map +0 -1
  416. package/dist/chunk-BFV3GSGS.js.map +0 -1
  417. package/dist/chunk-CCLV5CAA.js.map +0 -1
  418. package/dist/chunk-D4M6E4OQ.cjs.map +0 -1
  419. package/dist/chunk-D6HO5QAM.cjs.map +0 -1
  420. package/dist/chunk-G5R2755Q.cjs.map +0 -1
  421. package/dist/chunk-GJTLWOKJ.js.map +0 -1
  422. package/dist/chunk-H5S4PS44.cjs.map +0 -1
  423. package/dist/chunk-IOY7Y5GV.js.map +0 -1
  424. package/dist/chunk-JIRB5LX4.js.map +0 -1
  425. package/dist/chunk-MVYP55NA.js.map +0 -1
  426. package/dist/chunk-PKORY4ZZ.cjs.map +0 -1
  427. package/dist/chunk-QNXY3J6B.cjs.map +0 -1
  428. package/dist/chunk-SEKQJ447.js.map +0 -1
  429. package/dist/chunk-VDKWYUGC.cjs.map +0 -1
  430. package/dist/chunk-VWAK25TU.js.map +0 -1
  431. package/dist/chunk-WYPSC6CO.js.map +0 -1
  432. package/dist/chunk-YIJZBU54.cjs.map +0 -1
  433. package/dist/chunk-ZBESCKPX.cjs.map +0 -1
  434. package/dist/chunk-ZVWVQ6MG.js.map +0 -1
  435. package/dist/models-dev-UVWCKPA2.cjs +0 -12
  436. package/dist/models-dev-W3LXZTEB.js +0 -3
  437. package/dist/provider-registry-4HLP2JRR.cjs +0 -40
  438. package/dist/provider-registry-K3DWQSMH.js +0 -3
@@ -1,21 +1,21 @@
1
1
  import { DefaultVoice } from './chunk-LHRHOPUC.js';
2
2
  import { PUBSUB_SYMBOL, STREAM_FORMAT_SYMBOL } from './chunk-2QXNHEDL.js';
3
- import { extractLines, createWorkspaceTools, BM25Index } from './chunk-SEKQJ447.js';
4
- import { InMemoryStore } from './chunk-BFV3GSGS.js';
5
- import { MessageList, coreContentToString, DefaultGeneratedFile, DefaultGeneratedFileWithType, sanitizeToolName } from './chunk-JIRB5LX4.js';
3
+ import { createWorkspaceTools, createSkillTools, BM25Index } from './chunk-ACAILOJE.js';
4
+ import { InMemoryStore } from './chunk-FT5Q6XTK.js';
5
+ import { MessageList, coreContentToString, DefaultGeneratedFile, DefaultGeneratedFileWithType, sanitizeToolName } from './chunk-OHX36YXF.js';
6
6
  import { parsePartialJson, isDeepEqualData, stepCountIs } from './chunk-UTLWS5LV.js';
7
7
  import { generateId, asSchema, jsonSchema, APICallError, tool } from './chunk-CPLRD2VP.js';
8
8
  import { executeHook } from './chunk-L54GIUCB.js';
9
- import { resolveModelConfig, ModelRouterEmbeddingModel, ModelRouterLanguageModel } from './chunk-TU4YMXOQ.js';
10
- import { MastraLLMV1 } from './chunk-WYPSC6CO.js';
9
+ import { resolveModelConfig, ModelRouterEmbeddingModel, ModelRouterLanguageModel } from './chunk-TJIFNVPX.js';
10
+ import { MastraLLMV1 } from './chunk-ZBU6P4JV.js';
11
11
  import { noopLogger } from './chunk-PSCMWPLC.js';
12
12
  import { EventEmitterPubSub } from './chunk-X2HAI3OX.js';
13
- import { isZodType, removeUndefinedValues, ensureToolProperties, makeCoreTool, createMastraProxy, deepMerge, selectFields, delay } from './chunk-VWAK25TU.js';
13
+ import { isZodType, removeUndefinedValues, ensureToolProperties, makeCoreTool, createMastraProxy, deepMerge, selectFields, delay } from './chunk-SBBWRNZA.js';
14
14
  import { resolveObservabilityContext, createObservabilityContext, getOrCreateSpan, wrapMastra, executeWithContextSync } from './chunk-6JYMMRHB.js';
15
- import { ToolStream } from './chunk-DD2VNRQM.js';
16
- import { Tool, createTool } from './chunk-ZVWVQ6MG.js';
17
- import { RequestContext, MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from './chunk-CCLV5CAA.js';
18
15
  import { MastraError, getErrorFromUnknown } from './chunk-FJEVLHJT.js';
16
+ import { ToolStream } from './chunk-DD2VNRQM.js';
17
+ import { Tool, createTool } from './chunk-CY4ZWL2X.js';
18
+ import { RequestContext, MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from './chunk-JGOH7RWL.js';
19
19
  import { zodToJsonSchema } from './chunk-PJKCPRYF.js';
20
20
  import { MastraBase } from './chunk-WCAFTXGK.js';
21
21
  import { RegisteredLogger, ConsoleLogger } from './chunk-X2WMFSPB.js';
@@ -13736,6 +13736,7 @@ function createAgenticLoopWorkflow(params) {
13736
13736
  } = params;
13737
13737
  const accumulatedSteps = [];
13738
13738
  let previousContentLength = 0;
13739
+ let pendingFeedbackStop = false;
13739
13740
  const agenticExecutionWorkflow = createAgenticExecutionWorkflow({
13740
13741
  messageId,
13741
13742
  models,
@@ -13766,6 +13767,10 @@ function createAgenticLoopWorkflow(params) {
13766
13767
  }).dowhile(agenticExecutionWorkflow, async ({ inputData }) => {
13767
13768
  const typedInputData = inputData;
13768
13769
  let hasFinishedSteps = false;
13770
+ if (pendingFeedbackStop) {
13771
+ hasFinishedSteps = true;
13772
+ pendingFeedbackStop = false;
13773
+ }
13769
13774
  const allContent = typedInputData.messages.nonUser.flatMap(
13770
13775
  (message) => message.content
13771
13776
  );
@@ -13810,7 +13815,7 @@ function createAgenticLoopWorkflow(params) {
13810
13815
  })
13811
13816
  );
13812
13817
  const hasStopped = conditions.some((condition) => condition);
13813
- hasFinishedSteps = hasStopped;
13818
+ hasFinishedSteps = hasFinishedSteps || hasStopped;
13814
13819
  }
13815
13820
  if (rest.onIterationComplete) {
13816
13821
  const isFinal = !typedInputData.stepResult?.isContinued || hasFinishedSteps;
@@ -13841,10 +13846,7 @@ function createAgenticLoopWorkflow(params) {
13841
13846
  try {
13842
13847
  const iterationResult = await rest.onIterationComplete(iterationContext);
13843
13848
  if (iterationResult) {
13844
- if (iterationResult.continue === false && !hasFinishedSteps) {
13845
- hasFinishedSteps = true;
13846
- }
13847
- if (iterationResult.feedback && typedInputData.stepResult?.isContinued && !hasFinishedSteps) {
13849
+ if (iterationResult.feedback && typedInputData.stepResult?.isContinued) {
13848
13850
  messageList.add(
13849
13851
  {
13850
13852
  id: rest.mastra?.generateId() || randomUUID(),
@@ -13869,10 +13871,14 @@ function createAgenticLoopWorkflow(params) {
13869
13871
  },
13870
13872
  "response"
13871
13873
  );
13872
- if (iterationResult.continue && rest.maxSteps && accumulatedSteps.length < rest.maxSteps) {
13874
+ if (iterationResult.continue === false) {
13875
+ pendingFeedbackStop = true;
13876
+ } else if (!hasFinishedSteps && rest.maxSteps && accumulatedSteps.length < rest.maxSteps) {
13873
13877
  hasFinishedSteps = false;
13874
13878
  typedInputData.stepResult.isContinued = true;
13875
13879
  }
13880
+ } else if (iterationResult.continue === false && !hasFinishedSteps) {
13881
+ hasFinishedSteps = true;
13876
13882
  }
13877
13883
  }
13878
13884
  } catch (error) {
@@ -14356,6 +14362,7 @@ var MastraLLMVNext = class extends MastraBase {
14356
14362
  toolCallId,
14357
14363
  messageList,
14358
14364
  models: this.#models,
14365
+ logger: this.logger,
14359
14366
  tools,
14360
14367
  stopWhen: stopWhenToUse,
14361
14368
  toolChoice,
@@ -16598,6 +16605,8 @@ async function networkLoop({
16598
16605
  }
16599
16606
  });
16600
16607
  }
16608
+
16609
+ // src/processors/processors/skills.ts
16601
16610
  var SkillsProcessor = class {
16602
16611
  id = "skills-processor";
16603
16612
  name = "Skills Processor";
@@ -16605,8 +16614,6 @@ var SkillsProcessor = class {
16605
16614
  _workspace;
16606
16615
  /** Format for skill injection */
16607
16616
  _format;
16608
- /** Set of activated skill names */
16609
- _activatedSkills = /* @__PURE__ */ new Set();
16610
16617
  constructor(opts) {
16611
16618
  this._workspace = opts.workspace;
16612
16619
  this._format = opts.format ?? "xml";
@@ -16646,7 +16653,8 @@ var SkillsProcessor = class {
16646
16653
  return skill.source.type;
16647
16654
  }
16648
16655
  /**
16649
- * Format available skills metadata based on configured format
16656
+ * Format available skills metadata based on configured format.
16657
+ * Skills are sorted by name for deterministic output (prompt cache stability).
16650
16658
  */
16651
16659
  async formatAvailableSkills() {
16652
16660
  const skillsList = await this.skills?.list();
@@ -16655,6 +16663,7 @@ var SkillsProcessor = class {
16655
16663
  }
16656
16664
  const skillPromises = skillsList.map((meta) => this.skills?.get(meta.name));
16657
16665
  const fullSkills = (await Promise.all(skillPromises)).filter((s) => s !== void 0);
16666
+ fullSkills.sort((a, b) => a.name.localeCompare(b.name));
16658
16667
  switch (this._format) {
16659
16668
  case "xml": {
16660
16669
  const skillsXml = fullSkills.map(
@@ -16697,46 +16706,6 @@ ${skillsMd}`;
16697
16706
  }
16698
16707
  }
16699
16708
  }
16700
- /**
16701
- * Format activated skills based on configured format
16702
- */
16703
- async formatActivatedSkills() {
16704
- const skillPromises = Array.from(this._activatedSkills).map((name) => this.skills?.get(name));
16705
- const activatedSkillsList = (await Promise.all(skillPromises)).filter((s) => s !== void 0);
16706
- if (activatedSkillsList.length === 0) {
16707
- return "";
16708
- }
16709
- switch (this._format) {
16710
- case "xml": {
16711
- const skillInstructions = activatedSkillsList.map(
16712
- (skill) => `# Skill: ${skill.name}
16713
- Location: ${this.formatLocation(skill)}
16714
- Source: ${this.formatSourceType(skill)}
16715
-
16716
- ${skill.instructions}`
16717
- ).join("\n\n---\n\n");
16718
- return `<activated_skills>
16719
- ${skillInstructions}
16720
- </activated_skills>`;
16721
- }
16722
- case "json":
16723
- case "markdown": {
16724
- const skillInstructions = activatedSkillsList.map(
16725
- (skill) => `# Skill: ${skill.name}
16726
- *Location: ${this.formatLocation(skill)} | Source: ${this.formatSourceType(skill)}*
16727
-
16728
- ${skill.instructions}`
16729
- ).join("\n\n---\n\n");
16730
- return `# Activated Skills
16731
-
16732
- ${skillInstructions}`;
16733
- }
16734
- default: {
16735
- const _exhaustive = this._format;
16736
- return _exhaustive;
16737
- }
16738
- }
16739
- }
16740
16709
  /**
16741
16710
  * Escape XML special characters
16742
16711
  */
@@ -16744,255 +16713,13 @@ ${skillInstructions}`;
16744
16713
  return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
16745
16714
  }
16746
16715
  // ===========================================================================
16747
- // Tool Creation
16748
- // ===========================================================================
16749
- /**
16750
- * Create skill-activate tool
16751
- */
16752
- createSkillActivateTool() {
16753
- const skills = this.skills;
16754
- const activatedSkills = this._activatedSkills;
16755
- return createTool({
16756
- id: "skill-activate",
16757
- description: "Activate a skill to load its full instructions. You should activate skills proactively when they are relevant to the user's request without asking for permission first.",
16758
- inputSchema: z10.object({
16759
- name: z10.string().describe("The name of the skill to activate")
16760
- }),
16761
- execute: async ({ name }) => {
16762
- if (!skills) {
16763
- return {
16764
- success: false,
16765
- message: "No skills configured"
16766
- };
16767
- }
16768
- if (!await skills.has(name)) {
16769
- const skillsList = await skills.list();
16770
- const skillNames = skillsList.map((s) => s.name);
16771
- return {
16772
- success: false,
16773
- message: `Skill "${name}" not found. Available skills: ${skillNames.join(", ")}`
16774
- };
16775
- }
16776
- if (activatedSkills.has(name)) {
16777
- return {
16778
- success: true,
16779
- message: `Skill "${name}" is already activated`
16780
- };
16781
- }
16782
- activatedSkills.add(name);
16783
- return {
16784
- success: true,
16785
- message: `Skill "${name}" activated successfully. The skill instructions are now available.`
16786
- };
16787
- }
16788
- });
16789
- }
16790
- /**
16791
- * Create skill-read-reference tool
16792
- */
16793
- createSkillReadReferenceTool() {
16794
- const skills = this.skills;
16795
- const activatedSkills = this._activatedSkills;
16796
- return createTool({
16797
- id: "skill-read-reference",
16798
- description: "Read a reference file from an activated skill. Optionally specify line range to read a portion of the file.",
16799
- inputSchema: z10.object({
16800
- skillName: z10.string().describe("The name of the activated skill"),
16801
- referencePath: z10.string().describe(
16802
- 'Path to the reference file (relative to the skill root directory, e.g. "references/colors.md" or "docs/schema.md")'
16803
- ),
16804
- startLine: z10.number().optional().describe("Starting line number (1-indexed). If omitted, starts from the beginning."),
16805
- endLine: z10.number().optional().describe("Ending line number (1-indexed, inclusive). If omitted, reads to the end.")
16806
- }),
16807
- execute: async ({ skillName, referencePath, startLine, endLine }) => {
16808
- if (!skills) {
16809
- return {
16810
- success: false,
16811
- message: "No skills configured"
16812
- };
16813
- }
16814
- if (!activatedSkills.has(skillName)) {
16815
- return {
16816
- success: false,
16817
- message: `Skill "${skillName}" is not activated. Activate it first using skill-activate.`
16818
- };
16819
- }
16820
- const fullContent = await skills.getReference(skillName, referencePath);
16821
- if (fullContent === null) {
16822
- const availableRefs = await skills.listReferences(skillName);
16823
- return {
16824
- success: false,
16825
- message: `Reference file "${referencePath}" not found in skill "${skillName}". Available references: ${availableRefs.join(", ") || "none"}`
16826
- };
16827
- }
16828
- const result = extractLines(fullContent, startLine, endLine);
16829
- return {
16830
- success: true,
16831
- content: result.content,
16832
- lines: result.lines,
16833
- totalLines: result.totalLines
16834
- };
16835
- }
16836
- });
16837
- }
16838
- /**
16839
- * Create skill-read-script tool
16840
- */
16841
- createSkillReadScriptTool() {
16842
- const skills = this.skills;
16843
- const activatedSkills = this._activatedSkills;
16844
- return createTool({
16845
- id: "skill-read-script",
16846
- description: "Read a script file from an activated skill. Scripts contain executable code. Optionally specify line range.",
16847
- inputSchema: z10.object({
16848
- skillName: z10.string().describe("The name of the activated skill"),
16849
- scriptPath: z10.string().describe('Path to the script file (relative to the skill root directory, e.g. "scripts/run.sh")'),
16850
- startLine: z10.number().optional().describe("Starting line number (1-indexed). If omitted, starts from the beginning."),
16851
- endLine: z10.number().optional().describe("Ending line number (1-indexed, inclusive). If omitted, reads to the end.")
16852
- }),
16853
- execute: async ({ skillName, scriptPath, startLine, endLine }) => {
16854
- if (!skills) {
16855
- return {
16856
- success: false,
16857
- message: "No skills configured"
16858
- };
16859
- }
16860
- if (!activatedSkills.has(skillName)) {
16861
- return {
16862
- success: false,
16863
- message: `Skill "${skillName}" is not activated. Activate it first using skill-activate.`
16864
- };
16865
- }
16866
- const fullContent = await skills.getScript(skillName, scriptPath);
16867
- if (fullContent === null) {
16868
- const availableScripts = await skills.listScripts(skillName);
16869
- return {
16870
- success: false,
16871
- message: `Script file "${scriptPath}" not found in skill "${skillName}". Available scripts: ${availableScripts.join(", ") || "none"}`
16872
- };
16873
- }
16874
- const result = extractLines(fullContent, startLine, endLine);
16875
- return {
16876
- success: true,
16877
- content: result.content,
16878
- lines: result.lines,
16879
- totalLines: result.totalLines
16880
- };
16881
- }
16882
- });
16883
- }
16884
- /**
16885
- * Create skill-read-asset tool
16886
- */
16887
- createSkillReadAssetTool() {
16888
- const skills = this.skills;
16889
- const activatedSkills = this._activatedSkills;
16890
- return createTool({
16891
- id: "skill-read-asset",
16892
- description: "Read an asset file from an activated skill. Assets include templates, data files, and other static resources. Binary files are returned as base64.",
16893
- inputSchema: z10.object({
16894
- skillName: z10.string().describe("The name of the activated skill"),
16895
- assetPath: z10.string().describe('Path to the asset file (relative to the skill root directory, e.g. "assets/logo.png")')
16896
- }),
16897
- execute: async ({ skillName, assetPath }) => {
16898
- if (!skills) {
16899
- return {
16900
- success: false,
16901
- message: "No skills configured"
16902
- };
16903
- }
16904
- if (!activatedSkills.has(skillName)) {
16905
- return {
16906
- success: false,
16907
- message: `Skill "${skillName}" is not activated. Activate it first using skill-activate.`
16908
- };
16909
- }
16910
- const content = await skills.getAsset(skillName, assetPath);
16911
- if (content === null) {
16912
- const availableAssets = await skills.listAssets(skillName);
16913
- return {
16914
- success: false,
16915
- message: `Asset file "${assetPath}" not found in skill "${skillName}". Available assets: ${availableAssets.join(", ") || "none"}`
16916
- };
16917
- }
16918
- try {
16919
- const textContent = content.toString("utf-8");
16920
- if (!textContent.slice(0, 1e3).includes("\0")) {
16921
- return {
16922
- success: true,
16923
- content: textContent,
16924
- encoding: "utf-8"
16925
- };
16926
- }
16927
- } catch {
16928
- }
16929
- return {
16930
- success: true,
16931
- content: content.toString("base64"),
16932
- encoding: "base64"
16933
- };
16934
- }
16935
- });
16936
- }
16937
- /**
16938
- * Create skill-search tool for searching across skill content
16939
- */
16940
- createSkillSearchTool() {
16941
- const skills = this.skills;
16942
- return createTool({
16943
- id: "skill-search",
16944
- description: "Search across skill content to find relevant information. Useful when you need to find specific details within skills.",
16945
- inputSchema: z10.object({
16946
- query: z10.string().describe("The search query"),
16947
- skillNames: z10.array(z10.string()).optional().describe("Optional list of skill names to search within"),
16948
- topK: z10.number().optional().describe("Maximum number of results to return (default: 5)")
16949
- }),
16950
- execute: async ({ query, skillNames, topK }) => {
16951
- if (!skills) {
16952
- return {
16953
- success: false,
16954
- message: "No skills configured"
16955
- };
16956
- }
16957
- const results = await skills.search(query, { topK, skillNames });
16958
- if (results.length === 0) {
16959
- return {
16960
- success: true,
16961
- message: "No results found",
16962
- results: []
16963
- };
16964
- }
16965
- return {
16966
- success: true,
16967
- results: results.map((r) => ({
16968
- skillName: r.skillName,
16969
- source: r.source,
16970
- score: r.score,
16971
- preview: r.content.substring(0, 200) + (r.content.length > 200 ? "..." : ""),
16972
- lineRange: r.lineRange
16973
- }))
16974
- };
16975
- }
16976
- });
16977
- }
16978
- // ===========================================================================
16979
- // Helpers
16980
- // ===========================================================================
16981
- /**
16982
- * Mark a tool as never requiring approval.
16983
- * Skill tools are internal plumbing and should bypass requireToolApproval.
16984
- */
16985
- withNoApproval(tool2) {
16986
- tool2.needsApprovalFn = () => false;
16987
- return tool2;
16988
- }
16989
- // ===========================================================================
16990
- // Processor Interface
16716
+ // processInputStep — system message injection only
16991
16717
  // ===========================================================================
16992
16718
  /**
16993
- * Process input step - inject available skills and provide skill tools
16719
+ * Process input step - inject available skills metadata into the system
16720
+ * message. Tools are provided by `Agent.listSkillTools()` instead.
16994
16721
  */
16995
- async processInputStep({ messageList, tools, stepNumber, requestContext }) {
16722
+ async processInputStep({ messageList, stepNumber, requestContext }) {
16996
16723
  if (stepNumber === 0) {
16997
16724
  await this.skills?.maybeRefresh({ requestContext });
16998
16725
  }
@@ -17008,35 +16735,9 @@ ${skillInstructions}`;
17008
16735
  }
17009
16736
  messageList.addSystem({
17010
16737
  role: "system",
17011
- content: 'IMPORTANT: Skills are NOT tools. Do not call skill names directly. To use a skill, call the skill-activate tool with the skill name as the "name" parameter. When a user asks about a topic covered by an available skill, activate it immediately without asking for permission.'
16738
+ content: 'IMPORTANT: Skills are NOT tools. Do not call skill names directly as tool names. To use a skill, call the `skill` tool with the skill name as the "name" parameter. When a user asks about a topic covered by an available skill, activate it immediately without asking for permission first.'
17012
16739
  });
17013
16740
  }
17014
- if (this._activatedSkills.size > 0) {
17015
- const activatedSkillsMessage = await this.formatActivatedSkills();
17016
- if (activatedSkillsMessage) {
17017
- messageList.addSystem({
17018
- role: "system",
17019
- content: activatedSkillsMessage
17020
- });
17021
- }
17022
- }
17023
- const skillTools = {};
17024
- if (hasSkills) {
17025
- skillTools["skill-activate"] = this.withNoApproval(this.createSkillActivateTool());
17026
- skillTools["skill-search"] = this.withNoApproval(this.createSkillSearchTool());
17027
- }
17028
- if (this._activatedSkills.size > 0) {
17029
- skillTools["skill-read-reference"] = this.withNoApproval(this.createSkillReadReferenceTool());
17030
- skillTools["skill-read-script"] = this.withNoApproval(this.createSkillReadScriptTool());
17031
- skillTools["skill-read-asset"] = this.withNoApproval(this.createSkillReadAssetTool());
17032
- }
17033
- return {
17034
- messageList,
17035
- tools: {
17036
- ...tools,
17037
- ...skillTools
17038
- }
17039
- };
17040
16741
  }
17041
16742
  };
17042
16743
 
@@ -19796,6 +19497,19 @@ ${errorMessages}`,
19796
19497
  this.model = Array.isArray(this.#originalModel) ? [...this.#originalModel] : this.#originalModel;
19797
19498
  this.logger.debug(`[Agents:${this.name}] Model reset to original.`, { model: this.model, name: this.name });
19798
19499
  }
19500
+ /**
19501
+ * Returns a snapshot of the raw field values that may be overridden by stored config.
19502
+ * Used by the editor to save/restore code defaults externally.
19503
+ * @internal
19504
+ */
19505
+ __getOverridableFields() {
19506
+ return {
19507
+ instructions: this.#instructions,
19508
+ model: this.model,
19509
+ tools: this.#tools,
19510
+ workspace: this.#workspace
19511
+ };
19512
+ }
19799
19513
  reorderModels(modelIds) {
19800
19514
  if (!Array.isArray(this.model)) {
19801
19515
  this.logger.warn(`[Agents:${this.name}] model is not an array`);
@@ -20129,6 +19843,59 @@ ${errorMessages}`,
20129
19843
  }
20130
19844
  return convertedWorkspaceTools;
20131
19845
  }
19846
+ /**
19847
+ * Returns skill tools (skill, skill_search, skill_read) when the workspace
19848
+ * has skills configured. These are added at the Agent level (like workspace
19849
+ * tools) rather than inside a processor, so they persist across turns and
19850
+ * survive serialization across tool-approval pauses.
19851
+ * @internal
19852
+ */
19853
+ async listSkillTools({
19854
+ runId,
19855
+ resourceId,
19856
+ threadId,
19857
+ requestContext,
19858
+ mastraProxy,
19859
+ autoResumeSuspendedTools,
19860
+ ...rest
19861
+ }) {
19862
+ const observabilityContext = resolveObservabilityContext(rest);
19863
+ let convertedSkillTools = {};
19864
+ if (this._agentNetworkAppend) {
19865
+ return convertedSkillTools;
19866
+ }
19867
+ const workspace = await this.getWorkspace({ requestContext });
19868
+ if (!workspace?.skills) {
19869
+ return convertedSkillTools;
19870
+ }
19871
+ const skillTools = createSkillTools(workspace.skills);
19872
+ if (Object.keys(skillTools).length > 0) {
19873
+ this.logger.debug(`[Agent:${this.name}] - Adding skill tools: ${Object.keys(skillTools).join(", ")}`, {
19874
+ runId
19875
+ });
19876
+ for (const [toolName, tool2] of Object.entries(skillTools)) {
19877
+ const toolObj = tool2;
19878
+ const options = {
19879
+ name: toolName,
19880
+ runId,
19881
+ threadId,
19882
+ resourceId,
19883
+ logger: this.logger,
19884
+ mastra: mastraProxy,
19885
+ agentName: this.name,
19886
+ requestContext,
19887
+ ...observabilityContext,
19888
+ model: await this.getModel({ requestContext }),
19889
+ tracingPolicy: this.#options?.tracingPolicy,
19890
+ requireApproval: false
19891
+ // Skill tools never require approval
19892
+ };
19893
+ const convertedToCoreTool = makeCoreTool(toolObj, options, void 0, autoResumeSuspendedTools);
19894
+ convertedSkillTools[toolName] = convertedToCoreTool;
19895
+ }
19896
+ }
19897
+ return convertedSkillTools;
19898
+ }
20132
19899
  /**
20133
19900
  * Executes input processors on the message list before LLM processing.
20134
19901
  * @internal
@@ -21331,6 +21098,15 @@ ${effectiveInstructions}`;
21331
21098
  mastraProxy,
21332
21099
  autoResumeSuspendedTools
21333
21100
  });
21101
+ const skillTools = await this.listSkillTools({
21102
+ runId,
21103
+ resourceId,
21104
+ threadId,
21105
+ requestContext,
21106
+ ...observabilityContext,
21107
+ mastraProxy,
21108
+ autoResumeSuspendedTools
21109
+ });
21334
21110
  const allTools = {
21335
21111
  ...assignedTools,
21336
21112
  ...memoryTools,
@@ -21338,7 +21114,8 @@ ${effectiveInstructions}`;
21338
21114
  ...clientSideTools,
21339
21115
  ...agentTools,
21340
21116
  ...workflowTools,
21341
- ...workspaceTools
21117
+ ...workspaceTools,
21118
+ ...skillTools
21342
21119
  };
21343
21120
  return this.formatTools(allTools);
21344
21121
  }
@@ -22084,7 +21861,7 @@ ${effectiveInstructions}`;
22084
21861
  }
22085
21862
  const fullOutput = await result.result.getFullOutput();
22086
21863
  const error = fullOutput.error;
22087
- if (fullOutput.finishReason === "error" && error) {
21864
+ if (error) {
22088
21865
  throw error;
22089
21866
  }
22090
21867
  return fullOutput;
@@ -22288,7 +22065,7 @@ ${effectiveInstructions}`;
22288
22065
  }
22289
22066
  const fullOutput = await result.result.getFullOutput();
22290
22067
  const error = fullOutput.error;
22291
- if (fullOutput.finishReason === "error" && error) {
22068
+ if (error) {
22292
22069
  throw error;
22293
22070
  }
22294
22071
  return fullOutput;
@@ -26320,5 +26097,5 @@ var MockMemory = class extends MastraMemory {
26320
26097
  };
26321
26098
 
26322
26099
  export { Agent, BaseProcessor, BatchPartsProcessor, ChunkFrom, DefaultExecutionEngine, ExecutionEngine, FilePartSchema, ImagePartSchema, LanguageDetector, MastraAgentNetworkStream, MastraMemory, MastraModelOutput, MastraScorer, MemoryProcessor, MessageContentSchema, MessageHistory, MessagePartSchema, MockMemory, ModerationProcessor, PIIDetector, ProcessorInputPhaseSchema, ProcessorInputStepPhaseSchema, ProcessorMessageContentSchema, ProcessorMessageSchema, ProcessorOutputResultPhaseSchema, ProcessorOutputStepPhaseSchema, ProcessorOutputStreamPhaseSchema, ProcessorRunner, ProcessorState, ProcessorStepInputSchema, ProcessorStepOutputSchema, ProcessorStepSchema, PromptInjectionDetector, ReasoningPartSchema, Run, SemanticRecall, SkillsProcessor, SourcePartSchema, StepStartPartSchema, StructuredOutputProcessor, SystemPromptScrubber, TextPartSchema, TokenLimiterProcessor, ToolCallFilter, ToolInvocationPartSchema, ToolSearchProcessor, TripWire, UnicodeNormalizer, WORKING_MEMORY_END_TAG, WORKING_MEMORY_START_TAG, Workflow, WorkflowRunOutput, WorkingMemory, WorkspaceInstructionsProcessor, augmentWithInit, cleanStepResult, cloneStep, cloneWorkflow, convertFullStreamChunkToMastra, convertFullStreamChunkToUIMessageStream, convertMastraChunkToAISDKv5, createDeprecationProxy, createScorer, createStep, createTimeTravelExecutionParams, createWorkflow, extractWorkingMemoryContent, extractWorkingMemoryTags, formatCheckFeedback, formatCompletionFeedback, formatStreamCompletionFeedback, formatValidationFeedback, generateFinalResult, generateStructuredFinalResult, getResumeLabelsByStepId, getStepIds, getStepResult, getThreadOMMetadata, getZodErrors, globalEmbeddingCache, hydrateSerializedStepErrors, isObservationalMemoryEnabled, isProcessor, isProcessorWorkflow, isSupportedLanguageModel, loop, mapVariable, memoryDefaultOptions, parseMemoryRequestContext, removeWorkingMemoryTags, resolveThreadIdFromArgs, runChecks, runCompletionScorers, runCountDeprecationMessage, runDefaultCompletionCheck, runStreamCompletionScorers, runValidation, setThreadOMMetadata, supportedLanguageModelSpecifications, tryGenerateWithJsonFallback, tryStreamWithJsonFallback, validateStepInput, validateStepRequestContext, validateStepResumeData, validateStepStateData, validateStepSuspendData };
26323
- //# sourceMappingURL=chunk-MVYP55NA.js.map
26324
- //# sourceMappingURL=chunk-MVYP55NA.js.map
26100
+ //# sourceMappingURL=chunk-YC6Z75K2.js.map
26101
+ //# sourceMappingURL=chunk-YC6Z75K2.js.map