@mastra/server 1.56.0-alpha.2 → 1.56.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 (139) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/request-context/index.d.ts +6 -0
  3. package/dist/{a2a-DaFY01Nq.js → a2a-BHqh8DdO.js} +2 -2
  4. package/dist/{a2a-DaFY01Nq.js.map → a2a-BHqh8DdO.js.map} +1 -1
  5. package/dist/{a2a-_ekkh9Eo.cjs → a2a-Dmw3AD3r.cjs} +2 -2
  6. package/dist/{a2a-_ekkh9Eo.cjs.map → a2a-Dmw3AD3r.cjs.map} +1 -1
  7. package/dist/{agent-builder-CaeaWZFr.cjs → agent-builder-BDYN3r89.cjs} +2 -2
  8. package/dist/{agent-builder-CaeaWZFr.cjs.map → agent-builder-BDYN3r89.cjs.map} +1 -1
  9. package/dist/{agent-builder-B077LU0q.js → agent-builder-Dqy_qumV.js} +2 -2
  10. package/dist/{agent-builder-B077LU0q.js.map → agent-builder-Dqy_qumV.js.map} +1 -1
  11. package/dist/{api-schema-manifest-TXvvzJiU.cjs → api-schema-manifest-BD9sVZgj.cjs} +2 -2
  12. package/dist/{api-schema-manifest-TXvvzJiU.cjs.map → api-schema-manifest-BD9sVZgj.cjs.map} +1 -1
  13. package/dist/{api-schema-manifest-BT6M02Lr.js → api-schema-manifest-DOHg_30B.js} +2 -2
  14. package/dist/{api-schema-manifest-BT6M02Lr.js.map → api-schema-manifest-DOHg_30B.js.map} +1 -1
  15. package/dist/{builder-registry-DLAloBZv.cjs → builder-registry-NmiGAW1q.cjs} +2 -2
  16. package/dist/{builder-registry-DLAloBZv.cjs.map → builder-registry-NmiGAW1q.cjs.map} +1 -1
  17. package/dist/{builder-registry-D-6UWXLu.js → builder-registry-dh22nXUR.js} +2 -2
  18. package/dist/{builder-registry-D-6UWXLu.js.map → builder-registry-dh22nXUR.js.map} +1 -1
  19. package/dist/{dist-CgHgmUmP.js → dist-BlHxui7N.js} +183 -33
  20. package/dist/dist-BlHxui7N.js.map +1 -0
  21. package/dist/{dist-3OAfymQm.cjs → dist-D9hQEsv9.cjs} +183 -33
  22. package/dist/dist-D9hQEsv9.cjs.map +1 -0
  23. package/dist/docs/SKILL.md +1 -1
  24. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  25. package/dist/{routes-5DQoCzuO.cjs → routes-Bmt4vUom.cjs} +19 -3
  26. package/dist/routes-Bmt4vUom.cjs.map +1 -0
  27. package/dist/{routes-C_zs_0NM.js → routes-YeBVxmmg.js} +19 -3
  28. package/dist/routes-YeBVxmmg.js.map +1 -0
  29. package/dist/server/fga-permissions.d.ts.map +1 -1
  30. package/dist/server/handlers/a2a.cjs +1 -1
  31. package/dist/server/handlers/a2a.d.ts +4 -4
  32. package/dist/server/handlers/a2a.js +1 -1
  33. package/dist/server/handlers/agent-builder.cjs +4 -4
  34. package/dist/server/handlers/agent-builder.d.ts +35 -5
  35. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  36. package/dist/server/handlers/agent-builder.js +4 -4
  37. package/dist/server/handlers/agent-versions.cjs +1 -1
  38. package/dist/server/handlers/agent-versions.js +1 -1
  39. package/dist/server/handlers/agents.cjs +2 -2
  40. package/dist/server/handlers/agents.js +2 -2
  41. package/dist/server/handlers/builder-registry.cjs +1 -1
  42. package/dist/server/handlers/builder-registry.js +1 -1
  43. package/dist/server/handlers/conversations.cjs +1 -1
  44. package/dist/server/handlers/conversations.js +1 -1
  45. package/dist/server/handlers/datasets.d.ts +11 -11
  46. package/dist/server/handlers/logs.cjs +1 -1
  47. package/dist/server/handlers/logs.js +1 -1
  48. package/dist/server/handlers/mcp-client-versions.cjs +1 -1
  49. package/dist/server/handlers/mcp-client-versions.js +1 -1
  50. package/dist/server/handlers/memory.cjs +1 -1
  51. package/dist/server/handlers/memory.js +1 -1
  52. package/dist/server/handlers/prompt-block-versions.cjs +1 -1
  53. package/dist/server/handlers/prompt-block-versions.js +1 -1
  54. package/dist/server/handlers/responses.cjs +1 -1
  55. package/dist/server/handlers/responses.js +1 -1
  56. package/dist/server/handlers/responses.storage.cjs +1 -1
  57. package/dist/server/handlers/responses.storage.js +1 -1
  58. package/dist/server/handlers/scorer-versions.cjs +1 -1
  59. package/dist/server/handlers/scorer-versions.js +1 -1
  60. package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
  61. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  62. package/dist/server/handlers/stored-agents.cjs +1 -1
  63. package/dist/server/handlers/stored-agents.js +1 -1
  64. package/dist/server/handlers/stored-mcp-clients.cjs +1 -1
  65. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  66. package/dist/server/handlers/stored-prompt-blocks.cjs +1 -1
  67. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  68. package/dist/server/handlers/stored-scorers.cjs +1 -1
  69. package/dist/server/handlers/stored-scorers.js +1 -1
  70. package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
  71. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  72. package/dist/server/handlers/stored-skills.cjs +1 -1
  73. package/dist/server/handlers/stored-skills.js +1 -1
  74. package/dist/server/handlers/stored-workflows.cjs +6 -0
  75. package/dist/server/handlers/stored-workflows.d.ts +820 -0
  76. package/dist/server/handlers/stored-workflows.d.ts.map +1 -0
  77. package/dist/server/handlers/stored-workflows.js +2 -0
  78. package/dist/server/handlers/stored-workspaces.cjs +1 -1
  79. package/dist/server/handlers/stored-workspaces.js +1 -1
  80. package/dist/server/handlers/system.cjs +1 -1
  81. package/dist/server/handlers/system.js +1 -1
  82. package/dist/server/handlers/tools.cjs +2 -2
  83. package/dist/server/handlers/tools.js +2 -2
  84. package/dist/server/handlers/utils.cjs +1 -1
  85. package/dist/server/handlers/utils.js +1 -1
  86. package/dist/server/handlers/workflows.cjs +4 -4
  87. package/dist/server/handlers/workflows.cjs.map +1 -1
  88. package/dist/server/handlers/workflows.d.ts +45 -7
  89. package/dist/server/handlers/workflows.d.ts.map +1 -1
  90. package/dist/server/handlers/workflows.js +4 -4
  91. package/dist/server/handlers/workflows.js.map +1 -1
  92. package/dist/server/handlers.cjs +8 -1
  93. package/dist/server/handlers.d.ts +1 -0
  94. package/dist/server/handlers.d.ts.map +1 -1
  95. package/dist/server/handlers.js +3 -2
  96. package/dist/server/schemas/a2a.d.ts +3 -3
  97. package/dist/server/schemas/datasets.d.ts +5 -5
  98. package/dist/server/schemas/index.cjs +2 -2
  99. package/dist/server/schemas/index.js +2 -2
  100. package/dist/server/schemas/stored-workflows.d.ts +614 -0
  101. package/dist/server/schemas/stored-workflows.d.ts.map +1 -0
  102. package/dist/server/schemas/workflows.d.ts +24 -0
  103. package/dist/server/schemas/workflows.d.ts.map +1 -1
  104. package/dist/server/server-adapter/index.cjs +2 -2
  105. package/dist/server/server-adapter/index.js +2 -2
  106. package/dist/server/server-adapter/routes/a2a.d.ts +4 -4
  107. package/dist/server/server-adapter/routes/agent-builder.d.ts +35 -5
  108. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -1
  109. package/dist/server/server-adapter/routes/datasets.d.ts +11 -11
  110. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  111. package/dist/server/server-adapter/routes/stored-workflows.d.ts +16 -0
  112. package/dist/server/server-adapter/routes/stored-workflows.d.ts.map +1 -0
  113. package/dist/server/server-adapter/routes/workflows.d.ts +45 -7
  114. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
  115. package/dist/server/utils.d.ts.map +1 -1
  116. package/dist/stored-workflows-B3zZJg8e.js +338 -0
  117. package/dist/stored-workflows-B3zZJg8e.js.map +1 -0
  118. package/dist/stored-workflows-RgQKpn7N.cjs +367 -0
  119. package/dist/stored-workflows-RgQKpn7N.cjs.map +1 -0
  120. package/dist/{utils-BNoVHi8G.cjs → utils-5wLvbOLW.cjs} +4 -2
  121. package/dist/{utils-BNoVHi8G.cjs.map → utils-5wLvbOLW.cjs.map} +1 -1
  122. package/dist/{utils-Bfyc8rsg.js → utils-CmHd1Sgh.js} +3 -1
  123. package/dist/{utils-C1_mI2Ws.cjs.map → utils-CmHd1Sgh.js.map} +1 -1
  124. package/dist/{utils-EZi2K0ph.js → utils-DVelcVp5.js} +4 -2
  125. package/dist/{utils-EZi2K0ph.js.map → utils-DVelcVp5.js.map} +1 -1
  126. package/dist/{utils-C1_mI2Ws.cjs → utils-wTwyTjg3.cjs} +3 -1
  127. package/dist/utils-wTwyTjg3.cjs.map +1 -0
  128. package/dist/{workflows-CiUa_yVU.js → workflows-DPW6FrY0.js} +8 -3
  129. package/dist/workflows-DPW6FrY0.js.map +1 -0
  130. package/dist/{workflows-Bxy77CRQ.cjs → workflows-XfiENvkF.cjs} +8 -3
  131. package/dist/workflows-XfiENvkF.cjs.map +1 -0
  132. package/package.json +7 -7
  133. package/dist/dist-3OAfymQm.cjs.map +0 -1
  134. package/dist/dist-CgHgmUmP.js.map +0 -1
  135. package/dist/routes-5DQoCzuO.cjs.map +0 -1
  136. package/dist/routes-C_zs_0NM.js.map +0 -1
  137. package/dist/utils-Bfyc8rsg.js.map +0 -1
  138. package/dist/workflows-Bxy77CRQ.cjs.map +0 -1
  139. package/dist/workflows-CiUa_yVU.js.map +0 -1
