@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.
Files changed (175) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/{api-schema-manifest-AYK5QEZV.cjs → api-schema-manifest-DE2A4RUM.cjs} +4 -4
  3. package/dist/{api-schema-manifest-AYK5QEZV.cjs.map → api-schema-manifest-DE2A4RUM.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-K3NKXMAN.js → api-schema-manifest-ZBRJBFSL.js} +3 -3
  5. package/dist/{api-schema-manifest-K3NKXMAN.js.map → api-schema-manifest-ZBRJBFSL.js.map} +1 -1
  6. package/dist/{chunk-AJO6UQR2.cjs → chunk-23RSJYON.cjs} +26 -26
  7. package/dist/{chunk-AJO6UQR2.cjs.map → chunk-23RSJYON.cjs.map} +1 -1
  8. package/dist/{chunk-R3KUPFCO.js → chunk-256OPP7S.js} +14 -3
  9. package/dist/chunk-256OPP7S.js.map +1 -0
  10. package/dist/{chunk-MFFWRRHW.cjs → chunk-2QKDMZ5B.cjs} +7 -7
  11. package/dist/{chunk-MFFWRRHW.cjs.map → chunk-2QKDMZ5B.cjs.map} +1 -1
  12. package/dist/{chunk-3WGKJO34.js → chunk-2ZMOUXUF.js} +58 -5
  13. package/dist/chunk-2ZMOUXUF.js.map +1 -0
  14. package/dist/{chunk-G5WHRGK2.cjs → chunk-5CUCN4QC.cjs} +11 -11
  15. package/dist/{chunk-G5WHRGK2.cjs.map → chunk-5CUCN4QC.cjs.map} +1 -1
  16. package/dist/{chunk-5QIG5OD3.js → chunk-5IMX5NM3.js} +3 -3
  17. package/dist/{chunk-5QIG5OD3.js.map → chunk-5IMX5NM3.js.map} +1 -1
  18. package/dist/{chunk-JIH32DPY.js → chunk-67Y5VZH2.js} +3 -3
  19. package/dist/{chunk-JIH32DPY.js.map → chunk-67Y5VZH2.js.map} +1 -1
  20. package/dist/{chunk-VBPYR5ZH.cjs → chunk-7MQRMIVN.cjs} +4 -4
  21. package/dist/{chunk-VBPYR5ZH.cjs.map → chunk-7MQRMIVN.cjs.map} +1 -1
  22. package/dist/{chunk-LQZHT5U7.js → chunk-AGMARPDG.js} +3 -3
  23. package/dist/{chunk-LQZHT5U7.js.map → chunk-AGMARPDG.js.map} +1 -1
  24. package/dist/{chunk-4NAFUTJI.cjs → chunk-AHFEQVIO.cjs} +38 -38
  25. package/dist/{chunk-4NAFUTJI.cjs.map → chunk-AHFEQVIO.cjs.map} +1 -1
  26. package/dist/{chunk-35K3VDUZ.js → chunk-AMLYUMNH.js} +3 -3
  27. package/dist/{chunk-35K3VDUZ.js.map → chunk-AMLYUMNH.js.map} +1 -1
  28. package/dist/{chunk-CNI2ZL6H.cjs → chunk-CIR74QPG.cjs} +5 -5
  29. package/dist/{chunk-CNI2ZL6H.cjs.map → chunk-CIR74QPG.cjs.map} +1 -1
  30. package/dist/{chunk-Y6B34UCS.js → chunk-CQKT2IEY.js} +4 -4
  31. package/dist/{chunk-Y6B34UCS.js.map → chunk-CQKT2IEY.js.map} +1 -1
  32. package/dist/{chunk-MEF3G22I.cjs → chunk-CQMRVXYZ.cjs} +12 -12
  33. package/dist/{chunk-MEF3G22I.cjs.map → chunk-CQMRVXYZ.cjs.map} +1 -1
  34. package/dist/{chunk-VTA32BYJ.cjs → chunk-D43AYAW2.cjs} +107 -67
  35. package/dist/chunk-D43AYAW2.cjs.map +1 -0
  36. package/dist/{chunk-GQPRLS76.js → chunk-DBJ72M3L.js} +3 -3
  37. package/dist/{chunk-GQPRLS76.js.map → chunk-DBJ72M3L.js.map} +1 -1
  38. package/dist/{chunk-2NQNVUCA.cjs → chunk-EXP66755.cjs} +4 -4
  39. package/dist/{chunk-2NQNVUCA.cjs.map → chunk-EXP66755.cjs.map} +1 -1
  40. package/dist/{chunk-SAIG7RGY.cjs → chunk-FEUCP6F3.cjs} +4 -4
  41. package/dist/{chunk-SAIG7RGY.cjs.map → chunk-FEUCP6F3.cjs.map} +1 -1
  42. package/dist/{chunk-DRY2IIQ4.js → chunk-GJPUTFUV.js} +4 -4
  43. package/dist/{chunk-DRY2IIQ4.js.map → chunk-GJPUTFUV.js.map} +1 -1
  44. package/dist/{chunk-VWML7WAL.cjs → chunk-I432F3YA.cjs} +17 -17
  45. package/dist/{chunk-VWML7WAL.cjs.map → chunk-I432F3YA.cjs.map} +1 -1
  46. package/dist/{chunk-E3XWDLUS.cjs → chunk-ICNDDYVU.cjs} +5 -5
  47. package/dist/{chunk-E3XWDLUS.cjs.map → chunk-ICNDDYVU.cjs.map} +1 -1
  48. package/dist/{chunk-75KTWM5C.js → chunk-IE5RWKUF.js} +4 -4
  49. package/dist/{chunk-75KTWM5C.js.map → chunk-IE5RWKUF.js.map} +1 -1
  50. package/dist/{chunk-ZQ4GVMYG.cjs → chunk-ILPFFVYC.cjs} +14 -2
  51. package/dist/chunk-ILPFFVYC.cjs.map +1 -0
  52. package/dist/{chunk-G3VJMWQN.cjs → chunk-JEODNH6U.cjs} +203 -202
  53. package/dist/chunk-JEODNH6U.cjs.map +1 -0
  54. package/dist/{chunk-PBNENTGS.js → chunk-JN4YYVB6.js} +3 -3
  55. package/dist/{chunk-PBNENTGS.js.map → chunk-JN4YYVB6.js.map} +1 -1
  56. package/dist/{chunk-RU33KEP5.cjs → chunk-JQEHJTZT.cjs} +157 -103
  57. package/dist/chunk-JQEHJTZT.cjs.map +1 -0
  58. package/dist/{chunk-NCHOAORF.cjs → chunk-KDS5H7AE.cjs} +5 -5
  59. package/dist/{chunk-NCHOAORF.cjs.map → chunk-KDS5H7AE.cjs.map} +1 -1
  60. package/dist/{chunk-FZ6OEI64.js → chunk-KXZI7W4X.js} +3 -3
  61. package/dist/{chunk-FZ6OEI64.js.map → chunk-KXZI7W4X.js.map} +1 -1
  62. package/dist/{chunk-C5PUPYP7.cjs → chunk-LXVZZCYL.cjs} +4 -4
  63. package/dist/{chunk-C5PUPYP7.cjs.map → chunk-LXVZZCYL.cjs.map} +1 -1
  64. package/dist/{chunk-47PVLKIL.cjs → chunk-LXWMMOJ4.cjs} +2 -2
  65. package/dist/{chunk-47PVLKIL.cjs.map → chunk-LXWMMOJ4.cjs.map} +1 -1
  66. package/dist/{chunk-LPT77UR6.js → chunk-MG3WOQQQ.js} +2 -2
  67. package/dist/{chunk-LPT77UR6.js.map → chunk-MG3WOQQQ.js.map} +1 -1
  68. package/dist/{chunk-RJURFPLU.js → chunk-MZLIIHA3.js} +3 -3
  69. package/dist/{chunk-RJURFPLU.js.map → chunk-MZLIIHA3.js.map} +1 -1
  70. package/dist/{chunk-3QVZXWIE.cjs → chunk-NLXGN2IS.cjs} +2 -2
  71. package/dist/chunk-NLXGN2IS.cjs.map +1 -0
  72. package/dist/{chunk-3KAKK4VV.js → chunk-OQ7KYSC2.js} +3 -3
  73. package/dist/{chunk-3KAKK4VV.js.map → chunk-OQ7KYSC2.js.map} +1 -1
  74. package/dist/{chunk-IBARGTX5.js → chunk-PPSCC3RI.js} +3 -3
  75. package/dist/{chunk-IBARGTX5.js.map → chunk-PPSCC3RI.js.map} +1 -1
  76. package/dist/{chunk-CD5HMC3B.cjs → chunk-Q2YBCG65.cjs} +3 -3
  77. package/dist/{chunk-CD5HMC3B.cjs.map → chunk-Q2YBCG65.cjs.map} +1 -1
  78. package/dist/{chunk-N5Z5NTFQ.cjs → chunk-RUHCOOAI.cjs} +5 -5
  79. package/dist/{chunk-N5Z5NTFQ.cjs.map → chunk-RUHCOOAI.cjs.map} +1 -1
  80. package/dist/{chunk-UQZLR5HN.cjs → chunk-SKWXNNTT.cjs} +9 -9
  81. package/dist/{chunk-UQZLR5HN.cjs.map → chunk-SKWXNNTT.cjs.map} +1 -1
  82. package/dist/{chunk-SB3YYDCD.js → chunk-STNV4TYH.js} +107 -67
  83. package/dist/chunk-STNV4TYH.js.map +1 -0
  84. package/dist/{chunk-PMGFP7II.cjs → chunk-THQZFNHO.cjs} +10 -10
  85. package/dist/{chunk-PMGFP7II.cjs.map → chunk-THQZFNHO.cjs.map} +1 -1
  86. package/dist/{chunk-CB3IBAR2.js → chunk-VQG4INIR.js} +5 -5
  87. package/dist/{chunk-CB3IBAR2.js.map → chunk-VQG4INIR.js.map} +1 -1
  88. package/dist/{chunk-JEFGF2F5.js → chunk-VYK2C6R3.js} +2 -2
  89. package/dist/chunk-VYK2C6R3.js.map +1 -0
  90. package/dist/{chunk-CRKVDQD7.js → chunk-XEH32VCJ.js} +3 -3
  91. package/dist/{chunk-CRKVDQD7.js.map → chunk-XEH32VCJ.js.map} +1 -1
  92. package/dist/{chunk-2ZGSDZ3H.cjs → chunk-XJ3NNQMH.cjs} +4 -4
  93. package/dist/{chunk-2ZGSDZ3H.cjs.map → chunk-XJ3NNQMH.cjs.map} +1 -1
  94. package/dist/{chunk-A6PTHCLA.js → chunk-YAURXFRL.js} +4 -4
  95. package/dist/{chunk-A6PTHCLA.js.map → chunk-YAURXFRL.js.map} +1 -1
  96. package/dist/{chunk-NHZNZF6Y.js → chunk-YCLZZVA2.js} +5 -5
  97. package/dist/{chunk-NHZNZF6Y.js.map → chunk-YCLZZVA2.js.map} +1 -1
  98. package/dist/{chunk-54K3Y5HC.js → chunk-YEQZMTCM.js} +3 -3
  99. package/dist/{chunk-54K3Y5HC.js.map → chunk-YEQZMTCM.js.map} +1 -1
  100. package/dist/{chunk-7IFWS7OK.js → chunk-ZKMXVDVF.js} +20 -19
  101. package/dist/chunk-ZKMXVDVF.js.map +1 -0
  102. package/dist/{dist-53MHW3NX.js → dist-F5OVWHJA.js} +3 -3
  103. package/dist/{dist-53MHW3NX.js.map → dist-F5OVWHJA.js.map} +1 -1
  104. package/dist/{dist-N3JU7LHJ.cjs → dist-LB6ETLLY.cjs} +4 -4
  105. package/dist/{dist-N3JU7LHJ.cjs.map → dist-LB6ETLLY.cjs.map} +1 -1
  106. package/dist/docs/SKILL.md +1 -1
  107. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  108. package/dist/{observational-memory-GAYCVM5R-DHBARU7H.cjs → observational-memory-E73XGPDT-JT3TMD3Y.cjs} +29 -29
  109. package/dist/{observational-memory-GAYCVM5R-DHBARU7H.cjs.map → observational-memory-E73XGPDT-JT3TMD3Y.cjs.map} +1 -1
  110. package/dist/{observational-memory-GAYCVM5R-47CI5MFB.js → observational-memory-E73XGPDT-ZSNLC7FW.js} +3 -3
  111. package/dist/{observational-memory-GAYCVM5R-47CI5MFB.js.map → observational-memory-E73XGPDT-ZSNLC7FW.js.map} +1 -1
  112. package/dist/server/handlers/a2a.cjs +14 -14
  113. package/dist/server/handlers/a2a.js +1 -1
  114. package/dist/server/handlers/agent-builder.cjs +17 -17
  115. package/dist/server/handlers/agent-builder.js +1 -1
  116. package/dist/server/handlers/agent-controller.cjs +35 -35
  117. package/dist/server/handlers/agent-controller.d.ts +203 -82
  118. package/dist/server/handlers/agent-controller.d.ts.map +1 -1
  119. package/dist/server/handlers/agent-controller.js +1 -1
  120. package/dist/server/handlers/agents.cjs +51 -47
  121. package/dist/server/handlers/agents.d.ts +39 -0
  122. package/dist/server/handlers/agents.d.ts.map +1 -1
  123. package/dist/server/handlers/agents.js +1 -1
  124. package/dist/server/handlers/conversations.cjs +5 -5
  125. package/dist/server/handlers/conversations.js +1 -1
  126. package/dist/server/handlers/editor-builder.cjs +6 -6
  127. package/dist/server/handlers/editor-builder.js +1 -1
  128. package/dist/server/handlers/favorites-enrichment.cjs +4 -4
  129. package/dist/server/handlers/favorites-enrichment.js +1 -1
  130. package/dist/server/handlers/gateway-memory-client.cjs +8 -8
  131. package/dist/server/handlers/gateway-memory-client.d.ts +1 -1
  132. package/dist/server/handlers/gateway-memory-client.js +1 -1
  133. package/dist/server/handlers/memory.cjs +27 -27
  134. package/dist/server/handlers/memory.js +1 -1
  135. package/dist/server/handlers/responses.cjs +4 -4
  136. package/dist/server/handlers/responses.js +1 -1
  137. package/dist/server/handlers/scores.cjs +7 -7
  138. package/dist/server/handlers/scores.js +1 -1
  139. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  140. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  141. package/dist/server/handlers/stored-agents.cjs +10 -10
  142. package/dist/server/handlers/stored-agents.js +1 -1
  143. package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
  144. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  145. package/dist/server/handlers/stored-skills.cjs +7 -7
  146. package/dist/server/handlers/stored-skills.js +1 -1
  147. package/dist/server/handlers/system.cjs +3 -3
  148. package/dist/server/handlers/system.js +1 -1
  149. package/dist/server/handlers/tools.cjs +6 -6
  150. package/dist/server/handlers/tools.js +1 -1
  151. package/dist/server/handlers/voice.cjs +8 -8
  152. package/dist/server/handlers/voice.js +1 -1
  153. package/dist/server/handlers/workflows.cjs +27 -27
  154. package/dist/server/handlers/workflows.js +1 -1
  155. package/dist/server/handlers.cjs +20 -20
  156. package/dist/server/handlers.js +10 -10
  157. package/dist/server/schemas/agents.d.ts +24 -0
  158. package/dist/server/schemas/agents.d.ts.map +1 -1
  159. package/dist/server/schemas/index.cjs +73 -69
  160. package/dist/server/schemas/index.js +3 -3
  161. package/dist/server/server-adapter/index.cjs +13 -13
  162. package/dist/server/server-adapter/index.js +2 -2
  163. package/dist/server/server-adapter/routes/agents.d.ts +2 -1
  164. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
  165. package/package.json +4 -4
  166. package/dist/chunk-3QVZXWIE.cjs.map +0 -1
  167. package/dist/chunk-3WGKJO34.js.map +0 -1
  168. package/dist/chunk-7IFWS7OK.js.map +0 -1
  169. package/dist/chunk-G3VJMWQN.cjs.map +0 -1
  170. package/dist/chunk-JEFGF2F5.js.map +0 -1
  171. package/dist/chunk-R3KUPFCO.js.map +0 -1
  172. package/dist/chunk-RU33KEP5.cjs.map +0 -1
  173. package/dist/chunk-SB3YYDCD.js.map +0 -1
  174. package/dist/chunk-VTA32BYJ.cjs.map +0 -1
  175. 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, tags) {
16
+ async function getSession(controller, resourceId, options) {
17
17
  await controller.init();
18
- return controller.createSession({ resourceId, id: resourceId, ownerId: controller.id, tags });
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-SB3YYDCD.js.map
1191
- //# sourceMappingURL=chunk-SB3YYDCD.js.map
1230
+ //# sourceMappingURL=chunk-STNV4TYH.js.map
1231
+ //# sourceMappingURL=chunk-STNV4TYH.js.map