@mastra/server 1.38.0-alpha.3 → 1.38.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 (144) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/dist/{api-schema-manifest-DV7H6SLV.cjs → api-schema-manifest-JTQHOGKZ.cjs} +4 -4
  3. package/dist/{api-schema-manifest-DV7H6SLV.cjs.map → api-schema-manifest-JTQHOGKZ.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-2HZM3JT7.js → api-schema-manifest-MIQHCYPS.js} +3 -3
  5. package/dist/{api-schema-manifest-2HZM3JT7.js.map → api-schema-manifest-MIQHCYPS.js.map} +1 -1
  6. package/dist/{chunk-VJHJY3AS.js → chunk-234HJ3C3.js} +9 -30
  7. package/dist/chunk-234HJ3C3.js.map +1 -0
  8. package/dist/{chunk-YUTVYY3X.js → chunk-2DTOYQQ4.js} +3 -3
  9. package/dist/{chunk-YUTVYY3X.js.map → chunk-2DTOYQQ4.js.map} +1 -1
  10. package/dist/{chunk-FQIFYDKU.js → chunk-5SM6OBSO.js} +3 -3
  11. package/dist/{chunk-FQIFYDKU.js.map → chunk-5SM6OBSO.js.map} +1 -1
  12. package/dist/{chunk-2WUP6QIZ.cjs → chunk-65ZS7YK4.cjs} +5 -5
  13. package/dist/{chunk-2WUP6QIZ.cjs.map → chunk-65ZS7YK4.cjs.map} +1 -1
  14. package/dist/{chunk-TDAAXXUA.cjs → chunk-67X7UIDG.cjs} +9 -5
  15. package/dist/chunk-67X7UIDG.cjs.map +1 -0
  16. package/dist/chunk-6FHJAHQJ.cjs +234 -0
  17. package/dist/chunk-6FHJAHQJ.cjs.map +1 -0
  18. package/dist/{chunk-7N5OFQB3.cjs → chunk-6KPE7KSJ.cjs} +14 -14
  19. package/dist/{chunk-7N5OFQB3.cjs.map → chunk-6KPE7KSJ.cjs.map} +1 -1
  20. package/dist/{chunk-WQMMOPJQ.cjs → chunk-ANFNDHDM.cjs} +16 -16
  21. package/dist/{chunk-WQMMOPJQ.cjs.map → chunk-ANFNDHDM.cjs.map} +1 -1
  22. package/dist/{chunk-EFMN6TTT.js → chunk-APGJQAJ7.js} +3 -3
  23. package/dist/{chunk-EFMN6TTT.js.map → chunk-APGJQAJ7.js.map} +1 -1
  24. package/dist/{chunk-GII2QWIN.cjs → chunk-BO3KDJW5.cjs} +5 -5
  25. package/dist/{chunk-GII2QWIN.cjs.map → chunk-BO3KDJW5.cjs.map} +1 -1
  26. package/dist/{chunk-XHPUK2PC.cjs → chunk-CZM46CXF.cjs} +20 -20
  27. package/dist/{chunk-XHPUK2PC.cjs.map → chunk-CZM46CXF.cjs.map} +1 -1
  28. package/dist/chunk-DEYP5MF7.cjs +605 -0
  29. package/dist/chunk-DEYP5MF7.cjs.map +1 -0
  30. package/dist/{chunk-HNPFUM7G.js → chunk-EN3XZKLJ.js} +24 -16
  31. package/dist/chunk-EN3XZKLJ.js.map +1 -0
  32. package/dist/{chunk-3MCPTOLN.cjs → chunk-EQF2PRTA.cjs} +4 -4
  33. package/dist/{chunk-3MCPTOLN.cjs.map → chunk-EQF2PRTA.cjs.map} +1 -1
  34. package/dist/{chunk-PN3LDOLZ.js → chunk-FYCTKP2F.js} +9 -2
  35. package/dist/chunk-FYCTKP2F.js.map +1 -0
  36. package/dist/chunk-G7N4TLWZ.js +206 -0
  37. package/dist/chunk-G7N4TLWZ.js.map +1 -0
  38. package/dist/{chunk-TJ7OH3RN.cjs → chunk-HR5UNJF7.cjs} +3 -3
  39. package/dist/{chunk-TJ7OH3RN.cjs.map → chunk-HR5UNJF7.cjs.map} +1 -1
  40. package/dist/{chunk-HAT56AXO.cjs → chunk-JV2TL2NQ.cjs} +5 -5
  41. package/dist/{chunk-HAT56AXO.cjs.map → chunk-JV2TL2NQ.cjs.map} +1 -1
  42. package/dist/{chunk-FLBKRRNC.js → chunk-LJRCDF42.js} +3 -3
  43. package/dist/{chunk-FLBKRRNC.js.map → chunk-LJRCDF42.js.map} +1 -1
  44. package/dist/{chunk-NTXMKBCU.js → chunk-MCRZYWPS.js} +3 -3
  45. package/dist/{chunk-NTXMKBCU.js.map → chunk-MCRZYWPS.js.map} +1 -1
  46. package/dist/{chunk-QBMOXGFZ.js → chunk-MZ3EAJXG.js} +8 -4
  47. package/dist/chunk-MZ3EAJXG.js.map +1 -0
  48. package/dist/{chunk-6GNMUI4P.js → chunk-OGJFOIOH.js} +3 -3
  49. package/dist/{chunk-6GNMUI4P.js.map → chunk-OGJFOIOH.js.map} +1 -1
  50. package/dist/{chunk-C3E5C74L.cjs → chunk-OM7HESYA.cjs} +4 -4
  51. package/dist/{chunk-C3E5C74L.cjs.map → chunk-OM7HESYA.cjs.map} +1 -1
  52. package/dist/{chunk-R6CMAAEQ.js → chunk-PJI3MJPX.js} +3 -3
  53. package/dist/{chunk-R6CMAAEQ.js.map → chunk-PJI3MJPX.js.map} +1 -1
  54. package/dist/{chunk-N42WTSJL.cjs → chunk-Q5NDXAZ2.cjs} +104 -96
  55. package/dist/chunk-Q5NDXAZ2.cjs.map +1 -0
  56. package/dist/chunk-QB5CXFV7.js +592 -0
  57. package/dist/chunk-QB5CXFV7.js.map +1 -0
  58. package/dist/{chunk-3E2YDRGM.js → chunk-QCCJOLRZ.js} +3 -3
  59. package/dist/{chunk-3E2YDRGM.js.map → chunk-QCCJOLRZ.js.map} +1 -1
  60. package/dist/{chunk-X5NKEO7W.cjs → chunk-R6HOWZFY.cjs} +5 -5
  61. package/dist/{chunk-X5NKEO7W.cjs.map → chunk-R6HOWZFY.cjs.map} +1 -1
  62. package/dist/{chunk-OJ2LSGSK.js → chunk-R6SXN4ZF.js} +3 -3
  63. package/dist/{chunk-OJ2LSGSK.js.map → chunk-R6SXN4ZF.js.map} +1 -1
  64. package/dist/{chunk-MWJ6ISO7.cjs → chunk-RZ5J47R2.cjs} +4 -4
  65. package/dist/{chunk-MWJ6ISO7.cjs.map → chunk-RZ5J47R2.cjs.map} +1 -1
  66. package/dist/{chunk-QWT4ON3B.cjs → chunk-T254JS3B.cjs} +9 -2
  67. package/dist/chunk-T254JS3B.cjs.map +1 -0
  68. package/dist/{chunk-4FHOUNUN.js → chunk-TNRHBPDN.js} +3 -3
  69. package/dist/{chunk-4FHOUNUN.js.map → chunk-TNRHBPDN.js.map} +1 -1
  70. package/dist/{chunk-FYMY45UE.cjs → chunk-URLWJKB6.cjs} +15 -15
  71. package/dist/{chunk-FYMY45UE.cjs.map → chunk-URLWJKB6.cjs.map} +1 -1
  72. package/dist/{chunk-YF6SK4WY.cjs → chunk-UTBBNDFB.cjs} +22 -43
  73. package/dist/chunk-UTBBNDFB.cjs.map +1 -0
  74. package/dist/{chunk-3SSPJA4Y.js → chunk-UWETKNZ3.js} +3 -3
  75. package/dist/{chunk-3SSPJA4Y.js.map → chunk-UWETKNZ3.js.map} +1 -1
  76. package/dist/{chunk-ICYY6O53.cjs → chunk-VYDWPLTW.cjs} +4 -4
  77. package/dist/{chunk-ICYY6O53.cjs.map → chunk-VYDWPLTW.cjs.map} +1 -1
  78. package/dist/{chunk-LPB5BN2D.js → chunk-XVLL5IGQ.js} +3 -3
  79. package/dist/{chunk-LPB5BN2D.js.map → chunk-XVLL5IGQ.js.map} +1 -1
  80. package/dist/{chunk-VI7ODS36.js → chunk-ZIBWBUTB.js} +3 -3
  81. package/dist/{chunk-VI7ODS36.js.map → chunk-ZIBWBUTB.js.map} +1 -1
  82. package/dist/docs/SKILL.md +1 -1
  83. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  84. package/dist/server/handlers/a2a.cjs +14 -14
  85. package/dist/server/handlers/a2a.js +1 -1
  86. package/dist/server/handlers/agent-versions.cjs +8 -8
  87. package/dist/server/handlers/agent-versions.js +1 -1
  88. package/dist/server/handlers/agents.cjs +43 -43
  89. package/dist/server/handlers/agents.d.ts +162 -0
  90. package/dist/server/handlers/agents.d.ts.map +1 -1
  91. package/dist/server/handlers/agents.js +1 -1
  92. package/dist/server/handlers/conversations.cjs +5 -5
  93. package/dist/server/handlers/conversations.js +1 -1
  94. package/dist/server/handlers/responses.cjs +4 -4
  95. package/dist/server/handlers/responses.js +1 -1
  96. package/dist/server/handlers/scorer-versions.cjs +8 -8
  97. package/dist/server/handlers/scorer-versions.js +1 -1
  98. package/dist/server/handlers/scores.cjs +7 -7
  99. package/dist/server/handlers/scores.js +1 -1
  100. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  101. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  102. package/dist/server/handlers/stored-agents.cjs +7 -7
  103. package/dist/server/handlers/stored-agents.d.ts +324 -0
  104. package/dist/server/handlers/stored-agents.d.ts.map +1 -1
  105. package/dist/server/handlers/stored-agents.js +1 -1
  106. package/dist/server/handlers/stored-scorers.cjs +6 -6
  107. package/dist/server/handlers/stored-scorers.js +1 -1
  108. package/dist/server/handlers/system.cjs +3 -3
  109. package/dist/server/handlers/system.js +1 -1
  110. package/dist/server/handlers/tool-providers.cjs +37 -5
  111. package/dist/server/handlers/tool-providers.d.ts +276 -4
  112. package/dist/server/handlers/tool-providers.d.ts.map +1 -1
  113. package/dist/server/handlers/tool-providers.js +1 -1
  114. package/dist/server/handlers/tools.cjs +6 -6
  115. package/dist/server/handlers/tools.js +1 -1
  116. package/dist/server/handlers.cjs +12 -12
  117. package/dist/server/handlers.js +6 -6
  118. package/dist/server/schemas/index.cjs +174 -94
  119. package/dist/server/schemas/index.js +5 -5
  120. package/dist/server/schemas/stored-agents.d.ts +904 -0
  121. package/dist/server/schemas/stored-agents.d.ts.map +1 -1
  122. package/dist/server/schemas/tool-providers.d.ts +207 -0
  123. package/dist/server/schemas/tool-providers.d.ts.map +1 -1
  124. package/dist/server/server-adapter/index.cjs +13 -13
  125. package/dist/server/server-adapter/index.js +2 -2
  126. package/dist/server/server-adapter/routes/tool-providers.d.ts +232 -1
  127. package/dist/server/server-adapter/routes/tool-providers.d.ts.map +1 -1
  128. package/package.json +5 -5
  129. package/dist/chunk-37G66LYP.cjs +0 -65
  130. package/dist/chunk-37G66LYP.cjs.map +0 -1
  131. package/dist/chunk-ACESWSVL.cjs +0 -131
  132. package/dist/chunk-ACESWSVL.cjs.map +0 -1
  133. package/dist/chunk-HNPFUM7G.js.map +0 -1
  134. package/dist/chunk-MXUQJDLY.js +0 -126
  135. package/dist/chunk-MXUQJDLY.js.map +0 -1
  136. package/dist/chunk-N42WTSJL.cjs.map +0 -1
  137. package/dist/chunk-NIKW5NHG.js +0 -57
  138. package/dist/chunk-NIKW5NHG.js.map +0 -1
  139. package/dist/chunk-PN3LDOLZ.js.map +0 -1
  140. package/dist/chunk-QBMOXGFZ.js.map +0 -1
  141. package/dist/chunk-QWT4ON3B.cjs.map +0 -1
  142. package/dist/chunk-TDAAXXUA.cjs.map +0 -1
  143. package/dist/chunk-VJHJY3AS.js.map +0 -1
  144. package/dist/chunk-YF6SK4WY.cjs.map +0 -1
