@forestadmin/workflow-executor 1.14.0 → 1.16.0
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.
- package/README.md +14 -0
- package/dist/adapters/server-types.d.ts +1 -1
- package/dist/adapters/step-definition-mapper.js +4 -3
- package/dist/errors.d.ts +4 -0
- package/dist/errors.js +12 -3
- package/dist/executors/base-step-executor.d.ts +2 -0
- package/dist/executors/base-step-executor.js +16 -1
- package/dist/executors/guidance-step-executor.d.ts +5 -0
- package/dist/executors/guidance-step-executor.js +159 -3
- package/dist/executors/load-related-record-step-executor.d.ts +2 -9
- package/dist/executors/load-related-record-step-executor.js +150 -98
- package/dist/executors/summary/step-execution-formatters.js +7 -3
- package/dist/http/step-serializer.js +5 -2
- package/dist/types/step-execution-data.d.ts +4 -1
- package/dist/types/validated/execution.d.ts +24 -9
- package/dist/types/validated/step-definition.d.ts +19 -8
- package/dist/types/validated/step-definition.js +9 -6
- package/package.json +1 -1
|
@@ -62,10 +62,11 @@ export declare const StepSchema: z.ZodObject<{
|
|
|
62
62
|
title: z.ZodOptional<z.ZodString>;
|
|
63
63
|
}, z.core.$strip>, z.ZodObject<{
|
|
64
64
|
type: z.ZodLiteral<import("./step-definition").StepType.LoadRelatedRecord>;
|
|
65
|
-
executionType: z.
|
|
65
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
66
|
+
manual: import("./step-definition").StepExecutionMode.Manual;
|
|
66
67
|
"automated-with-confirmation": import("./step-definition").StepExecutionMode.AutomatedWithConfirmation;
|
|
67
68
|
"fully-automated": import("./step-definition").StepExecutionMode.FullyAutomated;
|
|
68
|
-
}
|
|
69
|
+
}>>;
|
|
69
70
|
preRecordedArgs: z.ZodOptional<z.ZodObject<{
|
|
70
71
|
selectedRecordStepId: z.ZodOptional<z.ZodString>;
|
|
71
72
|
relationName: z.ZodOptional<z.ZodString>;
|
|
@@ -86,7 +87,11 @@ export declare const StepSchema: z.ZodObject<{
|
|
|
86
87
|
title: z.ZodOptional<z.ZodString>;
|
|
87
88
|
}, z.core.$strip>, z.ZodObject<{
|
|
88
89
|
type: z.ZodLiteral<import("./step-definition").StepType.Guidance>;
|
|
89
|
-
executionType: z.
|
|
90
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
91
|
+
manual: import("./step-definition").StepExecutionMode.Manual;
|
|
92
|
+
"automated-with-confirmation": import("./step-definition").StepExecutionMode.AutomatedWithConfirmation;
|
|
93
|
+
"fully-automated": import("./step-definition").StepExecutionMode.FullyAutomated;
|
|
94
|
+
}>>;
|
|
90
95
|
prompt: z.ZodOptional<z.ZodString>;
|
|
91
96
|
aiConfigName: z.ZodOptional<z.ZodString>;
|
|
92
97
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -202,10 +207,11 @@ export declare const AvailableStepExecutionSchema: z.ZodObject<{
|
|
|
202
207
|
title: z.ZodOptional<z.ZodString>;
|
|
203
208
|
}, z.core.$strip>, z.ZodObject<{
|
|
204
209
|
type: z.ZodLiteral<import("./step-definition").StepType.LoadRelatedRecord>;
|
|
205
|
-
executionType: z.
|
|
210
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
211
|
+
manual: import("./step-definition").StepExecutionMode.Manual;
|
|
206
212
|
"automated-with-confirmation": import("./step-definition").StepExecutionMode.AutomatedWithConfirmation;
|
|
207
213
|
"fully-automated": import("./step-definition").StepExecutionMode.FullyAutomated;
|
|
208
|
-
}
|
|
214
|
+
}>>;
|
|
209
215
|
preRecordedArgs: z.ZodOptional<z.ZodObject<{
|
|
210
216
|
selectedRecordStepId: z.ZodOptional<z.ZodString>;
|
|
211
217
|
relationName: z.ZodOptional<z.ZodString>;
|
|
@@ -226,7 +232,11 @@ export declare const AvailableStepExecutionSchema: z.ZodObject<{
|
|
|
226
232
|
title: z.ZodOptional<z.ZodString>;
|
|
227
233
|
}, z.core.$strip>, z.ZodObject<{
|
|
228
234
|
type: z.ZodLiteral<import("./step-definition").StepType.Guidance>;
|
|
229
|
-
executionType: z.
|
|
235
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
236
|
+
manual: import("./step-definition").StepExecutionMode.Manual;
|
|
237
|
+
"automated-with-confirmation": import("./step-definition").StepExecutionMode.AutomatedWithConfirmation;
|
|
238
|
+
"fully-automated": import("./step-definition").StepExecutionMode.FullyAutomated;
|
|
239
|
+
}>>;
|
|
230
240
|
prompt: z.ZodOptional<z.ZodString>;
|
|
231
241
|
aiConfigName: z.ZodOptional<z.ZodString>;
|
|
232
242
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -282,10 +292,11 @@ export declare const AvailableStepExecutionSchema: z.ZodObject<{
|
|
|
282
292
|
title: z.ZodOptional<z.ZodString>;
|
|
283
293
|
}, z.core.$strip>, z.ZodObject<{
|
|
284
294
|
type: z.ZodLiteral<import("./step-definition").StepType.LoadRelatedRecord>;
|
|
285
|
-
executionType: z.
|
|
295
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
296
|
+
manual: import("./step-definition").StepExecutionMode.Manual;
|
|
286
297
|
"automated-with-confirmation": import("./step-definition").StepExecutionMode.AutomatedWithConfirmation;
|
|
287
298
|
"fully-automated": import("./step-definition").StepExecutionMode.FullyAutomated;
|
|
288
|
-
}
|
|
299
|
+
}>>;
|
|
289
300
|
preRecordedArgs: z.ZodOptional<z.ZodObject<{
|
|
290
301
|
selectedRecordStepId: z.ZodOptional<z.ZodString>;
|
|
291
302
|
relationName: z.ZodOptional<z.ZodString>;
|
|
@@ -306,7 +317,11 @@ export declare const AvailableStepExecutionSchema: z.ZodObject<{
|
|
|
306
317
|
title: z.ZodOptional<z.ZodString>;
|
|
307
318
|
}, z.core.$strip>, z.ZodObject<{
|
|
308
319
|
type: z.ZodLiteral<import("./step-definition").StepType.Guidance>;
|
|
309
|
-
executionType: z.
|
|
320
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
321
|
+
manual: import("./step-definition").StepExecutionMode.Manual;
|
|
322
|
+
"automated-with-confirmation": import("./step-definition").StepExecutionMode.AutomatedWithConfirmation;
|
|
323
|
+
"fully-automated": import("./step-definition").StepExecutionMode.FullyAutomated;
|
|
324
|
+
}>>;
|
|
310
325
|
prompt: z.ZodOptional<z.ZodString>;
|
|
311
326
|
aiConfigName: z.ZodOptional<z.ZodString>;
|
|
312
327
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -75,10 +75,11 @@ export declare const TriggerActionStepDefinitionSchema: z.ZodObject<{
|
|
|
75
75
|
export type TriggerActionStepDefinition = z.infer<typeof TriggerActionStepDefinitionSchema>;
|
|
76
76
|
export declare const LoadRelatedRecordStepDefinitionSchema: z.ZodObject<{
|
|
77
77
|
type: z.ZodLiteral<StepType.LoadRelatedRecord>;
|
|
78
|
-
executionType: z.
|
|
78
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
79
|
+
manual: StepExecutionMode.Manual;
|
|
79
80
|
"automated-with-confirmation": StepExecutionMode.AutomatedWithConfirmation;
|
|
80
81
|
"fully-automated": StepExecutionMode.FullyAutomated;
|
|
81
|
-
}
|
|
82
|
+
}>>;
|
|
82
83
|
preRecordedArgs: z.ZodOptional<z.ZodObject<{
|
|
83
84
|
selectedRecordStepId: z.ZodOptional<z.ZodString>;
|
|
84
85
|
relationName: z.ZodOptional<z.ZodString>;
|
|
@@ -105,7 +106,11 @@ export declare const McpStepDefinitionSchema: z.ZodObject<{
|
|
|
105
106
|
export type McpStepDefinition = z.infer<typeof McpStepDefinitionSchema>;
|
|
106
107
|
export declare const GuidanceStepDefinitionSchema: z.ZodObject<{
|
|
107
108
|
type: z.ZodLiteral<StepType.Guidance>;
|
|
108
|
-
executionType: z.
|
|
109
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
110
|
+
manual: StepExecutionMode.Manual;
|
|
111
|
+
"automated-with-confirmation": StepExecutionMode.AutomatedWithConfirmation;
|
|
112
|
+
"fully-automated": StepExecutionMode.FullyAutomated;
|
|
113
|
+
}>>;
|
|
109
114
|
prompt: z.ZodOptional<z.ZodString>;
|
|
110
115
|
aiConfigName: z.ZodOptional<z.ZodString>;
|
|
111
116
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -151,10 +156,11 @@ export declare const RecordStepDefinitionSchema: z.ZodDiscriminatedUnion<[z.ZodO
|
|
|
151
156
|
title: z.ZodOptional<z.ZodString>;
|
|
152
157
|
}, z.core.$strip>, z.ZodObject<{
|
|
153
158
|
type: z.ZodLiteral<StepType.LoadRelatedRecord>;
|
|
154
|
-
executionType: z.
|
|
159
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
160
|
+
manual: StepExecutionMode.Manual;
|
|
155
161
|
"automated-with-confirmation": StepExecutionMode.AutomatedWithConfirmation;
|
|
156
162
|
"fully-automated": StepExecutionMode.FullyAutomated;
|
|
157
|
-
}
|
|
163
|
+
}>>;
|
|
158
164
|
preRecordedArgs: z.ZodOptional<z.ZodObject<{
|
|
159
165
|
selectedRecordStepId: z.ZodOptional<z.ZodString>;
|
|
160
166
|
relationName: z.ZodOptional<z.ZodString>;
|
|
@@ -215,10 +221,11 @@ export declare const StepDefinitionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
215
221
|
title: z.ZodOptional<z.ZodString>;
|
|
216
222
|
}, z.core.$strip>, z.ZodObject<{
|
|
217
223
|
type: z.ZodLiteral<StepType.LoadRelatedRecord>;
|
|
218
|
-
executionType: z.
|
|
224
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
225
|
+
manual: StepExecutionMode.Manual;
|
|
219
226
|
"automated-with-confirmation": StepExecutionMode.AutomatedWithConfirmation;
|
|
220
227
|
"fully-automated": StepExecutionMode.FullyAutomated;
|
|
221
|
-
}
|
|
228
|
+
}>>;
|
|
222
229
|
preRecordedArgs: z.ZodOptional<z.ZodObject<{
|
|
223
230
|
selectedRecordStepId: z.ZodOptional<z.ZodString>;
|
|
224
231
|
relationName: z.ZodOptional<z.ZodString>;
|
|
@@ -239,7 +246,11 @@ export declare const StepDefinitionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
239
246
|
title: z.ZodOptional<z.ZodString>;
|
|
240
247
|
}, z.core.$strip>, z.ZodObject<{
|
|
241
248
|
type: z.ZodLiteral<StepType.Guidance>;
|
|
242
|
-
executionType: z.
|
|
249
|
+
executionType: z.ZodDefault<z.ZodEnum<{
|
|
250
|
+
manual: StepExecutionMode.Manual;
|
|
251
|
+
"automated-with-confirmation": StepExecutionMode.AutomatedWithConfirmation;
|
|
252
|
+
"fully-automated": StepExecutionMode.FullyAutomated;
|
|
253
|
+
}>>;
|
|
243
254
|
prompt: z.ZodOptional<z.ZodString>;
|
|
244
255
|
aiConfigName: z.ZodOptional<z.ZodString>;
|
|
245
256
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -23,7 +23,8 @@ var StepExecutionMode;
|
|
|
23
23
|
StepExecutionMode["FullyAutomated"] = "fully-automated";
|
|
24
24
|
})(StepExecutionMode || (exports.StepExecutionMode = StepExecutionMode = {}));
|
|
25
25
|
// Shared fields across all step types. executionType is intentionally excluded —
|
|
26
|
-
// each schema declares its own valid modes with .default().catch() for normalization
|
|
26
|
+
// each schema declares its own valid modes (most with .default().catch() for normalization;
|
|
27
|
+
// guidance deliberately omits .catch to fail loud on an unknown mode).
|
|
27
28
|
const sharedFields = {
|
|
28
29
|
prompt: zod_1.z.string().optional(),
|
|
29
30
|
aiConfigName: zod_1.z.string().optional(),
|
|
@@ -90,10 +91,10 @@ exports.TriggerActionStepDefinitionSchema = zod_1.z.object({
|
|
|
90
91
|
exports.LoadRelatedRecordStepDefinitionSchema = zod_1.z.object({
|
|
91
92
|
...sharedFields,
|
|
92
93
|
type: zod_1.z.literal(StepType.LoadRelatedRecord),
|
|
94
|
+
// No `.catch`: it would silently coerce `manual` to AutomatedWithConfirmation (AI prefill back on).
|
|
93
95
|
executionType: zod_1.z
|
|
94
|
-
.enum([AutomatedWithConfirmation, FullyAutomated])
|
|
95
|
-
.default(AutomatedWithConfirmation)
|
|
96
|
-
.catch(AutomatedWithConfirmation),
|
|
96
|
+
.enum([Manual, AutomatedWithConfirmation, FullyAutomated])
|
|
97
|
+
.default(AutomatedWithConfirmation),
|
|
97
98
|
preRecordedArgs: zod_1.z
|
|
98
99
|
.object({
|
|
99
100
|
/**
|
|
@@ -124,7 +125,9 @@ exports.McpStepDefinitionSchema = zod_1.z.object({
|
|
|
124
125
|
exports.GuidanceStepDefinitionSchema = zod_1.z.object({
|
|
125
126
|
...sharedFields,
|
|
126
127
|
type: zod_1.z.literal(StepType.Guidance),
|
|
127
|
-
|
|
128
|
+
// No `.catch`; default Manual (not AWC) — the orchestrator owns the legacy default, so the
|
|
129
|
+
// executor fallback only fires on a missing field, where "never call AI" is the safe direction.
|
|
130
|
+
executionType: zod_1.z.enum([Manual, AutomatedWithConfirmation, FullyAutomated]).default(Manual),
|
|
128
131
|
});
|
|
129
132
|
exports.RecordStepDefinitionSchema = zod_1.z.discriminatedUnion('type', [
|
|
130
133
|
exports.ReadRecordStepDefinitionSchema,
|
|
@@ -141,4 +144,4 @@ exports.StepDefinitionSchema = zod_1.z.discriminatedUnion('type', [
|
|
|
141
144
|
exports.McpStepDefinitionSchema,
|
|
142
145
|
exports.GuidanceStepDefinitionSchema,
|
|
143
146
|
]);
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL3ZhbGlkYXRlZC9zdGVwLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRXhCLElBQVksUUFRWDtBQVJELFdBQVksUUFBUTtJQUNsQixtQ0FBdUIsQ0FBQTtJQUN2QixzQ0FBMEIsQ0FBQTtJQUMxQiwwQ0FBOEIsQ0FBQTtJQUM5Qiw0Q0FBZ0MsQ0FBQTtJQUNoQyxxREFBeUMsQ0FBQTtJQUN6Qyx1QkFBVyxDQUFBO0lBQ1gsaUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVJXLFFBQVEsd0JBQVIsUUFBUSxRQVFuQjtBQUVEOzs7R0FHRztBQUNILElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQiw4RUFBeUQsQ0FBQTtJQUN6RCx1REFBa0MsQ0FBQTtBQUNwQyxDQUFDLEVBSlcsaUJBQWlCLGlDQUFqQixpQkFBaUIsUUFJNUI7QUFFRCxpRkFBaUY7QUFDakYsNEZBQTRGO0FBQzVGLHVFQUF1RTtBQUN2RSxNQUFNLFlBQVksR0FBRztJQUNuQixNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM3QixDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLE1BQU0sRUFBRSxNQUFNLEVBQUUseUJBQXlCLEVBQUUsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLENBQUM7QUFFbkUsUUFBQSw2QkFBNkIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BELEdBQUcsWUFBWTtJQUNmLElBQUksRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFT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
|