@mastra/core 1.18.0-alpha.3 → 1.18.0-alpha.4

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 (213) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +521 -172
  3. package/dist/agent/index.cjs +8 -8
  4. package/dist/agent/index.js +1 -1
  5. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  6. package/dist/{chunk-4K2NKQGN.cjs → chunk-2OZQLYLM.cjs} +196 -194
  7. package/dist/chunk-2OZQLYLM.cjs.map +1 -0
  8. package/dist/{chunk-VVR3SFKH.cjs → chunk-2RGBP3A3.cjs} +70 -70
  9. package/dist/{chunk-VVR3SFKH.cjs.map → chunk-2RGBP3A3.cjs.map} +1 -1
  10. package/dist/{chunk-GVHBM6VU.cjs → chunk-4LDFFARO.cjs} +29 -11
  11. package/dist/chunk-4LDFFARO.cjs.map +1 -0
  12. package/dist/{chunk-T5XU5TAV.cjs → chunk-4QLIPOI7.cjs} +82 -82
  13. package/dist/{chunk-T5XU5TAV.cjs.map → chunk-4QLIPOI7.cjs.map} +1 -1
  14. package/dist/{chunk-ZFZ6HQFT.cjs → chunk-5M3CKUAS.cjs} +210 -187
  15. package/dist/chunk-5M3CKUAS.cjs.map +1 -0
  16. package/dist/{chunk-D5VCCQ4L.js → chunk-6DDSP6ZE.js} +5 -5
  17. package/dist/{chunk-D5VCCQ4L.js.map → chunk-6DDSP6ZE.js.map} +1 -1
  18. package/dist/{chunk-5IZ346TV.cjs → chunk-A2FSD2KN.cjs} +7 -7
  19. package/dist/{chunk-5IZ346TV.cjs.map → chunk-A2FSD2KN.cjs.map} +1 -1
  20. package/dist/{chunk-64565EZF.cjs → chunk-ATKRXBCX.cjs} +22 -22
  21. package/dist/{chunk-64565EZF.cjs.map → chunk-ATKRXBCX.cjs.map} +1 -1
  22. package/dist/{chunk-K4NN2KQQ.cjs → chunk-AV4YSAZL.cjs} +6 -2
  23. package/dist/chunk-AV4YSAZL.cjs.map +1 -0
  24. package/dist/{chunk-7USX5P3I.js → chunk-B5LIMU4I.js} +28 -5
  25. package/dist/chunk-B5LIMU4I.js.map +1 -0
  26. package/dist/{chunk-BFRUEBG3.js → chunk-CEWIMGYP.js} +4 -4
  27. package/dist/{chunk-BFRUEBG3.js.map → chunk-CEWIMGYP.js.map} +1 -1
  28. package/dist/{chunk-X36INADV.cjs → chunk-CGDV5YUS.cjs} +131 -48
  29. package/dist/chunk-CGDV5YUS.cjs.map +1 -0
  30. package/dist/{chunk-HDPQ3LEE.js → chunk-DJ2RXLO3.js} +4 -4
  31. package/dist/{chunk-HDPQ3LEE.js.map → chunk-DJ2RXLO3.js.map} +1 -1
  32. package/dist/{chunk-OKKJRRSS.cjs → chunk-E7LJ7F56.cjs} +32 -14
  33. package/dist/chunk-E7LJ7F56.cjs.map +1 -0
  34. package/dist/{chunk-W2QYKEBN.js → chunk-ERAZTMF6.js} +113 -30
  35. package/dist/chunk-ERAZTMF6.js.map +1 -0
  36. package/dist/{chunk-IR4WRS3N.js → chunk-F77BL7Z7.js} +31 -13
  37. package/dist/chunk-F77BL7Z7.js.map +1 -0
  38. package/dist/{chunk-GRMC2OYN.js → chunk-FA4PTEBK.js} +6 -3
  39. package/dist/chunk-FA4PTEBK.js.map +1 -0
  40. package/dist/{chunk-YBVRBNRY.js → chunk-GIBIKVUG.js} +7 -7
  41. package/dist/{chunk-YBVRBNRY.js.map → chunk-GIBIKVUG.js.map} +1 -1
  42. package/dist/{chunk-QVVWKMFM.cjs → chunk-GXXNF6NF.cjs} +25 -25
  43. package/dist/{chunk-QVVWKMFM.cjs.map → chunk-GXXNF6NF.cjs.map} +1 -1
  44. package/dist/{chunk-OYAHOEQP.js → chunk-HJVPOP5S.js} +27 -9
  45. package/dist/chunk-HJVPOP5S.js.map +1 -0
  46. package/dist/{chunk-ABA3KD3X.js → chunk-HRT662B6.js} +3 -3
  47. package/dist/{chunk-ABA3KD3X.js.map → chunk-HRT662B6.js.map} +1 -1
  48. package/dist/chunk-IHVB4C5U.cjs +4 -0
  49. package/dist/{chunk-ROOVGRNA.cjs.map → chunk-IHVB4C5U.cjs.map} +1 -1
  50. package/dist/{chunk-OVWOD5GI.cjs → chunk-IKYWIQB2.cjs} +20 -20
  51. package/dist/{chunk-OVWOD5GI.cjs.map → chunk-IKYWIQB2.cjs.map} +1 -1
  52. package/dist/{chunk-UORUVXKY.js → chunk-JYVH24UY.js} +6 -6
  53. package/dist/{chunk-UORUVXKY.js.map → chunk-JYVH24UY.js.map} +1 -1
  54. package/dist/{chunk-AHFHYQS6.js → chunk-LQHNR4L7.js} +4 -4
  55. package/dist/{chunk-AHFHYQS6.js.map → chunk-LQHNR4L7.js.map} +1 -1
  56. package/dist/{chunk-OXS5X7PW.cjs → chunk-OJQCLQK7.cjs} +13 -13
  57. package/dist/{chunk-OXS5X7PW.cjs.map → chunk-OJQCLQK7.cjs.map} +1 -1
  58. package/dist/{chunk-CX5I6VS4.js → chunk-QE7OKYS3.js} +111 -38
  59. package/dist/chunk-QE7OKYS3.js.map +1 -0
  60. package/dist/{chunk-FB6O7FNK.js → chunk-QOFOOVPM.js} +9 -9
  61. package/dist/{chunk-FB6O7FNK.js.map → chunk-QOFOOVPM.js.map} +1 -1
  62. package/dist/{chunk-SLHDZJ4B.js → chunk-RHQHBU6R.js} +5 -4
  63. package/dist/chunk-RHQHBU6R.js.map +1 -0
  64. package/dist/{chunk-3UM5VCQ5.cjs → chunk-RIUDLIP3.cjs} +3 -3
  65. package/dist/{chunk-3UM5VCQ5.cjs.map → chunk-RIUDLIP3.cjs.map} +1 -1
  66. package/dist/chunk-S43VACTO.js +3 -0
  67. package/dist/{chunk-DMX7MC4N.js.map → chunk-S43VACTO.js.map} +1 -1
  68. package/dist/{chunk-PYNUWPGW.cjs → chunk-SMWXSQXP.cjs} +19 -19
  69. package/dist/{chunk-PYNUWPGW.cjs.map → chunk-SMWXSQXP.cjs.map} +1 -1
  70. package/dist/{chunk-32NEFSTI.js → chunk-T3TFXXGP.js} +12 -10
  71. package/dist/chunk-T3TFXXGP.js.map +1 -0
  72. package/dist/{chunk-6LHF5UDX.cjs → chunk-ULPWI6DN.cjs} +9 -9
  73. package/dist/{chunk-6LHF5UDX.cjs.map → chunk-ULPWI6DN.cjs.map} +1 -1
  74. package/dist/{chunk-QXPUTX3W.cjs → chunk-UZ426KMJ.cjs} +33 -32
  75. package/dist/chunk-UZ426KMJ.cjs.map +1 -0
  76. package/dist/{chunk-B6D4D2CY.cjs → chunk-VYVPUH6H.cjs} +112 -37
  77. package/dist/chunk-VYVPUH6H.cjs.map +1 -0
  78. package/dist/{chunk-MP2VGF73.js → chunk-WINCOFML.js} +3 -3
  79. package/dist/{chunk-MP2VGF73.js.map → chunk-WINCOFML.js.map} +1 -1
  80. package/dist/{chunk-ZFH5KWHO.js → chunk-Z5FE6LBA.js} +3 -3
  81. package/dist/{chunk-ZFH5KWHO.js.map → chunk-Z5FE6LBA.js.map} +1 -1
  82. package/dist/datasets/dataset.d.ts +1 -0
  83. package/dist/datasets/dataset.d.ts.map +1 -1
  84. package/dist/datasets/experiment/index.d.ts.map +1 -1
  85. package/dist/datasets/index.cjs +17 -17
  86. package/dist/datasets/index.js +2 -2
  87. package/dist/datasets/manager.d.ts +1 -0
  88. package/dist/datasets/manager.d.ts.map +1 -1
  89. package/dist/docs/SKILL.md +1 -1
  90. package/dist/docs/assets/SOURCE_MAP.json +534 -521
  91. package/dist/docs/references/reference-configuration.md +24 -0
  92. package/dist/docs/references/reference-core-mastra-model-gateway.md +2 -0
  93. package/dist/evals/index.cjs +23 -23
  94. package/dist/evals/index.js +3 -3
  95. package/dist/evals/scoreTraces/index.cjs +7 -7
  96. package/dist/evals/scoreTraces/index.js +3 -3
  97. package/dist/harness/index.cjs +17 -17
  98. package/dist/harness/index.js +7 -7
  99. package/dist/index.cjs +2 -2
  100. package/dist/index.js +1 -1
  101. package/dist/integration/index.cjs +2 -2
  102. package/dist/integration/index.js +1 -1
  103. package/dist/llm/index.cjs +16 -16
  104. package/dist/llm/index.js +5 -5
  105. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  106. package/dist/llm/model/provider-types.generated.d.ts +11 -2
  107. package/dist/loop/index.cjs +14 -14
  108. package/dist/loop/index.js +1 -1
  109. package/dist/mastra/index.cjs +2 -2
  110. package/dist/mastra/index.js +1 -1
  111. package/dist/memory/index.cjs +14 -14
  112. package/dist/memory/index.js +1 -1
  113. package/dist/models-dev-JGKQCSEN.js +3 -0
  114. package/dist/{models-dev-VDZIOMAC.js.map → models-dev-JGKQCSEN.js.map} +1 -1
  115. package/dist/models-dev-THY3NOPF.cjs +12 -0
  116. package/dist/{models-dev-MIC2CW43.cjs.map → models-dev-THY3NOPF.cjs.map} +1 -1
  117. package/dist/netlify-6TILQFDV.js +3 -0
  118. package/dist/{netlify-2CGMKEKT.js.map → netlify-6TILQFDV.js.map} +1 -1
  119. package/dist/netlify-NL6O2R7M.cjs +12 -0
  120. package/dist/{netlify-KZ4HQR5N.cjs.map → netlify-NL6O2R7M.cjs.map} +1 -1
  121. package/dist/observability/index.cjs +18 -18
  122. package/dist/observability/index.js +1 -1
  123. package/dist/observability/no-op.d.ts +14 -1
  124. package/dist/observability/no-op.d.ts.map +1 -1
  125. package/dist/observability/types/core.d.ts +35 -4
  126. package/dist/observability/types/core.d.ts.map +1 -1
  127. package/dist/observability/types/feedback.d.ts +42 -11
  128. package/dist/observability/types/feedback.d.ts.map +1 -1
  129. package/dist/observability/types/logging.d.ts +6 -9
  130. package/dist/observability/types/logging.d.ts.map +1 -1
  131. package/dist/observability/types/metrics.d.ts +6 -4
  132. package/dist/observability/types/metrics.d.ts.map +1 -1
  133. package/dist/observability/types/scores.d.ts +25 -10
  134. package/dist/observability/types/scores.d.ts.map +1 -1
  135. package/dist/observability/types/tracing.d.ts +12 -5
  136. package/dist/observability/types/tracing.d.ts.map +1 -1
  137. package/dist/processor-provider/index.cjs +10 -10
  138. package/dist/processor-provider/index.js +1 -1
  139. package/dist/processors/index.cjs +44 -44
  140. package/dist/processors/index.js +1 -1
  141. package/dist/processors/runner.d.ts.map +1 -1
  142. package/dist/provider-registry-CRD5YYZY.js +3 -0
  143. package/dist/{provider-registry-QRWUBN5N.js.map → provider-registry-CRD5YYZY.js.map} +1 -1
  144. package/dist/provider-registry-KXOHTVQF.cjs +40 -0
  145. package/dist/{provider-registry-HGWTTWCL.cjs.map → provider-registry-KXOHTVQF.cjs.map} +1 -1
  146. package/dist/provider-registry.json +27 -9
  147. package/dist/relevance/index.cjs +3 -3
  148. package/dist/relevance/index.js +1 -1
  149. package/dist/server/types.d.ts +16 -0
  150. package/dist/server/types.d.ts.map +1 -1
  151. package/dist/storage/constants.cjs +56 -56
  152. package/dist/storage/constants.d.ts.map +1 -1
  153. package/dist/storage/constants.js +1 -1
  154. package/dist/storage/domains/datasets/inmemory.d.ts.map +1 -1
  155. package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
  156. package/dist/storage/domains/observability/record-builders.d.ts.map +1 -1
  157. package/dist/storage/domains/observability/tracing.d.ts +8 -8
  158. package/dist/storage/domains/shared.d.ts +1 -1
  159. package/dist/storage/domains/shared.d.ts.map +1 -1
  160. package/dist/storage/index.cjs +276 -268
  161. package/dist/storage/index.js +3 -3
  162. package/dist/storage/types.d.ts +3 -0
  163. package/dist/storage/types.d.ts.map +1 -1
  164. package/dist/stream/index.cjs +8 -8
  165. package/dist/stream/index.js +1 -1
  166. package/dist/test-utils/llm-mock.cjs +4 -4
  167. package/dist/test-utils/llm-mock.js +1 -1
  168. package/dist/tool-loop-agent/index.cjs +4 -4
  169. package/dist/tool-loop-agent/index.js +1 -1
  170. package/dist/tools/index.cjs +11 -7
  171. package/dist/tools/index.d.ts +1 -1
  172. package/dist/tools/index.d.ts.map +1 -1
  173. package/dist/tools/index.js +1 -1
  174. package/dist/tools/is-vercel-tool.cjs +2 -2
  175. package/dist/tools/is-vercel-tool.js +1 -1
  176. package/dist/tools/validation.d.ts +1 -0
  177. package/dist/tools/validation.d.ts.map +1 -1
  178. package/dist/utils.cjs +23 -23
  179. package/dist/utils.js +1 -1
  180. package/dist/vector/index.cjs +7 -7
  181. package/dist/vector/index.js +1 -1
  182. package/dist/workflows/evented/index.cjs +10 -10
  183. package/dist/workflows/evented/index.js +1 -1
  184. package/dist/workflows/index.cjs +24 -24
  185. package/dist/workflows/index.js +1 -1
  186. package/dist/workspace/index.cjs +68 -68
  187. package/dist/workspace/index.js +1 -1
  188. package/package.json +3 -3
  189. package/src/llm/model/provider-types.generated.d.ts +11 -2
  190. package/dist/chunk-32NEFSTI.js.map +0 -1
  191. package/dist/chunk-4K2NKQGN.cjs.map +0 -1
  192. package/dist/chunk-7USX5P3I.js.map +0 -1
  193. package/dist/chunk-B6D4D2CY.cjs.map +0 -1
  194. package/dist/chunk-CX5I6VS4.js.map +0 -1
  195. package/dist/chunk-DMX7MC4N.js +0 -3
  196. package/dist/chunk-GRMC2OYN.js.map +0 -1
  197. package/dist/chunk-GVHBM6VU.cjs.map +0 -1
  198. package/dist/chunk-IR4WRS3N.js.map +0 -1
  199. package/dist/chunk-K4NN2KQQ.cjs.map +0 -1
  200. package/dist/chunk-OKKJRRSS.cjs.map +0 -1
  201. package/dist/chunk-OYAHOEQP.js.map +0 -1
  202. package/dist/chunk-QXPUTX3W.cjs.map +0 -1
  203. package/dist/chunk-ROOVGRNA.cjs +0 -4
  204. package/dist/chunk-SLHDZJ4B.js.map +0 -1
  205. package/dist/chunk-W2QYKEBN.js.map +0 -1
  206. package/dist/chunk-X36INADV.cjs.map +0 -1
  207. package/dist/chunk-ZFZ6HQFT.cjs.map +0 -1
  208. package/dist/models-dev-MIC2CW43.cjs +0 -12
  209. package/dist/models-dev-VDZIOMAC.js +0 -3
  210. package/dist/netlify-2CGMKEKT.js +0 -3
  211. package/dist/netlify-KZ4HQR5N.cjs +0 -12
  212. package/dist/provider-registry-HGWTTWCL.cjs +0 -40
  213. package/dist/provider-registry-QRWUBN5N.js +0 -3
