@elaraai/e3-types 1.0.78 → 1.0.80
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 +1 -1
- package/dist/src/api.d.ts +569 -36
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +257 -32
- package/dist/src/api.js.map +1 -1
- package/dist/src/collection-manifest.d.ts +37 -0
- package/dist/src/collection-manifest.d.ts.map +1 -0
- package/dist/src/collection-manifest.js +37 -0
- package/dist/src/collection-manifest.js.map +1 -0
- package/dist/src/dataflow.d.ts +264 -19
- package/dist/src/dataflow.d.ts.map +1 -1
- package/dist/src/dataflow.js +156 -15
- package/dist/src/dataflow.js.map +1 -1
- package/dist/src/dataflow.spec.js +184 -27
- package/dist/src/dataflow.spec.js.map +1 -1
- package/dist/src/dataset-blob.d.ts +75 -15
- package/dist/src/dataset-blob.d.ts.map +1 -1
- package/dist/src/dataset-blob.js +95 -28
- package/dist/src/dataset-blob.js.map +1 -1
- package/dist/src/dataset-blob.spec.d.ts +6 -0
- package/dist/src/dataset-blob.spec.d.ts.map +1 -0
- package/dist/src/dataset-blob.spec.js +92 -0
- package/dist/src/dataset-blob.spec.js.map +1 -0
- package/dist/src/dataset-ref.d.ts +5 -4
- package/dist/src/dataset-ref.d.ts.map +1 -1
- package/dist/src/dataset-ref.js +5 -4
- package/dist/src/dataset-ref.js.map +1 -1
- package/dist/src/environment.d.ts +3 -2
- package/dist/src/environment.d.ts.map +1 -1
- package/dist/src/environment.js +3 -2
- package/dist/src/environment.js.map +1 -1
- package/dist/src/execution.d.ts +112 -18
- package/dist/src/execution.d.ts.map +1 -1
- package/dist/src/execution.js +174 -45
- package/dist/src/execution.js.map +1 -1
- package/dist/src/execution.spec.d.ts +6 -0
- package/dist/src/execution.spec.d.ts.map +1 -0
- package/dist/src/execution.spec.js +108 -0
- package/dist/src/execution.spec.js.map +1 -0
- package/dist/src/function.d.ts +14 -12
- package/dist/src/function.d.ts.map +1 -1
- package/dist/src/function.js +17 -32
- package/dist/src/function.js.map +1 -1
- package/dist/src/index.d.ts +16 -12
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -20
- package/dist/src/index.js.map +1 -1
- package/dist/src/lock.d.ts +68 -22
- package/dist/src/lock.d.ts.map +1 -1
- package/dist/src/lock.js +33 -22
- package/dist/src/lock.js.map +1 -1
- package/dist/src/names.d.ts +21 -0
- package/dist/src/names.d.ts.map +1 -0
- package/dist/src/names.js +31 -0
- package/dist/src/names.js.map +1 -0
- package/dist/src/package.d.ts +11 -78
- package/dist/src/package.d.ts.map +1 -1
- package/dist/src/package.js +13 -66
- package/dist/src/package.js.map +1 -1
- package/dist/src/record.d.ts +582 -18
- package/dist/src/record.d.ts.map +1 -1
- package/dist/src/record.js +405 -7
- package/dist/src/record.js.map +1 -1
- package/dist/src/{stream.spec.d.ts → record.spec.d.ts} +1 -1
- package/dist/src/record.spec.d.ts.map +1 -0
- package/dist/src/record.spec.js +143 -0
- package/dist/src/record.spec.js.map +1 -0
- package/dist/src/release.d.ts +36 -0
- package/dist/src/release.d.ts.map +1 -0
- package/dist/src/release.js +71 -0
- package/dist/src/release.js.map +1 -0
- package/dist/src/release.spec.d.ts +6 -0
- package/dist/src/release.spec.d.ts.map +1 -0
- package/dist/src/release.spec.js +42 -0
- package/dist/src/release.spec.js.map +1 -0
- package/dist/src/repository.d.ts +64 -0
- package/dist/src/repository.d.ts.map +1 -0
- package/dist/src/repository.js +49 -0
- package/dist/src/repository.js.map +1 -0
- package/dist/src/runner.d.ts +16 -62
- package/dist/src/runner.d.ts.map +1 -1
- package/dist/src/runner.js +16 -79
- package/dist/src/runner.js.map +1 -1
- package/dist/src/runner.spec.js +11 -85
- package/dist/src/runner.spec.js.map +1 -1
- package/dist/src/structure.d.ts +0 -57
- package/dist/src/structure.d.ts.map +1 -1
- package/dist/src/structure.js +0 -3
- package/dist/src/structure.js.map +1 -1
- package/dist/src/task.d.ts +210 -318
- package/dist/src/task.d.ts.map +1 -1
- package/dist/src/task.js +117 -472
- package/dist/src/task.js.map +1 -1
- package/dist/src/task.spec.js +62 -154
- package/dist/src/task.spec.js.map +1 -1
- package/dist/src/transfer.d.ts +16 -22
- package/dist/src/transfer.d.ts.map +1 -1
- package/dist/src/transfer.js +16 -22
- package/dist/src/transfer.js.map +1 -1
- package/dist/src/transfer.spec.js +4 -34
- package/dist/src/transfer.spec.js.map +1 -1
- package/dist/src/unit-plan.d.ts +130 -0
- package/dist/src/unit-plan.d.ts.map +1 -0
- package/dist/src/unit-plan.js +107 -0
- package/dist/src/unit-plan.js.map +1 -0
- package/dist/src/unit-plan.spec.d.ts +6 -0
- package/dist/src/unit-plan.spec.d.ts.map +1 -0
- package/dist/src/unit-plan.spec.js +29 -0
- package/dist/src/unit-plan.spec.js.map +1 -0
- package/dist/src/workspace.d.ts +22 -11
- package/dist/src/workspace.d.ts.map +1 -1
- package/dist/src/workspace.js +10 -11
- package/dist/src/workspace.js.map +1 -1
- package/package.json +3 -3
- package/src/api.ts +276 -32
- package/src/collection-manifest.ts +53 -0
- package/src/dataflow.spec.ts +223 -31
- package/src/dataflow.ts +183 -26
- package/src/dataset-blob.spec.ts +117 -0
- package/src/dataset-blob.ts +157 -21
- package/src/dataset-ref.ts +5 -4
- package/src/environment.ts +3 -2
- package/src/execution.spec.ts +114 -0
- package/src/execution.ts +175 -51
- package/src/function.ts +19 -32
- package/src/index.ts +122 -39
- package/src/lock.ts +39 -22
- package/src/names.ts +39 -0
- package/src/package.ts +15 -71
- package/src/record.spec.ts +195 -0
- package/src/record.ts +489 -7
- package/src/release.spec.ts +47 -0
- package/src/release.ts +69 -0
- package/src/repository.ts +67 -0
- package/src/runner.spec.ts +11 -94
- package/src/runner.ts +16 -80
- package/src/structure.ts +0 -8
- package/src/task.spec.ts +67 -188
- package/src/task.ts +140 -522
- package/src/transfer.spec.ts +4 -51
- package/src/transfer.ts +16 -22
- package/src/unit-plan.spec.ts +31 -0
- package/src/unit-plan.ts +121 -0
- package/src/workspace.ts +13 -11
- package/dist/src/stream.d.ts +0 -97
- package/dist/src/stream.d.ts.map +0 -1
- package/dist/src/stream.js +0 -134
- package/dist/src/stream.js.map +0 -1
- package/dist/src/stream.spec.d.ts.map +0 -1
- package/dist/src/stream.spec.js +0 -60
- package/dist/src/stream.spec.js.map +0 -1
- package/src/stream.spec.ts +0 -88
- package/src/stream.ts +0 -170
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The segment-object layout: a collection dataset is a **manifest naming
|
|
7
|
+
* standalone segment objects**, not one segmented blob.
|
|
8
|
+
*
|
|
9
|
+
* The type itself lives in `east`, beside the container it describes, because
|
|
10
|
+
* every runtime must read it: a task input staged as a manifest is one file
|
|
11
|
+
* naming sibling segment files, and a body that iterates it pays for the
|
|
12
|
+
* segments it touches rather than for a splice of the whole value. This module
|
|
13
|
+
* re-exports it for the e3 packages and adds what only a store cares about.
|
|
14
|
+
*
|
|
15
|
+
* Three properties are why records at millions of entries are affordable, and
|
|
16
|
+
* every one of them is about successive states SHARING storage rather than
|
|
17
|
+
* about indexing, which the trailing index already gave:
|
|
18
|
+
*
|
|
19
|
+
* - **A one-row edit costs one segment.** The new state names the same objects
|
|
20
|
+
* as the old one bar the segment that changed, so a commit's new storage is
|
|
21
|
+
* the touched segments plus a manifest — not the whole value.
|
|
22
|
+
* - **Two states diff in O(changed segments)**, by comparing entry hashes. No
|
|
23
|
+
* value is decoded to find out what moved, which is what index maintenance
|
|
24
|
+
* and the mutation delta are built on.
|
|
25
|
+
* - **A segment can be checked against its own hash**, which a ranged read of
|
|
26
|
+
* one blob can never offer: no digest exists for a byte range. No reader
|
|
27
|
+
* checks it — a segment is trusted as stored, like any other object.
|
|
28
|
+
*
|
|
29
|
+
* The manifest is the envelope the garbage collector recognizes, which is why
|
|
30
|
+
* its `kind` is a stored field rather than something inferred: an object whose
|
|
31
|
+
* entries name other objects MUST be traversable by shape, or the first sweep
|
|
32
|
+
* deletes a record's segments.
|
|
33
|
+
*
|
|
34
|
+
* @packageDocumentation
|
|
35
|
+
*/
|
|
36
|
+
export { COLLECTION_MANIFEST_KIND, CollectionManifestType, CollectionManifestEntryType, type CollectionManifest, type CollectionManifestEntry, type Beast2ManifestSource, isCollectionManifestType, isCollectionManifest, isBeast2ManifestSource, encodeCollectionManifest, decodeCollectionManifest, readBeast2Manifest, manifestElementCount, manifestByteSize, } from '@elaraai/east';
|
|
37
|
+
//# sourceMappingURL=collection-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-manifest.d.ts","sourceRoot":"","sources":["../../src/collection-manifest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The segment-object layout: a collection dataset is a **manifest naming
|
|
7
|
+
* standalone segment objects**, not one segmented blob.
|
|
8
|
+
*
|
|
9
|
+
* The type itself lives in `east`, beside the container it describes, because
|
|
10
|
+
* every runtime must read it: a task input staged as a manifest is one file
|
|
11
|
+
* naming sibling segment files, and a body that iterates it pays for the
|
|
12
|
+
* segments it touches rather than for a splice of the whole value. This module
|
|
13
|
+
* re-exports it for the e3 packages and adds what only a store cares about.
|
|
14
|
+
*
|
|
15
|
+
* Three properties are why records at millions of entries are affordable, and
|
|
16
|
+
* every one of them is about successive states SHARING storage rather than
|
|
17
|
+
* about indexing, which the trailing index already gave:
|
|
18
|
+
*
|
|
19
|
+
* - **A one-row edit costs one segment.** The new state names the same objects
|
|
20
|
+
* as the old one bar the segment that changed, so a commit's new storage is
|
|
21
|
+
* the touched segments plus a manifest — not the whole value.
|
|
22
|
+
* - **Two states diff in O(changed segments)**, by comparing entry hashes. No
|
|
23
|
+
* value is decoded to find out what moved, which is what index maintenance
|
|
24
|
+
* and the mutation delta are built on.
|
|
25
|
+
* - **A segment can be checked against its own hash**, which a ranged read of
|
|
26
|
+
* one blob can never offer: no digest exists for a byte range. No reader
|
|
27
|
+
* checks it — a segment is trusted as stored, like any other object.
|
|
28
|
+
*
|
|
29
|
+
* The manifest is the envelope the garbage collector recognizes, which is why
|
|
30
|
+
* its `kind` is a stored field rather than something inferred: an object whose
|
|
31
|
+
* entries name other objects MUST be traversable by shape, or the first sweep
|
|
32
|
+
* deletes a record's segments.
|
|
33
|
+
*
|
|
34
|
+
* @packageDocumentation
|
|
35
|
+
*/
|
|
36
|
+
export { COLLECTION_MANIFEST_KIND, CollectionManifestType, CollectionManifestEntryType, isCollectionManifestType, isCollectionManifest, isBeast2ManifestSource, encodeCollectionManifest, decodeCollectionManifest, readBeast2Manifest, manifestElementCount, manifestByteSize, } from '@elaraai/east';
|
|
37
|
+
//# sourceMappingURL=collection-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-manifest.js","sourceRoot":"","sources":["../../src/collection-manifest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAI3B,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
package/dist/src/dataflow.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - Events stored inline as array (single file, not separate JSONL)
|
|
14
14
|
* - Tasks stored as Dict (not Map) for beast2 compatibility
|
|
15
15
|
*/
|
|
16
|
-
import { StructType, VariantType, ArrayType, DictType, StringType, IntegerType, BooleanType, DateTimeType, OptionType, ValueTypeOf } from '@elaraai/east';
|
|
16
|
+
import { StructType, VariantType, ArrayType, DictType, StringType, IntegerType, BooleanType, DateTimeType, OptionType, NullType, ValueTypeOf } from '@elaraai/east';
|
|
17
17
|
/**
|
|
18
18
|
* Status of a dataflow execution.
|
|
19
19
|
*/
|
|
@@ -46,6 +46,18 @@ export declare const TaskStateType: StructType<{
|
|
|
46
46
|
readonly completedAt: OptionType<DateTimeType>;
|
|
47
47
|
/** Duration in milliseconds */
|
|
48
48
|
readonly duration: OptionType<IntegerType>;
|
|
49
|
+
/** The `$plan` object of the stage a task split into pieces is in, while
|
|
50
|
+
* it runs, and across a yield, so a resumed run takes the stage up where
|
|
51
|
+
* it stopped. */
|
|
52
|
+
readonly plan: OptionType<StringType>;
|
|
53
|
+
/** The execution the task completed with — run, or served from the cache —
|
|
54
|
+
* by its inputs hash and id, which the run's record names. */
|
|
55
|
+
readonly execution: OptionType<StructType<{
|
|
56
|
+
/** The combined hash of the task's inputs */
|
|
57
|
+
readonly inputsHash: StringType;
|
|
58
|
+
/** The execution's id (UUIDv7) */
|
|
59
|
+
readonly executionId: StringType;
|
|
60
|
+
}>>;
|
|
49
61
|
}>;
|
|
50
62
|
export type TaskState = ValueTypeOf<typeof TaskStateType>;
|
|
51
63
|
/**
|
|
@@ -83,11 +95,47 @@ export declare const DataflowGraphType: StructType<{
|
|
|
83
95
|
}>>;
|
|
84
96
|
}>;
|
|
85
97
|
export type DataflowGraph = ValueTypeOf<typeof DataflowGraphType>;
|
|
98
|
+
/**
|
|
99
|
+
* A unit of a split task, by its place in the task: its stage — the pieces,
|
|
100
|
+
* or a level of the merges that assemble their outputs — and its index among
|
|
101
|
+
* the stage's units.
|
|
102
|
+
*/
|
|
103
|
+
export declare const StageUnitType: StructType<{
|
|
104
|
+
/** The merge level, from 1, and the levels the merges take; `none` for a
|
|
105
|
+
* piece */
|
|
106
|
+
readonly merge: OptionType<StructType<{
|
|
107
|
+
readonly level: IntegerType;
|
|
108
|
+
readonly levels: IntegerType;
|
|
109
|
+
}>>;
|
|
110
|
+
/** The unit's index in its stage, from 0 */
|
|
111
|
+
readonly index: IntegerType;
|
|
112
|
+
/** The units of its stage */
|
|
113
|
+
readonly units: IntegerType;
|
|
114
|
+
}>;
|
|
115
|
+
export type StageUnit = ValueTypeOf<typeof StageUnitType>;
|
|
116
|
+
/**
|
|
117
|
+
* Why a unit's runner was stopped and the unit requeued: `budget`, the guard
|
|
118
|
+
* stopped it with the runners past the budget; `machine`, the guard stopped it
|
|
119
|
+
* with the machine nearly out of memory; `cap`, its cgroup's cap killed it.
|
|
120
|
+
*/
|
|
121
|
+
export declare const RequeueReasonType: VariantType<{
|
|
122
|
+
readonly budget: NullType;
|
|
123
|
+
readonly machine: NullType;
|
|
124
|
+
readonly cap: NullType;
|
|
125
|
+
}>;
|
|
126
|
+
export type RequeueReason = ValueTypeOf<typeof RequeueReasonType>;
|
|
86
127
|
/**
|
|
87
128
|
* Execution events (VariantType for discriminated union).
|
|
88
129
|
*
|
|
89
130
|
* Events track the progress of a dataflow execution and are stored
|
|
90
131
|
* inline in the execution state (not as a separate JSONL file).
|
|
132
|
+
*
|
|
133
|
+
* @remarks
|
|
134
|
+
* Part of the execution state's wire: a reader decodes a state against the
|
|
135
|
+
* whole type it was written with, so a new event is a new form of the state,
|
|
136
|
+
* which the release that makes it carries repositories into with an upgrade
|
|
137
|
+
* step. Each unit's progress is a callback, {@link PartitionProgress}, and is
|
|
138
|
+
* not persisted.
|
|
91
139
|
*/
|
|
92
140
|
export declare const ExecutionEventType: VariantType<{
|
|
93
141
|
/** Execution started */
|
|
@@ -133,6 +181,10 @@ export declare const ExecutionEventType: VariantType<{
|
|
|
133
181
|
readonly outputHash: StringType;
|
|
134
182
|
/** Duration in milliseconds */
|
|
135
183
|
readonly duration: IntegerType;
|
|
184
|
+
/** The highest peak resident memory, in bytes, a runner of the task's
|
|
185
|
+
* execution reached; `none` when none reported one, or the cache served
|
|
186
|
+
* the task */
|
|
187
|
+
readonly peakBytes: OptionType<IntegerType>;
|
|
136
188
|
}>;
|
|
137
189
|
/** Task failed */
|
|
138
190
|
readonly task_failed: StructType<{
|
|
@@ -223,28 +275,101 @@ export declare const ExecutionEventType: VariantType<{
|
|
|
223
275
|
/** Path where version conflict was detected */
|
|
224
276
|
readonly conflictPath: StringType;
|
|
225
277
|
}>;
|
|
278
|
+
/** A task was split into pieces: its units start as the pieces, and its
|
|
279
|
+
* `$plan` names them. */
|
|
280
|
+
readonly task_split: StructType<{
|
|
281
|
+
/** Event sequence number */
|
|
282
|
+
readonly seq: IntegerType;
|
|
283
|
+
/** When the event occurred */
|
|
284
|
+
readonly timestamp: DateTimeType;
|
|
285
|
+
/** Task name */
|
|
286
|
+
readonly task: StringType;
|
|
287
|
+
/** The pieces the task was split into */
|
|
288
|
+
readonly pieces: IntegerType;
|
|
289
|
+
}>;
|
|
290
|
+
/** A level of the merges assembling a split task's pieces started. */
|
|
291
|
+
readonly task_merge_started: StructType<{
|
|
292
|
+
/** Event sequence number */
|
|
293
|
+
readonly seq: IntegerType;
|
|
294
|
+
/** When the event occurred */
|
|
295
|
+
readonly timestamp: DateTimeType;
|
|
296
|
+
/** Task name */
|
|
297
|
+
readonly task: StringType;
|
|
298
|
+
/** The level, from 1 */
|
|
299
|
+
readonly level: IntegerType;
|
|
300
|
+
/** The number of levels the merges take */
|
|
301
|
+
readonly levels: IntegerType;
|
|
302
|
+
/** The merge units of the level */
|
|
303
|
+
readonly units: IntegerType;
|
|
304
|
+
}>;
|
|
305
|
+
/** A level of the merges assembling a split task's pieces finished. */
|
|
306
|
+
readonly task_merge_completed: StructType<{
|
|
307
|
+
/** Event sequence number */
|
|
308
|
+
readonly seq: IntegerType;
|
|
309
|
+
/** When the event occurred */
|
|
310
|
+
readonly timestamp: DateTimeType;
|
|
311
|
+
/** Task name */
|
|
312
|
+
readonly task: StringType;
|
|
313
|
+
/** The level, from 1 */
|
|
314
|
+
readonly level: IntegerType;
|
|
315
|
+
/** The number of levels the merges take */
|
|
316
|
+
readonly levels: IntegerType;
|
|
317
|
+
}>;
|
|
318
|
+
/** A unit of a split task was stopped and requeued: it runs again, under
|
|
319
|
+
* the same execution, once the memory it reserves fits. */
|
|
320
|
+
readonly unit_requeued: StructType<{
|
|
321
|
+
/** Event sequence number */
|
|
322
|
+
readonly seq: IntegerType;
|
|
323
|
+
/** When the event occurred */
|
|
324
|
+
readonly timestamp: DateTimeType;
|
|
325
|
+
/** Task name */
|
|
326
|
+
readonly task: StringType;
|
|
327
|
+
/** The unit */
|
|
328
|
+
readonly unit: StructType<{
|
|
329
|
+
/** The merge level, from 1, and the levels the merges take; `none` for a
|
|
330
|
+
* piece */
|
|
331
|
+
readonly merge: OptionType<StructType<{
|
|
332
|
+
readonly level: IntegerType;
|
|
333
|
+
readonly levels: IntegerType;
|
|
334
|
+
}>>;
|
|
335
|
+
/** The unit's index in its stage, from 0 */
|
|
336
|
+
readonly index: IntegerType;
|
|
337
|
+
/** The units of its stage */
|
|
338
|
+
readonly units: IntegerType;
|
|
339
|
+
}>;
|
|
340
|
+
/** Why its runner was stopped */
|
|
341
|
+
readonly reason: VariantType<{
|
|
342
|
+
readonly budget: NullType;
|
|
343
|
+
readonly machine: NullType;
|
|
344
|
+
readonly cap: NullType;
|
|
345
|
+
}>;
|
|
346
|
+
/** The most its runner was measured using, in bytes: for a cap, the cap */
|
|
347
|
+
readonly peak: IntegerType;
|
|
348
|
+
/** The memory, in bytes, it reserves when it runs again */
|
|
349
|
+
readonly reserves: IntegerType;
|
|
350
|
+
}>;
|
|
226
351
|
}>;
|
|
227
352
|
export type ExecutionEvent = ValueTypeOf<typeof ExecutionEventType>;
|
|
228
353
|
/**
|
|
229
|
-
* Progress notification for one unit of a
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
* this callback.
|
|
354
|
+
* Progress notification for one unit of a task split into pieces — a piece,
|
|
355
|
+
* or a unit merging or folding their outputs. Delivered through runner-layer
|
|
356
|
+
* callbacks while the task runs, and not persisted: the execution state records
|
|
357
|
+
* a split task's stages, not each unit, so it stays small however many pieces
|
|
358
|
+
* a task has. The local `[PART]`/`[MERGE]`/`[COMBINE]` lines come straight
|
|
359
|
+
* from this callback.
|
|
236
360
|
*/
|
|
237
361
|
export interface PartitionProgress {
|
|
238
|
-
/** Which phase the unit belongs to
|
|
362
|
+
/** Which phase the unit belongs to: a piece (`partition`), a merge of a set
|
|
363
|
+
* or dict output, or a fold of a fold output (`combine`). */
|
|
239
364
|
phase: 'partition' | 'combine' | 'merge';
|
|
240
365
|
/** Zero-based index of the unit within its phase. */
|
|
241
366
|
index: number;
|
|
242
|
-
/** Total units in the phase (
|
|
367
|
+
/** Total units in the phase (the pieces, or the units of a merge level). */
|
|
243
368
|
total: number;
|
|
244
|
-
/** Units of the phase
|
|
245
|
-
* is `completed`. */
|
|
369
|
+
/** Units of the phase that succeeded so far, including this one when
|
|
370
|
+
* `state` is `completed`. */
|
|
246
371
|
completed: number;
|
|
247
|
-
/** Whether the unit started or
|
|
372
|
+
/** Whether the unit started, or succeeded. */
|
|
248
373
|
state: 'started' | 'completed';
|
|
249
374
|
/** Whether the unit was served from the execution cache (completed only). */
|
|
250
375
|
cached?: boolean;
|
|
@@ -260,9 +385,15 @@ export interface PartitionProgress {
|
|
|
260
385
|
* - Tasks are stored as a Dict (serializes as object, not array of tuples)
|
|
261
386
|
* - Events are stored inline (not as separate JSONL file)
|
|
262
387
|
* - Dates are Date objects (via DateTimeType)
|
|
388
|
+
* - Read it back with {@link decodeDataflowExecutionState}, which reads this
|
|
389
|
+
* form alone. A release that changes it ships a repository upgrade step,
|
|
390
|
+
* which carries a repository's states into the new form when that release
|
|
391
|
+
* first opens it.
|
|
263
392
|
*/
|
|
264
393
|
export declare const DataflowExecutionStateType: StructType<{
|
|
265
|
-
/**
|
|
394
|
+
/** The release of e3 that wrote the state */
|
|
395
|
+
readonly release: StringType;
|
|
396
|
+
/** The run's id, a UUIDv7, which its `DataflowRun` record carries as `runId` */
|
|
266
397
|
readonly id: StringType;
|
|
267
398
|
/** Repository identifier */
|
|
268
399
|
readonly repo: StringType;
|
|
@@ -270,8 +401,6 @@ export declare const DataflowExecutionStateType: StructType<{
|
|
|
270
401
|
readonly workspace: StringType;
|
|
271
402
|
/** When the execution started */
|
|
272
403
|
readonly startedAt: DateTimeType;
|
|
273
|
-
/** Maximum concurrent task executions */
|
|
274
|
-
readonly concurrency: IntegerType;
|
|
275
404
|
/** Force re-execution even if cached */
|
|
276
405
|
readonly force: BooleanType;
|
|
277
406
|
/** Filter to run only specific task(s) by exact name */
|
|
@@ -314,6 +443,18 @@ export declare const DataflowExecutionStateType: StructType<{
|
|
|
314
443
|
readonly completedAt: OptionType<DateTimeType>;
|
|
315
444
|
/** Duration in milliseconds */
|
|
316
445
|
readonly duration: OptionType<IntegerType>;
|
|
446
|
+
/** The `$plan` object of the stage a task split into pieces is in, while
|
|
447
|
+
* it runs, and across a yield, so a resumed run takes the stage up where
|
|
448
|
+
* it stopped. */
|
|
449
|
+
readonly plan: OptionType<StringType>;
|
|
450
|
+
/** The execution the task completed with — run, or served from the cache —
|
|
451
|
+
* by its inputs hash and id, which the run's record names. */
|
|
452
|
+
readonly execution: OptionType<StructType<{
|
|
453
|
+
/** The combined hash of the task's inputs */
|
|
454
|
+
readonly inputsHash: StringType;
|
|
455
|
+
/** The execution's id (UUIDv7) */
|
|
456
|
+
readonly executionId: StringType;
|
|
457
|
+
}>>;
|
|
317
458
|
}>>;
|
|
318
459
|
/** Number of tasks executed (not from cache) */
|
|
319
460
|
readonly executed: IntegerType;
|
|
@@ -382,6 +523,10 @@ export declare const DataflowExecutionStateType: StructType<{
|
|
|
382
523
|
readonly outputHash: StringType;
|
|
383
524
|
/** Duration in milliseconds */
|
|
384
525
|
readonly duration: IntegerType;
|
|
526
|
+
/** The highest peak resident memory, in bytes, a runner of the task's
|
|
527
|
+
* execution reached; `none` when none reported one, or the cache served
|
|
528
|
+
* the task */
|
|
529
|
+
readonly peakBytes: OptionType<IntegerType>;
|
|
385
530
|
}>;
|
|
386
531
|
/** Task failed */
|
|
387
532
|
readonly task_failed: StructType<{
|
|
@@ -472,11 +617,100 @@ export declare const DataflowExecutionStateType: StructType<{
|
|
|
472
617
|
/** Path where version conflict was detected */
|
|
473
618
|
readonly conflictPath: StringType;
|
|
474
619
|
}>;
|
|
620
|
+
/** A task was split into pieces: its units start as the pieces, and its
|
|
621
|
+
* `$plan` names them. */
|
|
622
|
+
readonly task_split: StructType<{
|
|
623
|
+
/** Event sequence number */
|
|
624
|
+
readonly seq: IntegerType;
|
|
625
|
+
/** When the event occurred */
|
|
626
|
+
readonly timestamp: DateTimeType;
|
|
627
|
+
/** Task name */
|
|
628
|
+
readonly task: StringType;
|
|
629
|
+
/** The pieces the task was split into */
|
|
630
|
+
readonly pieces: IntegerType;
|
|
631
|
+
}>;
|
|
632
|
+
/** A level of the merges assembling a split task's pieces started. */
|
|
633
|
+
readonly task_merge_started: StructType<{
|
|
634
|
+
/** Event sequence number */
|
|
635
|
+
readonly seq: IntegerType;
|
|
636
|
+
/** When the event occurred */
|
|
637
|
+
readonly timestamp: DateTimeType;
|
|
638
|
+
/** Task name */
|
|
639
|
+
readonly task: StringType;
|
|
640
|
+
/** The level, from 1 */
|
|
641
|
+
readonly level: IntegerType;
|
|
642
|
+
/** The number of levels the merges take */
|
|
643
|
+
readonly levels: IntegerType;
|
|
644
|
+
/** The merge units of the level */
|
|
645
|
+
readonly units: IntegerType;
|
|
646
|
+
}>;
|
|
647
|
+
/** A level of the merges assembling a split task's pieces finished. */
|
|
648
|
+
readonly task_merge_completed: StructType<{
|
|
649
|
+
/** Event sequence number */
|
|
650
|
+
readonly seq: IntegerType;
|
|
651
|
+
/** When the event occurred */
|
|
652
|
+
readonly timestamp: DateTimeType;
|
|
653
|
+
/** Task name */
|
|
654
|
+
readonly task: StringType;
|
|
655
|
+
/** The level, from 1 */
|
|
656
|
+
readonly level: IntegerType;
|
|
657
|
+
/** The number of levels the merges take */
|
|
658
|
+
readonly levels: IntegerType;
|
|
659
|
+
}>;
|
|
660
|
+
/** A unit of a split task was stopped and requeued: it runs again, under
|
|
661
|
+
* the same execution, once the memory it reserves fits. */
|
|
662
|
+
readonly unit_requeued: StructType<{
|
|
663
|
+
/** Event sequence number */
|
|
664
|
+
readonly seq: IntegerType;
|
|
665
|
+
/** When the event occurred */
|
|
666
|
+
readonly timestamp: DateTimeType;
|
|
667
|
+
/** Task name */
|
|
668
|
+
readonly task: StringType;
|
|
669
|
+
/** The unit */
|
|
670
|
+
readonly unit: StructType<{
|
|
671
|
+
/** The merge level, from 1, and the levels the merges take; `none` for a
|
|
672
|
+
* piece */
|
|
673
|
+
readonly merge: OptionType<StructType<{
|
|
674
|
+
readonly level: IntegerType;
|
|
675
|
+
readonly levels: IntegerType;
|
|
676
|
+
}>>;
|
|
677
|
+
/** The unit's index in its stage, from 0 */
|
|
678
|
+
readonly index: IntegerType;
|
|
679
|
+
/** The units of its stage */
|
|
680
|
+
readonly units: IntegerType;
|
|
681
|
+
}>;
|
|
682
|
+
/** Why its runner was stopped */
|
|
683
|
+
readonly reason: VariantType<{
|
|
684
|
+
readonly budget: NullType;
|
|
685
|
+
readonly machine: NullType;
|
|
686
|
+
readonly cap: NullType;
|
|
687
|
+
}>;
|
|
688
|
+
/** The most its runner was measured using, in bytes: for a cap, the cap */
|
|
689
|
+
readonly peak: IntegerType;
|
|
690
|
+
/** The memory, in bytes, it reserves when it runs again */
|
|
691
|
+
readonly reserves: IntegerType;
|
|
692
|
+
}>;
|
|
475
693
|
}>>;
|
|
476
694
|
/** Sequence number for next event (auto-increment) */
|
|
477
695
|
readonly eventSeq: IntegerType;
|
|
478
696
|
}>;
|
|
479
697
|
export type DataflowExecutionState = ValueTypeOf<typeof DataflowExecutionStateType>;
|
|
698
|
+
/**
|
|
699
|
+
* Decodes a stored execution state.
|
|
700
|
+
*
|
|
701
|
+
* The form is told by the type the state's header declares, since a decoder
|
|
702
|
+
* built for another form's type would misread it rather than fail. A
|
|
703
|
+
* repository's upgrade steps carry its states into this form when this
|
|
704
|
+
* release first opens it, so a state of another form is refused, naming the
|
|
705
|
+
* release that wrote it: a newer one, whose e3 reads it, or an older one that
|
|
706
|
+
* no step carries forward, whose repository is re-created.
|
|
707
|
+
*
|
|
708
|
+
* @param data - the stored state
|
|
709
|
+
* @returns the state
|
|
710
|
+
* @throws {Error} When the state is of another form, naming the release that
|
|
711
|
+
* wrote it, or the data is not an execution state.
|
|
712
|
+
*/
|
|
713
|
+
export declare function decodeDataflowExecutionState(data: Uint8Array): DataflowExecutionState;
|
|
480
714
|
/**
|
|
481
715
|
* Status of a dataflow run.
|
|
482
716
|
*/
|
|
@@ -497,11 +731,18 @@ export declare const DataflowRunStatusType: VariantType<{
|
|
|
497
731
|
}>;
|
|
498
732
|
export type DataflowRunStatus = ValueTypeOf<typeof DataflowRunStatusType>;
|
|
499
733
|
/**
|
|
500
|
-
* Record of a task execution within a dataflow run
|
|
734
|
+
* Record of a task execution within a dataflow run: the execution the run
|
|
735
|
+
* used, which a local repository keeps at
|
|
736
|
+
* executions/<taskHash>/<inputsHash>/<executionId>/, whatever the workspace
|
|
737
|
+
* has held since.
|
|
501
738
|
*/
|
|
502
739
|
export declare const TaskExecutionRecordType: StructType<{
|
|
503
|
-
/** Execution ID (UUIDv7) */
|
|
740
|
+
/** Execution ID (UUIDv7): the attempt that ran, or the one the cache served */
|
|
504
741
|
readonly executionId: StringType;
|
|
742
|
+
/** Hash of the task object */
|
|
743
|
+
readonly taskHash: StringType;
|
|
744
|
+
/** Combined hash of the task's inputs */
|
|
745
|
+
readonly inputsHash: StringType;
|
|
505
746
|
/** Whether this was a cache hit */
|
|
506
747
|
readonly cached: BooleanType;
|
|
507
748
|
/** Output version vector (which root input versions produced this output) */
|
|
@@ -571,8 +812,12 @@ export declare const DataflowRunType: StructType<{
|
|
|
571
812
|
readonly outputVersions: OptionType<DictType<StringType, StringType>>;
|
|
572
813
|
/** Map of task name -> execution record */
|
|
573
814
|
readonly taskExecutions: DictType<StringType, StructType<{
|
|
574
|
-
/** Execution ID (UUIDv7) */
|
|
815
|
+
/** Execution ID (UUIDv7): the attempt that ran, or the one the cache served */
|
|
575
816
|
readonly executionId: StringType;
|
|
817
|
+
/** Hash of the task object */
|
|
818
|
+
readonly taskHash: StringType;
|
|
819
|
+
/** Combined hash of the task's inputs */
|
|
820
|
+
readonly inputsHash: StringType;
|
|
576
821
|
/** Whether this was a cache hit */
|
|
577
822
|
readonly cached: BooleanType;
|
|
578
823
|
/** Output version vector (which root input versions produced this output) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/dataflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/dataflow.ts"],"names":[],"mappings":"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"}
|