@devramps/sdk-typescript 0.1.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.
@@ -0,0 +1,286 @@
1
+ import z from "zod";
2
+ export declare const ApprovalContextSchema: z.ZodObject<{
3
+ approved: z.ZodLiteral<true>;
4
+ approverId: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ approved: true;
7
+ approverId: string;
8
+ }, {
9
+ approved: true;
10
+ approverId: string;
11
+ }>;
12
+ export type ApprovalContext = z.infer<typeof ApprovalContextSchema>;
13
+ declare const FailedOutputSchema: z.ZodObject<{
14
+ status: z.ZodLiteral<"FAILED">;
15
+ error: z.ZodString;
16
+ errorCode: z.ZodOptional<z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ error: string;
19
+ status: "FAILED";
20
+ errorCode?: string | undefined;
21
+ }, {
22
+ error: string;
23
+ status: "FAILED";
24
+ errorCode?: string | undefined;
25
+ }>;
26
+ declare const SuccessOutputSchema: z.ZodObject<{
27
+ status: z.ZodLiteral<"SUCCESS">;
28
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ status: "SUCCESS";
31
+ data?: Record<string, any> | undefined;
32
+ }, {
33
+ status: "SUCCESS";
34
+ data?: Record<string, any> | undefined;
35
+ }>;
36
+ export type FailedOutput = z.infer<typeof FailedOutputSchema>;
37
+ export type SuccessOutput = z.infer<typeof SuccessOutputSchema>;
38
+ declare const ApprovalRequiredOutputSchema: z.ZodObject<{
39
+ status: z.ZodLiteral<"APPROVAL_REQUIRED">;
40
+ approvalRequest: z.ZodObject<{
41
+ message: z.ZodString;
42
+ approvers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ message: string;
46
+ approvers?: string[] | undefined;
47
+ metadata?: Record<string, any> | undefined;
48
+ }, {
49
+ message: string;
50
+ approvers?: string[] | undefined;
51
+ metadata?: Record<string, any> | undefined;
52
+ }>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ status: "APPROVAL_REQUIRED";
55
+ approvalRequest: {
56
+ message: string;
57
+ approvers?: string[] | undefined;
58
+ metadata?: Record<string, any> | undefined;
59
+ };
60
+ }, {
61
+ status: "APPROVAL_REQUIRED";
62
+ approvalRequest: {
63
+ message: string;
64
+ approvers?: string[] | undefined;
65
+ metadata?: Record<string, any> | undefined;
66
+ };
67
+ }>;
68
+ export declare const PrepareOutputSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
69
+ status: z.ZodLiteral<"APPROVAL_REQUIRED">;
70
+ approvalRequest: z.ZodObject<{
71
+ message: z.ZodString;
72
+ approvers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
73
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ message: string;
76
+ approvers?: string[] | undefined;
77
+ metadata?: Record<string, any> | undefined;
78
+ }, {
79
+ message: string;
80
+ approvers?: string[] | undefined;
81
+ metadata?: Record<string, any> | undefined;
82
+ }>;
83
+ }, "strip", z.ZodTypeAny, {
84
+ status: "APPROVAL_REQUIRED";
85
+ approvalRequest: {
86
+ message: string;
87
+ approvers?: string[] | undefined;
88
+ metadata?: Record<string, any> | undefined;
89
+ };
90
+ }, {
91
+ status: "APPROVAL_REQUIRED";
92
+ approvalRequest: {
93
+ message: string;
94
+ approvers?: string[] | undefined;
95
+ metadata?: Record<string, any> | undefined;
96
+ };
97
+ }>, z.ZodObject<{
98
+ status: z.ZodLiteral<"FAILED">;
99
+ error: z.ZodString;
100
+ errorCode: z.ZodOptional<z.ZodString>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ error: string;
103
+ status: "FAILED";
104
+ errorCode?: string | undefined;
105
+ }, {
106
+ error: string;
107
+ status: "FAILED";
108
+ errorCode?: string | undefined;
109
+ }>]>;
110
+ export type ApprovalRequiredOutput = z.infer<typeof ApprovalRequiredOutputSchema>;
111
+ export type PrepareOutput = z.infer<typeof PrepareOutputSchema>;
112
+ export declare const RunOutputSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
113
+ status: z.ZodLiteral<"SUCCESS">;
114
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ status: "SUCCESS";
117
+ data?: Record<string, any> | undefined;
118
+ }, {
119
+ status: "SUCCESS";
120
+ data?: Record<string, any> | undefined;
121
+ }>, z.ZodObject<{
122
+ status: z.ZodLiteral<"FAILED">;
123
+ error: z.ZodString;
124
+ errorCode: z.ZodOptional<z.ZodString>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ error: string;
127
+ status: "FAILED";
128
+ errorCode?: string | undefined;
129
+ }, {
130
+ error: string;
131
+ status: "FAILED";
132
+ errorCode?: string | undefined;
133
+ }>]>;
134
+ export type RunOutput = z.infer<typeof RunOutputSchema>;
135
+ export declare const TriggerOutputSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
136
+ status: z.ZodLiteral<"TRIGGERED">;
137
+ pollingState: z.ZodRecord<z.ZodString, z.ZodAny>;
138
+ }, "strip", z.ZodTypeAny, {
139
+ status: "TRIGGERED";
140
+ pollingState: Record<string, any>;
141
+ }, {
142
+ status: "TRIGGERED";
143
+ pollingState: Record<string, any>;
144
+ }>, z.ZodObject<{
145
+ status: z.ZodLiteral<"FAILED">;
146
+ error: z.ZodString;
147
+ errorCode: z.ZodOptional<z.ZodString>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ error: string;
150
+ status: "FAILED";
151
+ errorCode?: string | undefined;
152
+ }, {
153
+ error: string;
154
+ status: "FAILED";
155
+ errorCode?: string | undefined;
156
+ }>]>;
157
+ export type TriggeredOutput<TPollingState = Record<string, unknown>> = {
158
+ status: "TRIGGERED";
159
+ pollingState: TPollingState;
160
+ };
161
+ export type TriggerOutput<TPollingState = Record<string, unknown>> = TriggeredOutput<TPollingState> | FailedOutput;
162
+ export declare const PollOutputSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
163
+ status: z.ZodLiteral<"POLL_AGAIN">;
164
+ pollingState: z.ZodRecord<z.ZodString, z.ZodAny>;
165
+ retryAfterMs: z.ZodOptional<z.ZodNumber>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ status: "POLL_AGAIN";
168
+ pollingState: Record<string, any>;
169
+ retryAfterMs?: number | undefined;
170
+ }, {
171
+ status: "POLL_AGAIN";
172
+ pollingState: Record<string, any>;
173
+ retryAfterMs?: number | undefined;
174
+ }>, z.ZodObject<{
175
+ status: z.ZodLiteral<"SUCCESS">;
176
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ status: "SUCCESS";
179
+ data?: Record<string, any> | undefined;
180
+ }, {
181
+ status: "SUCCESS";
182
+ data?: Record<string, any> | undefined;
183
+ }>, z.ZodObject<{
184
+ status: z.ZodLiteral<"FAILED">;
185
+ error: z.ZodString;
186
+ errorCode: z.ZodOptional<z.ZodString>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ error: string;
189
+ status: "FAILED";
190
+ errorCode?: string | undefined;
191
+ }, {
192
+ error: string;
193
+ status: "FAILED";
194
+ errorCode?: string | undefined;
195
+ }>]>;
196
+ export type PollAgainOutput<TPollingState = Record<string, unknown>> = {
197
+ status: "POLL_AGAIN";
198
+ pollingState: TPollingState;
199
+ retryAfterMs?: number;
200
+ };
201
+ export type PollOutput<TPollingState = Record<string, unknown>> = PollAgainOutput<TPollingState> | SuccessOutput | FailedOutput;
202
+ export declare const StepOutputSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
203
+ status: z.ZodLiteral<"SUCCESS">;
204
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ status: "SUCCESS";
207
+ data?: Record<string, any> | undefined;
208
+ }, {
209
+ status: "SUCCESS";
210
+ data?: Record<string, any> | undefined;
211
+ }>, z.ZodObject<{
212
+ status: z.ZodLiteral<"FAILED">;
213
+ error: z.ZodString;
214
+ errorCode: z.ZodOptional<z.ZodString>;
215
+ }, "strip", z.ZodTypeAny, {
216
+ error: string;
217
+ status: "FAILED";
218
+ errorCode?: string | undefined;
219
+ }, {
220
+ error: string;
221
+ status: "FAILED";
222
+ errorCode?: string | undefined;
223
+ }>, z.ZodObject<{
224
+ status: z.ZodLiteral<"APPROVAL_REQUIRED">;
225
+ approvalRequest: z.ZodObject<{
226
+ message: z.ZodString;
227
+ approvers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
228
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
229
+ }, "strip", z.ZodTypeAny, {
230
+ message: string;
231
+ approvers?: string[] | undefined;
232
+ metadata?: Record<string, any> | undefined;
233
+ }, {
234
+ message: string;
235
+ approvers?: string[] | undefined;
236
+ metadata?: Record<string, any> | undefined;
237
+ }>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ status: "APPROVAL_REQUIRED";
240
+ approvalRequest: {
241
+ message: string;
242
+ approvers?: string[] | undefined;
243
+ metadata?: Record<string, any> | undefined;
244
+ };
245
+ }, {
246
+ status: "APPROVAL_REQUIRED";
247
+ approvalRequest: {
248
+ message: string;
249
+ approvers?: string[] | undefined;
250
+ metadata?: Record<string, any> | undefined;
251
+ };
252
+ }>, z.ZodObject<{
253
+ status: z.ZodLiteral<"TRIGGERED">;
254
+ pollingState: z.ZodRecord<z.ZodString, z.ZodAny>;
255
+ }, "strip", z.ZodTypeAny, {
256
+ status: "TRIGGERED";
257
+ pollingState: Record<string, any>;
258
+ }, {
259
+ status: "TRIGGERED";
260
+ pollingState: Record<string, any>;
261
+ }>, z.ZodObject<{
262
+ status: z.ZodLiteral<"POLL_AGAIN">;
263
+ pollingState: z.ZodRecord<z.ZodString, z.ZodAny>;
264
+ retryAfterMs: z.ZodOptional<z.ZodNumber>;
265
+ }, "strip", z.ZodTypeAny, {
266
+ status: "POLL_AGAIN";
267
+ pollingState: Record<string, any>;
268
+ retryAfterMs?: number | undefined;
269
+ }, {
270
+ status: "POLL_AGAIN";
271
+ pollingState: Record<string, any>;
272
+ retryAfterMs?: number | undefined;
273
+ }>]>;
274
+ export type StepOutput = z.infer<typeof StepOutputSchema>;
275
+ export declare const StepOutputs: {
276
+ success(data?: Record<string, unknown>): SuccessOutput;
277
+ failed(error: string, errorCode?: string): FailedOutput;
278
+ approvalRequired(request: {
279
+ message: string;
280
+ approvers?: string[];
281
+ metadata?: Record<string, unknown>;
282
+ }): ApprovalRequiredOutput;
283
+ triggered<TPollingState>(pollingState: TPollingState): TriggeredOutput<TPollingState>;
284
+ pollAgain<TPollingState>(pollingState: TPollingState, retryAfterMs?: number): PollAgainOutput<TPollingState>;
285
+ };
286
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StepOutputs = exports.StepOutputSchema = exports.PollOutputSchema = exports.TriggerOutputSchema = exports.RunOutputSchema = exports.PrepareOutputSchema = exports.ApprovalContextSchema = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ // =============================================================================
9
+ // Approval Context (passed to steps after approval is granted)
10
+ // =============================================================================
11
+ exports.ApprovalContextSchema = zod_1.default.object({
12
+ approved: zod_1.default.literal(true),
13
+ approverId: zod_1.default.string(),
14
+ });
15
+ // =============================================================================
16
+ // Shared Output Components
17
+ // =============================================================================
18
+ const FailedOutputSchema = zod_1.default.object({
19
+ status: zod_1.default.literal("FAILED"),
20
+ error: zod_1.default.string(),
21
+ errorCode: zod_1.default.string().optional(),
22
+ });
23
+ const SuccessOutputSchema = zod_1.default.object({
24
+ status: zod_1.default.literal("SUCCESS"),
25
+ data: zod_1.default.record(zod_1.default.string(), zod_1.default.any()).optional(),
26
+ });
27
+ // =============================================================================
28
+ // PrepareOutput (for approval flow - used by SimpleStep and PollingStep)
29
+ // =============================================================================
30
+ const ApprovalRequiredOutputSchema = zod_1.default.object({
31
+ status: zod_1.default.literal("APPROVAL_REQUIRED"),
32
+ approvalRequest: zod_1.default.object({
33
+ message: zod_1.default.string(),
34
+ approvers: zod_1.default.array(zod_1.default.string()).optional(),
35
+ metadata: zod_1.default.record(zod_1.default.string(), zod_1.default.any()).optional(),
36
+ }),
37
+ });
38
+ exports.PrepareOutputSchema = zod_1.default.discriminatedUnion("status", [
39
+ ApprovalRequiredOutputSchema,
40
+ FailedOutputSchema,
41
+ ]);
42
+ // =============================================================================
43
+ // RunOutput (SimpleStep.run)
44
+ // =============================================================================
45
+ exports.RunOutputSchema = zod_1.default.discriminatedUnion("status", [
46
+ SuccessOutputSchema,
47
+ FailedOutputSchema,
48
+ ]);
49
+ // =============================================================================
50
+ // TriggerOutput (PollingStep.trigger)
51
+ // =============================================================================
52
+ const TriggeredOutputSchema = zod_1.default.object({
53
+ status: zod_1.default.literal("TRIGGERED"),
54
+ pollingState: zod_1.default.record(zod_1.default.string(), zod_1.default.any()),
55
+ });
56
+ exports.TriggerOutputSchema = zod_1.default.discriminatedUnion("status", [
57
+ TriggeredOutputSchema,
58
+ FailedOutputSchema,
59
+ ]);
60
+ // =============================================================================
61
+ // PollOutput (PollingStep.poll)
62
+ // =============================================================================
63
+ const PollAgainOutputSchema = zod_1.default.object({
64
+ status: zod_1.default.literal("POLL_AGAIN"),
65
+ pollingState: zod_1.default.record(zod_1.default.string(), zod_1.default.any()),
66
+ retryAfterMs: zod_1.default.number().optional(),
67
+ });
68
+ exports.PollOutputSchema = zod_1.default.discriminatedUnion("status", [
69
+ PollAgainOutputSchema,
70
+ SuccessOutputSchema,
71
+ FailedOutputSchema,
72
+ ]);
73
+ // =============================================================================
74
+ // Combined StepOutput (for registry to write to file)
75
+ // =============================================================================
76
+ exports.StepOutputSchema = zod_1.default.discriminatedUnion("status", [
77
+ SuccessOutputSchema,
78
+ FailedOutputSchema,
79
+ ApprovalRequiredOutputSchema,
80
+ TriggeredOutputSchema,
81
+ PollAgainOutputSchema,
82
+ ]);
83
+ // =============================================================================
84
+ // Helper Functions
85
+ // =============================================================================
86
+ exports.StepOutputs = {
87
+ // Success (used by SimpleStep.run and PollingStep.poll)
88
+ success(data) {
89
+ return { status: "SUCCESS", data };
90
+ },
91
+ // Failed (used by all phases)
92
+ failed(error, errorCode) {
93
+ return { status: "FAILED", error, errorCode };
94
+ },
95
+ // Approval required (used by prepare phase)
96
+ approvalRequired(request) {
97
+ return { status: "APPROVAL_REQUIRED", approvalRequest: request };
98
+ },
99
+ // Triggered (used by PollingStep.trigger)
100
+ triggered(pollingState) {
101
+ return { status: "TRIGGERED", pollingState };
102
+ },
103
+ // Poll again (used by PollingStep.poll)
104
+ pollAgain(pollingState, retryAfterMs) {
105
+ return { status: "POLL_AGAIN", pollingState, retryAfterMs };
106
+ },
107
+ };
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3V0cHV0L3N0ZXAtb3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFvQjtBQUVwQixnRkFBZ0Y7QUFDaEYsK0RBQStEO0FBQy9ELGdGQUFnRjtBQUVuRSxRQUFBLHFCQUFxQixHQUFHLGFBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsUUFBUSxFQUFFLGFBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxhQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQztBQUlILGdGQUFnRjtBQUNoRiwyQkFBMkI7QUFDM0IsZ0ZBQWdGO0FBRWhGLE1BQU0sa0JBQWtCLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLEVBQUUsYUFBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDM0IsS0FBSyxFQUFFLGFBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsU0FBUyxFQUFFLGFBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDakMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxtQkFBbUIsR0FBRyxhQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25DLE1BQU0sRUFBRSxhQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUM1QixJQUFJLEVBQUUsYUFBQyxDQUFDLE1BQU0sQ0FBQyxhQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQy9DLENBQUMsQ0FBQztBQUtILGdGQUFnRjtBQUNoRix5RUFBeUU7QUFDekUsZ0ZBQWdGO0FBRWhGLE1BQU0sNEJBQTRCLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxNQUFNLEVBQUUsYUFBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUN0QyxlQUFlLEVBQUUs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TyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxTQUFTLENBQ1AsWUFBMkIsRUFDM0IsWUFBcUI7UUFFckIsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzlELENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHogZnJvbSBcInpvZFwiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXBwcm92YWwgQ29udGV4dCAocGFzc2VkIHRvIHN0ZXBzIGFmdGVyIGFwcHJvdmFsIGlzIGdyYW50ZWQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgQXBwcm92YWxDb250ZXh0U2NoZW1hID0gei5vYmplY3Qoe1xuICBhcHByb3ZlZDogei5saXRlcmFsKHRydWUpLFxuICBhcHByb3ZlcklkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCB0eXBlIEFwcHJvdmFsQ29udGV4dCA9IHouaW5mZXI8dHlwZW9mIEFwcHJvdmFsQ29udGV4dFNjaGVtYT47XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTaGFyZWQgT3V0cHV0IENvbXBvbmVudHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IEZhaWxlZE91dHB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RhdHVzOiB6LmxpdGVyYWwoXCJGQUlMRURcIiksXG4gIGVycm9yOiB6LnN0cmluZygpLFxuICBlcnJvckNvZGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5jb25zdCBTdWNjZXNzT3V0cHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGF0dXM6IHoubGl0ZXJhbChcIlNVQ0NFU1NcIiksXG4gIGRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IHR5cGUgRmFpbGVkT3V0cHV0ID0gei5pbmZlcjx0eXBlb2YgRmFpbGVkT3V0cHV0U2NoZW1hPjtcbmV4cG9ydCB0eXBlIFN1Y2Nlc3NPdXRwdXQgPSB6LmluZmVyPHR5cGVvZiBTdWNjZXNzT3V0cHV0U2NoZW1hPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFByZXBhcmVPdXRwdXQgKGZvciBhcHByb3ZhbCBmbG93IC0gdXNlZCBieSBTaW1wbGVTdGVwIGFuZCBQb2xsaW5nU3RlcClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IEFwcHJvdmFsUmVxdWlyZWRPdXRwdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHN0YXR1czogei5saXRlcmFsKFwiQVBQUk9WQUxfUkVRVUlSRURcIiksXG4gIGFwcHJvdmFsUmVxdWVzdDogei5vYmplY3Qoe1xuICAgIG1lc3NhZ2U6IHouc3RyaW5nKCksXG4gICAgYXBwcm92ZXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLm9wdGlvbmFsKCksXG4gIH0pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQcmVwYXJlT3V0cHV0U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJzdGF0dXNcIiwgW1xuICBBcHByb3ZhbFJlcXVpcmVkT3V0cHV0U2NoZW1hLFxuICBGYWlsZWRPdXRwdXRTY2hlbWEsXG5dKTtcblxuZXhwb3J0IHR5cGUgQXBwcm92YWxSZXF1aXJlZE91dHB1dCA9IHouaW5mZXI8dHlwZW9mIEFwcHJvdmFsUmVxdWlyZWRPdXRwdXRTY2hlbWE+O1xuZXhwb3J0IHR5cGUgUHJlcGFyZU91dHB1dCA9IHouaW5mZXI8dHlwZW9mIFByZXBhcmVPdXRwdXRTY2hlbWE+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUnVuT3V0cHV0IChTaW1wbGVTdGVwLnJ1bilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBSdW5PdXRwdXRTY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInN0YXR1c1wiLCBbXG4gIFN1Y2Nlc3NPdXRwdXRTY2hlbWEsXG4gIEZhaWxlZE91dHB1dFNjaGVtYSxcbl0pO1xuXG5leHBvcnQgdHlwZSBSdW5PdXRwdXQgPSB6LmluZmVyPHR5cGVvZiBSdW5PdXRwdXRTY2hlbWE+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJpZ2dlck91dHB1dCAoUG9sbGluZ1N0ZXAudHJpZ2dlcilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IFRyaWdnZXJlZE91dHB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RhdHVzOiB6LmxpdGVyYWwoXCJUUklHR0VSRURcIiksXG4gIHBvbGxpbmdTdGF0ZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei5hbnkoKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IFRyaWdnZXJPdXRwdXRTY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInN0YXR1c1wiLCBbXG4gIFRyaWdnZXJlZE91dHB1dFNjaGVtYSxcbiAgRmFpbGVkT3V0cHV0U2NoZW1hLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFRyaWdnZXJlZE91dHB1dDxUUG9sbGluZ1N0YXRlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0ge1xuICBzdGF0dXM6IFwiVFJJR0dFUkVEXCI7XG4gIHBvbGxpbmdTdGF0ZTogVFBvbGxpbmdTdGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIFRyaWdnZXJPdXRwdXQ8VFBvbGxpbmdTdGF0ZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9XG4gIHwgVHJpZ2dlcmVkT3V0cHV0PFRQb2xsaW5nU3RhdGU+XG4gIHwgRmFpbGVkT3V0cHV0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUG9sbE91dHB1dCAoUG9sbGluZ1N0ZXAucG9sbClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IFBvbGxBZ2Fpbk91dHB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RhdHVzOiB6LmxpdGVyYWwoXCJQT0xMX0FHQUlOXCIpLFxuICBwb2xsaW5nU3RhdGU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxuICByZXRyeUFmdGVyTXM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUG9sbE91dHB1dFNjaGVtYSA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwic3RhdHVzXCIsIFtcbiAgUG9sbEFnYWluT3V0cHV0U2NoZW1hLFxuICBTdWNjZXNzT3V0cHV0U2NoZW1hLFxuICBGYWlsZWRPdXRwdXRTY2hlbWEsXG5dKTtcblxuZXhwb3J0IHR5cGUgUG9sbEFnYWluT3V0cHV0PFRQb2xsaW5nU3RhdGUgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7XG4gIHN0YXR1czogXCJQT0xMX0FHQUlOXCI7XG4gIHBvbGxpbmdTdGF0ZTogVFBvbGxpbmdTdGF0ZTtcbiAgcmV0cnlBZnRlck1zPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUG9sbE91dHB1dDxUUG9sbGluZ1N0YXRlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID1cbiAgfCBQb2xsQWdhaW5PdXRwdXQ8VFBvbGxpbmdTdGF0ZT5cbiAgfCBTdWNjZXNzT3V0cHV0XG4gIHwgRmFpbGVkT3V0cHV0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tYmluZWQgU3RlcE91dHB1dCAoZm9yIHJlZ2lzdHJ5IHRvIHdyaXRlIHRvIGZpbGUpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgU3RlcE91dHB1dFNjaGVtYSA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwic3RhdHVzXCIsIFtcbiAgU3VjY2Vzc091dHB1dFNjaGVtYSxcbiAgRmFpbGVkT3V0cHV0U2NoZW1hLFxuICBBcHByb3ZhbFJlcXVpcmVkT3V0cHV0U2NoZW1hLFxuICBUcmlnZ2VyZWRPdXRwdXRTY2hlbWEsXG4gIFBvbGxBZ2Fpbk91dHB1dFNjaGVtYSxcbl0pO1xuXG5leHBvcnQgdHlwZSBTdGVwT3V0cHV0ID0gei5pbmZlcjx0eXBlb2YgU3RlcE91dHB1dFNjaGVtYT47XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWxwZXIgRnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgU3RlcE91dHB1dHMgPSB7XG4gIC8vIFN1Y2Nlc3MgKHVzZWQgYnkgU2ltcGxlU3RlcC5ydW4gYW5kIFBvbGxpbmdTdGVwLnBvbGwpXG4gIHN1Y2Nlc3MoZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogU3VjY2Vzc091dHB1dCB7XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBcIlNVQ0NFU1NcIiwgZGF0YSB9O1xuICB9LFxuXG4gIC8vIEZhaWxlZCAodXNlZCBieSBhbGwgcGhhc2VzKVxuICBmYWlsZWQoZXJyb3I6IHN0cmluZywgZXJyb3JDb2RlPzogc3RyaW5nKTogRmFpbGVkT3V0cHV0IHtcbiAgICByZXR1cm4geyBzdGF0dXM6IFwiRkFJTEVEXCIsIGVycm9yLCBlcnJvckNvZGUgfTtcbiAgfSxcblxuICAvLyBBcHByb3ZhbCByZXF1aXJlZCAodXNlZCBieSBwcmVwYXJlIHBoYXNlKVxuICBhcHByb3ZhbFJlcXVpcmVkKHJlcXVlc3Q6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgYXBwcm92ZXJzPzogc3RyaW5nW107XG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfSk6IEFwcHJvdmFsUmVxdWlyZWRPdXRwdXQge1xuICAgIHJldHVybiB7IHN0YXR1czogXCJBUFBST1ZBTF9SRVFVSVJFRFwiLCBhcHByb3ZhbFJlcXVlc3Q6IHJlcXVlc3QgfTtcbiAgfSxcblxuICAvLyBUcmlnZ2VyZWQgKHVzZWQgYnkgUG9sbGluZ1N0ZXAudHJpZ2dlcilcbiAgdHJpZ2dlcmVkPFRQb2xsaW5nU3RhdGU+KFxuICAgIHBvbGxpbmdTdGF0ZTogVFBvbGxpbmdTdGF0ZVxuICApOiBUcmlnZ2VyZWRPdXRwdXQ8VFBvbGxpbmdTdGF0ZT4ge1xuICAgIHJldHVybiB7IHN0YXR1czogXCJUUklHR0VSRURcIiwgcG9sbGluZ1N0YXRlIH07XG4gIH0sXG5cbiAgLy8gUG9sbCBhZ2FpbiAodXNlZCBieSBQb2xsaW5nU3RlcC5wb2xsKVxuICBwb2xsQWdhaW48VFBvbGxpbmdTdGF0ZT4oXG4gICAgcG9sbGluZ1N0YXRlOiBUUG9sbGluZ1N0YXRlLFxuICAgIHJldHJ5QWZ0ZXJNcz86IG51bWJlclxuICApOiBQb2xsQWdhaW5PdXRwdXQ8VFBvbGxpbmdTdGF0ZT4ge1xuICAgIHJldHVybiB7IHN0YXR1czogXCJQT0xMX0FHQUlOXCIsIHBvbGxpbmdTdGF0ZSwgcmV0cnlBZnRlck1zIH07XG4gIH0sXG59O1xuIl19
@@ -0,0 +1,93 @@
1
+ import z from "zod";
2
+ import type { StepClass } from "../base/base-step";
3
+ export declare const StepRegistryInputSchema: z.ZodDiscriminatedUnion<"job", [z.ZodObject<{
4
+ job: z.ZodLiteral<"EXECUTE">;
5
+ type: z.ZodString;
6
+ params: z.ZodRecord<z.ZodString, z.ZodAny>;
7
+ approvalContext: z.ZodOptional<z.ZodObject<{
8
+ approved: z.ZodLiteral<true>;
9
+ approverId: z.ZodString;
10
+ }, "strip", z.ZodTypeAny, {
11
+ approved: true;
12
+ approverId: string;
13
+ }, {
14
+ approved: true;
15
+ approverId: string;
16
+ }>>;
17
+ pollingState: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ params: Record<string, any>;
20
+ type: string;
21
+ job: "EXECUTE";
22
+ pollingState?: Record<string, any> | undefined;
23
+ approvalContext?: {
24
+ approved: true;
25
+ approverId: string;
26
+ } | undefined;
27
+ }, {
28
+ params: Record<string, any>;
29
+ type: string;
30
+ job: "EXECUTE";
31
+ pollingState?: Record<string, any> | undefined;
32
+ approvalContext?: {
33
+ approved: true;
34
+ approverId: string;
35
+ } | undefined;
36
+ }>, z.ZodObject<{
37
+ job: z.ZodLiteral<"SYNTHESIZE-METADATA">;
38
+ }, "strip", z.ZodTypeAny, {
39
+ job: "SYNTHESIZE-METADATA";
40
+ }, {
41
+ job: "SYNTHESIZE-METADATA";
42
+ }>]>;
43
+ export type StepRegistryInput = z.infer<typeof StepRegistryInputSchema>;
44
+ export declare class StepRegistry {
45
+ private steps;
46
+ private outputPath;
47
+ private logDir;
48
+ private executionId;
49
+ private constructor();
50
+ /**
51
+ * Main entrypoint for running steps.
52
+ * Parses CLI args and either synthesizes metadata or executes a step.
53
+ *
54
+ * Usage in user's entrypoint file:
55
+ * ```
56
+ * StepRegistry.run([MyStep1, MyStep2, ...]);
57
+ * ```
58
+ *
59
+ * CLI arguments:
60
+ * - --input: JSON blob with job type and parameters
61
+ * - --output: Path to write output JSON (default: /tmp/step-output.json)
62
+ * - --log-dir: Directory for log files (default: /tmp/step-logs)
63
+ * - --execution-id: Unique ID for this execution (required for logging)
64
+ */
65
+ static run(steps: StepClass[]): Promise<void>;
66
+ private execute;
67
+ private synthesizeMetadata;
68
+ private executeStep;
69
+ private routeExecution;
70
+ /**
71
+ * Route SimpleStep execution based on approval state.
72
+ *
73
+ * | requiresApproval | approvalContext provided? | Action |
74
+ * |------------------|---------------------------|---------------------|
75
+ * | No | - | Call run(params) |
76
+ * | Yes | No | Call prepare(params)|
77
+ * | Yes | Yes | Call run(params, approval) |
78
+ */
79
+ private routeSimpleStep;
80
+ /**
81
+ * Route PollingStep execution based on approval and polling state.
82
+ *
83
+ * | requiresApproval | approvalContext? | pollingState? | Action |
84
+ * |------------------|------------------|---------------|-------------------------------|
85
+ * | No | - | No | Call trigger(params) |
86
+ * | No | - | Yes | Call poll(params, pollingState)|
87
+ * | Yes | No | No | Call prepare(params) |
88
+ * | Yes | Yes | No | Call trigger(params, approval)|
89
+ * | Yes | Yes | Yes | Call poll(params, pollingState)|
90
+ */
91
+ private routePollingStep;
92
+ private writeOutput;
93
+ }