@executioncontrolprotocol/types 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.
Files changed (105) hide show
  1. package/README.md +16 -0
  2. package/dist/capabilities.d.ts +31 -0
  3. package/dist/capabilities.d.ts.map +1 -0
  4. package/dist/capabilities.js +2 -0
  5. package/dist/capabilities.js.map +1 -0
  6. package/dist/encoding.d.ts +99 -0
  7. package/dist/encoding.d.ts.map +1 -0
  8. package/dist/encoding.js +25 -0
  9. package/dist/encoding.js.map +1 -0
  10. package/dist/environment.d.ts +132 -0
  11. package/dist/environment.d.ts.map +1 -0
  12. package/dist/environment.js +2 -0
  13. package/dist/environment.js.map +1 -0
  14. package/dist/harness-feedback.d.ts +43 -0
  15. package/dist/harness-feedback.d.ts.map +1 -0
  16. package/dist/harness-feedback.js +2 -0
  17. package/dist/harness-feedback.js.map +1 -0
  18. package/dist/harness-reply.d.ts +63 -0
  19. package/dist/harness-reply.d.ts.map +1 -0
  20. package/dist/harness-reply.js +30 -0
  21. package/dist/harness-reply.js.map +1 -0
  22. package/dist/harness-run-context.d.ts +228 -0
  23. package/dist/harness-run-context.d.ts.map +1 -0
  24. package/dist/harness-run-context.js +35 -0
  25. package/dist/harness-run-context.js.map +1 -0
  26. package/dist/harness-tasks.d.ts +403 -0
  27. package/dist/harness-tasks.d.ts.map +1 -0
  28. package/dist/harness-tasks.js +50 -0
  29. package/dist/harness-tasks.js.map +1 -0
  30. package/dist/harness.d.ts +118 -0
  31. package/dist/harness.d.ts.map +1 -0
  32. package/dist/harness.js +34 -0
  33. package/dist/harness.js.map +1 -0
  34. package/dist/image.d.ts +150 -0
  35. package/dist/image.d.ts.map +1 -0
  36. package/dist/image.js +46 -0
  37. package/dist/image.js.map +1 -0
  38. package/dist/index.d.ts +34 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +12 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/intent.d.ts +35 -0
  43. package/dist/intent.d.ts.map +1 -0
  44. package/dist/intent.js +26 -0
  45. package/dist/intent.js.map +1 -0
  46. package/dist/invoke.d.ts +44 -0
  47. package/dist/invoke.d.ts.map +1 -0
  48. package/dist/invoke.js +9 -0
  49. package/dist/invoke.js.map +1 -0
  50. package/dist/lifecycle.d.ts +27 -0
  51. package/dist/lifecycle.d.ts.map +1 -0
  52. package/dist/lifecycle.js +2 -0
  53. package/dist/lifecycle.js.map +1 -0
  54. package/dist/model.d.ts +57 -0
  55. package/dist/model.d.ts.map +1 -0
  56. package/dist/model.js +32 -0
  57. package/dist/model.js.map +1 -0
  58. package/dist/patch-errors.d.ts +11 -0
  59. package/dist/patch-errors.d.ts.map +1 -0
  60. package/dist/patch-errors.js +9 -0
  61. package/dist/patch-errors.js.map +1 -0
  62. package/dist/patch.d.ts +51 -0
  63. package/dist/patch.d.ts.map +1 -0
  64. package/dist/patch.js +2 -0
  65. package/dist/patch.js.map +1 -0
  66. package/dist/registry.d.ts +24 -0
  67. package/dist/registry.d.ts.map +1 -0
  68. package/dist/registry.js +2 -0
  69. package/dist/registry.js.map +1 -0
  70. package/dist/run.d.ts +35 -0
  71. package/dist/run.d.ts.map +1 -0
  72. package/dist/run.js +2 -0
  73. package/dist/run.js.map +1 -0
  74. package/dist/schema.d.ts +67 -0
  75. package/dist/schema.d.ts.map +1 -0
  76. package/dist/schema.js +2 -0
  77. package/dist/schema.js.map +1 -0
  78. package/dist/schemas/decode.result.json +155 -0
  79. package/dist/schemas/encode.result.json +162 -0
  80. package/dist/schemas/environment.describe.json +210 -0
  81. package/dist/schemas/environment.manifest.json +159 -0
  82. package/dist/schemas/environment.search.json +72 -0
  83. package/dist/schemas/patch.json +104 -0
  84. package/dist/schemas/patch.result.json +260 -0
  85. package/dist/schemas/run.request.json +485 -0
  86. package/dist/schemas/run.result.json +170 -0
  87. package/dist/schemas/validation.result.json +89 -0
  88. package/dist/schemas/workflow.manifest.json +451 -0
  89. package/dist/store.d.ts +30 -0
  90. package/dist/store.d.ts.map +1 -0
  91. package/dist/store.js +2 -0
  92. package/dist/store.js.map +1 -0
  93. package/dist/validation.d.ts +20 -0
  94. package/dist/validation.d.ts.map +1 -0
  95. package/dist/validation.js +2 -0
  96. package/dist/validation.js.map +1 -0
  97. package/dist/version.d.ts +5 -0
  98. package/dist/version.d.ts.map +1 -0
  99. package/dist/version.js +3 -0
  100. package/dist/version.js.map +1 -0
  101. package/dist/workflow.d.ts +55 -0
  102. package/dist/workflow.d.ts.map +1 -0
  103. package/dist/workflow.js +2 -0
  104. package/dist/workflow.js.map +1 -0
  105. package/package.json +33 -0
