@mastra/server 0.0.0-expose-more-playground-ui-20250502141824 → 0.0.0-feat-tool-input-validation-20250731232758

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 (106) hide show
  1. package/LICENSE.md +11 -42
  2. package/README.md +48 -135
  3. package/dist/_tsup-dts-rollup.d.cts +715 -109
  4. package/dist/_tsup-dts-rollup.d.ts +715 -109
  5. package/dist/{chunk-FV45V6WC.cjs → chunk-2KZFMI6P.cjs} +1 -7
  6. package/dist/{chunk-5YGDYMRB.cjs → chunk-2SLFAFTR.cjs} +14 -13
  7. package/dist/chunk-36BLNJHS.js +2039 -0
  8. package/dist/chunk-424T5F2J.cjs +157 -0
  9. package/dist/chunk-4D66QEKC.js +81 -0
  10. package/dist/chunk-6KP2OBYA.cjs +544 -0
  11. package/dist/chunk-6T5JUKOQ.js +149 -0
  12. package/dist/chunk-75ZPJI57.cjs +9 -0
  13. package/dist/{chunk-M56ECCHK.cjs → chunk-7TP2LX5L.cjs} +20 -19
  14. package/dist/{chunk-QN4KF3BH.cjs → chunk-CCGRCYWJ.cjs} +2 -2
  15. package/dist/{chunk-QJ3AHN64.js → chunk-CRCR3ZUK.js} +4 -3
  16. package/dist/{chunk-7IWQE76Z.cjs → chunk-G7KH752Y.cjs} +16 -10
  17. package/dist/chunk-GHC4YV6R.js +504 -0
  18. package/dist/chunk-HISYIDYH.cjs +2042 -0
  19. package/dist/{chunk-D3G23FP3.cjs → chunk-HRSAZUIK.cjs} +24 -22
  20. package/dist/chunk-I5JKUCGE.cjs +308 -0
  21. package/dist/{chunk-Q6SHQECN.js → chunk-KHZKYUNR.js} +34 -10
  22. package/dist/{chunk-TRDNDNGQ.js → chunk-LCM566I4.js} +2 -7
  23. package/dist/chunk-LF7P5PLR.js +14 -0
  24. package/dist/chunk-MLKGABMK.js +7 -0
  25. package/dist/chunk-PIAJQ75M.js +539 -0
  26. package/dist/chunk-PZQDCRPV.cjs +16 -0
  27. package/dist/chunk-QGX47B5D.cjs +86 -0
  28. package/dist/{chunk-WTHDCRMY.js → chunk-RG473F6Y.js} +12 -6
  29. package/dist/chunk-RHSWAXKB.cjs +118 -0
  30. package/dist/{chunk-L7XE5QTW.js → chunk-RSEO4XPX.js} +1 -1
  31. package/dist/chunk-SDPGVWQJ.cjs +512 -0
  32. package/dist/chunk-T7HAZC2E.js +527 -0
  33. package/dist/chunk-UCV4247U.cjs +332 -0
  34. package/dist/chunk-UEVYOKAH.cjs +555 -0
  35. package/dist/{chunk-Y3SV5XK4.js → chunk-VTTN2FW3.js} +136 -18
  36. package/dist/{chunk-5JNVY6DU.js → chunk-WBRFIHSF.js} +7 -5
  37. package/dist/{chunk-4JINXASC.js → chunk-WNVFNNWN.js} +5 -4
  38. package/dist/{chunk-M3YJLWTU.js → chunk-ZYAFP2AV.js} +68 -57
  39. package/dist/server/handlers/a2a.cjs +30 -0
  40. package/dist/server/handlers/a2a.d.cts +6 -0
  41. package/dist/server/handlers/a2a.d.ts +6 -0
  42. package/dist/server/handlers/a2a.js +1 -0
  43. package/dist/server/handlers/agents.cjs +11 -7
  44. package/dist/server/handlers/agents.d.cts +1 -0
  45. package/dist/server/handlers/agents.d.ts +1 -0
  46. package/dist/server/handlers/agents.js +1 -1
  47. package/dist/server/handlers/error.cjs +2 -2
  48. package/dist/server/handlers/error.js +1 -1
  49. package/dist/server/handlers/legacyWorkflows.cjs +46 -0
  50. package/dist/server/handlers/legacyWorkflows.d.cts +10 -0
  51. package/dist/server/handlers/legacyWorkflows.d.ts +10 -0
  52. package/dist/server/handlers/legacyWorkflows.js +1 -0
  53. package/dist/server/handlers/logs.cjs +4 -4
  54. package/dist/server/handlers/logs.js +1 -1
  55. package/dist/server/handlers/memory.cjs +33 -9
  56. package/dist/server/handlers/memory.d.cts +6 -0
  57. package/dist/server/handlers/memory.d.ts +6 -0
  58. package/dist/server/handlers/memory.js +1 -1
  59. package/dist/server/handlers/network.cjs +5 -5
  60. package/dist/server/handlers/network.js +1 -1
  61. package/dist/server/handlers/scores.cjs +30 -0
  62. package/dist/server/handlers/scores.d.cts +6 -0
  63. package/dist/server/handlers/scores.d.ts +6 -0
  64. package/dist/server/handlers/scores.js +1 -0
  65. package/dist/server/handlers/telemetry.cjs +3 -3
  66. package/dist/server/handlers/telemetry.js +1 -1
  67. package/dist/server/handlers/tools.cjs +5 -5
  68. package/dist/server/handlers/tools.js +1 -1
  69. package/dist/server/handlers/utils.cjs +2 -2
  70. package/dist/server/handlers/utils.js +1 -1
  71. package/dist/server/handlers/vNextNetwork.cjs +218 -0
  72. package/dist/server/handlers/vNextNetwork.d.cts +6 -0
  73. package/dist/server/handlers/vNextNetwork.d.ts +6 -0
  74. package/dist/server/handlers/vNextNetwork.js +211 -0
  75. package/dist/server/handlers/vector.cjs +7 -7
  76. package/dist/server/handlers/vector.js +1 -1
  77. package/dist/server/handlers/voice.cjs +8 -4
  78. package/dist/server/handlers/voice.d.cts +1 -0
  79. package/dist/server/handlers/voice.d.ts +1 -0
  80. package/dist/server/handlers/voice.js +1 -1
  81. package/dist/server/handlers/workflows.cjs +33 -13
  82. package/dist/server/handlers/workflows.d.cts +7 -2
  83. package/dist/server/handlers/workflows.d.ts +7 -2
  84. package/dist/server/handlers/workflows.js +1 -1
  85. package/dist/server/handlers.cjs +39 -29
  86. package/dist/server/handlers.d.cts +4 -2
  87. package/dist/server/handlers.d.ts +4 -2
  88. package/dist/server/handlers.js +12 -10
  89. package/package.json +17 -15
  90. package/dist/chunk-2FJURXCL.cjs +0 -213
  91. package/dist/chunk-3AHQ5RGN.js +0 -11
  92. package/dist/chunk-3EJZQ6TQ.js +0 -49
  93. package/dist/chunk-4BIX6GMY.cjs +0 -189
  94. package/dist/chunk-55HTWX4C.cjs +0 -93
  95. package/dist/chunk-5SWCVTNL.cjs +0 -5579
  96. package/dist/chunk-AELYAUEE.cjs +0 -316
  97. package/dist/chunk-EVCC233P.cjs +0 -321
  98. package/dist/chunk-JPB6RPGB.js +0 -304
  99. package/dist/chunk-OMN3UI6X.js +0 -5576
  100. package/dist/chunk-RBQASTUP.js +0 -203
  101. package/dist/chunk-SKBVVI24.cjs +0 -54
  102. package/dist/chunk-ZLBRQFDD.cjs +0 -13
  103. package/dist/server/handlers/vNextWorkflows.cjs +0 -46
  104. package/dist/server/handlers/vNextWorkflows.d.cts +0 -10
  105. package/dist/server/handlers/vNextWorkflows.d.ts +0 -10
  106. package/dist/server/handlers/vNextWorkflows.js +0 -1
