@workglow/task-graph 0.2.37 → 0.3.1

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 (46) hide show
  1. package/README.md +174 -46
  2. package/dist/browser.js +639 -368
  3. package/dist/browser.js.map +19 -15
  4. package/dist/bun.js +639 -368
  5. package/dist/bun.js.map +19 -15
  6. package/dist/cache/CacheJanitor.d.ts +27 -0
  7. package/dist/cache/CacheJanitor.d.ts.map +1 -0
  8. package/dist/cache/CachePolicy.d.ts +16 -0
  9. package/dist/cache/CachePolicy.d.ts.map +1 -0
  10. package/dist/cache/CacheRegistry.d.ts +30 -0
  11. package/dist/cache/CacheRegistry.d.ts.map +1 -0
  12. package/dist/cache/RunPrivateCacheRepo.d.ts +56 -0
  13. package/dist/cache/RunPrivateCacheRepo.d.ts.map +1 -0
  14. package/dist/cache/index.d.ts +10 -0
  15. package/dist/cache/index.d.ts.map +1 -0
  16. package/dist/common.d.ts +1 -0
  17. package/dist/common.d.ts.map +1 -1
  18. package/dist/node.js +639 -368
  19. package/dist/node.js.map +19 -15
  20. package/dist/storage/TaskOutputRepository.d.ts +40 -4
  21. package/dist/storage/TaskOutputRepository.d.ts.map +1 -1
  22. package/dist/storage/TaskOutputTabularRepository.d.ts +27 -0
  23. package/dist/storage/TaskOutputTabularRepository.d.ts.map +1 -1
  24. package/dist/task/CacheCoordinator.d.ts +17 -0
  25. package/dist/task/CacheCoordinator.d.ts.map +1 -1
  26. package/dist/task/FallbackTask.d.ts +0 -1
  27. package/dist/task/FallbackTask.d.ts.map +1 -1
  28. package/dist/task/FallbackTaskRunner.d.ts +8 -0
  29. package/dist/task/FallbackTaskRunner.d.ts.map +1 -1
  30. package/dist/task/ITask.d.ts +21 -1
  31. package/dist/task/ITask.d.ts.map +1 -1
  32. package/dist/task/Task.d.ts +50 -0
  33. package/dist/task/Task.d.ts.map +1 -1
  34. package/dist/task/TaskJSON.d.ts +0 -13
  35. package/dist/task/TaskJSON.d.ts.map +1 -1
  36. package/dist/task/TaskRunner.d.ts +28 -0
  37. package/dist/task/TaskRunner.d.ts.map +1 -1
  38. package/dist/task-graph/Conversions.d.ts.map +1 -1
  39. package/dist/task-graph/StreamPump.d.ts +8 -0
  40. package/dist/task-graph/StreamPump.d.ts.map +1 -1
  41. package/dist/task-graph/TaskGraph.d.ts +7 -0
  42. package/dist/task-graph/TaskGraph.d.ts.map +1 -1
  43. package/dist/task-graph/TaskGraphRunner.d.ts +45 -0
  44. package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
  45. package/package.json +7 -7
  46. package/src/EXECUTION_MODEL.md +91 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraph.d.ts","sourceRoot":"","sources":["../../src/task-graph/TaskGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskGraph.d.ts","sourceRoot":"","sources":["../../src/task-graph/TaskGraph.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ConvertAllToOptionalArray, ResourceScope, ServiceRegistry } from "@workglow/util";
7
+ import { RunPrivateCacheRepo } from "../cache";
7
8
  import { TaskOutputRepository } from "../storage/TaskOutputRepository";
8
9
  import { ITask } from "../task/ITask";
9
10
  import { TaskError } from "../task/TaskError";
