@mastra/server 1.50.0-alpha.2 → 1.50.0-alpha.4

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 (95) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{api-schema-manifest-EW55OSKH.js → api-schema-manifest-DOPBJPOJ.js} +3 -3
  3. package/dist/{api-schema-manifest-EW55OSKH.js.map → api-schema-manifest-DOPBJPOJ.js.map} +1 -1
  4. package/dist/{api-schema-manifest-YT3AMGZD.cjs → api-schema-manifest-QEW2UYFB.cjs} +4 -4
  5. package/dist/{api-schema-manifest-YT3AMGZD.cjs.map → api-schema-manifest-QEW2UYFB.cjs.map} +1 -1
  6. package/dist/{chunk-ZAK4IF2O.js → chunk-5HOECS3M.js} +15 -25
  7. package/dist/chunk-5HOECS3M.js.map +1 -0
  8. package/dist/{chunk-6QZTZ5F3.cjs → chunk-5RAMEYIX.cjs} +3 -3
  9. package/dist/{chunk-6QZTZ5F3.cjs.map → chunk-5RAMEYIX.cjs.map} +1 -1
  10. package/dist/{chunk-57BKC4ZW.cjs → chunk-F32IDQGW.cjs} +12 -12
  11. package/dist/chunk-F32IDQGW.cjs.map +1 -0
  12. package/dist/{chunk-4D4HXQZQ.cjs → chunk-F6N7265F.cjs} +3 -3
  13. package/dist/{chunk-4D4HXQZQ.cjs.map → chunk-F6N7265F.cjs.map} +1 -1
  14. package/dist/{chunk-WUUYTMMN.js → chunk-FRVPBGNR.js} +3 -3
  15. package/dist/{chunk-WUUYTMMN.js.map → chunk-FRVPBGNR.js.map} +1 -1
  16. package/dist/{chunk-3PX4QNTY.js → chunk-L755XTYQ.js} +5 -5
  17. package/dist/{chunk-3PX4QNTY.js.map → chunk-L755XTYQ.js.map} +1 -1
  18. package/dist/{chunk-VFTKZ5NN.js → chunk-LXZQ3FLD.js} +3 -3
  19. package/dist/{chunk-VFTKZ5NN.js.map → chunk-LXZQ3FLD.js.map} +1 -1
  20. package/dist/chunk-NNZX6L34.cjs +479 -0
  21. package/dist/chunk-NNZX6L34.cjs.map +1 -0
  22. package/dist/chunk-TMK7RPZE.js +469 -0
  23. package/dist/chunk-TMK7RPZE.js.map +1 -0
  24. package/dist/{chunk-EVRBOCDD.cjs → chunk-TWAGLLIX.cjs} +5 -5
  25. package/dist/{chunk-EVRBOCDD.cjs.map → chunk-TWAGLLIX.cjs.map} +1 -1
  26. package/dist/{chunk-HK4SJHYT.js → chunk-UGL754UC.js} +12 -12
  27. package/dist/chunk-UGL754UC.js.map +1 -0
  28. package/dist/{chunk-5NLRYTA7.cjs → chunk-YF52OTQK.cjs} +70 -80
  29. package/dist/chunk-YF52OTQK.cjs.map +1 -0
  30. package/dist/{dist-GT5SXQBU.cjs → dist-5EULF33F.cjs} +4 -4
  31. package/dist/{dist-GT5SXQBU.cjs.map → dist-5EULF33F.cjs.map} +1 -1
  32. package/dist/{dist-OPQ753KD.js → dist-RCCUYXJR.js} +3 -3
  33. package/dist/{dist-OPQ753KD.js.map → dist-RCCUYXJR.js.map} +1 -1
  34. package/dist/docs/SKILL.md +1 -1
  35. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  36. package/dist/{observational-memory-BTXNITBN-USQTBIPQ.cjs → observational-memory-QL6BKIQX-KHRHK3MH.cjs} +28 -28
  37. package/dist/{observational-memory-BTXNITBN-USQTBIPQ.cjs.map → observational-memory-QL6BKIQX-KHRHK3MH.cjs.map} +1 -1
  38. package/dist/{observational-memory-BTXNITBN-GBTCKQX5.js → observational-memory-QL6BKIQX-XL77IBYW.js} +3 -3
  39. package/dist/{observational-memory-BTXNITBN-GBTCKQX5.js.map → observational-memory-QL6BKIQX-XL77IBYW.js.map} +1 -1
  40. package/dist/server/handlers/agent-builder.cjs +17 -17
  41. package/dist/server/handlers/agent-builder.js +1 -1
  42. package/dist/server/handlers/agent-controller.cjs +35 -35
  43. package/dist/server/handlers/agent-controller.d.ts.map +1 -1
  44. package/dist/server/handlers/agent-controller.js +1 -1
  45. package/dist/server/handlers/schedules-workflows-shim.cjs +32 -7
  46. package/dist/server/handlers/schedules-workflows-shim.cjs.map +1 -1
  47. package/dist/server/handlers/schedules-workflows-shim.js +16 -1
  48. package/dist/server/handlers/schedules-workflows-shim.js.map +1 -1
  49. package/dist/server/handlers/schedules.cjs +22 -6
  50. package/dist/server/handlers/schedules.d.ts +963 -361
  51. package/dist/server/handlers/schedules.d.ts.map +1 -1
  52. package/dist/server/handlers/schedules.js +1 -1
  53. package/dist/server/handlers/system.cjs +3 -3
  54. package/dist/server/handlers/system.js +1 -1
  55. package/dist/server/handlers.cjs +2 -2
  56. package/dist/server/handlers.js +1 -1
  57. package/dist/server/schemas/index.cjs +152 -152
  58. package/dist/server/schemas/index.js +4 -4
  59. package/dist/server/schemas/schedules.d.ts +337 -116
  60. package/dist/server/schemas/schedules.d.ts.map +1 -1
  61. package/dist/server/server-adapter/index.cjs +13 -13
  62. package/dist/server/server-adapter/index.js +2 -2
  63. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  64. package/dist/server/server-adapter/routes/schedules.d.ts.map +1 -1
  65. package/package.json +4 -4
  66. package/dist/chunk-4DVFBBKV.js +0 -281
  67. package/dist/chunk-4DVFBBKV.js.map +0 -1
  68. package/dist/chunk-4HFIGLPA.js +0 -142
  69. package/dist/chunk-4HFIGLPA.js.map +0 -1
  70. package/dist/chunk-4WZMR4IW.cjs +0 -150
  71. package/dist/chunk-4WZMR4IW.cjs.map +0 -1
  72. package/dist/chunk-57BKC4ZW.cjs.map +0 -1
  73. package/dist/chunk-5NLRYTA7.cjs.map +0 -1
  74. package/dist/chunk-5XRZSGVP.cjs +0 -42
  75. package/dist/chunk-5XRZSGVP.cjs.map +0 -1
  76. package/dist/chunk-7XZQUQEO.cjs +0 -187
  77. package/dist/chunk-7XZQUQEO.cjs.map +0 -1
  78. package/dist/chunk-HK4SJHYT.js.map +0 -1
  79. package/dist/chunk-RCXVCPAD.js +0 -181
  80. package/dist/chunk-RCXVCPAD.js.map +0 -1
  81. package/dist/chunk-XEXUQSKG.js +0 -19
  82. package/dist/chunk-XEXUQSKG.js.map +0 -1
  83. package/dist/chunk-XTB6XXHH.cjs +0 -290
  84. package/dist/chunk-XTB6XXHH.cjs.map +0 -1
  85. package/dist/chunk-ZAK4IF2O.js.map +0 -1
  86. package/dist/server/handlers/heartbeats.cjs +0 -40
  87. package/dist/server/handlers/heartbeats.cjs.map +0 -1
  88. package/dist/server/handlers/heartbeats.d.ts +0 -769
  89. package/dist/server/handlers/heartbeats.d.ts.map +0 -1
  90. package/dist/server/handlers/heartbeats.js +0 -3
  91. package/dist/server/handlers/heartbeats.js.map +0 -1
  92. package/dist/server/schemas/heartbeats.d.ts +0 -227
  93. package/dist/server/schemas/heartbeats.d.ts.map +0 -1
  94. package/dist/server/server-adapter/routes/heartbeats.d.ts +0 -3
  95. package/dist/server/server-adapter/routes/heartbeats.d.ts.map +0 -1