@@ -1,14 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunk5SWCVTNL_cjs = require('./chunk-5SWCVTNL.cjs');
4
- var chunkQN4KF3BH_cjs = require('./chunk-QN4KF3BH.cjs');
5
- var chunkZLBRQFDD_cjs = require('./chunk-ZLBRQFDD.cjs');
6
- var chunkFV45V6WC_cjs = require('./chunk-FV45V6WC.cjs');
3
+ var chunkHISYIDYH_cjs = require('./chunk-HISYIDYH.cjs');
4
+ var chunkCCGRCYWJ_cjs = require('./chunk-CCGRCYWJ.cjs');
5
+ var chunkPZQDCRPV_cjs = require('./chunk-PZQDCRPV.cjs');
6
+ var chunk2KZFMI6P_cjs = require('./chunk-2KZFMI6P.cjs');
7
+ var chunk75ZPJI57_cjs = require('./chunk-75ZPJI57.cjs');
7
8
  var tools = require('@mastra/core/tools');
8
9
 
9
10
  // src/server/handlers/tools.ts
10
11
  var tools_exports = {};
11
- chunkFV45V6WC_cjs.__export(tools_exports, {
12
+ chunk75ZPJI57_cjs.__export(tools_exports, {
12
13
  executeAgentToolHandler: () => executeAgentToolHandler,
13
14
  executeToolHandler: () => executeToolHandler,
14
15
  getToolByIdHandler: () => getToolByIdHandler,
@@ -24,8 +25,8 @@ async function getToolsHandler({ tools }) {
24
25
  const tool = _tool;
25
26
  acc[id] = {
26
27
  ...tool,
27
- inputSchema: tool.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(tool.inputSchema)) : void 0,
28
- outputSchema: tool.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(tool.outputSchema)) : void 0
28
+ inputSchema: tool.inputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(tool.inputSchema)) : void 0,
29
+ outputSchema: tool.outputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(tool.outputSchema)) : void 0
29
30
  };
30
31
  return acc;
31
32
  },