@@ -1,6 +1,6 @@
1
- import { Agent, isSupportedLanguageModel } from './chunk-32NEFSTI.js';
1
+ import { Agent, isSupportedLanguageModel } from './chunk-T3TFXXGP.js';
2
2
  import { generateId } from './chunk-6PALJNKG.js';
3
- import { resolveModelConfig } from './chunk-YBVRBNRY.js';
3
+ import { resolveModelConfig } from './chunk-GIBIKVUG.js';
4
4
  import { ToolLoopAgent } from './chunk-KBPJLEWI.js';
5
5
 
6
6
  // src/tool-loop-agent/utils.ts
@@ -255,5 +255,5 @@ function toolLoopAgentToMastraAgent(agent, options) {
255
255
  }
256
256
 
257
257
  export { getSettings, isToolLoopAgentLike, toolLoopAgentToMastraAgent };
258
- //# sourceMappingURL=chunk-BFRUEBG3.js.map
259
- //# sourceMappingURL=chunk-BFRUEBG3.js.map
258
+ //# sourceMappingURL=chunk-CEWIMGYP.js.map
259
+ //# sourceMappingURL=chunk-CEWIMGYP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tool-loop-agent/utils.ts","../src/tool-loop-agent/tool-loop-processor.ts","../src/tool-loop-agent/index.ts"],"names":[],"mappings":"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","file":"chunk-BFRUEBG3.js","sourcesContent":["import { ToolLoopAgent } from '@internal/ai-v6';\nimport type { ToolLoopAgentSettings } from '@internal/ai-v6';\n\n/**\n * Shape of a ToolLoopAgent-like object for runtime extraction.\n * We use this looser type because TypeScript's structural typing doesn't work\n * well with private properties across different package declarations.\n */\nexport interface ToolLoopAgentLike {\n readonly id?: string;\n readonly version?: string;\n // The settings property is private in ToolLoopAgent but accessible at runtime\n // We don't declare it here since we access it via type casting\n}\n\nexport function isToolLoopAgentLike(obj: any): obj is ToolLoopAgentLike {\n if (!obj) return false;\n if (obj instanceof ToolLoopAgent) return true;\n return (\n 'version' in obj &&\n typeof obj.version === 'string' &&\n (obj.version === 'agent-v1' || obj.version.startsWith('agent-v'))\n );\n}\n\n/**\n * Extracts the settings from a ToolLoopAgent instance.\n * ToolLoopAgent.settings is private in TypeScript but accessible at runtime.\n */\nexport function getSettings(agent: ToolLoopAgentLike): ToolLoopAgentSettings<any, any, any> {\n const settings = (agent as unknown as { settings: ToolLoopAgentSettings<any, any, any> }).settings;\n if (!settings) {\n throw new Error('Could not extract settings from ToolLoopAgent. The agent may be from an incompatible version.');\n }\n return settings;\n}\n","import type {\n ToolLoopAgent,\n AgentCallParameters,\n ModelMessage,\n StepResult,\n ToolLoopAgentSettings,\n} from '@internal/ai-v6';\nimport { isSupportedLanguageModel } from '../agent';\nimport type { AgentExecutionOptions, AgentInstructions } from '../agent';\nimport { resolveModelConfig } from '../llm/model/resolve-model';\nimport type { MastraLanguageModel } from '../llm/model/shared.types';\nimport type { ProcessInputStepArgs, ProcessInputStepResult, Processor } from '../processors';\nimport { getSettings as getToolLoopAgentSettings } from './utils';\nimport type { ToolLoopAgentLike } from './utils';\n\ntype PrepareCallInput = AgentCallParameters<never> &\n Pick<\n ToolLoopAgentSettings<never, any, any>,\n | 'model'\n | 'tools'\n | 'maxOutputTokens'\n | 'temperature'\n | 'topP'\n | 'topK'\n | 'presencePenalty'\n | 'frequencyPenalty'\n | 'stopSequences'\n | 'seed'\n | 'headers'\n | 'instructions'\n | 'stopWhen'\n | 'experimental_telemetry'\n | 'activeTools'\n | 'providerOptions'\n | 'experimental_context'\n | 'experimental_download'\n >;\n\nexport class ToolLoopAgentProcessor implements Processor<'tool-loop-agent-processor'> {\n readonly id = 'tool-loop-agent-processor';\n readonly name = 'ToolLoop to Mastra Agent Processor';\n\n private agent: ToolLoopAgentLike;\n private settings: ToolLoopAgentSettings<any, any, any>;\n private prepareCallResult?: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>>;\n\n constructor(agent: ToolLoopAgentLike) {\n this.agent = agent;\n this.settings = getToolLoopAgentSettings(agent);\n }\n\n public getAgentConfig() {\n const tools = 'tools' in this.agent ? (this.agent as ToolLoopAgent).tools : undefined;\n\n // Build default options from ToolLoopAgent config params\n const defaultOptions: Omit<AgentExecutionOptions<unknown>, 'abortSignal'> = {};\n\n // AgentExecutionOptions\n if (this.settings.toolChoice) {\n defaultOptions.toolChoice = this.settings.toolChoice;\n }\n if (this.settings.providerOptions) {\n defaultOptions.providerOptions = this.settings.providerOptions;\n }\n // AgentExecutionOptions[\"modelSettings\"]\n if (this.settings.temperature !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n temperature: this.settings.temperature,\n };\n }\n if (this.settings.topP !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topP: this.settings.topP };\n }\n if (this.settings.topK !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topK: this.settings.topK };\n }\n if (this.settings.seed !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), seed: this.settings.seed };\n }\n if (this.settings.maxOutputTokens !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n maxOutputTokens: this.settings.maxOutputTokens,\n };\n }\n if (this.settings.presencePenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n presencePenalty: this.settings.presencePenalty,\n };\n }\n if (this.settings.frequencyPenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n frequencyPenalty: this.settings.frequencyPenalty,\n };\n }\n if (this.settings.stopSequences !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n stopSequences: this.settings.stopSequences,\n };\n }\n if (this.settings.stopWhen) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.stopWhen = this.settings.stopWhen as any;\n }\n if (this.settings.onStepFinish) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.onStepFinish = this.settings.onStepFinish as any;\n }\n if (this.settings.onFinish) {\n // TODO: The callback signatures differ (Types of parameters 'event' and 'event' are incompatible)\n defaultOptions.onFinish = this.settings.onFinish as any;\n }\n\n return {\n id: this.settings.id,\n name: this.settings.id,\n instructions: (this.settings.instructions as AgentInstructions) ?? '',\n model: this.settings.model,\n tools,\n maxRetries: this.settings.maxRetries,\n defaultOptions: Object.keys(defaultOptions).length > 0 ? defaultOptions : undefined,\n };\n }\n\n /**\n * Maps prepareCall or prepareStep result to ProcessInputStepResult.\n * Both hooks return similar structures that can override model, tools, activeTools, etc.\n */\n private mapToProcessInputStepResult(\n result: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>> | undefined,\n ): ProcessInputStepResult {\n if (!result) {\n return {};\n }\n\n const stepResult: ProcessInputStepResult = {};\n\n // Map model (both prepareCall and prepareStep can return this)\n if (result.model) {\n stepResult.model = result.model;\n }\n\n // Map tools (prepareCall can return this)\n if ('tools' in result && result.tools) {\n stepResult.tools = result.tools as Record<string, unknown>;\n }\n\n // Map toolChoice (prepareStep can return this)\n if ('toolChoice' in result && result.toolChoice !== undefined) {\n stepResult.toolChoice = result.toolChoice as ProcessInputStepResult['toolChoice'];\n }\n\n // Map activeTools (both can return this)\n if (result.activeTools) {\n stepResult.activeTools = result.activeTools as string[];\n }\n\n // Map providerOptions (prepareCall can return this)\n if ('providerOptions' in result && result.providerOptions) {\n stepResult.providerOptions = result.providerOptions;\n }\n\n // Map model settings (prepareCall can return individual settings)\n const modelSettings: ProcessInputStepResult['modelSettings'] = {};\n if ('temperature' in result && result.temperature !== undefined) {\n modelSettings.temperature = result.temperature;\n }\n if ('topP' in result && result.topP !== undefined) {\n modelSettings.topP = result.topP;\n }\n if ('topK' in result && result.topK !== undefined) {\n modelSettings.topK = result.topK;\n }\n if ('maxOutputTokens' in result && result.maxOutputTokens !== undefined) {\n modelSettings.maxOutputTokens = result.maxOutputTokens;\n }\n if ('presencePenalty' in result && result.presencePenalty !== undefined) {\n modelSettings.presencePenalty = result.presencePenalty;\n }\n if ('frequencyPenalty' in result && result.frequencyPenalty !== undefined) {\n modelSettings.frequencyPenalty = result.frequencyPenalty;\n }\n if ('stopSequences' in result && result.stopSequences !== undefined) {\n modelSettings.stopSequences = result.stopSequences;\n }\n if ('seed' in result && result.seed !== undefined) {\n modelSettings.seed = result.seed;\n }\n\n if (Object.keys(modelSettings).length > 0) {\n stepResult.modelSettings = modelSettings;\n }\n\n // Map system/instructions to systemMessages\n // prepareCall returns 'instructions', prepareStep returns 'system'\n const systemContent =\n 'instructions' in result ? result.instructions : 'system' in result ? result.system : undefined;\n if (systemContent) {\n // Convert to CoreMessageV4 format\n if (typeof systemContent === 'string') {\n stepResult.systemMessages = [{ role: 'system', content: systemContent }];\n } else if (Array.isArray(systemContent)) {\n stepResult.systemMessages = systemContent.map(msg =>\n typeof msg === 'string' ? { role: 'system' as const, content: msg } : msg,\n );\n } else if (typeof systemContent === 'object' && 'role' in systemContent && 'content' in systemContent) {\n stepResult.systemMessages = [systemContent as { role: 'system'; content: string }];\n }\n }\n\n // Map messages if prepareStep returns them\n // Convert AI SDK ModelMessage[] to MastraDBMessage[]\n if ('messages' in result && result.messages && Array.isArray(result.messages)) {\n // AI SDK v6 ModelMessage is compatible with MessageListInput at runtime\n // stepResult.messages = convertMessages(result.messages as any).to('Mastra.V2');\n stepResult.messages = result.messages as any;\n }\n\n return stepResult;\n }\n\n private async handlePrepareCall(args: ProcessInputStepArgs) {\n if (this.settings.prepareCall) {\n const { model, messages, activeTools, providerOptions, modelSettings, tools } = args;\n // TODO: This should probably happen in processInput, currently calling in processInputStep if stepNumber === 0\n\n // Build the prepareCall input object\n // AI SDK prepareCall expects: AgentCallParameters & Pick<ToolLoopAgentSettings, ...settings>\n const prepareCallInput: PrepareCallInput = {\n // TODO: prepareCall expects messages in AI SDK format, we have them in Mastra format\n messages: messages as unknown as any,\n model,\n tools,\n instructions: this.settings.instructions,\n stopWhen: this.settings.stopWhen,\n activeTools,\n providerOptions,\n\n // Model settings\n temperature: modelSettings?.temperature,\n topP: modelSettings?.topP,\n topK: modelSettings?.topK,\n maxOutputTokens: modelSettings?.maxOutputTokens,\n presencePenalty: modelSettings?.presencePenalty,\n frequencyPenalty: modelSettings?.frequencyPenalty,\n stopSequences: modelSettings?.stopSequences,\n seed: modelSettings?.seed,\n\n // Experimental options\n // experimental_telemetry: this.settings.experimental_telemetry,\n // experimental_context: this.settings.experimental_context,\n // experimental_download: this.settings.experimental_download,\n };\n\n // Call prepareCall and apply any returned overrides\n const prepareCallResult = await this.settings.prepareCall(prepareCallInput as any); // TODO: types\n this.prepareCallResult = prepareCallResult;\n }\n }\n\n private async handlePrepareStep(args: ProcessInputStepArgs, currentResult: ProcessInputStepResult) {\n if (this.settings.prepareStep) {\n const { messages, steps, stepNumber } = args;\n\n let model = args.model;\n if (currentResult.model) {\n const resolvedModel = await resolveModelConfig(currentResult.model);\n if (!isSupportedLanguageModel(resolvedModel)) {\n throw new Error('prepareStep returned an unsupported model version');\n }\n model = resolvedModel;\n }\n\n // Use the model from currentResult if prepareCall overrode it, otherwise use args.model\n\n // Note: We pass messages and steps in Mastra format rather than converting to AI SDK format.\n // This is intentional - most prepareStep callbacks only return overrides and don't inspect\n // the message content. The type casts handle the format difference at runtime.\n const prepareStepInputArgs: {\n /**\n * The steps that have been executed so far.\n */\n steps: Array<StepResult<NoInfer<any>>>;\n /**\n * The number of the step that is being executed.\n */\n stepNumber: number;\n /**\n * The model instance that is being used for this step.\n */\n model: MastraLanguageModel;\n /**\n * The messages that will be sent to the model for the current step.\n * Note: These are in Mastra format (MastraDBMessage[]), not AI SDK ModelMessage format.\n */\n messages: Array<ModelMessage>;\n /**\n * The context passed via the experimental_context setting (experimental).\n */\n experimental_context: unknown;\n } = {\n model,\n // Messages are in Mastra format (MastraDBMessage[])\n messages: messages as any,\n // Steps may have minor type differences in usage properties (inputTokenDetails/outputTokenDetails)\n steps: steps as any,\n stepNumber,\n experimental_context: undefined,\n };\n\n const prepareStepResult = await this.settings.prepareStep(prepareStepInputArgs);\n return prepareStepResult;\n }\n }\n\n async processInputStep(args: ProcessInputStepArgs): Promise<ProcessInputStepResult | undefined | void> {\n const { stepNumber } = args;\n\n if (stepNumber === 0 && this.settings.prepareCall) {\n await this.handlePrepareCall(args);\n }\n\n let result: ProcessInputStepResult = {};\n\n // Apply prepareCall result (only on step 0, already called above)\n if (this.prepareCallResult) {\n const mappedResult = this.mapToProcessInputStepResult(this.prepareCallResult);\n if (Object.keys(mappedResult).length > 0) {\n result = { ...result, ...mappedResult };\n }\n }\n\n // Apply prepareStep result (called on every step)\n // Pass the current result so prepareStep sees any overrides from prepareCall\n if (this.settings.prepareStep) {\n const prepareStepResult = await this.handlePrepareStep(args, result);\n if (prepareStepResult) {\n const mappedResult = this.mapToProcessInputStepResult(prepareStepResult as any);\n // prepareStep overrides prepareCall for this step\n result = { ...result, ...mappedResult };\n }\n }\n\n return result;\n }\n}\n","import { generateId } from '@internal/ai-sdk-v5';\nimport { Agent } from '../agent';\nimport { ToolLoopAgentProcessor } from './tool-loop-processor';\nimport type { ToolLoopAgentLike } from './utils';\nexport { type ToolLoopAgentLike, isToolLoopAgentLike, getSettings } from './utils';\n\n/**\n * Converts an AI SDK v6 ToolLoopAgent instance into a Mastra Agent.\n *\n * This enables users to create a ToolLoopAgent using AI SDK's API\n * while gaining access to Mastra features like memory, processors, scorers, and observability.\n *\n * @example\n * ```typescript\n * import { ToolLoopAgent, tool } from 'ai';\n * import { openai } from '@ai-sdk/openai';\n * import { toolLoopAgentToMastraAgent } from '@mastra/core/tool-loop-agent';\n *\n * const toolLoopAgent = new ToolLoopAgent({\n * id: 'weather-agent',\n * model: openai('gpt-4o'),\n * instructions: 'You are a helpful weather assistant.',\n * tools: { weather: weatherTool },\n * temperature: 0.7,\n * });\n *\n * const mastraAgent = toolLoopAgentToMastraAgent(toolLoopAgent);\n *\n * const result = await mastraAgent.generate({ prompt: 'What is the weather in NYC?' });\n * ```\n *\n * @param agent - The ToolLoopAgent instance\n * @param options - Optional name fallback since Mastra Agent requires id/name but ToolLoopAgent doesn't\n * @returns A Mastra Agent instance\n */\nexport function toolLoopAgentToMastraAgent(agent: ToolLoopAgentLike, options?: { fallbackName?: string }) {\n const processor = new ToolLoopAgentProcessor(agent);\n const agentConfig = processor.getAgentConfig();\n const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${generateId()}`;\n\n return new Agent({\n ...agentConfig,\n id,\n name: agentConfig.name || id,\n inputProcessors: [processor],\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/tool-loop-agent/utils.ts","../src/tool-loop-agent/tool-loop-processor.ts","../src/tool-loop-agent/index.ts"],"names":[],"mappings":"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","file":"chunk-CEWIMGYP.js","sourcesContent":["import { ToolLoopAgent } from '@internal/ai-v6';\nimport type { ToolLoopAgentSettings } from '@internal/ai-v6';\n\n/**\n * Shape of a ToolLoopAgent-like object for runtime extraction.\n * We use this looser type because TypeScript's structural typing doesn't work\n * well with private properties across different package declarations.\n */\nexport interface ToolLoopAgentLike {\n readonly id?: string;\n readonly version?: string;\n // The settings property is private in ToolLoopAgent but accessible at runtime\n // We don't declare it here since we access it via type casting\n}\n\nexport function isToolLoopAgentLike(obj: any): obj is ToolLoopAgentLike {\n if (!obj) return false;\n if (obj instanceof ToolLoopAgent) return true;\n return (\n 'version' in obj &&\n typeof obj.version === 'string' &&\n (obj.version === 'agent-v1' || obj.version.startsWith('agent-v'))\n );\n}\n\n/**\n * Extracts the settings from a ToolLoopAgent instance.\n * ToolLoopAgent.settings is private in TypeScript but accessible at runtime.\n */\nexport function getSettings(agent: ToolLoopAgentLike): ToolLoopAgentSettings<any, any, any> {\n const settings = (agent as unknown as { settings: ToolLoopAgentSettings<any, any, any> }).settings;\n if (!settings) {\n throw new Error('Could not extract settings from ToolLoopAgent. The agent may be from an incompatible version.');\n }\n return settings;\n}\n","import type {\n ToolLoopAgent,\n AgentCallParameters,\n ModelMessage,\n StepResult,\n ToolLoopAgentSettings,\n} from '@internal/ai-v6';\nimport { isSupportedLanguageModel } from '../agent';\nimport type { AgentExecutionOptions, AgentInstructions } from '../agent';\nimport { resolveModelConfig } from '../llm/model/resolve-model';\nimport type { MastraLanguageModel } from '../llm/model/shared.types';\nimport type { ProcessInputStepArgs, ProcessInputStepResult, Processor } from '../processors';\nimport { getSettings as getToolLoopAgentSettings } from './utils';\nimport type { ToolLoopAgentLike } from './utils';\n\ntype PrepareCallInput = AgentCallParameters<never> &\n Pick<\n ToolLoopAgentSettings<never, any, any>,\n | 'model'\n | 'tools'\n | 'maxOutputTokens'\n | 'temperature'\n | 'topP'\n | 'topK'\n | 'presencePenalty'\n | 'frequencyPenalty'\n | 'stopSequences'\n | 'seed'\n | 'headers'\n | 'instructions'\n | 'stopWhen'\n | 'experimental_telemetry'\n | 'activeTools'\n | 'providerOptions'\n | 'experimental_context'\n | 'experimental_download'\n >;\n\nexport class ToolLoopAgentProcessor implements Processor<'tool-loop-agent-processor'> {\n readonly id = 'tool-loop-agent-processor';\n readonly name = 'ToolLoop to Mastra Agent Processor';\n\n private agent: ToolLoopAgentLike;\n private settings: ToolLoopAgentSettings<any, any, any>;\n private prepareCallResult?: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>>;\n\n constructor(agent: ToolLoopAgentLike) {\n this.agent = agent;\n this.settings = getToolLoopAgentSettings(agent);\n }\n\n public getAgentConfig() {\n const tools = 'tools' in this.agent ? (this.agent as ToolLoopAgent).tools : undefined;\n\n // Build default options from ToolLoopAgent config params\n const defaultOptions: Omit<AgentExecutionOptions<unknown>, 'abortSignal'> = {};\n\n // AgentExecutionOptions\n if (this.settings.toolChoice) {\n defaultOptions.toolChoice = this.settings.toolChoice;\n }\n if (this.settings.providerOptions) {\n defaultOptions.providerOptions = this.settings.providerOptions;\n }\n // AgentExecutionOptions[\"modelSettings\"]\n if (this.settings.temperature !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n temperature: this.settings.temperature,\n };\n }\n if (this.settings.topP !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topP: this.settings.topP };\n }\n if (this.settings.topK !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topK: this.settings.topK };\n }\n if (this.settings.seed !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), seed: this.settings.seed };\n }\n if (this.settings.maxOutputTokens !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n maxOutputTokens: this.settings.maxOutputTokens,\n };\n }\n if (this.settings.presencePenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n presencePenalty: this.settings.presencePenalty,\n };\n }\n if (this.settings.frequencyPenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n frequencyPenalty: this.settings.frequencyPenalty,\n };\n }\n if (this.settings.stopSequences !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n stopSequences: this.settings.stopSequences,\n };\n }\n if (this.settings.stopWhen) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.stopWhen = this.settings.stopWhen as any;\n }\n if (this.settings.onStepFinish) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.onStepFinish = this.settings.onStepFinish as any;\n }\n if (this.settings.onFinish) {\n // TODO: The callback signatures differ (Types of parameters 'event' and 'event' are incompatible)\n defaultOptions.onFinish = this.settings.onFinish as any;\n }\n\n return {\n id: this.settings.id,\n name: this.settings.id,\n instructions: (this.settings.instructions as AgentInstructions) ?? '',\n model: this.settings.model,\n tools,\n maxRetries: this.settings.maxRetries,\n defaultOptions: Object.keys(defaultOptions).length > 0 ? defaultOptions : undefined,\n };\n }\n\n /**\n * Maps prepareCall or prepareStep result to ProcessInputStepResult.\n * Both hooks return similar structures that can override model, tools, activeTools, etc.\n */\n private mapToProcessInputStepResult(\n result: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>> | undefined,\n ): ProcessInputStepResult {\n if (!result) {\n return {};\n }\n\n const stepResult: ProcessInputStepResult = {};\n\n // Map model (both prepareCall and prepareStep can return this)\n if (result.model) {\n stepResult.model = result.model;\n }\n\n // Map tools (prepareCall can return this)\n if ('tools' in result && result.tools) {\n stepResult.tools = result.tools as Record<string, unknown>;\n }\n\n // Map toolChoice (prepareStep can return this)\n if ('toolChoice' in result && result.toolChoice !== undefined) {\n stepResult.toolChoice = result.toolChoice as ProcessInputStepResult['toolChoice'];\n }\n\n // Map activeTools (both can return this)\n if (result.activeTools) {\n stepResult.activeTools = result.activeTools as string[];\n }\n\n // Map providerOptions (prepareCall can return this)\n if ('providerOptions' in result && result.providerOptions) {\n stepResult.providerOptions = result.providerOptions;\n }\n\n // Map model settings (prepareCall can return individual settings)\n const modelSettings: ProcessInputStepResult['modelSettings'] = {};\n if ('temperature' in result && result.temperature !== undefined) {\n modelSettings.temperature = result.temperature;\n }\n if ('topP' in result && result.topP !== undefined) {\n modelSettings.topP = result.topP;\n }\n if ('topK' in result && result.topK !== undefined) {\n modelSettings.topK = result.topK;\n }\n if ('maxOutputTokens' in result && result.maxOutputTokens !== undefined) {\n modelSettings.maxOutputTokens = result.maxOutputTokens;\n }\n if ('presencePenalty' in result && result.presencePenalty !== undefined) {\n modelSettings.presencePenalty = result.presencePenalty;\n }\n if ('frequencyPenalty' in result && result.frequencyPenalty !== undefined) {\n modelSettings.frequencyPenalty = result.frequencyPenalty;\n }\n if ('stopSequences' in result && result.stopSequences !== undefined) {\n modelSettings.stopSequences = result.stopSequences;\n }\n if ('seed' in result && result.seed !== undefined) {\n modelSettings.seed = result.seed;\n }\n\n if (Object.keys(modelSettings).length > 0) {\n stepResult.modelSettings = modelSettings;\n }\n\n // Map system/instructions to systemMessages\n // prepareCall returns 'instructions', prepareStep returns 'system'\n const systemContent =\n 'instructions' in result ? result.instructions : 'system' in result ? result.system : undefined;\n if (systemContent) {\n // Convert to CoreMessageV4 format\n if (typeof systemContent === 'string') {\n stepResult.systemMessages = [{ role: 'system', content: systemContent }];\n } else if (Array.isArray(systemContent)) {\n stepResult.systemMessages = systemContent.map(msg =>\n typeof msg === 'string' ? { role: 'system' as const, content: msg } : msg,\n );\n } else if (typeof systemContent === 'object' && 'role' in systemContent && 'content' in systemContent) {\n stepResult.systemMessages = [systemContent as { role: 'system'; content: string }];\n }\n }\n\n // Map messages if prepareStep returns them\n // Convert AI SDK ModelMessage[] to MastraDBMessage[]\n if ('messages' in result && result.messages && Array.isArray(result.messages)) {\n // AI SDK v6 ModelMessage is compatible with MessageListInput at runtime\n // stepResult.messages = convertMessages(result.messages as any).to('Mastra.V2');\n stepResult.messages = result.messages as any;\n }\n\n return stepResult;\n }\n\n private async handlePrepareCall(args: ProcessInputStepArgs) {\n if (this.settings.prepareCall) {\n const { model, messages, activeTools, providerOptions, modelSettings, tools } = args;\n // TODO: This should probably happen in processInput, currently calling in processInputStep if stepNumber === 0\n\n // Build the prepareCall input object\n // AI SDK prepareCall expects: AgentCallParameters & Pick<ToolLoopAgentSettings, ...settings>\n const prepareCallInput: PrepareCallInput = {\n // TODO: prepareCall expects messages in AI SDK format, we have them in Mastra format\n messages: messages as unknown as any,\n model,\n tools,\n instructions: this.settings.instructions,\n stopWhen: this.settings.stopWhen,\n activeTools,\n providerOptions,\n\n // Model settings\n temperature: modelSettings?.temperature,\n topP: modelSettings?.topP,\n topK: modelSettings?.topK,\n maxOutputTokens: modelSettings?.maxOutputTokens,\n presencePenalty: modelSettings?.presencePenalty,\n frequencyPenalty: modelSettings?.frequencyPenalty,\n stopSequences: modelSettings?.stopSequences,\n seed: modelSettings?.seed,\n\n // Experimental options\n // experimental_telemetry: this.settings.experimental_telemetry,\n // experimental_context: this.settings.experimental_context,\n // experimental_download: this.settings.experimental_download,\n };\n\n // Call prepareCall and apply any returned overrides\n const prepareCallResult = await this.settings.prepareCall(prepareCallInput as any); // TODO: types\n this.prepareCallResult = prepareCallResult;\n }\n }\n\n private async handlePrepareStep(args: ProcessInputStepArgs, currentResult: ProcessInputStepResult) {\n if (this.settings.prepareStep) {\n const { messages, steps, stepNumber } = args;\n\n let model = args.model;\n if (currentResult.model) {\n const resolvedModel = await resolveModelConfig(currentResult.model);\n if (!isSupportedLanguageModel(resolvedModel)) {\n throw new Error('prepareStep returned an unsupported model version');\n }\n model = resolvedModel;\n }\n\n // Use the model from currentResult if prepareCall overrode it, otherwise use args.model\n\n // Note: We pass messages and steps in Mastra format rather than converting to AI SDK format.\n // This is intentional - most prepareStep callbacks only return overrides and don't inspect\n // the message content. The type casts handle the format difference at runtime.\n const prepareStepInputArgs: {\n /**\n * The steps that have been executed so far.\n */\n steps: Array<StepResult<NoInfer<any>>>;\n /**\n * The number of the step that is being executed.\n */\n stepNumber: number;\n /**\n * The model instance that is being used for this step.\n */\n model: MastraLanguageModel;\n /**\n * The messages that will be sent to the model for the current step.\n * Note: These are in Mastra format (MastraDBMessage[]), not AI SDK ModelMessage format.\n */\n messages: Array<ModelMessage>;\n /**\n * The context passed via the experimental_context setting (experimental).\n */\n experimental_context: unknown;\n } = {\n model,\n // Messages are in Mastra format (MastraDBMessage[])\n messages: messages as any,\n // Steps may have minor type differences in usage properties (inputTokenDetails/outputTokenDetails)\n steps: steps as any,\n stepNumber,\n experimental_context: undefined,\n };\n\n const prepareStepResult = await this.settings.prepareStep(prepareStepInputArgs);\n return prepareStepResult;\n }\n }\n\n async processInputStep(args: ProcessInputStepArgs): Promise<ProcessInputStepResult | undefined | void> {\n const { stepNumber } = args;\n\n if (stepNumber === 0 && this.settings.prepareCall) {\n await this.handlePrepareCall(args);\n }\n\n let result: ProcessInputStepResult = {};\n\n // Apply prepareCall result (only on step 0, already called above)\n if (this.prepareCallResult) {\n const mappedResult = this.mapToProcessInputStepResult(this.prepareCallResult);\n if (Object.keys(mappedResult).length > 0) {\n result = { ...result, ...mappedResult };\n }\n }\n\n // Apply prepareStep result (called on every step)\n // Pass the current result so prepareStep sees any overrides from prepareCall\n if (this.settings.prepareStep) {\n const prepareStepResult = await this.handlePrepareStep(args, result);\n if (prepareStepResult) {\n const mappedResult = this.mapToProcessInputStepResult(prepareStepResult as any);\n // prepareStep overrides prepareCall for this step\n result = { ...result, ...mappedResult };\n }\n }\n\n return result;\n }\n}\n","import { generateId } from '@internal/ai-sdk-v5';\nimport { Agent } from '../agent';\nimport { ToolLoopAgentProcessor } from './tool-loop-processor';\nimport type { ToolLoopAgentLike } from './utils';\nexport { type ToolLoopAgentLike, isToolLoopAgentLike, getSettings } from './utils';\n\n/**\n * Converts an AI SDK v6 ToolLoopAgent instance into a Mastra Agent.\n *\n * This enables users to create a ToolLoopAgent using AI SDK's API\n * while gaining access to Mastra features like memory, processors, scorers, and observability.\n *\n * @example\n * ```typescript\n * import { ToolLoopAgent, tool } from 'ai';\n * import { openai } from '@ai-sdk/openai';\n * import { toolLoopAgentToMastraAgent } from '@mastra/core/tool-loop-agent';\n *\n * const toolLoopAgent = new ToolLoopAgent({\n * id: 'weather-agent',\n * model: openai('gpt-4o'),\n * instructions: 'You are a helpful weather assistant.',\n * tools: { weather: weatherTool },\n * temperature: 0.7,\n * });\n *\n * const mastraAgent = toolLoopAgentToMastraAgent(toolLoopAgent);\n *\n * const result = await mastraAgent.generate({ prompt: 'What is the weather in NYC?' });\n * ```\n *\n * @param agent - The ToolLoopAgent instance\n * @param options - Optional name fallback since Mastra Agent requires id/name but ToolLoopAgent doesn't\n * @returns A Mastra Agent instance\n */\nexport function toolLoopAgentToMastraAgent(agent: ToolLoopAgentLike, options?: { fallbackName?: string }) {\n const processor = new ToolLoopAgentProcessor(agent);\n const agentConfig = processor.getAgentConfig();\n const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${generateId()}`;\n\n return new Agent({\n ...agentConfig,\n id,\n name: agentConfig.name || id,\n inputProcessors: [processor],\n });\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkANLO4VM2_cjs = require('./chunk-ANLO4VM2.cjs');
4
- var chunkQXPUTX3W_cjs = require('./chunk-QXPUTX3W.cjs');
5
- var chunk64565EZF_cjs = require('./chunk-64565EZF.cjs');
6
- var chunkB6D4D2CY_cjs = require('./chunk-B6D4D2CY.cjs');
4
+ var chunkUZ426KMJ_cjs = require('./chunk-UZ426KMJ.cjs');
5
+ var chunkATKRXBCX_cjs = require('./chunk-ATKRXBCX.cjs');
6
+ var chunkVYVPUH6H_cjs = require('./chunk-VYVPUH6H.cjs');
7
7
  var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