@@ -0,0 +1,234 @@
1
+ 'use strict';
2
+
3
+ var v4 = require('zod/v4');
4
+
5
+ // src/server/schemas/tool-providers.ts
6
+ var labelSchema = v4.z.string().min(1, "Connection label is required").max(32, "Connection label must be \u2264 32 characters").regex(/^[A-Za-z0-9 _-]+$/, "Connection label may only contain letters, digits, spaces, _ and -");
7
+ var connectionScopeSchema = v4.z.enum(["shared", "per-author", "caller-supplied"]);
8
+ var connectionSchema = v4.z.object({
9
+ kind: v4.z.enum(["author", "invoker", "platform"]),
10
+ toolkit: v4.z.string().min(1),
11
+ connectionId: v4.z.string(),
12
+ label: labelSchema.optional(),
13
+ scope: connectionScopeSchema.optional()
14
+ });
15
+ var toolMetaSchema = v4.z.object({
16
+ toolkit: v4.z.string().min(1).optional(),
17
+ description: v4.z.string().optional()
18
+ });
19
+ var toolProviderConfigSchema = v4.z.object({
20
+ tools: v4.z.record(v4.z.string(), toolMetaSchema),
21
+ connections: v4.z.record(v4.z.string(), v4.z.array(connectionSchema))
22
+ }).superRefine((value, ctx) => {
23
+ for (const [toolkit, connections] of Object.entries(value.connections)) {
24
+ if (connections.length < 2) continue;
25
+ const seen = /* @__PURE__ */ new Map();
26
+ for (let i = 0; i < connections.length; i++) {
27
+ const conn = connections[i];
28
+ const trimmed = conn.label?.trim() ?? "";
29
+ if (trimmed.length === 0) {
30
+ ctx.addIssue({
31
+ code: "custom",
32
+ path: ["connections", toolkit, i, "label"],
33
+ message: `Connection label is required on toolkit "${toolkit}" once it has two or more connections`
34
+ });
35
+ continue;
36
+ }
37
+ const key = trimmed.toLocaleLowerCase();
38
+ const prevIndex = seen.get(key);
39
+ if (prevIndex !== void 0) {
40
+ ctx.addIssue({
41
+ code: "custom",
42
+ path: ["connections", toolkit, i, "label"],
43
+ message: `Duplicate connection label "${conn.label}" on toolkit "${toolkit}" (labels must be unique case-insensitively)`
44
+ });
45
+ } else {
46
+ seen.set(key, i);
47
+ }
48
+ }
49
+ }
50
+ });
51
+ var toolProvidersSchema = v4.z.record(v4.z.string(), toolProviderConfigSchema);
52
+ var toolProviderIdPathParams = v4.z.object({
53
+ providerId: v4.z.string().describe("Unique identifier for the tool provider")
54
+ });
55
+ var toolSlugPathParams = toolProviderIdPathParams.extend({
56
+ toolSlug: v4.z.string().describe("Slug identifier for the tool")
57
+ });
58
+ var toolProviderAuthStatusPathParams = toolProviderIdPathParams.extend({
59
+ authId: v4.z.string().describe("Opaque auth handle returned by authorize")
60
+ });
61
+ var toolProviderConnectionPathParams = toolProviderIdPathParams.extend({
62
+ connectionId: v4.z.string().describe("Adapter-native connection id (e.g. Composio ca_...)")
63
+ });
64
+ var listToolProviderToolsQuerySchema = v4.z.object({
65
+ toolkit: v4.z.string().optional().describe("Filter tools by toolkit slug"),
66
+ search: v4.z.string().optional().describe("Search tools by name or description"),
67
+ page: v4.z.coerce.number().optional().describe("Page number for pagination (1-indexed)"),
68
+ perPage: v4.z.coerce.number().optional().describe("Number of items per page")
69
+ });
70
+ var listConnectionFieldsQuerySchema = v4.z.object({
71
+ toolkit: v4.z.string().describe("Toolkit slug whose connection field schema to list")
72
+ });
73
+ var listConnectionsQuerySchema = v4.z.object({
74
+ toolkit: v4.z.string().describe("Toolkit slug whose connections to list"),
75
+ authorId: v4.z.string().optional().describe("Admin-only: restrict listing to a specific author. Silently ignored for non-admin callers."),
76
+ scope: connectionScopeSchema.optional().describe("Filter results by scope. Omit to include shared + per-author pins for the caller."),
77
+ page: v4.z.coerce.number().int().positive().optional().describe("Page number for pagination (1-indexed)"),
78
+ perPage: v4.z.coerce.number().int().positive().max(200).optional().describe("Number of items per page (default 50, max 200)")
79
+ });
80
+ var disconnectConnectionQuerySchema = v4.z.object({
81
+ force: v4.z.union([v4.z.boolean(), v4.z.enum(["true", "false"])]).optional().describe("When true, revoke at the provider and drop the row even if pinned by agents"),
82
+ toolkit: v4.z.string().optional().describe("Toolkit slug for the connection (used when the row was upserted with one)")
83
+ });
84
+ var connectionUsageQuerySchema = v4.z.object({
85
+ toolkit: v4.z.string().optional().describe("Optional toolkit slug to scope the usage scan")
86
+ });
87
+ var authorizeToolProviderBodySchema = v4.z.object({
88
+ toolkit: v4.z.string().describe("Toolkit slug being authorized"),
89
+ connectionId: v4.z.string().describe("Existing or newly-minted connection bucket id"),
90
+ toolName: v4.z.string().optional().describe("Optional tool slug for tool-scoped authorization"),
91
+ config: v4.z.record(v4.z.string(), v4.z.unknown()).optional().describe("Provider-specific user-supplied connection fields (e.g. subdomain)"),
92
+ label: v4.z.string().min(1, "Connection label is required").max(32, "Connection label must be \u2264 32 characters").regex(/^[A-Za-z0-9 _-]+$/, "Connection label may only contain letters, digits, spaces, _ and -").nullish().describe(
93
+ "Optional human label to persist on the resulting tool_provider_connections row. Must match the stored connection label rules (\u2264 32 chars, [A-Za-z0-9 _-]+)."
94
+ ),
95
+ scope: connectionScopeSchema.optional().describe(
96
+ 'Identity bucket. "shared" pins under SHARED_BUCKET_ID. "caller-supplied" pins under the request-context resourceId (returns 400 when missing). Defaults to "per-author".'
97
+ )
98
+ });
99
+ var connectionStatusToolProviderBodySchema = v4.z.object({
100
+ items: v4.z.array(
101
+ v4.z.object({
102
+ connectionId: v4.z.string(),
103
+ toolkit: v4.z.string()
104
+ })
105
+ ).describe("Connection tuples to batch-check")
106
+ });
107
+ var paginationSchema = v4.z.object({
108
+ total: v4.z.number().optional(),
109
+ page: v4.z.number().optional(),
110
+ perPage: v4.z.number().optional(),
111
+ hasMore: v4.z.boolean()
112
+ }).optional();
113
+ var capabilitiesSchema = v4.z.object({
114
+ multipleConnectionsPerToolkit: v4.z.boolean(),
115
+ batchConnectionStatus: v4.z.boolean(),
116
+ reauthorizeReusesConnectionId: v4.z.boolean(),
117
+ supportsRevoke: v4.z.boolean().optional()
118
+ });
119
+ var listToolProvidersResponseSchema = v4.z.object({
120
+ providers: v4.z.array(
121
+ v4.z.object({
122
+ id: v4.z.string(),
123
+ name: v4.z.string(),
124
+ description: v4.z.string().optional(),
125
+ displayName: v4.z.string().optional(),
126
+ capabilities: capabilitiesSchema.optional()
127
+ })
128
+ )
129
+ });
130
+ var listToolProviderToolkitsResponseSchema = v4.z.object({
131
+ data: v4.z.array(
132
+ v4.z.object({
133
+ slug: v4.z.string(),
134
+ name: v4.z.string(),
135
+ description: v4.z.string().optional(),
136
+ icon: v4.z.string().optional()
137
+ })
138
+ ),
139
+ pagination: paginationSchema
140
+ });
141
+ var listToolProviderToolsResponseSchema = v4.z.object({
142
+ data: v4.z.array(
143
+ v4.z.object({
144
+ slug: v4.z.string(),
145
+ name: v4.z.string(),
146
+ description: v4.z.string().optional(),
147
+ toolkit: v4.z.string().optional()
148
+ })
149
+ ),
150
+ pagination: paginationSchema
151
+ });
152
+ var getToolProviderToolSchemaResponseSchema = v4.z.record(v4.z.string(), v4.z.unknown());
153
+ var authorizeToolProviderResponseSchema = v4.z.object({
154
+ url: v4.z.string(),
155
+ authId: v4.z.string()
156
+ });
157
+ var authStatusToolProviderResponseSchema = v4.z.object({
158
+ status: v4.z.enum(["pending", "completed", "failed"])
159
+ });
160
+ var connectionStatusToolProviderResponseSchema = v4.z.object({
161
+ items: v4.z.record(v4.z.string(), v4.z.object({ connected: v4.z.boolean() }))
162
+ });
163
+ var listConnectionsResponseSchema = v4.z.object({
164
+ items: v4.z.array(
165
+ v4.z.object({
166
+ connectionId: v4.z.string(),
167
+ status: v4.z.enum(["active", "pending", "failed", "inactive"]),
168
+ createdAt: v4.z.string().optional(),
169
+ label: v4.z.string().nullish().describe("Persisted display label from tool_provider_connections, if any"),
170
+ authorId: v4.z.string().optional().describe("Owner of the connection (when known)"),
171
+ scope: connectionScopeSchema.optional().describe("Persisted scope from tool_provider_connections. Missing for rows that predate the scope field.")
172
+ })
173
+ ),
174
+ pagination: paginationSchema
175
+ });
176
+ var listConnectionFieldsResponseSchema = v4.z.object({
177
+ fields: v4.z.array(
178
+ v4.z.object({
179
+ name: v4.z.string(),
180
+ displayName: v4.z.string().optional(),
181
+ description: v4.z.string().optional(),
182
+ type: v4.z.enum(["string", "number", "boolean"]),
183
+ required: v4.z.boolean(),
184
+ default: v4.z.unknown().optional()
185
+ })
186
+ )
187
+ });
188
+ var disconnectConnectionResponseSchema = v4.z.object({
189
+ ok: v4.z.literal(true),
190
+ revoked: v4.z.boolean().describe("Whether the provider-side connection was revoked")
191
+ });
192
+ var connectionUsageResponseSchema = v4.z.object({
193
+ agents: v4.z.array(
194
+ v4.z.object({
195
+ id: v4.z.string(),
196
+ name: v4.z.string()
197
+ })
198
+ )
199
+ });
200
+ var toolProviderHealthResponseSchema = v4.z.object({
201
+ ok: v4.z.boolean(),
202
+ message: v4.z.string().optional(),
203
+ details: v4.z.record(v4.z.string(), v4.z.unknown()).optional()
204
+ });
205
+
206
+ exports.authStatusToolProviderResponseSchema = authStatusToolProviderResponseSchema;
207
+ exports.authorizeToolProviderBodySchema = authorizeToolProviderBodySchema;
208
+ exports.authorizeToolProviderResponseSchema = authorizeToolProviderResponseSchema;
209
+ exports.connectionSchema = connectionSchema;
210
+ exports.connectionScopeSchema = connectionScopeSchema;
211
+ exports.connectionStatusToolProviderBodySchema = connectionStatusToolProviderBodySchema;
212
+ exports.connectionStatusToolProviderResponseSchema = connectionStatusToolProviderResponseSchema;
213
+ exports.connectionUsageQuerySchema = connectionUsageQuerySchema;
214
+ exports.connectionUsageResponseSchema = connectionUsageResponseSchema;
215
+ exports.disconnectConnectionQuerySchema = disconnectConnectionQuerySchema;
216
+ exports.disconnectConnectionResponseSchema = disconnectConnectionResponseSchema;
217
+ exports.getToolProviderToolSchemaResponseSchema = getToolProviderToolSchemaResponseSchema;
218
+ exports.listConnectionFieldsQuerySchema = listConnectionFieldsQuerySchema;
219
+ exports.listConnectionFieldsResponseSchema = listConnectionFieldsResponseSchema;
220
+ exports.listConnectionsQuerySchema = listConnectionsQuerySchema;
221
+ exports.listConnectionsResponseSchema = listConnectionsResponseSchema;
222
+ exports.listToolProviderToolkitsResponseSchema = listToolProviderToolkitsResponseSchema;
223
+ exports.listToolProviderToolsQuerySchema = listToolProviderToolsQuerySchema;
224
+ exports.listToolProviderToolsResponseSchema = listToolProviderToolsResponseSchema;
225
+ exports.listToolProvidersResponseSchema = listToolProvidersResponseSchema;
226
+ exports.toolProviderAuthStatusPathParams = toolProviderAuthStatusPathParams;
227
+ exports.toolProviderConfigSchema = toolProviderConfigSchema;
228
+ exports.toolProviderConnectionPathParams = toolProviderConnectionPathParams;
229
+ exports.toolProviderHealthResponseSchema = toolProviderHealthResponseSchema;
230
+ exports.toolProviderIdPathParams = toolProviderIdPathParams;
231
+ exports.toolProvidersSchema = toolProvidersSchema;
232
+ exports.toolSlugPathParams = toolSlugPathParams;
233
+ //# sourceMappingURL=chunk-6FHJAHQJ.cjs.map
234
+ //# sourceMappingURL=chunk-6FHJAHQJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/tool-providers.ts"],"names":["z"],"mappings":"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","file":"chunk-6FHJAHQJ.cjs","sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Stored form shape — `toolProviders` field on agents\n// ============================================================================\n\n/**\n * Zod schemas for the Agent Builder / CMS tool providers storage shape.\n *\n * Rules:\n * - **Additive-only.** No version field. Future fields are introduced as\n * optional and existing fields are never removed in v1.x.\n * - `label` is optional when there is exactly one connection for a\n * `toolkit`. Once two or more connections share a `toolkit`, every\n * connection must carry a non-empty, ≤ 32 char, `[A-Za-z0-9 _-]+`\n * label that is case-insensitively unique within that toolkit.\n * - `kind` accepts all three values for forward-compat; v1 only writes\n * `'author'`.\n */\n\nconst labelSchema = z\n .string()\n .min(1, 'Connection label is required')\n .max(32, 'Connection label must be ≤ 32 characters')\n .regex(/^[A-Za-z0-9 _-]+$/, 'Connection label may only contain letters, digits, spaces, _ and -');\n\n/**\n * Per-pin identity bucketing.\n *\n * - `'per-author'` (default) — bucketed under the caller's resolved authorId.\n * - `'shared'` — bucketed under SHARED_BUCKET_ID; visible to every caller.\n * - `'caller-supplied'` — bucketed under `requestContext[MASTRA_RESOURCE_ID_KEY]`.\n *\n * Optional for back-compat with pre-scope stored pins.\n */\nexport const connectionScopeSchema = z.enum(['shared', 'per-author', 'caller-supplied']);\n\nexport const connectionSchema = z.object({\n kind: z.enum(['author', 'invoker', 'platform']),\n toolkit: z.string().min(1),\n connectionId: z.string(),\n label: labelSchema.optional(),\n scope: connectionScopeSchema.optional(),\n});\n\nconst toolMetaSchema = z.object({\n toolkit: z.string().min(1).optional(),\n description: z.string().optional(),\n});\n\n/**\n * Stored shape for one provider's configuration on one agent.\n *\n * `superRefine` enforces case-insensitive uniqueness of `label` within\n * each `connections[toolkit]` array.\n */\nexport const toolProviderConfigSchema = z\n .object({\n tools: z.record(z.string(), toolMetaSchema),\n connections: z.record(z.string(), z.array(connectionSchema)),\n })\n .superRefine((value, ctx) => {\n for (const [toolkit, connections] of Object.entries(value.connections)) {\n if (connections.length < 2) continue;\n\n const seen = new Map<string, number>();\n for (let i = 0; i < connections.length; i++) {\n const conn = connections[i]!;\n const trimmed = conn.label?.trim() ?? '';\n if (trimmed.length === 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['connections', toolkit, i, 'label'],\n message: `Connection label is required on toolkit \"${toolkit}\" once it has two or more connections`,\n });\n continue;\n }\n const key = trimmed.toLocaleLowerCase();\n const prevIndex = seen.get(key);\n if (prevIndex !== undefined) {\n ctx.addIssue({\n code: 'custom',\n path: ['connections', toolkit, i, 'label'],\n message: `Duplicate connection label \"${conn.label}\" on toolkit \"${toolkit}\" (labels must be unique case-insensitively)`,\n });\n } else {\n seen.set(key, i);\n }\n }\n }\n });\n\n/**\n * Full v1 tool providers payload: keyed by provider id.\n */\nexport const toolProvidersSchema = z.record(z.string(), toolProviderConfigSchema);\n\n// ============================================================================\n// HTTP route schemas — /tool-providers/*\n// ============================================================================\n\n// Path Parameter Schemas\n\nexport const toolProviderIdPathParams = z.object({\n providerId: z.string().describe('Unique identifier for the tool provider'),\n});\n\nexport const toolSlugPathParams = toolProviderIdPathParams.extend({\n toolSlug: z.string().describe('Slug identifier for the tool'),\n});\n\nexport const toolProviderAuthStatusPathParams = toolProviderIdPathParams.extend({\n authId: z.string().describe('Opaque auth handle returned by authorize'),\n});\n\nexport const toolProviderConnectionPathParams = toolProviderIdPathParams.extend({\n connectionId: z.string().describe('Adapter-native connection id (e.g. Composio ca_...)'),\n});\n\n// Query Parameter Schemas\n\nexport const listToolProviderToolsQuerySchema = z.object({\n toolkit: z.string().optional().describe('Filter tools by toolkit slug'),\n search: z.string().optional().describe('Search tools by name or description'),\n page: z.coerce.number().optional().describe('Page number for pagination (1-indexed)'),\n perPage: z.coerce.number().optional().describe('Number of items per page'),\n});\n\nexport const listConnectionFieldsQuerySchema = z.object({\n toolkit: z.string().describe('Toolkit slug whose connection field schema to list'),\n});\n\nexport const listConnectionsQuerySchema = z.object({\n toolkit: z.string().describe('Toolkit slug whose connections to list'),\n authorId: z\n .string()\n .optional()\n .describe('Admin-only: restrict listing to a specific author. Silently ignored for non-admin callers.'),\n scope: connectionScopeSchema\n .optional()\n .describe('Filter results by scope. Omit to include shared + per-author pins for the caller.'),\n page: z.coerce.number().int().positive().optional().describe('Page number for pagination (1-indexed)'),\n perPage: z.coerce\n .number()\n .int()\n .positive()\n .max(200)\n .optional()\n .describe('Number of items per page (default 50, max 200)'),\n});\n\nexport const disconnectConnectionQuerySchema = z.object({\n force: z\n .union([z.boolean(), z.enum(['true', 'false'])])\n .optional()\n .describe('When true, revoke at the provider and drop the row even if pinned by agents'),\n toolkit: z.string().optional().describe('Toolkit slug for the connection (used when the row was upserted with one)'),\n});\n\nexport const connectionUsageQuerySchema = z.object({\n toolkit: z.string().optional().describe('Optional toolkit slug to scope the usage scan'),\n});\n\n// Body Schemas\n\nexport const authorizeToolProviderBodySchema = z.object({\n toolkit: z.string().describe('Toolkit slug being authorized'),\n connectionId: z.string().describe('Existing or newly-minted connection bucket id'),\n toolName: z.string().optional().describe('Optional tool slug for tool-scoped authorization'),\n config: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Provider-specific user-supplied connection fields (e.g. subdomain)'),\n label: z\n .string()\n .min(1, 'Connection label is required')\n .max(32, 'Connection label must be ≤ 32 characters')\n .regex(/^[A-Za-z0-9 _-]+$/, 'Connection label may only contain letters, digits, spaces, _ and -')\n .nullish()\n .describe(\n 'Optional human label to persist on the resulting tool_provider_connections row. Must match the stored connection label rules (≤ 32 chars, [A-Za-z0-9 _-]+).',\n ),\n scope: connectionScopeSchema\n .optional()\n .describe(\n 'Identity bucket. \"shared\" pins under SHARED_BUCKET_ID. \"caller-supplied\" pins under the request-context resourceId (returns 400 when missing). Defaults to \"per-author\".',\n ),\n});\n\nexport const connectionStatusToolProviderBodySchema = z.object({\n items: z\n .array(\n z.object({\n connectionId: z.string(),\n toolkit: z.string(),\n }),\n )\n .describe('Connection tuples to batch-check'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst paginationSchema = z\n .object({\n total: z.number().optional(),\n page: z.number().optional(),\n perPage: z.number().optional(),\n hasMore: z.boolean(),\n })\n .optional();\n\nconst capabilitiesSchema = z.object({\n multipleConnectionsPerToolkit: z.boolean(),\n batchConnectionStatus: z.boolean(),\n reauthorizeReusesConnectionId: z.boolean(),\n supportsRevoke: z.boolean().optional(),\n});\n\nexport const listToolProvidersResponseSchema = z.object({\n providers: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n displayName: z.string().optional(),\n capabilities: capabilitiesSchema.optional(),\n }),\n ),\n});\n\nexport const listToolProviderToolkitsResponseSchema = z.object({\n data: z.array(\n z.object({\n slug: z.string(),\n name: z.string(),\n description: z.string().optional(),\n icon: z.string().optional(),\n }),\n ),\n pagination: paginationSchema,\n});\n\nexport const listToolProviderToolsResponseSchema = z.object({\n data: z.array(\n z.object({\n slug: z.string(),\n name: z.string(),\n description: z.string().optional(),\n toolkit: z.string().optional(),\n }),\n ),\n pagination: paginationSchema,\n});\n\nexport const getToolProviderToolSchemaResponseSchema = z.record(z.string(), z.unknown());\n\nexport const authorizeToolProviderResponseSchema = z.object({\n url: z.string(),\n authId: z.string(),\n});\n\nexport const authStatusToolProviderResponseSchema = z.object({\n status: z.enum(['pending', 'completed', 'failed']),\n});\n\nexport const connectionStatusToolProviderResponseSchema = z.object({\n items: z.record(z.string(), z.object({ connected: z.boolean() })),\n});\n\nexport const listConnectionsResponseSchema = z.object({\n items: z.array(\n z.object({\n connectionId: z.string(),\n status: z.enum(['active', 'pending', 'failed', 'inactive']),\n createdAt: z.string().optional(),\n label: z.string().nullish().describe('Persisted display label from tool_provider_connections, if any'),\n authorId: z.string().optional().describe('Owner of the connection (when known)'),\n scope: connectionScopeSchema\n .optional()\n .describe('Persisted scope from tool_provider_connections. Missing for rows that predate the scope field.'),\n }),\n ),\n pagination: paginationSchema,\n});\n\nexport const listConnectionFieldsResponseSchema = z.object({\n fields: z.array(\n z.object({\n name: z.string(),\n displayName: z.string().optional(),\n description: z.string().optional(),\n type: z.enum(['string', 'number', 'boolean']),\n required: z.boolean(),\n default: z.unknown().optional(),\n }),\n ),\n});\n\nexport const disconnectConnectionResponseSchema = z.object({\n ok: z.literal(true),\n revoked: z.boolean().describe('Whether the provider-side connection was revoked'),\n});\n\nexport const connectionUsageResponseSchema = z.object({\n agents: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n ),\n});\n\nexport const toolProviderHealthResponseSchema = z.object({\n ok: z.boolean(),\n message: z.string().optional(),\n details: z.record(z.string(), z.unknown()).optional(),\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkHAT56AXO_cjs = require('./chunk-HAT56AXO.cjs');
3
+ var chunkJV2TL2NQ_cjs = require('./chunk-JV2TL2NQ.cjs');
4
4
  var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