@@ -33,23 +34,23 @@ async function getToolsHandler({ tools }) {
33
34
  );
34
35
  return serializedTools;
35
36
  } catch (error) {
36
- return chunkZLBRQFDD_cjs.handleError(error, "Error getting tools");
37
+ return chunkPZQDCRPV_cjs.handleError(error, "Error getting tools");
37
38
  }
38
39
  }
39
40
  async function getToolByIdHandler({ tools, toolId }) {
40
41
  try {
41
42
  const tool = Object.values(tools || {}).find((tool2) => tool2.id === toolId);
42
43
  if (!tool) {
43
- throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Tool not found" });
44
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Tool not found" });
44
45
  }
45
46
  const serializedTool = {
46
47
  ...tool,
47
- inputSchema: tool.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(tool.inputSchema)) : void 0,
48
- outputSchema: tool.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(tool.outputSchema)) : void 0
48
+ inputSchema: tool.inputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(tool.inputSchema)) : void 0,
49
+ outputSchema: tool.outputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(tool.outputSchema)) : void 0
49
50
  };
50
51
  return serializedTool;
51
52
  } catch (error) {
52
- return chunkZLBRQFDD_cjs.handleError(error, "Error getting tool");
53
+ return chunkPZQDCRPV_cjs.handleError(error, "Error getting tool");
53
54
  }
54
55
  }
