@mastra/core 1.20.0 → 1.21.0-alpha.1

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 (205) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +12 -2
  3. package/dist/agent/agent-legacy.d.ts +2 -1
  4. package/dist/agent/agent-legacy.d.ts.map +1 -1
  5. package/dist/agent/agent.d.ts +32 -2
  6. package/dist/agent/agent.d.ts.map +1 -1
  7. package/dist/agent/index.cjs +8 -8
  8. package/dist/agent/index.js +1 -1
  9. package/dist/{chunk-RB7WTRE2.js → chunk-2JJQDDEN.js} +8 -6
  10. package/dist/chunk-2JJQDDEN.js.map +1 -0
  11. package/dist/{chunk-2QO3IQWR.cjs → chunk-2STTKMFO.cjs} +82 -82
  12. package/dist/{chunk-2QO3IQWR.cjs.map → chunk-2STTKMFO.cjs.map} +1 -1
  13. package/dist/{chunk-3FW24B6P.cjs → chunk-3EPAGV3T.cjs} +4 -4
  14. package/dist/{chunk-3FW24B6P.cjs.map → chunk-3EPAGV3T.cjs.map} +1 -1
  15. package/dist/{chunk-F3OO446O.cjs → chunk-3OK3LWP4.cjs} +34 -32
  16. package/dist/chunk-3OK3LWP4.cjs.map +1 -0
  17. package/dist/{chunk-7JKIBZI7.js → chunk-5QQZSWLU.js} +4 -4
  18. package/dist/{chunk-7JKIBZI7.js.map → chunk-5QQZSWLU.js.map} +1 -1
  19. package/dist/{chunk-7URCVA7N.js → chunk-6PJQGNFV.js} +10 -10
  20. package/dist/chunk-6PJQGNFV.js.map +1 -0
  21. package/dist/{chunk-ED6CLXQI.cjs → chunk-75LYWKFT.cjs} +25 -25
  22. package/dist/chunk-75LYWKFT.cjs.map +1 -0
  23. package/dist/{chunk-53NCHPV5.cjs → chunk-AL5ACSAH.cjs} +7 -7
  24. package/dist/{chunk-53NCHPV5.cjs.map → chunk-AL5ACSAH.cjs.map} +1 -1
  25. package/dist/{chunk-S3JFAGMH.js → chunk-B4KB75RH.js} +67 -21
  26. package/dist/chunk-B4KB75RH.js.map +1 -0
  27. package/dist/{chunk-3R4YK3VD.js → chunk-CJA2FWKT.js} +3 -3
  28. package/dist/{chunk-3R4YK3VD.js.map → chunk-CJA2FWKT.js.map} +1 -1
  29. package/dist/{chunk-FQCASJGT.js → chunk-D7NEB3NV.js} +5 -5
  30. package/dist/{chunk-FQCASJGT.js.map → chunk-D7NEB3NV.js.map} +1 -1
  31. package/dist/{chunk-CRGRF7QL.cjs → chunk-E4TMODUG.cjs} +75 -29
  32. package/dist/chunk-E4TMODUG.cjs.map +1 -0
  33. package/dist/{chunk-Q4YIRO5A.js → chunk-ESQI2JRD.js} +5 -3
  34. package/dist/chunk-ESQI2JRD.js.map +1 -0
  35. package/dist/{chunk-57OYWNNV.cjs → chunk-EX2LVHTL.cjs} +97 -288
  36. package/dist/chunk-EX2LVHTL.cjs.map +1 -0
  37. package/dist/{chunk-J7AHOVB2.cjs → chunk-F6ZURDS4.cjs} +368 -218
  38. package/dist/chunk-F6ZURDS4.cjs.map +1 -0
  39. package/dist/chunk-FAULJTC5.js +290 -0
  40. package/dist/chunk-FAULJTC5.js.map +1 -0
  41. package/dist/{chunk-T72NHA2O.cjs → chunk-FJT6H2US.cjs} +3 -3
  42. package/dist/chunk-FJT6H2US.cjs.map +1 -0
  43. package/dist/{chunk-BCOOJFBB.js → chunk-GGJSRBFY.js} +13 -7
  44. package/dist/chunk-GGJSRBFY.js.map +1 -0
  45. package/dist/{chunk-CU6QKXLW.js → chunk-HU6OWHBI.js} +3 -3
  46. package/dist/{chunk-CU6QKXLW.js.map → chunk-HU6OWHBI.js.map} +1 -1
  47. package/dist/{chunk-JBOVTCTQ.cjs → chunk-I7AUCCNO.cjs} +69 -69
  48. package/dist/{chunk-JBOVTCTQ.cjs.map → chunk-I7AUCCNO.cjs.map} +1 -1
  49. package/dist/{chunk-GFRRPVRL.cjs → chunk-IG6JCDCL.cjs} +185 -185
  50. package/dist/{chunk-GFRRPVRL.cjs.map → chunk-IG6JCDCL.cjs.map} +1 -1
  51. package/dist/{chunk-UFXC6VJW.js → chunk-JB7HORUI.js} +3 -3
  52. package/dist/{chunk-UFXC6VJW.js.map → chunk-JB7HORUI.js.map} +1 -1
  53. package/dist/{chunk-2H6WEHWI.js → chunk-JBLN5IVV.js} +4 -4
  54. package/dist/{chunk-2H6WEHWI.js.map → chunk-JBLN5IVV.js.map} +1 -1
  55. package/dist/{chunk-HOAKFZ6P.js → chunk-JIA3SJK6.js} +198 -48
  56. package/dist/chunk-JIA3SJK6.js.map +1 -0
  57. package/dist/{chunk-MIWHSH7L.js → chunk-KLHD3PBK.js} +3 -3
  58. package/dist/chunk-KLHD3PBK.js.map +1 -0
  59. package/dist/{chunk-5PAHRQLU.js → chunk-ODUJYYA5.js} +32 -7
  60. package/dist/chunk-ODUJYYA5.js.map +1 -0
  61. package/dist/chunk-QRJSP5G2.cjs +300 -0
  62. package/dist/chunk-QRJSP5G2.cjs.map +1 -0
  63. package/dist/{chunk-7PYYVPF5.js → chunk-RF42EKVR.js} +6 -6
  64. package/dist/{chunk-7PYYVPF5.js.map → chunk-RF42EKVR.js.map} +1 -1
  65. package/dist/{chunk-L6AZQNL2.cjs → chunk-S6B5GIFC.cjs} +31 -25
  66. package/dist/chunk-S6B5GIFC.cjs.map +1 -0
  67. package/dist/{chunk-YEQJIM5W.cjs → chunk-TMRHUTY6.cjs} +15 -15
  68. package/dist/{chunk-YEQJIM5W.cjs.map → chunk-TMRHUTY6.cjs.map} +1 -1
  69. package/dist/{chunk-BZW4PQNA.cjs → chunk-UUNTJ256.cjs} +9 -7
  70. package/dist/chunk-UUNTJ256.cjs.map +1 -0
  71. package/dist/{chunk-RDHIVATT.cjs → chunk-VAACVUEO.cjs} +9 -9
  72. package/dist/{chunk-RDHIVATT.cjs.map → chunk-VAACVUEO.cjs.map} +1 -1
  73. package/dist/{chunk-UCCVELTP.js → chunk-VJKW6RRY.js} +7 -7
  74. package/dist/{chunk-UCCVELTP.js.map → chunk-VJKW6RRY.js.map} +1 -1
  75. package/dist/{chunk-2NISBCML.js → chunk-WG7QIVL7.js} +92 -280
  76. package/dist/chunk-WG7QIVL7.js.map +1 -0
  77. package/dist/{chunk-QG7NJ3JU.cjs → chunk-XANKVDSM.cjs} +10 -10
  78. package/dist/{chunk-QG7NJ3JU.cjs.map → chunk-XANKVDSM.cjs.map} +1 -1
  79. package/dist/{chunk-HVVHMUI4.cjs → chunk-Z745DCGY.cjs} +34 -9
  80. package/dist/chunk-Z745DCGY.cjs.map +1 -0
  81. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  82. package/dist/datasets/index.cjs +17 -17
  83. package/dist/datasets/index.js +2 -2
  84. package/dist/docs/SKILL.md +3 -3
  85. package/dist/docs/assets/SOURCE_MAP.json +522 -522
  86. package/dist/docs/references/docs-server-mastra-client.md +12 -10
  87. package/dist/docs/references/docs-server-mastra-server.md +13 -1
  88. package/dist/docs/references/docs-studio-observability.md +9 -1
  89. package/dist/docs/references/docs-studio-overview.md +1 -1
  90. package/dist/docs/references/reference-agents-getLLM.md +9 -3
  91. package/dist/docs/references/reference.md +2 -0
  92. package/dist/evals/base.d.ts +29 -6
  93. package/dist/evals/base.d.ts.map +1 -1
  94. package/dist/evals/index.cjs +23 -23
  95. package/dist/evals/index.js +3 -3
  96. package/dist/evals/scoreTraces/index.cjs +21 -37
  97. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  98. package/dist/evals/scoreTraces/index.js +18 -34
  99. package/dist/evals/scoreTraces/index.js.map +1 -1
  100. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts +2 -3
  101. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  102. package/dist/evals/types.d.ts.map +1 -1
  103. package/dist/harness/index.cjs +9 -9
  104. package/dist/harness/index.js +6 -6
  105. package/dist/index.cjs +2 -2
  106. package/dist/index.js +1 -1
  107. package/dist/llm/index.cjs +16 -16
  108. package/dist/llm/index.js +5 -5
  109. package/dist/llm/model/provider-types.generated.d.ts +1 -0
  110. package/dist/logger/index.cjs +6 -6
  111. package/dist/logger/index.js +1 -1
  112. package/dist/loop/index.cjs +14 -14
  113. package/dist/loop/index.js +1 -1
  114. package/dist/mastra/hooks.d.ts +3 -0
  115. package/dist/mastra/hooks.d.ts.map +1 -1
  116. package/dist/mastra/index.cjs +2 -2
  117. package/dist/mastra/index.d.ts +3 -3
  118. package/dist/mastra/index.d.ts.map +1 -1
  119. package/dist/mastra/index.js +1 -1
  120. package/dist/memory/index.cjs +14 -14
  121. package/dist/memory/index.js +1 -1
  122. package/dist/models-dev-4HBR4MAS.js +3 -0
  123. package/dist/{models-dev-WTF6UG4D.js.map → models-dev-4HBR4MAS.js.map} +1 -1
  124. package/dist/models-dev-W2D3QNCX.cjs +12 -0
  125. package/dist/{models-dev-TKKI7LVH.cjs.map → models-dev-W2D3QNCX.cjs.map} +1 -1
  126. package/dist/netlify-A6TIZLU7.cjs +12 -0
  127. package/dist/{netlify-QCPWAYI2.cjs.map → netlify-A6TIZLU7.cjs.map} +1 -1
  128. package/dist/netlify-YRVEP6E4.js +3 -0
  129. package/dist/{netlify-V6N4TT4H.js.map → netlify-YRVEP6E4.js.map} +1 -1
  130. package/dist/observability/index.cjs +36 -32
  131. package/dist/observability/index.js +2 -2
  132. package/dist/observability/no-op.d.ts +1 -1
  133. package/dist/observability/no-op.d.ts.map +1 -1
  134. package/dist/observability/types/core.d.ts +15 -1
  135. package/dist/observability/types/core.d.ts.map +1 -1
  136. package/dist/observability/types/feedback.d.ts +2 -2
  137. package/dist/observability/types/feedback.d.ts.map +1 -1
  138. package/dist/observability/types/scores.d.ts +16 -7
  139. package/dist/observability/types/scores.d.ts.map +1 -1
  140. package/dist/observability/types/tracing.d.ts +27 -1
  141. package/dist/observability/types/tracing.d.ts.map +1 -1
  142. package/dist/observability/utils.d.ts +12 -1
  143. package/dist/observability/utils.d.ts.map +1 -1
  144. package/dist/processor-provider/index.cjs +10 -10
  145. package/dist/processor-provider/index.js +1 -1
  146. package/dist/processors/index.cjs +44 -44
  147. package/dist/processors/index.js +1 -1
  148. package/dist/provider-registry-6ONBOGD7.cjs +40 -0
  149. package/dist/{provider-registry-C54SHAP6.cjs.map → provider-registry-6ONBOGD7.cjs.map} +1 -1
  150. package/dist/provider-registry-AIPF3CGZ.js +3 -0
  151. package/dist/{provider-registry-34O53EL4.js.map → provider-registry-AIPF3CGZ.js.map} +1 -1
  152. package/dist/provider-registry.json +4 -2
  153. package/dist/relevance/index.cjs +3 -3
  154. package/dist/relevance/index.js +1 -1
  155. package/dist/storage/constants.cjs +56 -56
  156. package/dist/storage/constants.js +1 -1
  157. package/dist/storage/domains/observability/base.d.ts +4 -0
  158. package/dist/storage/domains/observability/base.d.ts.map +1 -1
  159. package/dist/storage/domains/observability/record-builders.d.ts.map +1 -1
  160. package/dist/storage/index.cjs +286 -286
  161. package/dist/storage/index.js +3 -3
  162. package/dist/stream/index.cjs +8 -8
  163. package/dist/stream/index.js +1 -1
  164. package/dist/test-utils/llm-mock.cjs +4 -4
  165. package/dist/test-utils/llm-mock.js +1 -1
  166. package/dist/tool-loop-agent/index.cjs +4 -4
  167. package/dist/tool-loop-agent/index.js +1 -1
  168. package/dist/utils.cjs +25 -25
  169. package/dist/utils.js +1 -1
  170. package/dist/vector/index.cjs +7 -7
  171. package/dist/vector/index.js +1 -1
  172. package/dist/workflows/evented/index.cjs +10 -10
  173. package/dist/workflows/evented/index.js +1 -1
  174. package/dist/workflows/index.cjs +24 -24
  175. package/dist/workflows/index.js +1 -1
  176. package/package.json +4 -4
  177. package/src/llm/model/provider-types.generated.d.ts +1 -0
  178. package/dist/chunk-2NISBCML.js.map +0 -1
  179. package/dist/chunk-57OYWNNV.cjs.map +0 -1
  180. package/dist/chunk-5PAHRQLU.js.map +0 -1
  181. package/dist/chunk-7URCVA7N.js.map +0 -1
  182. package/dist/chunk-AC5GUOWY.js +0 -72
  183. package/dist/chunk-AC5GUOWY.js.map +0 -1
  184. package/dist/chunk-BCOOJFBB.js.map +0 -1
  185. package/dist/chunk-BZW4PQNA.cjs.map +0 -1
  186. package/dist/chunk-CRGRF7QL.cjs.map +0 -1
  187. package/dist/chunk-ED6CLXQI.cjs.map +0 -1
  188. package/dist/chunk-EZHHTAJU.cjs +0 -78
  189. package/dist/chunk-EZHHTAJU.cjs.map +0 -1
  190. package/dist/chunk-F3OO446O.cjs.map +0 -1
  191. package/dist/chunk-HOAKFZ6P.js.map +0 -1
  192. package/dist/chunk-HVVHMUI4.cjs.map +0 -1
  193. package/dist/chunk-J7AHOVB2.cjs.map +0 -1
  194. package/dist/chunk-L6AZQNL2.cjs.map +0 -1
  195. package/dist/chunk-MIWHSH7L.js.map +0 -1
  196. package/dist/chunk-Q4YIRO5A.js.map +0 -1
  197. package/dist/chunk-RB7WTRE2.js.map +0 -1
  198. package/dist/chunk-S3JFAGMH.js.map +0 -1
  199. package/dist/chunk-T72NHA2O.cjs.map +0 -1
  200. package/dist/models-dev-TKKI7LVH.cjs +0 -12
  201. package/dist/models-dev-WTF6UG4D.js +0 -3
  202. package/dist/netlify-QCPWAYI2.cjs +0 -12
  203. package/dist/netlify-V6N4TT4H.js +0 -3
  204. package/dist/provider-registry-34O53EL4.js +0 -3
  205. package/dist/provider-registry-C54SHAP6.cjs +0 -40
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/stream/aisdk/v4/usage.ts","../src/llm/model/model.ts","../src/llm/model/aisdk/generate-to-stream.ts","../src/llm/model/aisdk/v5/model.ts"],"names":["onFinish"],"mappings":";;;;;;;;;;;;AAkBO,SAAS,eAAe,KAAA,EAAqD;AAClF,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,OAAO;AAAA,IACL,aAAa,KAAA,CAAM,YAAA;AAAA,IACnB,cAAc,KAAA,CAAM;AAAA,GACtB;AACF;;;ACuBO,IAAM,WAAA,GAAN,cAA0B,UAAA,CAAW;AAAA,EAC1C,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EAEA,WAAA,CAAY,EAAE,KAAA,EAAO,MAAA,EAAQ,SAAQ,EAA4E;AAC/G,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA;AAEvB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,IAAA,IAAA,CAAK,QAAA,GAAW,OAAA;AAEhB,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AACf,MAAA,IAAI,MAAA,CAAO,WAAU,EAAG;AACtB,QAAA,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,CAAA;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,qBAAqB,CAAA,EAAqB;AACxC,IAAA,IAAI,EAAE,MAAA,EAAQ;AACZ,MAAA,IAAA,CAAK,WAAA,CAAY,EAAE,MAAM,CAAA;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,iBAAiB,CAAA,EAAW;AAC1B,IAAA,IAAA,CAAK,OAAA,GAAU,CAAA;AAAA,EACjB;AAAA,EAEA,WAAA,GAAc;AACZ,IAAA,OAAO,KAAK,MAAA,CAAO,QAAA;AAAA,EACrB;AAAA,EAEA,UAAA,GAAa;AACX,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,EACrB;AAAA,EAEA,QAAA,GAAW;AACT,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEQ,mBAAmB,MAAA,EAAyC;AAClE,IAAA,MAAM,QAAQ,IAAA,CAAK,MAAA;AAEnB,IAAA,MAAM,qBAAqB,EAAC;AAE5B,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAM,SAAA,GAAY;AAAA,QAChB,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,yBAAA,EAA2B,MAAM,yBAAA,IAA6B,KAAA;AAAA,QAC9D,UAAU,KAAA,CAAM;AAAA,OAClB;AACA,MAAA,kBAAA,CAAmB,IAAA;AAAA,QACjB,IAAI,iCAAiC,SAAS,CAAA;AAAA,QAC9C,IAAI,wBAAwB,SAAS,CAAA;AAAA,QACrC,IAAI,wBAAwB,SAAS,CAAA;AAAA,QACrC,IAAI,2BAA2B,SAAS,CAAA;AAAA,QACxC,IAAI,0BAA0B,SAAS,CAAA;AAAA,QACvC,IAAI,sBAAsB,SAAS;AAAA,OACrC;AAAA,IACF;AAGA,IAAA,OAAO,gBAAA,CAAiB;AAAA,MACtB,MAAA;AAAA,MACA,YAAA,EAAc,kBAAA;AAAA,MACd,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,MAAA,CAA6E;AAAA,IACjF,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,CAAA;AAAA,IACX,QAAQ,EAAC;AAAA,IACT,WAAA;AAAA,IACA,UAAA,GAAa,MAAA;AAAA,IACb,YAAA;AAAA,IACA,mBAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,GAAG;AAAA,GACL,EAAkF;AAChF,IAAA,MAAM,QAAQ,IAAA,CAAK,MAAA;AACnB,IAAA,MAAM,oBAAA,GAAuB,4BAA4B,IAAI,CAAA;AAE7D,IAAA,IAAA,CAAK,MAAA,CAAO,MAAM,iBAAA,EAAmB;AAAA,MACnC,KAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,KAAK;AAAA,KACzB,CAAA;AAED,IAAA,IAAI,MAAA,GAAyE,MAAA;AAE7E,IAAA,IAAI,mBAAA,EAAqB;AACvB,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,2BAAA,EAA6B;AAAA,QAC7C;AAAA,OACD,CAAA;AAED,MAAA,IAAI,SAAA,CAAU,mBAAmB,CAAA,EAAG;AAClC,QAAA,MAAA,GAAS,mBAAA;AACT,QAAA,IAAI,UAAA,CAAW,MAAM,CAAA,EAAG;AACtB,UAAA,MAAA,GAAS,SAAA,CAAU,MAAM,CAAA,CAAE,IAAA;AAAA,QAC7B;AAGA,QAAA,MAAM,cAAA,GAAiB,iBAAiB,MAAa,CAAA;AACrD,QAAA,MAAM,eAAA,GAAkB,2BAA2B,cAAc,CAAA;AAEjE,QAAA,MAAA,GAAS,WAA2B,eAAe,CAAA;AAAA,MACrD,CAAA,MAAO;AACL,QAAA,MAAA,GAAS,WAA2B,mBAAmB,CAAA;AAAA,MACzD;AAAA,IACF;AAGA,IAAA,IAAI,SAAS,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,CAAA,EAAG;AAC1C,MAAA,KAAA,MAAW,IAAA,IAAQ,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA,EAAG;AACvC,QAAA,IAAI,KAAK,UAAA,EAAY;AACnB,UAAA,IAAI,UAAA,IAAc,KAAK,UAAA,EAAY;AACjC,YAAA,IAAA,CAAK,aAAa,IAAA,CAAK,UAAA;AAAA,UACzB,CAAA,MAAA,IAAW,wBAAA,CAAyB,IAAA,CAAK,UAAU,CAAA,EAAG;AACpD,YAAA,IAAA,CAAK,UAAA,GAAa,UAAA,CAAW,0BAAA,CAA2B,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA,UAC1E,CAAA,MAAO;AACL,YAAA,IAAA,CAAK,UAAA,GAAa,UAAA,CAAW,IAAA,CAAK,UAAU,CAAA;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,CAAe,WAAA,EAAa,eAAA,CAAgB;AAAA,MAC/E,IAAA,EAAM,CAAA,MAAA,EAAS,KAAA,CAAM,OAAO,CAAA,CAAA,CAAA;AAAA,MAC5B,IAAA,EAAA,kBAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,UAAA,EAAY;AAAA,QACV,OAAO,KAAA,CAAM,OAAA;AAAA,QACb,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,UAAA,EAAY;AAAA,UACV,WAAA;AAAA,UACA,iBAAiB,IAAA,CAAK,SAAA;AAAA,UACtB,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,kBAAkB,IAAA,CAAK,gBAAA;AAAA,UACvB,iBAAiB,IAAA,CAAK;AAAA,SACxB;AAAA,QACA,SAAA,EAAW;AAAA,OACb;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAe,KAAK,QAAA,EAAU,aAAA;AAAA,MAC9B;AAAA,KACD,CAAA;AAED,IAAA,MAAM,cAAA,GAAwD;AAAA,MAC5D,GAAG,IAAA;AAAA,MACH,QAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAI;AAAA,OACN;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAc,OAAM,KAAA,KAAS;AAC3B,QAAA,IAAI;AACF,UAAA,MAAM,YAAA,GAAe,EAAE,GAAG,KAAA,EAAO,OAAe,CAAA;AAAA,QAClD,SAAS,CAAA,EAAY;AACnB,UAAA,MAAM,cAAc,IAAI,WAAA;AAAA,YACtB;AAAA,cACE,EAAA,EAAI,mDAAA;AAAA,cACJ,MAAA,EAAA,KAAA;AAAA,cACA,QAAA,EAAA,MAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,SAAS,KAAA,CAAM,OAAA;AAAA,gBACf,eAAe,KAAA,CAAM,QAAA;AAAA,gBACrB,OAAO,KAAA,IAAS,SAAA;AAAA,gBAChB,UAAU,QAAA,IAAY,SAAA;AAAA,gBACtB,YAAY,UAAA,IAAc,SAAA;AAAA,gBAC1B,cAAc,KAAA,EAAO,YAAA;AAAA,gBACrB,WAAW,KAAA,EAAO,SAAA,GAAY,KAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAA,GAAI,EAAA;AAAA,gBAChE,aAAa,KAAA,EAAO,WAAA,GAAc,KAAK,SAAA,CAAU,KAAA,CAAM,WAAW,CAAA,GAAI,EAAA;AAAA,gBACtE,OAAO,KAAA,EAAO,KAAA,GAAQ,KAAK,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA,GAAI;AAAA;AACtD,aACF;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAM,WAAA;AAAA,QACR;AAEA,QAAA,IAAA,CAAK,MAAA,CAAO,MAAM,kBAAA,EAAoB;AAAA,UACpC,MAAM,KAAA,EAAO,IAAA;AAAA,UACb,WAAW,KAAA,EAAO,SAAA;AAAA,UAClB,aAAa,KAAA,EAAO,WAAA;AAAA,UACpB,cAAc,KAAA,EAAO,YAAA;AAAA,UACrB,OAAO,KAAA,EAAO,KAAA;AAAA,UACd;AAAA,SACD,CAAA;AAED,QAAA,MAAM,eAAA,GAAkB,SAAS,KAAA,EAAO,QAAA,EAAU,UAAU,8BAA8B,CAAA,IAAK,IAAI,EAAE,CAAA;AACrG,QAAA,IAAI,CAAC,KAAA,CAAM,eAAe,KAAK,eAAA,GAAkB,CAAA,IAAK,kBAAkB,GAAA,EAAM;AAC5E,UAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,4CAAA,EAA8C,EAAE,OAAO,CAAA;AACxE,UAAA,MAAM,KAAA,CAAM,KAAK,GAAI,CAAA;AAAA,QACvB;AAAA,MACF,CAAA;AAAA,MACA,mBAAA,EAAqB,MAAA,GACjB,cAAA,CAAO,MAAA,CAAO;AAAA,QACZ;AAAA,OACD,CAAA,GACD;AAAA,KACN;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAuC,MAAM,kBAAA,CAAmB;AAAA,QACpE,IAAA,EAAM,OAAA;AAAA,QACN,EAAA,EAAI,MAAM,YAAA,CAAa,cAAc;AAAA,OACtC,CAAA;AAED,MAAA,IAAI,MAAA,IAAU,MAAA,CAAO,YAAA,KAAiB,MAAA,EAAQ;AAC5C,QAAA,MAAA,CAAO,SAAU,MAAA,CAAe,mBAAA;AAAA,MAClC;AACA,MAAA,OAAA,EAAS,GAAA,CAAI;AAAA,QACX,MAAA,EAAQ;AAAA,UACN,MAAM,MAAA,CAAO,IAAA;AAAA,UACb,QAAQ,MAAA,CAAO,MAAA;AAAA,UACf,WAAW,MAAA,CAAO,gBAAA;AAAA,UAClB,eAAe,MAAA,CAAO,SAAA;AAAA,UACtB,OAAO,MAAA,CAAO,KAAA;AAAA,UACd,SAAS,MAAA,CAAO,OAAA;AAAA,UAChB,WAAW,MAAA,CAAO,SAAA;AAAA,UAClB,UAAU,MAAA,CAAO;AAAA,SACnB;AAAA,QACA,UAAA,EAAY;AAAA,UACV,cAAc,MAAA,CAAO,YAAA;AAAA,UACrB,UAAA,EAAY,OAAO,QAAA,EAAU,EAAA;AAAA,UAC7B,aAAA,EAAe,OAAO,QAAA,EAAU,OAAA;AAAA,UAChC,KAAA,EAAO,cAAA,CAAe,MAAA,CAAO,KAAK;AAAA;AACpC,OACD,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,CAAA,EAAY;AACnB,MAAA,MAAM,cAAc,IAAI,WAAA;AAAA,QACtB;AAAA,UACE,EAAA,EAAI,2CAAA;AAAA,UACJ,MAAA,EAAA,KAAA;AAAA,UACA,QAAA,EAAA,aAAA;AAAA,UACA,OAAA,EAAS;AAAA,YACP,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,eAAe,KAAA,CAAM,QAAA;AAAA,YACrB,OAAO,KAAA,IAAS,SAAA;AAAA,YAChB,UAAU,QAAA,IAAY,SAAA;AAAA,YACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,SACF;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,sBAAA,EAAwB;AAAA,QACxC,KAAA,EAAO,WAAA;AAAA,QACP,KAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,eAAe,KAAA,CAAM;AAAA,OACtB,CAAA;AACD,MAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,MAAA,MAAM,WAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,YAAA,CAAgD;AAAA,IACpD,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,GAAG;AAAA,GACL,EAAwE;AACtE,IAAA,MAAM,QAAQ,IAAA,CAAK,MAAA;AACnB,IAAA,MAAM,oBAAA,GAAuB,4BAA4B,IAAI,CAAA;AAE7D,IAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,wBAAA,EAA0B,EAAE,OAAO,CAAA;AAErD,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,CAAe,WAAA,EAAa,eAAA,CAAgB;AAAA,MAC/E,IAAA,EAAM,CAAA,MAAA,EAAS,KAAA,CAAM,OAAO,CAAA,CAAA,CAAA;AAAA,MAC5B,IAAA,EAAA,kBAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,OACF;AAAA,MACA,UAAA,EAAY;AAAA,QACV,OAAO,KAAA,CAAM,OAAA;AAAA,QACb,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,UAAA,EAAY;AAAA,UACV,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,iBAAiB,IAAA,CAAK,SAAA;AAAA,UACtB,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,kBAAkB,IAAA,CAAK,gBAAA;AAAA,UACvB,iBAAiB,IAAA,CAAK;AAAA,SACxB;AAAA,QACA,SAAA,EAAW;AAAA,OACb;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAe,KAAK,QAAA,EAAU,aAAA;AAAA,MAC9B;AAAA,KACD,CAAA;AAED,IAAA,IAAI;AACF,MAAA,IAAI,MAAA,GAA6B,QAAA;AACjC,MAAA,IAAI,UAAA,CAAW,gBAAgB,CAAA,EAAG;AAChC,QAAA,MAAA,GAAS,OAAA;AACT,QAAA,MAAM,MAAA,GAAS,UAAU,gBAAgB,CAAA;AACzC,QAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,UAAA,gBAAA,GAAmB,MAAA,CAAO,OAAA;AAAA,QAC5B,CAAA,MAAO;AACL,UAAA,gBAAA,GAAmB,MAAA,CAAO,IAAA;AAAA,QAC5B;AAAA,MACF;AAEA,MAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,kBAAA,CAAmB,gBAAiB,CAAA;AACjE,MAAA,OAAA,EAAS,MAAA,CAAO;AAAA,QACd,KAAA,EAAO;AAAA,UACL,QAAA;AAAA,UACA,MAAA,EAAQ;AAAA;AACV,OACD,CAAA;AAED,MAAA,MAAM,cAAA,GAAmD;AAAA,QACvD,GAAG,IAAA;AAAA,QACH,QAAA;AAAA,QACA,KAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,EAAQ;AAAA,OACV;AAEA,MAAA,IAAI;AAEF,QAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,cAAc,CAAA;AAElD,QAAA,OAAA,EAAS,GAAA,CAAI;AAAA,UACX,MAAA,EAAQ;AAAA,YACN,QAAQ,MAAA,CAAO,MAAA;AAAA,YACf,UAAU,MAAA,CAAO;AAAA,WACnB;AAAA,UACA,UAAA,EAAY;AAAA,YACV,cAAc,MAAA,CAAO,YAAA;AAAA,YACrB,UAAA,EAAY,OAAO,QAAA,EAAU,EAAA;AAAA,YAC7B,aAAA,EAAe,OAAO,QAAA,EAAU,OAAA;AAAA,YAChC,KAAA,EAAO,cAAA,CAAe,MAAA,CAAO,KAAK;AAAA;AACpC,SACD,CAAA;AAGD,QAAA,OAAO,MAAA;AAAA,MACT,SAAS,CAAA,EAAY;AACnB,QAAA,MAAM,cAAc,IAAI,WAAA;AAAA,UACtB;AAAA,YACE,EAAA,EAAI,6CAAA;AAAA,YACJ,MAAA,EAAA,KAAA;AAAA,YACA,QAAA,EAAA,aAAA;AAAA,YACA,OAAA,EAAS;AAAA,cACP,SAAS,KAAA,CAAM,OAAA;AAAA,cACf,eAAe,KAAA,CAAM,QAAA;AAAA,cACrB,OAAO,KAAA,IAAS,SAAA;AAAA,cAChB,UAAU,QAAA,IAAY,SAAA;AAAA,cACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,WACF;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAA,CAAK,MAAA,CAAO,MAAM,wBAAA,EAA0B;AAAA,UAC1C,KAAA,EAAO,WAAA;AAAA,UACP,KAAA;AAAA,UACA,QAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,eAAe,KAAA,CAAM;AAAA,SACtB,CAAA;AACD,QAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,QAAA,MAAM,WAAA;AAAA,MACR;AAAA,IACF,SAAS,CAAA,EAAY;AACnB,MAAA,IAAI,aAAa,WAAA,EAAa;AAC5B,QAAA,MAAM,CAAA;AAAA,MACR;AAEA,MAAA,MAAM,cAAc,IAAI,WAAA;AAAA,QACtB;AAAA,UACE,EAAA,EAAI,qDAAA;AAAA,UACJ,MAAA,EAAA,KAAA;AAAA,UACA,QAAA,EAAA,MAAA;AAAA,UACA,OAAA,EAAS;AAAA,YACP,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,eAAe,KAAA,CAAM,QAAA;AAAA,YACrB,OAAO,KAAA,IAAS,SAAA;AAAA,YAChB,UAAU,QAAA,IAAY,SAAA;AAAA,YACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,SACF;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,0CAAA,EAA4C;AAAA,QAC5D,KAAA,EAAO,WAAA;AAAA,QACP,KAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,eAAe,KAAA,CAAM;AAAA,OACtB,CAAA;AACD,MAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,MAAA,MAAM,WAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,QAAA,CAA2F;AAAA,IACzF,QAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,CAAA;AAAA,IACX,QAAQ,EAAC;AAAA,IACT,KAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA,GAAa,MAAA;AAAA,IACb,mBAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,GAAG;AAAA,GACL,EAAqE;AACnE,IAAA,MAAM,QAAQ,IAAA,CAAK,MAAA;AACnB,IAAA,MAAM,oBAAA,GAAuB,4BAA4B,IAAI,CAAA;AAE7D,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,mBAAA,EAAqB;AACvB,MAAA,IAAI,OAAQ,mBAAA,CAA4B,KAAA,KAAU,UAAA,EAAY;AAC5D,QAAA,MAAA,GAAS,mBAAA;AACT,QAAA,IAAI,UAAA,CAAW,MAAM,CAAA,EAAG;AACtB,UAAA,MAAA,GAAS,SAAA,CAAU,MAAM,CAAA,CAAE,IAAA;AAAA,QAC7B;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAA,GAAS,WAAW,mBAAkC,CAAA;AAAA,MACxD;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,CAAe,WAAA,EAAa,eAAA,CAAgB;AAAA,MAC/E,IAAA,EAAM,CAAA,MAAA,EAAS,KAAA,CAAM,OAAO,CAAA,CAAA,CAAA;AAAA,MAC5B,IAAA,EAAA,kBAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,OACF;AAAA,MACA,UAAA,EAAY;AAAA,QACV,OAAO,KAAA,CAAM,OAAA;AAAA,QACb,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,UAAA,EAAY;AAAA,UACV,WAAA;AAAA,UACA,iBAAiB,IAAA,CAAK,SAAA;AAAA,UACtB,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,kBAAkB,IAAA,CAAK,gBAAA;AAAA,UACvB,iBAAiB,IAAA,CAAK;AAAA,SACxB;AAAA,QACA,SAAA,EAAW;AAAA,OACb;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAe,KAAK,QAAA,EAAU,aAAA;AAAA,MAC9B;AAAA,KACD,CAAA;AAED,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,sBAAA,CAAuB;AAAA,QACrB,IAAA,EAAM,OAAA;AAAA,QACN,EAAA,EAAI,MACF,IAAA,CAAK,MAAA,CAAO,MAAM,gBAAA,EAAkB;AAAA,UAClC,KAAA;AAAA,UACA,QAAA;AAAA,UACA,UAAA;AAAA,UACA,QAAA;AAAA,UACA,QAAA;AAAA,UACA,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,KAAA,IAAS,EAAE;AAAA,SAC/B;AAAA,OACJ,CAAA;AAAA,IACH;AAGA,IAAA,IAAI,SAAS,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,CAAA,EAAG;AAC1C,MAAA,KAAA,MAAW,IAAA,IAAQ,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA,EAAG;AACvC,QAAA,IAAI,KAAK,UAAA,EAAY;AACnB,UAAA,IAAI,UAAA,IAAc,KAAK,UAAA,EAAY;AACjC,YAAA,IAAA,CAAK,aAAa,IAAA,CAAK,UAAA;AAAA,UACzB,CAAA,MAAA,IAAW,wBAAA,CAAyB,IAAA,CAAK,UAAU,CAAA,EAAG;AACpD,YAAA,IAAA,CAAK,UAAA,GAAa,UAAA,CAAW,0BAAA,CAA2B,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA,UAC1E,CAAA,MAAO;AACL,YAAA,IAAA,CAAK,UAAA,GAAa,UAAA,CAAW,IAAA,CAAK,UAAU,CAAA;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,cAAA,GAAsD;AAAA,MAC1D,KAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAI;AAAA,OACN;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA,EAAc,OAAM,KAAA,KAAS;AAC3B,QAAA,IAAI;AACF,UAAA,MAAM,YAAA,GAAe,EAAE,GAAG,KAAA,EAAO,OAAe,CAAA;AAAA,QAClD,SAAS,CAAA,EAAY;AACnB,UAAA,MAAM,cAAc,IAAI,WAAA;AAAA,YACtB;AAAA,cACE,EAAA,EAAI,qDAAA;AAAA,cACJ,MAAA,EAAA,KAAA;AAAA,cACA,QAAA,EAAA,MAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,SAAS,KAAA,CAAM,OAAA;AAAA,gBACf,eAAe,KAAA,CAAM,QAAA;AAAA,gBACrB,OAAO,KAAA,IAAS,SAAA;AAAA,gBAChB,UAAU,QAAA,IAAY,SAAA;AAAA,gBACtB,YAAY,UAAA,IAAc,SAAA;AAAA,gBAC1B,cAAc,KAAA,EAAO,YAAA;AAAA,gBACrB,WAAW,KAAA,EAAO,SAAA,GAAY,KAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAA,GAAI,EAAA;AAAA,gBAChE,aAAa,KAAA,EAAO,WAAA,GAAc,KAAK,SAAA,CAAU,KAAA,CAAM,WAAW,CAAA,GAAI,EAAA;AAAA,gBACtE,OAAO,KAAA,EAAO,KAAA,GAAQ,KAAK,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA,GAAI;AAAA;AACtD,aACF;AAAA,YACA;AAAA,WACF;AACA,UAAA,IAAA,CAAK,MAAA,CAAO,eAAe,WAAW,CAAA;AACtC,UAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,UAAA,MAAM,WAAA;AAAA,QACR;AAEA,QAAA,IAAA,CAAK,MAAA,CAAO,MAAM,oBAAA,EAAsB;AAAA,UACtC,MAAM,KAAA,EAAO,IAAA;AAAA,UACb,WAAW,KAAA,EAAO,SAAA;AAAA,UAClB,aAAa,KAAA,EAAO,WAAA;AAAA,UACpB,cAAc,KAAA,EAAO,YAAA;AAAA,UACrB,OAAO,KAAA,EAAO,KAAA;AAAA,UACd;AAAA,SACD,CAAA;AAED,QAAA,MAAM,eAAA,GAAkB,SAAS,KAAA,EAAO,QAAA,EAAU,UAAU,8BAA8B,CAAA,IAAK,IAAI,EAAE,CAAA;AACrG,QAAA,IAAI,CAAC,KAAA,CAAM,eAAe,KAAK,eAAA,GAAkB,CAAA,IAAK,kBAAkB,GAAA,EAAM;AAC5E,UAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,4CAAA,EAA8C,EAAE,OAAO,CAAA;AACxE,UAAA,MAAM,KAAA,CAAM,KAAK,GAAI,CAAA;AAAA,QACvB;AAAA,MACF,CAAA;AAAA,MACA,QAAA,EAAU,OAAM,KAAA,KAAS;AAGvB,QAAA,OAAA,EAAS,GAAA,CAAI;AAAA,UACX,MAAA,EAAQ;AAAA,YACN,MAAM,KAAA,EAAO,IAAA;AAAA,YACb,WAAW,KAAA,EAAO,gBAAA;AAAA,YAClB,eAAe,KAAA,EAAO,SAAA;AAAA,YACtB,OAAO,KAAA,EAAO,KAAA;AAAA,YACd,SAAS,KAAA,EAAO,OAAA;AAAA,YAChB,WAAW,KAAA,EAAO,SAAA;AAAA,YAClB,UAAU,KAAA,EAAO;AAAA,WACnB;AAAA,UACA,UAAA,EAAY;AAAA,YACV,cAAc,KAAA,EAAO,YAAA;AAAA,YACrB,KAAA,EAAO,cAAA,CAAe,KAAA,EAAO,KAAK;AAAA;AACpC,SACD,CAAA;AAED,QAAA,IAAI;AACF,UAAA,MAAM,QAAA,GAAW,EAAE,GAAG,KAAA,EAAO,OAAe,CAAA;AAAA,QAC9C,SAAS,CAAA,EAAY;AACnB,UAAA,MAAM,cAAc,IAAI,WAAA;AAAA,YACtB;AAAA,cACE,EAAA,EAAI,gDAAA;AAAA,cACJ,MAAA,EAAA,KAAA;AAAA,cACA,QAAA,EAAA,MAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,SAAS,KAAA,CAAM,OAAA;AAAA,gBACf,eAAe,KAAA,CAAM,QAAA;AAAA,gBACrB,OAAO,KAAA,IAAS,SAAA;AAAA,gBAChB,UAAU,QAAA,IAAY,SAAA;AAAA,gBACtB,YAAY,UAAA,IAAc,SAAA;AAAA,gBAC1B,cAAc,KAAA,EAAO,YAAA;AAAA,gBACrB,WAAW,KAAA,EAAO,SAAA,GAAY,KAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAA,GAAI,EAAA;AAAA,gBAChE,aAAa,KAAA,EAAO,WAAA,GAAc,KAAK,SAAA,CAAU,KAAA,CAAM,WAAW,CAAA,GAAI,EAAA;AAAA,gBACtE,OAAO,KAAA,EAAO,KAAA,GAAQ,KAAK,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA,GAAI;AAAA;AACtD,aACF;AAAA,YACA;AAAA,WACF;AACA,UAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,UAAA,IAAA,CAAK,MAAA,CAAO,eAAe,WAAW,CAAA;AACtC,UAAA,MAAM,WAAA;AAAA,QACR;AAEA,QAAA,IAAA,CAAK,MAAA,CAAO,MAAM,iBAAA,EAAmB;AAAA,UACnC,MAAM,KAAA,EAAO,IAAA;AAAA,UACb,WAAW,KAAA,EAAO,SAAA;AAAA,UAClB,aAAa,KAAA,EAAO,WAAA;AAAA,UACpB,cAAc,KAAA,EAAO,YAAA;AAAA,UACrB,OAAO,KAAA,EAAO,KAAA;AAAA,UACd,KAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAM,KAAM;AACtB,QAAA,MAAM,cAAc,IAAI,WAAA;AAAA,UACtB;AAAA,YACE,EAAA,EAAI,wCAAA;AAAA,YACJ,MAAA,EAAA,KAAA;AAAA,YACA,QAAA,EAAA,aAAA;AAAA,YACA,OAAA,EAAS;AAAA,cACP,SAAS,KAAA,CAAM,OAAA;AAAA,cACf,eAAe,KAAA,CAAM,QAAA;AAAA,cACrB,OAAO,KAAA,IAAS,SAAA;AAAA,cAChB,UAAU,QAAA,IAAY,SAAA;AAAA,cACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,WACF;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAA,CAAK,MAAA,CAAO,MAAM,mBAAA,EAAqB;AAAA,UACrC,KAAA,EAAO,WAAA;AAAA,UACP,KAAA;AAAA,UACA,QAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,eAAe,KAAA,CAAM;AAAA,SACtB,CAAA;AACD,QAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AAAA,MACvC,CAAA;AAAA,MACA,GAAG,IAAA;AAAA,MACH,QAAA;AAAA,MACA,mBAAA,EAAqB,MAAA,GAChB,cAAA,CAAO,MAAA,CAAO;AAAA,QACb;AAAA,OACD,CAAA,GACD;AAAA,KACN;AAEA,IAAA,IAAI;AACF,MAAA,OAAO,sBAAA,CAAuB,EAAE,IAAA,EAAM,OAAA,EAAS,IAAI,MAAM,UAAA,CAAW,cAAc,CAAA,EAAG,CAAA;AAAA,IACvF,SAAS,CAAA,EAAY;AACnB,MAAA,MAAM,cAAc,IAAI,WAAA;AAAA,QACtB;AAAA,UACE,EAAA,EAAI,yCAAA;AAAA,UACJ,MAAA,EAAA,KAAA;AAAA,UACA,QAAA,EAAA,aAAA;AAAA,UACA,OAAA,EAAS;AAAA,YACP,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,eAAe,KAAA,CAAM,QAAA;AAAA,YACrB,OAAO,KAAA,IAAS,SAAA;AAAA,YAChB,UAAU,QAAA,IAAY,SAAA;AAAA,YACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,SACF;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,oBAAA,EAAsB;AAAA,QACtC,KAAA,EAAO,WAAA;AAAA,QACP,KAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,eAAe,KAAA,CAAM;AAAA,OACtB,CAAA;AACD,MAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,MAAA,MAAM,WAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,cAAA,CAAkD;AAAA,IAChD,QAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG;AAAA,GACL,EAA2D;AACzD,IAAA,MAAM,QAAQ,IAAA,CAAK,MAAA;AACnB,IAAA,MAAM,oBAAA,GAAuB,4BAA4B,IAAI,CAAA;AAE7D,IAAA,IAAA,CAAK,MAAA,CAAO,MAAM,6BAAA,EAA+B;AAAA,MAC/C,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,CAAe,WAAA,EAAa,eAAA,CAAgB;AAAA,MAC/E,IAAA,EAAM,CAAA,MAAA,EAAS,KAAA,CAAM,OAAO,CAAA,CAAA,CAAA;AAAA,MAC5B,IAAA,EAAA,kBAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,OACF;AAAA,MACA,UAAA,EAAY;AAAA,QACV,OAAO,KAAA,CAAM,OAAA;AAAA,QACb,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,UAAA,EAAY;AAAA,UACV,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,iBAAiB,IAAA,CAAK,SAAA;AAAA,UACtB,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,kBAAkB,IAAA,CAAK,gBAAA;AAAA,UACvB,iBAAiB,IAAA,CAAK;AAAA,SACxB;AAAA,QACA,SAAA,EAAW;AAAA,OACb;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAe,KAAK,QAAA,EAAU,aAAA;AAAA,MAC9B;AAAA,KACD,CAAA;AAED,IAAA,IAAI;AACF,MAAA,IAAI,MAAA,GAA6B,QAAA;AACjC,MAAA,IAAI,UAAA,CAAW,gBAAgB,CAAA,EAAG;AAChC,QAAA,MAAA,GAAS,OAAA;AACT,QAAA,gBAAA,GAAmB,SAAA,CAAU,gBAAgB,CAAA,CAAE,IAAA;AAAA,MACjD;AAEA,MAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,kBAAA,CAAmB,gBAAiB,CAAA;AACjE,MAAA,OAAA,EAAS,MAAA,CAAO;AAAA,QACd,KAAA,EAAO;AAAA,UACL,QAAA;AAAA,UACA,MAAA,EAAQ;AAAA;AACV,OACD,CAAA;AAED,MAAA,MAAM,cAAA,GAAiD;AAAA,QACrD,GAAG,IAAA;AAAA,QACH,KAAA;AAAA,QACA,QAAA,EAAU,OAAO,KAAA,KAAe;AAG9B,UAAA,OAAA,EAAS,GAAA,CAAI;AAAA,YACX,MAAA,EAAQ;AAAA,cACN,MAAM,KAAA,EAAO,IAAA;AAAA,cACb,QAAQ,KAAA,EAAO,MAAA;AAAA,cACf,WAAW,KAAA,EAAO,gBAAA;AAAA,cAClB,eAAe,KAAA,EAAO,SAAA;AAAA,cACtB,OAAO,KAAA,EAAO,KAAA;AAAA,cACd,SAAS,KAAA,EAAO,OAAA;AAAA,cAChB,UAAU,KAAA,EAAO;AAAA,aACnB;AAAA,YACA,UAAA,EAAY;AAAA,cACV,cAAc,KAAA,EAAO,YAAA;AAAA,cACrB,OAAO,KAAA,EAAO;AAAA;AAChB,WACD,CAAA;AAED,UAAA,IAAI;AACF,YAAA,MAAM,QAAA,GAAW,EAAE,GAAG,KAAA,EAAO,OAAe,CAAA;AAAA,UAC9C,SAAS,CAAA,EAAY;AACnB,YAAA,MAAM,cAAc,IAAI,WAAA;AAAA,cACtB;AAAA,gBACE,EAAA,EAAI,uDAAA;AAAA,gBACJ,MAAA,EAAA,KAAA;AAAA,gBACA,QAAA,EAAA,MAAA;AAAA,gBACA,OAAA,EAAS;AAAA,kBACP,SAAS,KAAA,CAAM,OAAA;AAAA,kBACf,eAAe,KAAA,CAAM,QAAA;AAAA,kBACrB,OAAO,KAAA,IAAS,SAAA;AAAA,kBAChB,UAAU,QAAA,IAAY,SAAA;AAAA,kBACtB,YAAY,UAAA,IAAc,SAAA;AAAA,kBAC1B,SAAA,EAAW,EAAA;AAAA,kBACX,WAAA,EAAa,EAAA;AAAA,kBACb,YAAA,EAAc,EAAA;AAAA,kBACd,OAAO,KAAA,EAAO,KAAA,GAAQ,KAAK,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA,GAAI;AAAA;AACtD,eACF;AAAA,cACA;AAAA,aACF;AACA,YAAA,IAAA,CAAK,MAAA,CAAO,eAAe,WAAW,CAAA;AACtC,YAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,YAAA,MAAM,WAAA;AAAA,UACR;AAEA,UAAA,IAAA,CAAK,MAAA,CAAO,MAAM,wBAAA,EAA0B;AAAA,YAC1C,OAAO,KAAA,EAAO,KAAA;AAAA,YACd,KAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACD,CAAA;AAAA,QACH,CAAA;AAAA,QACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAM,KAAM;AACtB,UAAA,MAAM,cAAc,IAAI,WAAA;AAAA,YACtB;AAAA,cACE,EAAA,EAAI,0CAAA;AAAA,cACJ,MAAA,EAAA,KAAA;AAAA,cACA,QAAA,EAAA,aAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,SAAS,KAAA,CAAM,OAAA;AAAA,gBACf,eAAe,KAAA,CAAM,QAAA;AAAA,gBACrB,OAAO,KAAA,IAAS,SAAA;AAAA,gBAChB,UAAU,QAAA,IAAY,SAAA;AAAA,gBACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,aACF;AAAA,YACA;AAAA,WACF;AACA,UAAA,IAAA,CAAK,MAAA,CAAO,MAAM,qBAAA,EAAuB;AAAA,YACvC,KAAA,EAAO,WAAA;AAAA,YACP,KAAA;AAAA,YACA,QAAA;AAAA,YACA,UAAA;AAAA,YACA,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,eAAe,KAAA,CAAM;AAAA,WACtB,CAAA;AACD,UAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AAAA,QACvC,CAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,EAAQ;AAAA,OACV;AAEA,MAAA,IAAI;AACF,QAAA,OAAO,aAAa,cAAqB,CAAA;AAAA,MAC3C,SAAS,CAAA,EAAY;AACnB,QAAA,MAAM,cAAc,IAAI,WAAA;AAAA,UACtB;AAAA,YACE,EAAA,EAAI,2CAAA;AAAA,YACJ,MAAA,EAAA,KAAA;AAAA,YACA,QAAA,EAAA,aAAA;AAAA,YACA,OAAA,EAAS;AAAA,cACP,SAAS,KAAA,CAAM,OAAA;AAAA,cACf,eAAe,KAAA,CAAM,QAAA;AAAA,cACrB,OAAO,KAAA,IAAS,SAAA;AAAA,cAChB,UAAU,QAAA,IAAY,SAAA;AAAA,cACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,WACF;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAA,CAAK,MAAA,CAAO,MAAM,sBAAA,EAAwB;AAAA,UACxC,KAAA,EAAO,WAAA;AAAA,UACP,KAAA;AAAA,UACA,QAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,eAAe,KAAA,CAAM;AAAA,SACtB,CAAA;AACD,QAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,QAAA,MAAM,WAAA;AAAA,MACR;AAAA,IACF,SAAS,CAAA,EAAY;AACnB,MAAA,IAAI,aAAa,WAAA,EAAa;AAC5B,QAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,CAAA,EAAG,CAAA;AAC3B,QAAA,MAAM,CAAA;AAAA,MACR;AAEA,MAAA,MAAM,cAAc,IAAI,WAAA;AAAA,QACtB;AAAA,UACE,EAAA,EAAI,mDAAA;AAAA,UACJ,MAAA,EAAA,KAAA;AAAA,UACA,QAAA,EAAA,MAAA;AAAA,UACA,OAAA,EAAS;AAAA,YACP,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,eAAe,KAAA,CAAM,QAAA;AAAA,YACrB,OAAO,KAAA,IAAS,SAAA;AAAA,YAChB,UAAU,QAAA,IAAY,SAAA;AAAA,YACtB,YAAY,UAAA,IAAc;AAAA;AAC5B,SACF;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,wCAAA,EAA0C;AAAA,QAC1D,KAAA,EAAO,WAAA;AAAA,QACP,KAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,eAAe,KAAA,CAAM;AAAA,OACtB,CAAA;AACD,MAAA,OAAA,EAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AACrC,MAAA,MAAM,WAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,kBAAkB,QAAA,EAA4D;AAC5E,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC3B,MAAA,OAAO,QAAA,CAAS,IAAI,CAAA,CAAA,KAAK;AACvB,QAAA,IAAI,OAAO,MAAM,QAAA,EAAU;AACzB,UAAA,OAAO;AAAA,YACL,IAAA,EAAM,MAAA;AAAA,YACN,OAAA,EAAS;AAAA,WACX;AAAA,QACF;AACA,QAAA,OAAO,CAAA;AAAA,MACT,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS;AAAA;AACX,KACF;AAAA,EACF;AAAA,EAEA,MAAM,QAAA,CAKJ,QAAA,EACA,IAAA,EAM0D;AAC1D,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,iBAAA,CAAkB,QAAQ,CAAA;AAC5C,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAG,IAAA,EAAK,GAAI,QAAS,EAAC;AAEtC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAQ,MAAM,KAAK,MAAA,CAAgC;AAAA,QACjD,QAAA,EAAU,IAAA;AAAA,QACV,GAAI;AAAA,OACL,CAAA;AAAA,IACH;AAEA,IAAA,OAAQ,MAAM,KAAK,YAAA,CAAa;AAAA,MAC9B,QAAA,EAAU,IAAA;AAAA,MACV,gBAAA,EAAkB,MAAA;AAAA,MAClB,GAAI;AAAA,KAIL,CAAA;AAAA,EACH;AAAA,EAEA,MAAA,CAKE,UACA,IAAA,EAM+C;AAC/C,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,iBAAA,CAAkB,QAAQ,CAAA;AAC5C,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAG,IAAA,EAAK,GAAI,QAAS,EAAC;AAEtC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM;AAAA,QACJ,QAAA,GAAW,CAAA;AAAA,QACX,QAAA,EAAAA,SAAAA;AAAA,QACA,GAAG;AAAA,OACL,GAAI,IAAA;AACJ,MAAA,OAAO,KAAK,QAAA,CAAS;AAAA,QACnB,QAAA,EAAU,IAAA;AAAA,QACV,QAAA;AAAA,QACA,QAAA,EAAUA,SAAAA;AAAA,QACV,GAAG;AAAA,OACJ,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,UAAA,EAAW,GAAI,IAAA;AAIpC,IAAA,OAAO,KAAK,cAAA,CAAe;AAAA,MACzB,QAAA,EAAU,IAAA;AAAA,MACV,gBAAA,EAAkB,MAAA;AAAA,MAClB,QAAA;AAAA,MACA,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AACF;AC5gCO,SAAS,+BAA+B,MAAA,EAc5B;AACjB,EAAA,OAAO,IAAI,cAAA,CAAe;AAAA,IACxB,MAAM,UAAA,EAAY;AAChB,MAAA,UAAA,CAAW,QAAQ,EAAE,IAAA,EAAM,gBAAgB,QAAA,EAAU,MAAA,CAAO,UAAU,CAAA;AACtE,MAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,QACjB,IAAA,EAAM,mBAAA;AAAA,QACN,EAAA,EAAI,OAAO,QAAA,EAAU,EAAA;AAAA,QACrB,OAAA,EAAS,OAAO,QAAA,EAAU,OAAA;AAAA,QAC1B,SAAA,EAAW,OAAO,QAAA,EAAU;AAAA,OAC7B,CAAA;AAED,MAAA,MAAM,eAA+D,EAAC;AACtE,MAAA,KAAA,MAAW,OAAA,IAAW,OAAO,OAAA,EAAS;AACpC,QAAA,IAAI,OAAA,CAAQ,SAAS,WAAA,EAAa;AAChC,UAAA,MAAM,QAAA,GAAW,OAAA;AASjB,UAAA,YAAA,CAAa,SAAS,UAAU,CAAA,GAAI,EAAE,gBAAA,EAAkB,SAAS,gBAAA,EAAiB;AAClF,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,kBAAA;AAAA,YACN,IAAI,QAAA,CAAS,UAAA;AAAA,YACb,UAAU,QAAA,CAAS,QAAA;AAAA,YACnB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,YAC3B,SAAS,QAAA,CAAS,OAAA;AAAA,YAClB,kBAAkB,QAAA,CAAS;AAAA,WAC5B,CAAA;AACD,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,kBAAA;AAAA,YACN,IAAI,QAAA,CAAS,UAAA;AAAA,YACb,OAAO,QAAA,CAAS,KAAA;AAAA,YAChB,kBAAkB,QAAA,CAAS;AAAA,WAC5B,CAAA;AACD,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,gBAAA;AAAA,YACN,IAAI,QAAA,CAAS,UAAA;AAAA,YACb,kBAAkB,QAAA,CAAS;AAAA,WAC5B,CAAA;AACD,UAAA,UAAA,CAAW,QAAQ,QAAQ,CAAA;AAAA,QAC7B,CAAA,MAAA,IAAW,OAAA,CAAQ,IAAA,KAAS,aAAA,EAAe;AACzC,UAAA,MAAM,UAAA,GAAa,OAAA;AACnB,UAAA,MAAM,IAAA,GAAO,YAAA,CAAa,UAAA,CAAW,UAAU,CAAA;AAC/C,UAAA,IAAI,MAAM,gBAAA,EAAkB;AAC1B,YAAA,UAAA,CAAW,QAAQ,EAAE,GAAG,YAAY,gBAAA,EAAkB,IAAA,CAAK,kBAAkB,CAAA;AAAA,UAC/E,CAAA,MAAO;AACL,YAAA,UAAA,CAAW,QAAQ,OAAO,CAAA;AAAA,UAC5B;AAAA,QACF,CAAA,MAAA,IAAW,OAAA,CAAQ,IAAA,KAAS,MAAA,EAAQ;AAClC,UAAA,MAAM,IAAA,GAAO,OAAA;AAKb,UAAA,MAAM,EAAA,GAAK,CAAA,IAAA,EAAO,UAAA,EAAY,CAAA,CAAA;AAC9B,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,YAAA;AAAA,YACN,EAAA;AAAA,YACA,kBAAkB,IAAA,CAAK;AAAA,WACxB,CAAA;AACD,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,YAAA;AAAA,YACN,EAAA;AAAA,YACA,OAAO,IAAA,CAAK;AAAA,WACb,CAAA;AACD,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,UAAA;AAAA,YACN;AAAA,WACD,CAAA;AAAA,QACH,CAAA,MAAA,IAAW,OAAA,CAAQ,IAAA,KAAS,WAAA,EAAa;AACvC,UAAA,MAAM,EAAA,GAAK,CAAA,UAAA,EAAa,UAAA,EAAY,CAAA,CAAA;AACpC,UAAA,MAAM,SAAA,GAAY,OAAA;AAKlB,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,iBAAA;AAAA,YACN,EAAA;AAAA,YACA,kBAAkB,SAAA,CAAU;AAAA,WAC7B,CAAA;AACD,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,iBAAA;AAAA,YACN,EAAA;AAAA,YACA,OAAO,SAAA,CAAU,IAAA;AAAA,YACjB,kBAAkB,SAAA,CAAU;AAAA,WAC7B,CAAA;AACD,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,eAAA;AAAA,YACN,EAAA;AAAA,YACA,kBAAkB,SAAA,CAAU;AAAA,WAC7B,CAAA;AAAA,QACH,CAAA,MAAA,IAAW,OAAA,CAAQ,IAAA,KAAS,MAAA,EAAQ;AAClC,UAAA,MAAM,IAAA,GAAO,OAAA;AAKb,UAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,YACjB,IAAA,EAAM,MAAA;AAAA,YACN,WAAW,IAAA,CAAK,SAAA;AAAA,YAChB,MAAM,IAAA,CAAK;AAAA,WACZ,CAAA;AAAA,QACH,CAAA,MAAA,IAAW,OAAA,CAAQ,IAAA,KAAS,QAAA,EAAU;AACpC,UAAA,MAAM,MAAA,GAAS,OAAA;AAUf,UAAA,IAAI,MAAA,CAAO,eAAe,KAAA,EAAO;AAC/B,YAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,cACjB,IAAA,EAAM,QAAA;AAAA,cACN,IAAI,MAAA,CAAO,EAAA;AAAA,cACX,UAAA,EAAY,KAAA;AAAA,cACZ,KAAK,MAAA,CAAO,GAAA;AAAA,cACZ,OAAO,MAAA,CAAO,KAAA;AAAA,cACd,kBAAkB,MAAA,CAAO;AAAA,aAC1B,CAAA;AAAA,UACH,CAAA,MAAO;AACL,YAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,cACjB,IAAA,EAAM,QAAA;AAAA,cACN,IAAI,MAAA,CAAO,EAAA;AAAA,cACX,UAAA,EAAY,UAAA;AAAA,cACZ,WAAW,MAAA,CAAO,SAAA;AAAA,cAClB,UAAU,MAAA,CAAO,QAAA;AAAA,cACjB,OAAO,MAAA,CAAO,KAAA;AAAA,cACd,kBAAkB,MAAA,CAAO;AAAA,aAC1B,CAAA;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAEA,MAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,QACjB,IAAA,EAAM,QAAA;AAAA,QACN,cAAc,MAAA,CAAO,YAAA;AAAA,QACrB,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,kBAAkB,MAAA,CAAO;AAAA,OAC1B,CAAA;AAED,MAAA,UAAA,CAAW,KAAA,EAAM;AAAA,IACnB;AAAA,GACD,CAAA;AACH;;;ACjKO,IAAM,uBAAN,MAA4D;AAAA;AAAA;AAAA;AAAA,EAIxD,oBAAA,GAA6B,IAAA;AAAA;AAAA;AAAA;AAAA,EAI7B,QAAA;AAAA;AAAA;AAAA;AAAA,EAIA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUT,aAAA;AAAA,EAEA,MAAA;AAAA,EAEA,YAAY,MAAA,EAAyB;AACnC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,QAAA,GAAW,KAAK,MAAA,CAAO,QAAA;AAC5B,IAAA,IAAA,CAAK,OAAA,GAAU,KAAK,MAAA,CAAO,OAAA;AAC3B,IAAA,IAAA,CAAK,aAAA,GAAgB,KAAK,MAAA,CAAO,aAAA;AAAA,EACnC;AAAA,EAEA,MAAM,WAAW,OAAA,EAAqC;AACpD,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,MAAA,CAAO,WAAW,OAAO,CAAA;AAEnD,IAAA,OAAO;AAAA,MACL,GAAG,MAAA;AAAA,MACH,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,UAAU,MAAA,CAAO,QAAA;AAAA,MACjB,MAAA,EAAQ,+BAA+B,MAAM;AAAA,KAC/C;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,OAAA,EAAqC;AAClD,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA;AAAA,EAC3C;AACF","file":"chunk-FQCASJGT.js","sourcesContent":["import type { UsageStats } from '../../../observability';\n\n/**\n * AI SDK v4 LanguageModelUsage type definition\n * (matches the ai package's LanguageModelUsage)\n */\ninterface LanguageModelUsageV4 {\n promptTokens: number;\n completionTokens: number;\n totalTokens?: number;\n}\n\n/**\n * Converts AI SDK v4 LanguageModelUsage to our UsageStats format.\n *\n * @param usage - The LanguageModelUsage from AI SDK v4\n * @returns Normalized UsageStats\n */\nexport function convertV4Usage(usage: LanguageModelUsageV4 | undefined): UsageStats {\n if (!usage) {\n return {};\n }\n\n return {\n inputTokens: usage.promptTokens,\n outputTokens: usage.completionTokens,\n };\n}\n","import { generateObject, generateText, Output, streamObject, streamText } from '@internal/ai-sdk-v4';\nimport type {\n CoreMessage,\n LanguageModelV1 as LanguageModel,\n StreamObjectOnFinishCallback,\n StreamTextOnFinishCallback,\n} from '@internal/ai-sdk-v4';\nimport {\n AnthropicSchemaCompatLayer,\n applyCompatLayer,\n DeepSeekSchemaCompatLayer,\n GoogleSchemaCompatLayer,\n MetaSchemaCompatLayer,\n OpenAIReasoningSchemaCompatLayer,\n OpenAISchemaCompatLayer,\n jsonSchema,\n} from '@mastra/schema-compat';\nimport type { JSONSchema7, Schema } from '@mastra/schema-compat';\nimport type { z } from 'zod/v4';\nimport type { MastraPrimitives } from '../../action';\nimport { MastraBase } from '../../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../../error';\nimport type { Mastra } from '../../mastra';\nimport { SpanType, resolveObservabilityContext } from '../../observability';\nimport { executeWithContext, executeWithContextSync } from '../../observability/utils';\nimport { toStandardSchema, standardSchemaToJSONSchema, isStandardSchemaWithJSON } from '../../schema';\nimport type { ZodSchema } from '../../schema';\nimport { convertV4Usage } from '../../stream/aisdk/v4/usage';\nimport { delay, isZodType } from '../../utils';\nimport { isZodArray, getZodDef } from '../../utils/zod-utils';\n\nimport type {\n GenerateObjectWithMessagesArgs,\n GenerateTextResult,\n GenerateObjectResult,\n GenerateTextWithMessagesArgs,\n OriginalGenerateTextOptions,\n ToolSet,\n GenerateReturn,\n OriginalGenerateObjectOptions,\n StreamTextWithMessagesArgs,\n StreamTextResult,\n OriginalStreamTextOptions,\n StreamObjectWithMessagesArgs,\n OriginalStreamObjectOptions,\n StreamObjectResult,\n StreamReturn,\n} from './base.types';\nimport type { inferOutput, MastraModelOptions } from './shared.types';\n\nexport class MastraLLMV1 extends MastraBase {\n #model: LanguageModel;\n #mastra?: Mastra;\n #options?: MastraModelOptions;\n\n constructor({ model, mastra, options }: { model: LanguageModel; mastra?: Mastra; options?: MastraModelOptions }) {\n super({ name: 'aisdk' });\n\n this.#model = model;\n this.#options = options;\n\n if (mastra) {\n this.#mastra = mastra;\n if (mastra.getLogger()) {\n this.__setLogger(this.#mastra.getLogger());\n }\n }\n }\n\n __registerPrimitives(p: MastraPrimitives) {\n if (p.logger) {\n this.__setLogger(p.logger);\n }\n }\n\n __registerMastra(p: Mastra) {\n this.#mastra = p;\n }\n\n getProvider() {\n return this.#model.provider;\n }\n\n getModelId() {\n return this.#model.modelId;\n }\n\n getModel() {\n return this.#model;\n }\n\n private _applySchemaCompat(schema: ZodSchema | JSONSchema7): Schema {\n const model = this.#model;\n\n const schemaCompatLayers = [];\n\n if (model) {\n const modelInfo = {\n modelId: model.modelId,\n supportsStructuredOutputs: model.supportsStructuredOutputs ?? false,\n provider: model.provider,\n };\n schemaCompatLayers.push(\n new OpenAIReasoningSchemaCompatLayer(modelInfo),\n new OpenAISchemaCompatLayer(modelInfo),\n new GoogleSchemaCompatLayer(modelInfo),\n new AnthropicSchemaCompatLayer(modelInfo),\n new DeepSeekSchemaCompatLayer(modelInfo),\n new MetaSchemaCompatLayer(modelInfo),\n );\n }\n\n // \"Type instantiation is excessively deep\" error from complex ZodSchema generic inference\n return applyCompatLayer({\n schema: schema as any,\n compatLayers: schemaCompatLayers,\n mode: 'aiSdkSchema',\n });\n }\n\n async __text<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined>({\n runId,\n messages,\n maxSteps = 5,\n tools = {},\n temperature,\n toolChoice = 'auto',\n onStepFinish,\n experimental_output,\n threadId,\n resourceId,\n requestContext,\n ...rest\n }: GenerateTextWithMessagesArgs<Tools, Z>): Promise<GenerateTextResult<Tools, Z>> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n this.logger.debug('Generating text', {\n runId,\n messages,\n maxSteps,\n threadId,\n resourceId,\n tools: Object.keys(tools),\n });\n\n let schema: z.ZodType<inferOutput<Z>> | Schema<inferOutput<Z>> | undefined = undefined;\n\n if (experimental_output) {\n this.logger.debug('Using experimental output', {\n runId,\n });\n\n if (isZodType(experimental_output)) {\n schema = experimental_output as z.ZodType<inferOutput<Z>>;\n if (isZodArray(schema)) {\n schema = getZodDef(schema).type as z.ZodType<inferOutput<Z>>;\n }\n\n // Convert Zod schema to JSON Schema via standard schema interface\n const standardSchema = toStandardSchema(schema as any);\n const jsonSchemaToUse = standardSchemaToJSONSchema(standardSchema);\n\n schema = jsonSchema<inferOutput<Z>>(jsonSchemaToUse);\n } else {\n schema = jsonSchema<inferOutput<Z>>(experimental_output);\n }\n }\n\n // make json schema a ai sdk schema\n if (tools && Object.keys(tools).length > 0) {\n for (const tool of Object.values(tools)) {\n if (tool.parameters) {\n if ('validate' in tool.parameters) {\n tool.parameters = tool.parameters;\n } else if (isStandardSchemaWithJSON(tool.parameters)) {\n tool.parameters = jsonSchema(standardSchemaToJSONSchema(tool.parameters));\n } else {\n tool.parameters = jsonSchema(tool.parameters);\n }\n }\n }\n }\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n schema,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: false,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n const argsForExecute: OriginalGenerateTextOptions<Tools, Z> = {\n ...rest,\n messages,\n model,\n temperature,\n tools: {\n ...(tools as Tools),\n },\n toolChoice,\n maxSteps,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n throw mastraError;\n }\n\n this.logger.debug('Text step change', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n experimental_output: schema\n ? Output.object({\n schema,\n })\n : undefined,\n };\n\n try {\n const result: GenerateTextResult<Tools, Z> = await executeWithContext({\n span: llmSpan,\n fn: () => generateText(argsForExecute),\n });\n\n if (schema && result.finishReason === 'stop') {\n result.object = (result as any).experimental_output;\n }\n llmSpan?.end({\n output: {\n text: result.text,\n object: result.object,\n reasoning: result.reasoningDetails,\n reasoningText: result.reasoning,\n files: result.files,\n sources: result.sources,\n toolCalls: result.toolCalls,\n warnings: result.warnings,\n },\n attributes: {\n finishReason: result.finishReason,\n responseId: result.response?.id,\n responseModel: result.response?.modelId,\n usage: convertV4Usage(result.usage),\n },\n });\n\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Generate text failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n async __textObject<Z extends ZodSchema | JSONSchema7>({\n messages,\n structuredOutput,\n runId,\n threadId,\n resourceId,\n requestContext,\n ...rest\n }: GenerateObjectWithMessagesArgs<Z>): Promise<GenerateObjectResult<Z>> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n this.logger.debug('Generating text object', { runId });\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: rest.temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: false,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (isZodArray(structuredOutput)) {\n output = 'array';\n const zodDef = getZodDef(structuredOutput);\n if ('element' in zodDef) {\n structuredOutput = zodDef.element;\n } else {\n structuredOutput = zodDef.type;\n }\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n llmSpan?.update({\n input: {\n messages,\n schema: processedSchema,\n },\n });\n\n const argsForExecute: OriginalGenerateObjectOptions<Z> = {\n ...rest,\n messages,\n model,\n output,\n schema: processedSchema as Schema<Z>,\n };\n\n try {\n // @ts-expect-error - output in our implementation can only be object or array\n const result = await generateObject(argsForExecute);\n\n llmSpan?.end({\n output: {\n object: result.object,\n warnings: result.warnings,\n },\n attributes: {\n finishReason: result.finishReason,\n responseId: result.response?.id,\n responseModel: result.response?.modelId,\n usage: convertV4Usage(result.usage),\n },\n });\n\n // @ts-expect-error - output in our implementation can only be object or array\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Generate object failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Generate object schema conversion failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n __stream<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined = undefined>({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n tools = {},\n runId,\n temperature,\n toolChoice = 'auto',\n experimental_output,\n threadId,\n resourceId,\n requestContext,\n ...rest\n }: StreamTextWithMessagesArgs<Tools, Z>): StreamTextResult<Tools, Z> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n let schema: z.ZodType<Z> | Schema<Z> | undefined;\n if (experimental_output) {\n if (typeof (experimental_output as any).parse === 'function') {\n schema = experimental_output as z.ZodType<Z>;\n if (isZodArray(schema)) {\n schema = getZodDef(schema).type as z.ZodType<Z>;\n }\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<Z>;\n }\n }\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: true,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n if (llmSpan) {\n executeWithContextSync({\n span: llmSpan,\n fn: () =>\n this.logger.debug('Streaming text', {\n runId,\n threadId,\n resourceId,\n messages,\n maxSteps,\n tools: Object.keys(tools || {}),\n }),\n });\n }\n\n // make json schema a ai sdk schema\n if (tools && Object.keys(tools).length > 0) {\n for (const tool of Object.values(tools)) {\n if (tool.parameters) {\n if ('validate' in tool.parameters) {\n tool.parameters = tool.parameters;\n } else if (isStandardSchemaWithJSON(tool.parameters)) {\n tool.parameters = jsonSchema(standardSchemaToJSONSchema(tool.parameters));\n } else {\n tool.parameters = jsonSchema(tool.parameters);\n }\n }\n }\n }\n\n const argsForExecute: OriginalStreamTextOptions<Tools, Z> = {\n model,\n temperature,\n tools: {\n ...(tools as Tools),\n },\n maxSteps,\n toolChoice,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n\n this.logger.debug('Stream step change', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n onFinish: async props => {\n // End the model generation span BEFORE calling the user's onFinish callback\n // This ensures the model span ends before the agent span\n llmSpan?.end({\n output: {\n text: props?.text,\n reasoning: props?.reasoningDetails,\n reasoningText: props?.reasoning,\n files: props?.files,\n sources: props?.sources,\n toolCalls: props?.toolCalls,\n warnings: props?.warnings,\n },\n attributes: {\n finishReason: props?.finishReason,\n usage: convertV4Usage(props?.usage),\n },\n });\n\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('Stream finished', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n onError: ({ error }) => {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_STREAMING_ERROR',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n error,\n );\n this.logger.error('Stream text error', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n },\n ...rest,\n messages,\n experimental_output: schema\n ? (Output.object({\n schema,\n }) as any)\n : undefined,\n };\n\n try {\n return executeWithContextSync({ span: llmSpan, fn: () => streamText(argsForExecute) });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Stream text failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n __streamObject<T extends ZodSchema | JSONSchema7>({\n messages,\n runId,\n requestContext,\n threadId,\n resourceId,\n onFinish,\n structuredOutput,\n ...rest\n }: StreamObjectWithMessagesArgs<T>): StreamObjectResult<T> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n this.logger.debug('Streaming structured output', {\n runId,\n messages,\n });\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: rest.temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: true,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (isZodArray(structuredOutput)) {\n output = 'array';\n structuredOutput = getZodDef(structuredOutput).type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n llmSpan?.update({\n input: {\n messages,\n schema: processedSchema,\n },\n });\n\n const argsForExecute: OriginalStreamObjectOptions<T> = {\n ...rest,\n model,\n onFinish: async (props: any) => {\n // End the model generation span BEFORE calling the user's onFinish callback\n // This ensures the model span ends before the agent span\n llmSpan?.end({\n output: {\n text: props?.text,\n object: props?.object,\n reasoning: props?.reasoningDetails,\n reasoningText: props?.reasoning,\n files: props?.files,\n sources: props?.sources,\n warnings: props?.warnings,\n },\n attributes: {\n finishReason: props?.finishReason,\n usage: props?.usage,\n },\n });\n\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n toolCalls: '',\n toolResults: '',\n finishReason: '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n\n this.logger.debug('Object stream finished', {\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n onError: ({ error }) => {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_STREAMING_ERROR',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n error,\n );\n this.logger.error('Stream object error', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n },\n messages,\n output,\n schema: processedSchema as Schema<inferOutput<T>>,\n };\n\n try {\n return streamObject(argsForExecute as any);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Stream object failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n llmSpan?.error({ error: e });\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Stream object schema conversion failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n convertToMessages(messages: string | string[] | CoreMessage[]): CoreMessage[] {\n if (Array.isArray(messages)) {\n return messages.map(m => {\n if (typeof m === 'string') {\n return {\n role: 'user',\n content: m,\n };\n }\n return m;\n });\n }\n\n return [\n {\n role: 'user',\n content: messages,\n },\n ];\n }\n\n async generate<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n args?: Omit<\n Output extends undefined\n ? GenerateTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<GenerateObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'>,\n 'messages'\n > & { output?: Output },\n ): Promise<GenerateReturn<Tools, Output, StructuredOutput>> {\n const msgs = this.convertToMessages(messages);\n const { output, ...rest } = args ?? ({} as NonNullable<typeof args>);\n\n if (!output) {\n return (await this.__text<Tools, StructuredOutput>({\n messages: msgs,\n ...(rest as unknown as Omit<GenerateTextWithMessagesArgs<Tools, StructuredOutput>, 'messages'>),\n })) as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n return (await this.__textObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n ...(rest as unknown as Omit<\n GenerateObjectWithMessagesArgs<NonNullable<Output>>,\n 'messages' | 'structuredOutput'\n >),\n })) as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n stream<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n args?: Omit<\n Output extends undefined\n ? StreamTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<StreamObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'> & { maxSteps?: never },\n 'messages'\n > & { output?: Output },\n ): StreamReturn<Tools, Output, StructuredOutput> {\n const msgs = this.convertToMessages(messages);\n const { output, ...rest } = args ?? ({} as NonNullable<typeof args>);\n\n if (!output) {\n const {\n maxSteps = 5,\n onFinish,\n ...streamRest\n } = rest as unknown as Omit<StreamTextWithMessagesArgs<Tools, StructuredOutput>, 'messages'>;\n return this.__stream({\n messages: msgs,\n maxSteps,\n onFinish: onFinish as StreamTextOnFinishCallback<Tools> | undefined,\n ...streamRest,\n }) as StreamReturn<Tools, Output, StructuredOutput>;\n }\n\n const { onFinish, ...objectRest } = rest as unknown as Omit<\n StreamObjectWithMessagesArgs<NonNullable<Output>>,\n 'messages' | 'structuredOutput'\n >;\n return this.__streamObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n onFinish: onFinish as StreamObjectOnFinishCallback<inferOutput<Output>> | undefined,\n ...objectRest,\n }) as StreamReturn<Tools, Output, StructuredOutput>;\n }\n}\n","import { randomUUID } from 'node:crypto';\n\n/**\n * Converts a doGenerate result to a ReadableStream format.\n * This is shared between V2 and V3 model wrappers since the content/result structure is compatible.\n */\nexport function createStreamFromGenerateResult(result: {\n warnings: unknown[];\n response?: {\n id?: string;\n modelId?: string;\n timestamp?: Date;\n };\n content: Array<{\n type: string;\n [key: string]: unknown;\n }>;\n finishReason: unknown;\n usage: unknown;\n providerMetadata?: unknown;\n}): ReadableStream {\n return new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'stream-start', warnings: result.warnings });\n controller.enqueue({\n type: 'response-metadata',\n id: result.response?.id,\n modelId: result.response?.modelId,\n timestamp: result.response?.timestamp,\n });\n\n const toolCallMeta: Record<string, { providerExecuted?: boolean }> = {};\n for (const message of result.content) {\n if (message.type === 'tool-call') {\n const toolCall = message as {\n type: 'tool-call';\n toolCallId: string;\n toolName: string;\n input: unknown;\n providerExecuted?: boolean;\n dynamic?: boolean;\n providerMetadata?: unknown;\n };\n toolCallMeta[toolCall.toolCallId] = { providerExecuted: toolCall.providerExecuted };\n controller.enqueue({\n type: 'tool-input-start',\n id: toolCall.toolCallId,\n toolName: toolCall.toolName,\n providerExecuted: toolCall.providerExecuted,\n dynamic: toolCall.dynamic,\n providerMetadata: toolCall.providerMetadata,\n });\n controller.enqueue({\n type: 'tool-input-delta',\n id: toolCall.toolCallId,\n delta: toolCall.input,\n providerMetadata: toolCall.providerMetadata,\n });\n controller.enqueue({\n type: 'tool-input-end',\n id: toolCall.toolCallId,\n providerMetadata: toolCall.providerMetadata,\n });\n controller.enqueue(toolCall);\n } else if (message.type === 'tool-result') {\n const toolResult = message as { type: 'tool-result'; toolCallId: string; [key: string]: unknown };\n const meta = toolCallMeta[toolResult.toolCallId];\n if (meta?.providerExecuted) {\n controller.enqueue({ ...toolResult, providerExecuted: meta.providerExecuted });\n } else {\n controller.enqueue(message);\n }\n } else if (message.type === 'text') {\n const text = message as {\n type: 'text';\n text: string;\n providerMetadata?: unknown;\n };\n const id = `msg_${randomUUID()}`;\n controller.enqueue({\n type: 'text-start',\n id,\n providerMetadata: text.providerMetadata,\n });\n controller.enqueue({\n type: 'text-delta',\n id,\n delta: text.text,\n });\n controller.enqueue({\n type: 'text-end',\n id,\n });\n } else if (message.type === 'reasoning') {\n const id = `reasoning_${randomUUID()}`;\n const reasoning = message as {\n type: 'reasoning';\n text: string;\n providerMetadata?: unknown;\n };\n controller.enqueue({\n type: 'reasoning-start',\n id,\n providerMetadata: reasoning.providerMetadata,\n });\n controller.enqueue({\n type: 'reasoning-delta',\n id,\n delta: reasoning.text,\n providerMetadata: reasoning.providerMetadata,\n });\n controller.enqueue({\n type: 'reasoning-end',\n id,\n providerMetadata: reasoning.providerMetadata,\n });\n } else if (message.type === 'file') {\n const file = message as {\n type: 'file';\n mediaType: string;\n data: unknown;\n };\n controller.enqueue({\n type: 'file',\n mediaType: file.mediaType,\n data: file.data,\n });\n } else if (message.type === 'source') {\n const source = message as {\n type: 'source';\n sourceType: 'url' | 'document';\n id: string;\n url?: string;\n mediaType?: string;\n filename?: string;\n title?: string;\n providerMetadata?: unknown;\n };\n if (source.sourceType === 'url') {\n controller.enqueue({\n type: 'source',\n id: source.id,\n sourceType: 'url',\n url: source.url,\n title: source.title,\n providerMetadata: source.providerMetadata,\n });\n } else {\n controller.enqueue({\n type: 'source',\n id: source.id,\n sourceType: 'document',\n mediaType: source.mediaType,\n filename: source.filename,\n title: source.title,\n providerMetadata: source.providerMetadata,\n });\n }\n }\n }\n\n controller.enqueue({\n type: 'finish',\n finishReason: result.finishReason,\n usage: result.usage,\n providerMetadata: result.providerMetadata,\n });\n\n controller.close();\n },\n });\n}\n","import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport type { MastraLanguageModelV2 } from '../../shared.types';\nimport { createStreamFromGenerateResult } from '../generate-to-stream';\n\ntype StreamResult = Awaited<ReturnType<LanguageModelV2['doStream']>>;\n\n/**\n * Wrapper class for AI SDK V5 (LanguageModelV2) that converts doGenerate to return\n * a stream format for consistency with Mastra's streaming architecture.\n */\nexport class AISDKV5LanguageModel implements MastraLanguageModelV2 {\n /**\n * The language model must specify which language model interface version it implements.\n */\n readonly specificationVersion: 'v2' = 'v2';\n /**\n * Name of the provider for logging purposes.\n */\n readonly provider: string;\n /**\n * Provider-specific model ID for logging purposes.\n */\n readonly modelId: string;\n /**\n * Supported URL patterns by media type for the provider.\n *\n * The keys are media type patterns or full media types (e.g. `*\\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).\n * and the values are arrays of regular expressions that match the URL paths.\n * The matching should be against lower-case URLs.\n * Matched URLs are supported natively by the model and are not downloaded.\n * @returns A map of supported URL patterns by media type (as a promise or a plain object).\n */\n supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;\n\n #model: LanguageModelV2;\n\n constructor(config: LanguageModelV2) {\n this.#model = config;\n this.provider = this.#model.provider;\n this.modelId = this.#model.modelId;\n this.supportedUrls = this.#model.supportedUrls;\n }\n\n async doGenerate(options: LanguageModelV2CallOptions) {\n const result = await this.#model.doGenerate(options);\n\n return {\n ...result,\n request: result.request!,\n response: result.response as unknown as StreamResult['response'],\n stream: createStreamFromGenerateResult(result),\n };\n }\n\n async doStream(options: LanguageModelV2CallOptions) {\n return await this.#model.doStream(options);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/stream/aisdk/v4/usage.ts","../src/llm/model/model.ts","../src/llm/model/aisdk/generate-to-stream.ts","../src/llm/model/aisdk/v5/model.ts"],"names":["onFinish"],"mappings":"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","file":"chunk-D7NEB3NV.js","sourcesContent":["import type { UsageStats } from '../../../observability';\n\n/**\n * AI SDK v4 LanguageModelUsage type definition\n * (matches the ai package's LanguageModelUsage)\n */\ninterface LanguageModelUsageV4 {\n promptTokens: number;\n completionTokens: number;\n totalTokens?: number;\n}\n\n/**\n * Converts AI SDK v4 LanguageModelUsage to our UsageStats format.\n *\n * @param usage - The LanguageModelUsage from AI SDK v4\n * @returns Normalized UsageStats\n */\nexport function convertV4Usage(usage: LanguageModelUsageV4 | undefined): UsageStats {\n if (!usage) {\n return {};\n }\n\n return {\n inputTokens: usage.promptTokens,\n outputTokens: usage.completionTokens,\n };\n}\n","import { generateObject, generateText, Output, streamObject, streamText } from '@internal/ai-sdk-v4';\nimport type {\n CoreMessage,\n LanguageModelV1 as LanguageModel,\n StreamObjectOnFinishCallback,\n StreamTextOnFinishCallback,\n} from '@internal/ai-sdk-v4';\nimport {\n AnthropicSchemaCompatLayer,\n applyCompatLayer,\n DeepSeekSchemaCompatLayer,\n GoogleSchemaCompatLayer,\n MetaSchemaCompatLayer,\n OpenAIReasoningSchemaCompatLayer,\n OpenAISchemaCompatLayer,\n jsonSchema,\n} from '@mastra/schema-compat';\nimport type { JSONSchema7, Schema } from '@mastra/schema-compat';\nimport type { z } from 'zod/v4';\nimport type { MastraPrimitives } from '../../action';\nimport { MastraBase } from '../../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../../error';\nimport type { Mastra } from '../../mastra';\nimport { SpanType, resolveObservabilityContext } from '../../observability';\nimport { executeWithContext, executeWithContextSync } from '../../observability/utils';\nimport { toStandardSchema, standardSchemaToJSONSchema, isStandardSchemaWithJSON } from '../../schema';\nimport type { ZodSchema } from '../../schema';\nimport { convertV4Usage } from '../../stream/aisdk/v4/usage';\nimport { delay, isZodType } from '../../utils';\nimport { isZodArray, getZodDef } from '../../utils/zod-utils';\n\nimport type {\n GenerateObjectWithMessagesArgs,\n GenerateTextResult,\n GenerateObjectResult,\n GenerateTextWithMessagesArgs,\n OriginalGenerateTextOptions,\n ToolSet,\n GenerateReturn,\n OriginalGenerateObjectOptions,\n StreamTextWithMessagesArgs,\n StreamTextResult,\n OriginalStreamTextOptions,\n StreamObjectWithMessagesArgs,\n OriginalStreamObjectOptions,\n StreamObjectResult,\n StreamReturn,\n} from './base.types';\nimport type { inferOutput, MastraModelOptions } from './shared.types';\n\nexport class MastraLLMV1 extends MastraBase {\n #model: LanguageModel;\n #mastra?: Mastra;\n #options?: MastraModelOptions;\n\n constructor({ model, mastra, options }: { model: LanguageModel; mastra?: Mastra; options?: MastraModelOptions }) {\n super({ name: 'aisdk' });\n\n this.#model = model;\n this.#options = options;\n\n if (mastra) {\n this.#mastra = mastra;\n if (mastra.getLogger()) {\n this.__setLogger(this.#mastra.getLogger());\n }\n }\n }\n\n __registerPrimitives(p: MastraPrimitives) {\n if (p.logger) {\n this.__setLogger(p.logger);\n }\n }\n\n __registerMastra(p: Mastra) {\n this.#mastra = p;\n }\n\n getProvider() {\n return this.#model.provider;\n }\n\n getModelId() {\n return this.#model.modelId;\n }\n\n getModel() {\n return this.#model;\n }\n\n private _applySchemaCompat(schema: ZodSchema | JSONSchema7): Schema {\n const model = this.#model;\n\n const schemaCompatLayers = [];\n\n if (model) {\n const modelInfo = {\n modelId: model.modelId,\n supportsStructuredOutputs: model.supportsStructuredOutputs ?? false,\n provider: model.provider,\n };\n schemaCompatLayers.push(\n new OpenAIReasoningSchemaCompatLayer(modelInfo),\n new OpenAISchemaCompatLayer(modelInfo),\n new GoogleSchemaCompatLayer(modelInfo),\n new AnthropicSchemaCompatLayer(modelInfo),\n new DeepSeekSchemaCompatLayer(modelInfo),\n new MetaSchemaCompatLayer(modelInfo),\n );\n }\n\n // \"Type instantiation is excessively deep\" error from complex ZodSchema generic inference\n return applyCompatLayer({\n schema: schema as any,\n compatLayers: schemaCompatLayers,\n mode: 'aiSdkSchema',\n });\n }\n\n async __text<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined>({\n runId,\n messages,\n maxSteps = 5,\n tools = {},\n temperature,\n toolChoice = 'auto',\n onStepFinish,\n experimental_output,\n threadId,\n resourceId,\n requestContext,\n ...rest\n }: GenerateTextWithMessagesArgs<Tools, Z>): Promise<GenerateTextResult<Tools, Z>> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n this.logger.debug('Generating text', {\n runId,\n messages,\n maxSteps,\n threadId,\n resourceId,\n tools: Object.keys(tools),\n });\n\n let schema: z.ZodType<inferOutput<Z>> | Schema<inferOutput<Z>> | undefined = undefined;\n\n if (experimental_output) {\n this.logger.debug('Using experimental output', {\n runId,\n });\n\n if (isZodType(experimental_output)) {\n schema = experimental_output as z.ZodType<inferOutput<Z>>;\n if (isZodArray(schema)) {\n schema = getZodDef(schema).type as z.ZodType<inferOutput<Z>>;\n }\n\n // Convert Zod schema to JSON Schema via standard schema interface\n const standardSchema = toStandardSchema(schema as any);\n const jsonSchemaToUse = standardSchemaToJSONSchema(standardSchema);\n\n schema = jsonSchema<inferOutput<Z>>(jsonSchemaToUse);\n } else {\n schema = jsonSchema<inferOutput<Z>>(experimental_output);\n }\n }\n\n // make json schema a ai sdk schema\n if (tools && Object.keys(tools).length > 0) {\n for (const tool of Object.values(tools)) {\n if (tool.parameters) {\n if ('validate' in tool.parameters) {\n tool.parameters = tool.parameters;\n } else if (isStandardSchemaWithJSON(tool.parameters)) {\n tool.parameters = jsonSchema(standardSchemaToJSONSchema(tool.parameters));\n } else {\n tool.parameters = jsonSchema(tool.parameters);\n }\n }\n }\n }\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n schema,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: false,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n const argsForExecute: OriginalGenerateTextOptions<Tools, Z> = {\n ...rest,\n messages,\n model,\n temperature,\n tools: {\n ...(tools as Tools),\n },\n toolChoice,\n maxSteps,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n throw mastraError;\n }\n\n this.logger.debug('Text step change', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n experimental_output: schema\n ? Output.object({\n schema,\n })\n : undefined,\n };\n\n try {\n const result: GenerateTextResult<Tools, Z> = await executeWithContext({\n span: llmSpan,\n fn: () => generateText(argsForExecute),\n });\n\n if (schema && result.finishReason === 'stop') {\n result.object = (result as any).experimental_output;\n }\n llmSpan?.end({\n output: {\n text: result.text,\n object: result.object,\n reasoning: result.reasoningDetails,\n reasoningText: result.reasoning,\n files: result.files,\n sources: result.sources,\n toolCalls: result.toolCalls,\n warnings: result.warnings,\n },\n attributes: {\n finishReason: result.finishReason,\n responseId: result.response?.id,\n responseModel: result.response?.modelId,\n usage: convertV4Usage(result.usage),\n },\n });\n\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Generate text failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n async __textObject<Z extends ZodSchema | JSONSchema7>({\n messages,\n structuredOutput,\n runId,\n threadId,\n resourceId,\n requestContext,\n ...rest\n }: GenerateObjectWithMessagesArgs<Z>): Promise<GenerateObjectResult<Z>> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n this.logger.debug('Generating text object', { runId });\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: rest.temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: false,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (isZodArray(structuredOutput)) {\n output = 'array';\n const zodDef = getZodDef(structuredOutput);\n if ('element' in zodDef) {\n structuredOutput = zodDef.element;\n } else {\n structuredOutput = zodDef.type;\n }\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n llmSpan?.update({\n input: {\n messages,\n schema: processedSchema,\n },\n });\n\n const argsForExecute: OriginalGenerateObjectOptions<Z> = {\n ...rest,\n messages,\n model,\n output,\n schema: processedSchema as Schema<Z>,\n };\n\n try {\n // @ts-expect-error - output in our implementation can only be object or array\n const result = await generateObject(argsForExecute);\n\n llmSpan?.end({\n output: {\n object: result.object,\n warnings: result.warnings,\n },\n attributes: {\n finishReason: result.finishReason,\n responseId: result.response?.id,\n responseModel: result.response?.modelId,\n usage: convertV4Usage(result.usage),\n },\n });\n\n // @ts-expect-error - output in our implementation can only be object or array\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Generate object failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Generate object schema conversion failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n __stream<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined = undefined>({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n tools = {},\n runId,\n temperature,\n toolChoice = 'auto',\n experimental_output,\n threadId,\n resourceId,\n requestContext,\n ...rest\n }: StreamTextWithMessagesArgs<Tools, Z>): StreamTextResult<Tools, Z> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n let schema: z.ZodType<Z> | Schema<Z> | undefined;\n if (experimental_output) {\n if (typeof (experimental_output as any).parse === 'function') {\n schema = experimental_output as z.ZodType<Z>;\n if (isZodArray(schema)) {\n schema = getZodDef(schema).type as z.ZodType<Z>;\n }\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<Z>;\n }\n }\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: true,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n if (llmSpan) {\n executeWithContextSync({\n span: llmSpan,\n fn: () =>\n this.logger.debug('Streaming text', {\n runId,\n threadId,\n resourceId,\n messages,\n maxSteps,\n tools: Object.keys(tools || {}),\n }),\n });\n }\n\n // make json schema a ai sdk schema\n if (tools && Object.keys(tools).length > 0) {\n for (const tool of Object.values(tools)) {\n if (tool.parameters) {\n if ('validate' in tool.parameters) {\n tool.parameters = tool.parameters;\n } else if (isStandardSchemaWithJSON(tool.parameters)) {\n tool.parameters = jsonSchema(standardSchemaToJSONSchema(tool.parameters));\n } else {\n tool.parameters = jsonSchema(tool.parameters);\n }\n }\n }\n }\n\n const argsForExecute: OriginalStreamTextOptions<Tools, Z> = {\n model,\n temperature,\n tools: {\n ...(tools as Tools),\n },\n maxSteps,\n toolChoice,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n\n this.logger.debug('Stream step change', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n onFinish: async props => {\n // End the model generation span BEFORE calling the user's onFinish callback\n // This ensures the model span ends before the agent span\n llmSpan?.end({\n output: {\n text: props?.text,\n reasoning: props?.reasoningDetails,\n reasoningText: props?.reasoning,\n files: props?.files,\n sources: props?.sources,\n toolCalls: props?.toolCalls,\n warnings: props?.warnings,\n },\n attributes: {\n finishReason: props?.finishReason,\n usage: convertV4Usage(props?.usage),\n },\n });\n\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('Stream finished', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n onError: ({ error }) => {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_STREAMING_ERROR',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n error,\n );\n this.logger.error('Stream text error', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n },\n ...rest,\n messages,\n experimental_output: schema\n ? (Output.object({\n schema,\n }) as any)\n : undefined,\n };\n\n try {\n return executeWithContextSync({ span: llmSpan, fn: () => streamText(argsForExecute) });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Stream text failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n __streamObject<T extends ZodSchema | JSONSchema7>({\n messages,\n runId,\n requestContext,\n threadId,\n resourceId,\n onFinish,\n structuredOutput,\n ...rest\n }: StreamObjectWithMessagesArgs<T>): StreamObjectResult<T> {\n const model = this.#model;\n const observabilityContext = resolveObservabilityContext(rest);\n\n this.logger.debug('Streaming structured output', {\n runId,\n messages,\n });\n\n const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: rest.temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: true,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n requestContext,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (isZodArray(structuredOutput)) {\n output = 'array';\n structuredOutput = getZodDef(structuredOutput).type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n llmSpan?.update({\n input: {\n messages,\n schema: processedSchema,\n },\n });\n\n const argsForExecute: OriginalStreamObjectOptions<T> = {\n ...rest,\n model,\n onFinish: async (props: any) => {\n // End the model generation span BEFORE calling the user's onFinish callback\n // This ensures the model span ends before the agent span\n llmSpan?.end({\n output: {\n text: props?.text,\n object: props?.object,\n reasoning: props?.reasoningDetails,\n reasoningText: props?.reasoning,\n files: props?.files,\n sources: props?.sources,\n warnings: props?.warnings,\n },\n attributes: {\n finishReason: props?.finishReason,\n usage: props?.usage,\n },\n });\n\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n toolCalls: '',\n toolResults: '',\n finishReason: '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n\n this.logger.debug('Object stream finished', {\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n onError: ({ error }) => {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_STREAMING_ERROR',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n error,\n );\n this.logger.error('Stream object error', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n },\n messages,\n output,\n schema: processedSchema as Schema<inferOutput<T>>,\n };\n\n try {\n return streamObject(argsForExecute as any);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Stream object failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n llmSpan?.error({ error: e });\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n this.logger.error('Stream object schema conversion failed', {\n error: mastraError,\n runId,\n threadId,\n resourceId,\n modelId: model.modelId,\n modelProvider: model.provider,\n });\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n convertToMessages(messages: string | string[] | CoreMessage[]): CoreMessage[] {\n if (Array.isArray(messages)) {\n return messages.map(m => {\n if (typeof m === 'string') {\n return {\n role: 'user',\n content: m,\n };\n }\n return m;\n });\n }\n\n return [\n {\n role: 'user',\n content: messages,\n },\n ];\n }\n\n async generate<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n args?: Omit<\n Output extends undefined\n ? GenerateTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<GenerateObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'>,\n 'messages'\n > & { output?: Output },\n ): Promise<GenerateReturn<Tools, Output, StructuredOutput>> {\n const msgs = this.convertToMessages(messages);\n const { output, ...rest } = args ?? ({} as NonNullable<typeof args>);\n\n if (!output) {\n return (await this.__text<Tools, StructuredOutput>({\n messages: msgs,\n ...(rest as unknown as Omit<GenerateTextWithMessagesArgs<Tools, StructuredOutput>, 'messages'>),\n })) as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n return (await this.__textObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n ...(rest as unknown as Omit<\n GenerateObjectWithMessagesArgs<NonNullable<Output>>,\n 'messages' | 'structuredOutput'\n >),\n })) as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n stream<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n args?: Omit<\n Output extends undefined\n ? StreamTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<StreamObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'> & { maxSteps?: never },\n 'messages'\n > & { output?: Output },\n ): StreamReturn<Tools, Output, StructuredOutput> {\n const msgs = this.convertToMessages(messages);\n const { output, ...rest } = args ?? ({} as NonNullable<typeof args>);\n\n if (!output) {\n const {\n maxSteps = 5,\n onFinish,\n ...streamRest\n } = rest as unknown as Omit<StreamTextWithMessagesArgs<Tools, StructuredOutput>, 'messages'>;\n return this.__stream({\n messages: msgs,\n maxSteps,\n onFinish: onFinish as StreamTextOnFinishCallback<Tools> | undefined,\n ...streamRest,\n }) as StreamReturn<Tools, Output, StructuredOutput>;\n }\n\n const { onFinish, ...objectRest } = rest as unknown as Omit<\n StreamObjectWithMessagesArgs<NonNullable<Output>>,\n 'messages' | 'structuredOutput'\n >;\n return this.__streamObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n onFinish: onFinish as StreamObjectOnFinishCallback<inferOutput<Output>> | undefined,\n ...objectRest,\n }) as StreamReturn<Tools, Output, StructuredOutput>;\n }\n}\n","import { randomUUID } from 'node:crypto';\n\n/**\n * Converts a doGenerate result to a ReadableStream format.\n * This is shared between V2 and V3 model wrappers since the content/result structure is compatible.\n */\nexport function createStreamFromGenerateResult(result: {\n warnings: unknown[];\n response?: {\n id?: string;\n modelId?: string;\n timestamp?: Date;\n };\n content: Array<{\n type: string;\n [key: string]: unknown;\n }>;\n finishReason: unknown;\n usage: unknown;\n providerMetadata?: unknown;\n}): ReadableStream {\n return new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'stream-start', warnings: result.warnings });\n controller.enqueue({\n type: 'response-metadata',\n id: result.response?.id,\n modelId: result.response?.modelId,\n timestamp: result.response?.timestamp,\n });\n\n const toolCallMeta: Record<string, { providerExecuted?: boolean }> = {};\n for (const message of result.content) {\n if (message.type === 'tool-call') {\n const toolCall = message as {\n type: 'tool-call';\n toolCallId: string;\n toolName: string;\n input: unknown;\n providerExecuted?: boolean;\n dynamic?: boolean;\n providerMetadata?: unknown;\n };\n toolCallMeta[toolCall.toolCallId] = { providerExecuted: toolCall.providerExecuted };\n controller.enqueue({\n type: 'tool-input-start',\n id: toolCall.toolCallId,\n toolName: toolCall.toolName,\n providerExecuted: toolCall.providerExecuted,\n dynamic: toolCall.dynamic,\n providerMetadata: toolCall.providerMetadata,\n });\n controller.enqueue({\n type: 'tool-input-delta',\n id: toolCall.toolCallId,\n delta: toolCall.input,\n providerMetadata: toolCall.providerMetadata,\n });\n controller.enqueue({\n type: 'tool-input-end',\n id: toolCall.toolCallId,\n providerMetadata: toolCall.providerMetadata,\n });\n controller.enqueue(toolCall);\n } else if (message.type === 'tool-result') {\n const toolResult = message as { type: 'tool-result'; toolCallId: string; [key: string]: unknown };\n const meta = toolCallMeta[toolResult.toolCallId];\n if (meta?.providerExecuted) {\n controller.enqueue({ ...toolResult, providerExecuted: meta.providerExecuted });\n } else {\n controller.enqueue(message);\n }\n } else if (message.type === 'text') {\n const text = message as {\n type: 'text';\n text: string;\n providerMetadata?: unknown;\n };\n const id = `msg_${randomUUID()}`;\n controller.enqueue({\n type: 'text-start',\n id,\n providerMetadata: text.providerMetadata,\n });\n controller.enqueue({\n type: 'text-delta',\n id,\n delta: text.text,\n });\n controller.enqueue({\n type: 'text-end',\n id,\n });\n } else if (message.type === 'reasoning') {\n const id = `reasoning_${randomUUID()}`;\n const reasoning = message as {\n type: 'reasoning';\n text: string;\n providerMetadata?: unknown;\n };\n controller.enqueue({\n type: 'reasoning-start',\n id,\n providerMetadata: reasoning.providerMetadata,\n });\n controller.enqueue({\n type: 'reasoning-delta',\n id,\n delta: reasoning.text,\n providerMetadata: reasoning.providerMetadata,\n });\n controller.enqueue({\n type: 'reasoning-end',\n id,\n providerMetadata: reasoning.providerMetadata,\n });\n } else if (message.type === 'file') {\n const file = message as {\n type: 'file';\n mediaType: string;\n data: unknown;\n };\n controller.enqueue({\n type: 'file',\n mediaType: file.mediaType,\n data: file.data,\n });\n } else if (message.type === 'source') {\n const source = message as {\n type: 'source';\n sourceType: 'url' | 'document';\n id: string;\n url?: string;\n mediaType?: string;\n filename?: string;\n title?: string;\n providerMetadata?: unknown;\n };\n if (source.sourceType === 'url') {\n controller.enqueue({\n type: 'source',\n id: source.id,\n sourceType: 'url',\n url: source.url,\n title: source.title,\n providerMetadata: source.providerMetadata,\n });\n } else {\n controller.enqueue({\n type: 'source',\n id: source.id,\n sourceType: 'document',\n mediaType: source.mediaType,\n filename: source.filename,\n title: source.title,\n providerMetadata: source.providerMetadata,\n });\n }\n }\n }\n\n controller.enqueue({\n type: 'finish',\n finishReason: result.finishReason,\n usage: result.usage,\n providerMetadata: result.providerMetadata,\n });\n\n controller.close();\n },\n });\n}\n","import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport type { MastraLanguageModelV2 } from '../../shared.types';\nimport { createStreamFromGenerateResult } from '../generate-to-stream';\n\ntype StreamResult = Awaited<ReturnType<LanguageModelV2['doStream']>>;\n\n/**\n * Wrapper class for AI SDK V5 (LanguageModelV2) that converts doGenerate to return\n * a stream format for consistency with Mastra's streaming architecture.\n */\nexport class AISDKV5LanguageModel implements MastraLanguageModelV2 {\n /**\n * The language model must specify which language model interface version it implements.\n */\n readonly specificationVersion: 'v2' = 'v2';\n /**\n * Name of the provider for logging purposes.\n */\n readonly provider: string;\n /**\n * Provider-specific model ID for logging purposes.\n */\n readonly modelId: string;\n /**\n * Supported URL patterns by media type for the provider.\n *\n * The keys are media type patterns or full media types (e.g. `*\\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).\n * and the values are arrays of regular expressions that match the URL paths.\n * The matching should be against lower-case URLs.\n * Matched URLs are supported natively by the model and are not downloaded.\n * @returns A map of supported URL patterns by media type (as a promise or a plain object).\n */\n supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;\n\n #model: LanguageModelV2;\n\n constructor(config: LanguageModelV2) {\n this.#model = config;\n this.provider = this.#model.provider;\n this.modelId = this.#model.modelId;\n this.supportedUrls = this.#model.supportedUrls;\n }\n\n async doGenerate(options: LanguageModelV2CallOptions) {\n const result = await this.#model.doGenerate(options);\n\n return {\n ...result,\n request: result.request!,\n response: result.response as unknown as StreamResult['response'],\n stream: createStreamFromGenerateResult(result),\n };\n }\n\n async doStream(options: LanguageModelV2CallOptions) {\n return await this.#model.doStream(options);\n }\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkJ7AHOVB2_cjs = require('./chunk-J7AHOVB2.cjs');
4
- var chunkF3OO446O_cjs = require('./chunk-F3OO446O.cjs');
5
- var chunk57OYWNNV_cjs = require('./chunk-57OYWNNV.cjs');
3
+ var chunkF6ZURDS4_cjs = require('./chunk-F6ZURDS4.cjs');
4
+ var chunk3OK3LWP4_cjs = require('./chunk-3OK3LWP4.cjs');
5
+ var chunkQRJSP5G2_cjs = require('./chunk-QRJSP5G2.cjs');
6
+ var chunkEX2LVHTL_cjs = require('./chunk-EX2LVHTL.cjs');
6
7
  var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
7
8
  var pMap = require('p-map');
8
9
 
@@ -10,6 +11,16 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
11
12
  var pMap__default = /*#__PURE__*/_interopDefault(pMap);
12
13
 
14
+ function toScorerTargetEntityType(entityType) {
15
+ switch (entityType) {
16
+ case "AGENT":
17
+ return chunkEX2LVHTL_cjs.EntityType.AGENT;
18
+ case "WORKFLOW":
19
+ return chunkEX2LVHTL_cjs.EntityType.WORKFLOW_RUN;
20
+ default:
21
+ return void 0;
22
+ }
23
+ }
13
24
  function createOnScorerHook(mastra) {
14
25
  return async (hookData) => {
15
26
  const storage = mastra.getStorage();
@@ -38,18 +49,19 @@ function createOnScorerHook(mastra) {
38
49
  let input = hookData.input;
39
50
  let output = hookData.output;
40
51
  const { structuredOutput, ...rest } = hookData;
52
+ const currentSpan = hookData.tracingContext?.currentSpan;
53
+ const traceId = currentSpan?.isValid ? currentSpan.traceId : void 0;
54
+ const spanId = currentSpan?.isValid ? currentSpan.id : void 0;
41
55
  const runResult = await scorerToUse.scorer.run({
42
56
  ...rest,
43
57
  input,
44
- output
58
+ output,
59
+ scoreSource: "live",
60
+ targetScope: "span",
61
+ targetEntityType: toScorerTargetEntityType(entityType),
62
+ targetTraceId: traceId,
63
+ targetSpanId: spanId
45
64
  });
46
- let spanId;
47
- let traceId;
48
- const currentSpan = hookData.tracingContext?.currentSpan;
49
- if (currentSpan && currentSpan.isValid) {
50
- spanId = currentSpan.id;
51
- traceId = currentSpan.traceId;
52
- }
53
65
  const payload = {
54
66
  ...rest,
55
67
  ...runResult,
@@ -118,7 +130,7 @@ async function validateAndSaveScore(storage, payload) {
118
130
  text: "Scores storage domain is not available"
119
131
  });
120
132
  }
121
- const payloadToSave = chunkF3OO446O_cjs.saveScorePayloadSchema.parse(payload);
133
+ const payloadToSave = chunk3OK3LWP4_cjs.saveScorePayloadSchema.parse(payload);
122
134
  await scoresStore.saveScore(payloadToSave);
123
135
  }
124
136
  async function findScorer(mastra, entityId, entityType, scorerId) {
@@ -339,7 +351,7 @@ async function runEvals(config) {
339
351
  };
340
352
  }
341
353
  function isWorkflow(target) {
342
- return target instanceof chunkJ7AHOVB2_cjs.Workflow;
354
+ return target instanceof chunkF6ZURDS4_cjs.Workflow;
343
355
  }
344
356
  function isWorkflowScorerConfig(scorers) {
345
357
  return typeof scorers === "object" && !Array.isArray(scorers) && ("workflow" in scorers || "steps" in scorers || "trajectory" in scorers && !("agent" in scorers));
@@ -432,7 +444,7 @@ async function executeTarget(target, item, targetOptions) {
432
444
  }
433
445
  }
434
446
  async function executeWorkflow(target, item, targetOptions) {
435
- const observabilityContext = chunk57OYWNNV_cjs.resolveObservabilityContext(item);
447
+ const observabilityContext = chunkQRJSP5G2_cjs.resolveObservabilityContext(item);
436
448
  const run = await target.createRun({ disableScorers: true });
437
449
  const workflowResult = await run.start({
438
450
  ...targetOptions,
@@ -444,6 +456,7 @@ async function executeWorkflow(target, item, targetOptions) {
444
456
  return {
445
457
  traceId: workflowResult.traceId,
446
458
  spanId: workflowResult.spanId,
459
+ entityType: chunkEX2LVHTL_cjs.EntityType.WORKFLOW_RUN,
447
460
  scoringData: {
448
461
  input: item.input,
449
462
  output: workflowResult.status === "success" ? workflowResult.result : void 0,
@@ -453,9 +466,9 @@ async function executeWorkflow(target, item, targetOptions) {
453
466
  };
454
467
  }
455
468
  async function executeAgent(agent, item, targetOptions) {
456
- const observabilityContext = chunk57OYWNNV_cjs.resolveObservabilityContext(item);
469
+ const observabilityContext = chunkQRJSP5G2_cjs.resolveObservabilityContext(item);
457
470
  const model = await agent.getModel();
458
- if (chunkJ7AHOVB2_cjs.isSupportedLanguageModel(model)) {
471
+ if (chunkF6ZURDS4_cjs.isSupportedLanguageModel(model)) {
459
472
  const { structuredOutput, ...restOptions } = targetOptions ?? {};
460
473
  const baseOptions = {
461
474
  ...restOptions,
@@ -464,14 +477,22 @@ async function executeAgent(agent, item, targetOptions) {
464
477
  returnScorerData: true,
465
478
  requestContext: item.requestContext
466
479
  };
467
- return structuredOutput ? await agent.generate(item.input, { ...baseOptions, structuredOutput }) : await agent.generate(item.input, baseOptions);
480
+ const result = structuredOutput ? await agent.generate(item.input, { ...baseOptions, structuredOutput }) : await agent.generate(item.input, baseOptions);
481
+ return {
482
+ ...result,
483
+ entityType: chunkEX2LVHTL_cjs.EntityType.AGENT
484
+ };
468
485
  } else {
469
- return await agent.generateLegacy(item.input, {
486
+ const result = await agent.generateLegacy(item.input, {
470
487
  scorers: {},
471
488
  returnScorerData: true,
472
489
  requestContext: item.requestContext,
473
490
  ...observabilityContext
474
491
  });
492
+ return {
493
+ ...result,
494
+ entityType: chunkEX2LVHTL_cjs.EntityType.AGENT
495
+ };
475
496
  }
476
497
  }
477
498
  async function extractTrajectoryFromTraceStore(storage, traceId, spanId) {
@@ -481,13 +502,15 @@ async function extractTrajectoryFromTraceStore(storage, traceId, spanId) {
481
502
  if (!observabilityStore) return void 0;
482
503
  const trace = await observabilityStore.getTrace({ traceId });
483
504
  if (!trace?.spans?.length) return void 0;
484
- return chunkF3OO446O_cjs.extractTrajectoryFromTrace(trace.spans, spanId);
505
+ return chunk3OK3LWP4_cjs.extractTrajectoryFromTrace(trace.spans, spanId);
485
506
  } catch {
486
507
  return void 0;
487
508
  }
488
509
  }
489
510
  async function runScorers(scorers, targetResult, item, storage) {
490
511
  const scorerResults = {};
512
+ const targetTraceId = targetResult.traceId;
513
+ const targetEntityType = targetResult.entityType;
491
514
  if (Array.isArray(scorers)) {
492
515
  for (const scorer of scorers) {
493
516
  try {
@@ -496,7 +519,11 @@ async function runScorers(scorers, targetResult, item, storage) {
496
519
  output: targetResult.scoringData?.output,
497
520
  groundTruth: item.groundTruth,
498
521
  requestContext: item.requestContext,
499
- ...chunk57OYWNNV_cjs.resolveObservabilityContext(item)
522
+ scoreSource: "experiment",
523
+ targetScope: "span",
524
+ targetEntityType,
525
+ targetTraceId,
526
+ targetSpanId: targetResult.spanId
500
527
  });
501
528
  scorerResults[scorer.id] = score;
502
529
  } catch (error) {
@@ -525,7 +552,11 @@ async function runScorers(scorers, targetResult, item, storage) {
525
552
  output: targetResult.scoringData?.output,
526
553
  groundTruth: item.groundTruth,
527
554
  requestContext: item.requestContext,
528
- ...chunk57OYWNNV_cjs.resolveObservabilityContext(item)
555
+ scoreSource: "experiment",
556
+ targetScope: "span",
557
+ targetEntityType,
558
+ targetTraceId,
559
+ targetSpanId: targetResult.spanId
529
560
  });
530
561
  agentScorerResults[scorer.id] = score;
531
562
  } catch (error) {
@@ -552,7 +583,7 @@ async function runScorers(scorers, targetResult, item, storage) {
552
583
  const trajectoryScorerResults = {};
553
584
  const traceTrajectory = await extractTrajectoryFromTraceStore(storage, targetResult.traceId, targetResult.spanId);
554
585
  const rawOutput = targetResult.scoringData?.output;
555
- const trajectory = traceTrajectory ?? (rawOutput ? chunkF3OO446O_cjs.extractTrajectory(rawOutput) : { steps: [] });
586
+ const trajectory = traceTrajectory ?? (rawOutput ? chunk3OK3LWP4_cjs.extractTrajectory(rawOutput) : { steps: [] });
556
587
  for (const scorer of scorers.trajectory) {
557
588
  try {
558
589
  const score = await scorer.run({
@@ -561,7 +592,11 @@ async function runScorers(scorers, targetResult, item, storage) {
561
592
  groundTruth: item.groundTruth,
562
593
  expectedTrajectory: item.expectedTrajectory,
563
594
  requestContext: item.requestContext,
564
- ...chunk57OYWNNV_cjs.resolveObservabilityContext(item)
595
+ scoreSource: "experiment",
596
+ targetScope: "trajectory",
597
+ targetEntityType,
598
+ targetTraceId,
599
+ targetSpanId: targetResult.spanId
565
600
  });
566
601
  trajectoryScorerResults[scorer.id] = score;
567
602
  } catch (error) {
@@ -593,7 +628,11 @@ async function runScorers(scorers, targetResult, item, storage) {
593
628
  output: targetResult.scoringData.output,
594
629
  groundTruth: item.groundTruth,
595
630
  requestContext: item.requestContext,
596
- ...chunk57OYWNNV_cjs.resolveObservabilityContext(item)
631
+ scoreSource: "experiment",
632
+ targetScope: "span",
633
+ targetEntityType,
634
+ targetTraceId,
635
+ targetSpanId: targetResult.spanId
597
636
  });
598
637
  workflowScorerResults[scorer.id] = score;
599
638
  }
@@ -614,7 +653,10 @@ async function runScorers(scorers, targetResult, item, storage) {
614
653
  output: stepResult.output,
615
654
  groundTruth: item.groundTruth,
616
655
  requestContext: item.requestContext,
617
- ...chunk57OYWNNV_cjs.resolveObservabilityContext(item)
656
+ scoreSource: "experiment",
657
+ targetScope: "span",
658
+ targetEntityType: chunkEX2LVHTL_cjs.EntityType.WORKFLOW_STEP,
659
+ targetTraceId
618
660
  });
619
661
  stepResults[scorer.id] = score;
620
662
  } catch (error) {
@@ -649,7 +691,7 @@ async function runScorers(scorers, targetResult, item, storage) {
649
691
  if (!trajectory) {
650
692
  const stepResults = targetResult.scoringData?.stepResults;
651
693
  const stepExecutionPath = targetResult.scoringData?.stepExecutionPath;
652
- trajectory = stepResults ? chunkF3OO446O_cjs.extractWorkflowTrajectory(stepResults, stepExecutionPath) : { steps: [] };
694
+ trajectory = stepResults ? chunk3OK3LWP4_cjs.extractWorkflowTrajectory(stepResults, stepExecutionPath) : { steps: [] };
653
695
  }
654
696
  for (const scorer of scorers.trajectory) {
655
697
  try {
@@ -659,7 +701,11 @@ async function runScorers(scorers, targetResult, item, storage) {
659
701
  groundTruth: item.groundTruth,
660
702
  expectedTrajectory: item.expectedTrajectory,
661
703
  requestContext: item.requestContext,
662
- ...chunk57OYWNNV_cjs.resolveObservabilityContext(item)
704
+ scoreSource: "experiment",
705
+ targetScope: "trajectory",
706
+ targetEntityType: chunkEX2LVHTL_cjs.EntityType.TRAJECTORY,
707
+ targetTraceId,
708
+ targetSpanId: targetResult.spanId
663
709
  });
664
710
  trajectoryScorerResults[scorer.id] = score;
665
711
  } catch (error) {
@@ -848,5 +894,5 @@ async function saveSingleScore({
848
894
  exports.createOnScorerHook = createOnScorerHook;
849
895
  exports.runEvals = runEvals;
850
896
  exports.validateAndSaveScore = validateAndSaveScore;
851
- //# sourceMappingURL=chunk-CRGRF7QL.cjs.map
852
- //# sourceMappingURL=chunk-CRGRF7QL.cjs.map
897
+ //# sourceMappingURL=chunk-E4TMODUG.cjs.map
898
+ //# sourceMappingURL=chunk-E4TMODUG.cjs.map