5
5
  var chunkPPNPOLWL_cjs = require('./chunk-PPNPOLWL.cjs');
6
6
  var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
@@ -23,8 +23,8 @@ var LIST_STORED_SCORERS_ROUTE = chunkRZR7PLFW_cjs.createRoute({
23
23
  method: "GET",
24
24
  path: "/stored/scorers",
25
25
  responseType: "json",
26
- queryParamSchema: chunkHAT56AXO_cjs.listStoredScorersQuerySchema,
27
- responseSchema: chunkHAT56AXO_cjs.listStoredScorersResponseSchema,
26
+ queryParamSchema: chunkJV2TL2NQ_cjs.listStoredScorersQuerySchema,
27
+ responseSchema: chunkJV2TL2NQ_cjs.listStoredScorersResponseSchema,
28
28
  summary: "List stored scorer definitions",
29
29
  description: "Returns a paginated list of all scorer definitions stored in the database",
30
30
  tags: ["Stored Scorers"],
@@ -58,9 +58,9 @@ var GET_STORED_SCORER_ROUTE = chunkRZR7PLFW_cjs.createRoute({
58
58
  method: "GET",
59
59
  path: "/stored/scorers/:storedScorerId",
60
60
  responseType: "json",
61
- pathParamSchema: chunkHAT56AXO_cjs.storedScorerIdPathParams,
61
+ pathParamSchema: chunkJV2TL2NQ_cjs.storedScorerIdPathParams,
62
62
  queryParamSchema: chunkDIG2K5CV_cjs.statusQuerySchema,
63
- responseSchema: chunkHAT56AXO_cjs.getStoredScorerResponseSchema,
63
+ responseSchema: chunkJV2TL2NQ_cjs.getStoredScorerResponseSchema,
64
64
  summary: "Get stored scorer definition by ID",
65
65
  description: "Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.",
66
66
  tags: ["Stored Scorers"],
@@ -90,8 +90,8 @@ var CREATE_STORED_SCORER_ROUTE = chunkRZR7PLFW_cjs.createRoute({
90
90
  method: "POST",
91
91
  path: "/stored/scorers",
92
92
  responseType: "json",
93
- bodySchema: chunkHAT56AXO_cjs.createStoredScorerBodySchema,
94
- responseSchema: chunkHAT56AXO_cjs.createStoredScorerResponseSchema,
93
+ bodySchema: chunkJV2TL2NQ_cjs.createStoredScorerBodySchema,
94
+ responseSchema: chunkJV2TL2NQ_cjs.createStoredScorerResponseSchema,
95
95
  summary: "Create stored scorer definition",
96
96
  description: "Creates a new scorer definition in storage with the provided configuration",
97
97
  tags: ["Stored Scorers"],
@@ -159,9 +159,9 @@ var UPDATE_STORED_SCORER_ROUTE = chunkRZR7PLFW_cjs.createRoute({
159
159
  method: "PATCH",
160
160
  path: "/stored/scorers/:storedScorerId",
161
161
  responseType: "json",
162
- pathParamSchema: chunkHAT56AXO_cjs.storedScorerIdPathParams,
163
- bodySchema: chunkHAT56AXO_cjs.updateStoredScorerBodySchema,
164
- responseSchema: chunkHAT56AXO_cjs.updateStoredScorerResponseSchema,
162
+ pathParamSchema: chunkJV2TL2NQ_cjs.storedScorerIdPathParams,
163
+ bodySchema: chunkJV2TL2NQ_cjs.updateStoredScorerBodySchema,
164
+ responseSchema: chunkJV2TL2NQ_cjs.updateStoredScorerResponseSchema,
165
165
  summary: "Update stored scorer definition",
166
166
  description: "Updates an existing scorer definition in storage with the provided fields",
167
167
  tags: ["Stored Scorers"],
@@ -250,8 +250,8 @@ var DELETE_STORED_SCORER_ROUTE = chunkRZR7PLFW_cjs.createRoute({
250
250
  method: "DELETE",
251
251
  path: "/stored/scorers/:storedScorerId",
252
252
  responseType: "json",
253
- pathParamSchema: chunkHAT56AXO_cjs.storedScorerIdPathParams,
254
- responseSchema: chunkHAT56AXO_cjs.deleteStoredScorerResponseSchema,
253
+ pathParamSchema: chunkJV2TL2NQ_cjs.storedScorerIdPathParams,
254
+ responseSchema: chunkJV2TL2NQ_cjs.deleteStoredScorerResponseSchema,
255
255
  summary: "Delete stored scorer definition",
256
256
  description: "Deletes a scorer definition from storage by its unique identifier",
257
257
  tags: ["Stored Scorers"],
@@ -285,5 +285,5 @@ exports.DELETE_STORED_SCORER_ROUTE = DELETE_STORED_SCORER_ROUTE;
285
285
  exports.GET_STORED_SCORER_ROUTE = GET_STORED_SCORER_ROUTE;
286
286
  exports.LIST_STORED_SCORERS_ROUTE = LIST_STORED_SCORERS_ROUTE;
287
287
  exports.UPDATE_STORED_SCORER_ROUTE = UPDATE_STORED_SCORER_ROUTE;
288
- //# sourceMappingURL=chunk-7N5OFQB3.cjs.map
289
- //# sourceMappingURL=chunk-7N5OFQB3.cjs.map
288
+ //# sourceMappingURL=chunk-6KPE7KSJ.cjs.map
289
+ //# sourceMappingURL=chunk-6KPE7KSJ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/stored-scorers.ts"],"names":["createRoute","listStoredScorersQuerySchema","listStoredScorersResponseSchema","HTTPException","getStoredResourceScope","scopeStoredResourceMetadata","handleError","storedScorerIdPathParams","statusQuerySchema","getStoredScorerResponseSchema","assertStoredResourceScope","createStoredScorerBodySchema","createStoredScorerResponseSchema","toSlug","updateStoredScorerBodySchema","updateStoredScorerResponseSchema","handleAutoVersioning","deleteStoredScorerResponseSchema"],"mappings":"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","file":"chunk-7N5OFQB3.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedScorerIdPathParams,\n statusQuerySchema,\n listStoredScorersQuerySchema,\n createStoredScorerBodySchema,\n updateStoredScorerBodySchema,\n listStoredScorersResponseSchema,\n getStoredScorerResponseSchema,\n createStoredScorerResponseSchema,\n updateStoredScorerResponseSchema,\n deleteStoredScorerResponseSchema,\n} from '../schemas/stored-scorers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SCORER_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/scorers - List all stored scorer definitions\n */\nexport const LIST_STORED_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers',\n responseType: 'json',\n queryParamSchema: listStoredScorersQuerySchema,\n responseSchema: listStoredScorersResponseSchema,\n summary: 'List stored scorer definitions',\n description: 'Returns a paginated list of all scorer definitions stored in the database',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await scorerStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored scorer definitions');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:storedScorerId - Get a stored scorer definition by ID\n */\nexport const GET_STORED_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredScorerResponseSchema,\n summary: 'Get stored scorer definition by ID',\n description:\n 'Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getByIdResolved(storedScorerId, { status });\n\n if (!scorer) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return scorer;\n } catch (error) {\n return handleError(error, 'Error getting stored scorer definition');\n }\n },\n});\n\n/**\n * POST /stored/scorers - Create a new stored scorer definition\n */\nexport const CREATE_STORED_SCORER_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers',\n responseType: 'json',\n bodySchema: createStoredScorerBodySchema,\n responseSchema: createStoredScorerResponseSchema,\n summary: 'Create stored scorer definition',\n description: 'Creates a new scorer definition in storage with the provided configuration',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive scorer definition ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if scorer definition with this ID already exists\n const existing = await scorerStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Scorer definition with id ${id} already exists` });\n }\n\n await scorerStore.create({\n scorerDefinition: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n },\n });\n\n // Return the resolved scorer definition (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await scorerStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored scorer definition');\n }\n },\n});\n\n/**\n * PATCH /stored/scorers/:storedScorerId - Update a stored scorer definition\n */\nexport const UPDATE_STORED_SCORER_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n bodySchema: updateStoredScorerBodySchema,\n responseSchema: updateStoredScorerResponseSchema,\n summary: 'Update stored scorer definition',\n description: 'Updates an existing scorer definition in storage with the provided fields',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedScorerId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the scorer definition with both metadata-level and config-level fields\n const updatedScorer = await scorerStore.update({\n id: storedScorerId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n scorerStore as unknown as VersionedStoreInterface,\n storedScorerId,\n 'scorerDefinitionId',\n SCORER_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedScorer,\n providedConfigFields,\n );\n\n // Clear the cached scorer instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.scorer.clearCache(storedScorerId);\n }\n\n // Return the resolved scorer definition with the latest (draft) version so the UI sees its edits\n const resolved = await scorerStore.getByIdResolved(storedScorerId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored scorer definition');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:storedScorerId - Delete a stored scorer definition\n */\nexport const DELETE_STORED_SCORER_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n responseSchema: deleteStoredScorerResponseSchema,\n summary: 'Delete stored scorer definition',\n description: 'Deletes a scorer definition from storage by its unique identifier',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await scorerStore.delete(storedScorerId);\n\n // Clear the cached scorer instance\n mastra.getEditor()?.scorer.clearCache(storedScorerId);\n\n return { success: true, message: `Scorer definition ${storedScorerId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored scorer definition');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/stored-scorers.ts"],"names":["createRoute","listStoredScorersQuerySchema","listStoredScorersResponseSchema","HTTPException","getStoredResourceScope","scopeStoredResourceMetadata","handleError","storedScorerIdPathParams","statusQuerySchema","getStoredScorerResponseSchema","assertStoredResourceScope","createStoredScorerBodySchema","createStoredScorerResponseSchema","toSlug","updateStoredScorerBodySchema","updateStoredScorerResponseSchema","handleAutoVersioning","deleteStoredScorerResponseSchema"],"mappings":"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","file":"chunk-6KPE7KSJ.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedScorerIdPathParams,\n statusQuerySchema,\n listStoredScorersQuerySchema,\n createStoredScorerBodySchema,\n updateStoredScorerBodySchema,\n listStoredScorersResponseSchema,\n getStoredScorerResponseSchema,\n createStoredScorerResponseSchema,\n updateStoredScorerResponseSchema,\n deleteStoredScorerResponseSchema,\n} from '../schemas/stored-scorers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SCORER_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/scorers - List all stored scorer definitions\n */\nexport const LIST_STORED_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers',\n responseType: 'json',\n queryParamSchema: listStoredScorersQuerySchema,\n responseSchema: listStoredScorersResponseSchema,\n summary: 'List stored scorer definitions',\n description: 'Returns a paginated list of all scorer definitions stored in the database',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await scorerStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored scorer definitions');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:storedScorerId - Get a stored scorer definition by ID\n */\nexport const GET_STORED_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredScorerResponseSchema,\n summary: 'Get stored scorer definition by ID',\n description:\n 'Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getByIdResolved(storedScorerId, { status });\n\n if (!scorer) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return scorer;\n } catch (error) {\n return handleError(error, 'Error getting stored scorer definition');\n }\n },\n});\n\n/**\n * POST /stored/scorers - Create a new stored scorer definition\n */\nexport const CREATE_STORED_SCORER_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers',\n responseType: 'json',\n bodySchema: createStoredScorerBodySchema,\n responseSchema: createStoredScorerResponseSchema,\n summary: 'Create stored scorer definition',\n description: 'Creates a new scorer definition in storage with the provided configuration',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive scorer definition ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if scorer definition with this ID already exists\n const existing = await scorerStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Scorer definition with id ${id} already exists` });\n }\n\n await scorerStore.create({\n scorerDefinition: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n },\n });\n\n // Return the resolved scorer definition (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await scorerStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored scorer definition');\n }\n },\n});\n\n/**\n * PATCH /stored/scorers/:storedScorerId - Update a stored scorer definition\n */\nexport const UPDATE_STORED_SCORER_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n bodySchema: updateStoredScorerBodySchema,\n responseSchema: updateStoredScorerResponseSchema,\n summary: 'Update stored scorer definition',\n description: 'Updates an existing scorer definition in storage with the provided fields',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedScorerId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the scorer definition with both metadata-level and config-level fields\n const updatedScorer = await scorerStore.update({\n id: storedScorerId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n scorerStore as unknown as VersionedStoreInterface,\n storedScorerId,\n 'scorerDefinitionId',\n SCORER_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedScorer,\n providedConfigFields,\n );\n\n // Clear the cached scorer instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.scorer.clearCache(storedScorerId);\n }\n\n // Return the resolved scorer definition with the latest (draft) version so the UI sees its edits\n const resolved = await scorerStore.getByIdResolved(storedScorerId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored scorer definition');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:storedScorerId - Delete a stored scorer definition\n */\nexport const DELETE_STORED_SCORER_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n responseSchema: deleteStoredScorerResponseSchema,\n summary: 'Delete stored scorer definition',\n description: 'Deletes a scorer definition from storage by its unique identifier',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await scorerStore.delete(storedScorerId);\n\n // Clear the cached scorer instance\n mastra.getEditor()?.scorer.clearCache(storedScorerId);\n\n return { success: true, message: `Scorer definition ${storedScorerId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored scorer definition');\n }\n },\n});\n"]}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkGFP7IMFR_cjs = require('./chunk-GFP7IMFR.cjs');
4
- var chunkQWT4ON3B_cjs = require('./chunk-QWT4ON3B.cjs');
4
+ var chunkT254JS3B_cjs = require('./chunk-T254JS3B.cjs');
5
5
  var chunkPFKYMKIH_cjs = require('./chunk-PFKYMKIH.cjs');
6
6
  var v4 = require('zod/v4');
7
7
 
8
8
  var mcpClientToolsConfigSchema = v4.z.object({
9
- tools: v4.z.record(v4.z.string(), chunkQWT4ON3B_cjs.toolConfigSchema).optional()
9
+ tools: v4.z.record(v4.z.string(), chunkT254JS3B_cjs.toolConfigSchema).optional()
10
10
  });
11
11
  var agentVersionPathParams = v4.z.object({
12
12
  agentId: v4.z.string().describe("Unique identifier for the stored agent")
@@ -22,20 +22,20 @@ var agentVersionSchema = v4.z.object({
22
22
  // Top-level config fields (from StorageAgentSnapshotType)
23
23
  name: v4.z.string().describe("Name of the agent"),
24
24
  description: v4.z.string().optional().describe("Description of the agent"),
25
- instructions: chunkQWT4ON3B_cjs.instructionsSchema,
26
- model: chunkQWT4ON3B_cjs.conditionalFieldSchema(chunkQWT4ON3B_cjs.modelConfigSchema).describe(
25
+ instructions: chunkT254JS3B_cjs.instructionsSchema,
26
+ model: chunkT254JS3B_cjs.conditionalFieldSchema(chunkT254JS3B_cjs.modelConfigSchema).describe(
27
27
  "Model configuration \u2014 static value or array of conditional variants"
28
28
  ),
29
- tools: chunkQWT4ON3B_cjs.conditionalFieldSchema(chunkQWT4ON3B_cjs.toolsConfigSchema).optional().describe("Tool keys mapped to per-tool config \u2014 static or conditional"),
30
- defaultOptions: chunkQWT4ON3B_cjs.conditionalFieldSchema(chunkPFKYMKIH_cjs.defaultOptionsSchema).optional().describe("Default options for generate/stream calls \u2014 static or conditional"),
31
- workflows: chunkQWT4ON3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), chunkQWT4ON3B_cjs.toolConfigSchema)).optional().describe("Workflow keys with optional per-workflow config \u2014 static or conditional"),
32
- agents: chunkQWT4ON3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), chunkQWT4ON3B_cjs.toolConfigSchema)).optional().describe("Agent keys with optional per-agent config \u2014 static or conditional"),
33
- integrationTools: chunkQWT4ON3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of tool provider IDs to their tool configurations \u2014 static or conditional"),
34
- mcpClients: chunkQWT4ON3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of stored MCP client IDs to their tool configurations \u2014 static or conditional"),
35
- inputProcessors: chunkQWT4ON3B_cjs.conditionalFieldSchema(chunkQWT4ON3B_cjs.storedProcessorGraphSchema).optional().describe("Input processor graph \u2014 static or conditional"),
36
- outputProcessors: chunkQWT4ON3B_cjs.conditionalFieldSchema(chunkQWT4ON3B_cjs.storedProcessorGraphSchema).optional().describe("Output processor graph \u2014 static or conditional"),
37
- memory: chunkQWT4ON3B_cjs.conditionalFieldSchema(chunkQWT4ON3B_cjs.serializedMemoryConfigSchema).optional().describe("Memory configuration \u2014 static or conditional"),
38
- scorers: chunkQWT4ON3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), chunkQWT4ON3B_cjs.scorerConfigSchema)).optional().describe("Scorer keys with optional sampling config \u2014 static or conditional"),
29
+ tools: chunkT254JS3B_cjs.conditionalFieldSchema(chunkT254JS3B_cjs.toolsConfigSchema).optional().describe("Tool keys mapped to per-tool config \u2014 static or conditional"),
30
+ defaultOptions: chunkT254JS3B_cjs.conditionalFieldSchema(chunkPFKYMKIH_cjs.defaultOptionsSchema).optional().describe("Default options for generate/stream calls \u2014 static or conditional"),
31
+ workflows: chunkT254JS3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), chunkT254JS3B_cjs.toolConfigSchema)).optional().describe("Workflow keys with optional per-workflow config \u2014 static or conditional"),
32
+ agents: chunkT254JS3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), chunkT254JS3B_cjs.toolConfigSchema)).optional().describe("Agent keys with optional per-agent config \u2014 static or conditional"),
33
+ integrationTools: chunkT254JS3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of tool provider IDs to their tool configurations \u2014 static or conditional"),
34
+ mcpClients: chunkT254JS3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of stored MCP client IDs to their tool configurations \u2014 static or conditional"),
35
+ inputProcessors: chunkT254JS3B_cjs.conditionalFieldSchema(chunkT254JS3B_cjs.storedProcessorGraphSchema).optional().describe("Input processor graph \u2014 static or conditional"),
36
+ outputProcessors: chunkT254JS3B_cjs.conditionalFieldSchema(chunkT254JS3B_cjs.storedProcessorGraphSchema).optional().describe("Output processor graph \u2014 static or conditional"),
37
+ memory: chunkT254JS3B_cjs.conditionalFieldSchema(chunkT254JS3B_cjs.serializedMemoryConfigSchema).optional().describe("Memory configuration \u2014 static or conditional"),
38
+ scorers: chunkT254JS3B_cjs.conditionalFieldSchema(v4.z.record(v4.z.string(), chunkT254JS3B_cjs.scorerConfigSchema)).optional().describe("Scorer keys with optional sampling config \u2014 static or conditional"),
39
39
  requestContextSchema: v4.z.record(v4.z.string(), v4.z.unknown()).optional().describe("JSON Schema defining valid request context variables"),
