@mastra/server 0.0.0-vnextWorkflows-20250422142014 → 0.0.0-workflow-deno-20250616130925

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 (83) hide show
  1. package/README.md +48 -135
  2. package/dist/_tsup-dts-rollup.d.cts +351 -60
  3. package/dist/_tsup-dts-rollup.d.ts +351 -60
  4. package/dist/{chunk-XISBMH56.js → chunk-2HXKRRNS.js} +11 -9
  5. package/dist/chunk-42IKSJNO.js +421 -0
  6. package/dist/chunk-42YJ2YVD.cjs +263 -0
  7. package/dist/{chunk-4JINXASC.js → chunk-55DOQLP6.js} +5 -4
  8. package/dist/{chunk-QN4KF3BH.cjs → chunk-57CJTIPW.cjs} +2 -2
  9. package/dist/{chunk-ZLBRQFDD.cjs → chunk-64U3UDTH.cjs} +2 -2
  10. package/dist/{chunk-2FJURXCL.cjs → chunk-6TJSHFCJ.cjs} +44 -36
  11. package/dist/chunk-75ZPJI57.cjs +9 -0
  12. package/dist/chunk-ASKESBJW.cjs +2004 -0
  13. package/dist/{chunk-7IWQE76Z.cjs → chunk-B4MQFJ7G.cjs} +16 -10
  14. package/dist/{chunk-WTHDCRMY.js → chunk-BFOA2QQY.js} +12 -6
  15. package/dist/{chunk-M56ECCHK.cjs → chunk-BNEY4P4P.cjs} +20 -19
  16. package/dist/{chunk-YANVFOYA.js → chunk-C7564HUT.js} +56 -34
  17. package/dist/chunk-CK32I2VN.cjs +435 -0
  18. package/dist/{chunk-4B7OUZXW.js → chunk-CLYX4KLH.js} +78 -63
  19. package/dist/chunk-CMMOIUFC.cjs +114 -0
  20. package/dist/{chunk-3RVHWGWO.js → chunk-CP55EVBK.js} +26 -13
  21. package/dist/chunk-GHC4YV6R.js +504 -0
  22. package/dist/{chunk-L7XE5QTW.js → chunk-H5PTF3Y4.js} +1 -1
  23. package/dist/{chunk-RBQASTUP.js → chunk-I7KJZNX5.js} +14 -6
  24. package/dist/chunk-IMBY5XUG.cjs +86 -0
  25. package/dist/{chunk-3AHQ5RGN.js → chunk-M5ABIP7D.js} +1 -1
  26. package/dist/chunk-MLKGABMK.js +7 -0
  27. package/dist/{chunk-HABV7TZK.cjs → chunk-NGURCFEJ.cjs} +28 -26
  28. package/dist/{chunk-TRDNDNGQ.js → chunk-NYN7KFXL.js} +1 -7
  29. package/dist/chunk-O2YAAFY3.js +255 -0
  30. package/dist/{chunk-FV45V6WC.cjs → chunk-OCWPVYNI.cjs} +0 -7
  31. package/dist/chunk-QLG2PFHE.js +81 -0
  32. package/dist/chunk-SDPGVWQJ.cjs +512 -0
  33. package/dist/chunk-TGJMNUYJ.js +2001 -0
  34. package/dist/chunk-VPNDC2DI.cjs +148 -0
  35. package/dist/chunk-WE32JG64.cjs +332 -0
  36. package/dist/server/handlers/a2a.cjs +30 -0
  37. package/dist/server/handlers/a2a.d.cts +6 -0
  38. package/dist/server/handlers/a2a.d.ts +6 -0
  39. package/dist/server/handlers/a2a.js +1 -0
  40. package/dist/server/handlers/agents.cjs +7 -7
  41. package/dist/server/handlers/agents.js +1 -1
  42. package/dist/server/handlers/error.cjs +2 -2
  43. package/dist/server/handlers/error.js +1 -1
  44. package/dist/server/handlers/legacyWorkflows.cjs +46 -0
  45. package/dist/server/handlers/legacyWorkflows.d.cts +10 -0
  46. package/dist/server/handlers/legacyWorkflows.d.ts +10 -0
  47. package/dist/server/handlers/legacyWorkflows.js +1 -0
  48. package/dist/server/handlers/logs.cjs +4 -4
  49. package/dist/server/handlers/logs.js +1 -1
  50. package/dist/server/handlers/memory.cjs +9 -9
  51. package/dist/server/handlers/memory.js +1 -1
  52. package/dist/server/handlers/network.cjs +5 -5
  53. package/dist/server/handlers/network.js +1 -1
  54. package/dist/server/handlers/telemetry.cjs +3 -3
  55. package/dist/server/handlers/telemetry.js +1 -1
  56. package/dist/server/handlers/tools.cjs +5 -5
  57. package/dist/server/handlers/tools.js +1 -1
  58. package/dist/server/handlers/utils.cjs +2 -2
  59. package/dist/server/handlers/utils.js +1 -1
  60. package/dist/server/handlers/vector.cjs +7 -7
  61. package/dist/server/handlers/vector.js +1 -1
  62. package/dist/server/handlers/voice.cjs +8 -4
  63. package/dist/server/handlers/voice.d.cts +1 -0
  64. package/dist/server/handlers/voice.d.ts +1 -0
  65. package/dist/server/handlers/voice.js +1 -1
  66. package/dist/server/handlers/workflows.cjs +21 -13
  67. package/dist/server/handlers/workflows.d.cts +4 -2
  68. package/dist/server/handlers/workflows.d.ts +4 -2
  69. package/dist/server/handlers/workflows.js +1 -1
  70. package/dist/server/handlers.cjs +33 -23
  71. package/dist/server/handlers.d.cts +2 -0
  72. package/dist/server/handlers.d.ts +2 -0
  73. package/dist/server/handlers.js +11 -9
  74. package/package.json +13 -12
  75. package/dist/chunk-3EJZQ6TQ.js +0 -49
  76. package/dist/chunk-4WJ5GHRG.cjs +0 -164
  77. package/dist/chunk-5SWCVTNL.cjs +0 -5579
  78. package/dist/chunk-A7DF4ETD.cjs +0 -100
  79. package/dist/chunk-JLDXUWK7.cjs +0 -126
  80. package/dist/chunk-OMN3UI6X.js +0 -5576
  81. package/dist/chunk-RNU4JMLM.cjs +0 -317
  82. package/dist/chunk-SKBVVI24.cjs +0 -54
  83. package/dist/chunk-TFFNX7FI.js +0 -156
