graphenix-format 1.3.0 → 1.4.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 +322 -320
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/interop-worox-graph.md +4 -1
- package/package.json +1 -1
- package/schema/graphenix-format-1.0.0.schema.json +529 -491
|
@@ -1,491 +1,529 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://graphenix.dev/schema/graphenix-format-1.0.0.json",
|
|
4
|
-
"title": "Graphenix Format 1.0.0",
|
|
5
|
-
"description": "JSON Schema for the Graphenix graph description format (version 1.0.0). Execution semantics are out of scope.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": ["formatVersion", "id", "graph"],
|
|
8
|
-
"additionalProperties": false,
|
|
9
|
-
"properties": {
|
|
10
|
-
"formatVersion": {
|
|
11
|
-
"type": "string",
|
|
12
|
-
"description": "Semantic version of the graphenix-format used by this document (e.g. 1.0.0)."
|
|
13
|
-
},
|
|
14
|
-
"id": {
|
|
15
|
-
"type": "string",
|
|
16
|
-
"description": "Globally unique identifier for this graph within the system."
|
|
17
|
-
},
|
|
18
|
-
"name": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"description": "Human-readable name for the graph."
|
|
21
|
-
},
|
|
22
|
-
"description": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"description": "Free-form description of the graph."
|
|
25
|
-
},
|
|
26
|
-
"tags": {
|
|
27
|
-
"type": "array",
|
|
28
|
-
"items": {
|
|
29
|
-
"type": "string"
|
|
30
|
-
},
|
|
31
|
-
"description": "Tags for classification, search, and filtering."
|
|
32
|
-
},
|
|
33
|
-
"graph": {
|
|
34
|
-
"$ref": "#/$defs/Graph"
|
|
35
|
-
},
|
|
36
|
-
"types": {
|
|
37
|
-
"type": "array",
|
|
38
|
-
"items": {
|
|
39
|
-
"$ref": "#/$defs/TypeDefinition"
|
|
40
|
-
},
|
|
41
|
-
"description": "Custom logical types referenced by nodes and ports."
|
|
42
|
-
},
|
|
43
|
-
"subgraphs": {
|
|
44
|
-
"type": "array",
|
|
45
|
-
"items": {
|
|
46
|
-
"$ref": "#/$defs/SubgraphDefinition"
|
|
47
|
-
},
|
|
48
|
-
"description": "Inlined reusable graphs."
|
|
49
|
-
},
|
|
50
|
-
"extensions": {
|
|
51
|
-
"type": "object",
|
|
52
|
-
"description": "Namespaced extension object. Engines that do not recognize an extension namespace must ignore it.",
|
|
53
|
-
"additionalProperties": true
|
|
54
|
-
},
|
|
55
|
-
"metadata": {
|
|
56
|
-
"type": "object",
|
|
57
|
-
"description": "Optional document metadata. `graphEntry` and `graphResponse` align with worox-graph graph JSON contracts (I/O layers 01 and 08)
|
|
58
|
-
"additionalProperties": true,
|
|
59
|
-
"properties": {
|
|
60
|
-
"graphEntry": {
|
|
61
|
-
"$ref": "#/$defs/GraphEntryContract"
|
|
62
|
-
},
|
|
63
|
-
"graphResponse": {
|
|
64
|
-
"$ref": "#/$defs/GraphResponseContract"
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
"
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
"
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
"
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
"
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
"
|
|
209
|
-
"type": "string",
|
|
210
|
-
"description": "
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
"
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
"
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
"
|
|
239
|
-
"
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
"
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
"
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
"
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
"
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
"
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
"
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
"
|
|
305
|
-
"
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
"
|
|
325
|
-
"
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
"
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
"
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
"
|
|
355
|
-
"type": "
|
|
356
|
-
"
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
"
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
"
|
|
374
|
-
},
|
|
375
|
-
"
|
|
376
|
-
"type": "
|
|
377
|
-
"
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
"
|
|
387
|
-
"type": "
|
|
388
|
-
"
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
"
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
"
|
|
403
|
-
},
|
|
404
|
-
"
|
|
405
|
-
"type": "
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
"
|
|
414
|
-
},
|
|
415
|
-
{
|
|
416
|
-
"
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
"
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
"
|
|
440
|
-
"type": "
|
|
441
|
-
"
|
|
442
|
-
},
|
|
443
|
-
"
|
|
444
|
-
"type": "
|
|
445
|
-
"
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
"
|
|
455
|
-
"type": "
|
|
456
|
-
"
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
"
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
"
|
|
481
|
-
"
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://graphenix.dev/schema/graphenix-format-1.0.0.json",
|
|
4
|
+
"title": "Graphenix Format 1.0.0",
|
|
5
|
+
"description": "JSON Schema for the Graphenix graph description format (version 1.0.0). Execution semantics are out of scope.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["formatVersion", "id", "graph"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"formatVersion": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Semantic version of the graphenix-format used by this document (e.g. 1.0.0)."
|
|
13
|
+
},
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Globally unique identifier for this graph within the system."
|
|
17
|
+
},
|
|
18
|
+
"name": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Human-readable name for the graph."
|
|
21
|
+
},
|
|
22
|
+
"description": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Free-form description of the graph."
|
|
25
|
+
},
|
|
26
|
+
"tags": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"description": "Tags for classification, search, and filtering."
|
|
32
|
+
},
|
|
33
|
+
"graph": {
|
|
34
|
+
"$ref": "#/$defs/Graph"
|
|
35
|
+
},
|
|
36
|
+
"types": {
|
|
37
|
+
"type": "array",
|
|
38
|
+
"items": {
|
|
39
|
+
"$ref": "#/$defs/TypeDefinition"
|
|
40
|
+
},
|
|
41
|
+
"description": "Custom logical types referenced by nodes and ports."
|
|
42
|
+
},
|
|
43
|
+
"subgraphs": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": {
|
|
46
|
+
"$ref": "#/$defs/SubgraphDefinition"
|
|
47
|
+
},
|
|
48
|
+
"description": "Inlined reusable graphs."
|
|
49
|
+
},
|
|
50
|
+
"extensions": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"description": "Namespaced extension object. Engines that do not recognize an extension namespace must ignore it.",
|
|
53
|
+
"additionalProperties": true
|
|
54
|
+
},
|
|
55
|
+
"metadata": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"description": "Optional document metadata. `graphEntry` and `graphResponse` align with worox-graph graph JSON contracts (I/O layers 01 and 08). Optional `catalogRequests` is planning-only (worox-graph). Other keys are allowed for tooling.",
|
|
58
|
+
"additionalProperties": true,
|
|
59
|
+
"properties": {
|
|
60
|
+
"graphEntry": {
|
|
61
|
+
"$ref": "#/$defs/GraphEntryContract"
|
|
62
|
+
},
|
|
63
|
+
"graphResponse": {
|
|
64
|
+
"$ref": "#/$defs/GraphResponseContract"
|
|
65
|
+
},
|
|
66
|
+
"catalogRequests": {
|
|
67
|
+
"$ref": "#/$defs/WoroxCatalogRequests"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"$defs": {
|
|
73
|
+
"Graph": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"required": ["nodes", "edges", "inputs", "outputs"],
|
|
76
|
+
"additionalProperties": false,
|
|
77
|
+
"properties": {
|
|
78
|
+
"nodes": {
|
|
79
|
+
"type": "array",
|
|
80
|
+
"items": {
|
|
81
|
+
"$ref": "#/$defs/Node"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"edges": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"items": {
|
|
87
|
+
"$ref": "#/$defs/Edge"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"inputs": {
|
|
91
|
+
"type": "array",
|
|
92
|
+
"items": {
|
|
93
|
+
"$ref": "#/$defs/GraphInput"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"outputs": {
|
|
97
|
+
"type": "array",
|
|
98
|
+
"items": {
|
|
99
|
+
"$ref": "#/$defs/GraphOutput"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"metadata": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"description": "Arbitrary metadata not affecting execution semantics.",
|
|
105
|
+
"additionalProperties": true
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"Node": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"required": ["id", "kind"],
|
|
112
|
+
"additionalProperties": false,
|
|
113
|
+
"properties": {
|
|
114
|
+
"id": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"description": "Unique identifier within the containing graph."
|
|
117
|
+
},
|
|
118
|
+
"name": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"description": "Human-readable name for UIs and logs."
|
|
121
|
+
},
|
|
122
|
+
"kind": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"description": "Logical type of node determining how the executor interprets it (e.g. builtin:map, task:http-request, subgraph:graph:user-validation)."
|
|
125
|
+
},
|
|
126
|
+
"inputs": {
|
|
127
|
+
"type": "array",
|
|
128
|
+
"items": {
|
|
129
|
+
"$ref": "#/$defs/PortDefinition"
|
|
130
|
+
},
|
|
131
|
+
"default": []
|
|
132
|
+
},
|
|
133
|
+
"outputs": {
|
|
134
|
+
"type": "array",
|
|
135
|
+
"items": {
|
|
136
|
+
"$ref": "#/$defs/PortDefinition"
|
|
137
|
+
},
|
|
138
|
+
"default": []
|
|
139
|
+
},
|
|
140
|
+
"parameters": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"description": "Static configuration for the node. Interpretation is executor-specific based on kind.",
|
|
143
|
+
"additionalProperties": true,
|
|
144
|
+
"default": {}
|
|
145
|
+
},
|
|
146
|
+
"metadata": {
|
|
147
|
+
"type": "object",
|
|
148
|
+
"description": "Arbitrary metadata not affecting execution semantics (e.g. UI position). Worox-graph task nodes may use planning-only `catalogBinding` / `catalogRequest` (execution unchanged).",
|
|
149
|
+
"additionalProperties": true,
|
|
150
|
+
"properties": {
|
|
151
|
+
"catalogBinding": {
|
|
152
|
+
"$ref": "#/$defs/WoroxCatalogBinding"
|
|
153
|
+
},
|
|
154
|
+
"catalogRequest": {
|
|
155
|
+
"$ref": "#/$defs/WoroxCatalogRequest"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"extensions": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"description": "Namespaced extension data.",
|
|
162
|
+
"additionalProperties": true
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"PortDefinition": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"required": ["id", "direction", "type"],
|
|
169
|
+
"additionalProperties": false,
|
|
170
|
+
"properties": {
|
|
171
|
+
"id": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"description": "Unique identifier within the node."
|
|
174
|
+
},
|
|
175
|
+
"name": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"description": "Human-readable label."
|
|
178
|
+
},
|
|
179
|
+
"direction": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"enum": ["input", "output"],
|
|
182
|
+
"description": "Direction of data flow."
|
|
183
|
+
},
|
|
184
|
+
"type": {
|
|
185
|
+
"type": "string",
|
|
186
|
+
"description": "Type identifier (built-in type or custom type id)."
|
|
187
|
+
},
|
|
188
|
+
"required": {
|
|
189
|
+
"type": "boolean",
|
|
190
|
+
"description": "Indicates if a value must be present for the node to execute.",
|
|
191
|
+
"default": false
|
|
192
|
+
},
|
|
193
|
+
"default": {
|
|
194
|
+
"description": "Default value when no incoming edge provides one. Must be compatible with the declared type.",
|
|
195
|
+
"type": ["string", "number", "boolean", "array", "object", "null"]
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"EdgeEndpoint": {
|
|
200
|
+
"type": "object",
|
|
201
|
+
"required": ["nodeId", "portId"],
|
|
202
|
+
"additionalProperties": false,
|
|
203
|
+
"properties": {
|
|
204
|
+
"nodeId": {
|
|
205
|
+
"type": "string",
|
|
206
|
+
"description": "ID of the node."
|
|
207
|
+
},
|
|
208
|
+
"portId": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "ID of the port on the referenced node."
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"Edge": {
|
|
215
|
+
"type": "object",
|
|
216
|
+
"required": ["id", "from", "to"],
|
|
217
|
+
"additionalProperties": false,
|
|
218
|
+
"properties": {
|
|
219
|
+
"id": {
|
|
220
|
+
"type": "string",
|
|
221
|
+
"description": "Unique identifier within the graph."
|
|
222
|
+
},
|
|
223
|
+
"from": {
|
|
224
|
+
"$ref": "#/$defs/EdgeEndpoint",
|
|
225
|
+
"description": "Source of the edge; must reference an existing node/output port."
|
|
226
|
+
},
|
|
227
|
+
"to": {
|
|
228
|
+
"$ref": "#/$defs/EdgeEndpoint",
|
|
229
|
+
"description": "Target of the edge; must reference an existing node/input port."
|
|
230
|
+
},
|
|
231
|
+
"metadata": {
|
|
232
|
+
"type": "object",
|
|
233
|
+
"description": "Metadata not affecting execution (e.g. edge label in UI).",
|
|
234
|
+
"additionalProperties": true
|
|
235
|
+
},
|
|
236
|
+
"extensions": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"description": "Namespaced extension data.",
|
|
239
|
+
"additionalProperties": true
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"GraphInput": {
|
|
244
|
+
"type": "object",
|
|
245
|
+
"required": ["id", "type", "target"],
|
|
246
|
+
"additionalProperties": false,
|
|
247
|
+
"properties": {
|
|
248
|
+
"id": {
|
|
249
|
+
"type": "string",
|
|
250
|
+
"description": "Unique identifier within the graph."
|
|
251
|
+
},
|
|
252
|
+
"name": {
|
|
253
|
+
"type": "string",
|
|
254
|
+
"description": "Human-readable name."
|
|
255
|
+
},
|
|
256
|
+
"type": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"description": "Logical type identifier for the external input."
|
|
259
|
+
},
|
|
260
|
+
"target": {
|
|
261
|
+
"$ref": "#/$defs/EdgeEndpoint",
|
|
262
|
+
"description": "Node and input port that consume this graph input."
|
|
263
|
+
},
|
|
264
|
+
"metadata": {
|
|
265
|
+
"type": "object",
|
|
266
|
+
"description": "Metadata not affecting execution.",
|
|
267
|
+
"additionalProperties": true
|
|
268
|
+
},
|
|
269
|
+
"extensions": {
|
|
270
|
+
"type": "object",
|
|
271
|
+
"description": "Namespaced extension data.",
|
|
272
|
+
"additionalProperties": true
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"GraphOutput": {
|
|
277
|
+
"type": "object",
|
|
278
|
+
"required": ["id", "type", "source"],
|
|
279
|
+
"additionalProperties": false,
|
|
280
|
+
"properties": {
|
|
281
|
+
"id": {
|
|
282
|
+
"type": "string",
|
|
283
|
+
"description": "Unique identifier within the graph."
|
|
284
|
+
},
|
|
285
|
+
"name": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"description": "Human-readable name."
|
|
288
|
+
},
|
|
289
|
+
"type": {
|
|
290
|
+
"type": "string",
|
|
291
|
+
"description": "Logical type identifier for the external output."
|
|
292
|
+
},
|
|
293
|
+
"source": {
|
|
294
|
+
"$ref": "#/$defs/EdgeEndpoint",
|
|
295
|
+
"description": "Node and output port that provide this graph output."
|
|
296
|
+
},
|
|
297
|
+
"metadata": {
|
|
298
|
+
"type": "object",
|
|
299
|
+
"description": "Metadata not affecting execution.",
|
|
300
|
+
"additionalProperties": true
|
|
301
|
+
},
|
|
302
|
+
"extensions": {
|
|
303
|
+
"type": "object",
|
|
304
|
+
"description": "Namespaced extension data.",
|
|
305
|
+
"additionalProperties": true
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"TypeField": {
|
|
310
|
+
"type": "object",
|
|
311
|
+
"required": ["name", "type"],
|
|
312
|
+
"additionalProperties": false,
|
|
313
|
+
"properties": {
|
|
314
|
+
"name": {
|
|
315
|
+
"type": "string",
|
|
316
|
+
"description": "Field name."
|
|
317
|
+
},
|
|
318
|
+
"type": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"description": "Type identifier for the field (built-in or custom)."
|
|
321
|
+
},
|
|
322
|
+
"required": {
|
|
323
|
+
"type": "boolean",
|
|
324
|
+
"description": "Whether this field must be present.",
|
|
325
|
+
"default": false
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"TypeObject": {
|
|
330
|
+
"type": "object",
|
|
331
|
+
"required": ["id", "kind", "fields"],
|
|
332
|
+
"additionalProperties": false,
|
|
333
|
+
"properties": {
|
|
334
|
+
"id": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"description": "Unique type identifier (e.g. type:User)."
|
|
337
|
+
},
|
|
338
|
+
"kind": {
|
|
339
|
+
"const": "object"
|
|
340
|
+
},
|
|
341
|
+
"description": {
|
|
342
|
+
"type": "string"
|
|
343
|
+
},
|
|
344
|
+
"fields": {
|
|
345
|
+
"type": "array",
|
|
346
|
+
"items": {
|
|
347
|
+
"$ref": "#/$defs/TypeField"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
"metadata": {
|
|
351
|
+
"type": "object",
|
|
352
|
+
"additionalProperties": true
|
|
353
|
+
},
|
|
354
|
+
"extensions": {
|
|
355
|
+
"type": "object",
|
|
356
|
+
"additionalProperties": true
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"TypeUnion": {
|
|
361
|
+
"type": "object",
|
|
362
|
+
"required": ["id", "kind", "options"],
|
|
363
|
+
"additionalProperties": false,
|
|
364
|
+
"properties": {
|
|
365
|
+
"id": {
|
|
366
|
+
"type": "string",
|
|
367
|
+
"description": "Unique type identifier."
|
|
368
|
+
},
|
|
369
|
+
"kind": {
|
|
370
|
+
"const": "union"
|
|
371
|
+
},
|
|
372
|
+
"description": {
|
|
373
|
+
"type": "string"
|
|
374
|
+
},
|
|
375
|
+
"options": {
|
|
376
|
+
"type": "array",
|
|
377
|
+
"items": {
|
|
378
|
+
"type": "string"
|
|
379
|
+
},
|
|
380
|
+
"description": "Array of type IDs or built-in types."
|
|
381
|
+
},
|
|
382
|
+
"metadata": {
|
|
383
|
+
"type": "object",
|
|
384
|
+
"additionalProperties": true
|
|
385
|
+
},
|
|
386
|
+
"extensions": {
|
|
387
|
+
"type": "object",
|
|
388
|
+
"additionalProperties": true
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
"TypeAlias": {
|
|
393
|
+
"type": "object",
|
|
394
|
+
"required": ["id", "kind", "target"],
|
|
395
|
+
"additionalProperties": false,
|
|
396
|
+
"properties": {
|
|
397
|
+
"id": {
|
|
398
|
+
"type": "string",
|
|
399
|
+
"description": "Unique type identifier."
|
|
400
|
+
},
|
|
401
|
+
"kind": {
|
|
402
|
+
"const": "alias"
|
|
403
|
+
},
|
|
404
|
+
"description": {
|
|
405
|
+
"type": "string"
|
|
406
|
+
},
|
|
407
|
+
"target": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"description": "Type ID (or built-in) this type refers to."
|
|
410
|
+
},
|
|
411
|
+
"metadata": {
|
|
412
|
+
"type": "object",
|
|
413
|
+
"additionalProperties": true
|
|
414
|
+
},
|
|
415
|
+
"extensions": {
|
|
416
|
+
"type": "object",
|
|
417
|
+
"additionalProperties": true
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
"TypeDefinition": {
|
|
422
|
+
"oneOf": [
|
|
423
|
+
{
|
|
424
|
+
"$ref": "#/$defs/TypeObject"
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"$ref": "#/$defs/TypeUnion"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"$ref": "#/$defs/TypeAlias"
|
|
431
|
+
}
|
|
432
|
+
]
|
|
433
|
+
},
|
|
434
|
+
"SubgraphDefinition": {
|
|
435
|
+
"type": "object",
|
|
436
|
+
"required": ["id", "graph"],
|
|
437
|
+
"additionalProperties": false,
|
|
438
|
+
"properties": {
|
|
439
|
+
"id": {
|
|
440
|
+
"type": "string",
|
|
441
|
+
"description": "Unique identifier for the subgraph within the document."
|
|
442
|
+
},
|
|
443
|
+
"name": {
|
|
444
|
+
"type": "string",
|
|
445
|
+
"description": "Human-readable name for the subgraph."
|
|
446
|
+
},
|
|
447
|
+
"graph": {
|
|
448
|
+
"$ref": "#/$defs/Graph"
|
|
449
|
+
},
|
|
450
|
+
"metadata": {
|
|
451
|
+
"type": "object",
|
|
452
|
+
"additionalProperties": true
|
|
453
|
+
},
|
|
454
|
+
"extensions": {
|
|
455
|
+
"type": "object",
|
|
456
|
+
"additionalProperties": true
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
"GraphEntryContract": {
|
|
461
|
+
"type": "object",
|
|
462
|
+
"description": "Worox-graph entry contract: execution inputs and paths (layer 01). Additional properties may be added by worox-graph.",
|
|
463
|
+
"additionalProperties": true,
|
|
464
|
+
"properties": {
|
|
465
|
+
"summary": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"description": "Human-readable summary of entry expectations."
|
|
468
|
+
},
|
|
469
|
+
"requiredExecutionPaths": {
|
|
470
|
+
"type": "array",
|
|
471
|
+
"description": "Descriptors for execution paths that must be satisfied (engine-specific item shape).",
|
|
472
|
+
"items": {}
|
|
473
|
+
},
|
|
474
|
+
"executionSchema": {
|
|
475
|
+
"type": "object",
|
|
476
|
+
"description": "JSON Schema for the merged execution object (tooling validates at runtime when enabled)."
|
|
477
|
+
},
|
|
478
|
+
"notableExecutionPaths": {
|
|
479
|
+
"type": "array",
|
|
480
|
+
"description": "Notable optional or diagnostic execution paths.",
|
|
481
|
+
"items": {}
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
},
|
|
485
|
+
"GraphResponseContract": {
|
|
486
|
+
"type": "object",
|
|
487
|
+
"description": "Worox-graph response contract: final output shape (layer 08). Additional properties may be added by worox-graph.",
|
|
488
|
+
"additionalProperties": true,
|
|
489
|
+
"properties": {
|
|
490
|
+
"summary": {
|
|
491
|
+
"type": "string",
|
|
492
|
+
"description": "Human-readable summary of the response / final output."
|
|
493
|
+
},
|
|
494
|
+
"finalOutputSchema": {
|
|
495
|
+
"type": "object",
|
|
496
|
+
"description": "JSON Schema for the final output value (tooling validates at runtime when enabled)."
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
"WoroxCatalogRequest": {
|
|
501
|
+
"type": "object",
|
|
502
|
+
"description": "Planning-only catalog request on a worox-graph task node (`node.metadata.catalogRequest`). Execution is unchanged. Canonical field set: `@woroces/worox-graph` `refs.ts`.",
|
|
503
|
+
"additionalProperties": true
|
|
504
|
+
},
|
|
505
|
+
"WoroxCatalogBinding": {
|
|
506
|
+
"type": "object",
|
|
507
|
+
"description": "Planning-only catalog binding on a worox-graph task node (`node.metadata.catalogBinding`). Execution is unchanged. Canonical field set: `@woroces/worox-graph` `refs.ts`.",
|
|
508
|
+
"additionalProperties": true
|
|
509
|
+
},
|
|
510
|
+
"WoroxCatalogRequests": {
|
|
511
|
+
"description": "Planning-only document-level catalog requests (`metadata.catalogRequests` on worox graph JSON). Execution is unchanged. Shape may be a list or a map; see `@woroces/worox-graph` `refs.ts`.",
|
|
512
|
+
"oneOf": [
|
|
513
|
+
{
|
|
514
|
+
"type": "array",
|
|
515
|
+
"items": {
|
|
516
|
+
"$ref": "#/$defs/WoroxCatalogRequest"
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"type": "object",
|
|
521
|
+
"additionalProperties": {
|
|
522
|
+
"$ref": "#/$defs/WoroxCatalogRequest"
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
]
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
|