@requence/task 0.7.1 → 0.8.2-edge.1149

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 (95) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +5 -5
  3. package/build/{chunk-b4h2we9a.js → chunk-f7g9gsa0.js} +33 -3
  4. package/build/chunk-f7g9gsa0.js.map +11 -0
  5. package/build/cli.js +18 -8
  6. package/build/cli.js.map +3 -3
  7. package/build/index.js +1062 -502
  8. package/build/index.js.map +27 -16
  9. package/build/types/helpers/src/index.d.ts +8 -2
  10. package/build/types/helpers/src/index.d.ts.map +1 -1
  11. package/build/types/helpers/src/jsonschema/validate.d.ts +1 -5
  12. package/build/types/helpers/src/jsonschema/validate.d.ts.map +1 -1
  13. package/build/types/helpers/src/jsonschema/zod.d.ts +11 -1
  14. package/build/types/helpers/src/jsonschema/zod.d.ts.map +1 -1
  15. package/build/types/helpers/src/protocol/NodeTree.d.ts +532 -148
  16. package/build/types/helpers/src/protocol/NodeTree.d.ts.map +1 -1
  17. package/build/types/helpers/src/protocol/clientProperties.d.ts +66 -0
  18. package/build/types/helpers/src/protocol/clientProperties.d.ts.map +1 -0
  19. package/build/types/helpers/src/protocol/command.d.ts +372 -142
  20. package/build/types/helpers/src/protocol/command.d.ts.map +1 -1
  21. package/build/types/helpers/src/protocol/configurationScript.d.ts +10 -0
  22. package/build/types/helpers/src/protocol/configurationScript.d.ts.map +1 -0
  23. package/build/types/helpers/src/protocol/helpers.d.ts.map +1 -1
  24. package/build/types/helpers/src/protocol/index.d.ts +5 -0
  25. package/build/types/helpers/src/protocol/index.d.ts.map +1 -1
  26. package/build/types/helpers/src/protocol/logicLanguages.d.ts +19 -0
  27. package/build/types/helpers/src/protocol/logicLanguages.d.ts.map +1 -0
  28. package/build/types/helpers/src/protocol/loopDetection.d.ts +23 -0
  29. package/build/types/helpers/src/protocol/loopDetection.d.ts.map +1 -0
  30. package/build/types/helpers/src/protocol/nodeType.d.ts +81 -27
  31. package/build/types/helpers/src/protocol/nodeType.d.ts.map +1 -1
  32. package/build/types/helpers/src/protocol/taskOptions.d.ts +4 -1
  33. package/build/types/helpers/src/protocol/taskOptions.d.ts.map +1 -1
  34. package/build/types/helpers/src/protocol/templateNodeTypes.d.ts +36 -20
  35. package/build/types/helpers/src/protocol/templateNodeTypes.d.ts.map +1 -1
  36. package/build/types/helpers/src/protocol/treeNodes.d.ts +508 -164
  37. package/build/types/helpers/src/protocol/treeNodes.d.ts.map +1 -1
  38. package/build/types/helpers/src/protocol/update.d.ts +40 -24
  39. package/build/types/helpers/src/protocol/update.d.ts.map +1 -1
  40. package/build/types/helpers/src/protocol/validateTreeStructure.d.ts +22 -0
  41. package/build/types/helpers/src/protocol/validateTreeStructure.d.ts.map +1 -0
  42. package/build/types/helpers/src/utils/amqpHeartbeat.d.ts +3 -0
  43. package/build/types/helpers/src/utils/amqpHeartbeat.d.ts.map +1 -0
  44. package/build/types/helpers/src/utils/amqpPublishRetry.d.ts +45 -0
  45. package/build/types/helpers/src/utils/amqpPublishRetry.d.ts.map +1 -0
  46. package/build/types/helpers/src/utils/claimCheckObject.d.ts +40 -0
  47. package/build/types/helpers/src/utils/claimCheckObject.d.ts.map +1 -0
  48. package/build/types/helpers/src/utils/debounce.d.ts.map +1 -1
  49. package/build/types/helpers/src/{files → utils}/fileObject.d.ts.map +1 -1
  50. package/build/types/helpers/src/{files → utils}/isValidMimeType.d.ts.map +1 -1
  51. package/build/types/helpers/src/utils/mapData.d.ts +1 -1
  52. package/build/types/helpers/src/utils/mapData.d.ts.map +1 -1
  53. package/build/types/helpers/src/{files → utils}/streamObject.d.ts.map +1 -1
  54. package/build/types/helpers/src/utils/variableRef.d.ts +19 -0
  55. package/build/types/helpers/src/utils/variableRef.d.ts.map +1 -0
  56. package/build/types/helpers/src/utils/variableScriptPatterns.d.ts +125 -0
  57. package/build/types/helpers/src/utils/variableScriptPatterns.d.ts.map +1 -0
  58. package/build/types/task/src/abortTask.d.ts.map +1 -1
  59. package/build/types/task/src/ackTask.d.ts.map +1 -1
  60. package/build/types/task/src/createTask.d.ts +0 -1
  61. package/build/types/task/src/createTask.d.ts.map +1 -1
  62. package/build/types/task/src/errors.d.ts +27 -0
  63. package/build/types/task/src/errors.d.ts.map +1 -0
  64. package/build/types/task/src/getTask.d.ts +4 -4
  65. package/build/types/task/src/getTask.d.ts.map +1 -1
  66. package/build/types/task/src/index.d.ts +2 -1
  67. package/build/types/task/src/index.d.ts.map +1 -1
  68. package/build/types/task/src/ingress.d.ts +26 -0
  69. package/build/types/task/src/ingress.d.ts.map +1 -0
  70. package/build/types/task/src/protectTask.d.ts.map +1 -1
  71. package/build/types/task/src/recreateTask.d.ts +1 -1
  72. package/build/types/task/src/recreateTask.d.ts.map +1 -1
  73. package/build/types/task/src/types.d.ts +10 -10
  74. package/build/types/task/src/utils/getAccessToken.d.ts.map +1 -1
  75. package/build/types/task/src/watchTasks.d.ts +2 -0
  76. package/build/types/task/src/watchTasks.d.ts.map +1 -1
  77. package/package.json +7 -3
  78. package/build/chunk-b4h2we9a.js.map +0 -10
  79. package/build/types/helpers/src/files/RequenceFile.d.ts +0 -40
  80. package/build/types/helpers/src/files/RequenceFile.d.ts.map +0 -1
  81. package/build/types/helpers/src/files/RequenceStream.d.ts +0 -32
  82. package/build/types/helpers/src/files/RequenceStream.d.ts.map +0 -1
  83. package/build/types/helpers/src/files/index.d.ts +0 -7
  84. package/build/types/helpers/src/files/index.d.ts.map +0 -1
  85. package/build/types/helpers/src/files/mapOutput.d.ts +0 -10
  86. package/build/types/helpers/src/files/mapOutput.d.ts.map +0 -1
  87. package/build/types/helpers/src/files/types.d.ts +0 -4
  88. package/build/types/helpers/src/files/types.d.ts.map +0 -1
  89. package/build/types/helpers/src/utils/createObjectProxy.d.ts +0 -2
  90. package/build/types/helpers/src/utils/createObjectProxy.d.ts.map +0 -1
  91. package/build/types/helpers/src/utils/resolveRequenceTypes.d.ts +0 -8
  92. package/build/types/helpers/src/utils/resolveRequenceTypes.d.ts.map +0 -1
  93. /package/build/types/helpers/src/{files → utils}/fileObject.d.ts +0 -0
  94. /package/build/types/helpers/src/{files → utils}/isValidMimeType.d.ts +0 -0
  95. /package/build/types/helpers/src/{files → utils}/streamObject.d.ts +0 -0