@@ -1,25 +1,26 @@
1
- import { stringify, esm_default } from './chunk-OMN3UI6X.js';
2
- import { handleError } from './chunk-3AHQ5RGN.js';
3
- import { __export, HTTPException } from './chunk-TRDNDNGQ.js';
4
- import { ReadableStream } from 'node:stream/web';
1
+ import { stringify, esm_default } from './chunk-TGJMNUYJ.js';
2
+ import { handleError } from './chunk-M5ABIP7D.js';
3
+ import { HTTPException } from './chunk-NYN7KFXL.js';
4
+ import { __export } from './chunk-MLKGABMK.js';
5
+ import { ReadableStream } from 'stream/web';
5
6
 
6
- // src/server/handlers/workflows.ts
7
- var workflows_exports = {};
8
- __export(workflows_exports, {
9
- createRunHandler: () => createRunHandler,
10
- getWorkflowByIdHandler: () => getWorkflowByIdHandler,
11
- getWorkflowRunHandler: () => getWorkflowRunHandler,
12
- getWorkflowRunsHandler: () => getWorkflowRunsHandler,
13
- getWorkflowsHandler: () => getWorkflowsHandler,
14
- resumeAsyncWorkflowHandler: () => resumeAsyncWorkflowHandler,
15
- resumeWorkflowHandler: () => resumeWorkflowHandler,
16
- startAsyncWorkflowHandler: () => startAsyncWorkflowHandler,
17
- startWorkflowRunHandler: () => startWorkflowRunHandler,
18
- watchWorkflowHandler: () => watchWorkflowHandler
7
+ // src/server/handlers/legacyWorkflows.ts
8
+ var legacyWorkflows_exports = {};
9
+ __export(legacyWorkflows_exports, {
10
+ createLegacyWorkflowRunHandler: () => createLegacyWorkflowRunHandler,
11
+ getLegacyWorkflowByIdHandler: () => getLegacyWorkflowByIdHandler,
12
+ getLegacyWorkflowRunHandler: () => getLegacyWorkflowRunHandler,
13
+ getLegacyWorkflowRunsHandler: () => getLegacyWorkflowRunsHandler,
14
+ getLegacyWorkflowsHandler: () => getLegacyWorkflowsHandler,
15
+ resumeAsyncLegacyWorkflowHandler: () => resumeAsyncLegacyWorkflowHandler,
16
+ resumeLegacyWorkflowHandler: () => resumeLegacyWorkflowHandler,
17
+ startAsyncLegacyWorkflowHandler: () => startAsyncLegacyWorkflowHandler,
18
+ startLegacyWorkflowRunHandler: () => startLegacyWorkflowRunHandler,
19
+ watchLegacyWorkflowHandler: () => watchLegacyWorkflowHandler
19
20
  });
20
- async function getWorkflowsHandler({ mastra }) {
21
+ async function getLegacyWorkflowsHandler({ mastra }) {
21
22
  try {
22
- const workflows = mastra.getWorkflows({ serialized: false });
23
+ const workflows = mastra.legacy_getWorkflows({ serialized: false });
23
24
  const _workflows = Object.entries(workflows).reduce((acc, [key, workflow]) => {
24
25
  if (workflow.isNested) return acc;
25
26
  acc[key] = {
@@ -32,7 +33,9 @@ async function getWorkflowsHandler({ mastra }) {
32
33
  steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
33
34
  const _step = step;
34
35
  acc2[key2] = {
35
- ..._step,
36
+ id: _step.id,
37
+ description: _step.description,
38
+ workflowId: _step.workflowId,
36
39
  inputSchema: _step.inputSchema ? stringify(esm_default(_step.inputSchema)) : void 0,
37
40
  outputSchema: _step.outputSchema ? stringify(esm_default(_step.outputSchema)) : void 0
38
41
  };
@@ -46,12 +49,12 @@ async function getWorkflowsHandler({ mastra }) {
46
49
  throw new HTTPException(500, { message: error?.message || "Error getting workflows" });
47
50
  }
48
51
  }
49
- async function getWorkflowByIdHandler({ mastra, workflowId }) {
52
+ async function getLegacyWorkflowByIdHandler({ mastra, workflowId }) {
50
53
  try {
51
54
  if (!workflowId) {
52
55
  throw new HTTPException(400, { message: "Workflow ID is required" });
53
56
  }
54
- const workflow = mastra.getWorkflow(workflowId);
57
+ const workflow = mastra.legacy_getWorkflow(workflowId);
55
58
  if (!workflow) {
56
59
  throw new HTTPException(404, { message: "Workflow not found" });
57
60
  }
@@ -65,7 +68,9 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
65
68
  steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
66
69
  const _step = step;
67
70
  acc[key] = {
68
- ..._step,
71
+ id: _step.id,
72
+ description: _step.description,
73
+ workflowId: _step.workflowId,
69
74
  inputSchema: _step.inputSchema ? stringify(esm_default(_step.inputSchema)) : void 0,
70
75
  outputSchema: _step.outputSchema ? stringify(esm_default(_step.outputSchema)) : void 0
71
76
  };
@@ -76,9 +81,9 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
76
81
  throw new HTTPException(500, { message: error?.message || "Error getting workflow" });
77
82
  }
78
83
  }
79
- async function startAsyncWorkflowHandler({
84
+ async function startAsyncLegacyWorkflowHandler({
80
85
  mastra,
81
- container,
86
+ runtimeContext,
82
87
  workflowId,
83
88
  runId,
84
89
  triggerData
@@ -87,32 +92,32 @@ async function startAsyncWorkflowHandler({
87
92
  if (!workflowId) {
88
93
  throw new HTTPException(400, { message: "Workflow ID is required" });
89
94
  }
90
- const workflow = mastra.getWorkflow(workflowId);
95
+ const workflow = mastra.legacy_getWorkflow(workflowId);
91
96
  if (!workflow) {
92
97
  throw new HTTPException(404, { message: "Workflow not found" });
93
98
  }
94
99
  if (!runId) {
95
- const { start } = workflow.createRun();
96
- const result2 = await start({
100
+ const newRun = workflow.createRun();
101
+ const result2 = await newRun.start({
97
102
  triggerData,
98
- container
103
+ runtimeContext
99
104
  });
100
105
  return result2;
101
106
  }
102
- const run = workflow.getRun(runId);
107
+ const run = workflow.getMemoryRun(runId);
103
108
  if (!run) {
104
109
  throw new HTTPException(404, { message: "Workflow run not found" });
105
110
  }
106
111
  const result = await run.start({
107
112
  triggerData,
108
- container
113
+ runtimeContext
109
114
  });
110
115
  return result;
111
116
  } catch (error) {
112
117
  throw new HTTPException(500, { message: error?.message || "Error executing workflow" });
113
118
  }
114
119
  }
115
- async function getWorkflowRunHandler({
120
+ async function getLegacyWorkflowRunHandler({
116
121
  mastra,
117
122
  workflowId,
118
123
  runId
@@ -124,11 +129,11 @@ async function getWorkflowRunHandler({
124
129
  if (!runId) {
125
130
  throw new HTTPException(400, { message: "Run ID is required" });
126
131
  }
127
- const workflow = mastra.getWorkflow(workflowId);
132
+ const workflow = mastra.legacy_getWorkflow(workflowId);
128
133
  if (!workflow) {
129
134
  throw new HTTPException(404, { message: "Workflow not found" });
130
135
  }
131
- const run = workflow.getRun(runId);
136
+ const run = await workflow.getRun(runId);
132
137
  if (!run) {
133
138
  throw new HTTPException(404, { message: "Workflow run not found" });
134
139
  }
@@ -137,7 +142,7 @@ async function getWorkflowRunHandler({
137
142
  throw new HTTPException(500, { message: error?.message || "Error getting workflow run" });
138
143
  }
139
144
  }
140
- async function createRunHandler({
145
+ async function createLegacyWorkflowRunHandler({
141
146
  mastra,
142
147
  workflowId,
143
148
  runId: prevRunId
@@ -146,19 +151,19 @@ async function createRunHandler({
146
151
  if (!workflowId) {
147
152
  throw new HTTPException(400, { message: "Workflow ID is required" });
148
153
  }
149
- const workflow = mastra.getWorkflow(workflowId);
154
+ const workflow = mastra.legacy_getWorkflow(workflowId);
150
155
  if (!workflow) {
151
156
  throw new HTTPException(404, { message: "Workflow not found" });
152
157
  }
153
- const { runId } = workflow.createRun({ runId: prevRunId });
154
- return { runId };
158
+ const newRun = workflow.createRun({ runId: prevRunId });
159
+ return { runId: newRun.runId };
155
160
  } catch (error) {
156
161
  throw new HTTPException(500, { message: error?.message || "Error creating workflow run" });
157
162
  }
158
163
  }
159
- async function startWorkflowRunHandler({
164
+ async function startLegacyWorkflowRunHandler({
160
165
  mastra,
161
- container,
166
+ runtimeContext,
162
167
  workflowId,
163
168
  runId,
164
169
  triggerData
@@ -170,21 +175,21 @@ async function startWorkflowRunHandler({
170
175
  if (!runId) {
171
176
  throw new HTTPException(400, { message: "runId required to start run" });
172
177
  }
173
- const workflow = mastra.getWorkflow(workflowId);
174
- const run = workflow.getRun(runId);
178
+ const workflow = mastra.legacy_getWorkflow(workflowId);
179
+ const run = workflow.getMemoryRun(runId);
175
180
  if (!run) {
176
181
  throw new HTTPException(404, { message: "Workflow run not found" });
177
182
  }
178
- await run.start({
183
+ void run.start({
179
184
  triggerData,
180
- container
185
+ runtimeContext
181
186
  });
182
187
  return { message: "Workflow run started" };
183
188
  } catch (e) {
184
189
  return handleError(e, "Error starting workflow run");
185
190
  }
186
191
  }
187
- async function watchWorkflowHandler({
192
+ async function watchLegacyWorkflowHandler({
188
193
  mastra,
189
194
  workflowId,
190
195
  runId
@@ -196,8 +201,8 @@ async function watchWorkflowHandler({
196
201
  if (!runId) {
197
202
  throw new HTTPException(400, { message: "runId required to watch workflow" });
198
203
  }
199
- const workflow = mastra.getWorkflow(workflowId);
200
- const run = workflow.getRun(runId);
204
+ const workflow = mastra.legacy_getWorkflow(workflowId);
205
+ const run = workflow.getMemoryRun(runId);
201
206
  if (!run) {
202
207
  throw new HTTPException(404, { message: "Workflow run not found" });
203
208
  }
@@ -213,8 +218,10 @@ async function watchWorkflowHandler({
213
218
  asyncRef = null;
214
219
  }
215
220
  asyncRef = setImmediate(() => {
216
- if (!workflow.getRun(runId2)) {
221
+ const runDone = Object.values(activePathsObj).every((value) => value.status !== "executing");
222
+ if (runDone) {
217
223
  controller.close();
224
+ unwatch?.();
218
225
  }
219
226
  });
220
227
  });
@@ -228,12 +235,12 @@ async function watchWorkflowHandler({
228
235
  return handleError(error, "Error watching workflow");
229
236
  }
230
237
  }
231
- async function resumeAsyncWorkflowHandler({
238
+ async function resumeAsyncLegacyWorkflowHandler({
232
239
  mastra,
233
240
  workflowId,
234
241
  runId,
235
242
  body,
236
- container
243
+ runtimeContext
237
244
  }) {
238
245
  try {
239
246
  if (!workflowId) {
@@ -242,27 +249,27 @@ async function resumeAsyncWorkflowHandler({
242
249
  if (!runId) {
243
250
  throw new HTTPException(400, { message: "runId required to resume workflow" });
244
251
  }
245
- const workflow = mastra.getWorkflow(workflowId);
246
- const run = workflow.getRun(runId);
252
+ const workflow = mastra.legacy_getWorkflow(workflowId);
253
+ const run = workflow.getMemoryRun(runId);
247
254
  if (!run) {
248
255
  throw new HTTPException(404, { message: "Workflow run not found" });
249
256
  }
250
257
  const result = await run.resume({
251
258
  stepId: body.stepId,
252
259
  context: body.context,
253
- container
260
+ runtimeContext
254
261
  });
255
262
  return result;
256
263
  } catch (error) {
257
264
  return handleError(error, "Error resuming workflow step");
258
265
  }
259
266
  }
260
- async function resumeWorkflowHandler({
267
+ async function resumeLegacyWorkflowHandler({
261
268
  mastra,
262
269
  workflowId,
263
270
  runId,
264
271
  body,
265
- container
272
+ runtimeContext
266
273
  }) {
267
274
  try {
268
275
  if (!workflowId) {
@@ -271,28 +278,36 @@ async function resumeWorkflowHandler({
271
278
  if (!runId) {
272
279
  throw new HTTPException(400, { message: "runId required to resume workflow" });
273
280
  }
274
- const workflow = mastra.getWorkflow(workflowId);
275
- const run = workflow.getRun(runId);
281
+ const workflow = mastra.legacy_getWorkflow(workflowId);
282
+ const run = workflow.getMemoryRun(runId);
276
283
  if (!run) {
277
284
  throw new HTTPException(404, { message: "Workflow run not found" });
278
285
  }
279
- await run.resume({
286
+ void run.resume({
280
287
  stepId: body.stepId,
281
288
  context: body.context,
282
- container
289
+ runtimeContext
283
290
  });
284
291
  return { message: "Workflow run resumed" };
285
292
  } catch (error) {
286
293
  return handleError(error, "Error resuming workflow");
287
294
  }
288
295
  }
289
- async function getWorkflowRunsHandler({ mastra, workflowId }) {
296
+ async function getLegacyWorkflowRunsHandler({
297
+ mastra,
298
+ workflowId,
299
+ fromDate,
300
+ toDate,
301
+ limit,
302
+ offset,
303
+ resourceId
304
+ }) {
290
305
  try {
291
306
  if (!workflowId) {
292
307
  throw new HTTPException(400, { message: "Workflow ID is required" });
293
308
  }
294
- const workflow = mastra.getWorkflow(workflowId);
295
- const workflowRuns = await workflow.getWorkflowRuns() || {
309
+ const workflow = mastra.legacy_getWorkflow(workflowId);
310
+ const workflowRuns = await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId }) || {
296
311
  runs: [],
297
312
  total: 0
298
313
  };
@@ -302,4 +317,4 @@ async function getWorkflowRunsHandler({ mastra, workflowId }) {
302
317
  }
303
318
  }
304
319
 
305
- export { createRunHandler, getWorkflowByIdHandler, getWorkflowRunHandler, getWorkflowRunsHandler, getWorkflowsHandler, resumeAsyncWorkflowHandler, resumeWorkflowHandler, startAsyncWorkflowHandler, startWorkflowRunHandler, watchWorkflowHandler, workflows_exports };
320
+ export { createLegacyWorkflowRunHandler, getLegacyWorkflowByIdHandler, getLegacyWorkflowRunHandler, getLegacyWorkflowRunsHandler, getLegacyWorkflowsHandler, legacyWorkflows_exports, resumeAsyncLegacyWorkflowHandler, resumeLegacyWorkflowHandler, startAsyncLegacyWorkflowHandler, startLegacyWorkflowRunHandler, watchLegacyWorkflowHandler };
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ var chunk57CJTIPW_cjs = require('./chunk-57CJTIPW.cjs');
4
+ var chunk64U3UDTH_cjs = require('./chunk-64U3UDTH.cjs');
5
+ var chunkOCWPVYNI_cjs = require('./chunk-OCWPVYNI.cjs');
6
+ var chunk75ZPJI57_cjs = require('./chunk-75ZPJI57.cjs');
7
+ var stream = require('stream');
8
+
9
+ // src/server/handlers/voice.ts
10
+ var voice_exports = {};
11
+ chunk75ZPJI57_cjs.__export(voice_exports, {
12
+ generateSpeechHandler: () => generateSpeechHandler,
13
+ getListenerHandler: () => getListenerHandler,
14
+ getSpeakersHandler: () => getSpeakersHandler,
15
+ transcribeSpeechHandler: () => transcribeSpeechHandler
16
+ });
17
+ async function getSpeakersHandler({ mastra, agentId }) {
18
+ try {
19
+ if (!agentId) {
20
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent ID is required" });
21
+ }
22
+ const agent = mastra.getAgent(agentId);
23
+ if (!agent) {
24
+ throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
25
+ }
26
+ if (!agent.voice) {
27
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
28
+ }
29
+ const speakers = await agent.voice.getSpeakers();
30
+ return speakers;
31
+ } catch (error) {
32
+ return chunk64U3UDTH_cjs.handleError(error, "Error getting speakers");
33
+ }
34
+ }
35
+ async function generateSpeechHandler({
36
+ mastra,
37
+ agentId,
38
+ body
39
+ }) {
40
+ try {
41
+ if (!agentId) {
42
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent ID is required" });
43
+ }
44
+ chunk57CJTIPW_cjs.validateBody({
45
+ text: body?.text
46
+ });
47
+ const agent = mastra.getAgent(agentId);
48
+ if (!agent) {
49
+ throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
50
+ }
51
+ if (!agent.voice) {
52
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
53
+ }
54
+ const audioStream = await agent.voice.speak(body.text, { speaker: body.speakerId });
55
+ if (!audioStream) {
56
+ throw new chunkOCWPVYNI_cjs.HTTPException(500, { message: "Failed to generate speech" });
57
+ }
58
+ return audioStream;
59
+ } catch (error) {
60
+ return chunk64U3UDTH_cjs.handleError(error, "Error generating speech");
61
+ }
62
+ }
63
+ async function transcribeSpeechHandler({
64
+ mastra,
65
+ agentId,
66
+ body
67
+ }) {
68
+ try {
69
+ if (!agentId) {
70
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent ID is required" });
71
+ }
72
+ if (!body?.audioData) {
73
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Audio data is required" });
74
+ }
75
+ const agent = mastra.getAgent(agentId);
76
+ if (!agent) {
77
+ throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
78
+ }
79
+ if (!agent.voice) {
80
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
81
+ }
82
+ const audioStream = new stream.Readable();
83
+ audioStream.push(body.audioData);
84
+ audioStream.push(null);
85
+ const text = await agent.voice.listen(audioStream, body.options);
86
+ return { text };
87
+ } catch (error) {
88
+ return chunk64U3UDTH_cjs.handleError(error, "Error transcribing speech");
89
+ }
90
+ }
91
+ async function getListenerHandler({ mastra, agentId }) {
92
+ try {
93
+ if (!agentId) {
94
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent ID is required" });
95
+ }
96
+ const agent = mastra.getAgent(agentId);
97
+ if (!agent) {
98
+ throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
99
+ }
100
+ if (!agent.voice) {
101
+ throw new chunkOCWPVYNI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
102
+ }
103
+ const listeners = await agent.voice.getListener();
104
+ return listeners;
105
+ } catch (error) {
106
+ return chunk64U3UDTH_cjs.handleError(error, "Error getting listeners");
107
+ }
108
+ }
109
+
110
+ exports.generateSpeechHandler = generateSpeechHandler;
111
+ exports.getListenerHandler = getListenerHandler;
112
+ exports.getSpeakersHandler = getSpeakersHandler;
113
+ exports.transcribeSpeechHandler = transcribeSpeechHandler;
114
+ exports.voice_exports = voice_exports;
@@ -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-H5PTF3Y4.js';
2
+ import { handleError } from './chunk-M5ABIP7D.js';
3
+ import { HTTPException } from './chunk-NYN7KFXL.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
  });
@@ -38,9 +40,7 @@ async function generateSpeechHandler({
38
40
  throw new HTTPException(400, { message: "Agent ID is required" });
39
41
  }
40
42
  validateBody({
41
- text: void 0,
42
- speakerId: void 0,
43
- ...body
43
+ text: body?.text
44
44
  });
45
45
  const agent = mastra.getAgent(agentId);
46
46
  if (!agent) {
@@ -53,12 +53,7 @@ async function generateSpeechHandler({
53
53
  if (!audioStream) {
54
54
  throw new HTTPException(500, { message: "Failed to generate speech" });
55
55
  }
56
- const chunks = [];
57
- for await (const chunk of audioStream) {
58
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
59
- }
60
- const audioData = Buffer.concat(chunks);
61
- return { audioData };
56
+ return audioStream;
62
57
  } catch (error) {
63
58
  return handleError(error, "Error generating speech");
64
59
  }
@@ -91,5 +86,23 @@ async function transcribeSpeechHandler({
91
86
  return handleError(error, "Error transcribing speech");
92
87
  }
93
88
  }
89
+ async function getListenerHandler({ mastra, agentId }) {
90
+ try {
91
+ if (!agentId) {
92
+ throw new HTTPException(400, { message: "Agent ID is required" });
93
+ }
94
+ const agent = mastra.getAgent(agentId);
95
+ if (!agent) {
96
+ throw new HTTPException(404, { message: "Agent not found" });
97
+ }
98
+ if (!agent.voice) {
99
+ throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
100
+ }
101
+ const listeners = await agent.voice.getListener();
102
+ return listeners;
103
+ } catch (error) {
104
+ return handleError(error, "Error getting listeners");
105
+ }
106
+ }
94
107
 
95
- export { generateSpeechHandler, getSpeakersHandler, transcribeSpeechHandler, voice_exports };
108
+ export { generateSpeechHandler, getListenerHandler, getSpeakersHandler, transcribeSpeechHandler, voice_exports };