@mastra/server 1.51.0-alpha.5 → 1.51.0-alpha.7
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 +61 -0
- package/dist/{api-schema-manifest-AYK5QEZV.cjs → api-schema-manifest-DE2A4RUM.cjs} +4 -4
- package/dist/{api-schema-manifest-AYK5QEZV.cjs.map → api-schema-manifest-DE2A4RUM.cjs.map} +1 -1
- package/dist/{api-schema-manifest-K3NKXMAN.js → api-schema-manifest-ZBRJBFSL.js} +3 -3
- package/dist/{api-schema-manifest-K3NKXMAN.js.map → api-schema-manifest-ZBRJBFSL.js.map} +1 -1
- package/dist/{chunk-AJO6UQR2.cjs → chunk-23RSJYON.cjs} +26 -26
- package/dist/{chunk-AJO6UQR2.cjs.map → chunk-23RSJYON.cjs.map} +1 -1
- package/dist/{chunk-R3KUPFCO.js → chunk-256OPP7S.js} +14 -3
- package/dist/chunk-256OPP7S.js.map +1 -0
- package/dist/{chunk-MFFWRRHW.cjs → chunk-2QKDMZ5B.cjs} +7 -7
- package/dist/{chunk-MFFWRRHW.cjs.map → chunk-2QKDMZ5B.cjs.map} +1 -1
- package/dist/{chunk-3WGKJO34.js → chunk-2ZMOUXUF.js} +58 -5
- package/dist/chunk-2ZMOUXUF.js.map +1 -0
- package/dist/{chunk-G5WHRGK2.cjs → chunk-5CUCN4QC.cjs} +11 -11
- package/dist/{chunk-G5WHRGK2.cjs.map → chunk-5CUCN4QC.cjs.map} +1 -1
- package/dist/{chunk-5QIG5OD3.js → chunk-5IMX5NM3.js} +3 -3
- package/dist/{chunk-5QIG5OD3.js.map → chunk-5IMX5NM3.js.map} +1 -1
- package/dist/{chunk-JIH32DPY.js → chunk-67Y5VZH2.js} +3 -3
- package/dist/{chunk-JIH32DPY.js.map → chunk-67Y5VZH2.js.map} +1 -1
- package/dist/{chunk-VBPYR5ZH.cjs → chunk-7MQRMIVN.cjs} +4 -4
- package/dist/{chunk-VBPYR5ZH.cjs.map → chunk-7MQRMIVN.cjs.map} +1 -1
- package/dist/{chunk-LQZHT5U7.js → chunk-AGMARPDG.js} +3 -3
- package/dist/{chunk-LQZHT5U7.js.map → chunk-AGMARPDG.js.map} +1 -1
- package/dist/{chunk-4NAFUTJI.cjs → chunk-AHFEQVIO.cjs} +38 -38
- package/dist/{chunk-4NAFUTJI.cjs.map → chunk-AHFEQVIO.cjs.map} +1 -1
- package/dist/{chunk-35K3VDUZ.js → chunk-AMLYUMNH.js} +3 -3
- package/dist/{chunk-35K3VDUZ.js.map → chunk-AMLYUMNH.js.map} +1 -1
- package/dist/{chunk-CNI2ZL6H.cjs → chunk-CIR74QPG.cjs} +5 -5
- package/dist/{chunk-CNI2ZL6H.cjs.map → chunk-CIR74QPG.cjs.map} +1 -1
- package/dist/{chunk-Y6B34UCS.js → chunk-CQKT2IEY.js} +4 -4
- package/dist/{chunk-Y6B34UCS.js.map → chunk-CQKT2IEY.js.map} +1 -1
- package/dist/{chunk-MEF3G22I.cjs → chunk-CQMRVXYZ.cjs} +12 -12
- package/dist/{chunk-MEF3G22I.cjs.map → chunk-CQMRVXYZ.cjs.map} +1 -1
- package/dist/{chunk-VTA32BYJ.cjs → chunk-D43AYAW2.cjs} +107 -67
- package/dist/chunk-D43AYAW2.cjs.map +1 -0
- package/dist/{chunk-GQPRLS76.js → chunk-DBJ72M3L.js} +3 -3
- package/dist/{chunk-GQPRLS76.js.map → chunk-DBJ72M3L.js.map} +1 -1
- package/dist/{chunk-2NQNVUCA.cjs → chunk-EXP66755.cjs} +4 -4
- package/dist/{chunk-2NQNVUCA.cjs.map → chunk-EXP66755.cjs.map} +1 -1
- package/dist/{chunk-SAIG7RGY.cjs → chunk-FEUCP6F3.cjs} +4 -4
- package/dist/{chunk-SAIG7RGY.cjs.map → chunk-FEUCP6F3.cjs.map} +1 -1
- package/dist/{chunk-DRY2IIQ4.js → chunk-GJPUTFUV.js} +4 -4
- package/dist/{chunk-DRY2IIQ4.js.map → chunk-GJPUTFUV.js.map} +1 -1
- package/dist/{chunk-VWML7WAL.cjs → chunk-I432F3YA.cjs} +17 -17
- package/dist/{chunk-VWML7WAL.cjs.map → chunk-I432F3YA.cjs.map} +1 -1
- package/dist/{chunk-E3XWDLUS.cjs → chunk-ICNDDYVU.cjs} +5 -5
- package/dist/{chunk-E3XWDLUS.cjs.map → chunk-ICNDDYVU.cjs.map} +1 -1
- package/dist/{chunk-75KTWM5C.js → chunk-IE5RWKUF.js} +4 -4
- package/dist/{chunk-75KTWM5C.js.map → chunk-IE5RWKUF.js.map} +1 -1
- package/dist/{chunk-ZQ4GVMYG.cjs → chunk-ILPFFVYC.cjs} +14 -2
- package/dist/chunk-ILPFFVYC.cjs.map +1 -0
- package/dist/{chunk-G3VJMWQN.cjs → chunk-JEODNH6U.cjs} +203 -202
- package/dist/chunk-JEODNH6U.cjs.map +1 -0
- package/dist/{chunk-PBNENTGS.js → chunk-JN4YYVB6.js} +3 -3
- package/dist/{chunk-PBNENTGS.js.map → chunk-JN4YYVB6.js.map} +1 -1
- package/dist/{chunk-RU33KEP5.cjs → chunk-JQEHJTZT.cjs} +157 -103
- package/dist/chunk-JQEHJTZT.cjs.map +1 -0
- package/dist/{chunk-NCHOAORF.cjs → chunk-KDS5H7AE.cjs} +5 -5
- package/dist/{chunk-NCHOAORF.cjs.map → chunk-KDS5H7AE.cjs.map} +1 -1
- package/dist/{chunk-FZ6OEI64.js → chunk-KXZI7W4X.js} +3 -3
- package/dist/{chunk-FZ6OEI64.js.map → chunk-KXZI7W4X.js.map} +1 -1
- package/dist/{chunk-C5PUPYP7.cjs → chunk-LXVZZCYL.cjs} +4 -4
- package/dist/{chunk-C5PUPYP7.cjs.map → chunk-LXVZZCYL.cjs.map} +1 -1
- package/dist/{chunk-47PVLKIL.cjs → chunk-LXWMMOJ4.cjs} +2 -2
- package/dist/{chunk-47PVLKIL.cjs.map → chunk-LXWMMOJ4.cjs.map} +1 -1
- package/dist/{chunk-LPT77UR6.js → chunk-MG3WOQQQ.js} +2 -2
- package/dist/{chunk-LPT77UR6.js.map → chunk-MG3WOQQQ.js.map} +1 -1
- package/dist/{chunk-RJURFPLU.js → chunk-MZLIIHA3.js} +3 -3
- package/dist/{chunk-RJURFPLU.js.map → chunk-MZLIIHA3.js.map} +1 -1
- package/dist/{chunk-3QVZXWIE.cjs → chunk-NLXGN2IS.cjs} +2 -2
- package/dist/chunk-NLXGN2IS.cjs.map +1 -0
- package/dist/{chunk-3KAKK4VV.js → chunk-OQ7KYSC2.js} +3 -3
- package/dist/{chunk-3KAKK4VV.js.map → chunk-OQ7KYSC2.js.map} +1 -1
- package/dist/{chunk-IBARGTX5.js → chunk-PPSCC3RI.js} +3 -3
- package/dist/{chunk-IBARGTX5.js.map → chunk-PPSCC3RI.js.map} +1 -1
- package/dist/{chunk-CD5HMC3B.cjs → chunk-Q2YBCG65.cjs} +3 -3
- package/dist/{chunk-CD5HMC3B.cjs.map → chunk-Q2YBCG65.cjs.map} +1 -1
- package/dist/{chunk-N5Z5NTFQ.cjs → chunk-RUHCOOAI.cjs} +5 -5
- package/dist/{chunk-N5Z5NTFQ.cjs.map → chunk-RUHCOOAI.cjs.map} +1 -1
- package/dist/{chunk-UQZLR5HN.cjs → chunk-SKWXNNTT.cjs} +9 -9
- package/dist/{chunk-UQZLR5HN.cjs.map → chunk-SKWXNNTT.cjs.map} +1 -1
- package/dist/{chunk-SB3YYDCD.js → chunk-STNV4TYH.js} +107 -67
- package/dist/chunk-STNV4TYH.js.map +1 -0
- package/dist/{chunk-PMGFP7II.cjs → chunk-THQZFNHO.cjs} +10 -10
- package/dist/{chunk-PMGFP7II.cjs.map → chunk-THQZFNHO.cjs.map} +1 -1
- package/dist/{chunk-CB3IBAR2.js → chunk-VQG4INIR.js} +5 -5
- package/dist/{chunk-CB3IBAR2.js.map → chunk-VQG4INIR.js.map} +1 -1
- package/dist/{chunk-JEFGF2F5.js → chunk-VYK2C6R3.js} +2 -2
- package/dist/chunk-VYK2C6R3.js.map +1 -0
- package/dist/{chunk-CRKVDQD7.js → chunk-XEH32VCJ.js} +3 -3
- package/dist/{chunk-CRKVDQD7.js.map → chunk-XEH32VCJ.js.map} +1 -1
- package/dist/{chunk-2ZGSDZ3H.cjs → chunk-XJ3NNQMH.cjs} +4 -4
- package/dist/{chunk-2ZGSDZ3H.cjs.map → chunk-XJ3NNQMH.cjs.map} +1 -1
- package/dist/{chunk-A6PTHCLA.js → chunk-YAURXFRL.js} +4 -4
- package/dist/{chunk-A6PTHCLA.js.map → chunk-YAURXFRL.js.map} +1 -1
- package/dist/{chunk-NHZNZF6Y.js → chunk-YCLZZVA2.js} +5 -5
- package/dist/{chunk-NHZNZF6Y.js.map → chunk-YCLZZVA2.js.map} +1 -1
- package/dist/{chunk-54K3Y5HC.js → chunk-YEQZMTCM.js} +3 -3
- package/dist/{chunk-54K3Y5HC.js.map → chunk-YEQZMTCM.js.map} +1 -1
- package/dist/{chunk-7IFWS7OK.js → chunk-ZKMXVDVF.js} +20 -19
- package/dist/chunk-ZKMXVDVF.js.map +1 -0
- package/dist/{dist-53MHW3NX.js → dist-F5OVWHJA.js} +3 -3
- package/dist/{dist-53MHW3NX.js.map → dist-F5OVWHJA.js.map} +1 -1
- package/dist/{dist-N3JU7LHJ.cjs → dist-LB6ETLLY.cjs} +4 -4
- package/dist/{dist-N3JU7LHJ.cjs.map → dist-LB6ETLLY.cjs.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-GAYCVM5R-DHBARU7H.cjs → observational-memory-E73XGPDT-JT3TMD3Y.cjs} +29 -29
- package/dist/{observational-memory-GAYCVM5R-DHBARU7H.cjs.map → observational-memory-E73XGPDT-JT3TMD3Y.cjs.map} +1 -1
- package/dist/{observational-memory-GAYCVM5R-47CI5MFB.js → observational-memory-E73XGPDT-ZSNLC7FW.js} +3 -3
- package/dist/{observational-memory-GAYCVM5R-47CI5MFB.js.map → observational-memory-E73XGPDT-ZSNLC7FW.js.map} +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +17 -17
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-controller.cjs +35 -35
- package/dist/server/handlers/agent-controller.d.ts +203 -82
- package/dist/server/handlers/agent-controller.d.ts.map +1 -1
- package/dist/server/handlers/agent-controller.js +1 -1
- package/dist/server/handlers/agents.cjs +51 -47
- package/dist/server/handlers/agents.d.ts +39 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +6 -6
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +4 -4
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/gateway-memory-client.cjs +8 -8
- package/dist/server/handlers/gateway-memory-client.d.ts +1 -1
- package/dist/server/handlers/gateway-memory-client.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
- package/dist/server/handlers/stored-agent-favorites.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +10 -10
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +27 -27
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +20 -20
- package/dist/server/handlers.js +10 -10
- package/dist/server/schemas/agents.d.ts +24 -0
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +73 -69
- package/dist/server/schemas/index.js +3 -3
- package/dist/server/server-adapter/index.cjs +13 -13
- package/dist/server/server-adapter/index.js +2 -2
- package/dist/server/server-adapter/routes/agents.d.ts +2 -1
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-3QVZXWIE.cjs.map +0 -1
- package/dist/chunk-3WGKJO34.js.map +0 -1
- package/dist/chunk-7IFWS7OK.js.map +0 -1
- package/dist/chunk-G3VJMWQN.cjs.map +0 -1
- package/dist/chunk-JEFGF2F5.js.map +0 -1
- package/dist/chunk-R3KUPFCO.js.map +0 -1
- package/dist/chunk-RU33KEP5.cjs.map +0 -1
- package/dist/chunk-SB3YYDCD.js.map +0 -1
- package/dist/chunk-VTA32BYJ.cjs.map +0 -1
- package/dist/chunk-ZQ4GVMYG.cjs.map +0 -1
|
@@ -13,15 +13,19 @@ function getAgentControllerOrThrow(mastra, controllerId) {
|
|
|
13
13
|
}
|
|
14
14
|
return controller;
|
|
15
15
|
}
|
|
16
|
-
async function getSession(controller, resourceId,
|
|
16
|
+
async function getSession(controller, resourceId, options) {
|
|
17
17
|
await controller.init();
|
|
18
|
-
|
|
18
|
+
const { tags, scope } = options ?? {};
|
|
19
|
+
const id = scope ? `${resourceId}::${scope}` : resourceId;
|
|
20
|
+
return controller.createSession({ resourceId, id, ownerId: controller.id, tags, scope });
|
|
19
21
|
}
|
|
20
22
|
var controllerIdPathParams = z.object({ controllerId: z.string() });
|
|
21
23
|
var sessionPathParams = z.object({ controllerId: z.string(), resourceId: z.string() });
|
|
24
|
+
var sessionScopeQuerySchema = z.object({ sessionScope: z.string().optional() });
|
|
22
25
|
var createSessionBodySchema = z.object({
|
|
23
26
|
resourceId: z.string(),
|
|
24
|
-
tags: z.record(z.string(), z.string()).optional()
|
|
27
|
+
tags: z.record(z.string(), z.string()).optional(),
|
|
28
|
+
sessionScope: z.string().optional()
|
|
25
29
|
});
|
|
26
30
|
var sendMessageBodySchema = z.object({ message: z.string() });
|
|
27
31
|
var steerBodySchema = z.object({ message: z.string() });
|
|
@@ -50,9 +54,10 @@ var cloneThreadBodySchema = z.object({
|
|
|
50
54
|
sourceThreadId: z.string().optional(),
|
|
51
55
|
title: z.string().optional()
|
|
52
56
|
});
|
|
53
|
-
var listMessagesQuerySchema = z.object({ limit: z.coerce.number().optional() });
|
|
57
|
+
var listMessagesQuerySchema = z.object({ limit: z.coerce.number().optional(), sessionScope: z.string().optional() });
|
|
54
58
|
var listThreadsQuerySchema = z.object({
|
|
55
59
|
limit: z.coerce.number().optional(),
|
|
60
|
+
sessionScope: z.string().optional(),
|
|
56
61
|
tags: z.preprocess((value) => {
|
|
57
62
|
if (typeof value !== "string" || value.length === 0) return void 0;
|
|
58
63
|
try {
|
|
@@ -109,6 +114,8 @@ var sessionStateResponseSchema = z.object({
|
|
|
109
114
|
threadId: z.string().optional(),
|
|
110
115
|
modeId: z.string(),
|
|
111
116
|
modelId: z.string(),
|
|
117
|
+
/** Whether the agent is currently executing a run (for initial UI hydration). */
|
|
118
|
+
running: z.boolean().optional(),
|
|
112
119
|
omProgress: omProgressSummarySchema.optional(),
|
|
113
120
|
tokenUsage: z.record(z.string(), z.unknown()).optional(),
|
|
114
121
|
settings: sessionSettingsSchema.optional()
|
|
@@ -123,7 +130,9 @@ var listThreadsResponseSchema = z.object({
|
|
|
123
130
|
title: z.string().optional(),
|
|
124
131
|
updatedAt: z.string().optional(),
|
|
125
132
|
/** The session scoping tags stamped on this thread (e.g. `{ projectPath }`). */
|
|
126
|
-
tags: z.record(z.string(), z.string()).optional()
|
|
133
|
+
tags: z.record(z.string(), z.string()).optional(),
|
|
134
|
+
/** Whether a run is currently executing on this thread ('active') or not ('idle'). */
|
|
135
|
+
state: z.enum(["active", "idle"]).optional()
|
|
127
136
|
})
|
|
128
137
|
)
|
|
129
138
|
});
|
|
@@ -213,10 +222,10 @@ var CREATE_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
213
222
|
tags: ["AgentController"],
|
|
214
223
|
requiresAuth: true,
|
|
215
224
|
requiresPermission: "agent-controller:execute",
|
|
216
|
-
handler: async ({ mastra, controllerId, resourceId, tags }) => {
|
|
225
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, tags }) => {
|
|
217
226
|
try {
|
|
218
227
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
219
|
-
const session = await getSession(controller, resourceId, tags);
|
|
228
|
+
const session = await getSession(controller, resourceId, { tags, scope: sessionScope });
|
|
220
229
|
return {
|
|
221
230
|
controllerId,
|
|
222
231
|
resourceId,
|
|
@@ -241,15 +250,16 @@ var STREAM_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
241
250
|
streamFormat: "sse",
|
|
242
251
|
sseFlushOnConnect: true,
|
|
243
252
|
pathParamSchema: sessionPathParams,
|
|
253
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
244
254
|
summary: "Stream controller session events",
|
|
245
255
|
description: "Subscribes to a session\u2019s event bus and streams events to the client over SSE.",
|
|
246
256
|
tags: ["AgentController", "Streaming"],
|
|
247
257
|
requiresAuth: true,
|
|
248
258
|
requiresPermission: "agent-controller:read",
|
|
249
|
-
handler: async ({ mastra, controllerId, resourceId, abortSignal }) => {
|
|
259
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, abortSignal }) => {
|
|
250
260
|
try {
|
|
251
261
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
252
|
-
const session = await getSession(controller, resourceId);
|
|
262
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
253
263
|
let cleanedUp = false;
|
|
254
264
|
let heartbeat;
|
|
255
265
|
let unsubscribe;
|
|
@@ -315,6 +325,7 @@ var SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({
|
|
|
315
325
|
path: "/agent-controller/:controllerId/sessions/:resourceId/messages",
|
|
316
326
|
responseType: "json",
|
|
317
327
|
pathParamSchema: sessionPathParams,
|
|
328
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
318
329
|
bodySchema: sendMessageBodySchema,
|
|
319
330
|
responseSchema: ackResponseSchema,
|
|
320
331
|
summary: "Send a message to a controller session",
|
|
@@ -322,10 +333,10 @@ var SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({
|
|
|
322
333
|
tags: ["AgentController", "Streaming"],
|
|
323
334
|
requiresAuth: true,
|
|
324
335
|
requiresPermission: "agent-controller:execute",
|
|
325
|
-
handler: async ({ mastra, controllerId, resourceId, message, requestContext }) => {
|
|
336
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, message, requestContext }) => {
|
|
326
337
|
try {
|
|
327
338
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
328
|
-
const session = await getSession(controller, resourceId);
|
|
339
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
329
340
|
void session.sendMessage({ content: message, requestContext });
|
|
330
341
|
return { ok: true };
|
|
331
342
|
} catch (error) {
|
|
@@ -338,16 +349,17 @@ var ABORT_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
338
349
|
path: "/agent-controller/:controllerId/sessions/:resourceId/abort",
|
|
339
350
|
responseType: "json",
|
|
340
351
|
pathParamSchema: sessionPathParams,
|
|
352
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
341
353
|
responseSchema: ackResponseSchema,
|
|
342
354
|
summary: "Abort a controller session run",
|
|
343
355
|
description: "Aborts the in-flight run for the session, if any.",
|
|
344
356
|
tags: ["AgentController"],
|
|
345
357
|
requiresAuth: true,
|
|
346
358
|
requiresPermission: "agent-controller:execute",
|
|
347
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
359
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
348
360
|
try {
|
|
349
361
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
350
|
-
const session = await getSession(controller, resourceId);
|
|
362
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
351
363
|
session.abort();
|
|
352
364
|
return { ok: true };
|
|
353
365
|
} catch (error) {
|
|
@@ -360,6 +372,7 @@ var AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
|
360
372
|
path: "/agent-controller/:controllerId/sessions/:resourceId/tool-approval",
|
|
361
373
|
responseType: "json",
|
|
362
374
|
pathParamSchema: sessionPathParams,
|
|
375
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
363
376
|
bodySchema: toolApprovalBodySchema,
|
|
364
377
|
responseSchema: ackResponseSchema,
|
|
365
378
|
summary: "Respond to a controller tool approval",
|
|
@@ -367,10 +380,10 @@ var AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
|
367
380
|
tags: ["AgentController"],
|
|
368
381
|
requiresAuth: true,
|
|
369
382
|
requiresPermission: "agent-controller:execute",
|
|
370
|
-
handler: async ({ mastra, controllerId, resourceId, toolCallId, approved, requestContext }) => {
|
|
383
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, toolCallId, approved, requestContext }) => {
|
|
371
384
|
try {
|
|
372
385
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
373
|
-
const session = await getSession(controller, resourceId);
|
|
386
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
374
387
|
session.respondToToolApproval({ toolCallId, decision: approved ? "approve" : "decline", requestContext });
|
|
375
388
|
return { ok: true };
|
|
376
389
|
} catch (error) {
|
|
@@ -383,6 +396,7 @@ var AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({
|
|
|
383
396
|
path: "/agent-controller/:controllerId/sessions/:resourceId/tool-suspension",
|
|
384
397
|
responseType: "json",
|
|
385
398
|
pathParamSchema: sessionPathParams,
|
|
399
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
386
400
|
bodySchema: toolSuspensionBodySchema,
|
|
387
401
|
responseSchema: ackResponseSchema,
|
|
388
402
|
summary: "Respond to a suspended controller tool",
|
|
@@ -390,10 +404,10 @@ var AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({
|
|
|
390
404
|
tags: ["AgentController"],
|
|
391
405
|
requiresAuth: true,
|
|
392
406
|
requiresPermission: "agent-controller:execute",
|
|
393
|
-
handler: async ({ mastra, controllerId, resourceId, toolCallId, resumeData, requestContext }) => {
|
|
407
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, toolCallId, resumeData, requestContext }) => {
|
|
394
408
|
try {
|
|
395
409
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
396
|
-
const session = await getSession(controller, resourceId);
|
|
410
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
397
411
|
await session.respondToToolSuspension({ toolCallId, resumeData, requestContext });
|
|
398
412
|
return { ok: true };
|
|
399
413
|
} catch (error) {
|
|
@@ -406,6 +420,7 @@ var STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
406
420
|
path: "/agent-controller/:controllerId/sessions/:resourceId/steer",
|
|
407
421
|
responseType: "json",
|
|
408
422
|
pathParamSchema: sessionPathParams,
|
|
423
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
409
424
|
bodySchema: steerBodySchema,
|
|
410
425
|
responseSchema: ackResponseSchema,
|
|
411
426
|
summary: "Steer the in-flight run",
|
|
@@ -413,10 +428,10 @@ var STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
413
428
|
tags: ["AgentController"],
|
|
414
429
|
requiresAuth: true,
|
|
415
430
|
requiresPermission: "agent-controller:execute",
|
|
416
|
-
handler: async ({ mastra, controllerId, resourceId, message, requestContext }) => {
|
|
431
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, message, requestContext }) => {
|
|
417
432
|
try {
|
|
418
433
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
419
|
-
const session = await getSession(controller, resourceId);
|
|
434
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
420
435
|
void session.steer({ content: message, requestContext });
|
|
421
436
|
return { ok: true };
|
|
422
437
|
} catch (error) {
|
|
@@ -429,6 +444,7 @@ var SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({
|
|
|
429
444
|
path: "/agent-controller/:controllerId/sessions/:resourceId/mode",
|
|
430
445
|
responseType: "json",
|
|
431
446
|
pathParamSchema: sessionPathParams,
|
|
447
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
432
448
|
bodySchema: switchModeBodySchema,
|
|
433
449
|
responseSchema: ackResponseSchema,
|
|
434
450
|
summary: "Switch the session mode",
|
|
@@ -436,10 +452,10 @@ var SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({
|
|
|
436
452
|
tags: ["AgentController"],
|
|
437
453
|
requiresAuth: true,
|
|
438
454
|
requiresPermission: "agent-controller:execute",
|
|
439
|
-
handler: async ({ mastra, controllerId, resourceId, modeId }) => {
|
|
455
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, modeId }) => {
|
|
440
456
|
try {
|
|
441
457
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
442
|
-
const session = await getSession(controller, resourceId);
|
|
458
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
443
459
|
await session.mode.switch({ modeId });
|
|
444
460
|
return { ok: true };
|
|
445
461
|
} catch (error) {
|
|
@@ -452,6 +468,7 @@ var SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({
|
|
|
452
468
|
path: "/agent-controller/:controllerId/sessions/:resourceId/model",
|
|
453
469
|
responseType: "json",
|
|
454
470
|
pathParamSchema: sessionPathParams,
|
|
471
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
455
472
|
bodySchema: switchModelBodySchema,
|
|
456
473
|
responseSchema: ackResponseSchema,
|
|
457
474
|
summary: "Switch the session model",
|
|
@@ -459,10 +476,10 @@ var SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({
|
|
|
459
476
|
tags: ["AgentController"],
|
|
460
477
|
requiresAuth: true,
|
|
461
478
|
requiresPermission: "agent-controller:execute",
|
|
462
|
-
handler: async ({ mastra, controllerId, resourceId, modelId, scope, modeId }) => {
|
|
479
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, modelId, scope, modeId }) => {
|
|
463
480
|
try {
|
|
464
481
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
465
|
-
const session = await getSession(controller, resourceId);
|
|
482
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
466
483
|
await session.model.switch({ modelId, scope, modeId });
|
|
467
484
|
return { ok: true };
|
|
468
485
|
} catch (error) {
|
|
@@ -475,6 +492,7 @@ var SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
475
492
|
path: "/agent-controller/:controllerId/sessions/:resourceId/thread",
|
|
476
493
|
responseType: "json",
|
|
477
494
|
pathParamSchema: sessionPathParams,
|
|
495
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
478
496
|
bodySchema: switchThreadBodySchema,
|
|
479
497
|
responseSchema: ackResponseSchema,
|
|
480
498
|
summary: "Switch the session thread",
|
|
@@ -482,10 +500,10 @@ var SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
482
500
|
tags: ["AgentController"],
|
|
483
501
|
requiresAuth: true,
|
|
484
502
|
requiresPermission: "agent-controller:execute",
|
|
485
|
-
handler: async ({ mastra, controllerId, resourceId, threadId }) => {
|
|
503
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, threadId }) => {
|
|
486
504
|
try {
|
|
487
505
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
488
|
-
const session = await getSession(controller, resourceId);
|
|
506
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
489
507
|
await session.thread.switch({ threadId });
|
|
490
508
|
return { ok: true };
|
|
491
509
|
} catch (error) {
|
|
@@ -498,16 +516,17 @@ var GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
498
516
|
path: "/agent-controller/:controllerId/sessions/:resourceId",
|
|
499
517
|
responseType: "json",
|
|
500
518
|
pathParamSchema: sessionPathParams,
|
|
519
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
501
520
|
responseSchema: sessionStateResponseSchema,
|
|
502
521
|
summary: "Get session state",
|
|
503
522
|
description: "Returns the current mode, model, and thread for the session (for initial UI hydration).",
|
|
504
523
|
tags: ["AgentController"],
|
|
505
524
|
requiresAuth: true,
|
|
506
525
|
requiresPermission: "agent-controller:read",
|
|
507
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
526
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
508
527
|
try {
|
|
509
528
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
510
|
-
const session = await getSession(controller, resourceId);
|
|
529
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
511
530
|
const ds = session.displayState.get();
|
|
512
531
|
const om = ds.omProgress;
|
|
513
532
|
const reflectionSavings = om.buffered.reflection.inputObservationTokens - om.buffered.reflection.observationTokens;
|
|
@@ -519,6 +538,7 @@ var GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
519
538
|
threadId: session.thread.getId() ?? void 0,
|
|
520
539
|
modeId: session.mode.get(),
|
|
521
540
|
modelId: session.model.get(),
|
|
541
|
+
running: ds.isRunning === true,
|
|
522
542
|
omProgress: {
|
|
523
543
|
status: om.status,
|
|
524
544
|
pendingTokens: om.pendingTokens,
|
|
@@ -577,10 +597,10 @@ var LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({
|
|
|
577
597
|
tags: ["AgentController"],
|
|
578
598
|
requiresAuth: true,
|
|
579
599
|
requiresPermission: "agent-controller:read",
|
|
580
|
-
handler: async ({ mastra, controllerId, resourceId, limit, tags }) => {
|
|
600
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, limit, tags }) => {
|
|
581
601
|
try {
|
|
582
602
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
583
|
-
const session = await getSession(controller, resourceId);
|
|
603
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
584
604
|
const threads = await session.thread.list();
|
|
585
605
|
const getTags = (t) => {
|
|
586
606
|
const metadata = t.metadata ?? {};
|
|
@@ -599,6 +619,7 @@ var LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({
|
|
|
599
619
|
const sorted = [...scoped].sort((a, b) => toTime(b) - toTime(a));
|
|
600
620
|
const max = Number(limit);
|
|
601
621
|
const limited = Number.isFinite(max) && max > 0 ? sorted.slice(0, max) : sorted;
|
|
622
|
+
const agent = controller.getCurrentAgent(session);
|
|
602
623
|
return {
|
|
603
624
|
threads: limited.map((t) => {
|
|
604
625
|
const threadTags = getTags(t);
|
|
@@ -606,7 +627,8 @@ var LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({
|
|
|
606
627
|
id: t.id,
|
|
607
628
|
title: t.title,
|
|
608
629
|
tags: Object.keys(threadTags).length > 0 ? threadTags : void 0,
|
|
609
|
-
updatedAt: t.updatedAt instanceof Date ? t.updatedAt.toISOString() : void 0
|
|
630
|
+
updatedAt: t.updatedAt instanceof Date ? t.updatedAt.toISOString() : void 0,
|
|
631
|
+
state: agent.getActiveThreadRunId({ resourceId, threadId: t.id }) ? "active" : "idle"
|
|
610
632
|
};
|
|
611
633
|
})
|
|
612
634
|
};
|
|
@@ -620,6 +642,7 @@ var SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
|
620
642
|
path: "/agent-controller/:controllerId/sessions/:resourceId/notifications",
|
|
621
643
|
responseType: "json",
|
|
622
644
|
pathParamSchema: sessionPathParams,
|
|
645
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
623
646
|
bodySchema: sendNotificationBodySchema,
|
|
624
647
|
responseSchema: z.object({
|
|
625
648
|
accepted: z.boolean(),
|
|
@@ -636,6 +659,7 @@ var SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
|
636
659
|
mastra,
|
|
637
660
|
controllerId,
|
|
638
661
|
resourceId,
|
|
662
|
+
sessionScope,
|
|
639
663
|
source,
|
|
640
664
|
kind,
|
|
641
665
|
summary,
|
|
@@ -649,7 +673,7 @@ var SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
|
649
673
|
}) => {
|
|
650
674
|
try {
|
|
651
675
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
652
|
-
const session = await getSession(controller, resourceId);
|
|
676
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
653
677
|
const result = await session.sendNotificationSignal({
|
|
654
678
|
source,
|
|
655
679
|
kind,
|
|
@@ -678,6 +702,7 @@ var CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
678
702
|
path: "/agent-controller/:controllerId/sessions/:resourceId/threads",
|
|
679
703
|
responseType: "json",
|
|
680
704
|
pathParamSchema: sessionPathParams,
|
|
705
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
681
706
|
bodySchema: createThreadBodySchema,
|
|
682
707
|
responseSchema: threadResponseSchema,
|
|
683
708
|
summary: "Create a new thread",
|
|
@@ -685,10 +710,10 @@ var CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
685
710
|
tags: ["AgentController", "Threads"],
|
|
686
711
|
requiresAuth: true,
|
|
687
712
|
requiresPermission: "agent-controller:execute",
|
|
688
|
-
handler: async ({ mastra, controllerId, resourceId, title }) => {
|
|
713
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, title }) => {
|
|
689
714
|
try {
|
|
690
715
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
691
|
-
const session = await getSession(controller, resourceId);
|
|
716
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
692
717
|
const thread = await session.thread.create({ title });
|
|
693
718
|
return {
|
|
694
719
|
id: thread.id,
|
|
@@ -707,16 +732,17 @@ var DELETE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
707
732
|
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId",
|
|
708
733
|
responseType: "json",
|
|
709
734
|
pathParamSchema: threadPathParams,
|
|
735
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
710
736
|
responseSchema: ackResponseSchema,
|
|
711
737
|
summary: "Delete a thread",
|
|
712
738
|
description: "Deletes a thread. If the deleted thread is the active one, the session is unbound.",
|
|
713
739
|
tags: ["AgentController", "Threads"],
|
|
714
740
|
requiresAuth: true,
|
|
715
741
|
requiresPermission: "agent-controller:execute",
|
|
716
|
-
handler: async ({ mastra, controllerId, resourceId, threadId }) => {
|
|
742
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, threadId }) => {
|
|
717
743
|
try {
|
|
718
744
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
719
|
-
const session = await getSession(controller, resourceId);
|
|
745
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
720
746
|
await session.thread.delete({ threadId });
|
|
721
747
|
return { ok: true };
|
|
722
748
|
} catch (error) {
|
|
@@ -729,6 +755,7 @@ var RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
729
755
|
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId",
|
|
730
756
|
responseType: "json",
|
|
731
757
|
pathParamSchema: threadPathParams,
|
|
758
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
732
759
|
bodySchema: renameThreadBodySchema,
|
|
733
760
|
responseSchema: ackResponseSchema,
|
|
734
761
|
summary: "Rename a thread",
|
|
@@ -736,10 +763,10 @@ var RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
736
763
|
tags: ["AgentController", "Threads"],
|
|
737
764
|
requiresAuth: true,
|
|
738
765
|
requiresPermission: "agent-controller:execute",
|
|
739
|
-
handler: async ({ mastra, controllerId, resourceId, threadId, title }) => {
|
|
766
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, threadId, title }) => {
|
|
740
767
|
try {
|
|
741
768
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
742
|
-
const session = await getSession(controller, resourceId);
|
|
769
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
743
770
|
if (session.thread.getId() !== threadId) {
|
|
744
771
|
await session.thread.switch({ threadId });
|
|
745
772
|
}
|
|
@@ -755,6 +782,7 @@ var CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
755
782
|
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/clone",
|
|
756
783
|
responseType: "json",
|
|
757
784
|
pathParamSchema: sessionPathParams,
|
|
785
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
758
786
|
bodySchema: cloneThreadBodySchema,
|
|
759
787
|
responseSchema: threadResponseSchema,
|
|
760
788
|
summary: "Clone a thread",
|
|
@@ -762,10 +790,10 @@ var CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
762
790
|
tags: ["AgentController", "Threads"],
|
|
763
791
|
requiresAuth: true,
|
|
764
792
|
requiresPermission: "agent-controller:execute",
|
|
765
|
-
handler: async ({ mastra, controllerId, resourceId, sourceThreadId, title }) => {
|
|
793
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, sourceThreadId, title }) => {
|
|
766
794
|
try {
|
|
767
795
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
768
|
-
const session = await getSession(controller, resourceId);
|
|
796
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
769
797
|
const thread = await session.thread.clone({ sourceThreadId, title });
|
|
770
798
|
return {
|
|
771
799
|
id: thread.id,
|
|
@@ -791,10 +819,10 @@ var LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({
|
|
|
791
819
|
tags: ["AgentController", "Threads"],
|
|
792
820
|
requiresAuth: true,
|
|
793
821
|
requiresPermission: "agent-controller:read",
|
|
794
|
-
handler: async ({ mastra, controllerId, resourceId, threadId, limit }) => {
|
|
822
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, threadId, limit }) => {
|
|
795
823
|
try {
|
|
796
824
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
797
|
-
const session = await getSession(controller, resourceId);
|
|
825
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
798
826
|
const messages = await session.thread.listMessages({ threadId, limit });
|
|
799
827
|
return {
|
|
800
828
|
messages: messages.map((m) => ({
|
|
@@ -814,6 +842,7 @@ var FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
814
842
|
path: "/agent-controller/:controllerId/sessions/:resourceId/follow-up",
|
|
815
843
|
responseType: "json",
|
|
816
844
|
pathParamSchema: sessionPathParams,
|
|
845
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
817
846
|
bodySchema: followUpBodySchema,
|
|
818
847
|
responseSchema: ackResponseSchema,
|
|
819
848
|
summary: "Queue a follow-up message",
|
|
@@ -821,10 +850,10 @@ var FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
821
850
|
tags: ["AgentController"],
|
|
822
851
|
requiresAuth: true,
|
|
823
852
|
requiresPermission: "agent-controller:execute",
|
|
824
|
-
handler: async ({ mastra, controllerId, resourceId, message, requestContext }) => {
|
|
853
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, message, requestContext }) => {
|
|
825
854
|
try {
|
|
826
855
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
827
|
-
const session = await getSession(controller, resourceId);
|
|
856
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
828
857
|
void session.followUp({ content: message, requestContext });
|
|
829
858
|
return { ok: true };
|
|
830
859
|
} catch (error) {
|
|
@@ -891,16 +920,17 @@ var GET_AGENT_CONTROLLER_OM_RECORD_ROUTE = createRoute({
|
|
|
891
920
|
path: "/agent-controller/:controllerId/sessions/:resourceId/om",
|
|
892
921
|
responseType: "json",
|
|
893
922
|
pathParamSchema: sessionPathParams,
|
|
923
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
894
924
|
responseSchema: omRecordResponseSchema,
|
|
895
925
|
summary: "Get observational memory record",
|
|
896
926
|
description: "Returns the current observational memory record for the session\u2019s thread/resource.",
|
|
897
927
|
tags: ["AgentController"],
|
|
898
928
|
requiresAuth: true,
|
|
899
929
|
requiresPermission: "agent-controller:read",
|
|
900
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
930
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
901
931
|
try {
|
|
902
932
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
903
|
-
const session = await getSession(controller, resourceId);
|
|
933
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
904
934
|
const record = await controller.getObservationalMemoryRecord(session);
|
|
905
935
|
return { record: record ?? void 0 };
|
|
906
936
|
} catch (error) {
|
|
@@ -913,6 +943,7 @@ var SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({
|
|
|
913
943
|
path: "/agent-controller/:controllerId/sessions/:resourceId/resource",
|
|
914
944
|
responseType: "json",
|
|
915
945
|
pathParamSchema: sessionPathParams,
|
|
946
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
916
947
|
bodySchema: z.object({ newResourceId: z.string() }),
|
|
917
948
|
responseSchema: ackResponseSchema,
|
|
918
949
|
summary: "Change the session resource ID",
|
|
@@ -920,10 +951,10 @@ var SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({
|
|
|
920
951
|
tags: ["AgentController"],
|
|
921
952
|
requiresAuth: true,
|
|
922
953
|
requiresPermission: "agent-controller:execute",
|
|
923
|
-
handler: async ({ mastra, controllerId, resourceId, newResourceId }) => {
|
|
954
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, newResourceId }) => {
|
|
924
955
|
try {
|
|
925
956
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
926
|
-
const session = await getSession(controller, resourceId);
|
|
957
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
927
958
|
await controller.setResourceId(session, { resourceId: newResourceId });
|
|
928
959
|
return { ok: true };
|
|
929
960
|
} catch (error) {
|
|
@@ -936,16 +967,17 @@ var GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE = createRoute({
|
|
|
936
967
|
path: "/agent-controller/:controllerId/sessions/:resourceId/resources",
|
|
937
968
|
responseType: "json",
|
|
938
969
|
pathParamSchema: sessionPathParams,
|
|
970
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
939
971
|
responseSchema: z.object({ resourceIds: z.array(z.string()) }),
|
|
940
972
|
summary: "Get known resource IDs",
|
|
941
973
|
description: "Lists the resource IDs known to this session (from threads).",
|
|
942
974
|
tags: ["AgentController"],
|
|
943
975
|
requiresAuth: true,
|
|
944
976
|
requiresPermission: "agent-controller:read",
|
|
945
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
977
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
946
978
|
try {
|
|
947
979
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
948
|
-
const session = await getSession(controller, resourceId);
|
|
980
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
949
981
|
const resourceIds = await controller.getKnownResourceIds(session);
|
|
950
982
|
return { resourceIds };
|
|
951
983
|
} catch (error) {
|
|
@@ -983,16 +1015,17 @@ var GET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
983
1015
|
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
984
1016
|
responseType: "json",
|
|
985
1017
|
pathParamSchema: sessionPathParams,
|
|
1018
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
986
1019
|
responseSchema: goalResponseSchema,
|
|
987
1020
|
summary: "Get the current goal",
|
|
988
1021
|
description: "Returns the active/paused/done goal objective for the session\u2019s thread, if any.",
|
|
989
1022
|
tags: ["AgentController", "Goals"],
|
|
990
1023
|
requiresAuth: true,
|
|
991
1024
|
requiresPermission: "agent-controller:read",
|
|
992
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
1025
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
993
1026
|
try {
|
|
994
1027
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
995
|
-
const session = await getSession(controller, resourceId);
|
|
1028
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
996
1029
|
const threadId = session.thread.getId();
|
|
997
1030
|
if (!threadId) return { goal: void 0 };
|
|
998
1031
|
const agent = getAgentForSession(controller, session);
|
|
@@ -1008,6 +1041,7 @@ var SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1008
1041
|
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
1009
1042
|
responseType: "json",
|
|
1010
1043
|
pathParamSchema: sessionPathParams,
|
|
1044
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1011
1045
|
bodySchema: setGoalBodySchema,
|
|
1012
1046
|
responseSchema: goalResponseSchema,
|
|
1013
1047
|
summary: "Set a goal",
|
|
@@ -1015,10 +1049,10 @@ var SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1015
1049
|
tags: ["AgentController", "Goals"],
|
|
1016
1050
|
requiresAuth: true,
|
|
1017
1051
|
requiresPermission: "agent-controller:execute",
|
|
1018
|
-
handler: async ({ mastra, controllerId, resourceId, objective, judgeModelId, maxRuns }) => {
|
|
1052
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, objective, judgeModelId, maxRuns }) => {
|
|
1019
1053
|
try {
|
|
1020
1054
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1021
|
-
const session = await getSession(controller, resourceId);
|
|
1055
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1022
1056
|
const threadId = session.thread.getId();
|
|
1023
1057
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1024
1058
|
const agent = getAgentForSession(controller, session);
|
|
@@ -1039,6 +1073,7 @@ var UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1039
1073
|
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
1040
1074
|
responseType: "json",
|
|
1041
1075
|
pathParamSchema: sessionPathParams,
|
|
1076
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1042
1077
|
bodySchema: updateGoalBodySchema,
|
|
1043
1078
|
responseSchema: goalResponseSchema,
|
|
1044
1079
|
summary: "Update goal options",
|
|
@@ -1046,10 +1081,10 @@ var UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1046
1081
|
tags: ["AgentController", "Goals"],
|
|
1047
1082
|
requiresAuth: true,
|
|
1048
1083
|
requiresPermission: "agent-controller:execute",
|
|
1049
|
-
handler: async ({ mastra, controllerId, resourceId, judgeModelId, maxRuns, status }) => {
|
|
1084
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, judgeModelId, maxRuns, status }) => {
|
|
1050
1085
|
try {
|
|
1051
1086
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1052
|
-
const session = await getSession(controller, resourceId);
|
|
1087
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1053
1088
|
const threadId = session.thread.getId();
|
|
1054
1089
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1055
1090
|
const agent = getAgentForSession(controller, session);
|
|
@@ -1070,16 +1105,17 @@ var CLEAR_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1070
1105
|
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
1071
1106
|
responseType: "json",
|
|
1072
1107
|
pathParamSchema: sessionPathParams,
|
|
1108
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1073
1109
|
responseSchema: ackResponseSchema,
|
|
1074
1110
|
summary: "Clear the goal",
|
|
1075
1111
|
description: "Removes the active goal from the session\u2019s thread.",
|
|
1076
1112
|
tags: ["AgentController", "Goals"],
|
|
1077
1113
|
requiresAuth: true,
|
|
1078
1114
|
requiresPermission: "agent-controller:execute",
|
|
1079
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
1115
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
1080
1116
|
try {
|
|
1081
1117
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1082
|
-
const session = await getSession(controller, resourceId);
|
|
1118
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1083
1119
|
const threadId = session.thread.getId();
|
|
1084
1120
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1085
1121
|
const agent = getAgentForSession(controller, session);
|
|
@@ -1095,16 +1131,17 @@ var GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE = createRoute({
|
|
|
1095
1131
|
path: "/agent-controller/:controllerId/sessions/:resourceId/permissions",
|
|
1096
1132
|
responseType: "json",
|
|
1097
1133
|
pathParamSchema: sessionPathParams,
|
|
1134
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1098
1135
|
responseSchema: permissionRulesResponseSchema,
|
|
1099
1136
|
summary: "Get permission rules",
|
|
1100
1137
|
description: "Returns the current permission rules (per-category and per-tool policies) for the session.",
|
|
1101
1138
|
tags: ["AgentController", "Permissions"],
|
|
1102
1139
|
requiresAuth: true,
|
|
1103
1140
|
requiresPermission: "agent-controller:read",
|
|
1104
|
-
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
1141
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope }) => {
|
|
1105
1142
|
try {
|
|
1106
1143
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1107
|
-
const session = await getSession(controller, resourceId);
|
|
1144
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1108
1145
|
const rules = session.permissions.getRules();
|
|
1109
1146
|
return {
|
|
1110
1147
|
categories: rules.categories,
|
|
@@ -1120,6 +1157,7 @@ var SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({
|
|
|
1120
1157
|
path: "/agent-controller/:controllerId/sessions/:resourceId/permissions/category",
|
|
1121
1158
|
responseType: "json",
|
|
1122
1159
|
pathParamSchema: sessionPathParams,
|
|
1160
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1123
1161
|
bodySchema: setCategoryPermissionBodySchema,
|
|
1124
1162
|
responseSchema: ackResponseSchema,
|
|
1125
1163
|
summary: "Set permission for a tool category",
|
|
@@ -1127,10 +1165,10 @@ var SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({
|
|
|
1127
1165
|
tags: ["AgentController", "Permissions"],
|
|
1128
1166
|
requiresAuth: true,
|
|
1129
1167
|
requiresPermission: "agent-controller:execute",
|
|
1130
|
-
handler: async ({ mastra, controllerId, resourceId, category, policy }) => {
|
|
1168
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, category, policy }) => {
|
|
1131
1169
|
try {
|
|
1132
1170
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1133
|
-
const session = await getSession(controller, resourceId);
|
|
1171
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1134
1172
|
await session.permissions.setForCategory({ category, policy });
|
|
1135
1173
|
return { ok: true };
|
|
1136
1174
|
} catch (error) {
|
|
@@ -1143,6 +1181,7 @@ var SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({
|
|
|
1143
1181
|
path: "/agent-controller/:controllerId/sessions/:resourceId/permissions/tool",
|
|
1144
1182
|
responseType: "json",
|
|
1145
1183
|
pathParamSchema: sessionPathParams,
|
|
1184
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1146
1185
|
bodySchema: setToolPermissionBodySchema,
|
|
1147
1186
|
responseSchema: ackResponseSchema,
|
|
1148
1187
|
summary: "Set permission for a specific tool",
|
|
@@ -1150,10 +1189,10 @@ var SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({
|
|
|
1150
1189
|
tags: ["AgentController", "Permissions"],
|
|
1151
1190
|
requiresAuth: true,
|
|
1152
1191
|
requiresPermission: "agent-controller:execute",
|
|
1153
|
-
handler: async ({ mastra, controllerId, resourceId, toolName, policy }) => {
|
|
1192
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, toolName, policy }) => {
|
|
1154
1193
|
try {
|
|
1155
1194
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1156
|
-
const session = await getSession(controller, resourceId);
|
|
1195
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1157
1196
|
await session.permissions.setForTool({ toolName, policy });
|
|
1158
1197
|
return { ok: true };
|
|
1159
1198
|
} catch (error) {
|
|
@@ -1167,6 +1206,7 @@ var SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
1167
1206
|
path: "/agent-controller/:controllerId/sessions/:resourceId/state",
|
|
1168
1207
|
responseType: "json",
|
|
1169
1208
|
pathParamSchema: sessionPathParams,
|
|
1209
|
+
queryParamSchema: sessionScopeQuerySchema,
|
|
1170
1210
|
bodySchema: setSessionStateBodySchema,
|
|
1171
1211
|
responseSchema: ackResponseSchema,
|
|
1172
1212
|
summary: "Set session state",
|
|
@@ -1174,10 +1214,10 @@ var SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
1174
1214
|
tags: ["AgentController"],
|
|
1175
1215
|
requiresAuth: true,
|
|
1176
1216
|
requiresPermission: "agent-controller:execute",
|
|
1177
|
-
handler: async ({ mastra, controllerId, resourceId, state }) => {
|
|
1217
|
+
handler: async ({ mastra, controllerId, resourceId, sessionScope, state }) => {
|
|
1178
1218
|
try {
|
|
1179
1219
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1180
|
-
const session = await getSession(controller, resourceId);
|
|
1220
|
+
const session = await getSession(controller, resourceId, { scope: sessionScope });
|
|
1181
1221
|
await session.state.set(state);
|
|
1182
1222
|
return { ok: true };
|
|
1183
1223
|
} catch (error) {
|
|
@@ -1187,5 +1227,5 @@ var SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
1187
1227
|
});
|
|
1188
1228
|
|
|
1189
1229
|
export { ABORT_AGENT_CONTROLLER_SESSION_ROUTE, AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE, AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE, CLEAR_AGENT_CONTROLLER_GOAL_ROUTE, CLONE_AGENT_CONTROLLER_THREAD_ROUTE, CREATE_AGENT_CONTROLLER_SESSION_ROUTE, CREATE_AGENT_CONTROLLER_THREAD_ROUTE, DELETE_AGENT_CONTROLLER_THREAD_ROUTE, FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE, GET_AGENT_CONTROLLER_GOAL_ROUTE, GET_AGENT_CONTROLLER_OM_RECORD_ROUTE, GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE, GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE, GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE, GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE, LIST_AGENT_CONTROLLERS_ROUTE, LIST_AGENT_CONTROLLER_MODELS_ROUTE, LIST_AGENT_CONTROLLER_MODES_ROUTE, LIST_AGENT_CONTROLLER_THREADS_ROUTE, LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE, RENAME_AGENT_CONTROLLER_THREAD_ROUTE, SEND_AGENT_CONTROLLER_MESSAGE_ROUTE, SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE, SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE, SET_AGENT_CONTROLLER_GOAL_ROUTE, SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE, SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE, SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE, STEER_AGENT_CONTROLLER_SESSION_ROUTE, STREAM_AGENT_CONTROLLER_SESSION_ROUTE, SWITCH_AGENT_CONTROLLER_MODEL_ROUTE, SWITCH_AGENT_CONTROLLER_MODE_ROUTE, SWITCH_AGENT_CONTROLLER_THREAD_ROUTE, UPDATE_AGENT_CONTROLLER_GOAL_ROUTE };
|
|
1190
|
-
//# sourceMappingURL=chunk-
|
|
1191
|
-
//# sourceMappingURL=chunk-
|
|
1230
|
+
//# sourceMappingURL=chunk-STNV4TYH.js.map
|
|
1231
|
+
//# sourceMappingURL=chunk-STNV4TYH.js.map
|