@@ -73,6 +74,13 @@ export declare class TaskGraphRunner {
73
74
  * Output cache repository
74
75
  */
75
76
  protected outputCache?: TaskOutputRepository;
77
+ /**
78
+ * True when the caller explicitly passed `outputCache: false` in the run
79
+ * config, meaning all caching (including CACHE_REGISTRY-based routing) should
80
+ * be suppressed. Distinct from `this.outputCache === undefined`, which just
81
+ * means no legacy repo was configured (CACHE_REGISTRY may still apply).
82
+ */
83
+ protected legacyCacheExplicitlyDisabled: boolean;
76
84
  /**
77
85
  * Whether leaf tasks (no outgoing edges) should accumulate their streaming
78
86
  * output. True by default so workflow return values are complete.
@@ -93,6 +101,19 @@ export declare class TaskGraphRunner {
93
101
  * and disable() methods (which take no arguments) have something to act on.
94
102
  */
95
103
  protected currentCtx?: RunContext;
104
+ /**
105
+ * Stable identifier for the current graph run. Threaded from
106
+ * {@link TaskGraphRunConfig.runId} through handleStart so that each
107
+ * per-task run call carries the same identifier.
108
+ */
109
+ protected runId?: string;
110
+ /**
111
+ * Run-private cache wrapper for the current run. Set by handleStart when a
112
+ * runId and private cache slot are both present; cleared at the end of each
113
+ * run. Used to fire-and-forget clearRun() after a successful run.
114
+ */
115
+ protected currentRunPrivate?: RunPrivateCacheRepo;
116
+ protected baseRegistryForRun?: ServiceRegistry;
96
117
  /**
97
118
  * Edge materializer — owns dataflow read/write, transforms, and error-port routing.
98
119
  */
@@ -162,6 +183,30 @@ export declare class TaskGraphRunner {
162
183
  * @param graph The task graph to reset
163
184
  */
164
185
  resetGraph(graph: TaskGraph, runnerId: string): void;
186
+ /**
187
+ * Tracks private cache repos that have already received the durability warning,
188
+ * keyed by the repo instance. WeakSet so a freshly constructed repo that is no
189
+ * longer referenced is automatically eligible for re-warning if it shows up
190
+ * again later. Static because routing is repo-instance scoped, not runner
191
+ * scoped — a process can have one durable repo and many `TaskGraphRunner`s.
192
+ */
193
+ private static __durabilityWarnedRepos;
194
+ /**
195
+ * Conservative two-tier detector that decides whether a graph may route any
196
+ * task to the `private` cache slot. Used by both the durability warning and
197
+ * the `runId`-required guard in {@link handleStart}.
198
+ *
199
+ * 1. Read the static `cachePolicy` off the task's constructor. If `kind` is
200
+ * "private", the task is definitely private.
201
+ * 2. Otherwise, if the task overrides `getCachePolicy` (i.e. its prototype's
202
+ * method is not `Task.prototype.getCachePolicy`), conservatively treat it
203
+ * as potentially private — the override may decide based on inputs that
204
+ * are not available at graph-start time.
205
+ *
206
+ * Note: probing `getCachePolicy({} as any)` is unsafe because input-dependent
207
+ * overrides can throw or return the wrong branch when given empty inputs.
208
+ */
209
+ static graphUsesPrivatePolicy(graph: TaskGraph): boolean;
165
210
  /**
166
211
  * Handles the start of task graph execution
167
212
  * @param parentSignal Optional abort signal from parent
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraphRunner.d.ts","sourceRoot":"","sources":["../../src/task-graph/TaskGraphRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskGraphRunner.d.ts","sourceRoot":"","sources":["../../src/task-graph/TaskGraphRunner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@workglow/task-graph",
3
3
  "type": "module",
4
- "version": "0.2.37",
4
+ "version": "0.3.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/workglow-dev/libs.git",
@@ -50,9 +50,9 @@
50
50
  "access": "public"
51
51
  },
52
52
  "peerDependencies": {
53
- "@workglow/job-queue": "0.2.37",
54
- "@workglow/storage": "0.2.37",
55
- "@workglow/util": "0.2.37"
53
+ "@workglow/job-queue": "0.3.1",
54
+ "@workglow/storage": "0.3.1",
55
+ "@workglow/util": "0.3.1"
56
56
  },
57
57
  "peerDependenciesMeta": {
58
58
  "@workglow/job-queue": {
@@ -66,8 +66,8 @@
66
66
  }
67
67
  },
68
68
  "devDependencies": {
69
- "@workglow/job-queue": "0.2.37",
70
- "@workglow/storage": "0.2.37",
71
- "@workglow/util": "0.2.37"
69
+ "@workglow/job-queue": "0.3.1",
70
+ "@workglow/storage": "0.3.1",
71
+ "@workglow/util": "0.3.1"
72
72
  }
73
73
  }
@@ -8,6 +8,7 @@ This document explains the internal execution model of the task graph system. It
8
8
  - [Task Lifecycle](#task-lifecycle)
9
9
  - [Normal Execution (run)](#normal-execution-run)
10
10
  - [Preview Execution (runPreview)](#preview-execution-runpreview)
11
+ - [Cache, Run Identity, and Durable Execution](#cache-run-identity-and-durable-execution)
11
12
  - [Dataflow and Input Propagation](#dataflow-and-input-propagation)
12
13
  - [GraphAsTask (Subgraphs)](#graphastask-subgraphs)
13
14
  - [Key Invariants](#key-invariants)
@@ -78,9 +79,10 @@ TaskRunner.run(overrides)
78
79
  2. setInput(overrides) # Merge overrides into runInputData
79
80
  3. resolveSchemaInputs() # Resolve model/repository strings to instances
80
81
  4. validateInput() # Validate against input schema
81
- 5. Check cache # If cacheable: cache hit returns verbatim, no preview overlay
82
+ 5. Check cache # Per task's CachePolicy + CacheRegistry slot;
83
+ # cache hit returns verbatim, no preview overlay
82
84
  6. executeTask() # Call task.execute(input, context) only
83
- 7. Store in cache # If cacheable, cache the result
85
+ 7. Store in cache # If policy ≠ "none" and slot present, persist the result
84
86
  8. handleComplete() # Set status = COMPLETED
85
87
 
86
88
  Return runOutputData (locked)
@@ -216,6 +218,93 @@ If a preview needs the prior output, it can read `this.runOutputData` directly.
216
218
 
217
219
  ---
218
220
 
221
+ ## Cache, Run Identity, and Durable Execution
222
+
223
+ ### Cache policy
224
+
225
+ Every task declares a `CachePolicy` — a property of the task type, not of the deployment:
226
+
227
+ | Kind | Meaning | Cache slot used |
228
+ | --------------- | ---------------------------------------------------------------------------------------- | ------------------- |
229
+ | `deterministic` | Same inputs → same outputs. Safe to share across runs (and, in apps, across projects). | `deterministic` |
230
+ | `private` | Non-deterministic but worth caching for the lifetime of one run (e.g., seedless images). | `private` (per-run) |
231
+ | `none` | Do not cache. Side-effecting tasks (writes to external systems, sends, mutations). | _none_ |
232
+
233
+ The default is `{ kind: "deterministic" }`. Policy can be made input-dependent by overriding `getCachePolicy(inputs)` — e.g., an image task that returns `deterministic` when a seed is provided and `private` when it isn't.
234
+
235
+ ### CacheRegistry
236
+
237
+ A two-slot service registered under `CACHE_REGISTRY`:
238
+
239
+ ```ts
240
+ interface CacheRegistry {
241
+ deterministic?: TaskOutputRepository;
242
+ private?: TaskOutputRepository;
243
+ }
244
+ ```
245
+
246
+ `TaskGraphRunner` resolves the registry from the per-run `ServiceRegistry` and dispatches each task's read/write to the slot named by its policy. Both slots are independently optional. A missing slot is a silent no-op: the task runs uncached, no error.
247
+
248
+ For the `private` slot, the runner constructs a per-run `RunPrivateCacheRepo` wrapper that prefixes every key with `__run:${runId}::`. Two runs with different `runId`s never see each other's rows; the same `runId` (a restart) does.
249
+
250
+ ### Run identity (`runId`)
251
+
252
+ `runId` is an opaque string passed in `TaskGraphRunConfig`. `TaskGraph.run` takes `(input, config)` — `runId` lives in the config (second argument), not the input:
253
+
254
+ ```ts
255
+ graph.run({}, { runId, registry, ... });
256
+ ```
257
+
258
+ The caller owns generation. The contract:
259
+
260
+ - A user-triggered run gets a fresh `runId` (UUID typical).
261
+ - A restart after a crash uses the **same** `runId` — that is how durable resume works.
262
+ - Concurrent runs of the same workflow get **different** `runId`s.
263
+
264
+ `handleStart` rejects the run synchronously only when **all** of the following hold: a `CACHE_REGISTRY` is registered, its `private` slot is populated, and the graph contains at least one task whose policy may resolve to `kind: "private"` (a static `cachePolicy` of that kind, or a `getCachePolicy(inputs)` override that can return it). Graphs without a private slot — or without any private-policy task — can omit `runId`.
265
+
266
+ ### Cache key
267
+
268
+ ```
269
+ key = sha256(taskType + getCacheVersion() + fingerprint(inputs))
270
+ ```
271
+
272
+ `fingerprint(inputs)` reuses the `PortCodec` normalization in `CacheCoordinator` — ports with `format` annotations hash by their canonical wire representation. Scope namespacing (the `runId` prefix for the private tier) is handled by the repo wrapper, not the key function.
273
+
274
+ `getCacheVersion()` walks the prototype chain and combines each ancestor's static `version` (default `1`). Bump `version` on a task when its semantics change — every prior cached entry becomes a miss.
275
+
276
+ ### Lifecycle of cache rows
277
+
278
+ | Tier | Written | Read | Deleted |
279
+ | --------------- | -------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
280
+ | `deterministic` | On task success | On task start | Never automatically. App owns invalidation (typically via `version` bumps). |
281
+ | `private` | On task success | On task start, filtered to current `runId` | **(a)** `privateRepo.clearRun()` on `succeeded` (the wrapper already knows its `runId`). **(b)** TTL sweep via `CacheJanitor.sweepStaleRunPrivate(olderThanMs)` for abandoned runs. |
282
+
283
+ Failed tasks are never cached — only `Ok` results reach `saveOutput`. `saveOutput` is upsert by primary key (last writer wins) — the underlying `TaskOutputTabularRepository` calls `put()` on its tabular storage, so a same-key write replaces the existing row.
284
+
285
+ ### Durable execution model
286
+
287
+ A run is an atomic unit on a single worker. When the worker crashes:
288
+
289
+ 1. Builder (or whatever scheduler dispatched the run) detects the crash via heartbeat / timeout.
290
+ 2. The same job is re-dispatched **with the same `runId`** to a (possibly different) worker.
291
+ 3. The new process constructs a fresh in-memory scheduler, but the durable `private` repo still holds every task output that completed before the crash.
292
+ 4. The runner re-traverses the DAG from scratch; cache hits skip completed work, cache misses execute.
293
+
294
+ The runner emits a one-time startup warning if any task in the graph declares `kind: "private"` and the registered `private` repo reports `isDurable() === false`. The detection is a repo capability flag, not a registration check — in-memory backings, ephemeral wrappers, and test doubles all surface as non-durable.
295
+
296
+ #### What durable execution does **not** cover
297
+
298
+ - **Mid-graph checkpointing of in-flight scheduler state.** Crashed runs re-execute from scratch; the cache absorbs completed work. There is no resumption of a single in-flight task.
299
+ - **Streaming partial outputs.** A task that crashed mid-stream re-executes from scratch on restart; only fully completed tasks become cache hits.
300
+ - **Splitting one run across multiple workers.** A run is atomic on one worker.
301
+
302
+ ### Re-dispatch correctness invariant
303
+
304
+ Re-execution must produce the same DAG traversal given the same inputs and cache state. Task ordering, parallelism limits, and scheduling decisions in `RunScheduler` must not depend on wall-clock time, machine identity, or worker-local random state. Today's scheduler satisfies this; the model treats it as a maintained invariant.
305
+
306
+ ---
307
+
219
308
  ## Dataflow and Input Propagation
220
309
 
221
310
  ### How Data Flows Between Tasks