@mastra/server 0.22.0 → 0.22.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.
- package/CHANGELOG.md +18 -0
- package/dist/{chunk-XDAYZS6N.js → chunk-CFBJQKRE.js} +55 -57
- package/dist/chunk-CFBJQKRE.js.map +1 -0
- package/dist/{chunk-FHSOPERI.cjs → chunk-HZJTM3OQ.cjs} +55 -56
- package/dist/chunk-HZJTM3OQ.cjs.map +1 -0
- package/dist/{chunk-ZEDPVPID.cjs → chunk-JTXOSCJQ.cjs} +3 -3
- package/dist/chunk-JTXOSCJQ.cjs.map +1 -0
- package/dist/{chunk-CO4OYKRH.js → chunk-MH2EOSRX.js} +3 -3
- package/dist/chunk-MH2EOSRX.js.map +1 -0
- package/dist/server/handlers/agents.cjs +23 -19
- package/dist/server/handlers/agents.d.ts +4 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/memory.cjs +16 -16
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers.cjs +4 -4
- package/dist/server/handlers.js +2 -2
- package/package.json +6 -6
- package/dist/chunk-CO4OYKRH.js.map +0 -1
- package/dist/chunk-FHSOPERI.cjs.map +0 -1
- package/dist/chunk-XDAYZS6N.js.map +0 -1
- package/dist/chunk-ZEDPVPID.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @mastra/server
|
|
2
2
|
|
|
3
|
+
## 0.22.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Get agent registered on a parent agent via API ([#9106](https://github.com/mastra-ai/mastra/pull/9106))
|
|
8
|
+
|
|
9
|
+
- Updated dependencies []:
|
|
10
|
+
- @mastra/core@0.22.1
|
|
11
|
+
|
|
12
|
+
## 0.22.1-alpha.0
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Get agent registered on a parent agent via API ([#9106](https://github.com/mastra-ai/mastra/pull/9106))
|
|
17
|
+
|
|
18
|
+
- Updated dependencies []:
|
|
19
|
+
- @mastra/core@0.22.1-alpha.0
|
|
20
|
+
|
|
3
21
|
## 0.22.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
|
@@ -15,6 +15,7 @@ __export(agents_exports, {
|
|
|
15
15
|
generateHandler: () => generateHandler,
|
|
16
16
|
generateLegacyHandler: () => generateLegacyHandler,
|
|
17
17
|
getAgentByIdHandler: () => getAgentByIdHandler,
|
|
18
|
+
getAgentFromSystem: () => getAgentFromSystem,
|
|
18
19
|
getAgentsHandler: () => getAgentsHandler,
|
|
19
20
|
getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
|
|
20
21
|
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
@@ -164,6 +165,39 @@ async function formatAgentList({
|
|
|
164
165
|
modelList
|
|
165
166
|
};
|
|
166
167
|
}
|
|
168
|
+
async function getAgentFromSystem({ mastra, agentId }) {
|
|
169
|
+
const logger = mastra.getLogger();
|
|
170
|
+
if (!agentId) {
|
|
171
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
172
|
+
}
|
|
173
|
+
let agent;
|
|
174
|
+
try {
|
|
175
|
+
agent = mastra.getAgent(agentId);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
logger.debug("Error getting agent from mastra, searching agents for agent", error);
|
|
178
|
+
}
|
|
179
|
+
if (!agent) {
|
|
180
|
+
logger.debug(`Agent ${agentId} not found, looking through sub-agents`);
|
|
181
|
+
const agents = mastra.getAgents();
|
|
182
|
+
if (Object.keys(agents || {}).length) {
|
|
183
|
+
for (const [_, ag] of Object.entries(agents)) {
|
|
184
|
+
try {
|
|
185
|
+
const subAgents = await ag.listAgents();
|
|
186
|
+
if (subAgents[agentId]) {
|
|
187
|
+
agent = subAgents[agentId];
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
} catch (error) {
|
|
191
|
+
logger.debug("Error getting agent from agent", error);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (!agent) {
|
|
197
|
+
throw new HTTPException(404, { message: `Agent with name ${agentId} not found` });
|
|
198
|
+
}
|
|
199
|
+
return agent;
|
|
200
|
+
}
|
|
167
201
|
async function getAgentsHandler({
|
|
168
202
|
mastra,
|
|
169
203
|
runtimeContext
|
|
@@ -277,10 +311,7 @@ async function getAgentByIdHandler({
|
|
|
277
311
|
isPlayground = false
|
|
278
312
|
}) {
|
|
279
313
|
try {
|
|
280
|
-
const agent = mastra
|
|
281
|
-
if (!agent) {
|
|
282
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
283
|
-
}
|
|
314
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
284
315
|
return formatAgent({ mastra, agent, runtimeContext, isPlayground });
|
|
285
316
|
} catch (error) {
|
|
286
317
|
return handleError(error, "Error getting agent");
|
|
@@ -292,7 +323,7 @@ async function getEvalsByAgentIdHandler({
|
|
|
292
323
|
agentId
|
|
293
324
|
}) {
|
|
294
325
|
try {
|
|
295
|
-
const agent = mastra
|
|
326
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
296
327
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
|
|
297
328
|
const instructions = await agent.getInstructions({ runtimeContext });
|
|
298
329
|
return {
|
|
@@ -311,7 +342,7 @@ async function getLiveEvalsByAgentIdHandler({
|
|
|
311
342
|
agentId
|
|
312
343
|
}) {
|
|
313
344
|
try {
|
|
314
|
-
const agent = mastra
|
|
345
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
315
346
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
|
|
316
347
|
const instructions = await agent.getInstructions({ runtimeContext });
|
|
317
348
|
return {
|
|
@@ -332,10 +363,7 @@ async function generateLegacyHandler({
|
|
|
332
363
|
abortSignal
|
|
333
364
|
}) {
|
|
334
365
|
try {
|
|
335
|
-
const agent = mastra
|
|
336
|
-
if (!agent) {
|
|
337
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
338
|
-
}
|
|
366
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
339
367
|
sanitizeBody(body, ["tools"]);
|
|
340
368
|
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
341
369
|
const finalResourceId = resourceId ?? resourceid;
|
|
@@ -364,10 +392,7 @@ async function generateHandler({
|
|
|
364
392
|
abortSignal
|
|
365
393
|
}) {
|
|
366
394
|
try {
|
|
367
|
-
const agent = mastra
|
|
368
|
-
if (!agent) {
|
|
369
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
370
|
-
}
|
|
395
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
371
396
|
sanitizeBody(body, ["tools"]);
|
|
372
397
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
373
398
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -394,10 +419,7 @@ async function streamGenerateLegacyHandler({
|
|
|
394
419
|
abortSignal
|
|
395
420
|
}) {
|
|
396
421
|
try {
|
|
397
|
-
const agent = mastra
|
|
398
|
-
if (!agent) {
|
|
399
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
400
|
-
}
|
|
422
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
401
423
|
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
402
424
|
const finalResourceId = resourceId ?? resourceid;
|
|
403
425
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -431,7 +453,7 @@ async function streamGenerateLegacyHandler({
|
|
|
431
453
|
return handleError(error, "error streaming agent response");
|
|
432
454
|
}
|
|
433
455
|
}
|
|
434
|
-
function streamGenerateHandler({
|
|
456
|
+
async function streamGenerateHandler({
|
|
435
457
|
mastra,
|
|
436
458
|
runtimeContext,
|
|
437
459
|
agentId,
|
|
@@ -439,10 +461,7 @@ function streamGenerateHandler({
|
|
|
439
461
|
abortSignal
|
|
440
462
|
}) {
|
|
441
463
|
try {
|
|
442
|
-
const agent = mastra
|
|
443
|
-
if (!agent) {
|
|
444
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
445
|
-
}
|
|
464
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
446
465
|
sanitizeBody(body, ["tools"]);
|
|
447
466
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
448
467
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -461,7 +480,7 @@ function streamGenerateHandler({
|
|
|
461
480
|
return handleError(error, "error streaming agent response");
|
|
462
481
|
}
|
|
463
482
|
}
|
|
464
|
-
function approveToolCallHandler({
|
|
483
|
+
async function approveToolCallHandler({
|
|
465
484
|
mastra,
|
|
466
485
|
runtimeContext,
|
|
467
486
|
agentId,
|
|
@@ -469,10 +488,7 @@ function approveToolCallHandler({
|
|
|
469
488
|
abortSignal
|
|
470
489
|
}) {
|
|
471
490
|
try {
|
|
472
|
-
const agent = mastra
|
|
473
|
-
if (!agent) {
|
|
474
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
475
|
-
}
|
|
491
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
476
492
|
sanitizeBody(body, ["tools"]);
|
|
477
493
|
const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
478
494
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -491,7 +507,7 @@ function approveToolCallHandler({
|
|
|
491
507
|
return handleError(error, "error streaming agent response");
|
|
492
508
|
}
|
|
493
509
|
}
|
|
494
|
-
function declineToolCallHandler({
|
|
510
|
+
async function declineToolCallHandler({
|
|
495
511
|
mastra,
|
|
496
512
|
runtimeContext,
|
|
497
513
|
agentId,
|
|
@@ -499,10 +515,7 @@ function declineToolCallHandler({
|
|
|
499
515
|
abortSignal
|
|
500
516
|
}) {
|
|
501
517
|
try {
|
|
502
|
-
const agent = mastra
|
|
503
|
-
if (!agent) {
|
|
504
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
505
|
-
}
|
|
518
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
506
519
|
sanitizeBody(body, ["tools"]);
|
|
507
520
|
const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
508
521
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -521,7 +534,7 @@ function declineToolCallHandler({
|
|
|
521
534
|
return handleError(error, "error streaming agent response");
|
|
522
535
|
}
|
|
523
536
|
}
|
|
524
|
-
function streamNetworkHandler({
|
|
537
|
+
async function streamNetworkHandler({
|
|
525
538
|
mastra,
|
|
526
539
|
runtimeContext,
|
|
527
540
|
agentId,
|
|
@@ -529,10 +542,7 @@ function streamNetworkHandler({
|
|
|
529
542
|
// abortSignal,
|
|
530
543
|
}) {
|
|
531
544
|
try {
|
|
532
|
-
const agent = mastra
|
|
533
|
-
if (!agent) {
|
|
534
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
535
|
-
}
|
|
545
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
536
546
|
sanitizeBody(body, ["tools"]);
|
|
537
547
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
538
548
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -562,10 +572,7 @@ async function streamUIMessageHandler({
|
|
|
562
572
|
abortSignal
|
|
563
573
|
}) {
|
|
564
574
|
try {
|
|
565
|
-
const agent = mastra
|
|
566
|
-
if (!agent) {
|
|
567
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
568
|
-
}
|
|
575
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
569
576
|
sanitizeBody(body, ["tools"]);
|
|
570
577
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
571
578
|
const finalRuntimeContext = new RuntimeContext([
|
|
@@ -590,10 +597,7 @@ async function updateAgentModelHandler({
|
|
|
590
597
|
body
|
|
591
598
|
}) {
|
|
592
599
|
try {
|
|
593
|
-
const agent = mastra
|
|
594
|
-
if (!agent) {
|
|
595
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
596
|
-
}
|
|
600
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
597
601
|
const { modelId, provider } = body;
|
|
598
602
|
const newModel = `${provider}/${modelId}`;
|
|
599
603
|
agent.__updateModel({ model: newModel });
|
|
@@ -608,10 +612,7 @@ async function reorderAgentModelListHandler({
|
|
|
608
612
|
body
|
|
609
613
|
}) {
|
|
610
614
|
try {
|
|
611
|
-
const agent = mastra
|
|
612
|
-
if (!agent) {
|
|
613
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
614
|
-
}
|
|
615
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
615
616
|
const modelList = await agent.getModelList();
|
|
616
617
|
if (!modelList || modelList.length === 0) {
|
|
617
618
|
throw new HTTPException(400, { message: "Agent model list is not found or empty" });
|
|
@@ -629,10 +630,7 @@ async function updateAgentModelInModelListHandler({
|
|
|
629
630
|
body
|
|
630
631
|
}) {
|
|
631
632
|
try {
|
|
632
|
-
const agent = mastra
|
|
633
|
-
if (!agent) {
|
|
634
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
635
|
-
}
|
|
633
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
636
634
|
const { model: bodyModel, maxRetries, enabled } = body;
|
|
637
635
|
if (!modelConfigId) {
|
|
638
636
|
throw new HTTPException(400, { message: "Model id is required" });
|
|
@@ -677,6 +675,6 @@ async function getProvidersHandler() {
|
|
|
677
675
|
}
|
|
678
676
|
}
|
|
679
677
|
|
|
680
|
-
export { agents_exports, approveToolCallHandler, declineToolCallHandler, generateHandler, generateLegacyHandler, getAgentByIdHandler, getAgentsHandler, getEvalsByAgentIdHandler, getLiveEvalsByAgentIdHandler, getProvidersHandler, getSerializedAgentTools, getSerializedProcessors, reorderAgentModelListHandler, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamUIMessageHandler, updateAgentModelHandler, updateAgentModelInModelListHandler };
|
|
681
|
-
//# sourceMappingURL=chunk-
|
|
682
|
-
//# sourceMappingURL=chunk-
|
|
678
|
+
export { agents_exports, approveToolCallHandler, declineToolCallHandler, generateHandler, generateLegacyHandler, getAgentByIdHandler, getAgentFromSystem, getAgentsHandler, getEvalsByAgentIdHandler, getLiveEvalsByAgentIdHandler, getProvidersHandler, getSerializedAgentTools, getSerializedProcessors, reorderAgentModelListHandler, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamUIMessageHandler, updateAgentModelHandler, updateAgentModelInModelListHandler };
|
|
679
|
+
//# sourceMappingURL=chunk-CFBJQKRE.js.map
|
|
680
|
+
//# sourceMappingURL=chunk-CFBJQKRE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["agent","acc","key"],"mappings":"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","file":"chunk-CFBJQKRE.js","sourcesContent":["import type { Agent, AgentModelManagerConfig } from '@mastra/core/agent';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { InputProcessor, OutputProcessor } from '@mastra/core/processors';\nimport { RuntimeContext } from '@mastra/core/runtime-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\n\nimport type {\n StreamTextOnFinishCallback,\n StreamTextOnStepFinishCallback,\n} from '../../../../core/dist/llm/model/base.types';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { sanitizeBody, validateBody } from './utils';\n\ntype GetBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = {\n messages: Parameters<Agent[T]>[0];\n} & Parameters<Agent[T]>[1];\n\ntype GetHITLBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = Parameters<Agent[T]>[0];\n\nexport interface SerializedProcessor {\n name: string;\n}\n\nexport interface SerializedTool {\n id: string;\n description?: string;\n inputSchema?: string;\n outputSchema?: string;\n requireApproval?: boolean;\n}\n\nexport interface SerializedWorkflow {\n name: string;\n steps?: Record<string, { id: string; description?: string }>;\n}\n\nexport interface SerializedAgent {\n name: string;\n instructions?: SystemMessage;\n tools: Record<string, SerializedTool>;\n agents: Record<string, SerializedAgentDefinition>;\n workflows: Record<string, SerializedWorkflow>;\n inputProcessors: SerializedProcessor[];\n outputProcessors: SerializedProcessor[];\n provider?: string;\n modelId?: string;\n modelVersion?: string;\n modelList?: Array<\n Omit<AgentModelManagerConfig, 'model'> & {\n model: {\n modelId: string;\n provider: string;\n modelVersion: string;\n };\n }\n >;\n // We can't use the true types here because they are not serializable\n defaultGenerateOptions?: Record<string, unknown>;\n defaultStreamOptions?: Record<string, unknown>;\n}\n\nexport interface SerializedAgentWithId extends SerializedAgent {\n id: string;\n}\n\nexport async function getSerializedAgentTools(tools: Record<string, unknown>): Promise<Record<string, SerializedTool>> {\n return Object.entries(tools || {}).reduce<Record<string, SerializedTool>>((acc, [key, tool]) => {\n const _tool = tool as {\n id?: string;\n description?: string;\n inputSchema?: { jsonSchema?: unknown } | unknown;\n outputSchema?: { jsonSchema?: unknown } | unknown;\n };\n\n const toolId = _tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn: string | undefined = undefined;\n let outputSchemaForReturn: string | undefined = undefined;\n\n try {\n if (_tool.inputSchema) {\n if (_tool.inputSchema && typeof _tool.inputSchema === 'object' && 'jsonSchema' in _tool.inputSchema) {\n inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);\n } else if (typeof _tool.inputSchema === 'function') {\n const inputSchema = _tool.inputSchema();\n if (inputSchema && inputSchema.jsonSchema) {\n inputSchemaForReturn = stringify(inputSchema.jsonSchema);\n }\n } else if (_tool.inputSchema) {\n inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n if (_tool.outputSchema) {\n if (_tool.outputSchema && typeof _tool.outputSchema === 'object' && 'jsonSchema' in _tool.outputSchema) {\n outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);\n } else if (typeof _tool.outputSchema === 'function') {\n const outputSchema = _tool.outputSchema();\n if (outputSchema && outputSchema.jsonSchema) {\n outputSchemaForReturn = stringify(outputSchema.jsonSchema);\n }\n } else if (_tool.outputSchema) {\n outputSchemaForReturn = stringify(\n zodToJsonSchema(_tool.outputSchema as Parameters<typeof zodToJsonSchema>[0]),\n );\n }\n }\n } catch (error) {\n console.error(`Error getting serialized tool`, {\n toolId: _tool.id,\n error,\n });\n }\n\n acc[key] = {\n ..._tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\nexport function getSerializedProcessors(processors: (InputProcessor | OutputProcessor)[]): SerializedProcessor[] {\n return processors.map(processor => {\n // Processors are class instances or objects with a name property\n // Use the name property if available, otherwise fall back to constructor name\n return {\n name: processor.name || processor.constructor.name,\n };\n });\n}\n\ninterface SerializedAgentDefinition {\n id: string;\n name: string;\n}\n\nasync function getSerializedAgentDefinition({\n agent,\n runtimeContext,\n}: {\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<Record<string, SerializedAgentDefinition>> {\n let serializedAgentAgents: Record<string, SerializedAgentDefinition> = {};\n\n if ('listAgents' in agent) {\n const agents = await agent.listAgents({ runtimeContext });\n serializedAgentAgents = Object.entries(agents || {}).reduce<Record<string, SerializedAgentDefinition>>(\n (acc, [key, agent]) => {\n return {\n ...acc,\n [key]: { id: agent.id, name: agent.name },\n };\n },\n {},\n );\n }\n return serializedAgentAgents;\n}\n\nasync function formatAgentList({\n id,\n mastra,\n agent,\n runtimeContext,\n}: {\n id: string;\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<SerializedAgentWithId> {\n const instructions = await agent.getInstructions({ runtimeContext });\n const tools = await agent.getTools({ runtimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps?: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps?: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(runtimeContext);\n const outputProcessors = await agent.getOutputProcessors(runtimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n return {\n id,\n name: agent.name,\n instructions,\n agents: serializedAgentAgents,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions,\n defaultStreamOptions,\n modelList,\n };\n}\n\nexport async function getAgentFromSystem({ mastra, agentId }: { mastra: Context['mastra']; agentId: string }) {\n const logger = mastra.getLogger();\n\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n let agent;\n\n try {\n agent = mastra.getAgent(agentId);\n } catch (error) {\n logger.debug('Error getting agent from mastra, searching agents for agent', error);\n }\n\n if (!agent) {\n logger.debug(`Agent ${agentId} not found, looking through sub-agents`);\n const agents = mastra.getAgents();\n if (Object.keys(agents || {}).length) {\n for (const [_, ag] of Object.entries(agents)) {\n try {\n const subAgents = await ag.listAgents();\n\n if (subAgents[agentId]) {\n agent = subAgents[agentId];\n break;\n }\n } catch (error) {\n logger.debug('Error getting agent from agent', error);\n }\n }\n }\n }\n\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with name ${agentId} not found` });\n }\n\n return agent;\n}\n\n// Agent handlers\nexport async function getAgentsHandler({\n mastra,\n runtimeContext,\n}: Context & { runtimeContext: RuntimeContext }): Promise<Record<string, SerializedAgent>> {\n try {\n const agents = mastra.getAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\n return formatAgentList({ id, mastra, agent, runtimeContext });\n }),\n );\n\n const serializedAgents = serializedAgentsMap.reduce<\n Record<string, Omit<(typeof serializedAgentsMap)[number], 'id'>>\n >((acc, { id, ...rest }) => {\n acc[id] = rest;\n return acc;\n }, {});\n\n return serializedAgents;\n } catch (error) {\n return handleError(error, 'Error getting agents');\n }\n}\n\nasync function formatAgent({\n mastra,\n agent,\n runtimeContext,\n isPlayground,\n}: {\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n isPlayground: boolean;\n}): Promise<SerializedAgent> {\n const tools = await agent.getTools({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n steps: Object.entries(workflow.steps).reduce<Record<string, { id: string; description?: string }>>(\n (acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\n },\n };\n },\n {},\n ),\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n let proxyRuntimeContext = runtimeContext;\n if (isPlayground) {\n proxyRuntimeContext = new Proxy(runtimeContext, {\n get(target, prop) {\n if (prop === 'get') {\n return function (key: string) {\n const value = target.get(key);\n return value ?? `<${key}>`;\n };\n }\n return Reflect.get(target, prop);\n },\n });\n }\n\n const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);\n const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n return {\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n agents: serializedAgentAgents,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n modelList,\n defaultGenerateOptions,\n defaultStreamOptions,\n };\n}\n\nexport async function getAgentByIdHandler({\n mastra,\n runtimeContext,\n agentId,\n isPlayground = false,\n}: Context & { isPlayground?: boolean; runtimeContext: RuntimeContext; agentId: string }): Promise<\n SerializedAgent | ReturnType<typeof handleError>\n> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n return formatAgent({ mastra, agent, runtimeContext, isPlayground });\n } catch (error) {\n return handleError(error, 'Error getting agent');\n }\n}\n\nexport async function getEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'test')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting test evals');\n }\n}\n\nexport async function getLiveEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'live')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting live evals');\n }\n}\n\nexport async function generateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generateLegacy'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: Record<string, unknown>;\n };\n abortSignal?: AbortSignal;\n}) {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generateLegacy(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function generateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n runtimeContext?: Record<string, unknown>;\n format?: 'mastra' | 'aisdk';\n };\n abortSignal?: AbortSignal;\n}): Promise<ReturnType<Agent['generate']>> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generate(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n format: rest.format || 'mastra',\n abortSignal,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function streamGenerateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamLegacy'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.streamLegacy(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n const streamResponse = rest.output\n ? streamResult.toTextStreamResponse({\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n })\n : streamResult.toDataStreamResponse({\n sendUsage: true,\n sendReasoning: true,\n getErrorMessage: (error: any) => {\n return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;\n },\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n });\n\n return streamResponse;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function streamGenerateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['stream']> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.stream(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function approveToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'approveToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['approveToolCall']> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n const streamResult = agent.approveToolCall({\n ...rest,\n runId,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function declineToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'declineToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['declineToolCall']> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n const streamResult = agent.declineToolCall({\n ...rest,\n runId,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function streamNetworkHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n // abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'network'> & {\n thread?: string;\n resourceId?: string;\n };\n // abortSignal?: AbortSignal;\n}): ReturnType<Agent['network']> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.network(messages, {\n ...rest,\n memory: {\n thread: rest.thread ?? '',\n resource: rest.resourceId ?? '',\n options: rest.memory?.options ?? {},\n },\n runtimeContext: finalRuntimeContext,\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent loop response');\n }\n}\n\nexport async function streamUIMessageHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n onStepFinish?: StreamTextOnStepFinishCallback<any>;\n onFinish?: StreamTextOnFinishCallback<any>;\n output?: undefined;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.stream(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: 'aisdk',\n });\n\n return streamResult.toUIMessageStreamResponse();\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function updateAgentModelHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n modelId: string;\n provider: string;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const { modelId, provider } = body;\n\n // Use the universal Mastra router format: provider/model\n const newModel = `${provider}/${modelId}`;\n\n agent.__updateModel({ model: newModel });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n}\n\nexport async function reorderAgentModelListHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n reorderedModelIds: Array<string>;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n agent.reorderModels(body.reorderedModelIds);\n\n return { message: 'Model list reordered' };\n } catch (error) {\n return handleError(error, 'error reordering model list');\n }\n}\n\nexport async function updateAgentModelInModelListHandler({\n mastra,\n agentId,\n modelConfigId,\n body,\n}: Context & {\n agentId: string;\n modelConfigId: string;\n body: {\n model?: {\n modelId: string;\n provider: string;\n };\n maxRetries?: number;\n enabled?: boolean;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const { model: bodyModel, maxRetries, enabled } = body;\n\n if (!modelConfigId) {\n throw new HTTPException(400, { message: 'Model id is required' });\n }\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n const modelToUpdate = modelList.find(m => m.id === modelConfigId);\n if (!modelToUpdate) {\n throw new HTTPException(400, { message: 'Model to update is not found in agent model list' });\n }\n\n let model: string | undefined;\n if (bodyModel) {\n const { modelId, provider } = bodyModel;\n // Use the universal Mastra router format: provider/model\n model = `${provider}/${modelId}`;\n }\n\n agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });\n\n return { message: 'Model list updated' };\n } catch (error) {\n return handleError(error, 'error updating model list');\n }\n}\n\nexport async function getProvidersHandler() {\n try {\n const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {\n // Check if the provider is connected by checking for its API key env var(s)\n const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];\n const connected = envVars.every(envVar => !!process.env[envVar]);\n\n return {\n id,\n name: provider.name,\n envVar: provider.apiKeyEnvVar,\n connected,\n docUrl: provider.docUrl,\n models: [...provider.models], // Convert readonly array to regular array\n };\n });\n\n return { providers };\n } catch (error) {\n return handleError(error, 'error fetching providers');\n }\n}\n"]}
|
|
@@ -17,6 +17,7 @@ chunkO7I5CWRX_cjs.__export(agents_exports, {
|
|
|
17
17
|
generateHandler: () => generateHandler,
|
|
18
18
|
generateLegacyHandler: () => generateLegacyHandler,
|
|
19
19
|
getAgentByIdHandler: () => getAgentByIdHandler,
|
|
20
|
+
getAgentFromSystem: () => getAgentFromSystem,
|
|
20
21
|
getAgentsHandler: () => getAgentsHandler,
|
|
21
22
|
getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
|
|
22
23
|
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
@@ -166,6 +167,39 @@ async function formatAgentList({
|
|
|
166
167
|
modelList
|
|
167
168
|
};
|
|
168
169
|
}
|
|
170
|
+
async function getAgentFromSystem({ mastra, agentId }) {
|
|
171
|
+
const logger = mastra.getLogger();
|
|
172
|
+
if (!agentId) {
|
|
173
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Agent ID is required" });
|
|
174
|
+
}
|
|
175
|
+
let agent;
|
|
176
|
+
try {
|
|
177
|
+
agent = mastra.getAgent(agentId);
|
|
178
|
+
} catch (error) {
|
|
179
|
+
logger.debug("Error getting agent from mastra, searching agents for agent", error);
|
|
180
|
+
}
|
|
181
|
+
if (!agent) {
|
|
182
|
+
logger.debug(`Agent ${agentId} not found, looking through sub-agents`);
|
|
183
|
+
const agents = mastra.getAgents();
|
|
184
|
+
if (Object.keys(agents || {}).length) {
|
|
185
|
+
for (const [_, ag] of Object.entries(agents)) {
|
|
186
|
+
try {
|
|
187
|
+
const subAgents = await ag.listAgents();
|
|
188
|
+
if (subAgents[agentId]) {
|
|
189
|
+
agent = subAgents[agentId];
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
} catch (error) {
|
|
193
|
+
logger.debug("Error getting agent from agent", error);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (!agent) {
|
|
199
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: `Agent with name ${agentId} not found` });
|
|
200
|
+
}
|
|
201
|
+
return agent;
|
|
202
|
+
}
|
|
169
203
|
async function getAgentsHandler({
|
|
170
204
|
mastra,
|
|
171
205
|
runtimeContext
|
|
@@ -279,10 +313,7 @@ async function getAgentByIdHandler({
|
|
|
279
313
|
isPlayground = false
|
|
280
314
|
}) {
|
|
281
315
|
try {
|
|
282
|
-
const agent = mastra
|
|
283
|
-
if (!agent) {
|
|
284
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
285
|
-
}
|
|
316
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
286
317
|
return formatAgent({ mastra, agent, runtimeContext, isPlayground });
|
|
287
318
|
} catch (error) {
|
|
288
319
|
return chunkRE4RPXT2_cjs.handleError(error, "Error getting agent");
|
|
@@ -294,7 +325,7 @@ async function getEvalsByAgentIdHandler({
|
|
|
294
325
|
agentId
|
|
295
326
|
}) {
|
|
296
327
|
try {
|
|
297
|
-
const agent = mastra
|
|
328
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
298
329
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
|
|
299
330
|
const instructions = await agent.getInstructions({ runtimeContext });
|
|
300
331
|
return {
|
|
@@ -313,7 +344,7 @@ async function getLiveEvalsByAgentIdHandler({
|
|
|
313
344
|
agentId
|
|
314
345
|
}) {
|
|
315
346
|
try {
|
|
316
|
-
const agent = mastra
|
|
347
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
317
348
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
|
|
318
349
|
const instructions = await agent.getInstructions({ runtimeContext });
|
|
319
350
|
return {
|
|
@@ -334,10 +365,7 @@ async function generateLegacyHandler({
|
|
|
334
365
|
abortSignal
|
|
335
366
|
}) {
|
|
336
367
|
try {
|
|
337
|
-
const agent = mastra
|
|
338
|
-
if (!agent) {
|
|
339
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
340
|
-
}
|
|
368
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
341
369
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
342
370
|
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
343
371
|
const finalResourceId = resourceId ?? resourceid;
|
|
@@ -366,10 +394,7 @@ async function generateHandler({
|
|
|
366
394
|
abortSignal
|
|
367
395
|
}) {
|
|
368
396
|
try {
|
|
369
|
-
const agent = mastra
|
|
370
|
-
if (!agent) {
|
|
371
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
372
|
-
}
|
|
397
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
373
398
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
374
399
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
375
400
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -396,10 +421,7 @@ async function streamGenerateLegacyHandler({
|
|
|
396
421
|
abortSignal
|
|
397
422
|
}) {
|
|
398
423
|
try {
|
|
399
|
-
const agent = mastra
|
|
400
|
-
if (!agent) {
|
|
401
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
402
|
-
}
|
|
424
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
403
425
|
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
404
426
|
const finalResourceId = resourceId ?? resourceid;
|
|
405
427
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -433,7 +455,7 @@ async function streamGenerateLegacyHandler({
|
|
|
433
455
|
return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
|
|
434
456
|
}
|
|
435
457
|
}
|
|
436
|
-
function streamGenerateHandler({
|
|
458
|
+
async function streamGenerateHandler({
|
|
437
459
|
mastra,
|
|
438
460
|
runtimeContext: runtimeContext$1,
|
|
439
461
|
agentId,
|
|
@@ -441,10 +463,7 @@ function streamGenerateHandler({
|
|
|
441
463
|
abortSignal
|
|
442
464
|
}) {
|
|
443
465
|
try {
|
|
444
|
-
const agent = mastra
|
|
445
|
-
if (!agent) {
|
|
446
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
447
|
-
}
|
|
466
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
448
467
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
449
468
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
450
469
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -463,7 +482,7 @@ function streamGenerateHandler({
|
|
|
463
482
|
return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
|
|
464
483
|
}
|
|
465
484
|
}
|
|
466
|
-
function approveToolCallHandler({
|
|
485
|
+
async function approveToolCallHandler({
|
|
467
486
|
mastra,
|
|
468
487
|
runtimeContext: runtimeContext$1,
|
|
469
488
|
agentId,
|
|
@@ -471,10 +490,7 @@ function approveToolCallHandler({
|
|
|
471
490
|
abortSignal
|
|
472
491
|
}) {
|
|
473
492
|
try {
|
|
474
|
-
const agent = mastra
|
|
475
|
-
if (!agent) {
|
|
476
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
477
|
-
}
|
|
493
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
478
494
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
479
495
|
const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
480
496
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -493,7 +509,7 @@ function approveToolCallHandler({
|
|
|
493
509
|
return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
|
|
494
510
|
}
|
|
495
511
|
}
|
|
496
|
-
function declineToolCallHandler({
|
|
512
|
+
async function declineToolCallHandler({
|
|
497
513
|
mastra,
|
|
498
514
|
runtimeContext: runtimeContext$1,
|
|
499
515
|
agentId,
|
|
@@ -501,10 +517,7 @@ function declineToolCallHandler({
|
|
|
501
517
|
abortSignal
|
|
502
518
|
}) {
|
|
503
519
|
try {
|
|
504
|
-
const agent = mastra
|
|
505
|
-
if (!agent) {
|
|
506
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
507
|
-
}
|
|
520
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
508
521
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
509
522
|
const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
510
523
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -523,7 +536,7 @@ function declineToolCallHandler({
|
|
|
523
536
|
return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
|
|
524
537
|
}
|
|
525
538
|
}
|
|
526
|
-
function streamNetworkHandler({
|
|
539
|
+
async function streamNetworkHandler({
|
|
527
540
|
mastra,
|
|
528
541
|
runtimeContext: runtimeContext$1,
|
|
529
542
|
agentId,
|
|
@@ -531,10 +544,7 @@ function streamNetworkHandler({
|
|
|
531
544
|
// abortSignal,
|
|
532
545
|
}) {
|
|
533
546
|
try {
|
|
534
|
-
const agent = mastra
|
|
535
|
-
if (!agent) {
|
|
536
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
537
|
-
}
|
|
547
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
538
548
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
539
549
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
540
550
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -564,10 +574,7 @@ async function streamUIMessageHandler({
|
|
|
564
574
|
abortSignal
|
|
565
575
|
}) {
|
|
566
576
|
try {
|
|
567
|
-
const agent = mastra
|
|
568
|
-
if (!agent) {
|
|
569
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
570
|
-
}
|
|
577
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
571
578
|
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
572
579
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
573
580
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
@@ -592,10 +599,7 @@ async function updateAgentModelHandler({
|
|
|
592
599
|
body
|
|
593
600
|
}) {
|
|
594
601
|
try {
|
|
595
|
-
const agent = mastra
|
|
596
|
-
if (!agent) {
|
|
597
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
598
|
-
}
|
|
602
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
599
603
|
const { modelId, provider } = body;
|
|
600
604
|
const newModel = `${provider}/${modelId}`;
|
|
601
605
|
agent.__updateModel({ model: newModel });
|
|
@@ -610,10 +614,7 @@ async function reorderAgentModelListHandler({
|
|
|
610
614
|
body
|
|
611
615
|
}) {
|
|
612
616
|
try {
|
|
613
|
-
const agent = mastra
|
|
614
|
-
if (!agent) {
|
|
615
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
616
|
-
}
|
|
617
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
617
618
|
const modelList = await agent.getModelList();
|
|
618
619
|
if (!modelList || modelList.length === 0) {
|
|
619
620
|
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Agent model list is not found or empty" });
|
|
@@ -631,10 +632,7 @@ async function updateAgentModelInModelListHandler({
|
|
|
631
632
|
body
|
|
632
633
|
}) {
|
|
633
634
|
try {
|
|
634
|
-
const agent = mastra
|
|
635
|
-
if (!agent) {
|
|
636
|
-
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
637
|
-
}
|
|
635
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
638
636
|
const { model: bodyModel, maxRetries, enabled } = body;
|
|
639
637
|
if (!modelConfigId) {
|
|
640
638
|
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Model id is required" });
|
|
@@ -685,6 +683,7 @@ exports.declineToolCallHandler = declineToolCallHandler;
|
|
|
685
683
|
exports.generateHandler = generateHandler;
|
|
686
684
|
exports.generateLegacyHandler = generateLegacyHandler;
|
|
687
685
|
exports.getAgentByIdHandler = getAgentByIdHandler;
|
|
686
|
+
exports.getAgentFromSystem = getAgentFromSystem;
|
|
688
687
|
exports.getAgentsHandler = getAgentsHandler;
|
|
689
688
|
exports.getEvalsByAgentIdHandler = getEvalsByAgentIdHandler;
|
|
690
689
|
exports.getLiveEvalsByAgentIdHandler = getLiveEvalsByAgentIdHandler;
|
|
@@ -698,5 +697,5 @@ exports.streamNetworkHandler = streamNetworkHandler;
|
|
|
698
697
|
exports.streamUIMessageHandler = streamUIMessageHandler;
|
|
699
698
|
exports.updateAgentModelHandler = updateAgentModelHandler;
|
|
700
699
|
exports.updateAgentModelInModelListHandler = updateAgentModelInModelListHandler;
|
|
701
|
-
//# sourceMappingURL=chunk-
|
|
702
|
-
//# sourceMappingURL=chunk-
|
|
700
|
+
//# sourceMappingURL=chunk-HZJTM3OQ.cjs.map
|
|
701
|
+
//# sourceMappingURL=chunk-HZJTM3OQ.cjs.map
|