@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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkD6HO5QAM_cjs = require('./chunk-D6HO5QAM.cjs');
3
+ var chunkM26GEN4C_cjs = require('./chunk-M26GEN4C.cjs');
4
4
  var chunkRO47SMI7_cjs = require('./chunk-RO47SMI7.cjs');
5
5
  var chunk7XAECHYL_cjs = require('./chunk-7XAECHYL.cjs');
6
6
  var nodePath = require('path');
@@ -13,10 +13,9 @@ var module$1 = require('module');
13
13
  var url = require('url');
14
14
  var child_process = require('child_process');
15
15
  var crypto = require('crypto');
16
- var execa = require('execa');
17
16
  var stream = require('stream');
18
17
  var matter = require('gray-matter');
19
- var zod = require('zod');
18
+ var z = require('zod');
20
19
  var ignore = require('ignore');
21
20
 
22
21
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -47,6 +46,7 @@ var os3__namespace = /*#__PURE__*/_interopNamespace(os3);
47
46
  var picomatch__default = /*#__PURE__*/_interopDefault(picomatch);
48
47
  var crypto__namespace = /*#__PURE__*/_interopNamespace(crypto);
49
48
  var matter__default = /*#__PURE__*/_interopDefault(matter);
49
+ var z__default = /*#__PURE__*/_interopDefault(z);
50
50
  var ignore__default = /*#__PURE__*/_interopDefault(ignore);
51
51
 
52
52
  // src/workspace/errors.ts
@@ -1596,7 +1596,7 @@ function isLSPAvailable() {
1596
1596
  return jsonrpcModule !== null;
1597
1597
  }
