@mastra/deployer 0.20.1-alpha.0 → 0.20.1-alpha.2
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.
- package/CHANGELOG.md +32 -0
- package/dist/build/analyze/analyzeEntry.d.ts.map +1 -1
- package/dist/build/analyze/bundleExternals.d.ts.map +1 -1
- package/dist/build/analyze.cjs +2 -2
- package/dist/build/analyze.js +1 -1
- package/dist/build/bundler.cjs +3 -3
- package/dist/build/bundler.d.ts.map +1 -1
- package/dist/build/bundler.js +1 -1
- package/dist/build/index.cjs +12 -12
- package/dist/build/index.js +4 -4
- package/dist/build/shared/extract-mastra-option.d.ts.map +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.js +1 -1
- package/dist/{chunk-YA2QB5O6.js → chunk-36JTHYM2.js} +12 -6
- package/dist/chunk-36JTHYM2.js.map +1 -0
- package/dist/{chunk-QT4EHSOA.cjs → chunk-4JSGBXG4.cjs} +14 -14
- package/dist/{chunk-QT4EHSOA.cjs.map → chunk-4JSGBXG4.cjs.map} +1 -1
- package/dist/{chunk-H7R3PAM4.cjs → chunk-75YMBRRS.cjs} +17 -17
- package/dist/{chunk-H7R3PAM4.cjs.map → chunk-75YMBRRS.cjs.map} +1 -1
- package/dist/{chunk-OWF6JR2D.cjs → chunk-B3MAF4HY.cjs} +12 -10
- package/dist/chunk-B3MAF4HY.cjs.map +1 -0
- package/dist/{chunk-YY75MSEU.js → chunk-IJ5XDUJI.js} +4 -4
- package/dist/{chunk-YY75MSEU.js.map → chunk-IJ5XDUJI.js.map} +1 -1
- package/dist/{chunk-SLXO6AYI.js → chunk-J6ARA5AG.js} +3 -3
- package/dist/{chunk-SLXO6AYI.js.map → chunk-J6ARA5AG.js.map} +1 -1
- package/dist/{chunk-7YSO4XUX.js → chunk-LV3YJXBH.js} +6 -4
- package/dist/chunk-LV3YJXBH.js.map +1 -0
- package/dist/{chunk-4I4DWMYP.cjs → chunk-QZSRLR5Y.cjs} +13 -7
- package/dist/chunk-QZSRLR5Y.cjs.map +1 -0
- package/dist/{chunk-D5U2TTNK.cjs → chunk-XJH6DNVG.cjs} +5 -5
- package/dist/{chunk-D5U2TTNK.cjs.map → chunk-XJH6DNVG.cjs.map} +1 -1
- package/dist/{chunk-V6M3WK2G.js → chunk-ZGEIJUOE.js} +5 -5
- package/dist/{chunk-V6M3WK2G.js.map → chunk-ZGEIJUOE.js.map} +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.js +2 -2
- package/dist/server/handlers/auth/helpers.d.ts +1 -1
- package/dist/server/handlers/auth/helpers.d.ts.map +1 -1
- package/dist/server/handlers/auth/index.d.ts.map +1 -1
- package/dist/server/handlers/routes/agents/handlers.d.ts.map +1 -1
- package/dist/server/index.cjs +230 -166
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +230 -166
- package/dist/server/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/chunk-4I4DWMYP.cjs.map +0 -1
- package/dist/chunk-7YSO4XUX.js.map +0 -1
- package/dist/chunk-OWF6JR2D.cjs.map +0 -1
- package/dist/chunk-YA2QB5O6.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../src/server/handlers/routes/agents/handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../src/server/handlers/routes/agents/handlers.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAMpC,eAAO,MAAM,iBAAiB,EAAE,GA+B/B,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,GA+B9B,CAAC;AAGF,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAOhD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,qBA4BnD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,0HAcnD;AAED,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAYxD;AAED,wBAAsB,4BAA4B,CAAC,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAY5D;AAED,wBAAsB,qBAAqB,CAAC,CAAC,EAAE,OAAO,qBAmBrD;AAED,wBAAsB,eAAe,CAAC,CAAC,EAAE,OAAO,qBAmB/C;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAmB3F;AAED,wBAAsB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAkErF;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAkEtF;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAkEtF;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,OAAO,qBAkGpD;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAmBtF;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,qBAgC3D;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAAE,OAAO,qBAgBvD;AAED,wBAAsB,4BAA4B,CAAC,CAAC,EAAE,OAAO;;;;;iBAU5D;AAED,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,OAAO;;;;;;;;;sEAuBxD;AAED,wBAAsB,kCAAkC,CAAC,CAAC,EAAE,OAAO,qBAkBlE;AAED,wBAAsB,4BAA4B,CAAC,CAAC,EAAE,OAAO,qBAgB5D"}
|
package/dist/server/index.cjs
CHANGED
|
@@ -26,6 +26,7 @@ var bodyLimit = require('hono/body-limit');
|
|
|
26
26
|
var agentBuilder = require('@mastra/server/handlers/agent-builder');
|
|
27
27
|
var error = require('@mastra/core/error');
|
|
28
28
|
var llm = require('@mastra/core/llm');
|
|
29
|
+
var stream$1 = require('@mastra/core/stream');
|
|
29
30
|
var agents = require('@mastra/server/handlers/agents');
|
|
30
31
|
var agent = require('@mastra/core/agent');
|
|
31
32
|
var zod = require('zod');
|
|
@@ -1093,9 +1094,9 @@ var isCustomRoutePublic = (path, method, customRouteAuthConfig) => {
|
|
|
1093
1094
|
}
|
|
1094
1095
|
return false;
|
|
1095
1096
|
};
|
|
1096
|
-
var isProtectedPath = (path, method, authConfig) => {
|
|
1097
|
+
var isProtectedPath = (path, method, authConfig, customRouteAuthConfig) => {
|
|
1097
1098
|
const protectedAccess = [...defaultAuthConfig.protected || [], ...authConfig.protected || []];
|
|
1098
|
-
return isAnyMatch(path, method, protectedAccess);
|
|
1099
|
+
return isAnyMatch(path, method, protectedAccess) || !isCustomRoutePublic(path, method, customRouteAuthConfig);
|
|
1099
1100
|
};
|
|
1100
1101
|
var canAccessPublicly = (path, method, authConfig) => {
|
|
1101
1102
|
const publicAccess = [...defaultAuthConfig.public || [], ...authConfig.public || []];
|
|
@@ -1185,10 +1186,7 @@ var authenticationMiddleware = async (c2, next) => {
|
|
|
1185
1186
|
if (isDevPlaygroundRequest(c2.req)) {
|
|
1186
1187
|
return next();
|
|
1187
1188
|
}
|
|
1188
|
-
if (
|
|
1189
|
-
return next();
|
|
1190
|
-
}
|
|
1191
|
-
if (!isProtectedPath(c2.req.path, c2.req.method, authConfig)) {
|
|
1189
|
+
if (!isProtectedPath(c2.req.path, c2.req.method, authConfig, customRouteAuthConfig)) {
|
|
1192
1190
|
return next();
|
|
1193
1191
|
}
|
|
1194
1192
|
if (canAccessPublicly(c2.req.path, c2.req.method, authConfig)) {
|
|
@@ -1231,10 +1229,7 @@ var authorizationMiddleware = async (c2, next) => {
|
|
|
1231
1229
|
if (isDevPlaygroundRequest(c2.req)) {
|
|
1232
1230
|
return next();
|
|
1233
1231
|
}
|
|
1234
|
-
if (
|
|
1235
|
-
return next();
|
|
1236
|
-
}
|
|
1237
|
-
if (!isProtectedPath(c2.req.path, c2.req.method, authConfig)) {
|
|
1232
|
+
if (!isProtectedPath(c2.req.path, c2.req.method, authConfig, customRouteAuthConfig)) {
|
|
1238
1233
|
return next();
|
|
1239
1234
|
}
|
|
1240
1235
|
if (canAccessPublicly(path, method, authConfig)) {
|
|
@@ -2518,154 +2513,204 @@ async function streamGenerateLegacyHandler(c2) {
|
|
|
2518
2513
|
}
|
|
2519
2514
|
}
|
|
2520
2515
|
async function streamGenerateHandler(c2) {
|
|
2516
|
+
const mastra = c2.get("mastra");
|
|
2517
|
+
const agentId = c2.req.param("agentId");
|
|
2518
|
+
const runtimeContext = c2.get("runtimeContext");
|
|
2519
|
+
const body = await c2.req.json();
|
|
2520
|
+
const logger2 = mastra.getLogger();
|
|
2521
|
+
let streamResponse;
|
|
2521
2522
|
try {
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2545
|
-
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2523
|
+
streamResponse = await agents.streamGenerateHandler({
|
|
2524
|
+
mastra,
|
|
2525
|
+
agentId,
|
|
2526
|
+
runtimeContext,
|
|
2527
|
+
body,
|
|
2528
|
+
abortSignal: c2.req.raw.signal
|
|
2529
|
+
});
|
|
2530
|
+
} catch (err) {
|
|
2531
|
+
return handleError(err, "Error streaming from agent");
|
|
2532
|
+
}
|
|
2533
|
+
c2.header("Transfer-Encoding", "chunked");
|
|
2534
|
+
return streaming.stream(
|
|
2535
|
+
c2,
|
|
2536
|
+
async (stream6) => {
|
|
2537
|
+
try {
|
|
2538
|
+
const reader = streamResponse.fullStream.getReader();
|
|
2539
|
+
stream6.onAbort(() => {
|
|
2540
|
+
void reader.cancel("request aborted");
|
|
2541
|
+
});
|
|
2542
|
+
let chunkResult;
|
|
2543
|
+
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2544
|
+
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2546
2545
|
|
|
2547
2546
|
`);
|
|
2548
|
-
}
|
|
2549
|
-
await stream6.write("data: [DONE]\n\n");
|
|
2550
|
-
} catch (err) {
|
|
2551
|
-
logger2.error("Error in stream generate: " + (err?.message ?? "Unknown error"));
|
|
2552
2547
|
}
|
|
2553
|
-
await stream6.
|
|
2554
|
-
}
|
|
2555
|
-
|
|
2556
|
-
|
|
2548
|
+
await stream6.write("data: [DONE]\n\n");
|
|
2549
|
+
} catch (err) {
|
|
2550
|
+
logger2.error("Error in stream generate: " + (err?.message ?? "Unknown error"));
|
|
2551
|
+
const errorChunk = {
|
|
2552
|
+
type: "error",
|
|
2553
|
+
from: stream$1.ChunkFrom.AGENT,
|
|
2554
|
+
runId: body.runId || "unknown",
|
|
2555
|
+
payload: {
|
|
2556
|
+
error: err instanceof Error ? {
|
|
2557
|
+
message: err.message,
|
|
2558
|
+
name: err.name,
|
|
2559
|
+
stack: err.stack
|
|
2560
|
+
} : String(err)
|
|
2561
|
+
}
|
|
2562
|
+
};
|
|
2563
|
+
await stream6.write(`data: ${JSON.stringify(errorChunk)}
|
|
2564
|
+
|
|
2565
|
+
`);
|
|
2557
2566
|
}
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2567
|
+
await stream6.close();
|
|
2568
|
+
},
|
|
2569
|
+
async (err) => {
|
|
2570
|
+
logger2.error("Error in watch stream: " + err?.message);
|
|
2571
|
+
}
|
|
2572
|
+
);
|
|
2562
2573
|
}
|
|
2563
2574
|
async function approveToolCallHandler(c2) {
|
|
2575
|
+
const mastra = c2.get("mastra");
|
|
2576
|
+
const agentId = c2.req.param("agentId");
|
|
2577
|
+
const runtimeContext = c2.get("runtimeContext");
|
|
2578
|
+
const body = await c2.req.json();
|
|
2579
|
+
const logger2 = mastra.getLogger();
|
|
2580
|
+
let streamResponse;
|
|
2564
2581
|
try {
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
}
|
|
2587
|
-
let chunkResult;
|
|
2588
|
-
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2589
|
-
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2582
|
+
streamResponse = await agents.approveToolCallHandler({
|
|
2583
|
+
mastra,
|
|
2584
|
+
runtimeContext,
|
|
2585
|
+
agentId,
|
|
2586
|
+
body,
|
|
2587
|
+
abortSignal: c2.req.raw.signal
|
|
2588
|
+
});
|
|
2589
|
+
} catch (err) {
|
|
2590
|
+
return handleError(err, "Error approving tool call");
|
|
2591
|
+
}
|
|
2592
|
+
c2.header("Transfer-Encoding", "chunked");
|
|
2593
|
+
return streaming.stream(
|
|
2594
|
+
c2,
|
|
2595
|
+
async (stream6) => {
|
|
2596
|
+
try {
|
|
2597
|
+
const reader = streamResponse.fullStream.getReader();
|
|
2598
|
+
stream6.onAbort(() => {
|
|
2599
|
+
void reader.cancel("request aborted");
|
|
2600
|
+
});
|
|
2601
|
+
let chunkResult;
|
|
2602
|
+
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2603
|
+
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2590
2604
|
|
|
2591
2605
|
`);
|
|
2592
|
-
}
|
|
2593
|
-
await stream6.write("data: [DONE]\n\n");
|
|
2594
|
-
} catch (err) {
|
|
2595
|
-
logger2.error("Error in approve tool call: " + (err?.message ?? "Unknown error"));
|
|
2596
2606
|
}
|
|
2597
|
-
await stream6.
|
|
2598
|
-
}
|
|
2599
|
-
|
|
2600
|
-
|
|
2607
|
+
await stream6.write("data: [DONE]\n\n");
|
|
2608
|
+
} catch (err) {
|
|
2609
|
+
logger2.error("Error in approve tool call: " + (err?.message ?? "Unknown error"));
|
|
2610
|
+
const errorChunk = {
|
|
2611
|
+
type: "error",
|
|
2612
|
+
from: stream$1.ChunkFrom.AGENT,
|
|
2613
|
+
runId: body.runId || "unknown",
|
|
2614
|
+
payload: {
|
|
2615
|
+
error: err instanceof Error ? {
|
|
2616
|
+
message: err.message,
|
|
2617
|
+
name: err.name,
|
|
2618
|
+
stack: err.stack
|
|
2619
|
+
} : String(err)
|
|
2620
|
+
}
|
|
2621
|
+
};
|
|
2622
|
+
await stream6.write(`data: ${JSON.stringify(errorChunk)}
|
|
2623
|
+
|
|
2624
|
+
`);
|
|
2601
2625
|
}
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2626
|
+
await stream6.close();
|
|
2627
|
+
},
|
|
2628
|
+
async (err) => {
|
|
2629
|
+
logger2.error("Error in watch stream: " + err?.message);
|
|
2630
|
+
}
|
|
2631
|
+
);
|
|
2606
2632
|
}
|
|
2607
2633
|
async function declineToolCallHandler(c2) {
|
|
2634
|
+
const mastra = c2.get("mastra");
|
|
2635
|
+
const agentId = c2.req.param("agentId");
|
|
2636
|
+
const runtimeContext = c2.get("runtimeContext");
|
|
2637
|
+
const body = await c2.req.json();
|
|
2638
|
+
const logger2 = mastra.getLogger();
|
|
2639
|
+
let streamResponse;
|
|
2608
2640
|
try {
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2632
|
-
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2641
|
+
streamResponse = await agents.declineToolCallHandler({
|
|
2642
|
+
mastra,
|
|
2643
|
+
runtimeContext,
|
|
2644
|
+
agentId,
|
|
2645
|
+
body,
|
|
2646
|
+
abortSignal: c2.req.raw.signal
|
|
2647
|
+
});
|
|
2648
|
+
} catch (err) {
|
|
2649
|
+
return handleError(err, "Error declining tool call");
|
|
2650
|
+
}
|
|
2651
|
+
c2.header("Transfer-Encoding", "chunked");
|
|
2652
|
+
return streaming.stream(
|
|
2653
|
+
c2,
|
|
2654
|
+
async (stream6) => {
|
|
2655
|
+
try {
|
|
2656
|
+
const reader = streamResponse.fullStream.getReader();
|
|
2657
|
+
stream6.onAbort(() => {
|
|
2658
|
+
void reader.cancel("request aborted");
|
|
2659
|
+
});
|
|
2660
|
+
let chunkResult;
|
|
2661
|
+
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2662
|
+
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2633
2663
|
|
|
2634
2664
|
`);
|
|
2635
|
-
}
|
|
2636
|
-
await stream6.write("data: [DONE]\n\n");
|
|
2637
|
-
} catch (err) {
|
|
2638
|
-
logger2.error("Error in decline tool call: " + (err?.message ?? "Unknown error"));
|
|
2639
2665
|
}
|
|
2640
|
-
await stream6.
|
|
2641
|
-
}
|
|
2642
|
-
|
|
2643
|
-
|
|
2666
|
+
await stream6.write("data: [DONE]\n\n");
|
|
2667
|
+
} catch (err) {
|
|
2668
|
+
logger2.error("Error in decline tool call: " + (err?.message ?? "Unknown error"));
|
|
2669
|
+
const errorChunk = {
|
|
2670
|
+
type: "error",
|
|
2671
|
+
from: stream$1.ChunkFrom.AGENT,
|
|
2672
|
+
runId: body.runId || "unknown",
|
|
2673
|
+
payload: {
|
|
2674
|
+
error: err instanceof Error ? {
|
|
2675
|
+
message: err.message,
|
|
2676
|
+
name: err.name,
|
|
2677
|
+
stack: err.stack
|
|
2678
|
+
} : String(err)
|
|
2679
|
+
}
|
|
2680
|
+
};
|
|
2681
|
+
await stream6.write(`data: ${JSON.stringify(errorChunk)}
|
|
2682
|
+
|
|
2683
|
+
`);
|
|
2644
2684
|
}
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2685
|
+
await stream6.close();
|
|
2686
|
+
},
|
|
2687
|
+
async (err) => {
|
|
2688
|
+
logger2.error("Error in watch stream: " + err?.message);
|
|
2689
|
+
}
|
|
2690
|
+
);
|
|
2649
2691
|
}
|
|
2650
2692
|
async function streamNetworkHandler(c2) {
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2693
|
+
const mastra = c2.get("mastra");
|
|
2694
|
+
const agentId = c2.req.param("agentId");
|
|
2695
|
+
const runtimeContext = c2.get("runtimeContext");
|
|
2696
|
+
const body = await c2.req.json();
|
|
2697
|
+
const logger2 = mastra.getLogger();
|
|
2698
|
+
const agent = mastra.getAgent(agentId);
|
|
2699
|
+
if (!agent) {
|
|
2700
|
+
return handleError(
|
|
2701
|
+
new error.MastraError({
|
|
2660
2702
|
id: "AGENT_NOT_FOUND",
|
|
2661
2703
|
domain: error.ErrorDomain.AGENT,
|
|
2662
2704
|
category: error.ErrorCategory.USER,
|
|
2663
2705
|
text: "Agent not found"
|
|
2664
|
-
})
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2706
|
+
}),
|
|
2707
|
+
"Agent not found"
|
|
2708
|
+
);
|
|
2709
|
+
}
|
|
2710
|
+
const memory = await agent.getMemory({ runtimeContext });
|
|
2711
|
+
if (!memory) {
|
|
2712
|
+
return handleError(
|
|
2713
|
+
new error.MastraError({
|
|
2669
2714
|
id: "AGENT_NETWORK_MEMORY_REQUIRED",
|
|
2670
2715
|
domain: error.ErrorDomain.AGENT_NETWORK,
|
|
2671
2716
|
category: error.ErrorCategory.USER,
|
|
@@ -2673,43 +2718,62 @@ async function streamNetworkHandler(c2) {
|
|
|
2673
2718
|
details: {
|
|
2674
2719
|
status: 400
|
|
2675
2720
|
}
|
|
2676
|
-
})
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2721
|
+
}),
|
|
2722
|
+
"Memory required for agent network"
|
|
2723
|
+
);
|
|
2724
|
+
}
|
|
2725
|
+
let streamResponse;
|
|
2726
|
+
try {
|
|
2727
|
+
streamResponse = await agents.streamNetworkHandler({
|
|
2728
|
+
mastra,
|
|
2729
|
+
agentId,
|
|
2730
|
+
runtimeContext,
|
|
2731
|
+
body
|
|
2732
|
+
// abortSignal: c.req.raw.signal,
|
|
2733
|
+
});
|
|
2734
|
+
} catch (err) {
|
|
2735
|
+
return handleError(err, "Error streaming from agent in network mode");
|
|
2736
|
+
}
|
|
2737
|
+
c2.header("Transfer-Encoding", "chunked");
|
|
2738
|
+
return streaming.stream(
|
|
2739
|
+
c2,
|
|
2740
|
+
async (stream6) => {
|
|
2741
|
+
try {
|
|
2742
|
+
const reader = streamResponse.getReader();
|
|
2743
|
+
stream6.onAbort(() => {
|
|
2744
|
+
void reader.cancel("request aborted");
|
|
2745
|
+
});
|
|
2746
|
+
let chunkResult;
|
|
2747
|
+
while ((chunkResult = await reader.read()) && !chunkResult.done) {
|
|
2748
|
+
await stream6.write(`data: ${JSON.stringify(chunkResult.value)}
|
|
2697
2749
|
|
|
2698
2750
|
`);
|
|
2699
|
-
}
|
|
2700
|
-
await stream6.write("data: [DONE]\n\n");
|
|
2701
|
-
} catch (err) {
|
|
2702
|
-
logger2.error("Error in streamNetwork generate: " + (err?.message ?? "Unknown error"));
|
|
2703
2751
|
}
|
|
2704
|
-
await stream6.
|
|
2705
|
-
}
|
|
2706
|
-
|
|
2707
|
-
|
|
2752
|
+
await stream6.write("data: [DONE]\n\n");
|
|
2753
|
+
} catch (err) {
|
|
2754
|
+
logger2.error("Error in streamNetwork generate: " + (err?.message ?? "Unknown error"));
|
|
2755
|
+
const errorChunk = {
|
|
2756
|
+
type: "error",
|
|
2757
|
+
from: stream$1.ChunkFrom.AGENT,
|
|
2758
|
+
runId: body.runId || "unknown",
|
|
2759
|
+
payload: {
|
|
2760
|
+
error: err instanceof Error ? {
|
|
2761
|
+
message: err.message,
|
|
2762
|
+
name: err.name,
|
|
2763
|
+
stack: err.stack
|
|
2764
|
+
} : String(err)
|
|
2765
|
+
}
|
|
2766
|
+
};
|
|
2767
|
+
await stream6.write(`data: ${JSON.stringify(errorChunk)}
|
|
2768
|
+
|
|
2769
|
+
`);
|
|
2708
2770
|
}
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2771
|
+
await stream6.close();
|
|
2772
|
+
},
|
|
2773
|
+
async (err) => {
|
|
2774
|
+
logger2.error("Error in watch stream: " + err?.message);
|
|
2775
|
+
}
|
|
2776
|
+
);
|
|
2713
2777
|
}
|
|
2714
2778
|
async function streamUIMessageHandler(c2) {
|
|
2715
2779
|
try {
|