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