@viewportai/daemon 0.9.0 → 0.10.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 +10 -7
- package/dist/adapters/claude.js +1 -1
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.d.ts +1 -0
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +13 -0
- package/dist/adapters/codex.js.map +1 -1
- package/dist/cli/lifecycle-commands.js +1 -1
- package/dist/cli/lifecycle-commands.js.map +1 -1
- package/dist/cli/lifecycle-pair-command.js +1 -1
- package/dist/cli/lifecycle-pair-command.js.map +1 -1
- package/dist/cli/org-binding.d.ts +1 -0
- package/dist/cli/org-binding.d.ts.map +1 -1
- package/dist/cli/org-binding.js +2 -2
- package/dist/cli/org-binding.js.map +1 -1
- package/dist/cli/workflow-commands.d.ts.map +1 -1
- package/dist/cli/workflow-commands.js +6 -1
- package/dist/cli/workflow-commands.js.map +1 -1
- package/dist/cli/workflow-managed-worker-format.d.ts +10 -0
- package/dist/cli/workflow-managed-worker-format.d.ts.map +1 -0
- package/dist/cli/workflow-managed-worker-format.js +120 -0
- package/dist/cli/workflow-managed-worker-format.js.map +1 -0
- package/dist/cli/workflow-managed-worker-types.d.ts +55 -0
- package/dist/cli/workflow-managed-worker-types.d.ts.map +1 -0
- package/dist/cli/workflow-managed-worker-types.js +2 -0
- package/dist/cli/workflow-managed-worker-types.js.map +1 -0
- package/dist/cli/workflow-managed-worker-util.d.ts +5 -0
- package/dist/cli/workflow-managed-worker-util.d.ts.map +1 -0
- package/dist/cli/workflow-managed-worker-util.js +28 -0
- package/dist/cli/workflow-managed-worker-util.js.map +1 -0
- package/dist/cli/workflow-managed-worker.d.ts +2 -0
- package/dist/cli/workflow-managed-worker.d.ts.map +1 -0
- package/dist/cli/workflow-managed-worker.js +240 -0
- package/dist/cli/workflow-managed-worker.js.map +1 -0
- package/dist/core/session-context-prompt.d.ts.map +1 -1
- package/dist/core/session-context-prompt.js +70 -13
- package/dist/core/session-context-prompt.js.map +1 -1
- package/dist/discovery/jsonl-entry-parser.js +82 -0
- package/dist/discovery/jsonl-entry-parser.js.map +1 -1
- package/dist/relay/bridge-daemon-key-registration.d.ts +2 -0
- package/dist/relay/bridge-daemon-key-registration.d.ts.map +1 -1
- package/dist/relay/bridge-daemon-key-registration.js +6 -2
- package/dist/relay/bridge-daemon-key-registration.js.map +1 -1
- package/dist/relay/bridge-org-routing-filter.d.ts +1 -0
- package/dist/relay/bridge-org-routing-filter.d.ts.map +1 -1
- package/dist/relay/bridge-org-routing-filter.js +1 -0
- package/dist/relay/bridge-org-routing-filter.js.map +1 -1
- package/dist/server/ws-protocol.d.ts +1 -0
- package/dist/server/ws-protocol.d.ts.map +1 -1
- package/dist/server/ws-protocol.js +1 -1
- package/dist/server/ws-protocol.js.map +1 -1
- package/dist/server/ws-session-command-handlers.d.ts +1 -1
- package/dist/server/ws-session-command-handlers.d.ts.map +1 -1
- package/dist/server/ws-session-command-handlers.js +2 -1
- package/dist/server/ws-session-command-handlers.js.map +1 -1
- package/dist/startup.d.ts.map +1 -1
- package/dist/startup.js +3 -0
- package/dist/startup.js.map +1 -1
- package/dist/workflows/action-adapters.d.ts +7 -0
- package/dist/workflows/action-adapters.d.ts.map +1 -0
- package/dist/workflows/action-adapters.js +138 -0
- package/dist/workflows/action-adapters.js.map +1 -0
- package/dist/workflows/action-provider-adapters.d.ts +13 -0
- package/dist/workflows/action-provider-adapters.d.ts.map +1 -0
- package/dist/workflows/action-provider-adapters.js +260 -0
- package/dist/workflows/action-provider-adapters.js.map +1 -0
- package/dist/workflows/context-node-resolver.d.ts +3 -0
- package/dist/workflows/context-node-resolver.d.ts.map +1 -0
- package/dist/workflows/context-node-resolver.js +122 -0
- package/dist/workflows/context-node-resolver.js.map +1 -0
- package/dist/workflows/event-types.d.ts +1 -1
- package/dist/workflows/event-types.d.ts.map +1 -1
- package/dist/workflows/node-registry.d.ts.map +1 -1
- package/dist/workflows/node-registry.js +115 -1
- package/dist/workflows/node-registry.js.map +1 -1
- package/dist/workflows/parser.js +30 -0
- package/dist/workflows/parser.js.map +1 -1
- package/dist/workflows/plugin-loader.d.ts.map +1 -1
- package/dist/workflows/plugin-loader.js +6 -0
- package/dist/workflows/plugin-loader.js.map +1 -1
- package/dist/workflows/preflight.d.ts.map +1 -1
- package/dist/workflows/preflight.js +6 -2
- package/dist/workflows/preflight.js.map +1 -1
- package/dist/workflows/runner-hook-events.d.ts +19 -0
- package/dist/workflows/runner-hook-events.d.ts.map +1 -0
- package/dist/workflows/runner-hook-events.js +16 -0
- package/dist/workflows/runner-hook-events.js.map +1 -0
- package/dist/workflows/runner-shared.d.ts.map +1 -1
- package/dist/workflows/runner-shared.js +26 -2
- package/dist/workflows/runner-shared.js.map +1 -1
- package/dist/workflows/runner.d.ts +0 -1
- package/dist/workflows/runner.d.ts.map +1 -1
- package/dist/workflows/runner.js +21 -17
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/types.d.ts +54 -13
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/workflow-production-schema.d.ts +100 -0
- package/dist/workflows/workflow-production-schema.d.ts.map +1 -0
- package/dist/workflows/workflow-production-schema.js +107 -0
- package/dist/workflows/workflow-production-schema.js.map +1 -0
- package/dist/workflows/workflow-production-types.d.ts +71 -0
- package/dist/workflows/workflow-production-types.d.ts.map +1 -0
- package/dist/workflows/workflow-production-types.js +2 -0
- package/dist/workflows/workflow-production-types.js.map +1 -0
- package/dist/workflows/workflow-schema-common.d.ts +85 -0
- package/dist/workflows/workflow-schema-common.d.ts.map +1 -0
- package/dist/workflows/workflow-schema-common.js +78 -0
- package/dist/workflows/workflow-schema-common.js.map +1 -0
- package/dist/workflows/workflow-schema.d.ts +442 -3
- package/dist/workflows/workflow-schema.d.ts.map +1 -1
- package/dist/workflows/workflow-schema.js +63 -77
- package/dist/workflows/workflow-schema.js.map +1 -1
- package/docs/configuration.md +6 -3
- package/package.json +1 -1
- package/schemas/workflow-v1.schema.json +262 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { WorkflowInputValue } from './run-types.js';
|
|
3
2
|
export declare const WORKFLOW_SCHEMA_VERSION: "viewport.workflow/v1";
|
|
4
3
|
export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
5
4
|
schema: z.ZodLiteral<"viewport.workflow/v1">;
|
|
@@ -14,9 +13,40 @@ export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
14
13
|
json: "json";
|
|
15
14
|
}>;
|
|
16
15
|
required: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
-
default: z.ZodOptional<z.ZodType<WorkflowInputValue, unknown, z.core.$ZodTypeInternals<WorkflowInputValue, unknown>>>;
|
|
16
|
+
default: z.ZodOptional<z.ZodType<import("./run-types.js").WorkflowInputValue, unknown, z.core.$ZodTypeInternals<import("./run-types.js").WorkflowInputValue, unknown>>>;
|
|
18
17
|
description: z.ZodOptional<z.ZodString>;
|
|
19
18
|
}, z.core.$strict>>>;
|
|
19
|
+
triggers: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
20
|
+
type: z.ZodLiteral<"manual">;
|
|
21
|
+
title: z.ZodOptional<z.ZodString>;
|
|
22
|
+
description: z.ZodOptional<z.ZodString>;
|
|
23
|
+
inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./run-types.js").WorkflowInputValue, unknown, z.core.$ZodTypeInternals<import("./run-types.js").WorkflowInputValue, unknown>>>>;
|
|
24
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
25
|
+
type: z.ZodLiteral<"webhook">;
|
|
26
|
+
title: z.ZodOptional<z.ZodString>;
|
|
27
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
28
|
+
route: z.ZodOptional<z.ZodString>;
|
|
29
|
+
eventTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
|
+
signature: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
algorithm: z.ZodEnum<{
|
|
32
|
+
"hmac-sha256": "hmac-sha256";
|
|
33
|
+
}>;
|
|
34
|
+
header: z.ZodString;
|
|
35
|
+
timestampHeader: z.ZodOptional<z.ZodString>;
|
|
36
|
+
toleranceSeconds: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
}, z.core.$strict>>;
|
|
38
|
+
map: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
39
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
40
|
+
type: z.ZodLiteral<"schedule">;
|
|
41
|
+
title: z.ZodOptional<z.ZodString>;
|
|
42
|
+
cron: z.ZodString;
|
|
43
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
44
|
+
missedRun: z.ZodOptional<z.ZodEnum<{
|
|
45
|
+
skip: "skip";
|
|
46
|
+
catch_up_once: "catch_up_once";
|
|
47
|
+
route_to_inbox: "route_to_inbox";
|
|
48
|
+
}>>;
|
|
49
|
+
}, z.core.$strict>], "type">>>;
|
|
20
50
|
context: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
21
51
|
ref: z.ZodString;
|
|
22
52
|
as: z.ZodOptional<z.ZodString>;
|
|
@@ -62,6 +92,73 @@ export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
62
92
|
worktree: "worktree";
|
|
63
93
|
}>>>;
|
|
64
94
|
}, z.core.$strict>>;
|
|
95
|
+
runner: z.ZodOptional<z.ZodObject<{
|
|
96
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
97
|
+
paired_daemon: "paired_daemon";
|
|
98
|
+
self_hosted_runner: "self_hosted_runner";
|
|
99
|
+
}>>;
|
|
100
|
+
target: z.ZodOptional<z.ZodEnum<{
|
|
101
|
+
local_private: "local_private";
|
|
102
|
+
local_sandbox: "local_sandbox";
|
|
103
|
+
managed: "managed";
|
|
104
|
+
self_hosted: "self_hosted";
|
|
105
|
+
ci: "ci";
|
|
106
|
+
}>>;
|
|
107
|
+
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
108
|
+
shell: "shell";
|
|
109
|
+
resume: "resume";
|
|
110
|
+
"agent.prompt": "agent.prompt";
|
|
111
|
+
artifacts: "artifacts";
|
|
112
|
+
cancel: "cancel";
|
|
113
|
+
"files.read": "files.read";
|
|
114
|
+
"files.write": "files.write";
|
|
115
|
+
"network.egress": "network.egress";
|
|
116
|
+
secrets: "secrets";
|
|
117
|
+
worktree: "worktree";
|
|
118
|
+
}>>>;
|
|
119
|
+
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
120
|
+
profile: z.ZodOptional<z.ZodString>;
|
|
121
|
+
leaseSeconds: z.ZodOptional<z.ZodNumber>;
|
|
122
|
+
}, z.core.$strict>>;
|
|
123
|
+
policies: z.ZodOptional<z.ZodObject<{
|
|
124
|
+
run: z.ZodOptional<z.ZodObject<{
|
|
125
|
+
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
126
|
+
requireOnlineRunner: z.ZodOptional<z.ZodBoolean>;
|
|
127
|
+
}, z.core.$strict>>;
|
|
128
|
+
approve: z.ZodOptional<z.ZodObject<{
|
|
129
|
+
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
130
|
+
minApprovals: z.ZodOptional<z.ZodNumber>;
|
|
131
|
+
}, z.core.$strict>>;
|
|
132
|
+
sideEffects: z.ZodOptional<z.ZodObject<{
|
|
133
|
+
requireApproval: z.ZodOptional<z.ZodBoolean>;
|
|
134
|
+
allowedAdapters: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
135
|
+
}, z.core.$strict>>;
|
|
136
|
+
maxDurationSeconds: z.ZodOptional<z.ZodNumber>;
|
|
137
|
+
}, z.core.$strict>>;
|
|
138
|
+
notifications: z.ZodOptional<z.ZodObject<{
|
|
139
|
+
inbox: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
140
|
+
approval_requested: "approval_requested";
|
|
141
|
+
run_failed: "run_failed";
|
|
142
|
+
runner_offline: "runner_offline";
|
|
143
|
+
action_failed: "action_failed";
|
|
144
|
+
}>>>;
|
|
145
|
+
email: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
146
|
+
approval_requested: "approval_requested";
|
|
147
|
+
run_failed: "run_failed";
|
|
148
|
+
run_completed: "run_completed";
|
|
149
|
+
}>>>;
|
|
150
|
+
webhook: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
151
|
+
}, z.core.$strict>>;
|
|
152
|
+
dataCapture: z.ZodOptional<z.ZodObject<{
|
|
153
|
+
logs: z.ZodOptional<z.ZodEnum<{
|
|
154
|
+
compact: "compact";
|
|
155
|
+
full: "full";
|
|
156
|
+
off: "off";
|
|
157
|
+
}>>;
|
|
158
|
+
artifacts: z.ZodOptional<z.ZodBoolean>;
|
|
159
|
+
contextEvidence: z.ZodOptional<z.ZodBoolean>;
|
|
160
|
+
approvalPackets: z.ZodOptional<z.ZodBoolean>;
|
|
161
|
+
}, z.core.$strict>>;
|
|
65
162
|
capabilityRequests: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
66
163
|
type: z.ZodLiteral<"secret">;
|
|
67
164
|
ref: z.ZodString;
|
|
@@ -84,6 +181,103 @@ export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
84
181
|
reason: z.ZodString;
|
|
85
182
|
}, z.core.$strict>], "type">>>;
|
|
86
183
|
nodes: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
184
|
+
title: z.ZodOptional<z.ZodString>;
|
|
185
|
+
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
186
|
+
when: z.ZodOptional<z.ZodString>;
|
|
187
|
+
triggerRule: z.ZodOptional<z.ZodEnum<{
|
|
188
|
+
all_success: "all_success";
|
|
189
|
+
all_done: "all_done";
|
|
190
|
+
one_success: "one_success";
|
|
191
|
+
}>>;
|
|
192
|
+
timeoutSeconds: z.ZodOptional<z.ZodNumber>;
|
|
193
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
194
|
+
maxAttempts: z.ZodNumber;
|
|
195
|
+
backoffSeconds: z.ZodOptional<z.ZodNumber>;
|
|
196
|
+
transient: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
197
|
+
fatal: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
198
|
+
}, z.core.$strict>>;
|
|
199
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
200
|
+
onFailure: z.ZodOptional<z.ZodEnum<{
|
|
201
|
+
continue: "continue";
|
|
202
|
+
halt: "halt";
|
|
203
|
+
skip_dependents: "skip_dependents";
|
|
204
|
+
}>>;
|
|
205
|
+
approvalRequired: z.ZodOptional<z.ZodBoolean>;
|
|
206
|
+
}, z.core.$strict>>;
|
|
207
|
+
outputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
208
|
+
type: z.ZodEnum<{
|
|
209
|
+
string: "string";
|
|
210
|
+
number: "number";
|
|
211
|
+
boolean: "boolean";
|
|
212
|
+
file: "file";
|
|
213
|
+
json: "json";
|
|
214
|
+
artifact: "artifact";
|
|
215
|
+
}>;
|
|
216
|
+
description: z.ZodOptional<z.ZodString>;
|
|
217
|
+
extract: z.ZodOptional<z.ZodString>;
|
|
218
|
+
}, z.core.$strict>>>;
|
|
219
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
220
|
+
path: z.ZodString;
|
|
221
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
222
|
+
file: "file";
|
|
223
|
+
directory: "directory";
|
|
224
|
+
patch: "patch";
|
|
225
|
+
report: "report";
|
|
226
|
+
log: "log";
|
|
227
|
+
}>>;
|
|
228
|
+
description: z.ZodOptional<z.ZodString>;
|
|
229
|
+
}, z.core.$strict>>>;
|
|
230
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
231
|
+
value: z.ZodOptional<z.ZodString>;
|
|
232
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
233
|
+
}, z.core.$strict>>>;
|
|
234
|
+
type: z.ZodLiteral<"agent">;
|
|
235
|
+
prompt: z.ZodString;
|
|
236
|
+
agent: z.ZodString;
|
|
237
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
238
|
+
model: z.ZodOptional<z.ZodString>;
|
|
239
|
+
session: z.ZodOptional<z.ZodObject<{
|
|
240
|
+
resume: z.ZodOptional<z.ZodBoolean>;
|
|
241
|
+
title: z.ZodOptional<z.ZodString>;
|
|
242
|
+
}, z.core.$strict>>;
|
|
243
|
+
handoff: z.ZodOptional<z.ZodObject<{
|
|
244
|
+
artifact: z.ZodOptional<z.ZodString>;
|
|
245
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
246
|
+
}, z.core.$strict>>;
|
|
247
|
+
hooks: z.ZodOptional<z.ZodObject<{
|
|
248
|
+
PreToolUse: z.ZodOptional<z.ZodObject<{
|
|
249
|
+
record: z.ZodOptional<z.ZodBoolean>;
|
|
250
|
+
}, z.core.$strict>>;
|
|
251
|
+
PostToolUse: z.ZodOptional<z.ZodObject<{
|
|
252
|
+
record: z.ZodOptional<z.ZodBoolean>;
|
|
253
|
+
}, z.core.$strict>>;
|
|
254
|
+
PostToolUseFailure: z.ZodOptional<z.ZodObject<{
|
|
255
|
+
record: z.ZodOptional<z.ZodBoolean>;
|
|
256
|
+
}, z.core.$strict>>;
|
|
257
|
+
PermissionRequest: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
258
|
+
behavior: z.ZodEnum<{
|
|
259
|
+
allow: "allow";
|
|
260
|
+
deny: "deny";
|
|
261
|
+
}>;
|
|
262
|
+
message: z.ZodOptional<z.ZodString>;
|
|
263
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
264
|
+
default: z.ZodOptional<z.ZodObject<{
|
|
265
|
+
behavior: z.ZodEnum<{
|
|
266
|
+
allow: "allow";
|
|
267
|
+
deny: "deny";
|
|
268
|
+
}>;
|
|
269
|
+
message: z.ZodOptional<z.ZodString>;
|
|
270
|
+
}, z.core.$strict>>;
|
|
271
|
+
tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
272
|
+
behavior: z.ZodEnum<{
|
|
273
|
+
allow: "allow";
|
|
274
|
+
deny: "deny";
|
|
275
|
+
}>;
|
|
276
|
+
message: z.ZodOptional<z.ZodString>;
|
|
277
|
+
}, z.core.$strict>>>;
|
|
278
|
+
}, z.core.$strict>]>>;
|
|
279
|
+
}, z.core.$strict>>;
|
|
280
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
87
281
|
title: z.ZodOptional<z.ZodString>;
|
|
88
282
|
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
89
283
|
when: z.ZodOptional<z.ZodString>;
|
|
@@ -350,7 +544,7 @@ export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
350
544
|
secret: z.ZodOptional<z.ZodString>;
|
|
351
545
|
}, z.core.$strict>>>;
|
|
352
546
|
type: z.ZodLiteral<"plan">;
|
|
353
|
-
title: z.ZodString
|
|
547
|
+
title: z.ZodOptional<z.ZodString>;
|
|
354
548
|
body: z.ZodString;
|
|
355
549
|
summary: z.ZodOptional<z.ZodString>;
|
|
356
550
|
source: z.ZodOptional<z.ZodString>;
|
|
@@ -425,6 +619,251 @@ export declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
425
619
|
waitUntil: z.ZodString;
|
|
426
620
|
description: z.ZodOptional<z.ZodString>;
|
|
427
621
|
}, z.core.$strict>], "type">;
|
|
622
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
623
|
+
title: z.ZodOptional<z.ZodString>;
|
|
624
|
+
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
625
|
+
when: z.ZodOptional<z.ZodString>;
|
|
626
|
+
triggerRule: z.ZodOptional<z.ZodEnum<{
|
|
627
|
+
all_success: "all_success";
|
|
628
|
+
all_done: "all_done";
|
|
629
|
+
one_success: "one_success";
|
|
630
|
+
}>>;
|
|
631
|
+
timeoutSeconds: z.ZodOptional<z.ZodNumber>;
|
|
632
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
633
|
+
maxAttempts: z.ZodNumber;
|
|
634
|
+
backoffSeconds: z.ZodOptional<z.ZodNumber>;
|
|
635
|
+
transient: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
636
|
+
fatal: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
637
|
+
}, z.core.$strict>>;
|
|
638
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
639
|
+
onFailure: z.ZodOptional<z.ZodEnum<{
|
|
640
|
+
continue: "continue";
|
|
641
|
+
halt: "halt";
|
|
642
|
+
skip_dependents: "skip_dependents";
|
|
643
|
+
}>>;
|
|
644
|
+
approvalRequired: z.ZodOptional<z.ZodBoolean>;
|
|
645
|
+
}, z.core.$strict>>;
|
|
646
|
+
outputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
647
|
+
type: z.ZodEnum<{
|
|
648
|
+
string: "string";
|
|
649
|
+
number: "number";
|
|
650
|
+
boolean: "boolean";
|
|
651
|
+
file: "file";
|
|
652
|
+
json: "json";
|
|
653
|
+
artifact: "artifact";
|
|
654
|
+
}>;
|
|
655
|
+
description: z.ZodOptional<z.ZodString>;
|
|
656
|
+
extract: z.ZodOptional<z.ZodString>;
|
|
657
|
+
}, z.core.$strict>>>;
|
|
658
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
659
|
+
path: z.ZodString;
|
|
660
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
661
|
+
file: "file";
|
|
662
|
+
directory: "directory";
|
|
663
|
+
patch: "patch";
|
|
664
|
+
report: "report";
|
|
665
|
+
log: "log";
|
|
666
|
+
}>>;
|
|
667
|
+
description: z.ZodOptional<z.ZodString>;
|
|
668
|
+
}, z.core.$strict>>>;
|
|
669
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
670
|
+
value: z.ZodOptional<z.ZodString>;
|
|
671
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
672
|
+
}, z.core.$strict>>>;
|
|
673
|
+
type: z.ZodLiteral<"context">;
|
|
674
|
+
refs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
675
|
+
ref: z.ZodString;
|
|
676
|
+
as: z.ZodOptional<z.ZodString>;
|
|
677
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
678
|
+
description: z.ZodOptional<z.ZodString>;
|
|
679
|
+
refresh: z.ZodOptional<z.ZodEnum<{
|
|
680
|
+
manual: "manual";
|
|
681
|
+
before_run: "before_run";
|
|
682
|
+
on_demand: "on_demand";
|
|
683
|
+
}>>;
|
|
684
|
+
}, z.core.$strict>]>>>;
|
|
685
|
+
query: z.ZodOptional<z.ZodString>;
|
|
686
|
+
refresh: z.ZodOptional<z.ZodEnum<{
|
|
687
|
+
manual: "manual";
|
|
688
|
+
before_run: "before_run";
|
|
689
|
+
on_demand: "on_demand";
|
|
690
|
+
}>>;
|
|
691
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
692
|
+
title: z.ZodOptional<z.ZodString>;
|
|
693
|
+
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
694
|
+
when: z.ZodOptional<z.ZodString>;
|
|
695
|
+
triggerRule: z.ZodOptional<z.ZodEnum<{
|
|
696
|
+
all_success: "all_success";
|
|
697
|
+
all_done: "all_done";
|
|
698
|
+
one_success: "one_success";
|
|
699
|
+
}>>;
|
|
700
|
+
timeoutSeconds: z.ZodOptional<z.ZodNumber>;
|
|
701
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
702
|
+
maxAttempts: z.ZodNumber;
|
|
703
|
+
backoffSeconds: z.ZodOptional<z.ZodNumber>;
|
|
704
|
+
transient: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
705
|
+
fatal: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
706
|
+
}, z.core.$strict>>;
|
|
707
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
708
|
+
onFailure: z.ZodOptional<z.ZodEnum<{
|
|
709
|
+
continue: "continue";
|
|
710
|
+
halt: "halt";
|
|
711
|
+
skip_dependents: "skip_dependents";
|
|
712
|
+
}>>;
|
|
713
|
+
approvalRequired: z.ZodOptional<z.ZodBoolean>;
|
|
714
|
+
}, z.core.$strict>>;
|
|
715
|
+
outputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
716
|
+
type: z.ZodEnum<{
|
|
717
|
+
string: "string";
|
|
718
|
+
number: "number";
|
|
719
|
+
boolean: "boolean";
|
|
720
|
+
file: "file";
|
|
721
|
+
json: "json";
|
|
722
|
+
artifact: "artifact";
|
|
723
|
+
}>;
|
|
724
|
+
description: z.ZodOptional<z.ZodString>;
|
|
725
|
+
extract: z.ZodOptional<z.ZodString>;
|
|
726
|
+
}, z.core.$strict>>>;
|
|
727
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
728
|
+
path: z.ZodString;
|
|
729
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
730
|
+
file: "file";
|
|
731
|
+
directory: "directory";
|
|
732
|
+
patch: "patch";
|
|
733
|
+
report: "report";
|
|
734
|
+
log: "log";
|
|
735
|
+
}>>;
|
|
736
|
+
description: z.ZodOptional<z.ZodString>;
|
|
737
|
+
}, z.core.$strict>>>;
|
|
738
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
739
|
+
value: z.ZodOptional<z.ZodString>;
|
|
740
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
741
|
+
}, z.core.$strict>>>;
|
|
742
|
+
type: z.ZodLiteral<"condition">;
|
|
743
|
+
expression: z.ZodString;
|
|
744
|
+
then: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
745
|
+
else: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
746
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
747
|
+
title: z.ZodOptional<z.ZodString>;
|
|
748
|
+
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
749
|
+
when: z.ZodOptional<z.ZodString>;
|
|
750
|
+
triggerRule: z.ZodOptional<z.ZodEnum<{
|
|
751
|
+
all_success: "all_success";
|
|
752
|
+
all_done: "all_done";
|
|
753
|
+
one_success: "one_success";
|
|
754
|
+
}>>;
|
|
755
|
+
timeoutSeconds: z.ZodOptional<z.ZodNumber>;
|
|
756
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
757
|
+
maxAttempts: z.ZodNumber;
|
|
758
|
+
backoffSeconds: z.ZodOptional<z.ZodNumber>;
|
|
759
|
+
transient: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
760
|
+
fatal: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
761
|
+
}, z.core.$strict>>;
|
|
762
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
763
|
+
onFailure: z.ZodOptional<z.ZodEnum<{
|
|
764
|
+
continue: "continue";
|
|
765
|
+
halt: "halt";
|
|
766
|
+
skip_dependents: "skip_dependents";
|
|
767
|
+
}>>;
|
|
768
|
+
approvalRequired: z.ZodOptional<z.ZodBoolean>;
|
|
769
|
+
}, z.core.$strict>>;
|
|
770
|
+
outputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
771
|
+
type: z.ZodEnum<{
|
|
772
|
+
string: "string";
|
|
773
|
+
number: "number";
|
|
774
|
+
boolean: "boolean";
|
|
775
|
+
file: "file";
|
|
776
|
+
json: "json";
|
|
777
|
+
artifact: "artifact";
|
|
778
|
+
}>;
|
|
779
|
+
description: z.ZodOptional<z.ZodString>;
|
|
780
|
+
extract: z.ZodOptional<z.ZodString>;
|
|
781
|
+
}, z.core.$strict>>>;
|
|
782
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
783
|
+
path: z.ZodString;
|
|
784
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
785
|
+
file: "file";
|
|
786
|
+
directory: "directory";
|
|
787
|
+
patch: "patch";
|
|
788
|
+
report: "report";
|
|
789
|
+
log: "log";
|
|
790
|
+
}>>;
|
|
791
|
+
description: z.ZodOptional<z.ZodString>;
|
|
792
|
+
}, z.core.$strict>>>;
|
|
793
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
794
|
+
value: z.ZodOptional<z.ZodString>;
|
|
795
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
796
|
+
}, z.core.$strict>>>;
|
|
797
|
+
type: z.ZodLiteral<"artifact">;
|
|
798
|
+
name: z.ZodString;
|
|
799
|
+
from: z.ZodOptional<z.ZodString>;
|
|
800
|
+
path: z.ZodOptional<z.ZodString>;
|
|
801
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
802
|
+
url: "url";
|
|
803
|
+
file: "file";
|
|
804
|
+
directory: "directory";
|
|
805
|
+
patch: "patch";
|
|
806
|
+
report: "report";
|
|
807
|
+
log: "log";
|
|
808
|
+
}>>;
|
|
809
|
+
description: z.ZodOptional<z.ZodString>;
|
|
810
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
811
|
+
title: z.ZodOptional<z.ZodString>;
|
|
812
|
+
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
813
|
+
when: z.ZodOptional<z.ZodString>;
|
|
814
|
+
triggerRule: z.ZodOptional<z.ZodEnum<{
|
|
815
|
+
all_success: "all_success";
|
|
816
|
+
all_done: "all_done";
|
|
817
|
+
one_success: "one_success";
|
|
818
|
+
}>>;
|
|
819
|
+
timeoutSeconds: z.ZodOptional<z.ZodNumber>;
|
|
820
|
+
retry: z.ZodOptional<z.ZodObject<{
|
|
821
|
+
maxAttempts: z.ZodNumber;
|
|
822
|
+
backoffSeconds: z.ZodOptional<z.ZodNumber>;
|
|
823
|
+
transient: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
824
|
+
fatal: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
825
|
+
}, z.core.$strict>>;
|
|
826
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
827
|
+
onFailure: z.ZodOptional<z.ZodEnum<{
|
|
828
|
+
continue: "continue";
|
|
829
|
+
halt: "halt";
|
|
830
|
+
skip_dependents: "skip_dependents";
|
|
831
|
+
}>>;
|
|
832
|
+
approvalRequired: z.ZodOptional<z.ZodBoolean>;
|
|
833
|
+
}, z.core.$strict>>;
|
|
834
|
+
outputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
835
|
+
type: z.ZodEnum<{
|
|
836
|
+
string: "string";
|
|
837
|
+
number: "number";
|
|
838
|
+
boolean: "boolean";
|
|
839
|
+
file: "file";
|
|
840
|
+
json: "json";
|
|
841
|
+
artifact: "artifact";
|
|
842
|
+
}>;
|
|
843
|
+
description: z.ZodOptional<z.ZodString>;
|
|
844
|
+
extract: z.ZodOptional<z.ZodString>;
|
|
845
|
+
}, z.core.$strict>>>;
|
|
846
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
847
|
+
path: z.ZodString;
|
|
848
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
849
|
+
file: "file";
|
|
850
|
+
directory: "directory";
|
|
851
|
+
patch: "patch";
|
|
852
|
+
report: "report";
|
|
853
|
+
log: "log";
|
|
854
|
+
}>>;
|
|
855
|
+
description: z.ZodOptional<z.ZodString>;
|
|
856
|
+
}, z.core.$strict>>>;
|
|
857
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
858
|
+
value: z.ZodOptional<z.ZodString>;
|
|
859
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
860
|
+
}, z.core.$strict>>>;
|
|
861
|
+
type: z.ZodLiteral<"action">;
|
|
862
|
+
adapter: z.ZodString;
|
|
863
|
+
action: z.ZodString;
|
|
864
|
+
with: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./run-types.js").WorkflowInputValue, unknown, z.core.$ZodTypeInternals<import("./run-types.js").WorkflowInputValue, unknown>>>>;
|
|
865
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
866
|
+
requiresApproval: z.ZodOptional<z.ZodBoolean>;
|
|
428
867
|
}, z.core.$strict>, z.ZodObject<{
|
|
429
868
|
title: z.ZodOptional<z.ZodString>;
|
|
430
869
|
needs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-schema.d.ts","sourceRoot":"","sources":["../../src/workflows/workflow-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-schema.d.ts","sourceRoot":"","sources":["../../src/workflows/workflow-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,uBAAuB,EAAG,sBAA+B,CAAC;AA0RvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkB1B,CAAC"}
|
|
@@ -1,55 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { CapabilityRequestSchema, ExecutorRequirementSchema } from './workflow-executor-schema.js';
|
|
3
|
+
import { ArtifactDefinitionSchema, ContextSchema, EnvValueSchema, identifierSchema, InputDefinitionSchema, InputValueSchema, NodePolicySchema, OutputDefinitionSchema, RequiresSchema, RetryPolicySchema, } from './workflow-schema-common.js';
|
|
4
|
+
import { WorkflowDataCaptureDefinitionSchema, WorkflowNotificationDefinitionSchema, WorkflowPolicyDefinitionSchema, WorkflowRunnerRequirementSchema, WorkflowTriggerDefinitionSchema, } from './workflow-production-schema.js';
|
|
3
5
|
export const WORKFLOW_SCHEMA_VERSION = 'viewport.workflow/v1';
|
|
4
|
-
const InputValueSchema = z.lazy(() => z.union([
|
|
5
|
-
z.string(),
|
|
6
|
-
z.number(),
|
|
7
|
-
z.boolean(),
|
|
8
|
-
z.null(),
|
|
9
|
-
z.array(InputValueSchema),
|
|
10
|
-
z.record(z.string(), InputValueSchema),
|
|
11
|
-
]));
|
|
12
|
-
const InputDefinitionSchema = z
|
|
13
|
-
.object({
|
|
14
|
-
type: z.enum(['string', 'number', 'boolean', 'json']),
|
|
15
|
-
required: z.boolean().optional(),
|
|
16
|
-
default: InputValueSchema.optional(),
|
|
17
|
-
description: z.string().optional(),
|
|
18
|
-
})
|
|
19
|
-
.strict();
|
|
20
|
-
const identifierSchema = z
|
|
21
|
-
.string()
|
|
22
|
-
.trim()
|
|
23
|
-
.min(1)
|
|
24
|
-
.regex(/^[a-zA-Z0-9._/-]+$/);
|
|
25
|
-
const OutputDefinitionSchema = z
|
|
26
|
-
.object({
|
|
27
|
-
type: z.enum(['string', 'number', 'boolean', 'json', 'file', 'artifact']),
|
|
28
|
-
description: z.string().optional(),
|
|
29
|
-
extract: z.string().trim().min(1).optional(),
|
|
30
|
-
})
|
|
31
|
-
.strict();
|
|
32
|
-
const ArtifactDefinitionSchema = z
|
|
33
|
-
.object({
|
|
34
|
-
path: z.string().trim().min(1),
|
|
35
|
-
type: z.enum(['file', 'directory', 'patch', 'report', 'log']).optional(),
|
|
36
|
-
description: z.string().optional(),
|
|
37
|
-
})
|
|
38
|
-
.strict();
|
|
39
|
-
const RetryPolicySchema = z
|
|
40
|
-
.object({
|
|
41
|
-
maxAttempts: z.number().int().min(1).max(10),
|
|
42
|
-
backoffSeconds: z.number().int().min(0).max(86_400).optional(),
|
|
43
|
-
transient: z.array(z.string().min(1)).optional(),
|
|
44
|
-
fatal: z.array(z.string().min(1)).optional(),
|
|
45
|
-
})
|
|
46
|
-
.strict();
|
|
47
|
-
const NodePolicySchema = z
|
|
48
|
-
.object({
|
|
49
|
-
onFailure: z.enum(['halt', 'continue', 'skip_dependents']).optional(),
|
|
50
|
-
approvalRequired: z.boolean().optional(),
|
|
51
|
-
})
|
|
52
|
-
.strict();
|
|
53
6
|
const HookRecordSchema = z
|
|
54
7
|
.object({
|
|
55
8
|
record: z.boolean().optional(),
|
|
@@ -119,33 +72,6 @@ const GateDefinitionSchema = z.discriminatedUnion('type', [
|
|
|
119
72
|
})
|
|
120
73
|
.strict(),
|
|
121
74
|
]);
|
|
122
|
-
const EnvValueSchema = z
|
|
123
|
-
.object({
|
|
124
|
-
value: z.string().optional(),
|
|
125
|
-
secret: identifierSchema.optional(),
|
|
126
|
-
})
|
|
127
|
-
.strict()
|
|
128
|
-
.refine((entry) => Boolean(entry.value) !== Boolean(entry.secret), {
|
|
129
|
-
message: 'Set exactly one of value or secret.',
|
|
130
|
-
});
|
|
131
|
-
const RequiresSchema = z
|
|
132
|
-
.object({
|
|
133
|
-
agents: z.array(z.string().trim().min(1)).optional(),
|
|
134
|
-
tools: z.array(z.string().trim().min(1)).optional(),
|
|
135
|
-
integrations: z.array(z.string().trim().min(1)).optional(),
|
|
136
|
-
secrets: z.array(identifierSchema).optional(),
|
|
137
|
-
})
|
|
138
|
-
.strict();
|
|
139
|
-
const ContextReferenceSchema = z
|
|
140
|
-
.object({
|
|
141
|
-
ref: z.string().trim().min(1),
|
|
142
|
-
as: identifierSchema.optional(),
|
|
143
|
-
required: z.boolean().optional(),
|
|
144
|
-
description: z.string().optional(),
|
|
145
|
-
refresh: z.enum(['manual', 'before_run', 'on_demand']).optional(),
|
|
146
|
-
})
|
|
147
|
-
.strict();
|
|
148
|
-
const ContextSchema = z.array(z.union([z.string().trim().min(1), ContextReferenceSchema]));
|
|
149
75
|
const TriggerRuleSchema = z.enum(['all_success', 'all_done', 'one_success']);
|
|
150
76
|
const NodeBaseSchema = z.object({
|
|
151
77
|
title: z.string().trim().min(1).optional(),
|
|
@@ -169,6 +95,28 @@ const PromptNodeSchema = NodeBaseSchema.extend({
|
|
|
169
95
|
agents: z.record(identifierSchema, InlineAgentDefinitionSchema).optional(),
|
|
170
96
|
inlineAgentFailurePolicy: z.enum(['fail', 'continue']).optional(),
|
|
171
97
|
}).strict();
|
|
98
|
+
const AgentNodeSchema = NodeBaseSchema.extend({
|
|
99
|
+
type: z.literal('agent'),
|
|
100
|
+
prompt: z.string().trim().min(1),
|
|
101
|
+
agent: z.string().trim().min(1),
|
|
102
|
+
provider: z.string().trim().min(1).optional(),
|
|
103
|
+
model: z.string().trim().min(1).optional(),
|
|
104
|
+
session: z
|
|
105
|
+
.object({
|
|
106
|
+
resume: z.boolean().optional(),
|
|
107
|
+
title: z.string().trim().min(1).optional(),
|
|
108
|
+
})
|
|
109
|
+
.strict()
|
|
110
|
+
.optional(),
|
|
111
|
+
handoff: z
|
|
112
|
+
.object({
|
|
113
|
+
artifact: identifierSchema.optional(),
|
|
114
|
+
summary: z.string().trim().min(1).optional(),
|
|
115
|
+
})
|
|
116
|
+
.strict()
|
|
117
|
+
.optional(),
|
|
118
|
+
hooks: HookRulesSchema.optional(),
|
|
119
|
+
}).strict();
|
|
172
120
|
const ShellNodeSchema = NodeBaseSchema.extend({
|
|
173
121
|
type: z.literal('shell'),
|
|
174
122
|
command: z.string().trim().min(1),
|
|
@@ -198,7 +146,7 @@ const ApprovalNodeSchema = NodeBaseSchema.extend({
|
|
|
198
146
|
}).strict();
|
|
199
147
|
const PlanNodeSchema = NodeBaseSchema.extend({
|
|
200
148
|
type: z.literal('plan'),
|
|
201
|
-
title: z.string().trim().min(1),
|
|
149
|
+
title: z.string().trim().min(1).optional(),
|
|
202
150
|
body: z.string().trim().min(1),
|
|
203
151
|
summary: z.string().trim().min(1).optional(),
|
|
204
152
|
source: z.string().trim().min(1).optional(),
|
|
@@ -209,6 +157,34 @@ const GateNodeSchema = NodeBaseSchema.extend({
|
|
|
209
157
|
type: z.literal('gate'),
|
|
210
158
|
gate: GateDefinitionSchema,
|
|
211
159
|
}).strict();
|
|
160
|
+
const ContextNodeSchema = NodeBaseSchema.extend({
|
|
161
|
+
type: z.literal('context'),
|
|
162
|
+
refs: ContextSchema.optional(),
|
|
163
|
+
query: z.string().trim().min(1).optional(),
|
|
164
|
+
refresh: z.enum(['manual', 'before_run', 'on_demand']).optional(),
|
|
165
|
+
}).strict();
|
|
166
|
+
const ConditionNodeSchema = NodeBaseSchema.extend({
|
|
167
|
+
type: z.literal('condition'),
|
|
168
|
+
expression: z.string().trim().min(1),
|
|
169
|
+
then: z.array(identifierSchema).optional(),
|
|
170
|
+
else: z.array(identifierSchema).optional(),
|
|
171
|
+
}).strict();
|
|
172
|
+
const ArtifactNodeSchema = NodeBaseSchema.extend({
|
|
173
|
+
type: z.literal('artifact'),
|
|
174
|
+
name: identifierSchema,
|
|
175
|
+
from: z.string().trim().min(1).optional(),
|
|
176
|
+
path: z.string().trim().min(1).optional(),
|
|
177
|
+
kind: z.enum(['file', 'directory', 'patch', 'report', 'log', 'url']).optional(),
|
|
178
|
+
description: z.string().optional(),
|
|
179
|
+
}).strict();
|
|
180
|
+
const ActionNodeSchema = NodeBaseSchema.extend({
|
|
181
|
+
type: z.literal('action'),
|
|
182
|
+
adapter: identifierSchema,
|
|
183
|
+
action: identifierSchema,
|
|
184
|
+
with: z.record(identifierSchema, InputValueSchema).optional(),
|
|
185
|
+
idempotencyKey: z.string().trim().min(1).optional(),
|
|
186
|
+
requiresApproval: z.boolean().optional(),
|
|
187
|
+
}).strict();
|
|
212
188
|
const LoopBodySchema = z.discriminatedUnion('type', [
|
|
213
189
|
z
|
|
214
190
|
.object({
|
|
@@ -269,11 +245,16 @@ const SubflowNodeSchema = NodeBaseSchema.extend({
|
|
|
269
245
|
inputs: z.record(identifierSchema, z.string().trim().min(1)).optional(),
|
|
270
246
|
}).strict();
|
|
271
247
|
const WorkflowNodeSchema = z.discriminatedUnion('type', [
|
|
248
|
+
AgentNodeSchema,
|
|
272
249
|
PromptNodeSchema,
|
|
273
250
|
ShellNodeSchema,
|
|
274
251
|
ApprovalNodeSchema,
|
|
275
252
|
PlanNodeSchema,
|
|
276
253
|
GateNodeSchema,
|
|
254
|
+
ContextNodeSchema,
|
|
255
|
+
ConditionNodeSchema,
|
|
256
|
+
ArtifactNodeSchema,
|
|
257
|
+
ActionNodeSchema,
|
|
277
258
|
LoopNodeSchema,
|
|
278
259
|
SubflowNodeSchema,
|
|
279
260
|
]);
|
|
@@ -284,9 +265,14 @@ export const WorkflowDefinitionSchema = z
|
|
|
284
265
|
title: z.string().trim().min(1).optional(),
|
|
285
266
|
description: z.string().optional(),
|
|
286
267
|
inputs: z.record(z.string(), InputDefinitionSchema).optional(),
|
|
268
|
+
triggers: z.array(WorkflowTriggerDefinitionSchema).optional(),
|
|
287
269
|
context: ContextSchema.optional(),
|
|
288
270
|
requires: RequiresSchema.optional(),
|
|
289
271
|
executor: ExecutorRequirementSchema.optional(),
|
|
272
|
+
runner: WorkflowRunnerRequirementSchema.optional(),
|
|
273
|
+
policies: WorkflowPolicyDefinitionSchema.optional(),
|
|
274
|
+
notifications: WorkflowNotificationDefinitionSchema.optional(),
|
|
275
|
+
dataCapture: WorkflowDataCaptureDefinitionSchema.optional(),
|
|
290
276
|
capabilityRequests: z.array(CapabilityRequestSchema).optional(),
|
|
291
277
|
nodes: z.record(z.string().trim().min(1), WorkflowNodeSchema),
|
|
292
278
|
})
|