8
8
  var chunkRO47SMI7_cjs = require('./chunk-RO47SMI7.cjs');
9
9
  var jsonToZod = require('@mastra/schema-compat/json-to-zod');
@@ -547,7 +547,7 @@ function safelyParseJSON(input) {
547
547
  }
548
548
  function transformRow(row, tableName, options = {}) {
549
549
  const { preferredTimestampFields = {}, convertTimestamps = false, nullValuePattern, fieldMappings = {} } = options;
550
- const tableSchema = chunkQXPUTX3W_cjs.TABLE_SCHEMAS[tableName];
550
+ const tableSchema = chunkUZ426KMJ_cjs.TABLE_SCHEMAS[tableName];
551
551
  const result = {};
552
552
  for (const [key, columnSchema] of Object.entries(tableSchema)) {
553
553
  const sourceKey = fieldMappings[key] ?? key;
@@ -578,7 +578,7 @@ function transformRow(row, tableName, options = {}) {
578
578
  return result;
579
579
  }
580
580
  function transformScoreRow(row, options = {}) {
581
- return transformRow(row, chunkQXPUTX3W_cjs.TABLE_SCORERS, options);
581
+ return transformRow(row, chunkUZ426KMJ_cjs.TABLE_SCORERS, options);
582
582
  }
583
583
  function toUpperSnakeCase(str) {
584
584
  return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/([A-Z])([A-Z][a-z])/g, "$1_$2").toUpperCase().replace(/[^A-Z0-9]+/g, "_").replace(/^_+|_+$/g, "");
@@ -830,7 +830,7 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
830
830
  };
831
831
  }