@@ -13,7 +13,7 @@ type CriticalGroup = {
13
13
  nodeId: string;
14
14
  name: OutputName;
15
15
  }[];
16
- type DataSet = {
16
+ export type DataSet = {
17
17
  data: unknown;
18
18
  overwrite: boolean;
19
19
  time: number;
@@ -27,6 +27,20 @@ export declare class NodeTree {
27
27
  private edges;
28
28
  private data;
29
29
  private overriddenNodeData;
30
+ /**
31
+ * Payload ids whose own storage field is durable (issue #118). `this.data` is
32
+ * write-once — a fresh UUID per write, an explicit delete to drop one — so the
33
+ * difference against it is exactly what a write has to carry, and a
34
+ * steady-state write carries none of it.
35
+ */
36
+ private persistedDataIds;
37
+ /**
38
+ * Payloads whose field is still in storage although no edge references them
39
+ * any more. Their delete is issued only AFTER the snapshot that dropped them
40
+ * is durable, so they stay in the delta until it actually lands — an
41
+ * interrupted delete leaks a field, it never strands a reference.
42
+ */
43
+ private orphanedDataIds;
30
44
  readonly cycles: {
31
45
  node: Node;
32
46
  name: OutputName;
@@ -34,68 +48,130 @@ export declare class NodeTree {
34
48
  readonly entryNode: Extract<Node, {
35
49
  type: 'entry';
36
50
  }>;
37
- constructor({ nodes, edges }: NodeTreeOptions, _data?: Map<string, DataSet>, _cycles?: Cycle[] | null, _overriddenNodeData?: Map<string, Record<string, unknown>>);
51
+ constructor({ nodes, edges }: NodeTreeOptions, _cycles?: Cycle[] | null, _overriddenNodeData?: Map<string, Record<string, unknown>>);
52
+ /**
53
+ * The GRAPH, never the data that flowed through it (issue #118). `this.data`
54
+ * is deliberately absent: it is persisted per field, so a write is a function
55
+ * of graph size — bounded by the template — instead of a function of
56
+ * everything the task has ever emitted.
57
+ *
58
+ * `nodes` and `edges` mutate as the graph runs and `overriddenNodeData` is
59
+ * mutated by `overrideAggregatedNodeData`, so all three have to stay here.
60
+ */
38
61
  pack(): readonly [({
39
62
  id: string;
40
63
  type: "entry";
41
- inputSchema: import("json-schema").JSONSchema7;
42
64
  alias?: string | undefined;
65
+ inputSchema: import("json-schema").JSONSchema7;
43
66
  } | {
67
+ outputs: {
68
+ name: string | null;
69
+ schema: import("json-schema").JSONSchema7 | null;
70
+ }[];
44
71
  id: string;
45
72
  type: "service";
46
- inputSchema: ({
47
- type: "object";
48
- } & import("json-schema").JSONSchema7) | {
73
+ alias?: string | undefined;
74
+ inputSchema: {
49
75
  type: "null";
50
76
  } | ({
77
+ type: "object";
78
+ } & import("json-schema").JSONSchema7) | ({
51
79
  $ref: string;
80
+ } & import("json-schema").JSONSchema7) | ({
81
+ oneOf: ({
82
+ type: "null";
83
+ } | ({
84
+ type: "object";
85
+ } & import("json-schema").JSONSchema7) | ({
86
+ $ref: string;
87
+ } & import("json-schema").JSONSchema7))[];
52
88
  } & import("json-schema").JSONSchema7);
53
89
  name: string;
54
90
  version: string;
91
+ configuration?: any;
55
92
  configurationSchema: import("json-schema").JSONSchema7;
56
- mode: "LINEAR" | "CONTINUOUS";
93
+ ttl?: number | undefined;
94
+ retry: number;
95
+ retryDelay?: number | undefined;
96
+ mode: "CONTINUOUS" | "LINEAR";
97
+ privileged: boolean;
98
+ wireCodec?: "json" | "msgpack" | undefined;
99
+ configurationServices?: {
100
+ outputs: {
101
+ name: string | null;
102
+ schema: import("json-schema").JSONSchema7 | null;
103
+ }[];
104
+ id: string;
105
+ type: "service";
106
+ alias?: string | undefined;
107
+ inputSchema: {
108
+ type: "null";
109
+ } | ({
110
+ type: "object";
111
+ } & import("json-schema").JSONSchema7) | ({
112
+ $ref: string;
113
+ } & import("json-schema").JSONSchema7) | ({
114
+ oneOf: ({
115
+ type: "null";
116
+ } | ({
117
+ type: "object";
118
+ } & import("json-schema").JSONSchema7) | ({
119
+ $ref: string;
120
+ } & import("json-schema").JSONSchema7))[];
121
+ } & import("json-schema").JSONSchema7);
122
+ name: string;
123
+ version: string;
124
+ configuration?: any;
125
+ configurationSchema: import("json-schema").JSONSchema7;
126
+ ttl?: number | undefined;
127
+ retry: number;
128
+ retryDelay?: number | undefined;
129
+ mode: "CONTINUOUS" | "LINEAR";
130
+ privileged: boolean;
131
+ wireCodec?: "json" | "msgpack" | undefined;
132
+ configurationServices?: /*elided*/ any[] | undefined;
133
+ }[] | undefined;
134
+ } | {
57
135
  outputs: {
58
136
  name: string | null;
59
137
  schema: import("json-schema").JSONSchema7 | null;
60
138
  }[];
61
- alias?: string | undefined;
62
- configuration?: any;
63
- ttl?: number | undefined;
64
- retry?: number | undefined;
65
- retryDelay?: number | undefined;
66
- } | {
67
139
  id: string;
68
140
  type: "logic";
141
+ alias?: string | undefined;
69
142
  script: string;
70
143
  concurrency: boolean;
71
144
  language: "javascript" | "python" | "typescript";
72
145
  maxExecutionTime: number;
73
- outputs: {
74
- name: string | null;
75
- schema: import("json-schema").JSONSchema7 | null;
76
- }[];
77
- alias?: string | undefined;
78
146
  } | {
79
147
  id: string;
80
148
  type: "or";
81
149
  alias?: string | undefined;
82
150
  } | {
151
+ outputs: {
152
+ name: string | null;
153
+ schema: import("json-schema").JSONSchema7 | null;
154
+ }[];
83
155
  id: string;
84
156
  type: "reference";
157
+ alias?: string | undefined;
85
158
  reference: string;
86
159
  enabled: boolean;
87
- inputSchema: ({
88
- type: "object";
89
- } & import("json-schema").JSONSchema7) | {
160
+ inputSchema: {
90
161
  type: "null";
91
162
  } | ({
163
+ type: "object";
164
+ } & import("json-schema").JSONSchema7) | ({
92
165
  $ref: string;
166
+ } & import("json-schema").JSONSchema7) | ({
167
+ oneOf: ({
168
+ type: "null";
169
+ } | ({
170
+ type: "object";
171
+ } & import("json-schema").JSONSchema7) | ({
172
+ $ref: string;
173
+ } & import("json-schema").JSONSchema7))[];
93
174
  } & import("json-schema").JSONSchema7);
94
- outputs: {
95
- name: string | null;
96
- schema: import("json-schema").JSONSchema7 | null;
97
- }[];
98
- alias?: string | undefined;
99
175
  } | {
100
176
  id: string;
101
177
  type: "exit";
@@ -106,74 +182,157 @@ export declare class NodeTree {
106
182
  type: "comment";
107
183
  text: string;
108
184
  alias?: string | undefined;
109
- })[], ExtendedEdge[], Map<string, DataSet>, {
185
+ })[], ExtendedEdge[], {
110
186
  node: Node;
111
187
  name: OutputName;
112
188
  }[][], Map<string, Record<string, unknown>>];
113
- static unpack([nodes, edges, _data, _cycles, _overriddenNodeData]: ReturnType<typeof NodeTree.prototype.pack>): NodeTree;
189
+ static unpack([nodes, edges, _cycles, _overriddenNodeData]: ReturnType<typeof NodeTree.prototype.pack>): NodeTree;
190
+ /**
191
+ * Attaches the write-once payloads read back from their own storage fields
192
+ * (issue #118). They are durable by definition — a restore is reading them —
193
+ * so the delta bookkeeping starts from exactly this set.
194
+ */
195
+ restoreData(data: Map<string, DataSet>): void;
196
+ /**
197
+ * What storage is missing: the payloads written since the last confirmed
198
+ * write, and the durable ones no edge references any more.
199
+ *
200
+ * Call `gc()` first — an entry it would drop is otherwise still in
201
+ * `this.data` and therefore reported as a payload to write.
202
+ */
203
+ dataDelta(): {
204
+ writes: [string, DataSet][];
205
+ obsolete: string[];
206
+ };
207
+ /**
208
+ * The write that carried `writtenIds` and dropped `obsoleteIds` is durable:
209
+ * the first group becomes storage's current content, the second becomes
210
+ * orphans awaiting their delete.
211
+ *
212
+ * Takes both groups explicitly rather than re-deriving them from `this.data`:
213
+ * the machine may have produced further payloads while the write was in
214
+ * flight, and marking one of those durable would drop it from every later
215
+ * delta — it would never be written at all.
216
+ */
217
+ confirmDataWrite(writtenIds: Iterable<string>, obsoleteIds: Iterable<string>): void;
218
+ /** The delete of these fields landed — storage holds nothing for them. */
219
+ confirmDataDelete(deletedIds: Iterable<string>): void;
114
220
  static get ERROR(): string;
115
221
  getCriticalGroups(nodeId: string, allowMultipleOutputs?: boolean): CriticalGroup[];
116
222
  getNodes(condition?: (node: Node) => boolean): ({
117
223
  id: string;
118
224
  type: "entry";
119
- inputSchema: import("json-schema").JSONSchema7;
120
225
  alias?: string | undefined;
226
+ inputSchema: import("json-schema").JSONSchema7;
121
227
  } | {
228
+ outputs: {
229
+ name: string | null;
230
+ schema: import("json-schema").JSONSchema7 | null;
231
+ }[];
122
232
  id: string;
123
233
  type: "service";
124
- inputSchema: ({
125
- type: "object";
126
- } & import("json-schema").JSONSchema7) | {
234
+ alias?: string | undefined;
235
+ inputSchema: {
127
236
  type: "null";
128
237
  } | ({
238
+ type: "object";
239
+ } & import("json-schema").JSONSchema7) | ({
129
240
  $ref: string;
241
+ } & import("json-schema").JSONSchema7) | ({
242
+ oneOf: ({
243
+ type: "null";
244
+ } | ({
245
+ type: "object";
246
+ } & import("json-schema").JSONSchema7) | ({
247
+ $ref: string;
248
+ } & import("json-schema").JSONSchema7))[];
130
249
  } & import("json-schema").JSONSchema7);
131
250
  name: string;
132
251
  version: string;
252
+ configuration?: any;
133
253
  configurationSchema: import("json-schema").JSONSchema7;
134
- mode: "LINEAR" | "CONTINUOUS";
254
+ ttl?: number | undefined;
255
+ retry: number;
256
+ retryDelay?: number | undefined;
257
+ mode: "CONTINUOUS" | "LINEAR";
258
+ privileged: boolean;
259
+ wireCodec?: "json" | "msgpack" | undefined;
260
+ configurationServices?: {
261
+ outputs: {
262
+ name: string | null;
263
+ schema: import("json-schema").JSONSchema7 | null;
264
+ }[];
265
+ id: string;
266
+ type: "service";
267
+ alias?: string | undefined;
268
+ inputSchema: {
269
+ type: "null";
270
+ } | ({
271
+ type: "object";
272
+ } & import("json-schema").JSONSchema7) | ({
273
+ $ref: string;
274
+ } & import("json-schema").JSONSchema7) | ({
275
+ oneOf: ({
276
+ type: "null";
277
+ } | ({
278
+ type: "object";
279
+ } & import("json-schema").JSONSchema7) | ({
280
+ $ref: string;
281
+ } & import("json-schema").JSONSchema7))[];
282
+ } & import("json-schema").JSONSchema7);
283
+ name: string;
284
+ version: string;
285
+ configuration?: any;
286
+ configurationSchema: import("json-schema").JSONSchema7;
287
+ ttl?: number | undefined;
288
+ retry: number;
289
+ retryDelay?: number | undefined;
290
+ mode: "CONTINUOUS" | "LINEAR";
291
+ privileged: boolean;
292
+ wireCodec?: "json" | "msgpack" | undefined;
293
+ configurationServices?: /*elided*/ any[] | undefined;
294
+ }[] | undefined;
295
+ } | {
135
296
  outputs: {
136
297
  name: string | null;
137
298
  schema: import("json-schema").JSONSchema7 | null;
138
299
  }[];
139
- alias?: string | undefined;
140
- configuration?: any;
141
- ttl?: number | undefined;
142
- retry?: number | undefined;
143
- retryDelay?: number | undefined;
144
- } | {
145
300
  id: string;
146
301
  type: "logic";
302
+ alias?: string | undefined;
147
303
  script: string;
148
304
  concurrency: boolean;
149
305
  language: "javascript" | "python" | "typescript";
150
306
  maxExecutionTime: number;
151
- outputs: {
152
- name: string | null;
153
- schema: import("json-schema").JSONSchema7 | null;
154
- }[];
155
- alias?: string | undefined;
156
307
  } | {
157
308
  id: string;
158
309
  type: "or";
159
310
  alias?: string | undefined;
160
311
  } | {
312
+ outputs: {
313
+ name: string | null;
314
+ schema: import("json-schema").JSONSchema7 | null;
315
+ }[];
161
316
  id: string;
162
317
  type: "reference";
318
+ alias?: string | undefined;
163
319
  reference: string;
164
320
  enabled: boolean;
165
- inputSchema: ({
166
- type: "object";
167
- } & import("json-schema").JSONSchema7) | {
321
+ inputSchema: {
168
322
  type: "null";
169
323
  } | ({
324
+ type: "object";
325
+ } & import("json-schema").JSONSchema7) | ({
170
326
  $ref: string;
327
+ } & import("json-schema").JSONSchema7) | ({
328
+ oneOf: ({
329
+ type: "null";
330
+ } | ({
331
+ type: "object";
332
+ } & import("json-schema").JSONSchema7) | ({
333
+ $ref: string;
334
+ } & import("json-schema").JSONSchema7))[];
171
335
  } & import("json-schema").JSONSchema7);
172
- outputs: {
173
- name: string | null;
174
- schema: import("json-schema").JSONSchema7 | null;
175
- }[];
176
- alias?: string | undefined;
177
336
  } | {
178
337
  id: string;
179
338
  type: "exit";
@@ -189,64 +348,117 @@ export declare class NodeTree {
189
348
  getChildren(nodeId: string, outputName: OutputName): ({
190
349
  id: string;
191
350
  type: "entry";
192
- inputSchema: import("json-schema").JSONSchema7;
193
351
  alias?: string | undefined;
352
+ inputSchema: import("json-schema").JSONSchema7;
194
353
  } | {
354
+ outputs: {
355
+ name: string | null;
356
+ schema: import("json-schema").JSONSchema7 | null;
357
+ }[];
195
358
  id: string;
196
359
  type: "service";
197
- inputSchema: ({
198
- type: "object";
199
- } & import("json-schema").JSONSchema7) | {
360
+ alias?: string | undefined;
361
+ inputSchema: {
200
362
  type: "null";
201
363
  } | ({
364
+ type: "object";
365
+ } & import("json-schema").JSONSchema7) | ({
202
366
  $ref: string;
367
+ } & import("json-schema").JSONSchema7) | ({
368
+ oneOf: ({
369
+ type: "null";
370
+ } | ({
371
+ type: "object";
372
+ } & import("json-schema").JSONSchema7) | ({
373
+ $ref: string;
374
+ } & import("json-schema").JSONSchema7))[];
203
375
  } & import("json-schema").JSONSchema7);
204
376
  name: string;
205
377
  version: string;
378
+ configuration?: any;
206
379
  configurationSchema: import("json-schema").JSONSchema7;
207
- mode: "LINEAR" | "CONTINUOUS";
380
+ ttl?: number | undefined;
381
+ retry: number;
382
+ retryDelay?: number | undefined;
383
+ mode: "CONTINUOUS" | "LINEAR";
384
+ privileged: boolean;
385
+ wireCodec?: "json" | "msgpack" | undefined;
386
+ configurationServices?: {
387
+ outputs: {
388
+ name: string | null;
389
+ schema: import("json-schema").JSONSchema7 | null;
390
+ }[];
391
+ id: string;
392
+ type: "service";
393
+ alias?: string | undefined;
394
+ inputSchema: {
395
+ type: "null";
396
+ } | ({
397
+ type: "object";
398
+ } & import("json-schema").JSONSchema7) | ({
399
+ $ref: string;
400
+ } & import("json-schema").JSONSchema7) | ({
401
+ oneOf: ({
402
+ type: "null";
403
+ } | ({
404
+ type: "object";
405
+ } & import("json-schema").JSONSchema7) | ({
406
+ $ref: string;
407
+ } & import("json-schema").JSONSchema7))[];
408
+ } & import("json-schema").JSONSchema7);
409
+ name: string;
410
+ version: string;
411
+ configuration?: any;
412
+ configurationSchema: import("json-schema").JSONSchema7;
413
+ ttl?: number | undefined;
414
+ retry: number;
415
+ retryDelay?: number | undefined;
416
+ mode: "CONTINUOUS" | "LINEAR";
417
+ privileged: boolean;
418
+ wireCodec?: "json" | "msgpack" | undefined;
419
+ configurationServices?: /*elided*/ any[] | undefined;
420
+ }[] | undefined;
421
+ } | {
208
422
  outputs: {
209
423
  name: string | null;
210
424
  schema: import("json-schema").JSONSchema7 | null;
211
425
  }[];
212
- alias?: string | undefined;
213
- configuration?: any;
214
- ttl?: number | undefined;
215
- retry?: number | undefined;
216
- retryDelay?: number | undefined;
217
- } | {
218
426
  id: string;
219
427
  type: "logic";
428
+ alias?: string | undefined;
220
429
  script: string;
221
430
  concurrency: boolean;
222
431
  language: "javascript" | "python" | "typescript";
223
432
  maxExecutionTime: number;
224
- outputs: {
225
- name: string | null;
226
- schema: import("json-schema").JSONSchema7 | null;
227
- }[];
228
- alias?: string | undefined;
229
433
  } | {
230
434
  id: string;
231
435
  type: "or";
232
436
  alias?: string | undefined;
233
437
  } | {
438
+ outputs: {
439
+ name: string | null;
440
+ schema: import("json-schema").JSONSchema7 | null;
441
+ }[];
234
442
  id: string;
235
443
  type: "reference";
444
+ alias?: string | undefined;
236
445
  reference: string;
237
446
  enabled: boolean;
238
- inputSchema: ({
239
- type: "object";
240
- } & import("json-schema").JSONSchema7) | {
447
+ inputSchema: {
241
448
  type: "null";
242
449
  } | ({
450
+ type: "object";
451
+ } & import("json-schema").JSONSchema7) | ({
243
452
  $ref: string;
453
+ } & import("json-schema").JSONSchema7) | ({
454
+ oneOf: ({
455
+ type: "null";
456
+ } | ({
457
+ type: "object";
458
+ } & import("json-schema").JSONSchema7) | ({
459
+ $ref: string;
460
+ } & import("json-schema").JSONSchema7))[];
244
461
  } & import("json-schema").JSONSchema7);
245
- outputs: {
246
- name: string | null;
247
- schema: import("json-schema").JSONSchema7 | null;
248
- }[];
249
- alias?: string | undefined;
250
462
  } | {
251
463
  id: string;
252
464
  type: "exit";
@@ -262,64 +474,117 @@ export declare class NodeTree {
262
474
  getParents(nodeId: string): ({
263
475
  id: string;
264
476
  type: "entry";
265
- inputSchema: import("json-schema").JSONSchema7;
266
477
  alias?: string | undefined;
478
+ inputSchema: import("json-schema").JSONSchema7;
267
479
  } | {
480
+ outputs: {
481
+ name: string | null;
482
+ schema: import("json-schema").JSONSchema7 | null;
483
+ }[];
268
484
  id: string;
269
485
  type: "service";
270
- inputSchema: ({
271
- type: "object";
272
- } & import("json-schema").JSONSchema7) | {
486
+ alias?: string | undefined;
487
+ inputSchema: {
273
488
  type: "null";
274
489
  } | ({
490
+ type: "object";
491
+ } & import("json-schema").JSONSchema7) | ({
275
492
  $ref: string;
493
+ } & import("json-schema").JSONSchema7) | ({
494
+ oneOf: ({
495
+ type: "null";
496
+ } | ({
497
+ type: "object";
498
+ } & import("json-schema").JSONSchema7) | ({
499
+ $ref: string;
500
+ } & import("json-schema").JSONSchema7))[];
276
501
  } & import("json-schema").JSONSchema7);
277
502
  name: string;
278
503
  version: string;
504
+ configuration?: any;
279
505
  configurationSchema: import("json-schema").JSONSchema7;
280
- mode: "LINEAR" | "CONTINUOUS";
506
+ ttl?: number | undefined;
507
+ retry: number;
508
+ retryDelay?: number | undefined;
509
+ mode: "CONTINUOUS" | "LINEAR";
510
+ privileged: boolean;
511
+ wireCodec?: "json" | "msgpack" | undefined;
512
+ configurationServices?: {
513
+ outputs: {
514
+ name: string | null;
515
+ schema: import("json-schema").JSONSchema7 | null;
516
+ }[];
517
+ id: string;
518
+ type: "service";
519
+ alias?: string | undefined;
520
+ inputSchema: {
521
+ type: "null";
522
+ } | ({
523
+ type: "object";
524
+ } & import("json-schema").JSONSchema7) | ({
525
+ $ref: string;
526
+ } & import("json-schema").JSONSchema7) | ({
527
+ oneOf: ({
528
+ type: "null";
529
+ } | ({
530
+ type: "object";
531
+ } & import("json-schema").JSONSchema7) | ({
532
+ $ref: string;
533
+ } & import("json-schema").JSONSchema7))[];
534
+ } & import("json-schema").JSONSchema7);
535
+ name: string;
536
+ version: string;
537
+ configuration?: any;
538
+ configurationSchema: import("json-schema").JSONSchema7;
539
+ ttl?: number | undefined;
540
+ retry: number;
541
+ retryDelay?: number | undefined;
542
+ mode: "CONTINUOUS" | "LINEAR";
543
+ privileged: boolean;
544
+ wireCodec?: "json" | "msgpack" | undefined;
545
+ configurationServices?: /*elided*/ any[] | undefined;
546
+ }[] | undefined;
547
+ } | {
281
548
  outputs: {
282
549
  name: string | null;
283
550
  schema: import("json-schema").JSONSchema7 | null;
284
551
  }[];
285
- alias?: string | undefined;
286
- configuration?: any;
287
- ttl?: number | undefined;
288
- retry?: number | undefined;
289
- retryDelay?: number | undefined;
290
- } | {
291
552
  id: string;
292
553
  type: "logic";
554
+ alias?: string | undefined;
293
555
  script: string;
294
556
  concurrency: boolean;
295
557
  language: "javascript" | "python" | "typescript";
296
558
  maxExecutionTime: number;
297
- outputs: {
298
- name: string | null;
299
- schema: import("json-schema").JSONSchema7 | null;
300
- }[];
301
- alias?: string | undefined;
302
559
  } | {
303
560
  id: string;
304
561
  type: "or";
305
562
  alias?: string | undefined;
306
563
  } | {
564
+ outputs: {
565
+ name: string | null;
566
+ schema: import("json-schema").JSONSchema7 | null;
567
+ }[];
307
568
  id: string;
308
569
  type: "reference";
570
+ alias?: string | undefined;
309
571
  reference: string;
310
572
  enabled: boolean;
311
- inputSchema: ({
312
- type: "object";
313
- } & import("json-schema").JSONSchema7) | {
573
+ inputSchema: {
314
574
  type: "null";
315
575
  } | ({
576
+ type: "object";
577
+ } & import("json-schema").JSONSchema7) | ({
316
578
  $ref: string;
579
+ } & import("json-schema").JSONSchema7) | ({
580
+ oneOf: ({
581
+ type: "null";
582
+ } | ({
583
+ type: "object";
584
+ } & import("json-schema").JSONSchema7) | ({
585
+ $ref: string;
586
+ } & import("json-schema").JSONSchema7))[];
317
587
  } & import("json-schema").JSONSchema7);
318
- outputs: {
319
- name: string | null;
320
- schema: import("json-schema").JSONSchema7 | null;
321
- }[];
322
- alias?: string | undefined;
323
588
  } | {
324
589
  id: string;
325
590
  type: "exit";
@@ -334,64 +599,117 @@ export declare class NodeTree {
334
599
  getAllParents(nodeId: string): ({
335
600
  id: string;
336
601
  type: "entry";
337
- inputSchema: import("json-schema").JSONSchema7;
338
602
  alias?: string | undefined;
603
+ inputSchema: import("json-schema").JSONSchema7;
339
604
  } | {
605
+ outputs: {
606
+ name: string | null;
607
+ schema: import("json-schema").JSONSchema7 | null;
608
+ }[];
340
609
  id: string;
341
610
  type: "service";
342
- inputSchema: ({
343
- type: "object";
344
- } & import("json-schema").JSONSchema7) | {
611
+ alias?: string | undefined;
612
+ inputSchema: {
345
613
  type: "null";
346
614
  } | ({
615
+ type: "object";
616
+ } & import("json-schema").JSONSchema7) | ({
347
617
  $ref: string;
618
+ } & import("json-schema").JSONSchema7) | ({
619
+ oneOf: ({
620
+ type: "null";
621
+ } | ({
622
+ type: "object";
623
+ } & import("json-schema").JSONSchema7) | ({
624
+ $ref: string;
625
+ } & import("json-schema").JSONSchema7))[];
348
626
  } & import("json-schema").JSONSchema7);
349
627
  name: string;
350
628
  version: string;
629
+ configuration?: any;
351
630
  configurationSchema: import("json-schema").JSONSchema7;
352
- mode: "LINEAR" | "CONTINUOUS";
631
+ ttl?: number | undefined;
632
+ retry: number;
633
+ retryDelay?: number | undefined;
634
+ mode: "CONTINUOUS" | "LINEAR";
635
+ privileged: boolean;
636
+ wireCodec?: "json" | "msgpack" | undefined;
637
+ configurationServices?: {
638
+ outputs: {
639
+ name: string | null;
640
+ schema: import("json-schema").JSONSchema7 | null;
641
+ }[];
642
+ id: string;
643
+ type: "service";
644
+ alias?: string | undefined;
645
+ inputSchema: {
646
+ type: "null";
647
+ } | ({
648
+ type: "object";
649
+ } & import("json-schema").JSONSchema7) | ({
650
+ $ref: string;
651
+ } & import("json-schema").JSONSchema7) | ({
652
+ oneOf: ({
653
+ type: "null";
654
+ } | ({
655
+ type: "object";
656
+ } & import("json-schema").JSONSchema7) | ({
657
+ $ref: string;
658
+ } & import("json-schema").JSONSchema7))[];
659
+ } & import("json-schema").JSONSchema7);
660
+ name: string;
661
+ version: string;
662
+ configuration?: any;
663
+ configurationSchema: import("json-schema").JSONSchema7;
664
+ ttl?: number | undefined;
665
+ retry: number;
666
+ retryDelay?: number | undefined;
667
+ mode: "CONTINUOUS" | "LINEAR";
668
+ privileged: boolean;
669
+ wireCodec?: "json" | "msgpack" | undefined;
670
+ configurationServices?: /*elided*/ any[] | undefined;
671
+ }[] | undefined;
672
+ } | {
353
673
  outputs: {
354
674
  name: string | null;
355
675
  schema: import("json-schema").JSONSchema7 | null;
356
676
  }[];
357
- alias?: string | undefined;
358
- configuration?: any;
359
- ttl?: number | undefined;
360
- retry?: number | undefined;
361
- retryDelay?: number | undefined;
362
- } | {
363
677
  id: string;
364
678
  type: "logic";
679
+ alias?: string | undefined;
365
680
  script: string;
366
681
  concurrency: boolean;
367
682
  language: "javascript" | "python" | "typescript";
368
683
  maxExecutionTime: number;
369
- outputs: {
370
- name: string | null;
371
- schema: import("json-schema").JSONSchema7 | null;
372
- }[];
373
- alias?: string | undefined;
374
684
  } | {
375
685
  id: string;
376
686
  type: "or";
377
687
  alias?: string | undefined;
378
688
  } | {
689
+ outputs: {
690
+ name: string | null;
691
+ schema: import("json-schema").JSONSchema7 | null;
692
+ }[];
379
693
  id: string;
380
694
  type: "reference";
695
+ alias?: string | undefined;
381
696
  reference: string;
382
697
  enabled: boolean;
383
- inputSchema: ({
384
- type: "object";
385
- } & import("json-schema").JSONSchema7) | {
698
+ inputSchema: {
386
699
  type: "null";
387
700
  } | ({
701
+ type: "object";
702
+ } & import("json-schema").JSONSchema7) | ({
388
703
  $ref: string;
704
+ } & import("json-schema").JSONSchema7) | ({
705
+ oneOf: ({
706
+ type: "null";
707
+ } | ({
708
+ type: "object";
709
+ } & import("json-schema").JSONSchema7) | ({
710
+ $ref: string;
711
+ } & import("json-schema").JSONSchema7))[];
389
712
  } & import("json-schema").JSONSchema7);
390
- outputs: {
391
- name: string | null;
392
- schema: import("json-schema").JSONSchema7 | null;
393
- }[];
394
- alias?: string | undefined;
395
713
  } | {
396
714
  id: string;
397
715
  type: "exit";
@@ -419,64 +737,117 @@ export declare class NodeTree {
419
737
  node: {
420
738
  id: string;
421
739
  type: "entry";
422
- inputSchema: import("json-schema").JSONSchema7;
423
740
  alias?: string | undefined;
741
+ inputSchema: import("json-schema").JSONSchema7;
424
742
  } | {
743
+ outputs: {
744
+ name: string | null;
745
+ schema: import("json-schema").JSONSchema7 | null;
746
+ }[];
425
747
  id: string;
426
748
  type: "service";
427
- inputSchema: ({
428
- type: "object";
429
- } & import("json-schema").JSONSchema7) | {
749
+ alias?: string | undefined;
750
+ inputSchema: {
430
751
  type: "null";
431
752
  } | ({
753
+ type: "object";
754
+ } & import("json-schema").JSONSchema7) | ({
432
755
  $ref: string;
756
+ } & import("json-schema").JSONSchema7) | ({
757
+ oneOf: ({
758
+ type: "null";
759
+ } | ({
760
+ type: "object";
761
+ } & import("json-schema").JSONSchema7) | ({
762
+ $ref: string;
763
+ } & import("json-schema").JSONSchema7))[];
433
764
  } & import("json-schema").JSONSchema7);
434
765
  name: string;
435
766
  version: string;
767
+ configuration?: any;
436
768
  configurationSchema: import("json-schema").JSONSchema7;
437
- mode: "LINEAR" | "CONTINUOUS";
769
+ ttl?: number | undefined;
770
+ retry: number;
771
+ retryDelay?: number | undefined;
772
+ mode: "CONTINUOUS" | "LINEAR";
773
+ privileged: boolean;
774
+ wireCodec?: "json" | "msgpack" | undefined;
775
+ configurationServices?: {
776
+ outputs: {
777
+ name: string | null;
778
+ schema: import("json-schema").JSONSchema7 | null;
779
+ }[];
780
+ id: string;
781
+ type: "service";
782
+ alias?: string | undefined;
783
+ inputSchema: {
784
+ type: "null";
785
+ } | ({
786
+ type: "object";
787
+ } & import("json-schema").JSONSchema7) | ({
788
+ $ref: string;
789
+ } & import("json-schema").JSONSchema7) | ({
790
+ oneOf: ({
791
+ type: "null";
792
+ } | ({
793
+ type: "object";
794
+ } & import("json-schema").JSONSchema7) | ({
795
+ $ref: string;
796
+ } & import("json-schema").JSONSchema7))[];
797
+ } & import("json-schema").JSONSchema7);
798
+ name: string;
799
+ version: string;
800
+ configuration?: any;
801
+ configurationSchema: import("json-schema").JSONSchema7;
802
+ ttl?: number | undefined;
803
+ retry: number;
804
+ retryDelay?: number | undefined;
805
+ mode: "CONTINUOUS" | "LINEAR";
806
+ privileged: boolean;
807
+ wireCodec?: "json" | "msgpack" | undefined;
808
+ configurationServices?: /*elided*/ any[] | undefined;
809
+ }[] | undefined;
810
+ } | {
438
811
  outputs: {
439
812
  name: string | null;
440
813
  schema: import("json-schema").JSONSchema7 | null;
441
814
  }[];
442
- alias?: string | undefined;
443
- configuration?: any;
444
- ttl?: number | undefined;
445
- retry?: number | undefined;
446
- retryDelay?: number | undefined;
447
- } | {
448
815
  id: string;
449
816
  type: "logic";
817
+ alias?: string | undefined;
450
818
  script: string;
451
819
  concurrency: boolean;
452
820
  language: "javascript" | "python" | "typescript";
453
821
  maxExecutionTime: number;
454
- outputs: {
455
- name: string | null;
456
- schema: import("json-schema").JSONSchema7 | null;
457
- }[];
458
- alias?: string | undefined;
459
822
  } | {
460
823
  id: string;
461
824
  type: "or";
462
825
  alias?: string | undefined;
463
826
  } | {
827
+ outputs: {
828
+ name: string | null;
829
+ schema: import("json-schema").JSONSchema7 | null;
830
+ }[];
464
831
  id: string;
465
832
  type: "reference";
833
+ alias?: string | undefined;
466
834
  reference: string;
467
835
  enabled: boolean;
468
- inputSchema: ({
469
- type: "object";
470
- } & import("json-schema").JSONSchema7) | {
836
+ inputSchema: {
471
837
  type: "null";
472
838
  } | ({
839
+ type: "object";
840
+ } & import("json-schema").JSONSchema7) | ({
473
841
  $ref: string;
842
+ } & import("json-schema").JSONSchema7) | ({
843
+ oneOf: ({
844
+ type: "null";
845
+ } | ({
846
+ type: "object";
847
+ } & import("json-schema").JSONSchema7) | ({
848
+ $ref: string;
849
+ } & import("json-schema").JSONSchema7))[];
474
850
  } & import("json-schema").JSONSchema7);
475
- outputs: {
476
- name: string | null;
477
- schema: import("json-schema").JSONSchema7 | null;
478
- }[];
479
- alias?: string | undefined;
480
851
  } | {
481
852
  id: string;
482
853
  type: "exit";
@@ -503,6 +874,19 @@ export declare class NodeTree {
503
874
  getAggregatedData(targetNodeId: string): Record<string, unknown>;
504
875
  getAggregatedEdgeData(edgeId: string): Record<string, unknown>;
505
876
  reset(): void;
877
+ /**
878
+ * Drops every payload no edge references any more.
879
+ *
880
+ * A `Set`, not an array (issue #117): this runs first thing in
881
+ * `machinePacker.packMutable`, so once per inbound message under the
882
+ * persist-before-ack contract — 570 flushes/minute on edge during the
883
+ * 2026-08-06 load test. Testing each candidate against an array made the work
884
+ * edges × data on every one of those calls.
885
+ *
886
+ * Deleting straight out of the iteration is safe (a `Map` iterator tolerates
887
+ * removal of the entry it is on) and spares the intermediate array of keys.
888
+ * The deletion behaviour is unchanged; only the lookup moved.
889
+ */
506
890
  gc(): void;
507
891
  overrideAggregatedNodeData(nodeId: string, data: Record<string, unknown>): void;
508
892
  }