@@ -0,0 +1,89 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$ref": "#/definitions/ValidationResult",
4
+ "definitions": {
5
+ "ValidationResult": {
6
+ "type": "object",
7
+ "properties": {
8
+ "schema": {
9
+ "type": "string",
10
+ "const": "@executioncontrolprotocol.validation.result"
11
+ },
12
+ "version": {
13
+ "$ref": "#/definitions/EcpVersion"
14
+ },
15
+ "valid": {
16
+ "type": "boolean"
17
+ },
18
+ "errors": {
19
+ "type": "array",
20
+ "items": {
21
+ "$ref": "#/definitions/ValidationIssue"
22
+ }
23
+ },
24
+ "warnings": {
25
+ "type": "array",
26
+ "items": {
27
+ "$ref": "#/definitions/ValidationIssue"
28
+ }
29
+ }
30
+ },
31
+ "required": [
32
+ "schema",
33
+ "version",
34
+ "valid",
35
+ "errors",
36
+ "warnings"
37
+ ],
38
+ "additionalProperties": false,
39
+ "description": "Validation result document.",
40
+ "category": "Validation"
41
+ },
42
+ "EcpVersion": {
43
+ "type": "string",
44
+ "description": "ECP semantic version literal.",
45
+ "category": "Common"
46
+ },
47
+ "ValidationIssue": {
48
+ "type": "object",
49
+ "properties": {
50
+ "code": {
51
+ "type": "string"
52
+ },
53
+ "message": {
54
+ "type": "string"
55
+ },
56
+ "path": {
57
+ "type": "string"
58
+ },
59
+ "suggestions": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string"
63
+ }
64
+ },
65
+ "severity": {
66
+ "$ref": "#/definitions/ValidationSeverity"
67
+ }
68
+ },
69
+ "required": [
70
+ "code",
71
+ "message"
72
+ ],
73
+ "additionalProperties": false,
74
+ "description": "Single validation issue.",
75
+ "category": "Validation"
76
+ },
77
+ "ValidationSeverity": {
78
+ "type": "string",
79
+ "enum": [
80
+ "error",
81
+ "warning",
82
+ "info"
83
+ ],
84
+ "description": "Validation issue severity.",
85
+ "category": "Validation"
86
+ }
87
+ },
88
+ "$id": "https://ecp.dev/schemas/validation.result.json"
89
+ }
@@ -0,0 +1,451 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$ref": "#/definitions/WorkflowManifest",
4
+ "definitions": {
5
+ "WorkflowManifest": {
6
+ "type": "object",
7
+ "properties": {
8
+ "schema": {
9
+ "type": "string",
10
+ "const": "@executioncontrolprotocol.workflow"
11
+ },
12
+ "version": {
13
+ "$ref": "#/definitions/EcpVersion"
14
+ },
15
+ "workflow": {
16
+ "type": "object",
17
+ "properties": {
18
+ "id": {
19
+ "type": "string"
20
+ },
21
+ "label": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ "required": [
26
+ "id"
27
+ ],
28
+ "additionalProperties": false
29
+ },
30
+ "steps": {
31
+ "type": "array",
32
+ "items": {
33
+ "$ref": "#/definitions/WorkflowNode"
34
+ }
35
+ }
36
+ },
37
+ "required": [
38
+ "schema",
39
+ "version",
40
+ "workflow",
41
+ "steps"
42
+ ],
43
+ "additionalProperties": false,
44
+ "description": "Portable workflow manifest.",
45
+ "category": "Workflow"
46
+ },
47
+ "EcpVersion": {
48
+ "type": "string",
49
+ "description": "ECP semantic version literal.",
50
+ "category": "Common"
51
+ },
52
+ "WorkflowNode": {
53
+ "anyOf": [
54
+ {
55
+ "$ref": "#/definitions/StepNode"
56
+ },
57
+ {
58
+ "$ref": "#/definitions/ParallelNode"
59
+ },
60
+ {
61
+ "$ref": "#/definitions/BranchNode"
62
+ },
63
+ {
64
+ "$ref": "#/definitions/LoopNode"
65
+ }
66
+ ],
67
+ "description": "Workflow graph node union.",
68
+ "category": "Workflow"
69
+ },
70
+ "StepNode": {
71
+ "type": "object",
72
+ "properties": {
73
+ "type": {
74
+ "type": "string",
75
+ "const": "step"
76
+ },
77
+ "id": {
78
+ "type": "string"
79
+ },
80
+ "label": {
81
+ "type": "string"
82
+ },
83
+ "uses": {
84
+ "anyOf": [
85
+ {
86
+ "$ref": "#/definitions/CapabilityId"
87
+ },
88
+ {
89
+ "type": "string"
90
+ }
91
+ ]
92
+ },
93
+ "input": {
94
+ "type": "object",
95
+ "additionalProperties": {
96
+ "$ref": "#/definitions/InputValue"
97
+ }
98
+ },
99
+ "as": {
100
+ "type": "string",
101
+ "description": "State key for committed output (fluent `.as()`)."
102
+ },
103
+ "mode": {
104
+ "$ref": "#/definitions/CommitMode",
105
+ "description": "Commit mode when `as` is set (fluent `.as(key, { mode })`)."
106
+ },
107
+ "when": {
108
+ "$ref": "#/definitions/ExprValue"
109
+ }
110
+ },
111
+ "required": [
112
+ "id",
113
+ "uses"
114
+ ],
115
+ "additionalProperties": false,
116
+ "description": "Single capability step.",
117
+ "category": "Workflow"
118
+ },
119
+ "CapabilityId": {
120
+ "type": "string",
121
+ "description": "Capability id (`@namespace/name.capability`).",
122
+ "category": "Common"
123
+ },
124
+ "InputValue": {
125
+ "anyOf": [
126
+ {
127
+ "type": "string"
128
+ },
129
+ {
130
+ "type": "number"
131
+ },
132
+ {
133
+ "type": "boolean"
134
+ },
135
+ {
136
+ "type": "null"
137
+ },
138
+ {
139
+ "type": "array",
140
+ "items": {
141
+ "$ref": "#/definitions/InputValue"
142
+ }
143
+ },
144
+ {
145
+ "type": "object",
146
+ "additionalProperties": {
147
+ "$ref": "#/definitions/InputValue"
148
+ }
149
+ },
150
+ {
151
+ "$ref": "#/definitions/RefValue"
152
+ },
153
+ {
154
+ "$ref": "#/definitions/StateValue"
155
+ },
156
+ {
157
+ "$ref": "#/definitions/EnvValue"
158
+ },
159
+ {
160
+ "$ref": "#/definitions/SecretValue"
161
+ },
162
+ {
163
+ "$ref": "#/definitions/BrowserValue"
164
+ }
165
+ ],
166
+ "description": "Input value allowed in step config.",
167
+ "category": "Workflow"
168
+ },
169
+ "RefValue": {
170
+ "type": "object",
171
+ "properties": {
172
+ "$ref": {
173
+ "type": "string",
174
+ "description": "State path prefixed with `state.` in manifests."
175
+ },
176
+ "optional": {
177
+ "type": "boolean",
178
+ "description": "When true, missing state does not fail resolution."
179
+ },
180
+ "fallback": {
181
+ "description": "Fallback when optional ref is missing."
182
+ }
183
+ },
184
+ "required": [
185
+ "$ref"
186
+ ],
187
+ "additionalProperties": false,
188
+ "description": "Workflow reference to committed state.",
189
+ "category": "Workflow"
190
+ },
191
+ "StateValue": {
192
+ "type": "object",
193
+ "properties": {
194
+ "$state": {
195
+ "type": "string",
196
+ "description": "State path for staged mutations."
197
+ },
198
+ "optional": {
199
+ "type": "boolean"
200
+ },
201
+ "fallback": {}
202
+ },
203
+ "required": [
204
+ "$state"
205
+ ],
206
+ "additionalProperties": false,
207
+ "description": "Mutable state handle in step input.",
208
+ "category": "Workflow"
209
+ },
210
+ "EnvValue": {
211
+ "type": "object",
212
+ "properties": {
213
+ "$env": {
214
+ "type": "string"
215
+ },
216
+ "optional": {
217
+ "type": "boolean"
218
+ },
219
+ "fallback": {}
220
+ },
221
+ "required": [
222
+ "$env"
223
+ ],
224
+ "additionalProperties": false,
225
+ "description": "Environment config secret reference (not portable in workflows).",
226
+ "category": "Environment"
227
+ },
228
+ "SecretValue": {
229
+ "type": "object",
230
+ "properties": {
231
+ "$secret": {
232
+ "type": "string",
233
+ "description": "Logical key in the OS secrets store."
234
+ },
235
+ "optional": {
236
+ "type": "boolean",
237
+ "description": "When true, missing secret does not fail resolution."
238
+ },
239
+ "fallback": {
240
+ "description": "Fallback when optional secret is missing."
241
+ }
242
+ },
243
+ "required": [
244
+ "$secret"
245
+ ],
246
+ "additionalProperties": false,
247
+ "description": "OS secrets reference (not portable in workflows).",
248
+ "category": "Environment"
249
+ },
250
+ "BrowserValue": {
251
+ "type": "object",
252
+ "properties": {
253
+ "$browser": {
254
+ "type": "string",
255
+ "description": "Logical key in the browser secrets vault."
256
+ },
257
+ "optional": {
258
+ "type": "boolean",
259
+ "description": "When true, missing secret does not fail resolution."
260
+ },
261
+ "fallback": {
262
+ "description": "Fallback when optional secret is missing."
263
+ }
264
+ },
265
+ "required": [
266
+ "$browser"
267
+ ],
268
+ "additionalProperties": false,
269
+ "description": "Browser encrypted secrets reference (not portable in workflows).",
270
+ "category": "Environment"
271
+ },
272
+ "CommitMode": {
273
+ "type": "string",
274
+ "enum": [
275
+ "create",
276
+ "replace",
277
+ "merge",
278
+ "append",
279
+ "version"
280
+ ],
281
+ "description": "Commit mode for step output.",
282
+ "category": "Workflow"
283
+ },
284
+ "ExprValue": {
285
+ "anyOf": [
286
+ {
287
+ "type": "object",
288
+ "properties": {
289
+ "eq": {
290
+ "type": "array",
291
+ "minItems": 2,
292
+ "items": [
293
+ {
294
+ "type": "string"
295
+ },
296
+ {}
297
+ ],
298
+ "maxItems": 2
299
+ }
300
+ },
301
+ "required": [
302
+ "eq"
303
+ ],
304
+ "additionalProperties": false
305
+ },
306
+ {
307
+ "type": "object",
308
+ "properties": {
309
+ "neq": {
310
+ "type": "array",
311
+ "minItems": 2,
312
+ "items": [
313
+ {
314
+ "type": "string"
315
+ },
316
+ {}
317
+ ],
318
+ "maxItems": 2
319
+ }
320
+ },
321
+ "required": [
322
+ "neq"
323
+ ],
324
+ "additionalProperties": false
325
+ },
326
+ {
327
+ "type": "object",
328
+ "additionalProperties": {}
329
+ }
330
+ ],
331
+ "description": "Expression value in workflow conditions.",
332
+ "category": "Workflow"
333
+ },
334
+ "ParallelNode": {
335
+ "type": "object",
336
+ "properties": {
337
+ "type": {
338
+ "type": "string",
339
+ "const": "parallel"
340
+ },
341
+ "id": {
342
+ "type": "string"
343
+ },
344
+ "label": {
345
+ "type": "string"
346
+ },
347
+ "branches": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "array",
351
+ "items": {
352
+ "$ref": "#/definitions/WorkflowNode"
353
+ }
354
+ }
355
+ }
356
+ },
357
+ "required": [
358
+ "type",
359
+ "id",
360
+ "branches"
361
+ ],
362
+ "additionalProperties": false,
363
+ "description": "Parallel branches.",
364
+ "category": "Workflow"
365
+ },
366
+ "BranchNode": {
367
+ "type": "object",
368
+ "properties": {
369
+ "type": {
370
+ "type": "string",
371
+ "const": "branch"
372
+ },
373
+ "id": {
374
+ "type": "string"
375
+ },
376
+ "label": {
377
+ "type": "string"
378
+ },
379
+ "branches": {
380
+ "type": "array",
381
+ "items": {
382
+ "type": "object",
383
+ "properties": {
384
+ "label": {
385
+ "type": "string"
386
+ },
387
+ "when": {
388
+ "$ref": "#/definitions/ExprValue"
389
+ },
390
+ "steps": {
391
+ "type": "array",
392
+ "items": {
393
+ "$ref": "#/definitions/WorkflowNode"
394
+ }
395
+ }
396
+ },
397
+ "required": [
398
+ "when",
399
+ "steps"
400
+ ],
401
+ "additionalProperties": false
402
+ }
403
+ }
404
+ },
405
+ "required": [
406
+ "type",
407
+ "id",
408
+ "branches"
409
+ ],
410
+ "additionalProperties": false,
411
+ "description": "Conditional branches.",
412
+ "category": "Workflow"
413
+ },
414
+ "LoopNode": {
415
+ "type": "object",
416
+ "properties": {
417
+ "type": {
418
+ "type": "string",
419
+ "const": "loop"
420
+ },
421
+ "id": {
422
+ "type": "string"
423
+ },
424
+ "label": {
425
+ "type": "string"
426
+ },
427
+ "until": {
428
+ "$ref": "#/definitions/ExprValue"
429
+ },
430
+ "maxRounds": {
431
+ "type": "number"
432
+ },
433
+ "steps": {
434
+ "type": "array",
435
+ "items": {
436
+ "$ref": "#/definitions/WorkflowNode"
437
+ }
438
+ }
439
+ },
440
+ "required": [
441
+ "type",
442
+ "id",
443
+ "steps"
444
+ ],
445
+ "additionalProperties": false,
446
+ "description": "Loop until condition.",
447
+ "category": "Workflow"
448
+ }
449
+ },
450
+ "$id": "https://ecp.dev/schemas/workflow.manifest.json"
451
+ }
@@ -0,0 +1,30 @@
1
+ /** Staged store mutation during capability execution. @category Runtime */
2
+ export interface PendingMutation {
3
+ id: string;
4
+ op: "set" | "replace" | "merge" | "append";
5
+ path: string;
6
+ value: unknown;
7
+ reason?: string;
8
+ metadata?: Record<string, unknown>;
9
+ status: "pending";
10
+ }
11
+ /** Committed or denied mutation record. @category Runtime */
12
+ export interface MutationRecord {
13
+ id: string;
14
+ op: "set" | "replace" | "merge" | "append";
15
+ path: string;
16
+ before: unknown;
17
+ after: unknown;
18
+ reason?: string;
19
+ metadata?: Record<string, unknown>;
20
+ status: "committed" | "denied" | "discarded" | "failed";
21
+ stepId: string;
22
+ capability: string;
23
+ timestamp: string;
24
+ }
25
+ /** Opaque mutable state handle from `state()`. @category Workflow */
26
+ export interface StoreStateHandle<T = unknown> {
27
+ readonly path: string;
28
+ readonly __brand: T;
29
+ }
30
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CACpB"}
package/dist/store.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type { EcpVersion } from "./version.js";
2
+ /** Validation issue severity. @category Validation */
3
+ export type ValidationSeverity = "error" | "warning" | "info";
4
+ /** Single validation issue. @category Validation */
5
+ export interface ValidationIssue {
6
+ code: string;
7
+ message: string;
8
+ path?: string;
9
+ suggestions?: string[];
10
+ severity?: ValidationSeverity;
11
+ }
12
+ /** Validation result document. @category Validation */
13
+ export interface ValidationResult {
14
+ schema: "@executioncontrolprotocol.validation.result";
15
+ version: EcpVersion;
16
+ valid: boolean;
17
+ errors: ValidationIssue[];
18
+ warnings: ValidationIssue[];
19
+ }
20
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAE7D,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;CAC9B;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,6CAA6C,CAAA;IACrD,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /** Current ECP manifest version string. @category Common */
2
+ export declare const LATEST_ECP_VERSION: "1.0";
3
+ /** ECP semantic version literal. @category Common */
4
+ export type EcpVersion = `${number}.${number}`;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,EAAG,KAAc,CAAA;AAEhD,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Current ECP manifest version string. @category Common */
2
+ export const LATEST_ECP_VERSION = "1.0";
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAc,CAAA"}
@@ -0,0 +1,55 @@
1
+ import type { CapabilityId, CommitMode, ExprValue, InputValue } from "./schema.js";
2
+ import type { EcpVersion } from "./version.js";
3
+ /** Portable workflow manifest. @category Workflow */
4
+ export interface WorkflowManifest {
5
+ schema: "@executioncontrolprotocol.workflow";
6
+ version: EcpVersion;
7
+ workflow: {
8
+ id: string;
9
+ label?: string;
10
+ };
11
+ steps: WorkflowNode[];
12
+ }
13
+ /** Workflow graph node union. @category Workflow */
14
+ export type WorkflowNode = StepNode | ParallelNode | BranchNode | LoopNode;
15
+ /** Single capability step. @category Workflow */
16
+ export interface StepNode {
17
+ type?: "step";
18
+ id: string;
19
+ label?: string;
20
+ uses: CapabilityId | string;
21
+ input?: Record<string, InputValue>;
22
+ /** State key for committed output (fluent `.as()`). */
23
+ as?: string;
24
+ /** Commit mode when `as` is set (fluent `.as(key, { mode })`). */
25
+ mode?: CommitMode;
26
+ when?: ExprValue;
27
+ }
28
+ /** Parallel branches. @category Workflow */
29
+ export interface ParallelNode {
30
+ type: "parallel";
31
+ id: string;
32
+ label?: string;
33
+ branches: WorkflowNode[][];
34
+ }
35
+ /** Conditional branches. @category Workflow */
36
+ export interface BranchNode {
37
+ type: "branch";
38
+ id: string;
39
+ label?: string;
40
+ branches: Array<{
41
+ label?: string;
42
+ when: ExprValue;
43
+ steps: WorkflowNode[];
44
+ }>;
45
+ }
46
+ /** Loop until condition. @category Workflow */
47
+ export interface LoopNode {
48
+ type: "loop";
49
+ id: string;
50
+ label?: string;
51
+ until?: ExprValue;
52
+ maxRounds?: number;
53
+ steps: WorkflowNode[];
54
+ }
55
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,oCAAoC,CAAA;IAC5C,OAAO,EAAE,UAAU,CAAA;IACnB,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB;AAED,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAA;AAE1E,iDAAiD;AACjD,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,GAAG,MAAM,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAClC,uDAAuD;IACvD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,kEAAkE;IAClE,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAA;CAC3B;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,SAAS,CAAA;QACf,KAAK,EAAE,YAAY,EAAE,CAAA;KACtB,CAAC,CAAA;CACH;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB"}