@mastra/server 1.36.0-alpha.0 → 1.36.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 (183) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{api-schema-manifest-AUYKZJAA.js → api-schema-manifest-EJXNYOFH.js} +3 -3
  3. package/dist/{api-schema-manifest-AUYKZJAA.js.map → api-schema-manifest-EJXNYOFH.js.map} +1 -1
  4. package/dist/{api-schema-manifest-FWK7OIXL.cjs → api-schema-manifest-EMKHNXSD.cjs} +4 -4
  5. package/dist/{api-schema-manifest-FWK7OIXL.cjs.map → api-schema-manifest-EMKHNXSD.cjs.map} +1 -1
  6. package/dist/{chunk-RUKCZLXN.cjs → chunk-3NA22RQ5.cjs} +3 -3
  7. package/dist/{chunk-RUKCZLXN.cjs.map → chunk-3NA22RQ5.cjs.map} +1 -1
  8. package/dist/{chunk-NIX5VQJ6.cjs → chunk-3PQSHLG7.cjs} +68 -68
  9. package/dist/{chunk-NIX5VQJ6.cjs.map → chunk-3PQSHLG7.cjs.map} +1 -1
  10. package/dist/{chunk-7GX35QLL.cjs → chunk-4YSEVAAS.cjs} +23 -23
  11. package/dist/{chunk-7GX35QLL.cjs.map → chunk-4YSEVAAS.cjs.map} +1 -1
  12. package/dist/{chunk-3Y7SOTAS.js → chunk-6IUJAAQ2.js} +3 -3
  13. package/dist/{chunk-3Y7SOTAS.js.map → chunk-6IUJAAQ2.js.map} +1 -1
  14. package/dist/{chunk-CXI6IIFZ.cjs → chunk-7R7WT24X.cjs} +5 -5
  15. package/dist/{chunk-CXI6IIFZ.cjs.map → chunk-7R7WT24X.cjs.map} +1 -1
  16. package/dist/{chunk-VTMAYC4R.js → chunk-7YV7MYOP.js} +3 -3
  17. package/dist/{chunk-VTMAYC4R.js.map → chunk-7YV7MYOP.js.map} +1 -1
  18. package/dist/{chunk-53OYU4CP.js → chunk-B3UPXBHD.js} +4 -4
  19. package/dist/{chunk-53OYU4CP.js.map → chunk-B3UPXBHD.js.map} +1 -1
  20. package/dist/{chunk-FIWR56T7.cjs → chunk-BBB4NKZZ.cjs} +21 -21
  21. package/dist/{chunk-FIWR56T7.cjs.map → chunk-BBB4NKZZ.cjs.map} +1 -1
  22. package/dist/{chunk-LXXKGWXS.js → chunk-BBD7VAAR.js} +3 -3
  23. package/dist/{chunk-LXXKGWXS.js.map → chunk-BBD7VAAR.js.map} +1 -1
  24. package/dist/{chunk-Y65G4C35.cjs → chunk-DGJSHUP4.cjs} +63 -63
  25. package/dist/{chunk-Y65G4C35.cjs.map → chunk-DGJSHUP4.cjs.map} +1 -1
  26. package/dist/{chunk-KWJC4MNT.js → chunk-DM6UW5RD.js} +6 -6
  27. package/dist/{chunk-KWJC4MNT.js.map → chunk-DM6UW5RD.js.map} +1 -1
  28. package/dist/{chunk-URAYY3ZG.cjs → chunk-DRTUU5WC.cjs} +4 -4
  29. package/dist/{chunk-URAYY3ZG.cjs.map → chunk-DRTUU5WC.cjs.map} +1 -1
  30. package/dist/{chunk-MJBD3YYS.js → chunk-DYN7KSCZ.js} +4 -4
  31. package/dist/{chunk-MJBD3YYS.js.map → chunk-DYN7KSCZ.js.map} +1 -1
  32. package/dist/{chunk-HDBLTBJ4.js → chunk-ELWN7ZXR.js} +4 -4
  33. package/dist/{chunk-HDBLTBJ4.js.map → chunk-ELWN7ZXR.js.map} +1 -1
  34. package/dist/{chunk-JTMIZMGO.cjs → chunk-ES23WZRF.cjs} +8 -8
  35. package/dist/{chunk-JTMIZMGO.cjs.map → chunk-ES23WZRF.cjs.map} +1 -1
  36. package/dist/{chunk-UT2JT5GC.js → chunk-GTYVB2TS.js} +3 -3
  37. package/dist/{chunk-UT2JT5GC.js.map → chunk-GTYVB2TS.js.map} +1 -1
  38. package/dist/{chunk-PG4IJL7T.cjs → chunk-H3RUJBEL.cjs} +3 -3
  39. package/dist/{chunk-PG4IJL7T.cjs.map → chunk-H3RUJBEL.cjs.map} +1 -1
  40. package/dist/{chunk-WWXG4HNX.js → chunk-HT4KV7V5.js} +3 -3
  41. package/dist/{chunk-WWXG4HNX.js.map → chunk-HT4KV7V5.js.map} +1 -1
  42. package/dist/{chunk-JMFAOQYF.cjs → chunk-IVFIYTLD.cjs} +16 -16
  43. package/dist/{chunk-JMFAOQYF.cjs.map → chunk-IVFIYTLD.cjs.map} +1 -1
  44. package/dist/{chunk-Z35VW4BM.cjs → chunk-IXRARW5C.cjs} +32 -11
  45. package/dist/chunk-IXRARW5C.cjs.map +1 -0
  46. package/dist/{chunk-5JX72ECO.cjs → chunk-JBAQMT4Y.cjs} +7 -7
  47. package/dist/{chunk-5JX72ECO.cjs.map → chunk-JBAQMT4Y.cjs.map} +1 -1
  48. package/dist/{chunk-OG3CV6IN.cjs → chunk-JRFHBWKQ.cjs} +3 -3
  49. package/dist/{chunk-OG3CV6IN.cjs.map → chunk-JRFHBWKQ.cjs.map} +1 -1
  50. package/dist/{chunk-BVZLX6R4.cjs → chunk-JRZZN55Y.cjs} +3 -3
  51. package/dist/{chunk-BVZLX6R4.cjs.map → chunk-JRZZN55Y.cjs.map} +1 -1
  52. package/dist/{chunk-5PPFITJ3.js → chunk-KGK2LCZ4.js} +4 -4
  53. package/dist/{chunk-5PPFITJ3.js.map → chunk-KGK2LCZ4.js.map} +1 -1
  54. package/dist/{chunk-MFBQYZP2.cjs → chunk-L3WM4IWR.cjs} +3 -3
  55. package/dist/{chunk-MFBQYZP2.cjs.map → chunk-L3WM4IWR.cjs.map} +1 -1
  56. package/dist/{chunk-EG3QNCBQ.cjs → chunk-M4MNMBQF.cjs} +4 -4
  57. package/dist/{chunk-EG3QNCBQ.cjs.map → chunk-M4MNMBQF.cjs.map} +1 -1
  58. package/dist/{chunk-7ASFLZZ6.cjs → chunk-MEYWNCUV.cjs} +7 -7
  59. package/dist/{chunk-7ASFLZZ6.cjs.map → chunk-MEYWNCUV.cjs.map} +1 -1
  60. package/dist/{chunk-ULDCHPOZ.cjs → chunk-MHQFFRA2.cjs} +10 -10
  61. package/dist/{chunk-ULDCHPOZ.cjs.map → chunk-MHQFFRA2.cjs.map} +1 -1
  62. package/dist/{chunk-LL2CVXJG.js → chunk-MXGCIYNM.js} +3 -3
  63. package/dist/{chunk-LL2CVXJG.js.map → chunk-MXGCIYNM.js.map} +1 -1
  64. package/dist/{chunk-OMODGV6O.js → chunk-N44OOOAL.js} +4 -4
  65. package/dist/{chunk-OMODGV6O.js.map → chunk-N44OOOAL.js.map} +1 -1
  66. package/dist/{chunk-72Q6PR4Q.js → chunk-NDMG7SUN.js} +6 -6
  67. package/dist/{chunk-72Q6PR4Q.js.map → chunk-NDMG7SUN.js.map} +1 -1
  68. package/dist/{chunk-SWCWNQL5.js → chunk-OOEYTKTC.js} +3 -3
  69. package/dist/{chunk-SWCWNQL5.js.map → chunk-OOEYTKTC.js.map} +1 -1
  70. package/dist/{chunk-I63ON7JW.js → chunk-OS2636MU.js} +3 -3
  71. package/dist/{chunk-I63ON7JW.js.map → chunk-OS2636MU.js.map} +1 -1
  72. package/dist/{chunk-M4IITA2G.js → chunk-OULCMO5R.js} +4 -4
  73. package/dist/{chunk-M4IITA2G.js.map → chunk-OULCMO5R.js.map} +1 -1
  74. package/dist/{chunk-AFVKVAJZ.cjs → chunk-PM6YRFZW.cjs} +3 -3
  75. package/dist/{chunk-AFVKVAJZ.cjs.map → chunk-PM6YRFZW.cjs.map} +1 -1
  76. package/dist/{chunk-SUNXO2H2.cjs → chunk-PQDYNK4J.cjs} +4 -4
  77. package/dist/{chunk-SUNXO2H2.cjs.map → chunk-PQDYNK4J.cjs.map} +1 -1
  78. package/dist/{chunk-TINX42C4.js → chunk-Q7LA2XMK.js} +6 -6
  79. package/dist/{chunk-TINX42C4.js.map → chunk-Q7LA2XMK.js.map} +1 -1
  80. package/dist/{chunk-M7VWAJP3.cjs → chunk-QTPAVOG2.cjs} +3 -3
  81. package/dist/{chunk-M7VWAJP3.cjs.map → chunk-QTPAVOG2.cjs.map} +1 -1
  82. package/dist/{chunk-XL55VCXM.cjs → chunk-QWPEAC7I.cjs} +39 -39
  83. package/dist/{chunk-XL55VCXM.cjs.map → chunk-QWPEAC7I.cjs.map} +1 -1
  84. package/dist/{chunk-4WXROF2X.cjs → chunk-R4IYXUNR.cjs} +4 -4
  85. package/dist/{chunk-4WXROF2X.cjs.map → chunk-R4IYXUNR.cjs.map} +1 -1
  86. package/dist/{chunk-PCOJOGO5.cjs → chunk-RGUKCKGB.cjs} +9 -9
  87. package/dist/{chunk-PCOJOGO5.cjs.map → chunk-RGUKCKGB.cjs.map} +1 -1
  88. package/dist/{chunk-2CT57Y5S.cjs → chunk-SR6QNILC.cjs} +3 -3
  89. package/dist/{chunk-2CT57Y5S.cjs.map → chunk-SR6QNILC.cjs.map} +1 -1
  90. package/dist/{chunk-KD46CAJV.js → chunk-T3PECMPO.js} +5 -5
  91. package/dist/{chunk-KD46CAJV.js.map → chunk-T3PECMPO.js.map} +1 -1
  92. package/dist/{chunk-KEAF4TVC.cjs → chunk-T6QQYYPA.cjs} +3 -3
  93. package/dist/{chunk-KEAF4TVC.cjs.map → chunk-T6QQYYPA.cjs.map} +1 -1
  94. package/dist/{chunk-U2HTITB4.js → chunk-UOKSQHJY.js} +32 -11
  95. package/dist/chunk-UOKSQHJY.js.map +1 -0
  96. package/dist/{chunk-M5H6F2QB.js → chunk-W32BPAIP.js} +5 -5
  97. package/dist/{chunk-M5H6F2QB.js.map → chunk-W32BPAIP.js.map} +1 -1
  98. package/dist/{chunk-Y344MAUV.cjs → chunk-WNIL6DVE.cjs} +212 -212
  99. package/dist/{chunk-Y344MAUV.cjs.map → chunk-WNIL6DVE.cjs.map} +1 -1
  100. package/dist/{chunk-XAHATWVE.js → chunk-WP67ASKV.js} +6 -6
  101. package/dist/{chunk-XAHATWVE.js.map → chunk-WP67ASKV.js.map} +1 -1
  102. package/dist/{chunk-JGTLNFH2.js → chunk-X7ZNZFHV.js} +4 -4
  103. package/dist/{chunk-JGTLNFH2.js.map → chunk-X7ZNZFHV.js.map} +1 -1
  104. package/dist/{chunk-2M7CLYTM.js → chunk-XGNMFTYF.js} +6 -6
  105. package/dist/{chunk-2M7CLYTM.js.map → chunk-XGNMFTYF.js.map} +1 -1
  106. package/dist/{chunk-NONHI6TJ.js → chunk-XZT7USLH.js} +26 -26
  107. package/dist/{chunk-NONHI6TJ.js.map → chunk-XZT7USLH.js.map} +1 -1
  108. package/dist/{chunk-SBGAKEDX.js → chunk-Y6CAJLYX.js} +4 -4
  109. package/dist/{chunk-SBGAKEDX.js.map → chunk-Y6CAJLYX.js.map} +1 -1
  110. package/dist/{chunk-2OEEHCXR.js → chunk-YE3LMHL3.js} +3 -3
  111. package/dist/{chunk-2OEEHCXR.js.map → chunk-YE3LMHL3.js.map} +1 -1
  112. package/dist/{chunk-T2YPTXXE.js → chunk-YLJ5EVO3.js} +3 -3
  113. package/dist/{chunk-T2YPTXXE.js.map → chunk-YLJ5EVO3.js.map} +1 -1
  114. package/dist/{dist-PWSP7TGP.js → dist-5OGIQLEZ.js} +5 -5
  115. package/dist/{dist-PWSP7TGP.js.map → dist-5OGIQLEZ.js.map} +1 -1
  116. package/dist/{dist-5GW5WUSJ.cjs → dist-ON3E5YMU.cjs} +20 -20
  117. package/dist/{dist-5GW5WUSJ.cjs.map → dist-ON3E5YMU.cjs.map} +1 -1
  118. package/dist/docs/SKILL.md +1 -1
  119. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  120. package/dist/docs/references/docs-agents-a2a.md +115 -88
  121. package/dist/{observational-memory-SYNXJVL4-CJCHK6QY.cjs → observational-memory-J73GEMRQ-FRFHLHXN.cjs} +26 -26
  122. package/dist/{observational-memory-SYNXJVL4-CJCHK6QY.cjs.map → observational-memory-J73GEMRQ-FRFHLHXN.cjs.map} +1 -1
  123. package/dist/{observational-memory-SYNXJVL4-ATVV3WOD.js → observational-memory-J73GEMRQ-KNLGLGBD.js} +3 -3
  124. package/dist/{observational-memory-SYNXJVL4-ATVV3WOD.js.map → observational-memory-J73GEMRQ-KNLGLGBD.js.map} +1 -1
  125. package/dist/server/handlers/a2a.cjs +14 -14
  126. package/dist/server/handlers/a2a.js +1 -1
  127. package/dist/server/handlers/agent-builder.cjs +16 -16
  128. package/dist/server/handlers/agent-builder.js +1 -1
  129. package/dist/server/handlers/agent-versions.cjs +8 -8
  130. package/dist/server/handlers/agent-versions.js +1 -1
  131. package/dist/server/handlers/agents.cjs +41 -41
  132. package/dist/server/handlers/agents.js +1 -1
  133. package/dist/server/handlers/auth.cjs +11 -11
  134. package/dist/server/handlers/auth.js +1 -1
  135. package/dist/server/handlers/conversations.cjs +5 -5
  136. package/dist/server/handlers/conversations.js +1 -1
  137. package/dist/server/handlers/datasets.cjs +26 -26
  138. package/dist/server/handlers/datasets.js +1 -1
  139. package/dist/server/handlers/logs.cjs +4 -4
  140. package/dist/server/handlers/logs.js +1 -1
  141. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  142. package/dist/server/handlers/mcp-client-versions.js +1 -1
  143. package/dist/server/handlers/memory.cjs +27 -27
  144. package/dist/server/handlers/memory.js +1 -1
  145. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  146. package/dist/server/handlers/prompt-block-versions.js +1 -1
  147. package/dist/server/handlers/responses.cjs +4 -4
  148. package/dist/server/handlers/responses.js +1 -1
  149. package/dist/server/handlers/responses.storage.cjs +8 -8
  150. package/dist/server/handlers/responses.storage.js +1 -1
  151. package/dist/server/handlers/scorer-versions.cjs +8 -8
  152. package/dist/server/handlers/scorer-versions.js +1 -1
  153. package/dist/server/handlers/scores.cjs +7 -7
  154. package/dist/server/handlers/scores.js +1 -1
  155. package/dist/server/handlers/stored-agents.cjs +7 -7
  156. package/dist/server/handlers/stored-agents.js +1 -1
  157. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  158. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  159. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  160. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  161. package/dist/server/handlers/stored-scorers.cjs +6 -6
  162. package/dist/server/handlers/stored-scorers.js +1 -1
  163. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  164. package/dist/server/handlers/stored-workspaces.js +1 -1
  165. package/dist/server/handlers/system.cjs +3 -3
  166. package/dist/server/handlers/system.js +1 -1
  167. package/dist/server/handlers/tools.cjs +6 -6
  168. package/dist/server/handlers/tools.js +1 -1
  169. package/dist/server/handlers/utils.cjs +10 -10
  170. package/dist/server/handlers/utils.js +1 -1
  171. package/dist/server/handlers/voice.cjs +8 -8
  172. package/dist/server/handlers/voice.js +1 -1
  173. package/dist/server/handlers/workflows.cjs +26 -26
  174. package/dist/server/handlers/workflows.js +1 -1
  175. package/dist/server/handlers.cjs +29 -29
  176. package/dist/server/handlers.js +12 -12
  177. package/dist/server/schemas/index.cjs +245 -245
  178. package/dist/server/schemas/index.js +5 -5
  179. package/dist/server/server-adapter/index.cjs +34 -34
  180. package/dist/server/server-adapter/index.js +4 -4
  181. package/package.json +5 -5
  182. package/dist/chunk-U2HTITB4.js.map +0 -1
  183. package/dist/chunk-Z35VW4BM.cjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkIIGNRK55_cjs = require('./chunk-IIGNRK55.cjs');