40
40
  // Version metadata fields
41
41
  changedFields: v4.z.array(v4.z.string()).optional().describe("Array of field names that changed from the previous version"),
@@ -66,5 +66,5 @@ exports.getVersionResponseSchema = getVersionResponseSchema;
66
66
  exports.listVersionsResponseSchema = listVersionsResponseSchema;
67
67
  exports.restoreVersionResponseSchema = restoreVersionResponseSchema;
68
68
  exports.versionIdPathParams = versionIdPathParams;
69
- //# sourceMappingURL=chunk-WQMMOPJQ.cjs.map
70
- //# sourceMappingURL=chunk-WQMMOPJQ.cjs.map
69
+ //# sourceMappingURL=chunk-ANFNDHDM.cjs.map
70
+ //# sourceMappingURL=chunk-ANFNDHDM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/agent-versions.ts"],"names":["z","toolConfigSchema","instructionsSchema","conditionalFieldSchema","modelConfigSchema","toolsConfigSchema","defaultOptionsSchema","storedProcessorGraphSchema","serializedMemoryConfigSchema","scorerConfigSchema","createListVersionsResponseSchema","createCompareVersionsResponseSchema"],"mappings":";;;;;;;AAuBA,IAAM,0BAAA,GAA6BA,KAAE,MAAA,CAAO;AAAA,EAC1C,KAAA,EAAOA,KAAE,MAAA,CAAOA,IAAA,CAAE,QAAO,EAAGC,kCAAgB,EAAE,QAAA;AAChD,CAAC,CAAA;AAmBM,IAAM,sBAAA,GAAyBD,KAAE,MAAA,CAAO;AAAA,EAC7C,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wCAAwC;AACvE,CAAC;AAKM,IAAM,mBAAA,GAAsBA,KAAE,MAAA,CAAO;AAAA,EAC1C,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wCAAwC,CAAA;AAAA,EACrE,SAAA,EAAWA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C;AAC3E,CAAC;AAWM,IAAM,kBAAA,GAAqBA,KAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA,EAClE,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yCAAyC,CAAA;AAAA,EACtE,aAAA,EAAeA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAE7E,IAAA,EAAMA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA,EAC7C,aAAaA,IAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA,EACtE,YAAA,EAAcE,oCAAA;AAAA,EACd,KAAA,EAAOC,wCAAA,CAAuBC,mCAAiB,CAAA,CAAE,QAAA;AAAA,IAC/C;AAAA,GACF;AAAA,EACA,OAAOD,wCAAA,CAAuBE,mCAAiB,EAC5C,QAAA,EAAS,CACT,SAAS,kEAA6D,CAAA;AAAA,EACzE,gBAAgBF,wCAAA,CAAuBG,sCAAoB,EACxD,QAAA,EAAS,CACT,SAAS,wEAAmE,CAAA;AAAA,EAC/E,SAAA,EAAWH,wCAAA,CAAuBH,IAAA,CAAE,MAAA,CAAOA,IAAA,CAAE,MAAA,EAAO,EAAGC,kCAAgB,CAAC,CAAA,CACrE,QAAA,EAAS,CACT,SAAS,8EAAyE,CAAA;AAAA,EACrF,MAAA,EAAQE,wCAAA,CAAuBH,IAAA,CAAE,MAAA,CAAOA,IAAA,CAAE,MAAA,EAAO,EAAGC,kCAAgB,CAAC,CAAA,CAClE,QAAA,EAAS,CACT,SAAS,wEAAmE,CAAA;AAAA,EAC/E,gBAAA,EAAkBE,wCAAA,CAAuBH,IAAA,CAAE,MAAA,CAAOA,IAAA,CAAE,MAAA,EAAO,EAAG,0BAA0B,CAAC,CAAA,CACtF,QAAA,EAAS,CACT,SAAS,oFAA+E,CAAA;AAAA,EAC3F,UAAA,EAAYG,wCAAA,CAAuBH,IAAA,CAAE,MAAA,CAAOA,IAAA,CAAE,MAAA,EAAO,EAAG,0BAA0B,CAAC,CAAA,CAChF,QAAA,EAAS,CACT,SAAS,wFAAmF,CAAA;AAAA,EAC/F,iBAAiBG,wCAAA,CAAuBI,4CAA0B,EAC/D,QAAA,EAAS,CACT,SAAS,oDAA+C,CAAA;AAAA,EAC3D,kBAAkBJ,wCAAA,CAAuBI,4CAA0B,EAChE,QAAA,EAAS,CACT,SAAS,qDAAgD,CAAA;AAAA,EAC5D,QAAQJ,wCAAA,CAAuBK,8CAA4B,EACxD,QAAA,EAAS,CACT,SAAS,mDAA8C,CAAA;AAAA,EAC1D,OAAA,EAASL,wCAAA,CAAuBH,IAAA,CAAE,MAAA,CAAOA,IAAA,CAAE,MAAA,EAAO,EAAGS,oCAAkB,CAAC,CAAA,CACrE,QAAA,EAAS,CACT,SAAS,wEAAmE,CAAA;AAAA,EAC/E,oBAAA,EAAsBT,IAAA,CACnB,MAAA,CAAOA,IAAA,CAAE,MAAA,EAAO,EAAGA,IAAA,CAAE,OAAA,EAAS,CAAA,CAC9B,QAAA,EAAS,CACT,SAAS,sDAAsD,CAAA;AAAA;AAAA,EAElE,aAAA,EAAeA,IAAA,CAAE,KAAA,CAAMA,IAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,6DAA6D,CAAA;AAAA,EACpH,eAAeA,IAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA,EACvF,WAAWA,IAAA,CAAE,MAAA,CAAO,IAAA,EAAK,CAAE,SAAS,+BAA+B;AACrE,CAAC;AAKM,IAAM,0BAAA,GAA6BU,mDAAiC,kBAAkB;AAKtF,IAAM,wBAAA,GAA2B;AAKjC,IAAM,2BAAA,GAA8B,kBAAA,CAAmB,OAAA,EAAQ,CAAE,KAAA;AAAA,EACtEV,KAAE,MAAA,CAAO;AAAA;AAAA,IAEP,EAAA,EAAIA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA,IAClE,OAAA,EAASA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yCAAyC,CAAA;AAAA,IACtE,aAAA,EAAeA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA,IAC7E,WAAWA,IAAA,CAAE,MAAA,CAAO,IAAA,EAAK,CAAE,SAAS,+BAA+B;AAAA,GACpE;AACH;AAKO,IAAM,+BAA+B,kBAAA,CAAmB,QAAA;AAAA,EAC7D;AACF;AAKO,IAAM,6BAAA,GAETW,sDAAoC,kBAAkB","file":"chunk-WQMMOPJQ.cjs","sourcesContent":["import { z } from 'zod/v4';\nimport { defaultOptionsSchema } from './default-options';\nimport { serializedMemoryConfigSchema } from './memory-config';\nimport {\n scorerConfigSchema,\n instructionsSchema,\n conditionalFieldSchema,\n modelConfigSchema,\n toolConfigSchema,\n toolsConfigSchema,\n storedProcessorGraphSchema,\n} from './stored-agents';\nimport {\n listVersionsQuerySchema,\n compareVersionsQuerySchema,\n createVersionBodySchema,\n activateVersionResponseSchema,\n deleteVersionResponseSchema,\n versionDiffEntrySchema,\n createListVersionsResponseSchema,\n createCompareVersionsResponseSchema,\n} from './version-common';\n\nconst mcpClientToolsConfigSchema = z.object({\n tools: z.record(z.string(), toolConfigSchema).optional(),\n});\n\n// Re-export shared schemas for backwards compat\nexport {\n listVersionsQuerySchema,\n compareVersionsQuerySchema,\n createVersionBodySchema,\n activateVersionResponseSchema,\n deleteVersionResponseSchema,\n versionDiffEntrySchema,\n};\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameters for agent version routes\n */\nexport const agentVersionPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n/**\n * Path parameters for specific version routes\n */\nexport const versionIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n versionId: z.string().describe('Unique identifier for the version (UUID)'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Agent version object schema (full response)\n * Config fields are top-level on the version (no nested snapshot object).\n * Extends StorageAgentSnapshotType fields.\n */\nexport const agentVersionSchema = z.object({\n id: z.string().describe('Unique identifier for the version (UUID)'),\n agentId: z.string().describe('ID of the agent this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n // Top-level config fields (from StorageAgentSnapshotType)\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables'),\n // Version metadata fields\n changedFields: z.array(z.string()).optional().describe('Array of field names that changed from the previous version'),\n changeMessage: z.string().optional().describe('Optional message describing the changes'),\n createdAt: z.coerce.date().describe('When this version was created'),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions\n */\nexport const listVersionsResponseSchema = createListVersionsResponseSchema(agentVersionSchema);\n\n/**\n * Response for GET /stored/agents/:agentId/versions/:versionId\n */\nexport const getVersionResponseSchema = agentVersionSchema;\n\n/**\n * Response for POST /stored/agents/:agentId/versions\n */\nexport const createVersionResponseSchema = agentVersionSchema.partial().merge(\n z.object({\n // These fields are always present in a version response\n id: z.string().describe('Unique identifier for the version (UUID)'),\n agentId: z.string().describe('ID of the agent this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n createdAt: z.coerce.date().describe('When this version was created'),\n }),\n);\n\n/**\n * Response for POST /stored/agents/:agentId/versions/:versionId/restore\n */\nexport const restoreVersionResponseSchema = agentVersionSchema.describe(\n 'The newly created version from the restored configuration',\n);\n\n/**\n * Response for GET /stored/agents/:agentId/versions/compare\n */\nexport const compareVersionsResponseSchema: ReturnType<\n typeof createCompareVersionsResponseSchema<typeof agentVersionSchema>\n> = createCompareVersionsResponseSchema(agentVersionSchema);\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/agent-versions.ts"],"names":["z","toolConfigSchema","instructionsSchema","conditionalFieldSchema","modelConfigSchema","toolsConfigSchema","defaultOptionsSchema","storedProcessorGraphSchema","serializedMemoryConfigSchema","scorerConfigSchema","createListVersionsResponseSchema","createCompareVersionsResponseSchema"],"mappings":"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","file":"chunk-ANFNDHDM.cjs","sourcesContent":["import { z } from 'zod/v4';\nimport { defaultOptionsSchema } from './default-options';\nimport { serializedMemoryConfigSchema } from './memory-config';\nimport {\n scorerConfigSchema,\n instructionsSchema,\n conditionalFieldSchema,\n modelConfigSchema,\n toolConfigSchema,\n toolsConfigSchema,\n storedProcessorGraphSchema,\n} from './stored-agents';\nimport {\n listVersionsQuerySchema,\n compareVersionsQuerySchema,\n createVersionBodySchema,\n activateVersionResponseSchema,\n deleteVersionResponseSchema,\n versionDiffEntrySchema,\n createListVersionsResponseSchema,\n createCompareVersionsResponseSchema,\n} from './version-common';\n\nconst mcpClientToolsConfigSchema = z.object({\n tools: z.record(z.string(), toolConfigSchema).optional(),\n});\n\n// Re-export shared schemas for backwards compat\nexport {\n listVersionsQuerySchema,\n compareVersionsQuerySchema,\n createVersionBodySchema,\n activateVersionResponseSchema,\n deleteVersionResponseSchema,\n versionDiffEntrySchema,\n};\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameters for agent version routes\n */\nexport const agentVersionPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n/**\n * Path parameters for specific version routes\n */\nexport const versionIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n versionId: z.string().describe('Unique identifier for the version (UUID)'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Agent version object schema (full response)\n * Config fields are top-level on the version (no nested snapshot object).\n * Extends StorageAgentSnapshotType fields.\n */\nexport const agentVersionSchema = z.object({\n id: z.string().describe('Unique identifier for the version (UUID)'),\n agentId: z.string().describe('ID of the agent this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n // Top-level config fields (from StorageAgentSnapshotType)\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables'),\n // Version metadata fields\n changedFields: z.array(z.string()).optional().describe('Array of field names that changed from the previous version'),\n changeMessage: z.string().optional().describe('Optional message describing the changes'),\n createdAt: z.coerce.date().describe('When this version was created'),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions\n */\nexport const listVersionsResponseSchema = createListVersionsResponseSchema(agentVersionSchema);\n\n/**\n * Response for GET /stored/agents/:agentId/versions/:versionId\n */\nexport const getVersionResponseSchema = agentVersionSchema;\n\n/**\n * Response for POST /stored/agents/:agentId/versions\n */\nexport const createVersionResponseSchema = agentVersionSchema.partial().merge(\n z.object({\n // These fields are always present in a version response\n id: z.string().describe('Unique identifier for the version (UUID)'),\n agentId: z.string().describe('ID of the agent this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n createdAt: z.coerce.date().describe('When this version was created'),\n }),\n);\n\n/**\n * Response for POST /stored/agents/:agentId/versions/:versionId/restore\n */\nexport const restoreVersionResponseSchema = agentVersionSchema.describe(\n 'The newly created version from the restored configuration',\n);\n\n/**\n * Response for GET /stored/agents/:agentId/versions/compare\n */\nexport const compareVersionsResponseSchema: ReturnType<\n typeof createCompareVersionsResponseSchema<typeof agentVersionSchema>\n> = createCompareVersionsResponseSchema(agentVersionSchema);\n"]}
@@ -1,7 +1,7 @@
1
1
  import { conversationObjectSchema, createConversationBodySchema, conversationIdPathParams, conversationItemsListSchema, conversationDeletedSchema } from './chunk-WOE6XG6B.js';