832
832
  async listTraces(args) {
833
- const { filters, pagination, orderBy } = chunkQXPUTX3W_cjs.listTracesArgsSchema.parse(args);
833
+ const { filters, pagination, orderBy } = chunkUZ426KMJ_cjs.listTracesArgsSchema.parse(args);
834
834
  const matchingRootSpans = [];
835
835
  for (const [, traceEntry] of this.db.traces) {
836
836
  if (!traceEntry.rootSpan) continue;
@@ -859,7 +859,7 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
859
859
  const end = start + perPage;
860
860
  const paged = matchingRootSpans.slice(start, end);
861
861
  return {
862
- spans: chunkQXPUTX3W_cjs.toTraceSpans(paged),
862
+ spans: chunkUZ426KMJ_cjs.toTraceSpans(paged),
863
863
  pagination: { total, page, perPage, hasMore: end < total }
864
864
  };
865
865
  }
@@ -1017,7 +1017,7 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1017
1017
  }
1018
1018
  }
1019
1019
  async listMetrics(args) {
1020
- const { filters, pagination, orderBy } = chunkB6D4D2CY_cjs.listMetricsArgsSchema.parse(args);
1020
+ const { filters, pagination, orderBy } = chunkVYVPUH6H_cjs.listMetricsArgsSchema.parse(args);
1021
1021
  let matching = this.filterMetrics(filters);
1022
1022
  const dir = orderBy.direction === "DESC" ? -1 : 1;
1023
1023
  matching.sort((a, b) => dir * (a.timestamp.getTime() - b.timestamp.getTime()));
@@ -1058,7 +1058,9 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1058
1058
  if (filters.experimentId !== void 0 && m.experimentId !== filters.experimentId) return false;
1059
1059
  if (filters.serviceName !== void 0 && m.serviceName !== filters.serviceName) return false;
1060
1060
  if (filters.environment !== void 0 && m.environment !== filters.environment) return false;
1061
- if (filters.source !== void 0 && m.source !== filters.source) return false;
1061
+ const metricExecutionSource = m.executionSource ?? m.source ?? null;
1062
+ if (filters.executionSource !== void 0 && metricExecutionSource !== filters.executionSource) return false;
1063
+ if (filters.source !== void 0 && metricExecutionSource !== filters.source) return false;
1062
1064
  if (filters.parentEntityType !== void 0 && m.parentEntityType !== filters.parentEntityType) return false;
1063
1065
  if (filters.parentEntityName !== void 0 && m.parentEntityName !== filters.parentEntityName) return false;
1064
1066
  if (filters.rootEntityType !== void 0 && m.rootEntityType !== filters.rootEntityType) return false;
@@ -1329,7 +1331,7 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1329
1331
  return { values };
1330
1332
  }