1598
1598
  try {
1599
- const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-4P35AVPE.cjs', document.baseURI).href)));
1599
+ const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-MEMYFFOL.cjs', document.baseURI).href)));
1600
1600
  req.resolve("vscode-jsonrpc/node");
1601
1601
  req.resolve("vscode-languageserver-protocol");
1602
1602
  return true;
@@ -1610,7 +1610,7 @@ async function loadLSPDeps() {
1610
1610
  return { ...jsonrpcModule, ...lspProtocolModule };
1611
1611
  }
1612
1612
  try {
1613
- const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-4P35AVPE.cjs', document.baseURI).href)));
1613
+ const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-MEMYFFOL.cjs', document.baseURI).href)));
1614
1614
  const jsonrpc = req("vscode-jsonrpc/node");
1615
1615
  const protocol = req("vscode-languageserver-protocol");
1616
1616
  jsonrpcModule = {
@@ -2346,6 +2346,35 @@ var FilesystemNotMountableError = class extends SandboxError {
2346
2346
  this.name = "FilesystemNotMountableError";
2347
2347
  }
2348
2348
  };
2349
+
2350
+ // src/workspace/sandbox/execa.ts
2351
+ var cached;
2352
+ var loading;
2353
+ async function getExeca() {
2354
+ if (cached) {
2355
+ return cached;
2356
+ }
2357
+ if (!loading) {
2358
+ loading = (async () => {
2359
+ try {
2360
+ const mod = "execa";
2361
+ const execa = (await import(
2362
+ /* @vite-ignore */
2363
+ /* webpackIgnore: true */
2364
+ mod
2365
+ )).execa;
2366
+ cached = execa;
2367
+ return execa;
2368
+ } catch (err) {
2369
+ throw new Error(
2370
+ "execa is required for local process execution but is not available in this environment. LocalProcessManager is not supported in Cloudflare Workers or other non-Node runtimes.",
2371
+ { cause: err }
2372
+ );
2373
+ }
2374
+ })();
2375
+ }
2376
+ return loading;
2377
+ }
2349
2378
  var ProcessHandle = class {
2350
2379
  /** The command that was spawned (set by the process manager) */
2351
2380
  command;
@@ -2627,7 +2656,8 @@ var LocalProcessManager = class extends SandboxProcessManager {
2627
2656
  // Don't extend process.env — the sandbox controls the full environment via buildEnv().
2628
2657
  extendEnv: false
2629
2658
  };
2630
- const subprocess = execa.execa(wrapped.command, wrapped.args, execaOptions);
2659
+ const execa = await getExeca();
2660
+ const subprocess = execa(wrapped.command, wrapped.args, execaOptions);
2631
2661
  if (!subprocess.pid) {
2632
2662
  const result = await subprocess;
2633
2663
  throw new Error(result.message || "Process failed to spawn");
@@ -5826,6 +5856,116 @@ async function publishSkillFromSource(source, skillPath, blobStore) {
5826
5856
  await blobStore.putMany(result.blobs);
5827
5857
  return result;
5828
5858
  }
5859
+ function createSkillTools(skills) {
5860
+ return {
5861
+ skill: createSkillTool(skills),
5862
+ skill_search: createSkillSearchTool(skills),
5863
+ skill_read: createSkillReadTool(skills)
5864
+ };
5865
+ }
5866
+ function createSkillTool(skills) {
5867
+ const tool = chunkM26GEN4C_cjs.createTool({
5868
+ id: "skill",
5869
+ 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.",
5870
+ inputSchema: z__default.default.object({
5871
+ name: z__default.default.string().describe("The name of the skill to activate")
5872
+ }),
5873
+ execute: async ({ name }) => {
5874
+ const skill = await skills.get(name);
5875
+ if (!skill) {
5876
+ const skillsList = await skills.list();
5877
+ const skillNames = skillsList.map((s) => s.name);
5878
+ return `Skill "${name}" not found. Available skills: ${skillNames.join(", ")}`;
5879
+ }
5880
+ const parts = [skill.instructions];
5881
+ if (skill.references?.length) {
5882
+ parts.push(`
5883
+
5884
+ ## References
5885
+ ${skill.references.map((r) => `- references/${r}`).join("\n")}`);
5886
+ }
5887
+ if (skill.scripts?.length) {
5888
+ parts.push(`
5889
+
5890
+ ## Scripts
5891
+ ${skill.scripts.map((s) => `- scripts/${s}`).join("\n")}`);
5892
+ }
5893
+ if (skill.assets?.length) {
5894
+ parts.push(`
5895
+
5896
+ ## Assets
5897
+ ${skill.assets.map((a) => `- assets/${a}`).join("\n")}`);
5898
+ }
5899
+ return parts.join("");
5900
+ }
5901
+ });
5902
+ return tool;
5903
+ }
5904
+ function createSkillSearchTool(skills) {
5905
+ const tool = chunkM26GEN4C_cjs.createTool({
5906
+ id: "skill_search",
5907
+ description: "Search across skill content to find relevant information. Useful when you need to find specific details within skills.",
5908
+ inputSchema: z__default.default.object({
5909
+ query: z__default.default.string().describe("The search query"),
5910
+ skillNames: z__default.default.array(z__default.default.string()).optional().describe("Optional list of skill names to search within"),
5911
+ topK: z__default.default.number().optional().describe("Maximum number of results to return (default: 5)")
5912
+ }),
5913
+ execute: async ({ query, skillNames, topK }) => {
5914
+ const results = await skills.search(query, { topK, skillNames });
5915
+ if (results.length === 0) {
5916
+ return "No results found.";
5917
+ }
5918
+ return results.map((r) => {
5919
+ const preview = r.content.substring(0, 200) + (r.content.length > 200 ? "..." : "");
5920
+ const location = r.lineRange ? ` (lines ${r.lineRange.start}-${r.lineRange.end})` : "";
5921
+ return `[${r.skillName}]${location} (score: ${r.score.toFixed(2)})
5922
+ ${preview}`;
5923
+ }).join("\n\n");
5924
+ }
5925
+ });
5926
+ return tool;
5927
+ }
5928
+ function createSkillReadTool(skills) {
5929
+ const tool = chunkM26GEN4C_cjs.createTool({
5930
+ id: "skill_read",
5931
+ description: "Read a file from a skill directory (references, scripts, or assets). The path is relative to the skill root.",
5932
+ inputSchema: z__default.default.object({
5933
+ skillName: z__default.default.string().describe("The name of the skill"),
5934
+ path: z__default.default.string().describe('Path to the file relative to the skill root (e.g. "references/colors.md", "scripts/run.sh")'),
5935
+ startLine: z__default.default.number().optional().describe("Starting line number (1-indexed). If omitted, starts from the beginning."),
5936
+ endLine: z__default.default.number().optional().describe("Ending line number (1-indexed, inclusive). If omitted, reads to the end.")
5937
+ }),
5938
+ execute: async ({ skillName, path: path7, startLine, endLine }) => {
5939
+ if (!await skills.has(skillName)) {
5940
+ return `Skill "${skillName}" not found.`;
5941
+ }
5942
+ let content = null;
5943
+ content = await skills.getReference(skillName, path7);
5944
+ if (content === null) content = await skills.getScript(skillName, path7);
5945
+ if (content === null) content = await skills.getAsset(skillName, path7);
5946
+ if (content === null) {
5947
+ const refs = (await skills.listReferences(skillName)).map((f) => `references/${f}`);
5948
+ const scripts = (await skills.listScripts(skillName)).map((f) => `scripts/${f}`);
5949
+ const assets = (await skills.listAssets(skillName)).map((f) => `assets/${f}`);
5950
+ const allFiles = [...refs, ...scripts, ...assets];
5951
+ const fileList = allFiles.length > 0 ? `
5952
+ Available files: ${allFiles.join(", ")}` : "";
5953
+ return `File "${path7}" not found in skill "${skillName}".${fileList}`;
5954
+ }
5955
+ const textContent = typeof content === "string" ? content : content.toString("utf-8");
5956
+ if (textContent.slice(0, 1e3).includes("\0")) {
5957
+ const skill = await skills.get(skillName);
5958
+ const fullPath = skill ? `${skill.path}/${path7}` : path7;
5959
+ const size = typeof content === "string" ? Buffer.byteLength(content) : content.length;
5960
+ return `Binary file: ${fullPath} (${size} bytes)`;
5961
+ }
5962
+ content = textContent;
5963
+ const result = extractLines(content, startLine, endLine);
5964
+ return result.content;
5965
+ }
5966
+ });
5967
+ return tool;
5968
+ }
5829
5969
 
5830
5970
  // src/workspace/workspace.ts
5831
5971
  var Workspace = class {
@@ -6467,6 +6607,7 @@ async function loadAstGrep() {
6467
6607
  try {
6468
6608
  const moduleName = "@ast-grep/napi";
6469
6609
  const mod = await import(
6610
+ /* @vite-ignore */
6470
6611
  /* webpackIgnore: true */
6471
6612
  moduleName
6472
6613
  );
@@ -6485,7 +6626,7 @@ function isAstGrepAvailable() {
6485
6626
  return astGrepModule !== null;
6486
6627
  }
6487
6628
  try {
6488
- const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-4P35AVPE.cjs', document.baseURI).href)));
6629
+ const req = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-MEMYFFOL.cjs', document.baseURI).href)));
6489
6630
  req.resolve("@ast-grep/napi");
6490
6631
  return true;
6491
6632
  } catch {
@@ -6653,7 +6794,7 @@ function patternReplace(content, root, pattern, replacement) {
6653
6794
  }
6654
6795
  return { content: modifiedContent, count };
6655
6796
  }
6656
- var astEditTool = chunkD6HO5QAM_cjs.createTool({
6797
+ var astEditTool = chunkM26GEN4C_cjs.createTool({
6657
6798
  id: WORKSPACE_TOOLS.FILESYSTEM.AST_EDIT,
6658
6799
  description: `Edit code using AST-based analysis for intelligent transformations.
6659
6800
 
@@ -6671,17 +6812,17 @@ Transforms:
6671
6812
 
6672
6813
  Pattern replace (for everything else):
6673
6814
  { pattern: "console.log($ARG)", replacement: "logger.debug($ARG)" }`,
6674
- inputSchema: zod.z.object({
6675
- path: zod.z.string().describe("The path to the file to edit"),
6676
- pattern: zod.z.string().optional().describe('AST pattern to search for (supports $VARIABLE placeholders, e.g., "console.log($ARG)")'),
6677
- replacement: zod.z.string().optional().describe('Replacement pattern (can use captured $VARIABLES, e.g., "logger.debug($ARG)")'),
6678
- transform: zod.z.enum(["add-import", "remove-import", "rename"]).optional().describe("Structured transformation to apply"),
6679
- targetName: zod.z.string().optional().describe("Required for remove-import and rename transforms. The current name to target."),
6680
- newName: zod.z.string().optional().describe("Required for rename transform. The new name to replace targetName with."),
6681
- importSpec: zod.z.object({
6682
- module: zod.z.string().describe("Module to import from"),
6683
- names: zod.z.array(zod.z.string()).min(1).describe("Names to import. For default imports, put the default name first."),
6684
- isDefault: zod.z.boolean().optional().describe("Whether the first name is a default import")
6815
+ inputSchema: z.z.object({
6816
+ path: z.z.string().describe("The path to the file to edit"),
6817
+ pattern: z.z.string().optional().describe('AST pattern to search for (supports $VARIABLE placeholders, e.g., "console.log($ARG)")'),
6818
+ replacement: z.z.string().optional().describe('Replacement pattern (can use captured $VARIABLES, e.g., "logger.debug($ARG)")'),
6819
+ transform: z.z.enum(["add-import", "remove-import", "rename"]).optional().describe("Structured transformation to apply"),
6820
+ targetName: z.z.string().optional().describe("Required for remove-import and rename transforms. The current name to target."),
6821
+ newName: z.z.string().optional().describe("Required for rename transform. The new name to replace targetName with."),
6822
+ importSpec: z.z.object({
6823
+ module: z.z.string().describe("Module to import from"),
6824
+ names: z.z.array(z.z.string()).min(1).describe("Names to import. For default imports, put the default name first."),
6825
+ isDefault: z.z.boolean().optional().describe("Whether the first name is a default import")
6685
6826
  }).optional().describe("Required for add-import transform. Specifies the module and names to import.")
6686
6827
  }),
6687
6828
  execute: async ({ path: path7, pattern, replacement, transform, targetName, newName, importSpec }, context) => {
@@ -6769,12 +6910,12 @@ Pattern replace (for everything else):
6769
6910
  return output;
6770
6911
  }
6771
6912
  });
6772
- var deleteFileTool = chunkD6HO5QAM_cjs.createTool({
6913
+ var deleteFileTool = chunkM26GEN4C_cjs.createTool({
6773
6914
  id: WORKSPACE_TOOLS.FILESYSTEM.DELETE,
6774
6915
  description: "Delete a file or directory from the workspace filesystem",
6775
- inputSchema: zod.z.object({
6776
- path: zod.z.string().describe("The path to the file or directory to delete"),
6777
- recursive: zod.z.boolean().optional().default(false).describe("If true, delete directories and their contents recursively. Required for non-empty directories.")
6916
+ inputSchema: z.z.object({
6917
+ path: z.z.string().describe("The path to the file or directory to delete"),
6918
+ recursive: z.z.boolean().optional().default(false).describe("If true, delete directories and their contents recursively. Required for non-empty directories.")
6778
6919
  }),
6779
6920
  execute: async ({ path: path7, recursive }, context) => {
6780
6921
  const { filesystem } = requireFilesystem(context);
@@ -6791,7 +6932,7 @@ var deleteFileTool = chunkD6HO5QAM_cjs.createTool({
6791
6932
  return `Deleted ${path7}`;
6792
6933
  }
6793
6934
  });
6794
- var editFileTool = chunkD6HO5QAM_cjs.createTool({
6935
+ var editFileTool = chunkM26GEN4C_cjs.createTool({
6795
6936
  id: WORKSPACE_TOOLS.FILESYSTEM.EDIT_FILE,
6796
6937
  description: `Edit a file by replacing specific text. The old_string must match exactly and be unique in the file.
6797
6938
 
@@ -6800,11 +6941,11 @@ Usage:
6800
6941
  - By default, read file output includes line number prefixes (e.g., " 1\u2192"). Ensure you preserve the exact indentation as it appears AFTER the arrow. Never include any part of the line number prefix in old_string or new_string.
6801
6942
  - Include enough surrounding context (multiple lines) to make old_string unique. If it still isn't unique, include more lines.
6802
6943
  - Use replace_all only when intentionally replacing all occurrences.`,
6803
- inputSchema: zod.z.object({
6804
- path: zod.z.string().describe("The path to the file to edit"),
6805
- old_string: zod.z.string().describe("The exact text to find and replace. Must be unique in the file."),
6806
- new_string: zod.z.string().describe("The text to replace old_string with"),
6807
- replace_all: zod.z.boolean().optional().default(false).describe("If true, replace all occurrences. If false (default), old_string must be unique.")
6944
+ inputSchema: z.z.object({
6945
+ path: z.z.string().describe("The path to the file to edit"),
6946
+ old_string: z.z.string().describe("The exact text to find and replace. Must be unique in the file."),
6947
+ new_string: z.z.string().describe("The text to replace old_string with"),
6948
+ replace_all: z.z.boolean().optional().default(false).describe("If true, replace all occurrences. If false (default), old_string must be unique.")
6808
6949
  }),
6809
6950
  execute: async ({ path: path7, old_string, new_string, replace_all }, context) => {
6810
6951
  const { workspace, filesystem } = requireFilesystem(context);
@@ -6837,8 +6978,8 @@ Usage:
6837
6978
  // src/utils/tiktoken.ts
6838
6979
  var GLOBAL_KEY = "__mastraTiktoken";
6839
6980
  async function getTiktoken() {
6840
- const cached = globalThis[GLOBAL_KEY];
6841
- if (cached) return cached;
6981
+ const cached2 = globalThis[GLOBAL_KEY];
6982
+ if (cached2) return cached2;
6842
6983
  const { Tiktoken: TiktokenClass } = await import('js-tiktoken/lite');
6843
6984
  const o200k_base = (await import('js-tiktoken/ranks/o200k_base')).default;
6844
6985
  const enc = new TiktokenClass(o200k_base);
@@ -6871,71 +7012,28 @@ function applyTail(output, tail) {
6871
7012
  return `[showing last ${n} of ${lines.length} lines]
6872
7013
  ${body}`;
6873
7014
  }
6874
- async function countTokens(output) {
6875
- const tiktoken = await getTiktoken();
6876
- return tiktoken.encode(output, "all").length;
6877
- }
6878
7015
  async function applyTokenLimit(output, limit = DEFAULT_MAX_OUTPUT_TOKENS, from = "start") {
6879
7016
  if (!output) return output;
6880
- const tokens = await countTokens(output);
6881
- if (tokens <= limit) return output;
6882
- const trailingNewline = output.endsWith("\n");
6883
- const lines = (trailingNewline ? output.slice(0, -1) : output).split("\n");
6884
- const kept = [];
6885
- let keptTokens = 0;
6886
- if (from === "start") {
6887
- for (let i = lines.length - 1; i >= 0; i--) {
6888
- const lineTokens = await countTokens(lines[i]);
6889
- if (keptTokens + lineTokens > limit && kept.length > 0) break;
6890
- kept.unshift(lines[i]);
6891
- keptTokens += lineTokens;
6892
- }
6893
- } else {
6894
- for (let i = 0; i < lines.length; i++) {
6895
- const lineTokens = await countTokens(lines[i]);
6896
- if (keptTokens + lineTokens > limit && kept.length > 0) break;
6897
- kept.push(lines[i]);
6898
- keptTokens += lineTokens;
6899
- }
6900
- }
6901
- if (kept.length >= lines.length) return output;
6902
- const body = kept.join("\n") + (trailingNewline && from === "start" ? "\n" : "");
7017
+ const tiktoken = await getTiktoken();
7018
+ const allTokens = tiktoken.encode(output, "all");
7019
+ if (allTokens.length <= limit) return output;
7020
+ const kept = from === "start" ? tiktoken.decode(allTokens.slice(-limit)) : tiktoken.decode(allTokens.slice(0, limit));
6903
7021
  const position = from === "start" ? "last" : "first";
6904
- return from === "start" ? `[output truncated: showing ${position} ~${keptTokens} of ~${tokens} tokens]
6905
- ${body}` : `${body}
6906
- [output truncated: showing ${position} ~${keptTokens} of ~${tokens} tokens]`;
7022
+ return from === "start" ? `[output truncated: showing ${position} ~${limit} of ~${allTokens.length} tokens]
7023
+ ${kept}` : `${kept}
7024
+ [output truncated: showing ${position} ~${limit} of ~${allTokens.length} tokens]`;
6907
7025
  }
6908
7026
  async function applyTokenLimitSandwich(output, limit = DEFAULT_MAX_OUTPUT_TOKENS, headRatio = 0.1) {
6909
7027
  if (!output) return output;
6910
- const tokens = await countTokens(output);
6911
- if (tokens <= limit) return output;
6912
- const trailingNewline = output.endsWith("\n");
6913
- const lines = (trailingNewline ? output.slice(0, -1) : output).split("\n");
7028
+ const tiktoken = await getTiktoken();
7029
+ const allTokens = tiktoken.encode(output, "all");
7030
+ if (allTokens.length <= limit) return output;
6914
7031
  const headBudget = Math.floor(limit * headRatio);
6915
7032
  const tailBudget = limit - headBudget;
6916
- const headLines = [];
6917
- let headTokens = 0;
6918
- for (let i = 0; i < lines.length; i++) {
6919
- const lineTokens = await countTokens(lines[i]);
6920
- if (headTokens + lineTokens > headBudget && headLines.length > 0) break;
6921
- headLines.push(lines[i]);
6922
- headTokens += lineTokens;
6923
- }
6924
- const tailLines = [];
6925
- let tailTokens = 0;
6926
- for (let i = lines.length - 1; i >= headLines.length; i--) {
6927
- const lineTokens = await countTokens(lines[i]);
6928
- if (tailTokens + lineTokens > tailBudget && tailLines.length > 0) break;
6929
- tailLines.unshift(lines[i]);
6930
- tailTokens += lineTokens;
6931
- }
6932
- if (headLines.length + tailLines.length >= lines.length) return output;
6933
- const omitted = lines.length - headLines.length - tailLines.length;
6934
- const head = headLines.join("\n");
6935
- const tail = tailLines.join("\n") + (trailingNewline ? "\n" : "");
6936
- return `${head}
6937
- [...${omitted} lines truncated \u2014 showing first ~${headTokens} + last ~${tailTokens} of ~${tokens} tokens...]
6938
- ${tail}`;
7033
+ const head = headBudget > 0 ? tiktoken.decode(allTokens.slice(0, headBudget)) : "";
7034
+ const tail = tailBudget > 0 ? tiktoken.decode(allTokens.slice(-tailBudget)) : "";
7035
+ const notice = `[...output truncated \u2014 showing first ~${headBudget} + last ~${tailBudget} of ~${allTokens.length} tokens...]`;
7036
+ return [head, notice, tail].filter(Boolean).join("\n");
6939
7037
  }
6940
7038
  async function truncateOutput(output, tail, tokenLimit, tokenFrom) {
6941
7039
  const tailed = applyTail(output, tail);
@@ -6945,16 +7043,16 @@ async function truncateOutput(output, tail, tokenLimit, tokenFrom) {
6945
7043
  }
6946
7044
 
6947
7045
  // src/workspace/tools/execute-command.ts
6948
- var executeCommandInputSchema = zod.z.object({
6949
- command: zod.z.string().describe('The shell command to execute (e.g., "npm install", "ls -la src/", "cat file.txt | grep error")'),
6950
- timeout: zod.z.number().nullish().describe("Maximum execution time in milliseconds. Example: 60000 for 1 minute."),
6951
- cwd: zod.z.string().nullish().describe("Working directory for the command"),
6952
- tail: zod.z.number().nullish().describe(
7046
+ var executeCommandInputSchema = z.z.object({
7047
+ command: z.z.string().describe('The shell command to execute (e.g., "npm install", "ls -la src/", "cat file.txt | grep error")'),
7048
+ timeout: z.z.number().nullish().describe("Maximum execution time in seconds. Example: 60 for 1 minute."),
7049
+ cwd: z.z.string().nullish().describe("Working directory for the command"),
7050
+ tail: z.z.number().nullish().describe(
6953
7051
  `For foreground commands: limit output to the last N lines, similar to tail -n. Defaults to ${DEFAULT_TAIL_LINES}. Use 0 for no limit.`
6954
7052
  )
6955
7053
  });
6956
7054
  var executeCommandWithBackgroundSchema = executeCommandInputSchema.extend({
6957
- background: zod.z.boolean().optional().describe(
7055
+ background: z.z.boolean().optional().describe(
6958
7056
  "Run the command in the background. Returns a PID immediately instead of waiting for completion. Use get_process_output to check on it later."
6959
7057
  )
6960
7058
  });
@@ -6972,7 +7070,8 @@ function extractTailPipe(command) {
6972
7070
  return { command };
6973
7071
  }
6974
7072
  async function executeCommand(input, context) {
6975
- let { command, timeout, cwd, tail } = input;
7073
+ let { command, cwd, tail } = input;
7074
+ const timeout = input.timeout != null ? input.timeout * 1e3 : void 0;
6976
7075
  const background = input.background;
6977
7076
  const { workspace, sandbox } = requireSandbox(context);
6978
7077
  if (!background) {
@@ -7088,16 +7187,16 @@ Examples:
7088
7187
  Usage:
7089
7188
  - Commands run in a shell, so pipes, redirects, and chaining (&&, ||, ;) all work.
7090
7189
  - Always quote file paths that contain spaces (e.g., cd "/path/with spaces").
7091
- - Use the timeout parameter to limit execution time. Behavior when omitted depends on the sandbox provider.
7190
+ - Use the timeout parameter (in seconds) to limit execution time. Behavior when omitted depends on the sandbox provider.
7092
7191
  - Optionally use cwd to override the working directory. Commands run from the sandbox default if omitted.`;
7093
- var executeCommandTool = chunkD6HO5QAM_cjs.createTool({
7192
+ var executeCommandTool = chunkM26GEN4C_cjs.createTool({
7094
7193
  id: WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND,
7095
7194
  description: baseDescription,
7096
7195
  inputSchema: executeCommandInputSchema,
7097
7196
  execute: executeCommand,
7098
7197
  toModelOutput: sandboxToModelOutput
7099
7198
  });
7100
- var executeCommandWithBackgroundTool = chunkD6HO5QAM_cjs.createTool({
7199
+ var executeCommandWithBackgroundTool = chunkM26GEN4C_cjs.createTool({
7101
7200
  id: WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND,
7102
7201
  description: `${baseDescription}
7103
7202
 
@@ -7106,11 +7205,11 @@ Set background: true to run long-running commands (dev servers, watchers) withou
7106
7205
  execute: executeCommand,
7107
7206
  toModelOutput: sandboxToModelOutput
7108
7207
  });
7109
- var fileStatTool = chunkD6HO5QAM_cjs.createTool({
7208
+ var fileStatTool = chunkM26GEN4C_cjs.createTool({
7110
7209
  id: WORKSPACE_TOOLS.FILESYSTEM.FILE_STAT,
7111
7210
  description: "Get file or directory metadata from the workspace. Returns existence, type, size, and modification time.",
7112
- inputSchema: zod.z.object({
7113
- path: zod.z.string().describe("The path to check")
7211
+ inputSchema: z.z.object({
7212
+ path: z.z.string().describe("The path to check")
7114
7213
  }),
7115
7214
  execute: async ({ path: path7 }, context) => {
7116
7215
  const { filesystem } = requireFilesystem(context);
@@ -7130,18 +7229,18 @@ var fileStatTool = chunkD6HO5QAM_cjs.createTool({
7130
7229
  }
7131
7230
  }
7132
7231
  });
7133
- var getProcessOutputTool = chunkD6HO5QAM_cjs.createTool({
7232
+ var getProcessOutputTool = chunkM26GEN4C_cjs.createTool({
7134
7233
  id: WORKSPACE_TOOLS.SANDBOX.GET_PROCESS_OUTPUT,
7135
7234
  description: `Get the current output (stdout, stderr) and status of a background process by its PID.
7136
7235
 
7137
7236
  Use this after starting a background command with execute_command (background: true) to check if the process is still running and read its output.`,
7138
7237
  toModelOutput: sandboxToModelOutput,
7139
- inputSchema: zod.z.object({
7140
- pid: zod.z.number().describe("The process ID returned when the background command was started"),
7141
- tail: zod.z.number().optional().describe(
7238
+ inputSchema: z.z.object({
7239
+ pid: z.z.number().describe("The process ID returned when the background command was started"),
7240
+ tail: z.z.number().optional().describe(
7142
7241
  `Number of lines to return, similar to tail -n. Positive or negative returns last N lines from end. Defaults to ${DEFAULT_TAIL_LINES}. Use 0 for no limit.`
7143
7242
  ),
7144
- wait: zod.z.boolean().optional().describe(
7243
+ wait: z.z.boolean().optional().describe(
7145
7244
  "If true, block until the process exits and return the final output. Useful for short-lived background commands where you want to wait for the result."
7146
7245
  )
7147
7246
  }),
@@ -7226,7 +7325,7 @@ async function loadGitignore(filesystem) {
7226
7325
  }
7227
7326
 
7228
7327
  // src/workspace/tools/grep.ts
7229
- var grepTool = chunkD6HO5QAM_cjs.createTool({
7328
+ var grepTool = chunkM26GEN4C_cjs.createTool({
7230
7329
  id: WORKSPACE_TOOLS.FILESYSTEM.GREP,
7231
7330
  description: `Search file contents using a regex pattern. Walks the filesystem and returns matching lines with file paths and line numbers.
7232
7331
 
@@ -7241,17 +7340,17 @@ Usage:
7241
7340
  - Multiple file types: { pattern: "import", path: "**/*.{ts,tsx,js}" }
7242
7341
  - Multiple directories: { pattern: "TODO", path: "{src,lib}/**/*.ts" }
7243
7342
  - With context: { pattern: "function", contextLines: 2 }`,
7244
- inputSchema: zod.z.object({
7245
- pattern: zod.z.string().describe("Regex pattern to search for"),
7246
- path: zod.z.string().optional().default("./").describe(
7343
+ inputSchema: z.z.object({
7344
+ pattern: z.z.string().describe("Regex pattern to search for"),
7345
+ path: z.z.string().optional().default("./").describe(
7247
7346
  'File, directory, or glob pattern to search within (default: "./"). A plain path searches that file or directory. A glob pattern (e.g., "**/*.ts", "src/**/*.test.ts") filters which files to search.'
7248
7347
  ),
7249
- contextLines: zod.z.number().optional().default(0).describe("Number of lines of context to include before and after each match (default: 0)"),
7250
- maxCount: zod.z.number().optional().describe(
7348
+ contextLines: z.z.number().optional().default(0).describe("Number of lines of context to include before and after each match (default: 0)"),
7349
+ maxCount: z.z.number().optional().describe(
7251
7350
  "Maximum matches per file. Moves on to the next file after this many matches. Similar to grep -m flag."
7252
7351
  ),
7253
- caseSensitive: zod.z.boolean().optional().default(true).describe("Whether the search is case-sensitive (default: true)"),
7254
- includeHidden: zod.z.boolean().optional().default(false).describe('Include hidden files and directories (names starting with ".") in the search (default: false)')
7352
+ caseSensitive: z.z.boolean().optional().default(true).describe("Whether the search is case-sensitive (default: true)"),
7353
+ includeHidden: z.z.boolean().optional().default(false).describe('Include hidden files and directories (names starting with ".") in the search (default: false)')
7255
7354
  }),
7256
7355
  execute: async ({ pattern, path: inputPath = "./", contextLines = 0, maxCount, caseSensitive = true, includeHidden = false }, context) => {
7257
7356
  const { workspace, filesystem } = requireFilesystem(context);
@@ -7380,13 +7479,13 @@ Usage:
7380
7479
  );
7381
7480
  }
7382
7481
  });
7383
- var indexContentTool = chunkD6HO5QAM_cjs.createTool({
7482
+ var indexContentTool = chunkM26GEN4C_cjs.createTool({
7384
7483
  id: WORKSPACE_TOOLS.SEARCH.INDEX,
7385
7484
  description: "Index content for search. The path becomes the document ID in search results.",
7386
- inputSchema: zod.z.object({
7387
- path: zod.z.string().describe("The document ID/path for search results"),
7388
- content: zod.z.string().describe("The text content to index"),
7389
- metadata: zod.z.record(zod.z.unknown()).optional().describe("Optional metadata to store with the document")
7485
+ inputSchema: z.z.object({
7486
+ path: z.z.string().describe("The document ID/path for search results"),
7487
+ content: z.z.string().describe("The text content to index"),
7488
+ metadata: z.z.record(z.z.unknown()).optional().describe("Optional metadata to store with the document")
7390
7489
  }),
7391
7490
  execute: async ({ path: path7, content, metadata }, context) => {
7392
7491
  const workspace = requireWorkspace(context);
@@ -7396,14 +7495,14 @@ var indexContentTool = chunkD6HO5QAM_cjs.createTool({
7396
7495
  }
7397
7496
  });
7398
7497
  var KILL_TAIL_LINES = 50;
7399
- var killProcessTool = chunkD6HO5QAM_cjs.createTool({
7498
+ var killProcessTool = chunkM26GEN4C_cjs.createTool({
7400
7499
  id: WORKSPACE_TOOLS.SANDBOX.KILL_PROCESS,
7401
7500
  description: `Kill a background process by its PID.
7402
7501
 
7403
7502
  Use this to stop a long-running background process that was started with execute_command (background: true). Returns the last ${KILL_TAIL_LINES} lines of output.`,
7404
7503
  toModelOutput: sandboxToModelOutput,
7405
- inputSchema: zod.z.object({
7406
- pid: zod.z.number().describe("The process ID of the background process to kill")
7504
+ inputSchema: z.z.object({
7505
+ pid: z.z.number().describe("The process ID of the background process to kill")
7407
7506
  }),
7408
7507
  execute: async ({ pid }, context) => {
7409
7508
  const { workspace, sandbox } = requireSandbox(context);
@@ -7580,7 +7679,7 @@ function joinPath2(base, name) {
7580
7679
  }
7581
7680
 
7582
7681
  // src/workspace/tools/list-files.ts
7583
- var listFilesTool = chunkD6HO5QAM_cjs.createTool({
7682
+ var listFilesTool = chunkM26GEN4C_cjs.createTool({
7584
7683
  id: WORKSPACE_TOOLS.FILESYSTEM.LIST_FILES,
7585
7684
  description: `List files and directories in the workspace filesystem.
7586
7685
  Returns a compact tab-indented listing for efficient token usage.
@@ -7594,17 +7693,17 @@ Examples:
7594
7693
  - Find TypeScript files: { path: "./src", pattern: "**/*.ts" }
7595
7694
  - Find config files: { path: "./", pattern: "*.config.{js,ts}" }
7596
7695
  - Multiple patterns: { path: "./", pattern: ["**/*.ts", "**/*.tsx"] }`,
7597
- inputSchema: zod.z.object({
7598
- path: zod.z.string().default("./").describe("Directory path to list"),
7599
- maxDepth: zod.z.number().optional().default(2).describe("Maximum depth to descend (default: 2). Similar to tree -L flag."),
7600
- showHidden: zod.z.boolean().optional().default(false).describe('Show hidden files starting with "." (default: false). Similar to tree -a flag.'),
7601
- dirsOnly: zod.z.boolean().optional().default(false).describe("List directories only, no files (default: false). Similar to tree -d flag."),
7602
- exclude: zod.z.string().optional().describe('Pattern to exclude (e.g., "node_modules"). Similar to tree -I flag.'),
7603
- extension: zod.z.string().optional().describe('Filter by file extension (e.g., ".ts"). Similar to tree -P flag.'),
7604
- pattern: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe(
7696
+ inputSchema: z.z.object({
7697
+ path: z.z.string().default("./").describe("Directory path to list"),
7698
+ maxDepth: z.z.number().optional().default(2).describe("Maximum depth to descend (default: 2). Similar to tree -L flag."),
7699
+ showHidden: z.z.boolean().optional().default(false).describe('Show hidden files starting with "." (default: false). Similar to tree -a flag.'),
7700
+ dirsOnly: z.z.boolean().optional().default(false).describe("List directories only, no files (default: false). Similar to tree -d flag."),
7701
+ exclude: z.z.string().optional().describe('Pattern to exclude (e.g., "node_modules"). Similar to tree -I flag.'),
7702
+ extension: z.z.string().optional().describe('Filter by file extension (e.g., ".ts"). Similar to tree -P flag.'),
7703
+ pattern: z.z.union([z.z.string(), z.z.array(z.z.string())]).optional().describe(
7605
7704
  'Glob pattern(s) to filter files. Examples: "**/*.ts", "src/**/*.test.ts", "*.config.{js,ts}". Directories always pass through.'
7606
7705
  ),
7607
- respectGitignore: zod.z.boolean().optional().default(true).describe("Respect .gitignore in the listed directory (default: true).")
7706
+ respectGitignore: z.z.boolean().optional().default(true).describe("Respect .gitignore in the listed directory (default: true).")
7608
7707
  }),
7609
7708
  execute: async ({ path: path7 = "./", maxDepth = 2, showHidden, dirsOnly, exclude, extension, pattern, respectGitignore }, context) => {
7610
7709
  const { workspace, filesystem } = requireFilesystem(context);
@@ -7627,12 +7726,12 @@ ${result.summary}`,
7627
7726
  );
7628
7727
  }
7629
7728
  });
7630
- var mkdirTool = chunkD6HO5QAM_cjs.createTool({
7729
+ var mkdirTool = chunkM26GEN4C_cjs.createTool({
7631
7730
  id: WORKSPACE_TOOLS.FILESYSTEM.MKDIR,
7632
7731
  description: "Create a directory in the workspace filesystem",
7633
- inputSchema: zod.z.object({
7634
- path: zod.z.string().describe("The path of the directory to create"),
7635
- recursive: zod.z.boolean().optional().default(true).describe("Whether to create parent directories if they do not exist")
7732
+ inputSchema: z.z.object({
7733
+ path: z.z.string().describe("The path of the directory to create"),
7734
+ recursive: z.z.boolean().optional().default(true).describe("Whether to create parent directories if they do not exist")
7636
7735
  }),
7637
7736
  execute: async ({ path: path7, recursive }, context) => {
7638
7737
  const { filesystem } = requireFilesystem(context);
@@ -7644,15 +7743,15 @@ var mkdirTool = chunkD6HO5QAM_cjs.createTool({
7644
7743
  return `Created directory ${path7}`;
7645
7744
  }
7646
7745
  });
7647
- var readFileTool = chunkD6HO5QAM_cjs.createTool({
7746
+ var readFileTool = chunkM26GEN4C_cjs.createTool({
7648
7747
  id: WORKSPACE_TOOLS.FILESYSTEM.READ_FILE,
7649
7748
  description: "Read the contents of a file from the workspace filesystem. Use offset/limit parameters to read specific line ranges for large files.",
7650
- inputSchema: zod.z.object({
7651
- path: zod.z.string().describe('The path to the file to read (e.g., "/data/config.json")'),
7652
- encoding: zod.z.enum(["utf-8", "utf8", "base64", "hex", "binary"]).optional().describe("The encoding to use when reading the file. Defaults to utf-8 for text files."),
7653
- offset: zod.z.number().optional().describe("Line number to start reading from (1-indexed). If omitted, starts from line 1."),
7654
- limit: zod.z.number().optional().describe("Maximum number of lines to read. If omitted, reads to the end of the file."),
7655
- showLineNumbers: zod.z.boolean().optional().default(true).describe("Whether to prefix each line with its line number (default: true)")
7749
+ inputSchema: z.z.object({
7750
+ path: z.z.string().describe('The path to the file to read (e.g., "/data/config.json")'),
7751
+ encoding: z.z.enum(["utf-8", "utf8", "base64", "hex", "binary"]).optional().describe("The encoding to use when reading the file. Defaults to utf-8 for text files."),
7752
+ offset: z.z.number().optional().describe("Line number to start reading from (1-indexed). If omitted, starts from line 1."),
7753
+ limit: z.z.number().optional().describe("Maximum number of lines to read. If omitted, reads to the end of the file."),
7754
+ showLineNumbers: z.z.boolean().optional().default(true).describe("Whether to prefix each line with its line number (default: true)")
7656
7755
  }),
7657
7756
  execute: async ({ path: path7, encoding, offset, limit, showLineNumbers }, context) => {
7658
7757
  const { workspace, filesystem } = requireFilesystem(context);
@@ -7692,14 +7791,14 @@ ${fullContent.toString("base64")}`,
7692
7791
  ${formattedContent}`, tokenLimit, "end");
7693
7792
  }
7694
7793
  });
7695
- var searchTool = chunkD6HO5QAM_cjs.createTool({
7794
+ var searchTool = chunkM26GEN4C_cjs.createTool({
7696
7795
  id: WORKSPACE_TOOLS.SEARCH.SEARCH,
7697
7796
  description: "Search indexed content in the workspace. Supports keyword (BM25), semantic (vector), and hybrid search modes.",
7698
- inputSchema: zod.z.object({
7699
- query: zod.z.string().describe("The search query string"),
7700
- topK: zod.z.number().optional().default(5).describe("Maximum number of results to return"),
7701
- mode: zod.z.enum(["bm25", "vector", "hybrid"]).optional().describe("Search mode: bm25 for keyword search, vector for semantic search, hybrid for both combined"),
7702
- minScore: zod.z.number().optional().describe("Minimum score threshold (0-1 for normalized scores)")
7797
+ inputSchema: z.z.object({
7798
+ query: z.z.string().describe("The search query string"),
7799
+ topK: z.z.number().optional().default(5).describe("Maximum number of results to return"),
7800
+ mode: z.z.enum(["bm25", "vector", "hybrid"]).optional().describe("Search mode: bm25 for keyword search, vector for semantic search, hybrid for both combined"),
7801
+ minScore: z.z.number().optional().describe("Minimum score threshold (0-1 for normalized scores)")
7703
7802
  }),
7704
7803
  execute: async ({ query, topK, mode, minScore }, context) => {
7705
7804
  const workspace = requireWorkspace(context);
@@ -7719,13 +7818,13 @@ var searchTool = chunkD6HO5QAM_cjs.createTool({
7719
7818
  return lines.join("\n");
7720
7819
  }
7721
7820
  });
7722
- var writeFileTool = chunkD6HO5QAM_cjs.createTool({
7821
+ var writeFileTool = chunkM26GEN4C_cjs.createTool({
7723
7822
  id: WORKSPACE_TOOLS.FILESYSTEM.WRITE_FILE,
7724
7823
  description: "Write content to a file in the workspace filesystem. Creates parent directories if needed.",
7725
- inputSchema: zod.z.object({
7726
- path: zod.z.string().describe('The path where to write the file (e.g., "/data/output.txt")'),
7727
- content: zod.z.string().describe("The content to write to the file"),
7728
- overwrite: zod.z.boolean().optional().default(true).describe("Whether to overwrite the file if it already exists")
7824
+ inputSchema: z.z.object({
7825
+ path: z.z.string().describe('The path where to write the file (e.g., "/data/output.txt")'),
7826
+ content: z.z.string().describe("The content to write to the file"),
7827
+ overwrite: z.z.boolean().optional().default(true).describe("Whether to overwrite the file if it already exists")
7729
7828
  }),
7730
7829
  execute: async ({ path: path7, content, overwrite }, context) => {
7731
7830
  const { workspace, filesystem } = requireFilesystem(context);
@@ -7938,13 +8037,13 @@ exports.WorkspaceReadOnlyError = WorkspaceReadOnlyError;
7938
8037
  exports.callLifecycle = callLifecycle;
7939
8038
  exports.collectSkillForPublish = collectSkillForPublish;
7940
8039
  exports.createGlobMatcher = createGlobMatcher;
8040
+ exports.createSkillTools = createSkillTools;
7941
8041
  exports.createWorkspaceTools = createWorkspaceTools;
7942
8042
  exports.deleteFileTool = deleteFileTool;
7943
8043
  exports.detectIsolation = detectIsolation;
7944
8044
  exports.editFileTool = editFileTool;
7945
8045
  exports.executeCommandTool = executeCommandTool;
7946
8046
  exports.extractGlobBase = extractGlobBase;
7947
- exports.extractLines = extractLines;
7948
8047
  exports.fileStatTool = fileStatTool;
7949
8048
  exports.getRecommendedIsolation = getRecommendedIsolation;
7950
8049
  exports.indexContentTool = indexContentTool;
@@ -7961,5 +8060,5 @@ exports.requireWorkspace = requireWorkspace;
7961
8060
  exports.resolveToolConfig = resolveToolConfig;
7962
8061
  exports.searchTool = searchTool;
7963
8062
  exports.writeFileTool = writeFileTool;
7964
- //# sourceMappingURL=chunk-4P35AVPE.cjs.map
7965
- //# sourceMappingURL=chunk-4P35AVPE.cjs.map
8063
+ //# sourceMappingURL=chunk-MEMYFFOL.cjs.map
8064
+ //# sourceMappingURL=chunk-MEMYFFOL.cjs.map