55
56
  function executeToolHandler(tools$1) {
@@ -62,16 +63,16 @@ function executeToolHandler(tools$1) {
62
63
  }) => {
63
64
  try {
64
65
  if (!toolId) {
65
- throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Tool ID is required" });
66
+ throw new chunk2KZFMI6P_cjs.HTTPException(400, { message: "Tool ID is required" });
66
67
  }
67
68
  const tool = Object.values(tools$1 || {}).find((tool2) => tool2.id === toolId);
68
69
  if (!tool) {
69
- throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Tool not found" });
70
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Tool not found" });
70
71
  }
71
72
  if (!tool?.execute) {
72
- throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Tool is not executable" });
73
+ throw new chunk2KZFMI6P_cjs.HTTPException(400, { message: "Tool is not executable" });
73
74
  }
74
- chunkQN4KF3BH_cjs.validateBody({ data });
75
+ chunkCCGRCYWJ_cjs.validateBody({ data });
75
76
  if (tools.isVercelTool(tool)) {
76
77
  const result2 = await tool.execute(data);
77
78
  return result2;
@@ -84,7 +85,7 @@ function executeToolHandler(tools$1) {
84
85
  });
85
86
  return result;
86
87
  } catch (error) {
87
- return chunkZLBRQFDD_cjs.handleError(error, "Error executing tool");
88
+ return chunkPZQDCRPV_cjs.handleError(error, "Error executing tool");
88
89
  }
89
90
  };
90
91
  }