4
3
  var chunkF3HP5HM6_cjs = require('./chunk-F3HP5HM6.cjs');
5
- var chunk7ASFLZZ6_cjs = require('./chunk-7ASFLZZ6.cjs');
6
- var chunkNIX5VQJ6_cjs = require('./chunk-NIX5VQJ6.cjs');
7
- var chunkRUKCZLXN_cjs = require('./chunk-RUKCZLXN.cjs');
4
+ var chunkMEYWNCUV_cjs = require('./chunk-MEYWNCUV.cjs');
5
+ var chunkIIGNRK55_cjs = require('./chunk-IIGNRK55.cjs');
6
+ var chunk3PQSHLG7_cjs = require('./chunk-3PQSHLG7.cjs');
7
+ var chunk3NA22RQ5_cjs = require('./chunk-3NA22RQ5.cjs');
8
8
  var chunkAZORAK4H_cjs = require('./chunk-AZORAK4H.cjs');
9
9
  var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
10
10
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
@@ -52,22 +52,22 @@ var CREATE_CONVERSATION_ROUTE = chunkAZORAK4H_cjs.createRoute({
52
52
  description: "Creates a new thread-backed conversation for agent-backed Responses API requests",
53
53
  tags: ["Responses"],
54
54
  requiresAuth: true,
55
- requiresPermission: chunkRUKCZLXN_cjs.MastraFGAPermissions.AGENTS_CREATE,
55
+ requiresPermission: chunk3NA22RQ5_cjs.MastraFGAPermissions.AGENTS_CREATE,
56
56
  handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {
57
57
  try {
58
58
  if (!mastra) {
59
59
  throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance is required for conversations" });
60
60
  }
61
- const agent = await chunkNIX5VQJ6_cjs.getAgentFromSystem({ mastra, agentId: agent_id });
61
+ const agent = await chunk3PQSHLG7_cjs.getAgentFromSystem({ mastra, agentId: agent_id });
62
62
  const memory = await agent.getMemory({ requestContext });
63
63
  if (!memory) {
64
64
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Agent "${agent.id}" does not have memory configured` });
65
65
  }
66
- if (!await chunk7ASFLZZ6_cjs.getAgentMemoryStore({ agent, requestContext })) {
66
+ if (!await chunkMEYWNCUV_cjs.getAgentMemoryStore({ agent, requestContext })) {
67
67
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Memory storage is not configured for agent "${agent.id}"` });
68
68
  }
69
69
  const threadId = conversation_id ?? crypto.randomUUID();
70
- const resourceId = chunkRUKCZLXN_cjs.getEffectiveResourceId(requestContext, resource_id) ?? threadId;
70
+ const resourceId = chunk3NA22RQ5_cjs.getEffectiveResourceId(requestContext, resource_id) ?? threadId;
71
71
  const thread = await memory.createThread({
72
72
  threadId,
73
73
  resourceId,
@@ -90,10 +90,10 @@ var GET_CONVERSATION_ROUTE = chunkAZORAK4H_cjs.createRoute({
90
90
  description: "Returns a conversation object backed by a Mastra memory thread",
91
91
  tags: ["Responses"],
92
92
  requiresAuth: true,
93
- requiresPermission: chunkRUKCZLXN_cjs.MastraFGAPermissions.AGENTS_READ,
93
+ requiresPermission: chunk3NA22RQ5_cjs.MastraFGAPermissions.AGENTS_READ,
94
94
  handler: async ({ mastra, requestContext, conversationId }) => {
95
95
  try {
96
- const match = await chunk7ASFLZZ6_cjs.findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });
96
+ const match = await chunkMEYWNCUV_cjs.findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });
97
97
  if (!match) {
98
98
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Conversation ${conversationId} was not found` });
99
99
  }
@@ -113,10 +113,10 @@ var GET_CONVERSATION_ITEMS_ROUTE = chunkAZORAK4H_cjs.createRoute({
113
113
  description: "Returns OpenAI-style conversation items derived from the stored thread messages",
114
114
  tags: ["Responses"],
115
115
  requiresAuth: true,
116
- requiresPermission: chunkRUKCZLXN_cjs.MastraFGAPermissions.AGENTS_READ,
116
+ requiresPermission: chunk3NA22RQ5_cjs.MastraFGAPermissions.AGENTS_READ,
117
117
  handler: async ({ mastra, requestContext, conversationId }) => {
118
118
  try {
119
- const match = await chunk7ASFLZZ6_cjs.findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });
119
+ const match = await chunkMEYWNCUV_cjs.findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });
120
120
  if (!match) {
121
121
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Conversation ${conversationId} was not found` });
122
122
  }
@@ -141,10 +141,10 @@ var DELETE_CONVERSATION_ROUTE = chunkAZORAK4H_cjs.createRoute({
141
141
  description: "Deletes a thread-backed conversation and its stored items",
142
142
  tags: ["Responses"],
143
143
  requiresAuth: true,
144
- requiresPermission: chunkRUKCZLXN_cjs.MastraFGAPermissions.AGENTS_DELETE,
144
+ requiresPermission: chunk3NA22RQ5_cjs.MastraFGAPermissions.AGENTS_DELETE,
145
145
  handler: async ({ mastra, requestContext, conversationId }) => {
146
146
  try {
147
- const match = await chunk7ASFLZZ6_cjs.findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });
147
+ const match = await chunkMEYWNCUV_cjs.findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });
148
148
  if (!match) {
149
149
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Conversation ${conversationId} was not found` });
150
150
  }
@@ -161,5 +161,5 @@ exports.DELETE_CONVERSATION_ROUTE = DELETE_CONVERSATION_ROUTE;
161
161
  exports.GET_CONVERSATION_ITEMS_ROUTE = GET_CONVERSATION_ITEMS_ROUTE;
162
162
  exports.GET_CONVERSATION_ROUTE = GET_CONVERSATION_ROUTE;
163
163
  exports.conversations_exports = conversations_exports;
164
- //# sourceMappingURL=chunk-JMFAOQYF.cjs.map
165
- //# sourceMappingURL=chunk-JMFAOQYF.cjs.map
164
+ //# sourceMappingURL=chunk-IVFIYTLD.cjs.map
165
+ //# sourceMappingURL=chunk-IVFIYTLD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/conversations.ts"],"names":["__export","createRoute","createConversationBodySchema","conversationObjectSchema","MastraFGAPermissions","HTTPException","getAgentFromSystem","getAgentMemoryStore","randomUUID","getEffectiveResourceId","handleError","conversationIdPathParams","findConversationThreadAcrossAgents","conversationItemsListSchema","mapMastraMessagesToConversationItems","conversationDeletedSchema"],"mappings":"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","file":"chunk-JMFAOQYF.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/conversations.ts"],"names":["__export","createRoute","createConversationBodySchema","conversationObjectSchema","MastraFGAPermissions","HTTPException","getAgentFromSystem","getAgentMemoryStore","randomUUID","getEffectiveResourceId","handleError","conversationIdPathParams","findConversationThreadAcrossAgents","conversationItemsListSchema","mapMastraMessagesToConversationItems","conversationDeletedSchema"],"mappings":";;;;;;;;;;;;;;AAAA,IAAA,qBAAA,GAAA;AAAAA,0BAAA,CAAA,qBAAA,EAAA;AAAA,EAAA,yBAAA,EAAA,MAAA,yBAAA;AAAA,EAAA,yBAAA,EAAA,MAAA,yBAAA;AAAA,EAAA,4BAAA,EAAA,MAAA,4BAAA;AAAA,EAAA,sBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAkBA,SAAS,uBAAA,CAAwB,EAAE,MAAA,EAAO,EAAiE;AACzG,EAAA,OAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,MAAA,EAAQ,cAAA;AAAA,IACR;AAAA,GACF;AACF;AAEA,SAAS,2BAA2B,KAAA,EAA6D;AAC/F,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,MAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,KAAA,CAAM,CAAC,CAAA,EAAG,EAAA,IAAM,IAAA;AAAA,IAC1B,OAAA,EAAS,KAAA,CAAM,EAAA,CAAG,EAAE,GAAG,EAAA,IAAM,IAAA;AAAA,IAC7B,QAAA,EAAU;AAAA,GACZ;AACF;AAEA,SAAS,yBAAyB,cAAA,EAA6C;AAC7E,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,cAAA;AAAA,IACJ,MAAA,EAAQ,sBAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AACF;AAEO,IAAM,4BAA4BC,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,mBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,UAAA,EAAYC,8CAAA;AAAA,EACZ,cAAA,EAAgBC,0CAAA;AAAA,EAChB,OAAA,EAAS,uBAAA;AAAA,EACT,WAAA,EAAa,kFAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoBC,sCAAA,CAAqB,aAAA;AAAA,EACzC,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,UAAU,eAAA,EAAiB,WAAA,EAAa,KAAA,EAAO,QAAA,EAAS,KAAM;AACtG,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIC,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,iDAAiD,CAAA;AAAA,MAC3F;AAEA,MAAA,MAAM,QAAQ,MAAMC,oCAAA,CAAmB,EAAE,MAAA,EAAQ,OAAA,EAAS,UAAU,CAAA;AACpE,MAAA,MAAM,SAAS,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AACvD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAID,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,OAAA,EAAU,KAAA,CAAM,EAAE,CAAA,iCAAA,CAAA,EAAqC,CAAA;AAAA,MACjG;AACA,MAAA,IAAI,CAAE,MAAME,qCAAA,CAAoB,EAAE,KAAA,EAAO,cAAA,EAAgB,CAAA,EAAI;AAC3D,QAAA,MAAM,IAAIF,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,4CAAA,EAA+C,KAAA,CAAM,EAAE,CAAA,CAAA,CAAA,EAAK,CAAA;AAAA,MACtG;AAEA,MAAA,MAAM,QAAA,GAAW,mBAAmBG,iBAAA,EAAW;AAC/C,MAAA,MAAM,UAAA,GAAaC,wCAAA,CAAuB,cAAA,EAAgB,WAAW,CAAA,IAAK,QAAA;AAC1E,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,QACvC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,OAAO,uBAAA,CAAwB,EAAE,MAAA,EAAQ,CAAA;AAAA,IAC3C,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,yBAAyBT,6BAAA,CAAY;AAAA,EAChD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBU,0CAAA;AAAA,EACjB,cAAA,EAAgBR,0CAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoBC,sCAAA,CAAqB,WAAA;AAAA,EACzC,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAe,KAAM;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAMQ,oDAAA,CAAmC,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACjG,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIP,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,MAC1F;AAEA,MAAA,OAAO,uBAAA,CAAwB,EAAE,MAAA,EAAQ,KAAA,CAAM,QAAQ,CAAA;AAAA,IACzD,SAAS,KAAA,EAAO;AACd,MAAA,OAAOK,6BAAA,CAAY,OAAO,+BAA+B,CAAA;AAAA,IAC3D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,+BAA+BT,6BAAA,CAAY;AAAA,EACtD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,yCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBU,0CAAA;AAAA,EACjB,cAAA,EAAgBE,6CAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,iFAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoBT,sCAAA,CAAqB,WAAA;AAAA,EACzC,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAe,KAAM;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAMQ,oDAAA,CAAmC,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACjG,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIP,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,MAC1F;AAEA,MAAA,MAAM,EAAE,QAAA,EAAS,GAAI,MAAM,KAAA,CAAM,YAAY,YAAA,CAAa;AAAA,QACxD,QAAA,EAAU,cAAA;AAAA,QACV,IAAA,EAAM,CAAA;AAAA,QACN,OAAA,EAAS;AAAA,OACV,CAAA;AAED,MAAA,OAAO,0BAAA,CAA2BS,sDAAA,CAAqC,QAAQ,CAAC,CAAA;AAAA,IAClF,SAAS,KAAA,EAAO;AACd,MAAA,OAAOJ,6BAAA,CAAY,OAAO,+BAA+B,CAAA;AAAA,IAC3D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,4BAA4BT,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBU,0CAAA;AAAA,EACjB,cAAA,EAAgBI,2CAAA;AAAA,EAChB,OAAA,EAAS,uBAAA;AAAA,EACT,WAAA,EAAa,2DAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,oBAAoBX,sCAAA,CAAqB,aAAA;AAAA,EACzC,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAe,KAAM;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAMQ,oDAAA,CAAmC,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACjG,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIP,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,MAC1F;AAEA,MAAA,MAAM,MAAM,WAAA,CAAY,YAAA,CAAa,EAAE,QAAA,EAAU,gBAAgB,CAAA;AAEjE,MAAA,OAAO,yBAAyB,cAAc,CAAA;AAAA,IAChD,SAAS,KAAA,EAAO;AACd,MAAA,OAAOK,6BAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC","file":"chunk-IVFIYTLD.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"]}
@@ -1042,7 +1042,7 @@ function imageSize(input) {
1042
1042
  throw new TypeError(`unsupported file type: ${type}`);
1043
1043
  }
1044
1044
 
1045
- // ../memory/dist/chunk-LCALB7W6.js
1045
+ // ../memory/dist/chunk-YNV2E7W6.js
1046
1046
  var OM_DEBUG_LOG = process.env.OM_DEBUG ? path.join(process.cwd(), "om-debug.log") : null;
1047
1047
  function omDebug(msg) {
1048
1048
  if (!OM_DEBUG_LOG) return;
@@ -3445,7 +3445,12 @@ var ObservationTurn = class {
3445
3445
  return this._currentStep;
3446
3446
  }
3447
3447
  /**
3448
- * Finalize the turn: save any remaining messages and return the latest record state.
3448
+ * Finalize the turn: save any remaining messages and return the current cached record.
3449
+ *
3450
+ * When async observation buffering is enabled and there are unobserved messages,
3451
+ * a background buffer operation is kicked off so that observations are computed
3452
+ * proactively while the agent is idle, rather than waiting for the next turn.
3453
+ * The returned record does not wait for that background buffering pass to finish.
3449
3454
  */
3450
3455
  async end() {
3451
3456
  if (this._ended) throw new Error("Turn already ended");
@@ -3456,6 +3461,24 @@ var ObservationTurn = class {
3456
3461
  if (unsavedMessages.length > 0) {
3457
3462
  await this.om.persistMessages(unsavedMessages, this.threadId, this.resourceId);
3458
3463
  }
3464
+ if (this.om.buffering.isAsyncObservationEnabled()) {
3465
+ const allMessages = this.messageList.get.all.db();
3466
+ const record = this._record;
3467
+ const unobservedMessages = this.om.getUnobservedMessages(allMessages, record);
3468
+ if (unobservedMessages.length > 0) {
3469
+ void this.om.buffer({
3470
+ threadId: this.threadId,
3471
+ resourceId: this.resourceId,
3472
+ messages: unobservedMessages,
3473
+ record,
3474
+ writer: this.writer,
3475
+ requestContext: this.requestContext,
3476
+ observabilityContext: this.observabilityContext
3477
+ }).catch((err) => {
3478
+ omDebug(`[OM:turn.end] idle buffer failed: ${err?.message}`);
3479
+ });
3480
+ }
3481
+ }
3459
3482
  return { record: this._record };
3460
3483
  }
3461
3484
  /**
@@ -4947,13 +4970,11 @@ async function withOmTracingSpan({
4947
4970
  entityType: observability.EntityType.OUTPUT_STEP_PROCESSOR,
4948
4971
  entityName: config.entityName,
4949
4972
  tracingContext: observabilityContext?.tracingContext ?? observabilityContext?.tracing,
4950
- attributes: {
4951
- metadata: {
4952
- omPhase: phase,
4953
- omInputTokens: inputTokens,
4954
- omSelectedModel: typeof model === "string" ? model : "(dynamic-model)",
4955
- ...metadata
4956
- }
4973
+ metadata: {
4974
+ omPhase: phase,
4975
+ omInputTokens: inputTokens,
4976
+ omSelectedModel: typeof model === "string" ? model : "(dynamic-model)",
4977
+ ...metadata
4957
4978
  },
4958
4979
  requestContext
4959
4980
  });
@@ -10715,5 +10736,5 @@ exports.stripEphemeralAnchorIds = stripEphemeralAnchorIds;
10715
10736
  exports.stripObservationGroups = stripObservationGroups;
10716
10737
  exports.truncateStringByTokens = truncateStringByTokens;
10717
10738
  exports.wrapInObservationGroup = wrapInObservationGroup;
10718
- //# sourceMappingURL=chunk-Z35VW4BM.cjs.map
10719
- //# sourceMappingURL=chunk-Z35VW4BM.cjs.map
10739
+ //# sourceMappingURL=chunk-IXRARW5C.cjs.map
10740
+ //# sourceMappingURL=chunk-IXRARW5C.cjs.map