1331
1333
  async getEntityTypes(_args) {
1332
- const validTypes = new Set(Object.values(chunkB6D4D2CY_cjs.EntityType));
1334
+ const validTypes = new Set(Object.values(chunkVYVPUH6H_cjs.EntityType));
1333
1335
  const typeSet = /* @__PURE__ */ new Set();
1334
1336
  for (const [, traceEntry] of this.db.traces) {
1335
1337
  for (const span of Object.values(traceEntry.spans)) {
@@ -1391,7 +1393,7 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1391
1393
  }
1392
1394
  }
1393
1395
  async listLogs(args) {
1394
- const { filters, pagination, orderBy } = chunkB6D4D2CY_cjs.listLogsArgsSchema.parse(args);
1396
+ const { filters, pagination, orderBy } = chunkVYVPUH6H_cjs.listLogsArgsSchema.parse(args);
1395
1397
  let matching = this.db.logRecords.filter((log) => this.logMatchesFilters(log, filters));
1396
1398
  const dir = orderBy.direction === "DESC" ? -1 : 1;
1397
1399
  matching.sort((a, b) => dir * (a.timestamp.getTime() - b.timestamp.getTime()));
@@ -1435,7 +1437,9 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1435
1437
  if (filters.rootEntityName !== void 0 && log.rootEntityName !== filters.rootEntityName) return false;
1436
1438
  if (filters.serviceName !== void 0 && log.serviceName !== filters.serviceName) return false;
1437
1439
  if (filters.environment !== void 0 && log.environment !== filters.environment) return false;
1438
- if (filters.source !== void 0 && log.source !== filters.source) return false;
1440
+ const logExecutionSource = log.executionSource ?? log.source ?? null;
1441
+ if (filters.executionSource !== void 0 && logExecutionSource !== filters.executionSource) return false;
1442
+ if (filters.source !== void 0 && logExecutionSource !== filters.source) return false;
1439
1443
  if (filters.experimentId !== void 0 && log.experimentId !== filters.experimentId) return false;
1440
1444
  if (filters.tags != null && filters.tags.length > 0) {
1441
1445
  if (log.tags == null) return false;
@@ -1449,15 +1453,25 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1449
1453
  // Scores
1450
1454
  // ============================================================================
1451
1455
  async createScore(args) {
1452
- this.db.scoreRecords.push(args.score);
1456
+ const scoreSource = args.score.scoreSource ?? args.score.source ?? null;
1457
+ this.db.scoreRecords.push({
1458
+ ...args.score,
1459
+ scoreSource,
1460
+ source: scoreSource
1461
+ });
1453
1462
  }
1454
1463
  async batchCreateScores(args) {
1455
1464
  for (const score of args.scores) {
1456
- this.db.scoreRecords.push(score);
1465
+ const scoreSource = score.scoreSource ?? score.source ?? null;
1466
+ this.db.scoreRecords.push({
1467
+ ...score,
1468
+ scoreSource,
1469
+ source: scoreSource
1470
+ });
1457
1471
  }
1458
1472
  }
1459
1473
  async listScores(args) {
1460
- const { filters, pagination, orderBy } = chunkB6D4D2CY_cjs.listScoresArgsSchema.parse(args);
1474
+ const { filters, pagination, orderBy } = chunkVYVPUH6H_cjs.listScoresArgsSchema.parse(args);
1461
1475
  let matching = this.db.scoreRecords.filter((score) => this.scoreMatchesFilters(score, filters));
1462
1476
  const dir = orderBy.direction === "DESC" ? -1 : 1;
1463
1477
  if (orderBy.field === "score") {
@@ -1482,26 +1496,61 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1482
1496
  }
1483
1497
  if (filters.traceId !== void 0 && score.traceId !== filters.traceId) return false;
1484
1498
  if (filters.spanId !== void 0 && score.spanId !== filters.spanId) return false;
1499
+ if (filters.entityType !== void 0 && score.entityType !== filters.entityType) return false;
1500
+ if (filters.entityName !== void 0 && score.entityName !== filters.entityName) return false;
1501
+ if (filters.userId !== void 0 && score.userId !== filters.userId) return false;
1502
+ if (filters.organizationId !== void 0 && score.organizationId !== filters.organizationId) return false;
1503
+ if (filters.resourceId !== void 0 && score.resourceId !== filters.resourceId) return false;
1504
+ if (filters.runId !== void 0 && score.runId !== filters.runId) return false;
1505
+ if (filters.sessionId !== void 0 && score.sessionId !== filters.sessionId) return false;
1506
+ if (filters.threadId !== void 0 && score.threadId !== filters.threadId) return false;
1507
+ if (filters.requestId !== void 0 && score.requestId !== filters.requestId) return false;
1508
+ if (filters.parentEntityType !== void 0 && score.parentEntityType !== filters.parentEntityType) return false;
1509
+ if (filters.parentEntityName !== void 0 && score.parentEntityName !== filters.parentEntityName) return false;
1510
+ if (filters.rootEntityType !== void 0 && score.rootEntityType !== filters.rootEntityType) return false;
1511
+ if (filters.rootEntityName !== void 0 && score.rootEntityName !== filters.rootEntityName) return false;
1512
+ if (filters.serviceName !== void 0 && score.serviceName !== filters.serviceName) return false;
1513
+ if (filters.environment !== void 0 && score.environment !== filters.environment) return false;
1514
+ if (filters.executionSource !== void 0 && score.executionSource !== filters.executionSource) return false;
1485
1515
  if (filters.scorerId !== void 0) {
1486
1516
  const names = Array.isArray(filters.scorerId) ? filters.scorerId : [filters.scorerId];
1487
1517
  if (!names.includes(score.scorerId)) return false;
1488
1518
  }
1519
+ const scoreSource = score.scoreSource ?? score.source ?? null;
1520
+ if (filters.scoreSource !== void 0 && scoreSource !== filters.scoreSource) return false;
1521
+ if (filters.source !== void 0 && scoreSource !== filters.source) return false;
1489
1522
  if (filters.experimentId !== void 0 && score.experimentId !== filters.experimentId) return false;
1523
+ if (filters.tags != null && filters.tags.length > 0) {
1524
+ if (score.tags == null) return false;
1525
+ for (const tag of filters.tags) {
1526
+ if (!score.tags.includes(tag)) return false;
1527
+ }
1528
+ }
1490
1529
  return true;
1491
1530
  }
1492
1531
  // ============================================================================
1493
1532
  // Feedback
1494
1533
  // ============================================================================
1495
1534
  async createFeedback(args) {
1496
- this.db.feedbackRecords.push(args.feedback);
1535
+ this.db.feedbackRecords.push({
1536
+ ...args.feedback,
1537
+ feedbackSource: args.feedback.feedbackSource ?? args.feedback.source ?? "",
1538
+ source: args.feedback.feedbackSource ?? args.feedback.source ?? "",
1539
+ feedbackUserId: args.feedback.feedbackUserId ?? args.feedback.userId ?? (typeof args.feedback.metadata?.userId === "string" ? args.feedback.metadata.userId : null)
1540
+ });
1497
1541
  }
1498
1542
  async batchCreateFeedback(args) {
1499
1543
  for (const fb of args.feedbacks) {
1500
- this.db.feedbackRecords.push(fb);
1544
+ this.db.feedbackRecords.push({
1545
+ ...fb,
1546
+ feedbackSource: fb.feedbackSource ?? fb.source ?? "",
1547
+ source: fb.feedbackSource ?? fb.source ?? "",
1548
+ feedbackUserId: fb.feedbackUserId ?? fb.userId ?? (typeof fb.metadata?.userId === "string" ? fb.metadata.userId : null)
1549
+ });
1501
1550
  }
1502
1551
  }
1503
1552
  async listFeedback(args) {
1504
- const { filters, pagination, orderBy } = chunkB6D4D2CY_cjs.listFeedbackArgsSchema.parse(args);
1553
+ const { filters, pagination, orderBy } = chunkVYVPUH6H_cjs.listFeedbackArgsSchema.parse(args);
1505
1554
  let matching = this.db.feedbackRecords.filter((fb) => this.feedbackMatchesFilters(fb, filters));
1506
1555
  const dir = orderBy.direction === "DESC" ? -1 : 1;
1507
1556
  matching.sort((a, b) => dir * (a.timestamp.getTime() - b.timestamp.getTime()));
@@ -1522,19 +1571,43 @@ var ObservabilityInMemory = class extends ObservabilityStorage {
1522
1571
  }
1523
1572
  if (filters.traceId !== void 0 && fb.traceId !== filters.traceId) return false;
1524
1573
  if (filters.spanId !== void 0 && fb.spanId !== filters.spanId) return false;
1574
+ if (filters.entityType !== void 0 && fb.entityType !== filters.entityType) return false;
1575
+ if (filters.entityName !== void 0 && fb.entityName !== filters.entityName) return false;
1576
+ if (filters.userId !== void 0 && fb.userId !== filters.userId) return false;
1577
+ if (filters.organizationId !== void 0 && fb.organizationId !== filters.organizationId) return false;
1578
+ if (filters.resourceId !== void 0 && fb.resourceId !== filters.resourceId) return false;
1579
+ if (filters.runId !== void 0 && fb.runId !== filters.runId) return false;
1580
+ if (filters.sessionId !== void 0 && fb.sessionId !== filters.sessionId) return false;
1581
+ if (filters.threadId !== void 0 && fb.threadId !== filters.threadId) return false;
1582
+ if (filters.requestId !== void 0 && fb.requestId !== filters.requestId) return false;
1583
+ if (filters.parentEntityType !== void 0 && fb.parentEntityType !== filters.parentEntityType) return false;
1584
+ if (filters.parentEntityName !== void 0 && fb.parentEntityName !== filters.parentEntityName) return false;
1585
+ if (filters.rootEntityType !== void 0 && fb.rootEntityType !== filters.rootEntityType) return false;
1586
+ if (filters.rootEntityName !== void 0 && fb.rootEntityName !== filters.rootEntityName) return false;
1587
+ if (filters.serviceName !== void 0 && fb.serviceName !== filters.serviceName) return false;
1588
+ if (filters.environment !== void 0 && fb.environment !== filters.environment) return false;
1589
+ if (filters.executionSource !== void 0 && fb.executionSource !== filters.executionSource) return false;
1525
1590
  if (filters.feedbackType !== void 0) {
1526
1591
  const types = Array.isArray(filters.feedbackType) ? filters.feedbackType : [filters.feedbackType];
1527
1592
  if (!types.includes(fb.feedbackType)) return false;
1528
1593
  }
1529
- if (filters.source !== void 0 && fb.source !== filters.source) return false;
1594
+ const feedbackSource = fb.feedbackSource ?? fb.source ?? "";
1595
+ if (filters.feedbackSource !== void 0 && feedbackSource !== filters.feedbackSource) return false;
1596
+ if (filters.source !== void 0 && feedbackSource !== filters.source) return false;
1530
1597
  if (filters.experimentId !== void 0 && fb.experimentId !== filters.experimentId) return false;
1531
- if (filters.userId !== void 0 && fb.userId !== filters.userId) return false;
1598
+ if (filters.feedbackUserId !== void 0 && fb.feedbackUserId !== filters.feedbackUserId) return false;
1599
+ if (filters.tags != null && filters.tags.length > 0) {
1600
+ if (fb.tags == null) return false;
1601
+ for (const tag of filters.tags) {
1602
+ if (!fb.tags.includes(tag)) return false;
1603
+ }
1604
+ }
1532
1605
  return true;
1533
1606
  }
1534
1607
  };
1535
1608
 
1536
1609
  // src/storage/domains/observability/record-builders.ts
1537
- var entityTypeValues = new Set(Object.values(chunkB6D4D2CY_cjs.EntityType));
1610
+ var entityTypeValues = new Set(Object.values(chunkVYVPUH6H_cjs.EntityType));
1538
1611
  function toEntityType(value) {
1539
1612
  if (value && entityTypeValues.has(value)) {
1540
1613
  return value;
@@ -1566,8 +1639,6 @@ function serializeSpanAttributes(span) {
1566
1639
  }
1567
1640
  function buildCorrelationRecordFields(context) {
1568
1641
  return {
1569
- traceId: context?.traceId ?? null,
1570
- spanId: context?.spanId ?? null,
1571
1642
  tags: context?.tags ?? null,
1572
1643
  entityType: context?.entityType ?? null,
1573
1644
  entityId: context?.entityId ?? null,
@@ -1586,7 +1657,7 @@ function buildCorrelationRecordFields(context) {
1586
1657
  threadId: context?.threadId ?? null,
1587
1658
  requestId: context?.requestId ?? null,
1588
1659
  environment: context?.environment ?? null,
1589
- source: context?.source ?? null,
1660
+ executionSource: context?.source ?? null,
1590
1661
  serviceName: context?.serviceName ?? null,
1591
1662
  experimentId: context?.experimentId ?? null
1592
1663
  };
@@ -1618,7 +1689,7 @@ function buildLegacyLogMetadataCorrelationFields(metadata) {
1618
1689
  rootEntityType: toEntityType(getStringOrNull(metadata?.root_type) ?? void 0),
1619
1690
  rootEntityName: getStringOrNull(metadata?.root_name),
1620
1691
  environment: getStringOrNull(metadata?.environment),
1621
- source: getStringOrNull(metadata?.source),
1692
+ executionSource: getStringOrNull(metadata?.source),
1622
1693
  serviceName: getStringOrNull(metadata?.service_name)
1623
1694
  };
1624
1695
  }
@@ -1688,6 +1759,8 @@ function buildMetricRecord(event) {
1688
1759
  name: m.name,
1689
1760
  value: m.value,
1690
1761
  labels,
1762
+ traceId: m.traceId ?? m.correlationContext?.traceId ?? null,
1763
+ spanId: m.spanId ?? m.correlationContext?.spanId ?? null,
1691
1764
  ...correlationFields,
1692
1765
  scope: null,
1693
1766
  entityType: correlationFields.entityType ?? legacyCorrelationFields.entityType ?? null,
@@ -1713,8 +1786,8 @@ function buildLogRecord(event) {
1713
1786
  message: l.message,
1714
1787
  data: l.data ?? null,
1715
1788
  ...correlationFields,
1716
- traceId: correlationFields.traceId ?? l.traceId ?? null,
1717
- spanId: correlationFields.spanId ?? l.spanId ?? null,
1789
+ traceId: l.traceId ?? l.correlationContext?.traceId ?? null,
1790
+ spanId: l.spanId ?? l.correlationContext?.spanId ?? null,
1718
1791
  tags: correlationFields.tags ?? l.tags ?? null,
1719
1792
  entityType: correlationFields.entityType ?? legacyCorrelationFields.entityType ?? null,
1720
1793
  entityName: correlationFields.entityName ?? legacyCorrelationFields.entityName ?? null,
@@ -1723,7 +1796,7 @@ function buildLogRecord(event) {
1723
1796
  rootEntityType: correlationFields.rootEntityType ?? legacyCorrelationFields.rootEntityType ?? null,
1724
1797
  rootEntityName: correlationFields.rootEntityName ?? legacyCorrelationFields.rootEntityName ?? null,
1725
1798
  environment: correlationFields.environment ?? legacyCorrelationFields.environment ?? null,
1726
- source: correlationFields.source ?? legacyCorrelationFields.source ?? null,
1799
+ executionSource: correlationFields.executionSource ?? legacyCorrelationFields.executionSource ?? null,
1727
1800
  serviceName: correlationFields.serviceName ?? legacyCorrelationFields.serviceName ?? null,
1728
1801
  scope: null,
1729
1802
  metadata: l.metadata ?? null
@@ -1731,33 +1804,41 @@ function buildLogRecord(event) {
1731
1804
  }
1732
1805
  function buildScoreRecord(event) {
1733
1806
  const s = event.score;
1807
+ const correlationFields = buildCorrelationRecordFields(s.correlationContext);
1734
1808
  return {
1735
1809
  timestamp: s.timestamp,
1736
- traceId: s.traceId,
1737
- spanId: s.spanId ?? null,
1810
+ traceId: s.traceId ?? s.correlationContext?.traceId ?? null,
1811
+ spanId: s.spanId ?? s.correlationContext?.spanId ?? null,
1738
1812
  scorerId: s.scorerId,
1739
1813
  scorerVersion: s.scorerVersion ?? null,
1740
- source: s.source ?? null,
1814
+ scoreSource: s.scoreSource ?? s.source ?? null,
1815
+ source: s.scoreSource ?? s.source ?? null,
1741
1816
  score: s.score,
1742
1817
  reason: s.reason ?? null,
1743
- experimentId: s.experimentId ?? null,
1818
+ ...correlationFields,
1819
+ experimentId: correlationFields.experimentId ?? s.experimentId ?? null,
1820
+ scope: null,
1744
1821
  scoreTraceId: s.scoreTraceId ?? null,
1745
1822
  metadata: s.metadata ?? null
1746
1823
  };
1747
1824
  }
1748
1825
  function buildFeedbackRecord(event) {
1749
1826
  const fb = event.feedback;
1750
- const userId = typeof fb.metadata?.userId === "string" ? fb.metadata.userId : null;
1827
+ const correlationFields = buildCorrelationRecordFields(fb.correlationContext);
1751
1828
  return {
1752
1829
  timestamp: fb.timestamp,
1753
- traceId: fb.traceId,
1754
- spanId: fb.spanId ?? null,
1755
- source: fb.source,
1830
+ traceId: fb.traceId ?? fb.correlationContext?.traceId ?? null,
1831
+ spanId: fb.spanId ?? fb.correlationContext?.spanId ?? null,
1832
+ feedbackSource: fb.feedbackSource ?? fb.source ?? "",
1833
+ source: fb.feedbackSource ?? fb.source ?? "",
1756
1834
  feedbackType: fb.feedbackType,
1757
1835
  value: fb.value,
1758
1836
  comment: fb.comment ?? null,
1759
- experimentId: fb.experimentId ?? null,
1760
- userId,
1837
+ ...correlationFields,
1838
+ experimentId: correlationFields.experimentId ?? fb.experimentId ?? null,
1839
+ feedbackUserId: fb.feedbackUserId ?? fb.userId ?? (typeof fb.metadata?.userId === "string" ? fb.metadata.userId : null),
1840
+ scope: null,
1841
+ sourceId: fb.sourceId ?? null,
1761
1842
  metadata: fb.metadata ?? null
1762
1843
  };
1763
1844
  }
@@ -1990,7 +2071,7 @@ var InMemoryAgentsStorage = class extends AgentsStorage {
1990
2071
  if (metadata && Object.keys(metadata).length > 0) {
1991
2072
  agents = agents.filter((agent) => {
1992
2073
  if (!agent.metadata) return false;
1993
- return Object.entries(metadata).every(([key, value]) => chunk64565EZF_cjs.deepEqual(agent.metadata[key], value));
2074
+ return Object.entries(metadata).every(([key, value]) => chunkATKRXBCX_cjs.deepEqual(agent.metadata[key], value));
1994
2075
  });
1995
2076
  }
1996
2077
  const sortedAgents = this.sortAgents(agents, field, direction);
@@ -2475,6 +2556,7 @@ var DatasetsInMemory = class extends DatasetsStorage {
2475
2556
  requestContextSchema: input.requestContextSchema,
2476
2557
  targetType: input.targetType,
2477
2558
  targetIds: input.targetIds,
2559
+ scorerIds: input.scorerIds ?? null,
2478
2560
  version: 0,
2479
2561
  createdAt: now,
2480
2562
  updatedAt: now
@@ -2502,6 +2584,7 @@ var DatasetsInMemory = class extends DatasetsStorage {
2502
2584
  tags: args.tags !== void 0 ? args.tags : existing.tags,
2503
2585
  targetType: args.targetType !== void 0 ? args.targetType : existing.targetType,
2504
2586
  targetIds: args.targetIds !== void 0 ? args.targetIds : existing.targetIds,
2587
+ scorerIds: args.scorerIds !== void 0 ? args.scorerIds : existing.scorerIds,
2505
2588
  updatedAt: /* @__PURE__ */ new Date()
2506
2589
  };
2507
2590
  this.db.datasets.set(args.id, updated);
@@ -3181,7 +3264,7 @@ var InMemoryMCPClientsStorage = class extends MCPClientsStorage {
3181
3264
  if (metadata && Object.keys(metadata).length > 0) {
3182
3265
  configs = configs.filter((config) => {
3183
3266
  if (!config.metadata) return false;
3184
- return Object.entries(metadata).every(([key, value]) => chunk64565EZF_cjs.deepEqual(config.metadata[key], value));
3267
+ return Object.entries(metadata).every(([key, value]) => chunkATKRXBCX_cjs.deepEqual(config.metadata[key], value));
3185
3268
  });
3186
3269
  }
3187
3270
  const sortedConfigs = this.sortConfigs(configs, field, direction);
@@ -3449,7 +3532,7 @@ var InMemoryMCPServersStorage = class extends MCPServersStorage {
3449
3532
  if (metadata && Object.keys(metadata).length > 0) {
3450
3533
  configs = configs.filter((config) => {
3451
3534
  if (!config.metadata) return false;
3452
- return Object.entries(metadata).every(([key, value]) => chunk64565EZF_cjs.deepEqual(config.metadata[key], value));
3535
+ return Object.entries(metadata).every(([key, value]) => chunkATKRXBCX_cjs.deepEqual(config.metadata[key], value));
3453
3536
  });
3454
3537
  }
3455
3538
  const sortedConfigs = this.sortConfigs(configs, field, direction);
@@ -4914,7 +4997,7 @@ var InMemoryPromptBlocksStorage = class extends PromptBlocksStorage {
4914
4997
  if (metadata && Object.keys(metadata).length > 0) {
4915
4998
  blocks = blocks.filter((block) => {
4916
4999
  if (!block.metadata) return false;
4917
- return Object.entries(metadata).every(([key, value]) => chunk64565EZF_cjs.deepEqual(block.metadata[key], value));
5000
+ return Object.entries(metadata).every(([key, value]) => chunkATKRXBCX_cjs.deepEqual(block.metadata[key], value));
4918
5001
  });
4919
5002
  }
4920
5003
  const sortedBlocks = this.sortBlocks(blocks, field, direction);
@@ -5180,7 +5263,7 @@ var InMemoryScorerDefinitionsStorage = class extends ScorerDefinitionsStorage {
5180
5263
  if (metadata && Object.keys(metadata).length > 0) {
5181
5264
  scorers = scorers.filter((scorer) => {
5182
5265
  if (!scorer.metadata) return false;
5183
- return Object.entries(metadata).every(([key, value]) => chunk64565EZF_cjs.deepEqual(scorer.metadata[key], value));
5266
+ return Object.entries(metadata).every(([key, value]) => chunkATKRXBCX_cjs.deepEqual(scorer.metadata[key], value));
5184
5267
  });
5185
5268
  }
5186
5269
  const sortedScorers = this.sortScorers(scorers, field, direction);
@@ -6228,7 +6311,7 @@ var InMemoryWorkspacesStorage = class extends WorkspacesStorage {
6228
6311
  if (metadata && Object.keys(metadata).length > 0) {
6229
6312
  configs = configs.filter((config) => {
6230
6313
  if (!config.metadata) return false;
6231
- return Object.entries(metadata).every(([key, value]) => chunk64565EZF_cjs.deepEqual(config.metadata[key], value));
6314
+ return Object.entries(metadata).every(([key, value]) => chunkATKRXBCX_cjs.deepEqual(config.metadata[key], value));
6232
6315
  });
6233
6316
  }
6234
6317
  const sortedConfigs = this.sortConfigs(configs, field, direction);
@@ -8068,7 +8151,7 @@ var StoreOperationsInMemory = class extends StoreOperations {
8068
8151
  async insert({ tableName, record }) {
8069
8152
  const table = this.data[tableName];
8070
8153
  let key = record.id;
8071
- if ([chunkQXPUTX3W_cjs.TABLE_WORKFLOW_SNAPSHOT].includes(tableName) && !record.id && record.run_id) {
8154
+ if ([chunkUZ426KMJ_cjs.TABLE_WORKFLOW_SNAPSHOT].includes(tableName) && !record.id && record.run_id) {
8072
8155
  key = record.workflow_name ? `${record.workflow_name}-${record.run_id}` : record.run_id;
8073
8156
  record.id = key;
8074
8157
  } else if (!record.id) {
@@ -8081,7 +8164,7 @@ var StoreOperationsInMemory = class extends StoreOperations {
8081
8164
  const table = this.data[tableName];
8082
8165
  for (const record of records) {
8083
8166
  let key = record.id;
8084
- if ([chunkQXPUTX3W_cjs.TABLE_WORKFLOW_SNAPSHOT].includes(tableName) && !record.id && record.run_id) {
8167
+ if ([chunkUZ426KMJ_cjs.TABLE_WORKFLOW_SNAPSHOT].includes(tableName) && !record.id && record.run_id) {
8085
8168
  key = record.run_id;
8086
8169
  record.id = key;
8087
8170
  } else if (!record.id) {
@@ -8203,5 +8286,5 @@ exports.serializeSpanAttributes = serializeSpanAttributes;
8203
8286
  exports.toEntityType = toEntityType;
8204
8287
  exports.transformRow = transformRow;
8205
8288
  exports.transformScoreRow = transformScoreRow;
8206
- //# sourceMappingURL=chunk-X36INADV.cjs.map
8207
- //# sourceMappingURL=chunk-X36INADV.cjs.map
8289
+ //# sourceMappingURL=chunk-CGDV5YUS.cjs.map
8290
+ //# sourceMappingURL=chunk-CGDV5YUS.cjs.map