@@ -98,14 +99,15 @@ async function executeAgentToolHandler({
98
99
  try {
99
100
  const agent = agentId ? mastra.getAgent(agentId) : null;
100
101
  if (!agent) {
101
- throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Tool not found" });
102
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Tool not found" });
102
103
  }
103
- const tool = Object.values(agent?.tools || {}).find((tool2) => tool2.id === toolId);
104
+ const agentTools = await agent.getTools({ runtimeContext });
105
+ const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
104
106
  if (!tool) {
105
- throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Tool not found" });
107
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Tool not found" });
106
108
  }
107
109
  if (!tool?.execute) {
108
- throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Tool is not executable" });
110
+ throw new chunk2KZFMI6P_cjs.HTTPException(400, { message: "Tool is not executable" });
109
111
  }
110
112
  const result = await tool.execute({
111
113
  context: data,
@@ -115,7 +117,7 @@ async function executeAgentToolHandler({
115
117
  });
116
118
  return result;
117
119
  } catch (error) {
118
- return chunkZLBRQFDD_cjs.handleError(error, "Error executing tool");
120
+ return chunkPZQDCRPV_cjs.handleError(error, "Error executing tool");
119
121
  }
120
122
  }
121
123
 
@@ -0,0 +1,308 @@
1
+ 'use strict';
2
+
3
+ var chunkHISYIDYH_cjs = require('./chunk-HISYIDYH.cjs');
4
+ var chunkCCGRCYWJ_cjs = require('./chunk-CCGRCYWJ.cjs');
5
+ var chunkPZQDCRPV_cjs = require('./chunk-PZQDCRPV.cjs');
6
+ var chunk2KZFMI6P_cjs = require('./chunk-2KZFMI6P.cjs');
7
+ var chunk75ZPJI57_cjs = require('./chunk-75ZPJI57.cjs');
8
+ var runtimeContext = require('@mastra/core/runtime-context');
9
+
10
+ // src/server/handlers/agents.ts
11
+ var agents_exports = {};
12
+ chunk75ZPJI57_cjs.__export(agents_exports, {
13
+ generateHandler: () => generateHandler,
14
+ getAgentByIdHandler: () => getAgentByIdHandler,
15
+ getAgentsHandler: () => getAgentsHandler,
16
+ getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
17
+ getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
18
+ streamGenerateHandler: () => streamGenerateHandler,
19
+ streamVNextGenerateHandler: () => streamVNextGenerateHandler
20
+ });
21
+ async function getAgentsHandler({ mastra, runtimeContext }) {
22
+ try {
23
+ const agents = mastra.getAgents();
24
+ const serializedAgentsMap = await Promise.all(
25
+ Object.entries(agents).map(async ([id, agent]) => {
26
+ const instructions = await agent.getInstructions({ runtimeContext });
27
+ const tools = await agent.getTools({ runtimeContext });
28
+ const llm = await agent.getLLM({ runtimeContext });
29
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });
30
+ const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });
31
+ const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
32
+ const _tool = tool;
33
+ acc[key] = {
34
+ ..._tool,
35
+ inputSchema: _tool.inputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(_tool.inputSchema)) : void 0,
36
+ outputSchema: _tool.outputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(_tool.outputSchema)) : void 0
37
+ };
38
+ return acc;
39
+ }, {});
40
+ let serializedAgentWorkflows = {};
41
+ if ("getWorkflows" in agent) {
42
+ const logger = mastra.getLogger();
43
+ try {
44
+ const workflows = await agent.getWorkflows({ runtimeContext });
45
+ serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
46
+ return {
47
+ ...acc,
48
+ [key]: {
49
+ name: workflow.name
50
+ }
51
+ };
52
+ }, {});
53
+ } catch (error) {
54
+ logger.error("Error getting workflows for agent", { agentName: agent.name, error });
55
+ }
56
+ }
57
+ return {
58
+ id,
59
+ name: agent.name,
60
+ instructions,
61
+ tools: serializedAgentTools,
62
+ workflows: serializedAgentWorkflows,
63
+ provider: llm?.getProvider(),
64
+ modelId: llm?.getModelId(),
65
+ defaultGenerateOptions,
66
+ defaultStreamOptions
67
+ };
68
+ })
69
+ );
70
+ const serializedAgents = serializedAgentsMap.reduce((acc, { id, ...rest }) => {
71
+ acc[id] = rest;
72
+ return acc;
73
+ }, {});
74
+ return serializedAgents;
75
+ } catch (error) {
76
+ return chunkPZQDCRPV_cjs.handleError(error, "Error getting agents");
77
+ }
78
+ }
79
+ async function getAgentByIdHandler({
80
+ mastra,
81
+ runtimeContext,
82
+ agentId,
83
+ isPlayground = false
84
+ }) {
85
+ try {
86
+ const agent = mastra.getAgent(agentId);
87
+ if (!agent) {
88
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Agent not found" });
89
+ }
90
+ const tools = await agent.getTools({ runtimeContext });
91
+ const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
92
+ const _tool = tool;
93
+ acc[key] = {
94
+ ..._tool,
95
+ inputSchema: _tool.inputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(_tool.inputSchema)) : void 0,
96
+ outputSchema: _tool.outputSchema ? chunkHISYIDYH_cjs.stringify(chunkHISYIDYH_cjs.esm_default(_tool.outputSchema)) : void 0
97
+ };
98
+ return acc;
99
+ }, {});
100
+ let serializedAgentWorkflows = {};
101
+ if ("getWorkflows" in agent) {
102
+ const logger = mastra.getLogger();
103
+ try {
104
+ const workflows = await agent.getWorkflows({ runtimeContext });
105
+ serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
106
+ return {
107
+ ...acc,
108
+ [key]: {
109
+ name: workflow.name,
110
+ steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
111
+ return {
112
+ ...acc2,
113
+ [key2]: {
114
+ id: step.id,
115
+ description: step.description
116
+ }
117
+ };
118
+ }, {})
119
+ }
120
+ };
121
+ }, {});
122
+ } catch (error) {
123
+ logger.error("Error getting workflows for agent", { agentName: agent.name, error });
124
+ }
125
+ }
126
+ let proxyRuntimeContext = runtimeContext;
127
+ if (isPlayground) {
128
+ proxyRuntimeContext = new Proxy(runtimeContext, {
129
+ get(target, prop) {
130
+ if (prop === "get") {
131
+ return function(key) {
132
+ const value = target.get(key);
133
+ return value ?? `<${key}>`;
134
+ };
135
+ }
136
+ return Reflect.get(target, prop);
137
+ }
138
+ });
139
+ }
140
+ const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });
141
+ const llm = await agent.getLLM({ runtimeContext });
142
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
143
+ const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
144
+ return {
145
+ name: agent.name,
146
+ instructions,
147
+ tools: serializedAgentTools,
148
+ workflows: serializedAgentWorkflows,
149
+ provider: llm?.getProvider(),
150
+ modelId: llm?.getModelId(),
151
+ defaultGenerateOptions,
152
+ defaultStreamOptions
153
+ };
154
+ } catch (error) {
155
+ return chunkPZQDCRPV_cjs.handleError(error, "Error getting agent");
156
+ }
157
+ }
158
+ async function getEvalsByAgentIdHandler({
159
+ mastra,
160
+ runtimeContext,
161
+ agentId
162
+ }) {
163
+ try {
164
+ const agent = mastra.getAgent(agentId);
165
+ const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
166
+ const instructions = await agent.getInstructions({ runtimeContext });
167
+ return {
168
+ id: agentId,
169
+ name: agent.name,
170
+ instructions,
171
+ evals
172
+ };
173
+ } catch (error) {
174
+ return chunkPZQDCRPV_cjs.handleError(error, "Error getting test evals");
175
+ }
176
+ }
177
+ async function getLiveEvalsByAgentIdHandler({
178
+ mastra,
179
+ runtimeContext,
180
+ agentId
181
+ }) {
182
+ try {
183
+ const agent = mastra.getAgent(agentId);
184
+ const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
185
+ const instructions = await agent.getInstructions({ runtimeContext });
186
+ return {
187
+ id: agentId,
188
+ name: agent.name,
189
+ instructions,
190
+ evals
191
+ };
192
+ } catch (error) {
193
+ return chunkPZQDCRPV_cjs.handleError(error, "Error getting live evals");
194
+ }
195
+ }
196
+ async function generateHandler({
197
+ mastra,
198
+ runtimeContext: runtimeContext$1,
199
+ agentId,
200
+ body,
201
+ abortSignal
202
+ }) {
203
+ try {
204
+ const agent = mastra.getAgent(agentId);
205
+ if (!agent) {
206
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Agent not found" });
207
+ }
208
+ const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
209
+ const finalResourceId = resourceId ?? resourceid;
210
+ const finalRuntimeContext = new runtimeContext.RuntimeContext([
211
+ ...Array.from(runtimeContext$1.entries()),
212
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
213
+ ]);
214
+ chunkCCGRCYWJ_cjs.validateBody({ messages });
215
+ const result = await agent.generate(messages, {
216
+ ...rest,
217
+ // @ts-expect-error TODO fix types
218
+ resourceId: finalResourceId,
219
+ runtimeContext: finalRuntimeContext,
220
+ signal: abortSignal
221
+ });
222
+ return result;
223
+ } catch (error) {
224
+ return chunkPZQDCRPV_cjs.handleError(error, "Error generating from agent");
225
+ }
226
+ }
227
+ async function streamGenerateHandler({
228
+ mastra,
229
+ runtimeContext: runtimeContext$1,
230
+ agentId,
231
+ body,
232
+ abortSignal
233
+ }) {
234
+ try {
235
+ const agent = mastra.getAgent(agentId);
236
+ if (!agent) {
237
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Agent not found" });
238
+ }
239
+ const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
240
+ const finalResourceId = resourceId ?? resourceid;
241
+ const finalRuntimeContext = new runtimeContext.RuntimeContext([
242
+ ...Array.from(runtimeContext$1.entries()),
243
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
244
+ ]);
245
+ chunkCCGRCYWJ_cjs.validateBody({ messages });
246
+ const streamResult = await agent.stream(messages, {
247
+ ...rest,
248
+ // @ts-expect-error TODO fix types
249
+ resourceId: finalResourceId,
250
+ runtimeContext: finalRuntimeContext,
251
+ signal: abortSignal
252
+ });
253
+ const streamResponse = rest.output ? streamResult.toTextStreamResponse({
254
+ headers: {
255
+ "Transfer-Encoding": "chunked"
256
+ }
257
+ }) : streamResult.toDataStreamResponse({
258
+ sendUsage: true,
259
+ sendReasoning: true,
260
+ getErrorMessage: (error) => {
261
+ return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;
262
+ },
263
+ headers: {
264
+ "Transfer-Encoding": "chunked"
265
+ }
266
+ });
267
+ return streamResponse;
268
+ } catch (error) {
269
+ return chunkPZQDCRPV_cjs.handleError(error, "error streaming agent response");
270
+ }
271
+ }
272
+ function streamVNextGenerateHandler({
273
+ mastra,
274
+ runtimeContext: runtimeContext$1,
275
+ agentId,
276
+ body,
277
+ abortSignal
278
+ }) {
279
+ try {
280
+ const agent = mastra.getAgent(agentId);
281
+ if (!agent) {
282
+ throw new chunk2KZFMI6P_cjs.HTTPException(404, { message: "Agent not found" });
283
+ }
284
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
285
+ const finalRuntimeContext = new runtimeContext.RuntimeContext([
286
+ ...Array.from(runtimeContext$1.entries()),
287
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
288
+ ]);
289
+ chunkCCGRCYWJ_cjs.validateBody({ messages });
290
+ const streamResult = agent.streamVNext(messages, {
291
+ ...rest,
292
+ runtimeContext: finalRuntimeContext,
293
+ abortSignal
294
+ });
295
+ return streamResult;
296
+ } catch (error) {
297
+ return chunkPZQDCRPV_cjs.handleError(error, "error streaming agent response");
298
+ }
299
+ }
300
+
301
+ exports.agents_exports = agents_exports;
302
+ exports.generateHandler = generateHandler;
303
+ exports.getAgentByIdHandler = getAgentByIdHandler;
304
+ exports.getAgentsHandler = getAgentsHandler;
305
+ exports.getEvalsByAgentIdHandler = getEvalsByAgentIdHandler;
306
+ exports.getLiveEvalsByAgentIdHandler = getLiveEvalsByAgentIdHandler;
307
+ exports.streamGenerateHandler = streamGenerateHandler;
308
+ exports.streamVNextGenerateHandler = streamVNextGenerateHandler;
@@ -1,12 +1,14 @@
1
- import { validateBody } from './chunk-L7XE5QTW.js';
2
- import { handleError } from './chunk-3AHQ5RGN.js';
3
- import { __export, HTTPException } from './chunk-TRDNDNGQ.js';
1
+ import { validateBody } from './chunk-RSEO4XPX.js';
2
+ import { handleError } from './chunk-LF7P5PLR.js';
3
+ import { HTTPException } from './chunk-LCM566I4.js';
4
+ import { __export } from './chunk-MLKGABMK.js';
4
5
  import { Readable } from 'stream';