@@ -1,150 +0,0 @@
1
- 'use strict';
2
-
3
- var zod = require('zod');
4
-
5
- // src/server/schemas/schedules.ts
6
- var scheduleStatusSchema = zod.z.enum(["active", "paused"]);
7
- var workflowScheduleTargetSchema = zod.z.object({
8
- type: zod.z.literal("workflow"),
9
- workflowId: zod.z.string(),
10
- inputData: zod.z.unknown().optional(),
11
- initialState: zod.z.unknown().optional(),
12
- requestContext: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
13
- });
14
- var signalAttributesSchema = zod.z.record(
15
- zod.z.string(),
16
- zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean(), zod.z.null()]).optional()
17
- );
18
- var ifActiveSchema = zod.z.object({
19
- behavior: zod.z.enum(["deliver", "persist", "discard"]).optional(),
20
- attributes: signalAttributesSchema.optional()
21
- });
22
- var ifIdleSchema = zod.z.object({
23
- behavior: zod.z.enum(["wake", "persist", "discard"]).optional(),
24
- attributes: signalAttributesSchema.optional(),
25
- streamOptions: zod.z.object({
26
- requestContext: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
27
- }).optional()
28
- });
29
- var heartbeatScheduleTargetSchema = zod.z.object({
30
- type: zod.z.literal("heartbeat"),
31
- agentId: zod.z.string(),
32
- prompt: zod.z.string(),
33
- threadId: zod.z.string().optional(),
34
- resourceId: zod.z.string().optional(),
35
- signalType: zod.z.string().optional(),
36
- tagName: zod.z.string().optional(),
37
- attributes: signalAttributesSchema.optional(),
38
- ifActive: ifActiveSchema.optional(),
39
- ifIdle: ifIdleSchema.optional(),
40
- providerOptions: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
41
- requestContext: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
42
- });
43
- var scheduleTargetSchema = zod.z.discriminatedUnion("type", [
44
- workflowScheduleTargetSchema,
45
- heartbeatScheduleTargetSchema
46
- ]);
47
- var workflowRunStatusSchema = zod.z.enum([
48
- "running",
49
- "success",
50
- "failed",
51
- "tripwire",
52
- "suspended",
53
- "waiting",
54
- "pending",
55
- "canceled",
56
- "bailed",
57
- "paused",
58
- "skipped"
59
- ]);
60
- var scheduleRunSummarySchema = zod.z.object({
61
- status: workflowRunStatusSchema,
62
- startedAt: zod.z.number().optional(),
63
- completedAt: zod.z.number().optional(),
64
- durationMs: zod.z.number().optional(),
65
- error: zod.z.string().optional()
66
- });
67
- var scheduleResponseSchema = zod.z.object({
68
- id: zod.z.string(),
69
- target: scheduleTargetSchema,
70
- cron: zod.z.string(),
71
- timezone: zod.z.string().optional(),
72
- status: scheduleStatusSchema,
73
- nextFireAt: zod.z.number(),
74
- lastFireAt: zod.z.number().optional(),
75
- lastRunId: zod.z.string().optional(),
76
- lastRun: scheduleRunSummarySchema.optional(),
77
- metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
78
- ownerType: zod.z.string().optional(),
79
- ownerId: zod.z.string().optional(),
80
- createdAt: zod.z.number(),
81
- updatedAt: zod.z.number()
82
- });
83
- var scheduleTriggerOutcomeSchema = zod.z.enum([
84
- "published",
85
- "succeeded",
86
- "delivered",
87
- "persisted",
88
- "discarded",
89
- "skipped",
90
- "aborted",
91
- "failed",
92
- // Legacy queue/notification outcomes — no longer written, but trigger rows
93
- // persisted by older builds may still carry them. Kept readable so the
94
- // response validator does not reject historical rows. Mirrors the core
95
- // ScheduleTriggerOutcome union.
96
- "acked",
97
- "alerted",
98
- "deferred",
99
- "appended-from-queue",
100
- "dropped-stale",
101
- "dropped-superseded",
102
- "dropped-busy"
103
- ]);
104
- var scheduleTriggerKindSchema = zod.z.enum(["schedule-fire", "queue-drain", "manual"]);
105
- var scheduleTriggerResponseSchema = zod.z.object({
106
- id: zod.z.string().optional(),
107
- scheduleId: zod.z.string(),
108
- runId: zod.z.string().nullable(),
109
- scheduledFireAt: zod.z.number(),
110
- actualFireAt: zod.z.number(),
111
- outcome: scheduleTriggerOutcomeSchema,
112
- error: zod.z.string().optional(),
113
- triggerKind: scheduleTriggerKindSchema.optional(),
114
- parentTriggerId: zod.z.string().optional(),
115
- metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
116
- run: scheduleRunSummarySchema.optional()
117
- });
118
- var listSchedulesQuerySchema = zod.z.object({
119
- workflowId: zod.z.string().optional(),
120
- status: scheduleStatusSchema.optional(),
121
- ownerType: zod.z.string().optional(),
122
- ownerId: zod.z.string().optional()
123
- }).refine((data) => data.ownerId === void 0 || data.ownerType !== void 0, {
124
- message: "ownerId can only be used together with ownerType",
125
- path: ["ownerId"]
126
- });
127
- var listSchedulesResponseSchema = zod.z.object({
128
- schedules: zod.z.array(scheduleResponseSchema)
129
- });
130
- var scheduleIdPathParams = zod.z.object({
131
- scheduleId: zod.z.string()
132
- });
133
- var listScheduleTriggersQuerySchema = zod.z.object({
134
- limit: zod.z.coerce.number().int().positive().optional(),
135
- fromActualFireAt: zod.z.coerce.number().int().nonnegative().optional(),
136
- toActualFireAt: zod.z.coerce.number().int().nonnegative().optional()
137
- });
138
- var listScheduleTriggersResponseSchema = zod.z.object({
139
- triggers: zod.z.array(scheduleTriggerResponseSchema)
140
- });
141
-
142
- exports.listScheduleTriggersQuerySchema = listScheduleTriggersQuerySchema;
143
- exports.listScheduleTriggersResponseSchema = listScheduleTriggersResponseSchema;
144
- exports.listSchedulesQuerySchema = listSchedulesQuerySchema;
145
- exports.listSchedulesResponseSchema = listSchedulesResponseSchema;
146
- exports.scheduleIdPathParams = scheduleIdPathParams;
147
- exports.scheduleResponseSchema = scheduleResponseSchema;
148
- exports.scheduleRunSummarySchema = scheduleRunSummarySchema;
149
- //# sourceMappingURL=chunk-4WZMR4IW.cjs.map
150
- //# sourceMappingURL=chunk-4WZMR4IW.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/schemas/schedules.ts"],"names":["z"],"mappings":";;;;;AAEO,IAAM,uBAAuBA,KAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAE/D,IAAM,4BAAA,GAA+BA,MAAE,MAAA,CAAO;AAAA,EAC5C,IAAA,EAAMA,KAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,EAC1B,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,SAAA,EAAWA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAChC,YAAA,EAAcA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACnC,cAAA,EAAgBA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AACpD,CAAC,CAAA;AAED,IAAM,yBAAyBA,KAAA,CAAE,MAAA;AAAA,EAC/BA,MAAE,MAAA,EAAO;AAAA,EACTA,MAAE,KAAA,CAAM,CAACA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,MAAA,EAAO,EAAGA,KAAA,CAAE,SAAQ,EAAGA,KAAA,CAAE,MAAM,CAAC,EAAE,QAAA;AAC3D,CAAA;AAEA,IAAM,cAAA,GAAiBA,MAAE,MAAA,CAAO;AAAA,EAC9B,QAAA,EAAUA,MAAE,IAAA,CAAK,CAAC,WAAW,SAAA,EAAW,SAAS,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,EAC7D,UAAA,EAAY,uBAAuB,QAAA;AACrC,CAAC,CAAA;AAED,IAAM,YAAA,GAAeA,MAAE,MAAA,CAAO;AAAA,EAC5B,QAAA,EAAUA,MAAE,IAAA,CAAK,CAAC,QAAQ,SAAA,EAAW,SAAS,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,EAC1D,UAAA,EAAY,uBAAuB,QAAA,EAAS;AAAA,EAC5C,aAAA,EAAeA,MACZ,MAAA,CAAO;AAAA,IACN,cAAA,EAAgBA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAAS,GAC5D,EACA,QAAA;AACL,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgCA,MAAE,MAAA,CAAO;AAAA,EAC7C,IAAA,EAAMA,KAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,EAC3B,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,OAAA,EAASA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,UAAA,EAAY,uBAAuB,QAAA,EAAS;AAAA,EAC5C,QAAA,EAAU,eAAe,QAAA,EAAS;AAAA,EAClC,MAAA,EAAQ,aAAa,QAAA,EAAS;AAAA,EAC9B,eAAA,EAAiBA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D,cAAA,EAAgBA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AACpD,CAAC,CAAA;AAEM,IAAM,oBAAA,GAAuBA,KAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAC/D,4BAAA;AAAA,EACA;AACF,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0BA,MAAE,IAAA,CAAK;AAAA,EAC5C,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,MAAE,MAAA,CAAO;AAAA,EAC/C,MAAA,EAAQ,uBAAA;AAAA,EACR,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,WAAA,EAAaA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC;AAEM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,oBAAA;AAAA,EACR,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,MAAA,EAAQ,oBAAA;AAAA,EACR,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAAS,yBAAyB,QAAA,EAAS;AAAA,EAC3C,QAAA,EAAUA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACrD,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,SAAA,EAAWA,MAAE,MAAA;AACf,CAAC;AAEM,IAAM,4BAAA,GAA+BA,MAAE,IAAA,CAAK;AAAA,EACjD,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,qBAAA;AAAA,EACA,eAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAEM,IAAM,4BAA4BA,KAAA,CAAE,IAAA,CAAK,CAAC,eAAA,EAAiB,aAAA,EAAe,QAAQ,CAAC,CAAA;AAEnF,IAAM,6BAAA,GAAgCA,MAAE,MAAA,CAAO;AAAA,EACpD,EAAA,EAAIA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,EAC1B,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,OAAA,EAAS,4BAAA;AAAA,EACT,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAa,0BAA0B,QAAA,EAAS;AAAA,EAChD,eAAA,EAAiBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACrC,QAAA,EAAUA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,IAAUA,KAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACrD,GAAA,EAAK,yBAAyB,QAAA;AAChC,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,MACrC,MAAA,CAAO;AAAA,EACN,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,MAAA,EAAQ,qBAAqB,QAAA,EAAS;AAAA,EACtC,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC,CAAA,CACA,OAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,YAAY,MAAA,IAAa,IAAA,CAAK,cAAc,MAAA,EAAW;AAAA,EAC1E,OAAA,EAAS,kDAAA;AAAA,EACT,IAAA,EAAM,CAAC,SAAS;AAClB,CAAC;AAEI,IAAM,2BAAA,GAA8BA,MAAE,MAAA,CAAO;AAAA,EAClD,SAAA,EAAWA,KAAA,CAAE,KAAA,CAAM,sBAAsB;AAC3C,CAAC;AAEM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC3C,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC;AAEM,IAAM,+BAAA,GAAkCA,MAAE,MAAA,CAAO;AAAA,EACtD,KAAA,EAAOA,MAAE,MAAA,CAAO,MAAA,GAAS,GAAA,EAAI,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EACnD,gBAAA,EAAkBA,MAAE,MAAA,CAAO,MAAA,GAAS,GAAA,EAAI,CAAE,WAAA,EAAY,CAAE,QAAA,EAAS;AAAA,EACjE,cAAA,EAAgBA,MAAE,MAAA,CAAO,MAAA,GAAS,GAAA,EAAI,CAAE,WAAA,EAAY,CAAE,QAAA;AACxD,CAAC;AAEM,IAAM,kCAAA,GAAqCA,MAAE,MAAA,CAAO;AAAA,EACzD,QAAA,EAAUA,KAAA,CAAE,KAAA,CAAM,6BAA6B;AACjD,CAAC","file":"chunk-4WZMR4IW.cjs","sourcesContent":["import { z } from 'zod';\n\nexport const scheduleStatusSchema = z.enum(['active', 'paused']);\n\nconst workflowScheduleTargetSchema = z.object({\n type: z.literal('workflow'),\n workflowId: z.string(),\n inputData: z.unknown().optional(),\n initialState: z.unknown().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst signalAttributesSchema = z.record(\n z.string(),\n z.union([z.string(), z.number(), z.boolean(), z.null()]).optional(),\n);\n\nconst ifActiveSchema = z.object({\n behavior: z.enum(['deliver', 'persist', 'discard']).optional(),\n attributes: signalAttributesSchema.optional(),\n});\n\nconst ifIdleSchema = z.object({\n behavior: z.enum(['wake', 'persist', 'discard']).optional(),\n attributes: signalAttributesSchema.optional(),\n streamOptions: z\n .object({\n requestContext: z.record(z.string(), z.unknown()).optional(),\n })\n .optional(),\n});\n\nconst heartbeatScheduleTargetSchema = z.object({\n type: z.literal('heartbeat'),\n agentId: z.string(),\n prompt: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n signalType: z.string().optional(),\n tagName: z.string().optional(),\n attributes: signalAttributesSchema.optional(),\n ifActive: ifActiveSchema.optional(),\n ifIdle: ifIdleSchema.optional(),\n providerOptions: z.record(z.string(), z.unknown()).optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const scheduleTargetSchema = z.discriminatedUnion('type', [\n workflowScheduleTargetSchema,\n heartbeatScheduleTargetSchema,\n]);\n\nexport const workflowRunStatusSchema = z.enum([\n 'running',\n 'success',\n 'failed',\n 'tripwire',\n 'suspended',\n 'waiting',\n 'pending',\n 'canceled',\n 'bailed',\n 'paused',\n 'skipped',\n]);\n\nexport const scheduleRunSummarySchema = z.object({\n status: workflowRunStatusSchema,\n startedAt: z.number().optional(),\n completedAt: z.number().optional(),\n durationMs: z.number().optional(),\n error: z.string().optional(),\n});\n\nexport const scheduleResponseSchema = z.object({\n id: z.string(),\n target: scheduleTargetSchema,\n cron: z.string(),\n timezone: z.string().optional(),\n status: scheduleStatusSchema,\n nextFireAt: z.number(),\n lastFireAt: z.number().optional(),\n lastRunId: z.string().optional(),\n lastRun: scheduleRunSummarySchema.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n ownerType: z.string().optional(),\n ownerId: z.string().optional(),\n createdAt: z.number(),\n updatedAt: z.number(),\n});\n\nexport const scheduleTriggerOutcomeSchema = z.enum([\n 'published',\n 'succeeded',\n 'delivered',\n 'persisted',\n 'discarded',\n 'skipped',\n 'aborted',\n 'failed',\n // Legacy queue/notification outcomes — no longer written, but trigger rows\n // persisted by older builds may still carry them. Kept readable so the\n // response validator does not reject historical rows. Mirrors the core\n // ScheduleTriggerOutcome union.\n 'acked',\n 'alerted',\n 'deferred',\n 'appended-from-queue',\n 'dropped-stale',\n 'dropped-superseded',\n 'dropped-busy',\n]);\n\nexport const scheduleTriggerKindSchema = z.enum(['schedule-fire', 'queue-drain', 'manual']);\n\nexport const scheduleTriggerResponseSchema = z.object({\n id: z.string().optional(),\n scheduleId: z.string(),\n runId: z.string().nullable(),\n scheduledFireAt: z.number(),\n actualFireAt: z.number(),\n outcome: scheduleTriggerOutcomeSchema,\n error: z.string().optional(),\n triggerKind: scheduleTriggerKindSchema.optional(),\n parentTriggerId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n run: scheduleRunSummarySchema.optional(),\n});\n\nexport const listSchedulesQuerySchema = z\n .object({\n workflowId: z.string().optional(),\n status: scheduleStatusSchema.optional(),\n ownerType: z.string().optional(),\n ownerId: z.string().optional(),\n })\n .refine(data => data.ownerId === undefined || data.ownerType !== undefined, {\n message: 'ownerId can only be used together with ownerType',\n path: ['ownerId'],\n });\n\nexport const listSchedulesResponseSchema = z.object({\n schedules: z.array(scheduleResponseSchema),\n});\n\nexport const scheduleIdPathParams = z.object({\n scheduleId: z.string(),\n});\n\nexport const listScheduleTriggersQuerySchema = z.object({\n limit: z.coerce.number().int().positive().optional(),\n fromActualFireAt: z.coerce.number().int().nonnegative().optional(),\n toActualFireAt: z.coerce.number().int().nonnegative().optional(),\n});\n\nexport const listScheduleTriggersResponseSchema = z.object({\n triggers: z.array(scheduleTriggerResponseSchema),\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/handlers/agent-controller.ts"],"names":["HTTPException","z","createRoute","handleError","controller"],"mappings":"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","file":"chunk-57BKC4ZW.cjs","sourcesContent":["import type { Agent } from '@mastra/core/agent';\nimport type { AgentController, Session } from '@mastra/core/agent-controller';\n// Type-only import: erased at runtime, so this cannot crash against an older\n// @mastra/core that lacks the `./agent-controller` subpath export. Controller\n// resolution at runtime goes through mastra.getAgentController?.(), never a\n// value import.\nimport { z } from 'zod/v4';\n\nimport { HTTPException } from '../http-exception';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\n/**\n * AgentController session routes.\n *\n * An AgentController registered on a Mastra instance (via\n * `new Mastra({ agentControllers })`) exposes its sessions over HTTP so\n * non-terminal clients — e.g. a browser-based MastraCode — can create sessions,\n * send messages, stream events, and drive run-control. Each route resolves its\n * target AgentController by id, then operates on a session bound to a\n * `resourceId` (get-or-create, so reconnects resume rather than fork the\n * conversation).\n */\n\n/**\n * Internal thread-metadata keys that `Session.loadMetadata()` reads back as\n * runtime bookkeeping (selected model/mode, observer/reflector config, token\n * usage). They share the flat thread `metadata` bag with user-provided session\n * scoping tags, so they must never be treated as tags here.\n *\n * Mirrors core's `isReservedThreadMetadataKey`; kept local because importing the\n * value from `@mastra/core` would exceed this package's peer-dependency floor.\n */\nfunction isReservedThreadMetadataKey(key: string): boolean {\n return (\n key === 'currentModelId' ||\n key === 'currentModeId' ||\n key === 'observerModelId' ||\n key === 'reflectorModelId' ||\n key === 'observationThreshold' ||\n key === 'reflectionThreshold' ||\n key === 'tokenUsage' ||\n key.startsWith('modeModelId_')\n );\n}\n\n/**\n * Resolves a controller by id via the canonical `mastra.getAgentController`\n * accessor, throwing a 404 if no controller is registered under that id.\n */\nfunction getAgentControllerOrThrow(\n mastra: {\n getAgentController?: (id: string) => AgentController<any> | undefined;\n },\n controllerId: string,\n): AgentController<any> {\n const controller = mastra.getAgentController?.(controllerId);\n if (!controller) {\n throw new HTTPException(404, { message: `agent controller \"${controllerId}\" not found` });\n }\n return controller;\n}\n\nasync function getSession(\n controller: AgentController<any>,\n resourceId: string,\n tags?: Record<string, string>,\n): Promise<Session<any>> {\n await controller.init();\n return controller.createSession({ resourceId, id: resourceId, ownerId: controller.id, tags });\n}\n\n// ---------------------------------------------------------------------------\n// Schemas\n// ---------------------------------------------------------------------------\n\nconst controllerIdPathParams = z.object({ controllerId: z.string() });\nconst sessionPathParams = z.object({ controllerId: z.string(), resourceId: z.string() });\n\nconst createSessionBodySchema = z.object({\n resourceId: z.string(),\n tags: z.record(z.string(), z.string()).optional(),\n});\nconst sendMessageBodySchema = z.object({ message: z.string() });\nconst steerBodySchema = z.object({ message: z.string() });\nconst toolApprovalBodySchema = z.object({\n toolCallId: z.string(),\n approved: z.boolean(),\n});\nconst toolSuspensionBodySchema = z.object({\n toolCallId: z.string(),\n // Free-form resume payload. For ask_user this is a string (or string[] for\n // multi-select); for submit_plan it's `{ action, feedback? }`; for\n // request_access it's \"Yes\"/\"No\".\n resumeData: z.any(),\n});\nconst switchModeBodySchema = z.object({ modeId: z.string() });\nconst switchModelBodySchema = z.object({\n modelId: z.string(),\n scope: z.enum(['global', 'thread']).optional(),\n modeId: z.string().optional(),\n});\nconst switchThreadBodySchema = z.object({ threadId: z.string() });\nconst createThreadBodySchema = z.object({ title: z.string().optional() });\nconst renameThreadBodySchema = z.object({ title: z.string() });\nconst threadPathParams = z.object({ controllerId: z.string(), resourceId: z.string(), threadId: z.string() });\nconst cloneThreadBodySchema = z.object({\n sourceThreadId: z.string().optional(),\n title: z.string().optional(),\n});\nconst listMessagesQuerySchema = z.object({ limit: z.coerce.number().optional() });\n/**\n * `tags` arrives as a JSON-encoded object in the query string (query params are\n * flat strings). It scopes the listing to threads whose metadata matches every\n * tag — e.g. `{ projectPath }` so git worktrees sharing a resourceId each see\n * only their own threads. Malformed JSON is treated as \"no filter\".\n */\nconst listThreadsQuerySchema = z.object({\n limit: z.coerce.number().optional(),\n tags: z\n .preprocess(value => {\n if (typeof value !== 'string' || value.length === 0) return undefined;\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n }, z.record(z.string(), z.string()).optional())\n .optional(),\n});\nconst followUpBodySchema = z.object({ message: z.string() });\n\nconst sendNotificationBodySchema = z.object({\n source: z.string(),\n kind: z.string(),\n summary: z.string(),\n priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(),\n payload: z.any().optional(),\n sourceId: z.string().optional(),\n dedupeKey: z.string().optional(),\n coalesceKey: z.string().optional(),\n attributes: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst listAgentControllersResponseSchema = z.object({\n agentControllers: z.array(z.object({ id: z.string() })),\n});\nconst createSessionResponseSchema = z.object({\n controllerId: z.string(),\n resourceId: z.string(),\n threadId: z.string().optional(),\n});\nconst ackResponseSchema = z.object({ ok: z.boolean() });\n/**\n * Status-line relevant slice of the session's observational-memory progress.\n * Mirrors the TUI status line: `msg pending/threshold ↓removal` (the active\n * message window before an observation fires) and `mem observed/reflection\n * ↓savings` (accumulated observations before a reflection fires).\n */\nconst omProgressSummarySchema = z.object({\n status: z.string(),\n pendingTokens: z.number(),\n threshold: z.number(),\n thresholdPercent: z.number(),\n observationTokens: z.number(),\n reflectionThreshold: z.number(),\n reflectionThresholdPercent: z.number(),\n /** Tokens the next observation will remove from the message window. */\n projectedMessageRemoval: z.number(),\n /** Tokens the next reflection is projected to save. */\n projectedReflectionSavings: z.number(),\n});\nconst sessionSettingsSchema = z.object({\n yolo: z.boolean(),\n thinkingLevel: z.enum(['off', 'low', 'medium', 'high', 'xhigh']),\n notifications: z.enum(['off', 'bell', 'system', 'both']),\n smartEditing: z.boolean(),\n});\nconst sessionStateResponseSchema = z.object({\n controllerId: z.string(),\n resourceId: z.string(),\n threadId: z.string().optional(),\n modeId: z.string(),\n modelId: z.string(),\n omProgress: omProgressSummarySchema.optional(),\n tokenUsage: z.record(z.string(), z.unknown()).optional(),\n settings: sessionSettingsSchema.optional(),\n});\nconst listModesResponseSchema = z.object({\n modes: z.array(z.object({ id: z.string(), name: z.string().optional() })),\n});\nconst listThreadsResponseSchema = z.object({\n threads: z.array(\n z.object({\n id: z.string(),\n title: z.string().optional(),\n updatedAt: z.string().optional(),\n /** The session scoping tags stamped on this thread (e.g. `{ projectPath }`). */\n tags: z.record(z.string(), z.string()).optional(),\n }),\n ),\n});\nconst threadResponseSchema = z.object({\n id: z.string(),\n title: z.string().optional(),\n resourceId: z.string().optional(),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\nconst messageContentSchema = z\n .object({\n type: z.string(),\n })\n .passthrough();\nconst listMessagesResponseSchema = z.object({\n messages: z.array(\n z.object({\n id: z.string(),\n role: z.enum(['user', 'assistant', 'system']),\n content: z.array(messageContentSchema),\n createdAt: z.string().optional(),\n }),\n ),\n});\nconst listModelsResponseSchema = z.object({\n models: z.array(\n z.object({\n id: z.string(),\n provider: z.string(),\n modelName: z.string(),\n hasApiKey: z.boolean(),\n useCount: z.number(),\n }),\n ),\n});\nconst workspaceStatusResponseSchema = z.object({\n hasWorkspace: z.boolean(),\n isReady: z.boolean(),\n});\nconst omRecordResponseSchema = z.object({\n record: z.any().optional(),\n});\nconst permissionPolicyEnum = z.enum(['allow', 'ask', 'deny']);\nconst toolCategoryEnum = z.enum(['read', 'edit', 'execute', 'mcp', 'other']);\nconst permissionRulesResponseSchema = z.object({\n categories: z.record(z.string(), permissionPolicyEnum).optional(),\n tools: z.record(z.string(), permissionPolicyEnum).optional(),\n});\nconst setCategoryPermissionBodySchema = z.object({\n category: toolCategoryEnum,\n policy: permissionPolicyEnum,\n});\nconst setToolPermissionBodySchema = z.object({\n toolName: z.string(),\n policy: permissionPolicyEnum,\n});\n\n// ---------------------------------------------------------------------------\n// Routes\n// ---------------------------------------------------------------------------\n\nexport const LIST_AGENT_CONTROLLERS_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller',\n responseType: 'json' as const,\n responseSchema: listAgentControllersResponseSchema,\n summary: 'List agent controllers',\n description: 'Lists the agent controllers hosted on this Mastra instance.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra }) => {\n try {\n const ids = new Set<string>();\n if (mastra.listAgentControllers) {\n for (const id of Object.keys(mastra.listAgentControllers())) ids.add(id);\n }\n return { agentControllers: Array.from(ids).map(id => ({ id })) };\n } catch (error) {\n return handleError(error, 'error listing agent controllers');\n }\n },\n});\n\nexport const CREATE_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions',\n responseType: 'json' as const,\n pathParamSchema: controllerIdPathParams,\n bodySchema: createSessionBodySchema,\n responseSchema: createSessionResponseSchema,\n summary: 'Create or resume a controller session',\n description:\n 'Creates a session for the given resourceId, or returns the existing one (get-or-create), so reconnects resume the conversation.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, tags }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId, tags);\n return {\n controllerId,\n resourceId,\n threadId: session.thread.getId() ?? undefined,\n };\n } catch (error) {\n return handleError(error, 'error creating controller session');\n }\n },\n});\n\nexport const STREAM_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n sseFlushOnConnect: true,\n pathParamSchema: sessionPathParams,\n summary: 'Stream controller session events',\n description: 'Subscribes to a session\\u2019s event bus and streams events to the client over SSE.',\n tags: ['AgentController', 'Streaming'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId, abortSignal }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n\n let cleanedUp = false;\n let heartbeat: ReturnType<typeof setTimeout> | undefined;\n let unsubscribe: (() => void) | undefined;\n const clearHeartbeat = () => {\n if (heartbeat) {\n clearTimeout(heartbeat);\n heartbeat = undefined;\n }\n };\n const cleanup = (controller?: ReadableStreamDefaultController) => {\n if (cleanedUp) return;\n cleanedUp = true;\n clearHeartbeat();\n unsubscribe?.();\n if (controller) {\n try {\n controller.close();\n } catch {}\n }\n };\n\n // The stream yields raw event objects plus `:`-prefixed SSE comments\n // (heartbeats); the server adapter frames events and passes comments\n // through verbatim.\n return new ReadableStream<unknown>({\n start(controller) {\n const scheduleHeartbeat = () => {\n if (cleanedUp) return;\n clearHeartbeat();\n heartbeat = setTimeout(() => {\n heartbeat = undefined;\n if (cleanedUp) return;\n try {\n controller.enqueue(': heartbeat\\n\\n');\n } catch {\n cleanup();\n return;\n }\n scheduleHeartbeat();\n }, 25_000);\n };\n\n unsubscribe = session.subscribe(event => {\n if (cleanedUp) return;\n try {\n // Enqueue the raw event object. The server adapter is responsible\n // for SSE framing (`data: <json>\\n\\n`); enqueuing a pre-framed\n // string here would double-encode it.\n controller.enqueue(event);\n scheduleHeartbeat();\n } catch {\n cleanup();\n }\n });\n\n const abortCleanup = () => cleanup(controller);\n abortSignal?.addEventListener('abort', abortCleanup, { once: true });\n scheduleHeartbeat();\n },\n cancel() {\n cleanup();\n },\n });\n } catch (error) {\n return handleError(error, 'error streaming controller session');\n }\n },\n});\n\nexport const SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/messages',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: sendMessageBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Send a message to a controller session',\n description: 'Sends a user message to the session. The reply streams as events on the session\\u2019s SSE stream.',\n tags: ['AgentController', 'Streaming'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, message }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n void session.sendMessage({ content: message });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error sending controller message');\n }\n },\n});\n\nexport const ABORT_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/abort',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: ackResponseSchema,\n summary: 'Abort a controller session run',\n description: 'Aborts the in-flight run for the session, if any.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n session.abort();\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error aborting controller session');\n }\n },\n});\n\nexport const AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/tool-approval',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: toolApprovalBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Respond to a controller tool approval',\n description: 'Approves or declines a pending tool call surfaced by the session.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, toolCallId, approved }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n // Resolve the parked approval gate so the session's own run loop drives the\n // continuation and emits its events to subscribers (the open SSE stream).\n // Calling approveToolCall/declineToolCall directly would bypass the gate,\n // leaving the run loop hung and duplicating the resumed stream.\n // Pass toolCallId so a stale request cannot resolve a different pending gate.\n session.respondToToolApproval({ toolCallId, decision: approved ? 'approve' : 'decline' });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error responding to controller tool approval');\n }\n },\n});\n\nexport const AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/tool-suspension',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: toolSuspensionBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Respond to a suspended controller tool',\n description:\n 'Resumes a suspended interactive tool (ask_user, request_access, submit_plan) with the provided resume data.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, toolCallId, resumeData }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.respondToToolSuspension({ toolCallId, resumeData });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error responding to controller tool suspension');\n }\n },\n});\n\nexport const STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/steer',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: steerBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Steer the in-flight run',\n description: 'Injects a message into the running turn (interjection) without starting a new run.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, message }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n void session.steer({ content: message });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error steering controller session');\n }\n },\n});\n\nexport const SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/mode',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: switchModeBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Switch the session mode',\n description: 'Switches the active mode (e.g. build, plan) for the session.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, modeId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.mode.switch({ modeId });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error switching controller mode');\n }\n },\n});\n\nexport const SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/model',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: switchModelBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Switch the session model',\n description: 'Switches the model for the session, scoped to the thread by default.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, modelId, scope, modeId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.model.switch({ modelId, scope, modeId });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error switching controller model');\n }\n },\n});\n\nexport const SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/thread',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: switchThreadBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Switch the session thread',\n description: 'Switches the session to an existing thread (rebinding its stream and state).',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, threadId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.thread.switch({ threadId });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error switching controller thread');\n }\n },\n});\n\nexport const GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: sessionStateResponseSchema,\n summary: 'Get session state',\n description: 'Returns the current mode, model, and thread for the session (for initial UI hydration).',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const ds = session.displayState.get();\n const om = ds.omProgress;\n const reflectionSavings =\n om.buffered.reflection.inputObservationTokens - om.buffered.reflection.observationTokens;\n const st = session.state.get() as Record<string, unknown>;\n const oneOf = <T extends string>(value: unknown, allowed: readonly T[], fallback: T): T =>\n allowed.includes(value as T) ? (value as T) : fallback;\n return {\n controllerId,\n resourceId,\n threadId: session.thread.getId() ?? undefined,\n modeId: session.mode.get(),\n modelId: session.model.get(),\n omProgress: {\n status: om.status,\n pendingTokens: om.pendingTokens,\n threshold: om.threshold,\n thresholdPercent: om.thresholdPercent,\n observationTokens: om.observationTokens,\n reflectionThreshold: om.reflectionThreshold,\n reflectionThresholdPercent: om.reflectionThresholdPercent,\n projectedMessageRemoval: om.buffered.observations.projectedMessageRemoval,\n projectedReflectionSavings: reflectionSavings > 0 ? reflectionSavings : 0,\n },\n tokenUsage: ds.tokenUsage as unknown as Record<string, unknown>,\n settings: {\n yolo: st.yolo === true,\n thinkingLevel: oneOf(st.thinkingLevel, ['off', 'low', 'medium', 'high', 'xhigh'] as const, 'off'),\n notifications: oneOf(st.notifications, ['off', 'bell', 'system', 'both'] as const, 'off'),\n smartEditing: st.smartEditing !== false,\n },\n };\n } catch (error) {\n return handleError(error, 'error reading controller session state');\n }\n },\n});\n\nexport const LIST_AGENT_CONTROLLER_MODES_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/modes',\n responseType: 'json' as const,\n pathParamSchema: controllerIdPathParams,\n responseSchema: listModesResponseSchema,\n summary: 'List controller modes',\n description: 'Lists the modes configured on the controller (e.g. build, plan).',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n return {\n modes: controller.listModes().map(mode => ({ id: mode.id, name: mode.name })),\n };\n } catch (error) {\n return handleError(error, 'error listing controller modes');\n }\n },\n});\n\nexport const LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/threads',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n queryParamSchema: listThreadsQuerySchema,\n responseSchema: listThreadsResponseSchema,\n summary: 'List session threads',\n description:\n 'Lists the threads for the session\\u2019s resource, most-recently-updated first. Pass `limit` to return only the newest N (e.g. for a sidebar). Pass `tags` (a JSON-encoded object) to scope the list to threads matching every tag \\u2014 e.g. `{ projectPath }` so git worktrees sharing a resourceId each see only their own threads.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId, limit, tags }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const threads = await session.thread.list();\n // A thread's metadata mixes the session scoping tags (stamped at creation,\n // e.g. `projectPath`) with internal session bookkeeping that\n // `Session.loadMetadata()` reads back (selected model/mode, observer/\n // reflector config, token usage). Return only the string-valued scoping\n // tags, skipping reserved internal keys so they never leak out as \"tags\"\n // or become matchable via the `tags` filter.\n const getTags = (t: { metadata?: unknown }): Record<string, string> => {\n const metadata = (t.metadata as Record<string, unknown> | undefined) ?? {};\n const result: Record<string, string> = {};\n for (const [key, value] of Object.entries(metadata)) {\n if (typeof value === 'string' && !isReservedThreadMetadataKey(key)) result[key] = value;\n }\n return result;\n };\n // A single resourceId can be shared across git worktrees of the same repo\n // (the id is derived from the git URL). When tags are supplied, scope to\n // threads whose metadata matches every tag and drop the rest, so worktree A\n // never shows worktree B's threads. Mirrors the controller's tag-aware\n // selection and the TUI's worktree-strict listing. Reserved internal keys\n // are ignored as filter tags so callers can't match on session bookkeeping.\n const tagEntries = tags ? Object.entries(tags).filter(([key]) => !isReservedThreadMetadataKey(key)) : [];\n const scoped =\n tagEntries.length > 0\n ? threads.filter(t => {\n const metadata = (t.metadata as Record<string, unknown> | undefined) ?? {};\n return tagEntries.every(([key, value]) => metadata[key] === value);\n })\n : threads;\n const toTime = (t: { updatedAt?: Date; createdAt?: Date }) => (t.updatedAt ?? t.createdAt)?.getTime() ?? 0;\n const sorted = [...scoped].sort((a, b) => toTime(b) - toTime(a));\n const max = Number(limit);\n const limited = Number.isFinite(max) && max > 0 ? sorted.slice(0, max) : sorted;\n return {\n threads: limited.map(t => {\n const threadTags = getTags(t);\n return {\n id: t.id,\n title: t.title,\n tags: Object.keys(threadTags).length > 0 ? threadTags : undefined,\n updatedAt: t.updatedAt instanceof Date ? t.updatedAt.toISOString() : undefined,\n };\n }),\n };\n } catch (error) {\n return handleError(error, 'error listing controller threads');\n }\n },\n});\n\nexport const SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/notifications',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: sendNotificationBodySchema,\n responseSchema: z.object({\n accepted: z.boolean(),\n notificationId: z.string().optional(),\n decision: z.string().optional(),\n runId: z.string().optional(),\n }),\n summary: 'Send a notification signal to a session',\n description:\n 'Delivers a notification to the session\\u2019s current agent/thread. The agent\\u2019s delivery policy determines whether the notification wakes an idle thread, is summarised, or is persisted for later.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({\n mastra,\n controllerId,\n resourceId,\n source,\n kind,\n summary,\n priority,\n payload,\n sourceId,\n dedupeKey,\n coalesceKey,\n attributes,\n metadata,\n }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const result = await session.sendNotificationSignal({\n source,\n kind,\n summary,\n priority,\n payload,\n sourceId,\n dedupeKey,\n coalesceKey,\n attributes: attributes as Record<string, string | number | boolean | null | undefined> | undefined,\n metadata,\n });\n return {\n accepted: result.accepted !== undefined,\n notificationId: result.record?.id,\n decision: result.decision?.action,\n runId: result.runId,\n };\n } catch (error) {\n return handleError(error, 'error sending controller notification');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Thread lifecycle\n// ---------------------------------------------------------------------------\n\nexport const CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/threads',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: createThreadBodySchema,\n responseSchema: threadResponseSchema,\n summary: 'Create a new thread',\n description: 'Creates a new thread in the session (unbinds the previous thread, binds the new one).',\n tags: ['AgentController', 'Threads'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, title }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const thread = await session.thread.create({ title });\n return {\n id: thread.id,\n title: thread.title,\n resourceId: thread.resourceId,\n createdAt: thread.createdAt instanceof Date ? thread.createdAt.toISOString() : undefined,\n updatedAt: thread.updatedAt instanceof Date ? thread.updatedAt.toISOString() : undefined,\n };\n } catch (error) {\n return handleError(error, 'error creating controller thread');\n }\n },\n});\n\nexport const DELETE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({\n method: 'DELETE',\n path: '/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId',\n responseType: 'json' as const,\n pathParamSchema: threadPathParams,\n responseSchema: ackResponseSchema,\n summary: 'Delete a thread',\n description: 'Deletes a thread. If the deleted thread is the active one, the session is unbound.',\n tags: ['AgentController', 'Threads'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, threadId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.thread.delete({ threadId });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error deleting controller thread');\n }\n },\n});\n\nexport const RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({\n method: 'PUT',\n path: '/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId',\n responseType: 'json' as const,\n pathParamSchema: threadPathParams,\n bodySchema: renameThreadBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Rename a thread',\n description: 'Renames the specified thread.',\n tags: ['AgentController', 'Threads'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, threadId, title }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n // Ensure the thread is the active one (switch if not)\n if (session.thread.getId() !== threadId) {\n await session.thread.switch({ threadId });\n }\n await session.thread.rename({ title });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error renaming controller thread');\n }\n },\n});\n\nexport const CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/threads/clone',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: cloneThreadBodySchema,\n responseSchema: threadResponseSchema,\n summary: 'Clone a thread',\n description: 'Clones a thread (and its messages). The session binds to the new clone.',\n tags: ['AgentController', 'Threads'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, sourceThreadId, title }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const thread = await session.thread.clone({ sourceThreadId, title });\n return {\n id: thread.id,\n title: thread.title,\n resourceId: thread.resourceId,\n createdAt: thread.createdAt instanceof Date ? thread.createdAt.toISOString() : undefined,\n updatedAt: thread.updatedAt instanceof Date ? thread.updatedAt.toISOString() : undefined,\n };\n } catch (error) {\n return handleError(error, 'error cloning controller thread');\n }\n },\n});\n\nexport const LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId/messages',\n responseType: 'json' as const,\n pathParamSchema: threadPathParams,\n queryParamSchema: listMessagesQuerySchema,\n responseSchema: listMessagesResponseSchema,\n summary: 'List thread messages',\n description: 'Lists messages for a specific thread. Returns most recent messages first.',\n tags: ['AgentController', 'Threads'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId, threadId, limit }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const messages = await session.thread.listMessages({ threadId, limit });\n return {\n messages: messages.map(m => ({\n id: m.id,\n role: m.role,\n content: m.content as Array<{ type: string; [key: string]: unknown }>,\n createdAt: m.createdAt instanceof Date ? m.createdAt.toISOString() : undefined,\n })),\n };\n } catch (error) {\n return handleError(error, 'error listing controller thread messages');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Follow-up\n// ---------------------------------------------------------------------------\n\nexport const FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/follow-up',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: followUpBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Queue a follow-up message',\n description:\n 'Queues a follow-up message. If the session is idle it sends immediately; if a run is active it queues for after completion.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, message }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n void session.followUp({ content: message });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error queuing controller follow-up');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Models\n// ---------------------------------------------------------------------------\n\nexport const LIST_AGENT_CONTROLLER_MODELS_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/models',\n responseType: 'json' as const,\n pathParamSchema: controllerIdPathParams,\n responseSchema: listModelsResponseSchema,\n summary: 'List available models',\n description: 'Lists all models available on this controller (with auth status and use counts).',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n await controller.init();\n const models = await controller.listAvailableModels();\n return {\n models: models.map(m => ({\n id: m.id,\n provider: m.provider,\n modelName: m.modelName,\n hasApiKey: m.hasApiKey,\n useCount: m.useCount,\n })),\n };\n } catch (error) {\n return handleError(error, 'error listing controller models');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Workspace status\n// ---------------------------------------------------------------------------\n\nexport const GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/workspace',\n responseType: 'json' as const,\n pathParamSchema: controllerIdPathParams,\n responseSchema: workspaceStatusResponseSchema,\n summary: 'Get workspace status',\n description: 'Returns whether the controller has a workspace configured and whether it is ready.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n await controller.init();\n return {\n hasWorkspace: controller.hasWorkspace(),\n isReady: controller.isWorkspaceReady(),\n };\n } catch (error) {\n return handleError(error, 'error reading controller workspace status');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Observational Memory\n// ---------------------------------------------------------------------------\n\nexport const GET_AGENT_CONTROLLER_OM_RECORD_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/om',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: omRecordResponseSchema,\n summary: 'Get observational memory record',\n description: 'Returns the current observational memory record for the session\\u2019s thread/resource.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const record = await controller.getObservationalMemoryRecord(session);\n return { record: record ?? undefined };\n } catch (error) {\n return handleError(error, 'error reading controller OM record');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Resource identity\n// ---------------------------------------------------------------------------\n\nexport const SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/resource',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: z.object({ newResourceId: z.string() }),\n responseSchema: ackResponseSchema,\n summary: 'Change the session resource ID',\n description: 'Updates the session\\u2019s resource identity (e.g. when a user logs in).',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, newResourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await controller.setResourceId(session, { resourceId: newResourceId });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error setting controller resource ID');\n }\n },\n});\n\nexport const GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/resources',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: z.object({ resourceIds: z.array(z.string()) }),\n summary: 'Get known resource IDs',\n description: 'Lists the resource IDs known to this session (from threads).',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const resourceIds = await controller.getKnownResourceIds(session);\n return { resourceIds };\n } catch (error) {\n return handleError(error, 'error listing controller resource IDs');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Goals\n// ---------------------------------------------------------------------------\n\nconst setGoalBodySchema = z.object({\n objective: z.string(),\n judgeModelId: z.string().optional(),\n maxRuns: z.number().optional(),\n});\nconst updateGoalBodySchema = z.object({\n judgeModelId: z.string().optional(),\n maxRuns: z.number().optional(),\n status: z.enum(['active', 'paused', 'done']).optional(),\n});\nconst goalRecordSchema = z.object({\n id: z.string().optional(),\n objective: z.string(),\n status: z.enum(['active', 'paused', 'done']),\n runsUsed: z.number(),\n maxRuns: z.number().optional(),\n judgeModelId: z.string().optional(),\n startedAt: z.number(),\n updatedAt: z.number(),\n pausedReason: z.string().optional(),\n});\nconst goalResponseSchema = z.object({ goal: goalRecordSchema.optional() });\n\nfunction getAgentForSession(controller: AgentController<any>, session: Session<any>): Agent {\n return controller.getCurrentAgent(session);\n}\n\nexport const GET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/goal',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: goalResponseSchema,\n summary: 'Get the current goal',\n description: 'Returns the active/paused/done goal objective for the session\\u2019s thread, if any.',\n tags: ['AgentController', 'Goals'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const threadId = session.thread.getId();\n if (!threadId) return { goal: undefined };\n const agent = getAgentForSession(controller, session);\n const record = await agent.getObjective({ threadId });\n return { goal: record ?? undefined };\n } catch (error) {\n return handleError(error, 'error reading controller goal');\n }\n },\n});\n\nexport const SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({\n method: 'POST',\n path: '/agent-controller/:controllerId/sessions/:resourceId/goal',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: setGoalBodySchema,\n responseSchema: goalResponseSchema,\n summary: 'Set a goal',\n description:\n 'Sets a new objective for the session\\u2019s thread. The agent\\u2019s in-loop goal judge evaluates progress after each turn.',\n tags: ['AgentController', 'Goals'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, objective, judgeModelId, maxRuns }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const threadId = session.thread.getId();\n if (!threadId) throw new HTTPException(400, { message: 'session has no active thread' });\n const agent = getAgentForSession(controller, session);\n const record = await agent.setObjective(objective, {\n threadId,\n resourceId: session.identity.getResourceId(),\n ...(judgeModelId ? { judgeModelId } : {}),\n ...(maxRuns != null ? { maxRuns } : {}),\n });\n return { goal: record ?? undefined };\n } catch (error) {\n return handleError(error, 'error setting controller goal');\n }\n },\n});\n\nexport const UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({\n method: 'PUT',\n path: '/agent-controller/:controllerId/sessions/:resourceId/goal',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: updateGoalBodySchema,\n responseSchema: goalResponseSchema,\n summary: 'Update goal options',\n description: 'Updates the judge model, max runs, or status of the active goal. No-op when no goal is set.',\n tags: ['AgentController', 'Goals'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, judgeModelId, maxRuns, status }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const threadId = session.thread.getId();\n if (!threadId) throw new HTTPException(400, { message: 'session has no active thread' });\n const agent = getAgentForSession(controller, session);\n const record = await agent.updateObjectiveOptions({\n threadId,\n ...(judgeModelId !== undefined ? { judgeModelId } : {}),\n ...(maxRuns !== undefined ? { maxRuns } : {}),\n ...(status !== undefined ? { status } : {}),\n });\n return { goal: record ?? undefined };\n } catch (error) {\n return handleError(error, 'error updating controller goal');\n }\n },\n});\n\nexport const CLEAR_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({\n method: 'DELETE',\n path: '/agent-controller/:controllerId/sessions/:resourceId/goal',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: ackResponseSchema,\n summary: 'Clear the goal',\n description: 'Removes the active goal from the session\\u2019s thread.',\n tags: ['AgentController', 'Goals'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const threadId = session.thread.getId();\n if (!threadId) throw new HTTPException(400, { message: 'session has no active thread' });\n const agent = getAgentForSession(controller, session);\n await agent.clearObjective({ threadId });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error clearing controller goal');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Permissions\n// ---------------------------------------------------------------------------\n\nexport const GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/agent-controller/:controllerId/sessions/:resourceId/permissions',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n responseSchema: permissionRulesResponseSchema,\n summary: 'Get permission rules',\n description: 'Returns the current permission rules (per-category and per-tool policies) for the session.',\n tags: ['AgentController', 'Permissions'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:read',\n handler: async ({ mastra, controllerId, resourceId }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n const rules = session.permissions.getRules();\n return {\n categories: rules.categories as Record<string, 'allow' | 'ask' | 'deny'> | undefined,\n tools: rules.tools as Record<string, 'allow' | 'ask' | 'deny'> | undefined,\n };\n } catch (error) {\n return handleError(error, 'error getting controller permissions');\n }\n },\n});\n\nexport const SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({\n method: 'PUT',\n path: '/agent-controller/:controllerId/sessions/:resourceId/permissions/category',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: setCategoryPermissionBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Set permission for a tool category',\n description: 'Sets the approval policy (allow/ask/deny) for all tools in a category.',\n tags: ['AgentController', 'Permissions'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, category, policy }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.permissions.setForCategory({ category, policy });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error setting controller category permission');\n }\n },\n});\n\nexport const SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({\n method: 'PUT',\n path: '/agent-controller/:controllerId/sessions/:resourceId/permissions/tool',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: setToolPermissionBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Set permission for a specific tool',\n description:\n 'Sets the approval policy (allow/ask/deny) for a specific tool by name. Per-tool overrides take precedence over category policies.',\n tags: ['AgentController', 'Permissions'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, toolName, policy }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.permissions.setForTool({ toolName, policy });\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error setting controller tool permission');\n }\n },\n});\n\n// ---------------------------------------------------------------------------\n// Session State\n// ---------------------------------------------------------------------------\n\nconst setSessionStateBodySchema = z.object({ state: z.record(z.string(), z.unknown()) });\n\nexport const SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({\n method: 'PUT',\n path: '/agent-controller/:controllerId/sessions/:resourceId/state',\n responseType: 'json' as const,\n pathParamSchema: sessionPathParams,\n bodySchema: setSessionStateBodySchema,\n responseSchema: ackResponseSchema,\n summary: 'Set session state',\n description:\n 'Merges the provided key-value pairs into the session state. Existing keys not in the payload are preserved.',\n tags: ['AgentController'],\n requiresAuth: true,\n requiresPermission: 'agent-controller:execute',\n handler: async ({ mastra, controllerId, resourceId, state }) => {\n try {\n const controller = getAgentControllerOrThrow(mastra, controllerId);\n const session = await getSession(controller, resourceId);\n await session.state.set(state as Record<string, unknown>);\n return { ok: true };\n } catch (error) {\n return handleError(error, 'error setting controller session state');\n }\n },\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/server-adapter/routes/permissions.ts","../src/server/server-adapter/routes/a2a.ts","../src/server/server-adapter/routes/agent-builder.ts","../src/server/server-adapter/routes/agent-controller.ts","../src/server/server-adapter/routes/agents.ts","../src/server/server-adapter/routes/background-tasks.ts","../src/server/server-adapter/routes/channels.ts","../src/server/server-adapter/routes/conversations.ts","../src/server/server-adapter/routes/datasets.ts","../src/server/server-adapter/routes/editor-builder.ts","../src/server/server-adapter/routes/heartbeats.ts","../src/server/server-adapter/routes/legacy.ts","../src/server/server-adapter/routes/logs.ts","../src/server/server-adapter/routes/mcp.ts","../src/server/server-adapter/routes/memory.ts","../src/server/server-adapter/routes/observability.ts","../src/server/server-adapter/routes/processor-providers.ts","../src/server/server-adapter/routes/processors.ts","../src/server/server-adapter/routes/responses.ts","../src/server/server-adapter/routes/schedules.ts","../src/server/server-adapter/routes/scorers.ts","../src/server/server-adapter/routes/stored-agents.ts","../src/server/server-adapter/routes/stored-mcp-clients.ts","../src/server/server-adapter/routes/stored-prompt-blocks.ts","../src/server/server-adapter/routes/stored-scorers.ts","../src/server/server-adapter/routes/stored-skills.ts","../src/server/server-adapter/routes/stored-workspaces.ts","../src/server/server-adapter/routes/system.ts","../src/server/server-adapter/routes/tool-providers.ts","../src/server/server-adapter/routes/tools.ts","../src/server/server-adapter/routes/vectors.ts","../src/server/server-adapter/routes/workflows.ts","../src/server/server-adapter/routes/workspace.ts","../src/server/server-adapter/routes/index.ts"],"names":["GET_AGENT_CARD_ROUTE","AGENT_EXECUTION_ROUTE","LIST_AGENT_BUILDER_ACTIONS_ROUTE","GET_AGENT_BUILDER_ACTION_BY_ID_ROUTE","LIST_AGENT_BUILDER_ACTION_RUNS_ROUTE","GET_AGENT_BUILDER_ACTION_RUN_BY_ID_ROUTE","CREATE_AGENT_BUILDER_ACTION_RUN_ROUTE","STREAM_AGENT_BUILDER_ACTION_ROUTE","STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE","START_ASYNC_AGENT_BUILDER_ACTION_ROUTE","START_AGENT_BUILDER_ACTION_RUN_ROUTE","OBSERVE_STREAM_AGENT_BUILDER_ACTION_ROUTE","OBSERVE_STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE","RESUME_ASYNC_AGENT_BUILDER_ACTION_ROUTE","RESUME_NO_WAIT_AGENT_BUILDER_ACTION_ROUTE","RESUME_AGENT_BUILDER_ACTION_ROUTE","RESUME_STREAM_AGENT_BUILDER_ACTION_ROUTE","CANCEL_AGENT_BUILDER_ACTION_RUN_ROUTE","LIST_AGENT_CONTROLLERS_ROUTE","LIST_AGENT_CONTROLLER_MODES_ROUTE","LIST_AGENT_CONTROLLER_MODELS_ROUTE","CREATE_AGENT_CONTROLLER_SESSION_ROUTE","GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE","LIST_AGENT_CONTROLLER_THREADS_ROUTE","CREATE_AGENT_CONTROLLER_THREAD_ROUTE","DELETE_AGENT_CONTROLLER_THREAD_ROUTE","RENAME_AGENT_CONTROLLER_THREAD_ROUTE","CLONE_AGENT_CONTROLLER_THREAD_ROUTE","LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE","STREAM_AGENT_CONTROLLER_SESSION_ROUTE","SEND_AGENT_CONTROLLER_MESSAGE_ROUTE","STEER_AGENT_CONTROLLER_SESSION_ROUTE","FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE","ABORT_AGENT_CONTROLLER_SESSION_ROUTE","AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE","AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE","SWITCH_AGENT_CONTROLLER_MODE_ROUTE","SWITCH_AGENT_CONTROLLER_MODEL_ROUTE","SWITCH_AGENT_CONTROLLER_THREAD_ROUTE","SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE","GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE","GET_AGENT_CONTROLLER_OM_RECORD_ROUTE","SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE","GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE","GET_AGENT_CONTROLLER_GOAL_ROUTE","SET_AGENT_CONTROLLER_GOAL_ROUTE","UPDATE_AGENT_CONTROLLER_GOAL_ROUTE","CLEAR_AGENT_CONTROLLER_GOAL_ROUTE","GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE","SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE","SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE","SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE","LIST_AGENTS_ROUTE","GET_PROVIDERS_ROUTE","GET_AGENT_BY_ID_ROUTE","CLONE_AGENT_ROUTE","GET_SPEAKERS_ROUTE","GET_SPEAKERS_DEPRECATED_ROUTE","GENERATE_AGENT_ROUTE","GENERATE_AGENT_VNEXT_ROUTE","STREAM_GENERATE_ROUTE","STREAM_UNTIL_IDLE_GENERATE_ROUTE","STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE","OBSERVE_AGENT_STREAM_ROUTE","SEND_AGENT_MESSAGE_ROUTE","QUEUE_AGENT_MESSAGE_ROUTE","SEND_AGENT_SIGNAL_ROUTE","ABORT_AGENT_THREAD_ROUTE","SUBSCRIBE_AGENT_THREAD_ROUTE","EXECUTE_AGENT_TOOL_ROUTE","APPROVE_TOOL_CALL_ROUTE","SEND_TOOL_APPROVAL_ROUTE","LIST_SUSPENDED_RUNS_ROUTE","DECLINE_TOOL_CALL_ROUTE","RESUME_STREAM_ROUTE","APPROVE_TOOL_CALL_GENERATE_ROUTE","DECLINE_TOOL_CALL_GENERATE_ROUTE","APPROVE_NETWORK_TOOL_CALL_ROUTE","DECLINE_NETWORK_TOOL_CALL_ROUTE","RESUME_STREAM_UNTIL_IDLE_ROUTE","STREAM_NETWORK_ROUTE","UPDATE_AGENT_MODEL_ROUTE","RESET_AGENT_MODEL_ROUTE","REORDER_AGENT_MODEL_LIST_ROUTE","UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE","ENHANCE_INSTRUCTIONS_ROUTE","GET_AGENT_TOOL_ROUTE","GET_AGENT_SKILL_ROUTE","GENERATE_SPEECH_ROUTE","GENERATE_SPEECH_DEPRECATED_ROUTE","TRANSCRIBE_SPEECH_ROUTE","TRANSCRIBE_SPEECH_DEPRECATED_ROUTE","GET_LISTENER_ROUTE","STREAM_VNEXT_DEPRECATED_ROUTE","STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE","STREAM_UI_MESSAGE_DEPRECATED_ROUTE","BACKGROUND_TASK_STREAM_ROUTE","LIST_BACKGROUND_TASKS_ROUTE","GET_BACKGROUND_TASK_ROUTE","LIST_CHANNEL_PLATFORMS_ROUTE","LIST_CHANNEL_INSTALLATIONS_ROUTE","CONNECT_CHANNEL_ROUTE","DISCONNECT_CHANNEL_ROUTE","CREATE_CONVERSATION_ROUTE","GET_CONVERSATION_ROUTE","GET_CONVERSATION_ITEMS_ROUTE","DELETE_CONVERSATION_ROUTE","LIST_DATASETS_ROUTE","CREATE_DATASET_ROUTE","GET_DATASET_ROUTE","UPDATE_DATASET_ROUTE","DELETE_DATASET_ROUTE","LIST_ITEMS_ROUTE","ADD_ITEM_ROUTE","BATCH_INSERT_ITEMS_ROUTE","BATCH_DELETE_ITEMS_ROUTE","GET_ITEM_ROUTE","UPDATE_ITEM_ROUTE","DELETE_ITEM_ROUTE","LIST_DATASET_VERSIONS_ROUTE","LIST_ITEM_VERSIONS_ROUTE","GET_ITEM_VERSION_ROUTE","LIST_ALL_EXPERIMENTS_ROUTE","EXPERIMENT_REVIEW_SUMMARY_ROUTE","LIST_EXPERIMENTS_ROUTE","TRIGGER_EXPERIMENT_ROUTE","GET_EXPERIMENT_ROUTE","LIST_EXPERIMENT_RESULTS_ROUTE","UPDATE_EXPERIMENT_RESULT_ROUTE","COMPARE_EXPERIMENTS_ROUTE","GENERATE_ITEMS_ROUTE","CLUSTER_FAILURES_ROUTE","GET_EDITOR_BUILDER_SETTINGS_ROUTE","GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE","GET_INFRASTRUCTURE_STATUS_ROUTE","LIST_BUILDER_REGISTRIES_ROUTE","BUILDER_REGISTRY_SEARCH_ROUTE","BUILDER_REGISTRY_POPULAR_ROUTE","BUILDER_REGISTRY_PREVIEW_ROUTE","BUILDER_REGISTRY_INSTALL_ROUTE","LIST_HEARTBEATS_ROUTE","GET_HEARTBEAT_ROUTE","CREATE_HEARTBEAT_ROUTE","UPDATE_HEARTBEAT_ROUTE","DELETE_HEARTBEAT_ROUTE","PAUSE_HEARTBEAT_ROUTE","RESUME_HEARTBEAT_ROUTE","RUN_HEARTBEAT_ROUTE","GENERATE_LEGACY_ROUTE","STREAM_GENERATE_LEGACY_ROUTE","STREAM_LEGACY_WORKFLOW_ROUTE","OBSERVE_STREAM_LEGACY_WORKFLOW_ROUTE","LIST_LOG_TRANSPORTS_ROUTE","LIST_LOGS_ROUTE","LIST_LOGS_BY_RUN_ID_ROUTE","LIST_MCP_SERVERS_ROUTE","GET_MCP_SERVER_DETAIL_ROUTE","LIST_MCP_SERVER_TOOLS_ROUTE","GET_MCP_SERVER_TOOL_DETAIL_ROUTE","EXECUTE_MCP_SERVER_TOOL_ROUTE","LIST_MCP_SERVER_RESOURCES_ROUTE","READ_MCP_SERVER_RESOURCE_ROUTE","MCP_HTTP_TRANSPORT_ROUTE","MCP_SSE_TRANSPORT_ROUTE","MCP_SSE_MESSAGES_ROUTE","GET_MEMORY_STATUS_ROUTE","GET_MEMORY_CONFIG_ROUTE","GET_OBSERVATIONAL_MEMORY_ROUTE","AWAIT_BUFFER_STATUS_ROUTE","LIST_THREADS_ROUTE","GET_THREAD_BY_ID_ROUTE","LIST_MESSAGES_ROUTE","GET_WORKING_MEMORY_ROUTE","SAVE_MESSAGES_ROUTE","CREATE_THREAD_ROUTE","UPDATE_THREAD_ROUTE","DELETE_THREAD_ROUTE","CLONE_THREAD_ROUTE","UPDATE_WORKING_MEMORY_ROUTE","DELETE_MESSAGES_ROUTE","SEARCH_MEMORY_ROUTE","GET_MEMORY_STATUS_NETWORK_ROUTE","LIST_THREADS_NETWORK_ROUTE","GET_THREAD_BY_ID_NETWORK_ROUTE","LIST_MESSAGES_NETWORK_ROUTE","SAVE_MESSAGES_NETWORK_ROUTE","CREATE_THREAD_NETWORK_ROUTE","UPDATE_THREAD_NETWORK_ROUTE","DELETE_THREAD_NETWORK_ROUTE","DELETE_MESSAGES_NETWORK_ROUTE","LIST_TRACES_ROUTE","LIST_TRACES_LIGHT_ROUTE","LIST_BRANCHES_ROUTE","GET_BRANCH_ROUTE","GET_TRACE_ROUTE","GET_TRACE_LIGHT_ROUTE","GET_SPAN_ROUTE","GET_TRACE_TRAJECTORY_ROUTE","SCORE_TRACES_ROUTE","LIST_SCORES_BY_SPAN_ROUTE","LIST_METRICS","LIST_LOGS","LIST_SCORES","CREATE_SCORE","GET_SCORE","GET_SCORE_AGGREGATE","GET_SCORE_BREAKDOWN","GET_SCORE_TIME_SERIES","GET_SCORE_PERCENTILES","LIST_FEEDBACK","CREATE_FEEDBACK","GET_FEEDBACK_AGGREGATE","GET_FEEDBACK_BREAKDOWN","GET_FEEDBACK_TIME_SERIES","GET_FEEDBACK_PERCENTILES","GET_METRIC_AGGREGATE","GET_METRIC_BREAKDOWN","GET_METRIC_TIME_SERIES","GET_METRIC_PERCENTILES","GET_METRIC_NAMES","GET_METRIC_LABEL_KEYS","GET_METRIC_LABEL_VALUES","GET_ENTITY_TYPES","GET_ENTITY_NAMES","GET_SERVICE_NAMES","GET_ENVIRONMENTS","GET_TAGS","LIST_PROCESSOR_PROVIDERS_ROUTE","GET_PROCESSOR_PROVIDER_ROUTE","LIST_PROCESSORS_ROUTE","GET_PROCESSOR_BY_ID_ROUTE","EXECUTE_PROCESSOR_ROUTE","CREATE_RESPONSE_ROUTE","GET_RESPONSE_ROUTE","DELETE_RESPONSE_ROUTE","LIST_SCHEDULES_ROUTE","GET_SCHEDULE_ROUTE","LIST_SCHEDULE_TRIGGERS_ROUTE","PAUSE_SCHEDULE_ROUTE","RESUME_SCHEDULE_ROUTE","LIST_SCORERS_ROUTE","GET_SCORER_ROUTE","LIST_SCORES_BY_RUN_ID_ROUTE","LIST_SCORES_BY_SCORER_ID_ROUTE","LIST_SCORES_BY_ENTITY_ID_ROUTE","SAVE_SCORE_ROUTE","LIST_STORED_AGENTS_ROUTE","PREVIEW_INSTRUCTIONS_ROUTE","GET_STORED_AGENT_DEPENDENTS_ROUTE","EXPORT_STORED_AGENT_ROUTE","OPEN_STORED_AGENT_CHANGE_REQUEST_ROUTE","GET_STORED_AGENT_ROUTE","CREATE_STORED_AGENT_ROUTE","UPDATE_STORED_AGENT_ROUTE","DELETE_STORED_AGENT_ROUTE","LIST_AGENT_VERSIONS_ROUTE","CREATE_AGENT_VERSION_ROUTE","COMPARE_AGENT_VERSIONS_ROUTE","GET_AGENT_VERSION_ROUTE","ACTIVATE_AGENT_VERSION_ROUTE","RESTORE_AGENT_VERSION_ROUTE","DELETE_AGENT_VERSION_ROUTE","FAVORITE_STORED_AGENT_ROUTE","UNFAVORITE_STORED_AGENT_ROUTE","LIST_STORED_MCP_CLIENTS_ROUTE","GET_STORED_MCP_CLIENT_ROUTE","CREATE_STORED_MCP_CLIENT_ROUTE","UPDATE_STORED_MCP_CLIENT_ROUTE","DELETE_STORED_MCP_CLIENT_ROUTE","LIST_MCP_CLIENT_VERSIONS_ROUTE","CREATE_MCP_CLIENT_VERSION_ROUTE","COMPARE_MCP_CLIENT_VERSIONS_ROUTE","GET_MCP_CLIENT_VERSION_ROUTE","ACTIVATE_MCP_CLIENT_VERSION_ROUTE","RESTORE_MCP_CLIENT_VERSION_ROUTE","DELETE_MCP_CLIENT_VERSION_ROUTE","LIST_STORED_PROMPT_BLOCKS_ROUTE","GET_STORED_PROMPT_BLOCK_ROUTE","CREATE_STORED_PROMPT_BLOCK_ROUTE","UPDATE_STORED_PROMPT_BLOCK_ROUTE","DELETE_STORED_PROMPT_BLOCK_ROUTE","LIST_PROMPT_BLOCK_VERSIONS_ROUTE","CREATE_PROMPT_BLOCK_VERSION_ROUTE","COMPARE_PROMPT_BLOCK_VERSIONS_ROUTE","GET_PROMPT_BLOCK_VERSION_ROUTE","ACTIVATE_PROMPT_BLOCK_VERSION_ROUTE","RESTORE_PROMPT_BLOCK_VERSION_ROUTE","DELETE_PROMPT_BLOCK_VERSION_ROUTE","LIST_STORED_SCORERS_ROUTE","GET_STORED_SCORER_ROUTE","CREATE_STORED_SCORER_ROUTE","UPDATE_STORED_SCORER_ROUTE","DELETE_STORED_SCORER_ROUTE","LIST_SCORER_VERSIONS_ROUTE","CREATE_SCORER_VERSION_ROUTE","COMPARE_SCORER_VERSIONS_ROUTE","GET_SCORER_VERSION_ROUTE","ACTIVATE_SCORER_VERSION_ROUTE","RESTORE_SCORER_VERSION_ROUTE","DELETE_SCORER_VERSION_ROUTE","LIST_STORED_SKILLS_ROUTE","GET_STORED_SKILL_ROUTE","CREATE_STORED_SKILL_ROUTE","UPDATE_STORED_SKILL_ROUTE","DELETE_STORED_SKILL_ROUTE","PUBLISH_STORED_SKILL_ROUTE","FAVORITE_STORED_SKILL_ROUTE","UNFAVORITE_STORED_SKILL_ROUTE","LIST_STORED_WORKSPACES_ROUTE","GET_STORED_WORKSPACE_ROUTE","CREATE_STORED_WORKSPACE_ROUTE","UPDATE_STORED_WORKSPACE_ROUTE","DELETE_STORED_WORKSPACE_ROUTE","GET_SYSTEM_PACKAGES_ROUTE","GET_API_SCHEMA_ROUTE","LIST_TOOL_PROVIDERS_ROUTE","LIST_TOOL_PROVIDER_TOOLKITS_ROUTE","LIST_TOOL_PROVIDER_TOOLS_ROUTE","GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE","AUTHORIZE_TOOL_PROVIDER_ROUTE","GET_TOOL_PROVIDER_AUTH_STATUS_ROUTE","TOOL_PROVIDER_CONNECTION_STATUS_ROUTE","LIST_TOOL_PROVIDER_CONNECTIONS_ROUTE","LIST_TOOL_PROVIDER_CONNECTION_FIELDS_ROUTE","DISCONNECT_TOOL_PROVIDER_CONNECTION_ROUTE","UPDATE_TOOL_PROVIDER_CONNECTION_ROUTE","GET_TOOL_PROVIDER_CONNECTION_USAGE_ROUTE","GET_TOOL_PROVIDER_HEALTH_ROUTE","LIST_TOOLS_ROUTE","GET_TOOL_BY_ID_ROUTE","EXECUTE_TOOL_ROUTE","UPSERT_VECTORS_ROUTE","CREATE_INDEX_ROUTE","QUERY_VECTORS_ROUTE","LIST_INDEXES_ROUTE","DESCRIBE_INDEX_ROUTE","DELETE_INDEX_ROUTE","LIST_VECTORS_ROUTE","LIST_EMBEDDERS_ROUTE","LIST_WORKFLOWS_ROUTE","GET_WORKFLOW_BY_ID_ROUTE","LIST_WORKFLOW_RUNS_ROUTE","GET_WORKFLOW_RUN_BY_ID_ROUTE","DELETE_WORKFLOW_RUN_BY_ID_ROUTE","CREATE_WORKFLOW_RUN_ROUTE","STREAM_WORKFLOW_ROUTE","RESUME_STREAM_WORKFLOW_ROUTE","START_ASYNC_WORKFLOW_ROUTE","START_WORKFLOW_RUN_ROUTE","OBSERVE_STREAM_WORKFLOW_ROUTE","RESUME_ASYNC_WORKFLOW_ROUTE","RESUME_NO_WAIT_WORKFLOW_ROUTE","RESUME_WORKFLOW_ROUTE","CANCEL_WORKFLOW_RUN_ROUTE","TIME_TRAVEL_WORKFLOW_ROUTE","TIME_TRAVEL_ASYNC_WORKFLOW_ROUTE","TIME_TRAVEL_STREAM_WORKFLOW_ROUTE","RESTART_WORKFLOW_ROUTE","RESTART_ASYNC_WORKFLOW_ROUTE","RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ROUTE","RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ASYNC_ROUTE","EXECUTE_WORKFLOW_STEP_ROUTE","RECEIVE_WORKFLOW_EVENT_ROUTE","LIST_WORKSPACES_ROUTE","GET_WORKSPACE_ROUTE","WORKSPACE_FS_ROUTES","WORKSPACE_SEARCH_ROUTES","WORKSPACE_SKILLS_ROUTES","WORKSPACE_SKILLS_SH_ROUTES","AUTH_ROUTES"],"mappings":"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","file":"chunk-5NLRYTA7.cjs","sourcesContent":["/**\n * Permission derivation utilities for automatic route permission assignment.\n *\n * This module provides convention-based permission derivation from route paths and methods,\n * reducing the need to manually specify permissions on each route.\n *\n * Convention: `{resource}:{action}`\n * - resource: First path segment after common prefixes (e.g., 'agents', 'workflows', 'memory')\n * - action: Derived from HTTP method (GET→read, POST→write/execute, DELETE→delete, etc.)\n */\n\nimport type { ServerRoute } from './index';\n\n/**\n * Map HTTP methods to permission actions.\n * POST is context-dependent (write for data, execute for operations).\n */\nconst METHOD_TO_ACTION: Record<string, string> = {\n GET: 'read',\n POST: 'write', // Default for POST, may be overridden to 'execute'\n PUT: 'write',\n PATCH: 'write',\n DELETE: 'delete',\n};\n\n/**\n * Path patterns that indicate an \"execute\" action rather than \"write\" for POST requests.\n * These are typically operation endpoints rather than data creation endpoints.\n */\nconst EXECUTE_PATTERNS = [\n '/generate',\n '/stream',\n '/execute',\n '/start',\n '/resume',\n '/restart',\n '/cancel',\n '/approve',\n '/decline',\n '/speak',\n '/listen',\n '/query',\n '/search',\n '/observe',\n '/time-travel',\n '/enhance',\n '/clone',\n];\n\nconst PUBLISH_PATTERNS = ['/publish', '/activate', '/restore'];\n\n/**\n * Maps `/stored/<family>` URL segments to canonical permission resource slugs.\n */\nconst STORED_RESOURCE_SEGMENTS: Record<string, string> = {\n agents: 'stored-agents',\n 'mcp-clients': 'stored-mcp-clients',\n 'prompt-blocks': 'stored-prompt-blocks',\n scorers: 'stored-scorers',\n skills: 'stored-skills',\n workspaces: 'stored-workspaces',\n};\n\n/**\n * Extracts the primary resource name from a route path.\n *\n * The resource is derived from the first path segment, with special handling\n * for compound resources and well-known paths.\n *\n * Note: The canonical list of resources is generated in permissions.generated.ts\n * from SERVER_ROUTES via `pnpm generate:permissions`.\n *\n * @param path - The route path (e.g., '/agents/:agentId/generate')\n * @returns The resource name (e.g., 'agents') or null if not identifiable\n *\n * @example\n * extractResource('/agents/:agentId') // → 'agents'\n * extractResource('/memory/threads/:threadId') // → 'memory'\n * extractResource('/stored/agents/:agentId') // → 'stored-agents'\n * extractResource('/stored/skills/:skillId') // → 'stored-skills'\n */\nexport function extractResource(path: string): string | null {\n // Remove leading slash and split by segments\n const segments = path.replace(/^\\//, '').split('/');\n\n if (segments.length === 0) {\n return null;\n }\n\n const firstSegment = segments[0];\n\n // Handle special case: /stored/<family> → 'stored-<family>' (or mapped slug).\n // Uses exact segment match (not startsWith) so paths like /stored/skills-archive\n // don't incorrectly collapse into a stored family.\n if (firstSegment === 'stored' && segments[1]) {\n return STORED_RESOURCE_SEGMENTS[segments[1]] ?? null;\n }\n\n // Handle .well-known paths (A2A protocol)\n if (firstSegment === '.well-known') {\n return 'a2a';\n }\n\n return firstSegment || null;\n}\n\n/**\n * Determines the action based on HTTP method and path context.\n *\n * @param method - HTTP method (GET, POST, PUT, DELETE, etc.)\n * @param path - The route path for context\n * @returns The action string (read, write, execute, delete)\n */\nexport function deriveAction(method: string, path: string): string {\n const upperMethod = method.toUpperCase();\n\n // For POST requests, check if it's a publish, execute, or write operation.\n // Publish takes precedence over execute since these suffixes are distinct\n // version-lifecycle operations on stored resources. Restrict publish-suffix\n // matching to /stored/* paths so unrelated routes that happen to end with\n // /activate or /restore aren't accidentally classified as publish.\n if (upperMethod === 'POST') {\n // Restrict publish-suffix matching to /stored/* paths so unrelated routes\n // that happen to end with /activate or /restore aren't accidentally\n // classified as publish.\n if (path.startsWith('/stored/')) {\n const isPublishOperation = PUBLISH_PATTERNS.some(pattern => path.endsWith(pattern));\n if (isPublishOperation) {\n return 'publish';\n }\n }\n const isExecuteOperation = EXECUTE_PATTERNS.some(pattern => path.includes(pattern));\n return isExecuteOperation ? 'execute' : 'write';\n }\n\n return METHOD_TO_ACTION[upperMethod] || 'read';\n}\n\n/**\n * Derives a permission string from a route's path and method.\n *\n * Uses convention: `{resource}:{action}`\n *\n * @param route - The server route to derive permission for\n * @returns The derived permission string, or null if cannot be derived\n *\n * @example\n * derivePermission({ path: '/agents', method: 'GET' }) // → 'agents:read'\n * derivePermission({ path: '/agents/:id/generate', method: 'POST' }) // → 'agents:execute'\n * derivePermission({ path: '/workflows/:id', method: 'DELETE' }) // → 'workflows:delete'\n */\nexport function derivePermission(route: Pick<ServerRoute, 'path' | 'method'>): string | null {\n // Skip for ALL method (typically MCP transports)\n if (route.method === 'ALL') {\n return null;\n }\n\n const resource = extractResource(route.path);\n if (!resource) {\n return null;\n }\n\n const action = deriveAction(route.method, route.path);\n\n return `${resource}:${action}`;\n}\n\n/**\n * Gets the effective permission for a route.\n *\n * Priority:\n * 1. Explicit requiresPermission on the route (string or string[])\n * 2. Derived permission from path/method convention\n * 3. null (no permission required - should only happen for public routes)\n *\n * When the route specifies an array of permissions, the user needs ANY ONE\n * of them (logical OR). This is useful for routes that serve multiple\n * resource types.\n *\n * @param route - The server route\n * @returns The permission string, array of alternative permissions, or null\n */\nexport function getEffectivePermission(route: ServerRoute): string | string[] | null {\n // If route is explicitly public, no permission needed\n if (route.requiresAuth === false) {\n return null;\n }\n\n // Use explicit permission if set\n if (route.requiresPermission) {\n return route.requiresPermission;\n }\n\n // Derive permission from convention\n return derivePermission(route);\n}\n","import { GET_AGENT_CARD_ROUTE, AGENT_EXECUTION_ROUTE } from '../../handlers/a2a';\n\nexport const A2A_ROUTES = [GET_AGENT_CARD_ROUTE, AGENT_EXECUTION_ROUTE] as const;\n","import {\n LIST_AGENT_BUILDER_ACTIONS_ROUTE,\n GET_AGENT_BUILDER_ACTION_BY_ID_ROUTE,\n LIST_AGENT_BUILDER_ACTION_RUNS_ROUTE,\n GET_AGENT_BUILDER_ACTION_RUN_BY_ID_ROUTE,\n CREATE_AGENT_BUILDER_ACTION_RUN_ROUTE,\n STREAM_AGENT_BUILDER_ACTION_ROUTE,\n STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE,\n START_ASYNC_AGENT_BUILDER_ACTION_ROUTE,\n START_AGENT_BUILDER_ACTION_RUN_ROUTE,\n OBSERVE_STREAM_AGENT_BUILDER_ACTION_ROUTE,\n OBSERVE_STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_ASYNC_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_NO_WAIT_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_STREAM_AGENT_BUILDER_ACTION_ROUTE,\n CANCEL_AGENT_BUILDER_ACTION_RUN_ROUTE,\n} from '../../handlers/agent-builder';\n\nexport const AGENT_BUILDER_ROUTES = [\n LIST_AGENT_BUILDER_ACTIONS_ROUTE,\n GET_AGENT_BUILDER_ACTION_BY_ID_ROUTE,\n LIST_AGENT_BUILDER_ACTION_RUNS_ROUTE,\n GET_AGENT_BUILDER_ACTION_RUN_BY_ID_ROUTE,\n CREATE_AGENT_BUILDER_ACTION_RUN_ROUTE,\n STREAM_AGENT_BUILDER_ACTION_ROUTE,\n STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE,\n START_ASYNC_AGENT_BUILDER_ACTION_ROUTE,\n START_AGENT_BUILDER_ACTION_RUN_ROUTE,\n OBSERVE_STREAM_AGENT_BUILDER_ACTION_ROUTE,\n OBSERVE_STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_ASYNC_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_NO_WAIT_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_AGENT_BUILDER_ACTION_ROUTE,\n RESUME_STREAM_AGENT_BUILDER_ACTION_ROUTE,\n CANCEL_AGENT_BUILDER_ACTION_RUN_ROUTE,\n] as const;\n","import {\n LIST_AGENT_CONTROLLERS_ROUTE,\n CREATE_AGENT_CONTROLLER_SESSION_ROUTE,\n GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE,\n STREAM_AGENT_CONTROLLER_SESSION_ROUTE,\n SEND_AGENT_CONTROLLER_MESSAGE_ROUTE,\n STEER_AGENT_CONTROLLER_SESSION_ROUTE,\n ABORT_AGENT_CONTROLLER_SESSION_ROUTE,\n AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE,\n AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE,\n SWITCH_AGENT_CONTROLLER_MODE_ROUTE,\n SWITCH_AGENT_CONTROLLER_MODEL_ROUTE,\n SWITCH_AGENT_CONTROLLER_THREAD_ROUTE,\n LIST_AGENT_CONTROLLER_MODES_ROUTE,\n LIST_AGENT_CONTROLLER_THREADS_ROUTE,\n SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE,\n CREATE_AGENT_CONTROLLER_THREAD_ROUTE,\n DELETE_AGENT_CONTROLLER_THREAD_ROUTE,\n RENAME_AGENT_CONTROLLER_THREAD_ROUTE,\n CLONE_AGENT_CONTROLLER_THREAD_ROUTE,\n LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE,\n FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE,\n LIST_AGENT_CONTROLLER_MODELS_ROUTE,\n GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE,\n GET_AGENT_CONTROLLER_OM_RECORD_ROUTE,\n SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE,\n GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE,\n GET_AGENT_CONTROLLER_GOAL_ROUTE,\n SET_AGENT_CONTROLLER_GOAL_ROUTE,\n UPDATE_AGENT_CONTROLLER_GOAL_ROUTE,\n CLEAR_AGENT_CONTROLLER_GOAL_ROUTE,\n GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE,\n SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE,\n SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE,\n SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE,\n} from '../../handlers/agent-controller';\nimport type { ServerRoute } from '.';\n\n/**\n * Canonical `AgentController` session API, served under `/agent-controller/...`.\n */\nexport const AGENT_CONTROLLER_ROUTES: readonly ServerRoute[] = [\n LIST_AGENT_CONTROLLERS_ROUTE,\n LIST_AGENT_CONTROLLER_MODES_ROUTE,\n LIST_AGENT_CONTROLLER_MODELS_ROUTE,\n CREATE_AGENT_CONTROLLER_SESSION_ROUTE,\n GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE,\n LIST_AGENT_CONTROLLER_THREADS_ROUTE,\n CREATE_AGENT_CONTROLLER_THREAD_ROUTE,\n DELETE_AGENT_CONTROLLER_THREAD_ROUTE,\n RENAME_AGENT_CONTROLLER_THREAD_ROUTE,\n CLONE_AGENT_CONTROLLER_THREAD_ROUTE,\n LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE,\n STREAM_AGENT_CONTROLLER_SESSION_ROUTE,\n SEND_AGENT_CONTROLLER_MESSAGE_ROUTE,\n STEER_AGENT_CONTROLLER_SESSION_ROUTE,\n FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE,\n ABORT_AGENT_CONTROLLER_SESSION_ROUTE,\n AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE,\n AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE,\n SWITCH_AGENT_CONTROLLER_MODE_ROUTE,\n SWITCH_AGENT_CONTROLLER_MODEL_ROUTE,\n SWITCH_AGENT_CONTROLLER_THREAD_ROUTE,\n SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE,\n GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE,\n GET_AGENT_CONTROLLER_OM_RECORD_ROUTE,\n SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE,\n GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE,\n GET_AGENT_CONTROLLER_GOAL_ROUTE,\n SET_AGENT_CONTROLLER_GOAL_ROUTE,\n UPDATE_AGENT_CONTROLLER_GOAL_ROUTE,\n CLEAR_AGENT_CONTROLLER_GOAL_ROUTE,\n GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE,\n SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE,\n SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE,\n SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE,\n];\n","import {\n // Agent route objects\n LIST_AGENTS_ROUTE,\n GET_AGENT_BY_ID_ROUTE,\n CLONE_AGENT_ROUTE,\n GENERATE_AGENT_ROUTE,\n GENERATE_AGENT_VNEXT_ROUTE,\n STREAM_GENERATE_ROUTE,\n STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE,\n OBSERVE_AGENT_STREAM_ROUTE,\n SEND_AGENT_MESSAGE_ROUTE,\n QUEUE_AGENT_MESSAGE_ROUTE,\n SEND_AGENT_SIGNAL_ROUTE,\n ABORT_AGENT_THREAD_ROUTE,\n SUBSCRIBE_AGENT_THREAD_ROUTE,\n GET_PROVIDERS_ROUTE,\n APPROVE_TOOL_CALL_ROUTE,\n SEND_TOOL_APPROVAL_ROUTE,\n LIST_SUSPENDED_RUNS_ROUTE,\n DECLINE_TOOL_CALL_ROUTE,\n RESUME_STREAM_ROUTE,\n APPROVE_TOOL_CALL_GENERATE_ROUTE,\n DECLINE_TOOL_CALL_GENERATE_ROUTE,\n STREAM_NETWORK_ROUTE,\n UPDATE_AGENT_MODEL_ROUTE,\n RESET_AGENT_MODEL_ROUTE,\n REORDER_AGENT_MODEL_LIST_ROUTE,\n UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE,\n ENHANCE_INSTRUCTIONS_ROUTE,\n STREAM_VNEXT_DEPRECATED_ROUTE,\n STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE,\n STREAM_UI_MESSAGE_DEPRECATED_ROUTE,\n APPROVE_NETWORK_TOOL_CALL_ROUTE,\n DECLINE_NETWORK_TOOL_CALL_ROUTE,\n GET_AGENT_SKILL_ROUTE,\n STREAM_UNTIL_IDLE_GENERATE_ROUTE,\n RESUME_STREAM_UNTIL_IDLE_ROUTE,\n} from '../../handlers/agents';\nimport { GET_AGENT_TOOL_ROUTE, EXECUTE_AGENT_TOOL_ROUTE } from '../../handlers/tools';\nimport {\n GET_SPEAKERS_ROUTE,\n GET_SPEAKERS_DEPRECATED_ROUTE,\n GENERATE_SPEECH_ROUTE,\n GENERATE_SPEECH_DEPRECATED_ROUTE,\n TRANSCRIBE_SPEECH_ROUTE,\n TRANSCRIBE_SPEECH_DEPRECATED_ROUTE,\n GET_LISTENER_ROUTE,\n} from '../../handlers/voice';\nimport type { ServerRoute } from '.';\n\nexport const AGENTS_ROUTES: readonly ServerRoute[] = [\n // ============================================================================\n // Agent Core Routes\n // ============================================================================\n LIST_AGENTS_ROUTE,\n GET_PROVIDERS_ROUTE,\n GET_AGENT_BY_ID_ROUTE,\n CLONE_AGENT_ROUTE,\n\n // ============================================================================\n // Voice Routes\n // ============================================================================\n GET_SPEAKERS_ROUTE,\n GET_SPEAKERS_DEPRECATED_ROUTE,\n\n // ============================================================================\n // Agent Execution Routes\n // ============================================================================\n GENERATE_AGENT_ROUTE,\n GENERATE_AGENT_VNEXT_ROUTE,\n STREAM_GENERATE_ROUTE,\n STREAM_UNTIL_IDLE_GENERATE_ROUTE,\n STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE,\n\n // ============================================================================\n // Resumable Stream Routes\n // ============================================================================\n OBSERVE_AGENT_STREAM_ROUTE,\n SEND_AGENT_MESSAGE_ROUTE,\n QUEUE_AGENT_MESSAGE_ROUTE,\n SEND_AGENT_SIGNAL_ROUTE,\n ABORT_AGENT_THREAD_ROUTE,\n SUBSCRIBE_AGENT_THREAD_ROUTE,\n\n // ============================================================================\n // Tool Routes\n // ============================================================================\n EXECUTE_AGENT_TOOL_ROUTE,\n APPROVE_TOOL_CALL_ROUTE,\n SEND_TOOL_APPROVAL_ROUTE,\n LIST_SUSPENDED_RUNS_ROUTE,\n DECLINE_TOOL_CALL_ROUTE,\n RESUME_STREAM_ROUTE,\n APPROVE_TOOL_CALL_GENERATE_ROUTE,\n DECLINE_TOOL_CALL_GENERATE_ROUTE,\n APPROVE_NETWORK_TOOL_CALL_ROUTE,\n DECLINE_NETWORK_TOOL_CALL_ROUTE,\n RESUME_STREAM_UNTIL_IDLE_ROUTE,\n\n // ============================================================================\n // Network Routes\n // ============================================================================\n STREAM_NETWORK_ROUTE,\n\n // ============================================================================\n // Model Management Routes\n // ============================================================================\n UPDATE_AGENT_MODEL_ROUTE,\n RESET_AGENT_MODEL_ROUTE,\n REORDER_AGENT_MODEL_LIST_ROUTE,\n UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE,\n\n // ============================================================================\n // Instruction Enhancement Routes\n // ============================================================================\n ENHANCE_INSTRUCTIONS_ROUTE,\n\n // ============================================================================\n // Agent Tool Routes\n // ============================================================================\n GET_AGENT_TOOL_ROUTE,\n\n // ============================================================================\n // Agent Skill Routes\n // ============================================================================\n GET_AGENT_SKILL_ROUTE,\n\n // ============================================================================\n // Voice/Speech Routes\n // ============================================================================\n GENERATE_SPEECH_ROUTE,\n GENERATE_SPEECH_DEPRECATED_ROUTE,\n TRANSCRIBE_SPEECH_ROUTE,\n TRANSCRIBE_SPEECH_DEPRECATED_ROUTE,\n GET_LISTENER_ROUTE,\n\n // ============================================================================\n // Deprecated Routes\n // ============================================================================\n STREAM_VNEXT_DEPRECATED_ROUTE,\n STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE,\n STREAM_UI_MESSAGE_DEPRECATED_ROUTE,\n];\n\n/**\n * Type-level tuple preserving each agent route's specific schema types.\n * Used by ServerRoutes to build the type-level route map.\n */\nexport type AgentRoutes = readonly [\n typeof LIST_AGENTS_ROUTE,\n typeof GET_PROVIDERS_ROUTE,\n typeof GET_AGENT_BY_ID_ROUTE,\n typeof CLONE_AGENT_ROUTE,\n typeof GET_SPEAKERS_ROUTE,\n typeof GET_SPEAKERS_DEPRECATED_ROUTE,\n typeof GENERATE_AGENT_ROUTE,\n typeof GENERATE_AGENT_VNEXT_ROUTE,\n typeof STREAM_GENERATE_ROUTE,\n typeof STREAM_UNTIL_IDLE_GENERATE_ROUTE,\n typeof STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE,\n typeof SEND_AGENT_MESSAGE_ROUTE,\n typeof QUEUE_AGENT_MESSAGE_ROUTE,\n typeof SEND_AGENT_SIGNAL_ROUTE,\n typeof ABORT_AGENT_THREAD_ROUTE,\n typeof SUBSCRIBE_AGENT_THREAD_ROUTE,\n typeof EXECUTE_AGENT_TOOL_ROUTE,\n typeof APPROVE_TOOL_CALL_ROUTE,\n typeof SEND_TOOL_APPROVAL_ROUTE,\n typeof LIST_SUSPENDED_RUNS_ROUTE,\n typeof DECLINE_TOOL_CALL_ROUTE,\n typeof RESUME_STREAM_ROUTE,\n typeof RESUME_STREAM_UNTIL_IDLE_ROUTE,\n typeof APPROVE_TOOL_CALL_GENERATE_ROUTE,\n typeof DECLINE_TOOL_CALL_GENERATE_ROUTE,\n typeof APPROVE_NETWORK_TOOL_CALL_ROUTE,\n typeof DECLINE_NETWORK_TOOL_CALL_ROUTE,\n typeof STREAM_NETWORK_ROUTE,\n typeof UPDATE_AGENT_MODEL_ROUTE,\n typeof RESET_AGENT_MODEL_ROUTE,\n typeof REORDER_AGENT_MODEL_LIST_ROUTE,\n typeof UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE,\n typeof ENHANCE_INSTRUCTIONS_ROUTE,\n typeof GET_AGENT_TOOL_ROUTE,\n typeof GET_AGENT_SKILL_ROUTE,\n typeof GENERATE_SPEECH_ROUTE,\n typeof GENERATE_SPEECH_DEPRECATED_ROUTE,\n typeof TRANSCRIBE_SPEECH_ROUTE,\n typeof TRANSCRIBE_SPEECH_DEPRECATED_ROUTE,\n typeof GET_LISTENER_ROUTE,\n typeof STREAM_VNEXT_DEPRECATED_ROUTE,\n typeof STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE,\n typeof STREAM_UI_MESSAGE_DEPRECATED_ROUTE,\n];\n","import {\n BACKGROUND_TASK_STREAM_ROUTE,\n GET_BACKGROUND_TASK_ROUTE,\n LIST_BACKGROUND_TASKS_ROUTE,\n} from '../../handlers/background-tasks';\nimport type { ServerRoute } from '.';\n\nexport const BACKGROUND_TASK_ROUTES: ServerRoute<any, any, any>[] = [\n BACKGROUND_TASK_STREAM_ROUTE,\n LIST_BACKGROUND_TASKS_ROUTE,\n GET_BACKGROUND_TASK_ROUTE,\n];\n","import {\n LIST_CHANNEL_PLATFORMS_ROUTE,\n LIST_CHANNEL_INSTALLATIONS_ROUTE,\n CONNECT_CHANNEL_ROUTE,\n DISCONNECT_CHANNEL_ROUTE,\n} from '../../handlers/channels';\n\nexport const CHANNELS_ROUTES = [\n LIST_CHANNEL_PLATFORMS_ROUTE,\n LIST_CHANNEL_INSTALLATIONS_ROUTE,\n CONNECT_CHANNEL_ROUTE,\n DISCONNECT_CHANNEL_ROUTE,\n] as const;\n","import {\n CREATE_CONVERSATION_ROUTE,\n DELETE_CONVERSATION_ROUTE,\n GET_CONVERSATION_ITEMS_ROUTE,\n GET_CONVERSATION_ROUTE,\n} from '../../handlers/conversations';\n\nexport const CONVERSATIONS_ROUTES = [\n CREATE_CONVERSATION_ROUTE,\n GET_CONVERSATION_ROUTE,\n GET_CONVERSATION_ITEMS_ROUTE,\n DELETE_CONVERSATION_ROUTE,\n] as const;\n","import {\n LIST_DATASETS_ROUTE,\n CREATE_DATASET_ROUTE,\n GET_DATASET_ROUTE,\n UPDATE_DATASET_ROUTE,\n DELETE_DATASET_ROUTE,\n LIST_ITEMS_ROUTE,\n ADD_ITEM_ROUTE,\n GET_ITEM_ROUTE,\n UPDATE_ITEM_ROUTE,\n DELETE_ITEM_ROUTE,\n LIST_ALL_EXPERIMENTS_ROUTE,\n EXPERIMENT_REVIEW_SUMMARY_ROUTE,\n LIST_EXPERIMENTS_ROUTE,\n TRIGGER_EXPERIMENT_ROUTE,\n GET_EXPERIMENT_ROUTE,\n LIST_EXPERIMENT_RESULTS_ROUTE,\n UPDATE_EXPERIMENT_RESULT_ROUTE,\n COMPARE_EXPERIMENTS_ROUTE,\n LIST_DATASET_VERSIONS_ROUTE,\n LIST_ITEM_VERSIONS_ROUTE,\n GET_ITEM_VERSION_ROUTE,\n BATCH_INSERT_ITEMS_ROUTE,\n BATCH_DELETE_ITEMS_ROUTE,\n GENERATE_ITEMS_ROUTE,\n CLUSTER_FAILURES_ROUTE,\n} from '../../handlers/datasets';\n\nexport const DATASETS_ROUTES = [\n // Dataset CRUD\n LIST_DATASETS_ROUTE,\n CREATE_DATASET_ROUTE,\n GET_DATASET_ROUTE,\n UPDATE_DATASET_ROUTE,\n DELETE_DATASET_ROUTE,\n // Item list and add\n LIST_ITEMS_ROUTE,\n ADD_ITEM_ROUTE,\n // Batch operations - MUST come before item-specific routes to avoid /items/batch matching /items/:itemId\n BATCH_INSERT_ITEMS_ROUTE,\n BATCH_DELETE_ITEMS_ROUTE,\n // Item-specific CRUD (uses :itemId param)\n GET_ITEM_ROUTE,\n UPDATE_ITEM_ROUTE,\n DELETE_ITEM_ROUTE,\n // Version operations\n LIST_DATASET_VERSIONS_ROUTE,\n LIST_ITEM_VERSIONS_ROUTE,\n GET_ITEM_VERSION_ROUTE,\n // All experiments (cross-dataset) - MUST come before dataset-scoped experiments\n LIST_ALL_EXPERIMENTS_ROUTE,\n // Experiment review summary (cross-dataset) - MUST come before dataset-scoped experiments\n EXPERIMENT_REVIEW_SUMMARY_ROUTE,\n // Experiment operations (dataset-scoped)\n LIST_EXPERIMENTS_ROUTE,\n TRIGGER_EXPERIMENT_ROUTE,\n GET_EXPERIMENT_ROUTE,\n LIST_EXPERIMENT_RESULTS_ROUTE,\n UPDATE_EXPERIMENT_RESULT_ROUTE,\n // Analytics\n COMPARE_EXPERIMENTS_ROUTE,\n // AI generation\n GENERATE_ITEMS_ROUTE,\n // Failure analysis\n CLUSTER_FAILURES_ROUTE,\n] as const;\n","import {\n BUILDER_REGISTRY_INSTALL_ROUTE,\n BUILDER_REGISTRY_POPULAR_ROUTE,\n BUILDER_REGISTRY_PREVIEW_ROUTE,\n BUILDER_REGISTRY_SEARCH_ROUTE,\n LIST_BUILDER_REGISTRIES_ROUTE,\n} from '../../handlers/builder-registry';\nimport {\n GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE,\n GET_EDITOR_BUILDER_SETTINGS_ROUTE,\n GET_INFRASTRUCTURE_STATUS_ROUTE,\n} from '../../handlers/editor-builder';\n\n/**\n * Editor Builder Routes\n *\n * Routes for agent builder settings, infrastructure status, and external\n * skill registries.\n */\nexport const EDITOR_BUILDER_ROUTES = [\n GET_EDITOR_BUILDER_SETTINGS_ROUTE,\n GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE,\n GET_INFRASTRUCTURE_STATUS_ROUTE,\n LIST_BUILDER_REGISTRIES_ROUTE,\n BUILDER_REGISTRY_SEARCH_ROUTE,\n BUILDER_REGISTRY_POPULAR_ROUTE,\n BUILDER_REGISTRY_PREVIEW_ROUTE,\n BUILDER_REGISTRY_INSTALL_ROUTE,\n] as const;\n","import {\n CREATE_HEARTBEAT_ROUTE,\n DELETE_HEARTBEAT_ROUTE,\n GET_HEARTBEAT_ROUTE,\n LIST_HEARTBEATS_ROUTE,\n PAUSE_HEARTBEAT_ROUTE,\n RESUME_HEARTBEAT_ROUTE,\n RUN_HEARTBEAT_ROUTE,\n UPDATE_HEARTBEAT_ROUTE,\n} from '../../handlers/heartbeats';\nimport type { ServerRoute } from '.';\n\nexport const HEARTBEATS_ROUTES: ServerRoute<any, any, any>[] = [\n LIST_HEARTBEATS_ROUTE,\n GET_HEARTBEAT_ROUTE,\n CREATE_HEARTBEAT_ROUTE,\n UPDATE_HEARTBEAT_ROUTE,\n DELETE_HEARTBEAT_ROUTE,\n PAUSE_HEARTBEAT_ROUTE,\n RESUME_HEARTBEAT_ROUTE,\n RUN_HEARTBEAT_ROUTE,\n];\n","/**\n * Legacy routes that are deprecated but still exist in deployer for backward compatibility.\n * These routes should not be used in new code and will be removed in a future version.\n */\n\nimport { GENERATE_LEGACY_ROUTE, STREAM_GENERATE_LEGACY_ROUTE } from '../../handlers/agents';\nimport { STREAM_LEGACY_WORKFLOW_ROUTE, OBSERVE_STREAM_LEGACY_WORKFLOW_ROUTE } from '../../handlers/workflows';\n\nexport const LEGACY_ROUTES = [\n // ============================================================================\n // Legacy Agent Routes\n // ============================================================================\n GENERATE_LEGACY_ROUTE,\n STREAM_GENERATE_LEGACY_ROUTE,\n\n // ============================================================================\n // Legacy Workflow Routes\n // ============================================================================\n STREAM_LEGACY_WORKFLOW_ROUTE,\n OBSERVE_STREAM_LEGACY_WORKFLOW_ROUTE,\n] as const;\n","import { LIST_LOG_TRANSPORTS_ROUTE, LIST_LOGS_ROUTE, LIST_LOGS_BY_RUN_ID_ROUTE } from '../../handlers/logs';\n\nexport const LOGS_ROUTES = [LIST_LOG_TRANSPORTS_ROUTE, LIST_LOGS_ROUTE, LIST_LOGS_BY_RUN_ID_ROUTE] as const;\n","import {\n LIST_MCP_SERVERS_ROUTE,\n GET_MCP_SERVER_DETAIL_ROUTE,\n LIST_MCP_SERVER_TOOLS_ROUTE,\n GET_MCP_SERVER_TOOL_DETAIL_ROUTE,\n EXECUTE_MCP_SERVER_TOOL_ROUTE,\n LIST_MCP_SERVER_RESOURCES_ROUTE,\n READ_MCP_SERVER_RESOURCE_ROUTE,\n MCP_HTTP_TRANSPORT_ROUTE,\n MCP_SSE_TRANSPORT_ROUTE,\n MCP_SSE_MESSAGES_ROUTE,\n} from '../../handlers/mcp';\n\n/**\n * MCP Routes\n *\n * Registry routes provide access to the MCP server registry and tools.\n * Transport routes handle the MCP protocol communication (HTTP and SSE).\n */\nexport const MCP_ROUTES = [\n // ============================================================================\n // MCP Server Registry Routes\n // ============================================================================\n LIST_MCP_SERVERS_ROUTE,\n GET_MCP_SERVER_DETAIL_ROUTE,\n\n // ============================================================================\n // MCP Server Tool Routes\n // ============================================================================\n LIST_MCP_SERVER_TOOLS_ROUTE,\n GET_MCP_SERVER_TOOL_DETAIL_ROUTE,\n EXECUTE_MCP_SERVER_TOOL_ROUTE,\n\n // ============================================================================\n // MCP Server Resource Routes\n // ============================================================================\n LIST_MCP_SERVER_RESOURCES_ROUTE,\n READ_MCP_SERVER_RESOURCE_ROUTE,\n\n // ============================================================================\n // MCP Transport Routes (handled by adapters)\n // ============================================================================\n MCP_HTTP_TRANSPORT_ROUTE,\n MCP_SSE_TRANSPORT_ROUTE,\n MCP_SSE_MESSAGES_ROUTE,\n] as const;\n","import {\n GET_MEMORY_STATUS_ROUTE,\n GET_MEMORY_CONFIG_ROUTE,\n GET_OBSERVATIONAL_MEMORY_ROUTE,\n AWAIT_BUFFER_STATUS_ROUTE,\n LIST_THREADS_ROUTE,\n GET_THREAD_BY_ID_ROUTE,\n LIST_MESSAGES_ROUTE,\n GET_WORKING_MEMORY_ROUTE,\n SAVE_MESSAGES_ROUTE,\n CREATE_THREAD_ROUTE,\n UPDATE_THREAD_ROUTE,\n DELETE_THREAD_ROUTE,\n CLONE_THREAD_ROUTE,\n UPDATE_WORKING_MEMORY_ROUTE,\n DELETE_MESSAGES_ROUTE,\n SEARCH_MEMORY_ROUTE,\n GET_MEMORY_STATUS_NETWORK_ROUTE,\n LIST_THREADS_NETWORK_ROUTE,\n GET_THREAD_BY_ID_NETWORK_ROUTE,\n LIST_MESSAGES_NETWORK_ROUTE,\n SAVE_MESSAGES_NETWORK_ROUTE,\n CREATE_THREAD_NETWORK_ROUTE,\n UPDATE_THREAD_NETWORK_ROUTE,\n DELETE_THREAD_NETWORK_ROUTE,\n DELETE_MESSAGES_NETWORK_ROUTE,\n} from '../../handlers/memory';\n\nexport const MEMORY_ROUTES = [\n GET_MEMORY_STATUS_ROUTE,\n GET_MEMORY_CONFIG_ROUTE,\n GET_OBSERVATIONAL_MEMORY_ROUTE,\n AWAIT_BUFFER_STATUS_ROUTE,\n LIST_THREADS_ROUTE,\n GET_THREAD_BY_ID_ROUTE,\n LIST_MESSAGES_ROUTE,\n GET_WORKING_MEMORY_ROUTE,\n SAVE_MESSAGES_ROUTE,\n CREATE_THREAD_ROUTE,\n UPDATE_THREAD_ROUTE,\n DELETE_THREAD_ROUTE,\n CLONE_THREAD_ROUTE,\n UPDATE_WORKING_MEMORY_ROUTE,\n DELETE_MESSAGES_ROUTE,\n SEARCH_MEMORY_ROUTE,\n GET_MEMORY_STATUS_NETWORK_ROUTE,\n LIST_THREADS_NETWORK_ROUTE,\n GET_THREAD_BY_ID_NETWORK_ROUTE,\n LIST_MESSAGES_NETWORK_ROUTE,\n SAVE_MESSAGES_NETWORK_ROUTE,\n CREATE_THREAD_NETWORK_ROUTE,\n UPDATE_THREAD_NETWORK_ROUTE,\n DELETE_THREAD_NETWORK_ROUTE,\n DELETE_MESSAGES_NETWORK_ROUTE,\n] as const;\n","import {\n LIST_TRACES_ROUTE,\n LIST_TRACES_LIGHT_ROUTE,\n LIST_BRANCHES_ROUTE,\n GET_BRANCH_ROUTE,\n GET_TRACE_ROUTE,\n GET_TRACE_LIGHT_ROUTE,\n GET_SPAN_ROUTE,\n GET_TRACE_TRAJECTORY_ROUTE,\n SCORE_TRACES_ROUTE,\n LIST_SCORES_BY_SPAN_ROUTE,\n} from '../../handlers/observability';\nimport {\n LIST_METRICS,\n LIST_LOGS,\n LIST_SCORES,\n CREATE_SCORE,\n GET_SCORE,\n GET_SCORE_AGGREGATE,\n GET_SCORE_BREAKDOWN,\n GET_SCORE_TIME_SERIES,\n GET_SCORE_PERCENTILES,\n LIST_FEEDBACK,\n CREATE_FEEDBACK,\n GET_FEEDBACK_AGGREGATE,\n GET_FEEDBACK_BREAKDOWN,\n GET_FEEDBACK_TIME_SERIES,\n GET_FEEDBACK_PERCENTILES,\n GET_METRIC_AGGREGATE,\n GET_METRIC_BREAKDOWN,\n GET_METRIC_TIME_SERIES,\n GET_METRIC_PERCENTILES,\n GET_METRIC_NAMES,\n GET_METRIC_LABEL_KEYS,\n GET_METRIC_LABEL_VALUES,\n GET_ENTITY_TYPES,\n GET_ENTITY_NAMES,\n GET_SERVICE_NAMES,\n GET_ENVIRONMENTS,\n GET_TAGS,\n} from '../../handlers/observability-new-endpoints';\n\nexport const OBSERVABILITY_ROUTES = [\n // Legacy\n LIST_TRACES_ROUTE,\n LIST_TRACES_LIGHT_ROUTE,\n LIST_BRANCHES_ROUTE,\n GET_BRANCH_ROUTE,\n GET_TRACE_ROUTE,\n GET_TRACE_LIGHT_ROUTE,\n GET_SPAN_ROUTE,\n GET_TRACE_TRAJECTORY_ROUTE,\n SCORE_TRACES_ROUTE,\n LIST_SCORES_BY_SPAN_ROUTE,\n // New observability routes\n LIST_METRICS,\n LIST_LOGS,\n LIST_SCORES,\n CREATE_SCORE,\n GET_SCORE,\n GET_SCORE_AGGREGATE,\n GET_SCORE_BREAKDOWN,\n GET_SCORE_TIME_SERIES,\n GET_SCORE_PERCENTILES,\n LIST_FEEDBACK,\n CREATE_FEEDBACK,\n GET_FEEDBACK_AGGREGATE,\n GET_FEEDBACK_BREAKDOWN,\n GET_FEEDBACK_TIME_SERIES,\n GET_FEEDBACK_PERCENTILES,\n GET_METRIC_AGGREGATE,\n GET_METRIC_BREAKDOWN,\n GET_METRIC_TIME_SERIES,\n GET_METRIC_PERCENTILES,\n GET_METRIC_NAMES,\n GET_METRIC_LABEL_KEYS,\n GET_METRIC_LABEL_VALUES,\n GET_ENTITY_TYPES,\n GET_ENTITY_NAMES,\n GET_SERVICE_NAMES,\n GET_ENVIRONMENTS,\n GET_TAGS,\n] as const;\n","import { LIST_PROCESSOR_PROVIDERS_ROUTE, GET_PROCESSOR_PROVIDER_ROUTE } from '../../handlers/processor-providers';\n\nexport const PROCESSOR_PROVIDER_ROUTES = [LIST_PROCESSOR_PROVIDERS_ROUTE, GET_PROCESSOR_PROVIDER_ROUTE] as const;\n","import { LIST_PROCESSORS_ROUTE, GET_PROCESSOR_BY_ID_ROUTE, EXECUTE_PROCESSOR_ROUTE } from '../../handlers/processors';\n\nexport const PROCESSORS_ROUTES = [LIST_PROCESSORS_ROUTE, GET_PROCESSOR_BY_ID_ROUTE, EXECUTE_PROCESSOR_ROUTE] as const;\n","import { CREATE_RESPONSE_ROUTE, DELETE_RESPONSE_ROUTE, GET_RESPONSE_ROUTE } from '../../handlers/responses';\n\nexport const RESPONSES_ROUTES = [CREATE_RESPONSE_ROUTE, GET_RESPONSE_ROUTE, DELETE_RESPONSE_ROUTE] as const;\n","import {\n GET_SCHEDULE_ROUTE,\n LIST_SCHEDULES_ROUTE,\n LIST_SCHEDULE_TRIGGERS_ROUTE,\n PAUSE_SCHEDULE_ROUTE,\n RESUME_SCHEDULE_ROUTE,\n} from '../../handlers/schedules';\nimport type { ServerRoute } from '.';\n\nexport const SCHEDULES_ROUTES: ServerRoute<any, any, any>[] = [\n LIST_SCHEDULES_ROUTE,\n GET_SCHEDULE_ROUTE,\n LIST_SCHEDULE_TRIGGERS_ROUTE,\n PAUSE_SCHEDULE_ROUTE,\n RESUME_SCHEDULE_ROUTE,\n];\n","import {\n LIST_SCORERS_ROUTE,\n GET_SCORER_ROUTE,\n LIST_SCORES_BY_RUN_ID_ROUTE,\n LIST_SCORES_BY_SCORER_ID_ROUTE,\n LIST_SCORES_BY_ENTITY_ID_ROUTE,\n SAVE_SCORE_ROUTE,\n} from '../../handlers/scores';\n\nexport const SCORES_ROUTES = [\n LIST_SCORERS_ROUTE,\n GET_SCORER_ROUTE,\n LIST_SCORES_BY_RUN_ID_ROUTE,\n LIST_SCORES_BY_SCORER_ID_ROUTE,\n LIST_SCORES_BY_ENTITY_ID_ROUTE,\n SAVE_SCORE_ROUTE,\n] as const;\n","import {\n LIST_AGENT_VERSIONS_ROUTE,\n CREATE_AGENT_VERSION_ROUTE,\n GET_AGENT_VERSION_ROUTE,\n ACTIVATE_AGENT_VERSION_ROUTE,\n RESTORE_AGENT_VERSION_ROUTE,\n DELETE_AGENT_VERSION_ROUTE,\n COMPARE_AGENT_VERSIONS_ROUTE,\n} from '../../handlers/agent-versions';\nimport { FAVORITE_STORED_AGENT_ROUTE, UNFAVORITE_STORED_AGENT_ROUTE } from '../../handlers/stored-agent-favorites';\nimport {\n LIST_STORED_AGENTS_ROUTE,\n GET_STORED_AGENT_ROUTE,\n GET_STORED_AGENT_DEPENDENTS_ROUTE,\n CREATE_STORED_AGENT_ROUTE,\n UPDATE_STORED_AGENT_ROUTE,\n DELETE_STORED_AGENT_ROUTE,\n PREVIEW_INSTRUCTIONS_ROUTE,\n EXPORT_STORED_AGENT_ROUTE,\n OPEN_STORED_AGENT_CHANGE_REQUEST_ROUTE,\n} from '../../handlers/stored-agents';\nimport type { ServerRoute } from '.';\n\n/**\n * Routes for stored agents CRUD operations and version management.\n * These routes provide API access to agent configurations stored in the database,\n * enabling dynamic creation and management of agents via Mastra Studio.\n */\nexport const STORED_AGENTS_ROUTES: readonly ServerRoute[] = [\n // ============================================================================\n // Stored Agents CRUD Routes\n // IMPORTANT: Routes with literal paths (e.g., /preview-instructions) must come\n // BEFORE routes with path parameters (e.g., /:storedAgentId) to ensure correct matching.\n // ============================================================================\n LIST_STORED_AGENTS_ROUTE,\n PREVIEW_INSTRUCTIONS_ROUTE, // Must be before GET_STORED_AGENT_ROUTE\n GET_STORED_AGENT_DEPENDENTS_ROUTE, // Must be before GET_STORED_AGENT_ROUTE (longer literal)\n EXPORT_STORED_AGENT_ROUTE, // Must be before GET_STORED_AGENT_ROUTE\n OPEN_STORED_AGENT_CHANGE_REQUEST_ROUTE, // Must be before GET_STORED_AGENT_ROUTE\n GET_STORED_AGENT_ROUTE,\n CREATE_STORED_AGENT_ROUTE,\n UPDATE_STORED_AGENT_ROUTE,\n DELETE_STORED_AGENT_ROUTE,\n\n // ============================================================================\n // Agent Versions Routes\n // IMPORTANT: Routes with literal paths (e.g., /compare) must come BEFORE\n // routes with path parameters (e.g., /:versionId) to ensure correct matching.\n // ============================================================================\n LIST_AGENT_VERSIONS_ROUTE,\n CREATE_AGENT_VERSION_ROUTE,\n COMPARE_AGENT_VERSIONS_ROUTE, // Must be before GET_AGENT_VERSION_ROUTE\n GET_AGENT_VERSION_ROUTE,\n ACTIVATE_AGENT_VERSION_ROUTE,\n RESTORE_AGENT_VERSION_ROUTE,\n DELETE_AGENT_VERSION_ROUTE,\n\n // ============================================================================\n // Favorites (EE)\n // ============================================================================\n FAVORITE_STORED_AGENT_ROUTE,\n UNFAVORITE_STORED_AGENT_ROUTE,\n];\n\n/**\n * Type-level tuple preserving each stored agent route's specific schema types.\n * Used by ServerRoutes to build the type-level route map.\n */\nexport type StoredAgentRoutes = readonly [\n typeof LIST_STORED_AGENTS_ROUTE,\n typeof PREVIEW_INSTRUCTIONS_ROUTE,\n typeof GET_STORED_AGENT_DEPENDENTS_ROUTE,\n typeof EXPORT_STORED_AGENT_ROUTE,\n typeof OPEN_STORED_AGENT_CHANGE_REQUEST_ROUTE,\n typeof GET_STORED_AGENT_ROUTE,\n typeof CREATE_STORED_AGENT_ROUTE,\n typeof UPDATE_STORED_AGENT_ROUTE,\n typeof DELETE_STORED_AGENT_ROUTE,\n typeof LIST_AGENT_VERSIONS_ROUTE,\n typeof CREATE_AGENT_VERSION_ROUTE,\n typeof COMPARE_AGENT_VERSIONS_ROUTE,\n typeof GET_AGENT_VERSION_ROUTE,\n typeof ACTIVATE_AGENT_VERSION_ROUTE,\n typeof RESTORE_AGENT_VERSION_ROUTE,\n typeof DELETE_AGENT_VERSION_ROUTE,\n typeof FAVORITE_STORED_AGENT_ROUTE,\n typeof UNFAVORITE_STORED_AGENT_ROUTE,\n];\n","import {\n LIST_MCP_CLIENT_VERSIONS_ROUTE,\n CREATE_MCP_CLIENT_VERSION_ROUTE,\n GET_MCP_CLIENT_VERSION_ROUTE,\n ACTIVATE_MCP_CLIENT_VERSION_ROUTE,\n RESTORE_MCP_CLIENT_VERSION_ROUTE,\n DELETE_MCP_CLIENT_VERSION_ROUTE,\n COMPARE_MCP_CLIENT_VERSIONS_ROUTE,\n} from '../../handlers/mcp-client-versions';\nimport {\n LIST_STORED_MCP_CLIENTS_ROUTE,\n GET_STORED_MCP_CLIENT_ROUTE,\n CREATE_STORED_MCP_CLIENT_ROUTE,\n UPDATE_STORED_MCP_CLIENT_ROUTE,\n DELETE_STORED_MCP_CLIENT_ROUTE,\n} from '../../handlers/stored-mcp-clients';\n\nexport const STORED_MCP_CLIENTS_ROUTES = [\n // Stored MCP Clients CRUD Routes\n LIST_STORED_MCP_CLIENTS_ROUTE,\n GET_STORED_MCP_CLIENT_ROUTE,\n CREATE_STORED_MCP_CLIENT_ROUTE,\n UPDATE_STORED_MCP_CLIENT_ROUTE,\n DELETE_STORED_MCP_CLIENT_ROUTE,\n\n // MCP Client Versions Routes\n // IMPORTANT: Routes with literal paths (e.g., /compare) must come BEFORE\n // routes with path parameters (e.g., /:versionId) to ensure correct matching.\n LIST_MCP_CLIENT_VERSIONS_ROUTE,\n CREATE_MCP_CLIENT_VERSION_ROUTE,\n COMPARE_MCP_CLIENT_VERSIONS_ROUTE,\n GET_MCP_CLIENT_VERSION_ROUTE,\n ACTIVATE_MCP_CLIENT_VERSION_ROUTE,\n RESTORE_MCP_CLIENT_VERSION_ROUTE,\n DELETE_MCP_CLIENT_VERSION_ROUTE,\n] as const;\n","import {\n LIST_PROMPT_BLOCK_VERSIONS_ROUTE,\n CREATE_PROMPT_BLOCK_VERSION_ROUTE,\n GET_PROMPT_BLOCK_VERSION_ROUTE,\n ACTIVATE_PROMPT_BLOCK_VERSION_ROUTE,\n RESTORE_PROMPT_BLOCK_VERSION_ROUTE,\n DELETE_PROMPT_BLOCK_VERSION_ROUTE,\n COMPARE_PROMPT_BLOCK_VERSIONS_ROUTE,\n} from '../../handlers/prompt-block-versions';\nimport {\n LIST_STORED_PROMPT_BLOCKS_ROUTE,\n GET_STORED_PROMPT_BLOCK_ROUTE,\n CREATE_STORED_PROMPT_BLOCK_ROUTE,\n UPDATE_STORED_PROMPT_BLOCK_ROUTE,\n DELETE_STORED_PROMPT_BLOCK_ROUTE,\n} from '../../handlers/stored-prompt-blocks';\n\nexport const STORED_PROMPT_BLOCKS_ROUTES = [\n // Stored Prompt Blocks CRUD Routes\n LIST_STORED_PROMPT_BLOCKS_ROUTE,\n GET_STORED_PROMPT_BLOCK_ROUTE,\n CREATE_STORED_PROMPT_BLOCK_ROUTE,\n UPDATE_STORED_PROMPT_BLOCK_ROUTE,\n DELETE_STORED_PROMPT_BLOCK_ROUTE,\n\n // Prompt Block Versions Routes\n // IMPORTANT: Routes with literal paths (e.g., /compare) must come BEFORE\n // routes with path parameters (e.g., /:versionId) to ensure correct matching.\n LIST_PROMPT_BLOCK_VERSIONS_ROUTE,\n CREATE_PROMPT_BLOCK_VERSION_ROUTE,\n COMPARE_PROMPT_BLOCK_VERSIONS_ROUTE,\n GET_PROMPT_BLOCK_VERSION_ROUTE,\n ACTIVATE_PROMPT_BLOCK_VERSION_ROUTE,\n RESTORE_PROMPT_BLOCK_VERSION_ROUTE,\n DELETE_PROMPT_BLOCK_VERSION_ROUTE,\n] as const;\n","import {\n LIST_SCORER_VERSIONS_ROUTE,\n CREATE_SCORER_VERSION_ROUTE,\n GET_SCORER_VERSION_ROUTE,\n ACTIVATE_SCORER_VERSION_ROUTE,\n RESTORE_SCORER_VERSION_ROUTE,\n DELETE_SCORER_VERSION_ROUTE,\n COMPARE_SCORER_VERSIONS_ROUTE,\n} from '../../handlers/scorer-versions';\nimport {\n LIST_STORED_SCORERS_ROUTE,\n GET_STORED_SCORER_ROUTE,\n CREATE_STORED_SCORER_ROUTE,\n UPDATE_STORED_SCORER_ROUTE,\n DELETE_STORED_SCORER_ROUTE,\n} from '../../handlers/stored-scorers';\n\nexport const STORED_SCORERS_ROUTES = [\n // Stored Scorers CRUD Routes\n LIST_STORED_SCORERS_ROUTE,\n GET_STORED_SCORER_ROUTE,\n CREATE_STORED_SCORER_ROUTE,\n UPDATE_STORED_SCORER_ROUTE,\n DELETE_STORED_SCORER_ROUTE,\n\n // Scorer Versions Routes\n // IMPORTANT: Routes with literal paths (e.g., /compare) must come BEFORE\n // routes with path parameters (e.g., /:versionId) to ensure correct matching.\n LIST_SCORER_VERSIONS_ROUTE,\n CREATE_SCORER_VERSION_ROUTE,\n COMPARE_SCORER_VERSIONS_ROUTE,\n GET_SCORER_VERSION_ROUTE,\n ACTIVATE_SCORER_VERSION_ROUTE,\n RESTORE_SCORER_VERSION_ROUTE,\n DELETE_SCORER_VERSION_ROUTE,\n] as const;\n","import { FAVORITE_STORED_SKILL_ROUTE, UNFAVORITE_STORED_SKILL_ROUTE } from '../../handlers/stored-skill-favorites';\nimport {\n LIST_STORED_SKILLS_ROUTE,\n GET_STORED_SKILL_ROUTE,\n CREATE_STORED_SKILL_ROUTE,\n UPDATE_STORED_SKILL_ROUTE,\n DELETE_STORED_SKILL_ROUTE,\n PUBLISH_STORED_SKILL_ROUTE,\n} from '../../handlers/stored-skills';\n\nexport const STORED_SKILLS_ROUTES = [\n // Stored Skills CRUD Routes\n LIST_STORED_SKILLS_ROUTE,\n GET_STORED_SKILL_ROUTE,\n CREATE_STORED_SKILL_ROUTE,\n UPDATE_STORED_SKILL_ROUTE,\n DELETE_STORED_SKILL_ROUTE,\n // Publish\n PUBLISH_STORED_SKILL_ROUTE,\n // Favorites (EE)\n FAVORITE_STORED_SKILL_ROUTE,\n UNFAVORITE_STORED_SKILL_ROUTE,\n] as const;\n","import {\n LIST_STORED_WORKSPACES_ROUTE,\n GET_STORED_WORKSPACE_ROUTE,\n CREATE_STORED_WORKSPACE_ROUTE,\n UPDATE_STORED_WORKSPACE_ROUTE,\n DELETE_STORED_WORKSPACE_ROUTE,\n} from '../../handlers/stored-workspaces';\n\nexport const STORED_WORKSPACES_ROUTES = [\n // Stored Workspaces CRUD Routes\n LIST_STORED_WORKSPACES_ROUTE,\n GET_STORED_WORKSPACE_ROUTE,\n CREATE_STORED_WORKSPACE_ROUTE,\n UPDATE_STORED_WORKSPACE_ROUTE,\n DELETE_STORED_WORKSPACE_ROUTE,\n] as const;\n","import { GET_API_SCHEMA_ROUTE, GET_SYSTEM_PACKAGES_ROUTE } from '../../handlers/system';\n\n/**\n * System Routes\n *\n * Routes for system information and diagnostics.\n */\nexport const SYSTEM_ROUTES = [GET_SYSTEM_PACKAGES_ROUTE, GET_API_SCHEMA_ROUTE] as const;\n","import {\n AUTHORIZE_TOOL_PROVIDER_ROUTE,\n DISCONNECT_TOOL_PROVIDER_CONNECTION_ROUTE,\n GET_TOOL_PROVIDER_AUTH_STATUS_ROUTE,\n GET_TOOL_PROVIDER_CONNECTION_USAGE_ROUTE,\n GET_TOOL_PROVIDER_HEALTH_ROUTE,\n GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE,\n LIST_TOOL_PROVIDERS_ROUTE,\n LIST_TOOL_PROVIDER_CONNECTIONS_ROUTE,\n LIST_TOOL_PROVIDER_CONNECTION_FIELDS_ROUTE,\n LIST_TOOL_PROVIDER_TOOLKITS_ROUTE,\n LIST_TOOL_PROVIDER_TOOLS_ROUTE,\n TOOL_PROVIDER_CONNECTION_STATUS_ROUTE,\n UPDATE_TOOL_PROVIDER_CONNECTION_ROUTE,\n} from '../../handlers/tool-providers';\n\nexport const TOOL_PROVIDER_ROUTES = [\n LIST_TOOL_PROVIDERS_ROUTE,\n LIST_TOOL_PROVIDER_TOOLKITS_ROUTE,\n LIST_TOOL_PROVIDER_TOOLS_ROUTE,\n GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE,\n AUTHORIZE_TOOL_PROVIDER_ROUTE,\n GET_TOOL_PROVIDER_AUTH_STATUS_ROUTE,\n TOOL_PROVIDER_CONNECTION_STATUS_ROUTE,\n LIST_TOOL_PROVIDER_CONNECTIONS_ROUTE,\n LIST_TOOL_PROVIDER_CONNECTION_FIELDS_ROUTE,\n DISCONNECT_TOOL_PROVIDER_CONNECTION_ROUTE,\n UPDATE_TOOL_PROVIDER_CONNECTION_ROUTE,\n GET_TOOL_PROVIDER_CONNECTION_USAGE_ROUTE,\n GET_TOOL_PROVIDER_HEALTH_ROUTE,\n] as const;\n","import { LIST_TOOLS_ROUTE, GET_TOOL_BY_ID_ROUTE, EXECUTE_TOOL_ROUTE } from '../../handlers/tools';\n\nexport const TOOLS_ROUTES = [LIST_TOOLS_ROUTE, GET_TOOL_BY_ID_ROUTE, EXECUTE_TOOL_ROUTE] as const;\n","import {\n UPSERT_VECTORS_ROUTE,\n CREATE_INDEX_ROUTE,\n QUERY_VECTORS_ROUTE,\n LIST_INDEXES_ROUTE,\n DESCRIBE_INDEX_ROUTE,\n DELETE_INDEX_ROUTE,\n LIST_VECTORS_ROUTE,\n LIST_EMBEDDERS_ROUTE,\n} from '../../handlers/vector';\n\nexport const VECTORS_ROUTES = [\n UPSERT_VECTORS_ROUTE,\n CREATE_INDEX_ROUTE,\n QUERY_VECTORS_ROUTE,\n LIST_INDEXES_ROUTE,\n DESCRIBE_INDEX_ROUTE,\n DELETE_INDEX_ROUTE,\n LIST_VECTORS_ROUTE,\n LIST_EMBEDDERS_ROUTE,\n] as const;\n","import {\n LIST_WORKFLOWS_ROUTE,\n GET_WORKFLOW_BY_ID_ROUTE,\n LIST_WORKFLOW_RUNS_ROUTE,\n GET_WORKFLOW_RUN_BY_ID_ROUTE,\n CREATE_WORKFLOW_RUN_ROUTE,\n STREAM_WORKFLOW_ROUTE,\n RESUME_STREAM_WORKFLOW_ROUTE,\n START_ASYNC_WORKFLOW_ROUTE,\n START_WORKFLOW_RUN_ROUTE,\n OBSERVE_STREAM_WORKFLOW_ROUTE,\n RESUME_ASYNC_WORKFLOW_ROUTE,\n RESUME_NO_WAIT_WORKFLOW_ROUTE,\n RESUME_WORKFLOW_ROUTE,\n CANCEL_WORKFLOW_RUN_ROUTE,\n TIME_TRAVEL_WORKFLOW_ROUTE,\n TIME_TRAVEL_STREAM_WORKFLOW_ROUTE,\n RESTART_WORKFLOW_ROUTE,\n RESTART_ASYNC_WORKFLOW_ROUTE,\n RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ROUTE,\n RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ASYNC_ROUTE,\n TIME_TRAVEL_ASYNC_WORKFLOW_ROUTE,\n DELETE_WORKFLOW_RUN_BY_ID_ROUTE,\n EXECUTE_WORKFLOW_STEP_ROUTE,\n RECEIVE_WORKFLOW_EVENT_ROUTE,\n} from '../../handlers/workflows';\n\nexport const WORKFLOWS_ROUTES = [\n LIST_WORKFLOWS_ROUTE,\n GET_WORKFLOW_BY_ID_ROUTE,\n LIST_WORKFLOW_RUNS_ROUTE,\n GET_WORKFLOW_RUN_BY_ID_ROUTE,\n DELETE_WORKFLOW_RUN_BY_ID_ROUTE,\n CREATE_WORKFLOW_RUN_ROUTE,\n STREAM_WORKFLOW_ROUTE,\n RESUME_STREAM_WORKFLOW_ROUTE,\n START_ASYNC_WORKFLOW_ROUTE,\n START_WORKFLOW_RUN_ROUTE,\n OBSERVE_STREAM_WORKFLOW_ROUTE,\n RESUME_ASYNC_WORKFLOW_ROUTE,\n RESUME_NO_WAIT_WORKFLOW_ROUTE,\n RESUME_WORKFLOW_ROUTE,\n CANCEL_WORKFLOW_RUN_ROUTE,\n TIME_TRAVEL_WORKFLOW_ROUTE,\n TIME_TRAVEL_ASYNC_WORKFLOW_ROUTE,\n TIME_TRAVEL_STREAM_WORKFLOW_ROUTE,\n RESTART_WORKFLOW_ROUTE,\n RESTART_ASYNC_WORKFLOW_ROUTE,\n RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ROUTE,\n RESTART_ALL_ACTIVE_WORKFLOW_RUNS_ASYNC_ROUTE,\n EXECUTE_WORKFLOW_STEP_ROUTE,\n RECEIVE_WORKFLOW_EVENT_ROUTE,\n] as const;\n","/**\n * Workspace Routes\n *\n * All routes for workspace operations under /api/workspaces/*\n */\n\nimport {\n LIST_WORKSPACES_ROUTE,\n GET_WORKSPACE_ROUTE,\n WORKSPACE_FS_ROUTES,\n WORKSPACE_SEARCH_ROUTES,\n WORKSPACE_SKILLS_ROUTES,\n WORKSPACE_SKILLS_SH_ROUTES,\n} from '../../handlers/workspace';\n\nexport const WORKSPACE_ROUTES = [\n // List all workspaces route (at /api/workspaces)\n LIST_WORKSPACES_ROUTE,\n\n // Get workspace route (at /api/workspaces/:workspaceId)\n GET_WORKSPACE_ROUTE,\n\n // Filesystem routes (at /api/workspaces/:workspaceId/fs/*)\n ...WORKSPACE_FS_ROUTES,\n\n // Search routes (at /api/workspaces/:workspaceId/search, /api/workspaces/:workspaceId/index)\n ...WORKSPACE_SEARCH_ROUTES,\n\n // Skills routes (search must come before parameterized routes)\n ...WORKSPACE_SKILLS_ROUTES,\n\n // skills.sh proxy routes (at /api/workspaces/:workspaceId/skills-sh/*)\n ...WORKSPACE_SKILLS_SH_ROUTES,\n] as const;\n","import type { Mastra } from '@mastra/core';\nimport type { ToolsInput } from '@mastra/core/agent';\nimport type { FGARouteConfig, MastraFGAPermissionInput } from '@mastra/core/auth/ee';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { ApiRoute, ValidationErrorHook } from '@mastra/core/server';\nimport type * as z from 'zod/v4';\nimport type { InMemoryTaskStore } from '../../a2a/store';\nimport type { OpenAPIRoute } from '../openapi-utils';\nimport { A2A_ROUTES } from './a2a';\nimport { AGENT_BUILDER_ROUTES } from './agent-builder';\nimport { AGENT_CONTROLLER_ROUTES } from './agent-controller';\nimport { AGENTS_ROUTES } from './agents';\nimport type { AgentRoutes } from './agents';\nimport { AUTH_ROUTES } from './auth';\nimport { BACKGROUND_TASK_ROUTES } from './background-tasks';\nimport { CHANNELS_ROUTES } from './channels';\nimport { CONVERSATIONS_ROUTES } from './conversations';\nimport { DATASETS_ROUTES } from './datasets';\nimport { EDITOR_BUILDER_ROUTES } from './editor-builder';\nimport { HEARTBEATS_ROUTES } from './heartbeats';\nimport { LEGACY_ROUTES } from './legacy';\nimport { LOGS_ROUTES } from './logs';\nimport { MCP_ROUTES } from './mcp';\nimport { MEMORY_ROUTES } from './memory';\nimport { OBSERVABILITY_ROUTES } from './observability';\nimport { PROCESSOR_PROVIDER_ROUTES } from './processor-providers';\nimport { PROCESSORS_ROUTES } from './processors';\nimport { RESPONSES_ROUTES } from './responses';\nimport { SCHEDULES_ROUTES } from './schedules';\nimport { SCORES_ROUTES } from './scorers';\nimport { STORED_AGENTS_ROUTES } from './stored-agents';\nimport type { StoredAgentRoutes } from './stored-agents';\nimport { STORED_MCP_CLIENTS_ROUTES } from './stored-mcp-clients';\nimport { STORED_PROMPT_BLOCKS_ROUTES } from './stored-prompt-blocks';\nimport { STORED_SCORERS_ROUTES } from './stored-scorers';\nimport { STORED_SKILLS_ROUTES } from './stored-skills';\nimport { STORED_WORKSPACES_ROUTES } from './stored-workspaces';\nimport type { MastraStreamReturn } from './stream-types';\nimport { SYSTEM_ROUTES } from './system';\nimport { TOOL_PROVIDER_ROUTES } from './tool-providers';\nimport { TOOLS_ROUTES } from './tools';\nimport { VECTORS_ROUTES } from './vectors';\nimport { WORKFLOWS_ROUTES } from './workflows';\nimport { WORKSPACE_ROUTES } from './workspace';\n\n/**\n * Server context fields that are available to route handlers.\n * These are injected by the server adapters (Express, Hono, etc.)\n * Fields other than `mastra` are optional to allow direct handler testing.\n */\nexport type ServerContext = {\n mastra: Mastra;\n requestContext: RequestContext;\n registeredTools?: ToolsInput;\n taskStore?: InMemoryTaskStore;\n abortSignal: AbortSignal;\n /** The route prefix configured for the server (e.g., '/api') */\n routePrefix?: string;\n /** The web-standard Request object for accessing headers, cookies, etc. */\n request?: Request;\n};\n\n/**\n * Utility type to infer parameters from Zod schemas.\n * Merges path params, query params, and body params into a single type.\n */\nexport type InferParams<\n TPathSchema extends z.ZodTypeAny | undefined,\n TQuerySchema extends z.ZodTypeAny | undefined,\n TBodySchema extends z.ZodTypeAny | undefined,\n> = (TPathSchema extends z.ZodTypeAny ? z.infer<TPathSchema> : {}) &\n (TQuerySchema extends z.ZodTypeAny ? z.infer<TQuerySchema> : {}) &\n (TBodySchema extends z.ZodTypeAny ? z.infer<TBodySchema> : {});\n\n/**\n * All supported response types for server routes.\n * - 'json': Standard JSON response\n * - 'stream': Streaming response (SSE or raw stream)\n * - 'datastream-response': Pre-built Response object for data streams\n * - 'mcp-http': MCP Streamable HTTP transport (handled by adapter)\n * - 'mcp-sse': MCP SSE transport (handled by adapter)\n */\nexport type ResponseType = 'stream' | 'json' | 'datastream-response' | 'mcp-http' | 'mcp-sse';\n\nexport type ServerRouteHandler<\n TParams = Record<string, unknown>,\n TResponse = unknown,\n TResponseType extends ResponseType = 'json',\n> = (\n params: TParams & ServerContext,\n) => Promise<\n TResponseType extends 'stream'\n ? MastraStreamReturn\n : TResponseType extends 'datastream-response'\n ? Response\n : TResponse\n>;\n\n/**\n * Phantom type for preserving Zod schema types on routes.\n * Not present at runtime — used only for type-level inference via RouteMap.\n */\nexport interface RouteSchemas<\n TPathSchema = unknown,\n TQuerySchema = unknown,\n TBodySchema = unknown,\n TResponseSchema = unknown,\n> {\n readonly pathParams: TPathSchema;\n readonly queryParams: TQuerySchema;\n readonly body: TBodySchema;\n readonly response: TResponseSchema;\n}\n\nexport type ServerRoute<\n TParams = Record<string, unknown>,\n TResponse = unknown,\n TResponseType extends ResponseType = ResponseType,\n TSchemas extends RouteSchemas = RouteSchemas,\n TMethod extends string = string,\n TPath extends string = string,\n> = Omit<ApiRoute, 'handler' | 'createHandler' | 'method' | 'path' | 'openapi'> & {\n method: TMethod;\n path: TPath;\n responseType: TResponseType;\n streamFormat?: 'sse' | 'stream'; // Only used when responseType is 'stream', defaults to 'stream'\n sseFlushOnConnect?: boolean;\n // Method signature is bivariant in params, allowing heterogeneous route arrays\n // while still preserving specific param types on individual routes.\n handler(params: TParams & ServerContext): ReturnType<ServerRouteHandler<TParams, TResponse, TResponseType>>;\n pathParamSchema?: z.ZodSchema;\n queryParamSchema?: z.ZodSchema;\n bodySchema?: z.ZodSchema;\n responseSchema?: z.ZodSchema;\n openapi?: OpenAPIRoute; // Auto-generated OpenAPI spec for this route\n maxBodySize?: number; // Optional route-specific body size limit in bytes\n deprecated?: boolean; // Flag for deprecated routes (used for route parity, skipped in tests)\n /**\n * Permission required to access this route (EE feature).\n * If set, the user must have this permission to access the route.\n * Uses the format: `resource:action` or `resource:action:resourceId`\n *\n * When an array is provided, the user needs ANY ONE of the listed permissions\n * (logical OR). This is useful for routes that serve multiple resource types,\n * e.g. a streaming endpoint used by both runtime and stored agents.\n *\n * @example\n * requiresPermission: MastraFGAPermissions.AGENTS_READ\n * requiresPermission: MastraFGAPermissions.WORKFLOWS_EXECUTE\n */\n requiresPermission?: MastraFGAPermissionInput | MastraFGAPermissionInput[];\n /**\n * FGA authorization config for this route (EE feature).\n * If set, the user must have the specified permission on the resource.\n *\n * @example\n * fga: { resourceType: 'agent', resourceIdParam: 'agentId', permission: MastraFGAPermissions.AGENTS_EXECUTE }\n */\n fga?: FGARouteConfig;\n onValidationError?: ValidationErrorHook;\n /** @internal Phantom type — not present at runtime. Used for type-level schema inference. */\n readonly __schemas?: TSchemas;\n};\n\nexport const SERVER_ROUTES: readonly ServerRoute[] = [\n ...AGENTS_ROUTES,\n ...AUTH_ROUTES,\n ...WORKFLOWS_ROUTES,\n ...TOOLS_ROUTES,\n ...PROCESSORS_ROUTES,\n ...RESPONSES_ROUTES,\n ...CONVERSATIONS_ROUTES,\n ...MEMORY_ROUTES,\n ...SCORES_ROUTES,\n ...OBSERVABILITY_ROUTES,\n ...LOGS_ROUTES,\n ...VECTORS_ROUTES,\n ...A2A_ROUTES,\n ...WORKSPACE_ROUTES,\n ...LEGACY_ROUTES,\n ...MCP_ROUTES,\n ...STORED_AGENTS_ROUTES,\n ...STORED_MCP_CLIENTS_ROUTES,\n ...STORED_PROMPT_BLOCKS_ROUTES,\n ...STORED_SCORERS_ROUTES,\n ...STORED_WORKSPACES_ROUTES,\n ...STORED_SKILLS_ROUTES,\n ...TOOL_PROVIDER_ROUTES,\n ...PROCESSOR_PROVIDER_ROUTES,\n ...SYSTEM_ROUTES,\n ...DATASETS_ROUTES,\n ...BACKGROUND_TASK_ROUTES,\n ...EDITOR_BUILDER_ROUTES,\n ...AGENT_BUILDER_ROUTES,\n ...SCHEDULES_ROUTES,\n ...HEARTBEATS_ROUTES,\n ...CHANNELS_ROUTES,\n ...AGENT_CONTROLLER_ROUTES,\n];\n\n/**\n * Union type of all individual route arrays.\n * Built from the per-domain `as const` tuples to preserve each route's specific schema types.\n */\nexport type ServerRoutes = readonly [\n ...AgentRoutes,\n ...typeof AUTH_ROUTES,\n ...typeof WORKFLOWS_ROUTES,\n ...typeof TOOLS_ROUTES,\n ...typeof PROCESSORS_ROUTES,\n ...typeof RESPONSES_ROUTES,\n ...typeof CONVERSATIONS_ROUTES,\n ...typeof MEMORY_ROUTES,\n ...typeof SCORES_ROUTES,\n ...typeof OBSERVABILITY_ROUTES,\n ...typeof LOGS_ROUTES,\n ...typeof VECTORS_ROUTES,\n ...typeof A2A_ROUTES,\n ...typeof AGENT_BUILDER_ROUTES,\n ...typeof WORKSPACE_ROUTES,\n ...typeof LEGACY_ROUTES,\n ...typeof MCP_ROUTES,\n ...StoredAgentRoutes,\n ...typeof STORED_MCP_CLIENTS_ROUTES,\n ...typeof STORED_PROMPT_BLOCKS_ROUTES,\n ...typeof STORED_SCORERS_ROUTES,\n ...typeof STORED_WORKSPACES_ROUTES,\n ...typeof STORED_SKILLS_ROUTES,\n ...typeof TOOL_PROVIDER_ROUTES,\n ...typeof PROCESSOR_PROVIDER_ROUTES,\n ...typeof SYSTEM_ROUTES,\n ...typeof DATASETS_ROUTES,\n ...typeof EDITOR_BUILDER_ROUTES,\n ...typeof CHANNELS_ROUTES,\n];\n\n// Export route builder and OpenAPI utilities\nexport { createRoute, createPublicRoute, pickParams, jsonQueryParam, wrapSchemaForQueryParams } from './route-builder';\nexport { generateOpenAPIDocument } from '../openapi-utils';\n\n// Export permission utilities\nexport { derivePermission, extractResource, deriveAction, getEffectivePermission } from './permissions';\n"]}