2
2
  import { mapMastraMessagesToConversationItems } from './chunk-TLLV2JP5.js';
3
3
  import { getAgentMemoryStore, findConversationThreadAcrossAgents } from './chunk-GFZR6THV.js';
4
- import { getAgentFromSystem } from './chunk-QBMOXGFZ.js';
4
+ import { getAgentFromSystem } from './chunk-MZ3EAJXG.js';
5
5
  import { MastraFGAPermissions, getEffectiveResourceId } from './chunk-BWNJBSXL.js';
6
6
  import { handleError } from './chunk-RJ5ZIUGX.js';
7
7
  import { createRoute } from './chunk-YQL3TXSD.js';
@@ -155,5 +155,5 @@ var DELETE_CONVERSATION_ROUTE = createRoute({
155
155
  });
156
156
 
157
157
  export { CREATE_CONVERSATION_ROUTE, DELETE_CONVERSATION_ROUTE, GET_CONVERSATION_ITEMS_ROUTE, GET_CONVERSATION_ROUTE, conversations_exports };
158
- //# sourceMappingURL=chunk-EFMN6TTT.js.map
159
- //# sourceMappingURL=chunk-EFMN6TTT.js.map
158
+ //# sourceMappingURL=chunk-APGJQAJ7.js.map
159
+ //# sourceMappingURL=chunk-APGJQAJ7.js.map