5
6
 
6
7
  // src/server/handlers/voice.ts
7
8
  var voice_exports = {};
8
9
  __export(voice_exports, {
9
10
  generateSpeechHandler: () => generateSpeechHandler,
11
+ getListenerHandler: () => getListenerHandler,
10
12
  getSpeakersHandler: () => getSpeakersHandler,
11
13
  transcribeSpeechHandler: () => transcribeSpeechHandler
12
14
  });
@@ -19,10 +21,11 @@ async function getSpeakersHandler({ mastra, agentId }) {
19
21
  if (!agent) {
20
22
  throw new HTTPException(404, { message: "Agent not found" });
21
23
  }
22
- if (!agent.voice) {
24
+ const voice = await agent.getVoice();
25
+ if (!voice) {
23
26
  throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
24
27
  }
25
- const speakers = await agent.voice.getSpeakers();
28
+ const speakers = await voice.getSpeakers();
26
29
  return speakers;
27
30
  } catch (error) {
28
31
  return handleError(error, "Error getting speakers");
@@ -44,10 +47,11 @@ async function generateSpeechHandler({
44
47
  if (!agent) {
45
48
  throw new HTTPException(404, { message: "Agent not found" });
46
49
  }
47
- if (!agent.voice) {
50
+ const voice = await agent.getVoice();
51
+ if (!voice) {
48
52
  throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
49
53
  }
50
- const audioStream = await agent.voice.speak(body.text, { speaker: body.speakerId });
54
+ const audioStream = await voice.speak(body.text, { speaker: body.speakerId });
51
55
  if (!audioStream) {
52
56
  throw new HTTPException(500, { message: "Failed to generate speech" });
53
57
  }
@@ -72,17 +76,37 @@ async function transcribeSpeechHandler({
72
76
  if (!agent) {
73
77
  throw new HTTPException(404, { message: "Agent not found" });
74
78
  }
75
- if (!agent.voice) {
79
+ const voice = await agent.getVoice();
80
+ if (!voice) {
76
81
  throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
77
82
  }
78
83
  const audioStream = new Readable();
79
84
  audioStream.push(body.audioData);
80
85
  audioStream.push(null);
81
- const text = await agent.voice.listen(audioStream, body.options);
86
+ const text = await voice.listen(audioStream, body.options);
82
87
  return { text };
83
88
  } catch (error) {
84
89
  return handleError(error, "Error transcribing speech");
85
90
  }
86
91
  }
92
+ async function getListenerHandler({ mastra, agentId }) {
93
+ try {
94
+ if (!agentId) {
95
+ throw new HTTPException(400, { message: "Agent ID is required" });
96
+ }
97
+ const agent = mastra.getAgent(agentId);
98
+ if (!agent) {
99
+ throw new HTTPException(404, { message: "Agent not found" });
100
+ }
101
+ const voice = await agent.getVoice();
102
+ if (!voice) {
103
+ throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
104
+ }
105
+ const listeners = await voice.getListener();
106
+ return listeners;
107
+ } catch (error) {
108
+ return handleError(error, "Error getting listeners");
109
+ }
110
+ }
87
111
 
88
- export { generateSpeechHandler, getSpeakersHandler, transcribeSpeechHandler, voice_exports };
112
+ export { generateSpeechHandler, getListenerHandler, getSpeakersHandler, transcribeSpeechHandler, voice_exports };
@@ -1,9 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __export = (target, all) => {
3
- for (var name in all)
4
- __defProp(target, name, { get: all[name], enumerable: true });
5
- };
6
-
7
1
  // src/server/http-exception.ts
8
2
  var HTTPException = class extends Error {
9
3
  res;
@@ -17,6 +11,7 @@ var HTTPException = class extends Error {
17
11
  super(options?.message, { cause: options?.cause });
18
12
  this.res = options?.res;
19
13
  this.status = status;
14
+ this.stack = options?.stack || this.stack;
20
15
  }
21
16
  /**
22
17
  * Returns the response object associated with the exception.
@@ -37,4 +32,4 @@ var HTTPException = class extends Error {
37
32
  }
38
33
  };
39
34
 
40
- export { HTTPException, __export };
35
+ export { HTTPException };
@@ -0,0 +1,14 @@
1
+ import { HTTPException } from './chunk-LCM566I4.js';
2
+
3
+ // src/server/handlers/error.ts
4
+ function handleError(error, defaultMessage) {
5
+ const apiError = error;
6
+ const apiErrorStatus = apiError.status || apiError.details?.status || 500;
7
+ throw new HTTPException(apiErrorStatus, {
8
+ message: apiError.message || defaultMessage,
9
+ stack: apiError.stack,
10
+ cause: apiError.cause
11
+ });
12
+ }
13
+
14
+ export { handleError };
@@ -0,0 +1,7 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export { __export };