@@ -0,0 +1,367 @@
1
+ const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs");
2
+ const require_http_exception = require("./http-exception-CKDHupKw.cjs");
3
+ const require_route_builder = require("./route-builder-BZaWjoDk.cjs");
4
+ const require_server_handlers_error = require("./server/handlers/error.cjs");
5
+ let zod_v4 = require("zod/v4");
6
+ //#region src/server/schemas/stored-workflows.ts
7
+ const stepOptionsSchema = zod_v4.z.object({
8
+ retries: zod_v4.z.number().int().nonnegative().optional(),
9
+ metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional()
10
+ }).optional();
11
+ const literalScalar = zod_v4.z.union([
12
+ zod_v4.z.string(),
13
+ zod_v4.z.number(),
14
+ zod_v4.z.boolean(),
15
+ zod_v4.z.null()
16
+ ]);
17
+ const pathOrLiteral = zod_v4.z.union([zod_v4.z.object({ path: zod_v4.z.string().min(1) }).strict(), zod_v4.z.object({ literal: literalScalar }).strict()]);
18
+ const predicateSchema = zod_v4.z.lazy(() => zod_v4.z.union([
19
+ zod_v4.z.object({
20
+ op: zod_v4.z.enum([
21
+ "eq",
22
+ "ne",
23
+ "lt",
24
+ "lte",
25
+ "gt",
26
+ "gte"
27
+ ]),
28
+ left: pathOrLiteral,
29
+ right: pathOrLiteral
30
+ }).strict(),
31
+ zod_v4.z.object({
32
+ op: zod_v4.z.enum(["in", "notIn"]),
33
+ value: pathOrLiteral,
34
+ set: zod_v4.z.array(literalScalar).min(1)
35
+ }).strict(),
36
+ zod_v4.z.object({
37
+ op: zod_v4.z.enum(["exists", "notExists"]),
38
+ path: zod_v4.z.string().min(1)
39
+ }).strict(),
40
+ zod_v4.z.object({
41
+ op: zod_v4.z.enum(["truthy", "falsy"]),
42
+ value: pathOrLiteral
43
+ }).strict(),
44
+ zod_v4.z.object({
45
+ op: zod_v4.z.enum(["and", "or"]),
46
+ args: zod_v4.z.array(predicateSchema).min(1)
47
+ }).strict(),
48
+ zod_v4.z.object({
49
+ op: zod_v4.z.literal("not"),
50
+ arg: predicateSchema
51
+ }).strict()
52
+ ]));
53
+ const agentEntrySchema = zod_v4.z.object({
54
+ type: zod_v4.z.literal("agent"),
55
+ id: zod_v4.z.string(),
56
+ agentId: zod_v4.z.string(),
57
+ description: zod_v4.z.string().optional(),
58
+ outputSchema: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
59
+ options: stepOptionsSchema
60
+ });
61
+ const toolEntrySchema = zod_v4.z.object({
62
+ type: zod_v4.z.literal("tool"),
63
+ id: zod_v4.z.string(),
64
+ toolId: zod_v4.z.string(),
65
+ description: zod_v4.z.string().optional(),
66
+ options: stepOptionsSchema
67
+ });
68
+ const mappingEntrySchema = zod_v4.z.object({
69
+ type: zod_v4.z.literal("mapping"),
70
+ id: zod_v4.z.string(),
71
+ mapConfig: zod_v4.z.string()
72
+ });
73
+ const workflowEntrySchema = zod_v4.z.object({
74
+ type: zod_v4.z.literal("workflow"),
75
+ id: zod_v4.z.string(),
76
+ workflowId: zod_v4.z.string(),
77
+ description: zod_v4.z.string().optional()
78
+ });
79
+ const singleStepEntrySchema = zod_v4.z.discriminatedUnion("type", [
80
+ agentEntrySchema,
81
+ toolEntrySchema,
82
+ mappingEntrySchema,
83
+ workflowEntrySchema
84
+ ]);
85
+ const foreachInnerStepSchema = zod_v4.z.discriminatedUnion("type", [
86
+ agentEntrySchema,
87
+ toolEntrySchema,
88
+ workflowEntrySchema
89
+ ]);
90
+ const graphEntrySchema = zod_v4.z.discriminatedUnion("type", [
91
+ agentEntrySchema,
92
+ toolEntrySchema,
93
+ mappingEntrySchema,
94
+ workflowEntrySchema,
95
+ zod_v4.z.object({
96
+ type: zod_v4.z.literal("parallel"),
97
+ steps: zod_v4.z.array(singleStepEntrySchema)
98
+ }),
99
+ zod_v4.z.object({
100
+ type: zod_v4.z.literal("foreach"),
101
+ step: foreachInnerStepSchema,
102
+ opts: zod_v4.z.object({ concurrency: zod_v4.z.number().int().positive() }).optional()
103
+ }),
104
+ zod_v4.z.object({
105
+ type: zod_v4.z.literal("sleep"),
106
+ id: zod_v4.z.string(),
107
+ duration: zod_v4.z.number()
108
+ }),
109
+ zod_v4.z.object({
110
+ type: zod_v4.z.literal("sleepUntil"),
111
+ id: zod_v4.z.string(),
112
+ date: zod_v4.z.string()
113
+ }),
114
+ zod_v4.z.object({
115
+ type: zod_v4.z.literal("conditional"),
116
+ steps: zod_v4.z.array(singleStepEntrySchema),
117
+ predicates: zod_v4.z.array(predicateSchema)
118
+ }).refine((entry) => entry.predicates.length === entry.steps.length, {
119
+ message: "conditional entries must have exactly one predicate per branch (`predicates` and `steps` must be the same length)",
120
+ path: ["predicates"]
121
+ }),
122
+ zod_v4.z.object({
123
+ type: zod_v4.z.literal("loop"),
124
+ step: singleStepEntrySchema,
125
+ loopType: zod_v4.z.enum(["dowhile", "dountil"]),
126
+ predicate: predicateSchema
127
+ })
128
+ ]);
129
+ const storedWorkflowIdPathParams = zod_v4.z.object({ storedWorkflowId: zod_v4.z.string().describe("Unique identifier for the stored workflow definition") });
130
+ const listStoredWorkflowsQuerySchema = zod_v4.z.object({
131
+ status: zod_v4.z.enum(["active", "archived"]).optional().describe("Filter stored workflows by status (defaults to active when omitted by the handler)"),
132
+ authorId: zod_v4.z.string().optional().describe("Filter stored workflows by author identifier")
133
+ });
134
+ /**
135
+ * One static workflow definition on the wire. Matches the input shape of
136
+ * `mastra.addStoredWorkflow()`.
137
+ */
138
+ const storedWorkflowDefinitionBodySchema = zod_v4.z.object({
139
+ id: zod_v4.z.string().describe("Workflow id — kebab-case, descriptive"),
140
+ description: zod_v4.z.string().optional(),
141
+ metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
142
+ inputSchema: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).describe("JSON Schema (Draft 2020-12) for the workflow input"),
143
+ outputSchema: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).describe("JSON Schema (Draft 2020-12) for the workflow output"),
144
+ stateSchema: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
145
+ requestContextSchema: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
146
+ graph: zod_v4.z.array(graphEntrySchema).describe("Static workflow graph — ordered array of serialized step entries with all refs as ids.")
147
+ });
148
+ /**
149
+ * Body for `POST /stored/workflows` — upsert a static workflow definition,
150
+ * optionally together with the helper workflows it nests.
151
+ */
152
+ const upsertStoredWorkflowBodySchema = storedWorkflowDefinitionBodySchema.extend({ dependencies: zod_v4.z.array(storedWorkflowDefinitionBodySchema).optional().describe("Helper workflow definitions this workflow nests. Saved with it as one unit — the whole set is validated together, hydrated in derived dependency order, and rejected together, so a failed save never leaves orphaned helpers behind. Each helper becomes an ordinary stored workflow in its own right.") });
153
+ /**
154
+ * Shape returned for any single stored workflow row.
155
+ */
156
+ const storedWorkflowResponseSchema = zod_v4.z.object({
157
+ id: zod_v4.z.string(),
158
+ description: zod_v4.z.string().optional(),
159
+ metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
160
+ inputSchema: zod_v4.z.unknown(),
161
+ outputSchema: zod_v4.z.unknown(),
162
+ stateSchema: zod_v4.z.unknown().optional(),
163
+ requestContextSchema: zod_v4.z.unknown().optional(),
164
+ graph: zod_v4.z.array(zod_v4.z.unknown()),
165
+ status: zod_v4.z.enum(["active", "archived"]),
166
+ source: zod_v4.z.literal("storage"),
167
+ authorId: zod_v4.z.string().optional(),
168
+ createdAt: zod_v4.z.union([zod_v4.z.date(), zod_v4.z.string()]),
169
+ updatedAt: zod_v4.z.union([zod_v4.z.date(), zod_v4.z.string()])
170
+ });
171
+ const listStoredWorkflowsResponseSchema = zod_v4.z.object({
172
+ workflows: zod_v4.z.array(storedWorkflowResponseSchema),
173
+ total: zod_v4.z.number()
174
+ });
175
+ const getStoredWorkflowResponseSchema = storedWorkflowResponseSchema;
176
+ const upsertStoredWorkflowResponseSchema = zod_v4.z.object({
177
+ ok: zod_v4.z.literal(true),
178
+ id: zod_v4.z.string(),
179
+ dependencyIds: zod_v4.z.array(zod_v4.z.string()).optional().describe("Ids of the helper workflows saved alongside this one. Present only when dependencies were supplied.")
180
+ });
181
+ const deleteStoredWorkflowResponseSchema = zod_v4.z.object({
182
+ success: zod_v4.z.literal(true),
183
+ message: zod_v4.z.string()
184
+ });
185
+ //#endregion
186
+ //#region src/server/handlers/stored-workflows.ts
187
+ var stored_workflows_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
188
+ DELETE_STORED_WORKFLOW_ROUTE: () => DELETE_STORED_WORKFLOW_ROUTE,
189
+ GET_STORED_WORKFLOW_ROUTE: () => GET_STORED_WORKFLOW_ROUTE,
190
+ LIST_STORED_WORKFLOWS_ROUTE: () => LIST_STORED_WORKFLOWS_ROUTE,
191
+ UPSERT_STORED_WORKFLOW_ROUTE: () => UPSERT_STORED_WORKFLOW_ROUTE
192
+ });
193
+ /**
194
+ * GET /stored/workflows — list stored static workflow definitions.
195
+ *
196
+ * Mirrors `LIST_STORED_AGENTS_ROUTE` but without favorites/visibility/authorship
197
+ * scoping (which the workflow-definitions domain doesn't carry in v1).
198
+ */
199
+ const LIST_STORED_WORKFLOWS_ROUTE = require_route_builder.createRoute({
200
+ method: "GET",
201
+ path: "/stored/workflows",
202
+ responseType: "json",
203
+ queryParamSchema: listStoredWorkflowsQuerySchema,
204
+ responseSchema: listStoredWorkflowsResponseSchema,
205
+ summary: "List stored workflow definitions",
206
+ description: "Returns workflow definitions persisted to storage. Filterable by status and authorId.",
207
+ tags: ["Stored Workflows"],
208
+ requiresAuth: true,
209
+ requiresPermission: "stored-workflows:read",
210
+ handler: async ({ mastra, status, authorId }) => {
211
+ try {
212
+ const storage = mastra.getStorage();
213
+ if (!storage) throw new require_http_exception.HTTPException(500, { message: "Storage is not configured" });
214
+ const store = await storage.getStore("workflowDefinitions");
215
+ if (!store) throw new require_http_exception.HTTPException(500, { message: "workflowDefinitions storage domain is not available" });
216
+ const result = await store.list({
217
+ status: status ?? "active",
218
+ authorId
219
+ });
220
+ return {
221
+ workflows: result.definitions,
222
+ total: result.total
223
+ };
224
+ } catch (error) {
225
+ return require_server_handlers_error.handleError(error, "Error listing stored workflows");
226
+ }
227
+ }
228
+ });
229
+ /**
230
+ * GET /stored/workflows/:storedWorkflowId — get one stored workflow.
231
+ */
232
+ const GET_STORED_WORKFLOW_ROUTE = require_route_builder.createRoute({
233
+ method: "GET",
234
+ path: "/stored/workflows/:storedWorkflowId",
235
+ responseType: "json",
236
+ pathParamSchema: storedWorkflowIdPathParams,
237
+ responseSchema: getStoredWorkflowResponseSchema,
238
+ summary: "Get a stored workflow definition by id",
239
+ description: "Returns a single workflow definition persisted to storage.",
240
+ tags: ["Stored Workflows"],
241
+ requiresAuth: true,
242
+ requiresPermission: "stored-workflows:read",
243
+ handler: async ({ mastra, storedWorkflowId }) => {
244
+ try {
245
+ const storage = mastra.getStorage();
246
+ if (!storage) throw new require_http_exception.HTTPException(500, { message: "Storage is not configured" });
247
+ const store = await storage.getStore("workflowDefinitions");
248
+ if (!store) throw new require_http_exception.HTTPException(500, { message: "workflowDefinitions storage domain is not available" });
249
+ const def = await store.get(storedWorkflowId);
250
+ if (!def) throw new require_http_exception.HTTPException(404, { message: `Stored workflow "${storedWorkflowId}" not found` });
251
+ return def;
252
+ } catch (error) {
253
+ return require_server_handlers_error.handleError(error, "Error getting stored workflow");
254
+ }
255
+ }
256
+ });
257
+ /**
258
+ * POST /stored/workflows — upsert a static workflow definition and live-register
259
+ * it on the Mastra instance.
260
+ *
261
+ * Calls `mastra.addStoredWorkflow(def)` which persists the row + rehydrates a
262
+ * runnable workflow + registers it via `mastra.addWorkflow(workflow, id)`.
263
+ * After this returns, `GET /workflows/:id` and `POST /workflows/:id/run` work
264
+ * immediately — no server restart needed.
265
+ */
266
+ const UPSERT_STORED_WORKFLOW_ROUTE = require_route_builder.createRoute({
267
+ method: "POST",
268
+ path: "/stored/workflows",
269
+ responseType: "json",
270
+ bodySchema: upsertStoredWorkflowBodySchema,
271
+ responseSchema: upsertStoredWorkflowResponseSchema,
272
+ summary: "Upsert a stored workflow definition and live-register it",
273
+ description: "Persists a static workflow definition and live-registers it on the running Mastra instance. Idempotent — same id updates in place.",
274
+ tags: ["Stored Workflows"],
275
+ requiresAuth: true,
276
+ requiresPermission: "stored-workflows:write",
277
+ handler: async ({ mastra, id, description, metadata, inputSchema, outputSchema, stateSchema, requestContextSchema, graph, dependencies }) => {
278
+ try {
279
+ const def = {
280
+ id,
281
+ description,
282
+ metadata,
283
+ inputSchema,
284
+ outputSchema,
285
+ stateSchema,
286
+ requestContextSchema,
287
+ graph
288
+ };
289
+ const bundle = [...dependencies ?? [], def];
290
+ await mastra.addStoredWorkflows(bundle);
291
+ return {
292
+ ok: true,
293
+ id: def.id,
294
+ ...dependencies?.length ? { dependencyIds: dependencies.map((dependency) => dependency.id) } : {}
295
+ };
296
+ } catch (error) {
297
+ return require_server_handlers_error.handleError(error, "Error upserting stored workflow");
298
+ }
299
+ }
300
+ });
301
+ /**
302
+ * DELETE /stored/workflows/:storedWorkflowId — delete a stored workflow.
303
+ *
304
+ * Removes the row from storage AND un-registers the live Workflow instance so
305
+ * a subsequent POST with the same id starts from a clean slate. Idempotent.
306
+ */
307
+ const DELETE_STORED_WORKFLOW_ROUTE = require_route_builder.createRoute({
308
+ method: "DELETE",
309
+ path: "/stored/workflows/:storedWorkflowId",
310
+ responseType: "json",
311
+ pathParamSchema: storedWorkflowIdPathParams,
312
+ responseSchema: deleteStoredWorkflowResponseSchema,
313
+ summary: "Delete a stored workflow definition",
314
+ description: "Removes a stored workflow definition and unregisters the live workflow instance. Idempotent.",
315
+ tags: ["Stored Workflows"],
316
+ requiresAuth: true,
317
+ requiresPermission: "stored-workflows:write",
318
+ handler: async ({ mastra, storedWorkflowId }) => {
319
+ try {
320
+ const storage = mastra.getStorage();
321
+ if (!storage) throw new require_http_exception.HTTPException(500, { message: "Storage is not configured" });
322
+ const store = await storage.getStore("workflowDefinitions");
323
+ if (!store) throw new require_http_exception.HTTPException(500, { message: "workflowDefinitions storage domain is not available" });
324
+ await store.delete(storedWorkflowId);
325
+ mastra.removeWorkflow(storedWorkflowId);
326
+ return {
327
+ success: true,
328
+ message: `Workflow ${storedWorkflowId} deleted`
329
+ };
330
+ } catch (error) {
331
+ return require_server_handlers_error.handleError(error, "Error deleting stored workflow");
332
+ }
333
+ }
334
+ });
335
+ //#endregion
336
+ Object.defineProperty(exports, "DELETE_STORED_WORKFLOW_ROUTE", {
337
+ enumerable: true,
338
+ get: function() {
339
+ return DELETE_STORED_WORKFLOW_ROUTE;
340
+ }
341
+ });
342
+ Object.defineProperty(exports, "GET_STORED_WORKFLOW_ROUTE", {
343
+ enumerable: true,
344
+ get: function() {
345
+ return GET_STORED_WORKFLOW_ROUTE;
346
+ }
347
+ });
348
+ Object.defineProperty(exports, "LIST_STORED_WORKFLOWS_ROUTE", {
349
+ enumerable: true,
350
+ get: function() {
351
+ return LIST_STORED_WORKFLOWS_ROUTE;
352
+ }
353
+ });
354
+ Object.defineProperty(exports, "UPSERT_STORED_WORKFLOW_ROUTE", {
355
+ enumerable: true,
356
+ get: function() {
357
+ return UPSERT_STORED_WORKFLOW_ROUTE;
358
+ }
359
+ });
360
+ Object.defineProperty(exports, "stored_workflows_exports", {
361
+ enumerable: true,
362
+ get: function() {
363
+ return stored_workflows_exports;
364
+ }
365
+ });
366
+
367
+ //# sourceMappingURL=stored-workflows-RgQKpn7N.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stored-workflows-RgQKpn7N.cjs","names":["z","createRoute","HTTPException","handleError"],"sources":["../src/server/schemas/stored-workflows.ts","../src/server/handlers/stored-workflows.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Serialized graph — discriminated union mirroring core's SerializedStepFlowEntry.\n// Duplicated locally rather than imported from @mastra/core/workflows because\n// this file's peer-dependency floor predates that export. Structurally\n// compatible with `Mastra.addStoredWorkflow`'s input; the handler casts once\n// to bridge the remaining wire-vs-runtime divergences (sleepUntil.date as\n// ISO string, fluent-builder-only debug labels) that the core rehydrator\n// handles at runtime.\n// ============================================================================\n\nconst stepOptionsSchema = z\n .object({\n retries: z.number().int().nonnegative().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .optional();\n\n// ----------------------------------------------------------------------------\n// Predicate DSL — declarative condition for `conditional` / `loop` entries.\n// Mirrors `Predicate` in `@mastra/core/workflows/predicate`; duplicated\n// locally for the same peer-floor reason as the graph schema above.\n// ----------------------------------------------------------------------------\nconst literalScalar = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst pathOrLiteral: z.ZodType = z.union([\n z.object({ path: z.string().min(1) }).strict(),\n z.object({ literal: literalScalar }).strict(),\n]);\nconst predicateSchema: z.ZodType = z.lazy(() =>\n z.union([\n z\n .object({\n op: z.enum(['eq', 'ne', 'lt', 'lte', 'gt', 'gte']),\n left: pathOrLiteral,\n right: pathOrLiteral,\n })\n .strict(),\n z\n .object({\n op: z.enum(['in', 'notIn']),\n value: pathOrLiteral,\n set: z.array(literalScalar).min(1),\n })\n .strict(),\n z.object({ op: z.enum(['exists', 'notExists']), path: z.string().min(1) }).strict(),\n z.object({ op: z.enum(['truthy', 'falsy']), value: pathOrLiteral }).strict(),\n z.object({ op: z.enum(['and', 'or']), args: z.array(predicateSchema).min(1) }).strict(),\n z.object({ op: z.literal('not'), arg: predicateSchema }).strict(),\n ]),\n);\n\nconst agentEntrySchema = z.object({\n type: z.literal('agent'),\n id: z.string(),\n agentId: z.string(),\n description: z.string().optional(),\n outputSchema: z.record(z.string(), z.unknown()).optional(),\n options: stepOptionsSchema,\n});\n\nconst toolEntrySchema = z.object({\n type: z.literal('tool'),\n id: z.string(),\n toolId: z.string(),\n description: z.string().optional(),\n options: stepOptionsSchema,\n});\n\nconst mappingEntrySchema = z.object({\n type: z.literal('mapping'),\n id: z.string(),\n mapConfig: z.string(),\n});\n\nconst workflowEntrySchema = z.object({\n type: z.literal('workflow'),\n id: z.string(),\n workflowId: z.string(),\n description: z.string().optional(),\n});\n\nconst singleStepEntrySchema = z.discriminatedUnion('type', [\n agentEntrySchema,\n toolEntrySchema,\n mappingEntrySchema,\n workflowEntrySchema,\n]);\n\nconst foreachInnerStepSchema = z.discriminatedUnion('type', [agentEntrySchema, toolEntrySchema, workflowEntrySchema]);\n\nconst graphEntrySchema = z.discriminatedUnion('type', [\n agentEntrySchema,\n toolEntrySchema,\n mappingEntrySchema,\n workflowEntrySchema,\n z.object({\n type: z.literal('parallel'),\n steps: z.array(singleStepEntrySchema),\n }),\n z.object({\n type: z.literal('foreach'),\n step: foreachInnerStepSchema,\n opts: z.object({ concurrency: z.number().int().positive() }).optional(),\n }),\n z.object({\n type: z.literal('sleep'),\n id: z.string(),\n duration: z.number(),\n }),\n z.object({\n type: z.literal('sleepUntil'),\n id: z.string(),\n date: z.string(),\n }),\n z\n .object({\n // Declarative-only conditional. Inbound stored workflows must ship a\n // `predicates` array aligned with `steps`; closure-based branches are not\n // accepted over the wire (they'd be arbitrary JS strings we can't\n // safely rehydrate).\n type: z.literal('conditional'),\n steps: z.array(singleStepEntrySchema),\n predicates: z.array(predicateSchema),\n })\n .refine(entry => entry.predicates.length === entry.steps.length, {\n message:\n 'conditional entries must have exactly one predicate per branch (`predicates` and `steps` must be the same length)',\n path: ['predicates'],\n }),\n z.object({\n // Declarative-only loop. Same rationale as `conditional`.\n type: z.literal('loop'),\n step: singleStepEntrySchema,\n loopType: z.enum(['dowhile', 'dountil']),\n predicate: predicateSchema,\n }),\n]);\n\n// ============================================================================\n// Path params\n// ============================================================================\n\nexport const storedWorkflowIdPathParams = z.object({\n storedWorkflowId: z.string().describe('Unique identifier for the stored workflow definition'),\n});\n\n// ============================================================================\n// Query params\n// ============================================================================\n\nexport const listStoredWorkflowsQuerySchema = z.object({\n status: z\n .enum(['active', 'archived'])\n .optional()\n .describe('Filter stored workflows by status (defaults to active when omitted by the handler)'),\n authorId: z.string().optional().describe('Filter stored workflows by author identifier'),\n});\n\n// ============================================================================\n// Body schemas\n// ============================================================================\n\n/**\n * One static workflow definition on the wire. Matches the input shape of\n * `mastra.addStoredWorkflow()`.\n */\nexport const storedWorkflowDefinitionBodySchema = z.object({\n id: z.string().describe('Workflow id — kebab-case, descriptive'),\n description: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n // Schemas are loose object bags by design: different JSON Schema producers\n // emit slightly different shapes and core's `JsonSchema` type is\n // `Record<string, any>`. Using `z.record` here aligns with that shape so\n // no cast is needed at the handler boundary.\n inputSchema: z.record(z.string(), z.unknown()).describe('JSON Schema (Draft 2020-12) for the workflow input'),\n outputSchema: z.record(z.string(), z.unknown()).describe('JSON Schema (Draft 2020-12) for the workflow output'),\n stateSchema: z.record(z.string(), z.unknown()).optional(),\n requestContextSchema: z.record(z.string(), z.unknown()).optional(),\n graph: z\n .array(graphEntrySchema)\n .describe('Static workflow graph — ordered array of serialized step entries with all refs as ids.'),\n});\n\n/**\n * Body for `POST /stored/workflows` — upsert a static workflow definition,\n * optionally together with the helper workflows it nests.\n */\nexport const upsertStoredWorkflowBodySchema = storedWorkflowDefinitionBodySchema.extend({\n // Deliberately a FLAT list rather than a recursive tree: helpers are peers\n // of each other, hydration order is derived from the graphs, and a\n // self-referential Zod schema would not survive OpenAPI generation.\n dependencies: z\n .array(storedWorkflowDefinitionBodySchema)\n .optional()\n .describe(\n 'Helper workflow definitions this workflow nests. Saved with it as one unit — the whole set is validated together, ' +\n 'hydrated in derived dependency order, and rejected together, so a failed save never leaves orphaned helpers behind. ' +\n 'Each helper becomes an ordinary stored workflow in its own right.',\n ),\n});\n\n// ============================================================================\n// Response schemas\n// ============================================================================\n\n/**\n * Shape returned for any single stored workflow row.\n */\nexport const storedWorkflowResponseSchema = z.object({\n id: z.string(),\n description: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown(),\n stateSchema: z.unknown().optional(),\n requestContextSchema: z.unknown().optional(),\n graph: z.array(z.unknown()),\n status: z.enum(['active', 'archived']),\n source: z.literal('storage'),\n authorId: z.string().optional(),\n createdAt: z.union([z.date(), z.string()]),\n updatedAt: z.union([z.date(), z.string()]),\n});\n\nexport const listStoredWorkflowsResponseSchema = z.object({\n workflows: z.array(storedWorkflowResponseSchema),\n total: z.number(),\n});\n\nexport const getStoredWorkflowResponseSchema = storedWorkflowResponseSchema;\n\nexport const upsertStoredWorkflowResponseSchema = z.object({\n ok: z.literal(true),\n id: z.string(),\n dependencyIds: z\n .array(z.string())\n .optional()\n .describe('Ids of the helper workflows saved alongside this one. Present only when dependencies were supplied.'),\n});\n\nexport const deleteStoredWorkflowResponseSchema = z.object({\n success: z.literal(true),\n message: z.string(),\n});\n","import type { Mastra } from '@mastra/core/mastra';\n\nimport { HTTPException } from '../http-exception';\nimport {\n storedWorkflowIdPathParams,\n listStoredWorkflowsQuerySchema,\n upsertStoredWorkflowBodySchema,\n listStoredWorkflowsResponseSchema,\n getStoredWorkflowResponseSchema,\n upsertStoredWorkflowResponseSchema,\n deleteStoredWorkflowResponseSchema,\n} from '../schemas/stored-workflows';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n/**\n * GET /stored/workflows — list stored static workflow definitions.\n *\n * Mirrors `LIST_STORED_AGENTS_ROUTE` but without favorites/visibility/authorship\n * scoping (which the workflow-definitions domain doesn't carry in v1).\n */\nexport const LIST_STORED_WORKFLOWS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/workflows',\n responseType: 'json',\n queryParamSchema: listStoredWorkflowsQuerySchema,\n responseSchema: listStoredWorkflowsResponseSchema,\n summary: 'List stored workflow definitions',\n description: 'Returns workflow definitions persisted to storage. Filterable by status and authorId.',\n tags: ['Stored Workflows'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:read',\n handler: async ({ mastra, status, authorId }) => {\n try {\n const storage = mastra.getStorage();\n if (!storage) throw new HTTPException(500, { message: 'Storage is not configured' });\n\n const store = await storage.getStore('workflowDefinitions');\n if (!store) throw new HTTPException(500, { message: 'workflowDefinitions storage domain is not available' });\n\n const result = await store.list({ status: status ?? 'active', authorId });\n return { workflows: result.definitions, total: result.total };\n } catch (error) {\n return handleError(error, 'Error listing stored workflows');\n }\n },\n});\n\n/**\n * GET /stored/workflows/:storedWorkflowId — get one stored workflow.\n */\nexport const GET_STORED_WORKFLOW_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/workflows/:storedWorkflowId',\n responseType: 'json',\n pathParamSchema: storedWorkflowIdPathParams,\n responseSchema: getStoredWorkflowResponseSchema,\n summary: 'Get a stored workflow definition by id',\n description: 'Returns a single workflow definition persisted to storage.',\n tags: ['Stored Workflows'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:read',\n handler: async ({ mastra, storedWorkflowId }) => {\n try {\n const storage = mastra.getStorage();\n if (!storage) throw new HTTPException(500, { message: 'Storage is not configured' });\n\n const store = await storage.getStore('workflowDefinitions');\n if (!store) throw new HTTPException(500, { message: 'workflowDefinitions storage domain is not available' });\n\n const def = await store.get(storedWorkflowId);\n if (!def) throw new HTTPException(404, { message: `Stored workflow \"${storedWorkflowId}\" not found` });\n return def;\n } catch (error) {\n return handleError(error, 'Error getting stored workflow');\n }\n },\n});\n\n/**\n * POST /stored/workflows — upsert a static workflow definition and live-register\n * it on the Mastra instance.\n *\n * Calls `mastra.addStoredWorkflow(def)` which persists the row + rehydrates a\n * runnable workflow + registers it via `mastra.addWorkflow(workflow, id)`.\n * After this returns, `GET /workflows/:id` and `POST /workflows/:id/run` work\n * immediately — no server restart needed.\n */\nexport const UPSERT_STORED_WORKFLOW_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/workflows',\n responseType: 'json',\n bodySchema: upsertStoredWorkflowBodySchema,\n responseSchema: upsertStoredWorkflowResponseSchema,\n summary: 'Upsert a stored workflow definition and live-register it',\n description:\n 'Persists a static workflow definition and live-registers it on the running Mastra instance. Idempotent — same id updates in place.',\n tags: ['Stored Workflows'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:write',\n handler: async ({\n mastra,\n id,\n description,\n metadata,\n inputSchema,\n outputSchema,\n stateSchema,\n requestContextSchema,\n graph,\n dependencies,\n }) => {\n try {\n // Pick the body fields explicitly — handler args also carry server\n // context (requestContext, abortSignal, ...) which must not leak into\n // the stored definition.\n const def = { id, description, metadata, inputSchema, outputSchema, stateSchema, requestContextSchema, graph };\n // Helpers are saved with the root as one unit so a nested workflow that\n // does not exist yet resolves, and so a rejected root can never leave\n // its helpers behind as orphans. Order within the bundle is derived\n // from the graphs, not from the order the client sent them in.\n const bundle = [...(dependencies ?? []), def];\n // The Zod schema output is structurally compatible with\n // StoredWorkflowGraph but TS can't prove every arm:\n // - sleepUntil.date is an ISO string on the wire, Date on the\n // runtime type; the rehydrator parses it via `new Date(...)`.\n // - conditional/loop's `serializedConditions`/`serializedCondition`\n // debug labels are emitted by the fluent builder at rehydration\n // time; clients don't send them.\n // `addStoredWorkflows` runs a full registry pre-flight before\n // rehydration; the cast documents this boundary.\n await mastra.addStoredWorkflows(bundle as Parameters<Mastra['addStoredWorkflows']>[0]);\n return {\n ok: true as const,\n id: def.id,\n ...(dependencies?.length ? { dependencyIds: dependencies.map(dependency => dependency.id) } : {}),\n };\n } catch (error) {\n return handleError(error, 'Error upserting stored workflow');\n }\n },\n});\n\n/**\n * DELETE /stored/workflows/:storedWorkflowId — delete a stored workflow.\n *\n * Removes the row from storage AND un-registers the live Workflow instance so\n * a subsequent POST with the same id starts from a clean slate. Idempotent.\n */\nexport const DELETE_STORED_WORKFLOW_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/workflows/:storedWorkflowId',\n responseType: 'json',\n pathParamSchema: storedWorkflowIdPathParams,\n responseSchema: deleteStoredWorkflowResponseSchema,\n summary: 'Delete a stored workflow definition',\n description: 'Removes a stored workflow definition and unregisters the live workflow instance. Idempotent.',\n tags: ['Stored Workflows'],\n requiresAuth: true,\n requiresPermission: 'stored-workflows:write',\n handler: async ({ mastra, storedWorkflowId }) => {\n try {\n const storage = mastra.getStorage();\n if (!storage) throw new HTTPException(500, { message: 'Storage is not configured' });\n\n const store = await storage.getStore('workflowDefinitions');\n if (!store) throw new HTTPException(500, { message: 'workflowDefinitions storage domain is not available' });\n\n await store.delete(storedWorkflowId);\n (mastra as Mastra).removeWorkflow(storedWorkflowId);\n return { success: true as const, message: `Workflow ${storedWorkflowId} deleted` };\n } catch (error) {\n return handleError(error, 'Error deleting stored workflow');\n }\n },\n});\n"],"mappings":"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"}
@@ -786,12 +786,14 @@ function getWorkflowInfo(workflow, partial = false) {
786
786
  inputSchema: void 0,
787
787
  outputSchema: void 0,
788
788
  stateSchema: void 0,
789
- requestContextSchema: void 0
789
+ requestContextSchema: void 0,
790
+ origin: workflow.origin
790
791
  };
791
792
  return {
792
793
  name: workflow.name,
793
794
  description: workflow.description,
794
795
  metadata: workflow.metadata,
796
+ origin: workflow.origin,
795
797
  steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
796
798
  acc[key] = {
797
799
  id: step.id,
@@ -957,4 +959,4 @@ Object.defineProperty(exports, "toSlug", {
957
959
  }
958
960
  });
959
961
 
960
- //# sourceMappingURL=utils-BNoVHi8G.cjs.map
962
+ //# sourceMappingURL=utils-5wLvbOLW.cjs.map