@adonis-agora/durable 0.46.1 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/assets/spa/assets/{index-DU6cGcJz.css → index-DtGMBUDm.css} +1 -1
  3. package/dist/assets/spa/assets/{index-CL6q2kMB.js → index-_VISH9Xg.js} +4 -4
  4. package/dist/assets/spa/assets/index-_VISH9Xg.js.map +1 -0
  5. package/dist/assets/spa/index.html +2 -2
  6. package/dist/configure.d.ts.map +1 -1
  7. package/dist/configure.js +1 -0
  8. package/dist/configure.js.map +1 -1
  9. package/dist/providers/durable_provider.d.ts +0 -25
  10. package/dist/providers/durable_provider.d.ts.map +1 -1
  11. package/dist/providers/durable_provider.js +29 -5
  12. package/dist/providers/durable_provider.js.map +1 -1
  13. package/dist/src/codec-state-store.d.ts +3 -0
  14. package/dist/src/codec-state-store.d.ts.map +1 -1
  15. package/dist/src/codec-state-store.js +7 -0
  16. package/dist/src/codec-state-store.js.map +1 -1
  17. package/dist/src/completion.d.ts +11 -0
  18. package/dist/src/completion.d.ts.map +1 -1
  19. package/dist/src/completion.js +18 -1
  20. package/dist/src/completion.js.map +1 -1
  21. package/dist/src/dashboard/index.d.ts +1 -1
  22. package/dist/src/dashboard/index.js +1 -1
  23. package/dist/src/engine.d.ts +47 -0
  24. package/dist/src/engine.d.ts.map +1 -1
  25. package/dist/src/engine.js +251 -18
  26. package/dist/src/engine.js.map +1 -1
  27. package/dist/src/errors.d.ts +18 -11
  28. package/dist/src/errors.d.ts.map +1 -1
  29. package/dist/src/errors.js +9 -7
  30. package/dist/src/errors.js.map +1 -1
  31. package/dist/src/fan-join.d.ts +4 -3
  32. package/dist/src/fan-join.d.ts.map +1 -1
  33. package/dist/src/fan-join.js +5 -4
  34. package/dist/src/fan-join.js.map +1 -1
  35. package/dist/src/handshake/announced.d.ts +94 -0
  36. package/dist/src/handshake/announced.d.ts.map +1 -0
  37. package/dist/src/handshake/announced.js +113 -0
  38. package/dist/src/handshake/announced.js.map +1 -0
  39. package/dist/src/handshake/descriptor.d.ts +59 -0
  40. package/dist/src/handshake/descriptor.d.ts.map +1 -1
  41. package/dist/src/handshake/descriptor.js +38 -0
  42. package/dist/src/handshake/descriptor.js.map +1 -1
  43. package/dist/src/index.d.ts +3 -1
  44. package/dist/src/index.d.ts.map +1 -1
  45. package/dist/src/index.js +3 -1
  46. package/dist/src/index.js.map +1 -1
  47. package/dist/src/interfaces.d.ts +49 -4
  48. package/dist/src/interfaces.d.ts.map +1 -1
  49. package/dist/src/interfaces.js.map +1 -1
  50. package/dist/src/metrics.d.ts +5 -0
  51. package/dist/src/metrics.d.ts.map +1 -1
  52. package/dist/src/metrics.js +14 -1
  53. package/dist/src/metrics.js.map +1 -1
  54. package/dist/src/on-error.d.ts +59 -0
  55. package/dist/src/on-error.d.ts.map +1 -0
  56. package/dist/src/on-error.js +71 -0
  57. package/dist/src/on-error.js.map +1 -0
  58. package/dist/src/otel/durable-metrics.d.ts +6 -0
  59. package/dist/src/otel/durable-metrics.d.ts.map +1 -1
  60. package/dist/src/otel/durable-metrics.js +22 -2
  61. package/dist/src/otel/durable-metrics.js.map +1 -1
  62. package/dist/src/otel/durable-otel.d.ts.map +1 -1
  63. package/dist/src/otel/durable-otel.js +15 -0
  64. package/dist/src/otel/durable-otel.js.map +1 -1
  65. package/dist/src/protocol.d.ts.map +1 -1
  66. package/dist/src/protocol.js +1 -0
  67. package/dist/src/protocol.js.map +1 -1
  68. package/dist/src/stores/lucid.d.ts +1 -0
  69. package/dist/src/stores/lucid.d.ts.map +1 -1
  70. package/dist/src/stores/lucid.js +11 -1
  71. package/dist/src/stores/lucid.js.map +1 -1
  72. package/dist/src/testing/in-memory-state-store.d.ts +1 -0
  73. package/dist/src/testing/in-memory-state-store.d.ts.map +1 -1
  74. package/dist/src/testing/in-memory-state-store.js +7 -0
  75. package/dist/src/testing/in-memory-state-store.js.map +1 -1
  76. package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -1
  77. package/dist/src/testing-kit/state-store-conformance.js +19 -0
  78. package/dist/src/testing-kit/state-store-conformance.js.map +1 -1
  79. package/dist/src/transports/bullmq/bullmq-transport.d.ts.map +1 -1
  80. package/dist/src/transports/bullmq/bullmq-transport.js +13 -3
  81. package/dist/src/transports/bullmq/bullmq-transport.js.map +1 -1
  82. package/dist/src/transports/bullmq/deps.d.ts +4 -0
  83. package/dist/src/transports/bullmq/deps.d.ts.map +1 -1
  84. package/dist/src/transports/bullmq/deps.js.map +1 -1
  85. package/dist/src/transports/bullmq/serialization.d.ts +16 -0
  86. package/dist/src/transports/bullmq/serialization.d.ts.map +1 -1
  87. package/dist/src/transports/bullmq/serialization.js +8 -0
  88. package/dist/src/transports/bullmq/serialization.js.map +1 -1
  89. package/dist/src/transports/db-schema.d.ts +12 -0
  90. package/dist/src/transports/db-schema.d.ts.map +1 -1
  91. package/dist/src/transports/db-schema.js +24 -0
  92. package/dist/src/transports/db-schema.js.map +1 -1
  93. package/dist/src/transports/db.d.ts +14 -0
  94. package/dist/src/transports/db.d.ts.map +1 -1
  95. package/dist/src/transports/db.js +34 -0
  96. package/dist/src/transports/db.js.map +1 -1
  97. package/dist/src/transports/event-emitter.d.ts +8 -0
  98. package/dist/src/transports/event-emitter.d.ts.map +1 -1
  99. package/dist/src/transports/event-emitter.js +27 -0
  100. package/dist/src/transports/event-emitter.js.map +1 -1
  101. package/dist/src/transports/factory.d.ts +12 -0
  102. package/dist/src/transports/factory.d.ts.map +1 -1
  103. package/dist/src/transports/factory.js +24 -0
  104. package/dist/src/transports/factory.js.map +1 -1
  105. package/dist/src/transports/queue.d.ts +19 -0
  106. package/dist/src/transports/queue.d.ts.map +1 -1
  107. package/dist/src/transports/queue.js +17 -0
  108. package/dist/src/transports/queue.js.map +1 -1
  109. package/dist/src/transports/worker-keys-db.d.ts +17 -0
  110. package/dist/src/transports/worker-keys-db.d.ts.map +1 -0
  111. package/dist/src/transports/worker-keys-db.js +43 -0
  112. package/dist/src/transports/worker-keys-db.js.map +1 -0
  113. package/dist/src/transports/worker-keys.d.ts +56 -0
  114. package/dist/src/transports/worker-keys.d.ts.map +1 -0
  115. package/dist/src/transports/worker-keys.js +92 -0
  116. package/dist/src/transports/worker-keys.js.map +1 -0
  117. package/dist/src/worker-runtime/index.d.ts +1 -1
  118. package/dist/src/worker-runtime/index.d.ts.map +1 -1
  119. package/dist/src/worker-runtime/index.js.map +1 -1
  120. package/dist/src/worker-runtime/worker-runtime.d.ts +7 -2
  121. package/dist/src/worker-runtime/worker-runtime.d.ts.map +1 -1
  122. package/dist/src/worker-runtime/worker-runtime.js +22 -20
  123. package/dist/src/worker-runtime/worker-runtime.js.map +1 -1
  124. package/dist/src/workflow-ctx.d.ts.map +1 -1
  125. package/dist/src/workflow-ctx.js +19 -5
  126. package/dist/src/workflow-ctx.js.map +1 -1
  127. package/dist/src/workflow-discovery.d.ts.map +1 -1
  128. package/dist/src/workflow-discovery.js +2 -1
  129. package/dist/src/workflow-discovery.js.map +1 -1
  130. package/dist/src/workflow-ref.d.ts +31 -0
  131. package/dist/src/workflow-ref.d.ts.map +1 -1
  132. package/dist/src/workflow-ref.js +22 -0
  133. package/dist/src/workflow-ref.js.map +1 -1
  134. package/dist/stubs/database/migrations/create_durable_transport_worker_keys.stub +24 -0
  135. package/package.json +4 -4
  136. package/skills/durable-workflows/SKILL.md +4 -1
  137. package/dist/assets/spa/assets/index-CL6q2kMB.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import type { Database } from '@adonisjs/lucid/database';
2
+ import type { WorkerKeyStore } from './worker-keys.js';
3
+ export interface LucidWorkerKeysOptions {
4
+ /** Lucid connection name to use. Defaults to the `Database` default connection. */
5
+ connectionName?: string | undefined;
6
+ /** Create the worker-key table on first use if missing. Default true. */
7
+ autoCreate?: boolean | undefined;
8
+ /** Clock (epoch ms) used to sweep expired keys on write. Default `Date.now`. */
9
+ now?: (() => number) | undefined;
10
+ }
11
+ /**
12
+ * A {@link WorkerKeyStore} over the app's database: the `durable_transport_worker_keys` table (`key`
13
+ * PK, `value`, `expires_at`). A write upserts its key and sweeps the expired ones. Shared by the db
14
+ * transport and the queue transport, whose queues hold no key a control plane could read back.
15
+ */
16
+ export declare function lucidWorkerKeys(db: Database, opts?: LucidWorkerKeysOptions): WorkerKeyStore;
17
+ //# sourceMappingURL=worker-keys-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-keys-db.d.ts","sourceRoot":"","sources":["../../../src/transports/worker-keys-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,gFAAgF;IAChF,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAE,sBAA2B,GAAG,cAAc,CAiC/F"}
@@ -0,0 +1,43 @@
1
+ import { createWorkerKeysTable, WORKER_KEYS_TABLE } from './db-schema.js';
2
+ /**
3
+ * A {@link WorkerKeyStore} over the app's database: the `durable_transport_worker_keys` table (`key`
4
+ * PK, `value`, `expires_at`). A write upserts its key and sweeps the expired ones. Shared by the db
5
+ * transport and the queue transport, whose queues hold no key a control plane could read back.
6
+ */
7
+ export function lucidWorkerKeys(db, opts = {}) {
8
+ const client = () => (opts.connectionName ? db.connection(opts.connectionName) : db.connection());
9
+ const now = opts.now ?? Date.now;
10
+ let schemaReady;
11
+ const ensureSchema = () => {
12
+ if (opts.autoCreate === false)
13
+ return Promise.resolve();
14
+ schemaReady ??= createWorkerKeysTable(db);
15
+ return schemaReady;
16
+ };
17
+ return {
18
+ put: async (key, value, expiresAt) => {
19
+ await ensureSchema();
20
+ await client().from(WORKER_KEYS_TABLE).where('expires_at', '<=', now()).delete();
21
+ await client()
22
+ .insertQuery()
23
+ .table(WORKER_KEYS_TABLE)
24
+ .knexQuery.insert({ key, value, expires_at: expiresAt })
25
+ .onConflict('key')
26
+ .merge();
27
+ },
28
+ remove: async (keys) => {
29
+ if (keys.length === 0)
30
+ return;
31
+ await ensureSchema();
32
+ await client().from(WORKER_KEYS_TABLE).whereIn('key', keys).delete();
33
+ },
34
+ live: async (at) => {
35
+ await ensureSchema();
36
+ return (await client()
37
+ .from(WORKER_KEYS_TABLE)
38
+ .where('expires_at', '>', at)
39
+ .select('key', 'value'));
40
+ },
41
+ };
42
+ }
43
+ //# sourceMappingURL=worker-keys-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-keys-db.js","sourceRoot":"","sources":["../../../src/transports/worker-keys-db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAY1E;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAAY,EAAE,IAAI,GAA2B,EAAE;IAC7E,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,IAAI,WAAsC,CAAC;IAC3C,MAAM,YAAY,GAAG,GAAkB,EAAE;QACvC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACxD,WAAW,KAAK,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IACF,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACnC,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACjF,MAAM,MAAM,EAAE;iBACX,WAAW,EAAE;iBACb,KAAK,CAAC,iBAAiB,CAAC;iBACxB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;iBACvD,UAAU,CAAC,KAAK,CAAC;iBACjB,KAAK,EAAE,CAAC;QACb,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACjB,MAAM,YAAY,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,MAAM,EAAE;iBACnB,IAAI,CAAC,iBAAiB,CAAC;iBACvB,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC;iBAC5B,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAqC,CAAC;QACjE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,56 @@
1
+ import type { WorkerDescriptor } from '../handshake/descriptor.js';
2
+ import type { DescriptorRedis } from '../worker-runtime/registry.js';
3
+ /**
4
+ * The worker advertisement keyspace (design §7.2) for a transport with no Redis: the
5
+ * `${P}-worker-descriptor:<token>:<instance>` and `${P}-worker-heartbeat:<token>:<instance>` keys a
6
+ * {@link import('../worker-runtime/worker-runtime.js').WorkerRuntime} writes, each with an expiry, so a
7
+ * worker that dies without a clean stop drops out once its last write expires — the same liveness the
8
+ * Redis `SET … EX` keys give the BullMQ transport.
9
+ */
10
+ export interface WorkerKeyStore {
11
+ /** Write `key`, live until `expiresAt` (epoch ms). Overwrites. */
12
+ put(key: string, value: string, expiresAt: number): Promise<void>;
13
+ /** Remove `keys` (a clean stop). */
14
+ remove(keys: string[]): Promise<void>;
15
+ /** Every key still live at `now`, with its value. */
16
+ live(now: number): Promise<{
17
+ key: string;
18
+ value: string;
19
+ }[]>;
20
+ }
21
+ /**
22
+ * The {@link DescriptorRedis} port the worker registry writes through, over a {@link WorkerKeyStore}:
23
+ * `set(key, value, 'EX', ttl)` becomes a put live for `ttl` seconds.
24
+ */
25
+ export declare function workerKeyWriter(store: WorkerKeyStore, now: () => number): DescriptorRedis;
26
+ /** The live descriptors advertised on `token`. A malformed value reads as absent. */
27
+ export declare function descriptorsOn(entries: readonly {
28
+ key: string;
29
+ value: string;
30
+ }[], token: string): WorkerDescriptor[];
31
+ /** The routing tokens with at least one live worker heartbeat. */
32
+ export declare function liveGroupsOf(entries: readonly {
33
+ key: string;
34
+ }[]): string[];
35
+ /** A {@link WorkerKeyStore} held in memory, for transports whose workers share the process. */
36
+ export declare class MemoryWorkerKeys implements WorkerKeyStore {
37
+ #private;
38
+ put(key: string, value: string, expiresAt: number): Promise<void>;
39
+ remove(keys: string[]): Promise<void>;
40
+ live(now: number): Promise<{
41
+ key: string;
42
+ value: string;
43
+ }[]>;
44
+ }
45
+ /** A {@link WorkerKeyStore} that holds nothing: what a transport with no place for the keys uses. */
46
+ export declare const NO_WORKER_KEYS: WorkerKeyStore;
47
+ /**
48
+ * The live advertisement keys of `store`, reused for `cacheMs` (the engine asks for a token's
49
+ * descriptors before every dispatch, and the fleet changes on the advertisement cadence). `[]` when
50
+ * the store cannot be read, so routing falls back to what it does with no advertisement.
51
+ */
52
+ export declare function cachedLiveKeys(store: WorkerKeyStore, cacheMs: number, now: () => number): () => Promise<{
53
+ key: string;
54
+ value: string;
55
+ }[]>;
56
+ //# sourceMappingURL=worker-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-keys.d.ts","sourceRoot":"","sources":["../../../src/transports/worker-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,oCAAoC;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,qDAAqD;IACrD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;CAC9D;AAKD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,MAAM,GAAG,eAAe,CAKzF;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAClD,KAAK,EAAE,MAAM,GACZ,gBAAgB,EAAE,CAYpB;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CAW1E;AAED,+FAA+F;AAC/F,qBAAa,gBAAiB,YAAW,cAAc;;IAG/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;IAEK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAOjE;CACF;AAED,qGAAqG;AACrG,eAAO,MAAM,cAAc,EAAE,cAI5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,MAAM,GAChB,MAAM,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAajD"}
@@ -0,0 +1,92 @@
1
+ const DESCRIPTOR_SEGMENT = '-worker-descriptor:';
2
+ const HEARTBEAT_SEGMENT = '-worker-heartbeat:';
3
+ /**
4
+ * The {@link DescriptorRedis} port the worker registry writes through, over a {@link WorkerKeyStore}:
5
+ * `set(key, value, 'EX', ttl)` becomes a put live for `ttl` seconds.
6
+ */
7
+ export function workerKeyWriter(store, now) {
8
+ return {
9
+ set: (key, value, _mode, ttl) => store.put(key, value, now() + ttl * 1000),
10
+ del: (...keys) => store.remove(keys),
11
+ };
12
+ }
13
+ /** The live descriptors advertised on `token`. A malformed value reads as absent. */
14
+ export function descriptorsOn(entries, token) {
15
+ const marker = `${DESCRIPTOR_SEGMENT}${token}:`;
16
+ const descriptors = [];
17
+ for (const { key, value } of entries) {
18
+ if (!key.includes(marker))
19
+ continue;
20
+ try {
21
+ descriptors.push(JSON.parse(value));
22
+ }
23
+ catch {
24
+ /* a malformed descriptor never blocks routing — treat it as absent */
25
+ }
26
+ }
27
+ return descriptors;
28
+ }
29
+ /** The routing tokens with at least one live worker heartbeat. */
30
+ export function liveGroupsOf(entries) {
31
+ const groups = new Set();
32
+ for (const { key } of entries) {
33
+ const at = key.indexOf(HEARTBEAT_SEGMENT);
34
+ if (at === -1)
35
+ continue;
36
+ const rest = key.slice(at + HEARTBEAT_SEGMENT.length);
37
+ const sep = rest.indexOf(':');
38
+ const group = sep === -1 ? rest : rest.slice(0, sep);
39
+ if (group)
40
+ groups.add(group);
41
+ }
42
+ return [...groups];
43
+ }
44
+ /** A {@link WorkerKeyStore} held in memory, for transports whose workers share the process. */
45
+ export class MemoryWorkerKeys {
46
+ #entries = new Map();
47
+ async put(key, value, expiresAt) {
48
+ this.#entries.set(key, { value, expiresAt });
49
+ }
50
+ async remove(keys) {
51
+ for (const key of keys)
52
+ this.#entries.delete(key);
53
+ }
54
+ async live(now) {
55
+ const out = [];
56
+ for (const [key, entry] of this.#entries) {
57
+ if (entry.expiresAt > now)
58
+ out.push({ key, value: entry.value });
59
+ else
60
+ this.#entries.delete(key);
61
+ }
62
+ return out;
63
+ }
64
+ }
65
+ /** A {@link WorkerKeyStore} that holds nothing: what a transport with no place for the keys uses. */
66
+ export const NO_WORKER_KEYS = {
67
+ put: async () => { },
68
+ remove: async () => { },
69
+ live: async () => [],
70
+ };
71
+ /**
72
+ * The live advertisement keys of `store`, reused for `cacheMs` (the engine asks for a token's
73
+ * descriptors before every dispatch, and the fleet changes on the advertisement cadence). `[]` when
74
+ * the store cannot be read, so routing falls back to what it does with no advertisement.
75
+ */
76
+ export function cachedLiveKeys(store, cacheMs, now) {
77
+ let read;
78
+ return async () => {
79
+ const at = now();
80
+ if (read && at - read.at < cacheMs)
81
+ return read.entries;
82
+ try {
83
+ const entries = await store.live(at);
84
+ read = { at, entries };
85
+ return entries;
86
+ }
87
+ catch {
88
+ return [];
89
+ }
90
+ };
91
+ }
92
+ //# sourceMappingURL=worker-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-keys.js","sourceRoot":"","sources":["../../../src/transports/worker-keys.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,5 @@ export { collectSteps, type DiscoveredStep, registerStep, registerSteps, registe
18
18
  export { type GatherCall, type GatherItemError, type GatherMode, isWorkflowTask, type RunWorkflowTurnOptions, runWorkflowTurn, type WorkflowBody, type WorkflowBodyResolver, WorkflowGatherFailedError, WorkflowNondeterminismError, WorkflowStepFailedError, WorkflowTurnCancelled, type WorkflowTurnCtx, type WorkflowTurnHandler, } from '../workflow-turn.js';
19
19
  export { effectivePrefix, routingToken, workerDescriptorKey, workerDescriptorKeyPrefix, workerHeartbeatKey, } from './naming.js';
20
20
  export { type DescriptorRedis, NoopWorkerRegistry, RedisWorkerRegistry, type WorkerRegistry, } from './registry.js';
21
- export { WORKER_SDK, WorkerRuntime, type WorkerRuntimeLogger, type WorkerRuntimeOptions, type WorkerTransport, } from './worker-runtime.js';
21
+ export { WORKER_SDK, WorkerRuntime, type WorkerRuntimeLogger, type WorkerRuntimeOptions, type WorkerTransport, type WorkflowRegistrationMeta, } from './worker-runtime.js';
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/worker-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,KAAK,eAAe,EACpB,eAAe,EACf,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,cAAc,EACd,KAAK,sBAAsB,EAC3B,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/worker-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,KAAK,eAAe,EACpB,eAAe,EACf,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,cAAc,EACd,KAAK,sBAAsB,EAC3B,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/worker-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oGAAoG;AACpG,OAAO,EACL,wBAAwB,EACxB,cAAc,EAEd,eAAe,EACf,mBAAmB,GAGpB,MAAM,4BAA4B,CAAC;AACpC,4FAA4F;AAC5F,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAClE,sGAAsG;AACtG,OAAO,EACL,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAC9B,uGAAuG;AACvG,0GAA0G;AAC1G,OAAO,EAIL,cAAc,EAEd,eAAe,EAGf,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,GAGtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,GAId,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/worker-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oGAAoG;AACpG,OAAO,EACL,wBAAwB,EACxB,cAAc,EAEd,eAAe,EACf,mBAAmB,GAGpB,MAAM,4BAA4B,CAAC;AACpC,4FAA4F;AAC5F,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAClE,sGAAsG;AACtG,OAAO,EACL,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAC9B,uGAAuG;AACvG,0GAA0G;AAC1G,OAAO,EAIL,cAAc,EAEd,eAAe,EAGf,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,GAGtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,aAAa,GAKd,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type WorkerDescriptor } from '../handshake/descriptor.js';
1
+ import { type WorkerDescriptor, type WorkflowRegistration } from '../handshake/descriptor.js';
2
2
  import type { WorkflowStepEvent } from '../interfaces.js';
3
3
  import type { StepHandler } from '../protocol.js';
4
4
  import { type WorkflowBody, type WorkflowTurnHandler } from '../workflow-turn.js';
@@ -89,6 +89,11 @@ export interface WorkerRuntimeOptions {
89
89
  * It holds no store and reads none — every durable decision stays on the control-plane; this object
90
90
  * only runs bodies and says who it is.
91
91
  */
92
+ /**
93
+ * What a worker announces about a workflow beyond its name (design §7.9): version, capability demand,
94
+ * declaring package, and the onError routes the engine applies to it when serving it by convention.
95
+ */
96
+ export type WorkflowRegistrationMeta = Omit<WorkflowRegistration, 'name' | 'group'>;
92
97
  export declare class WorkerRuntime {
93
98
  #private;
94
99
  constructor(options: WorkerRuntimeOptions);
@@ -122,7 +127,7 @@ export declare class WorkerRuntime {
122
127
  * authoring surface (they own the store). Re-registering swaps the body; if the transport can't carry
123
128
  * workflow tasks (`handleWorkflow` absent) the name is still advertised, just not executed here.
124
129
  */
125
- registerWorkflow(name: string, body: WorkflowBody): void;
130
+ registerWorkflow(name: string, body: WorkflowBody, meta?: WorkflowRegistrationMeta): void;
126
131
  /**
127
132
  * Advertise a workflow NAME in the descriptor WITHOUT a runnable body (routing + capability
128
133
  * negotiation only, design §7.1) — e.g. this pod routes/observes a workflow another worker executes.
@@ -1 +1 @@
1
- {"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../src/worker-runtime/worker-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../src/worker-runtime/worker-runtime.ts"],"names":[],"mappings":"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"}
@@ -6,24 +6,6 @@ import { NoopWorkerRegistry } from './registry.js';
6
6
  /** SDK identity stamped on the descriptor when the caller doesn't override it (observability only). */
7
7
  export const WORKER_SDK = { name: '@adonis-agora/durable', version: '0.9.0' };
8
8
  const SILENT_LOGGER = { info: () => { }, error: () => { } };
9
- /**
10
- * A **store-less** worker runtime (design §4): it executes step bodies pulled off the transport and
11
- * advertises what it can serve — and has, by construction, NO store field and imports NO Lucid (proven
12
- * by the `no-lucid` structural test). It is deliberately NOT a store-optional engine: isolation is a
13
- * structural fact, not a runtime `if (this.store)`.
14
- *
15
- * Responsibilities:
16
- * - **Register handlers** — {@link registerStep} (also `handle`, so `step-discovery`'s
17
- * `registerStepsFromDir/Barrel` can target the runtime directly) forwards to `transport.handle`,
18
- * which subscribes `${P}-tasks-<token>` and runs each task through the shared `runStepHandler`,
19
- * publishing the result. Workflow NAMES ({@link registerWorkflowName}) populate the descriptor.
20
- * - **Advertise** ({@link start}) — publishes the {@link WorkerDescriptor} to
21
- * `${P}-worker-descriptor:<token>:<instance>` and beats the compact `{ ts, status, descriptorHash }`
22
- * to `${P}-worker-heartbeat:<token>:<instance>` on a schedule (design §7.2 two-tier ETag scheme).
23
- *
24
- * It holds no store and reads none — every durable decision stays on the control-plane; this object
25
- * only runs bodies and says who it is.
26
- */
27
9
  export class WorkerRuntime {
28
10
  #transport;
29
11
  #partition;
@@ -42,6 +24,8 @@ export class WorkerRuntime {
42
24
  #workflows = new Set();
43
25
  // Worker-side workflow turn bodies, keyed by name — the resolver `runWorkflowTurn` replays against.
44
26
  #workflowBodies = new Map();
27
+ // What this worker announces about each workflow it runs, beyond its name (design §7.9).
28
+ #workflowMeta = new Map();
45
29
  #startedAt;
46
30
  #beatTimer;
47
31
  #started = false;
@@ -106,9 +90,14 @@ export class WorkerRuntime {
106
90
  * authoring surface (they own the store). Re-registering swaps the body; if the transport can't carry
107
91
  * workflow tasks (`handleWorkflow` absent) the name is still advertised, just not executed here.
108
92
  */
109
- registerWorkflow(name, body) {
93
+ registerWorkflow(name, body, meta) {
110
94
  const firstBody = !this.#workflowBodies.has(name);
111
95
  this.#workflowBodies.set(name, body);
96
+ const metaChanged = JSON.stringify(meta) !== JSON.stringify(this.#workflowMeta.get(name));
97
+ if (meta)
98
+ this.#workflowMeta.set(name, meta);
99
+ else
100
+ this.#workflowMeta.delete(name);
112
101
  // Wire the transport's turn consumer ONCE per name (the resolver reads the live #workflowBodies map,
113
102
  // so a later re-register is picked up without re-wiring). No-op if the transport can't carry turns.
114
103
  if (firstBody && this.#transport.handleWorkflow) {
@@ -123,7 +112,7 @@ export class WorkerRuntime {
123
112
  }
124
113
  const isNew = !this.#workflows.has(name);
125
114
  this.#workflows.add(name);
126
- if (isNew && this.#started)
115
+ if ((isNew || metaChanged) && this.#started)
127
116
  void this.#advertise();
128
117
  }
129
118
  /**
@@ -164,11 +153,24 @@ export class WorkerRuntime {
164
153
  capabilities: [...this.#capabilities],
165
154
  workflows: [...this.#workflows].sort(),
166
155
  steps: [...this.#steps].sort(),
156
+ ...(this.#workflowBodies.size > 0 ? { registrations: this.#registrations() } : {}),
167
157
  ...(this.#partition ? { partition: this.#partition } : {}),
168
158
  ...(this.#namespace !== undefined ? { namespace: this.#namespace } : {}),
169
159
  startedAt: this.#startedAt,
170
160
  };
171
161
  }
162
+ /**
163
+ * The workflows this worker ANNOUNCES it can execute (design §7.9): only those it holds a body for —
164
+ * a name advertised through {@link registerWorkflowName} is routed elsewhere, not run here — each
165
+ * with the routing token it consumes and the meta it was registered with.
166
+ */
167
+ #registrations() {
168
+ return [...this.#workflowBodies.keys()].sort().map((name) => ({
169
+ name,
170
+ ...this.#workflowMeta.get(name),
171
+ group: routingToken(name, this.#partition),
172
+ }));
173
+ }
172
174
  /** The `${P}-worker-descriptor:<token>:<instance>` / `${P}-worker-heartbeat:<token>:<instance>` keys
173
175
  * this worker owns — one per DISTINCT routing token across its registered steps + workflows. */
174
176
  #tokens() {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-runtime.js","sourceRoot":"","sources":["../../../src/worker-runtime/worker-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-runtime.js","sourceRoot":"","sources":["../../../src/worker-runtime/worker-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-ctx.d.ts","sourceRoot":"","sources":["../../src/workflow-ctx.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAKV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,OAAO,EAEP,SAAS,EACT,SAAS,EACT,cAAc,EACd,QAAQ,EAGR,QAAQ,EACR,WAAW,EACZ,MAAM,iBAAiB,CAAC;AA+CzB;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GACzC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;CACH,CAAC;AAEN,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC;IAC1D,KAAK,IAAI,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACrD,0GAA0G;IAC1G,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,MAAM,EAAE,OAAO,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAC9E,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,8FAA8F;IAC9F,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClF;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gHAAgH;IAChH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,oGAAoG;IACpG,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzF,yFAAyF;IACzF,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnF;AAkBD;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,YAAY,EAAE,EAC7B,QAAQ,SAAK,GACZ,mBAAmB,CA8hCrB"}
1
+ {"version":3,"file":"workflow-ctx.d.ts","sourceRoot":"","sources":["../../src/workflow-ctx.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { backoffDelay } from './backoff.js';
2
2
  import { instantCheckpoint } from './checkpoints.js';
3
- import { unwrapCompletion } from './completion.js';
3
+ import { completionError, unwrapCompletion } from './completion.js';
4
4
  import { parseDuration } from './duration.js';
5
5
  import { ContinueAsNew, FatalError, GatherError, NestedWorkflowCallError, NonDeterminismError, SignalTimeoutError, WorkflowSuspended, } from './errors.js';
6
6
  import { EVENT_BUFFER_SCAN_LIMIT, eventMatches, eventToken } from './events.js';
7
7
  import { allChildId, allFoldedName, allGroup, allWait, allWaves, FOLDED_PREFIX, fanJoin, } from './fan-join.js';
8
+ import { codeAndDetails } from './on-error.js';
8
9
  import { breakpointToken } from './protocol.js';
9
10
  import { createStepLogger } from './step-logger.js';
10
11
  import { stepConfigOf, stepNameOf } from './step-name-symbol.js';
@@ -167,6 +168,7 @@ export function createWorkflowCtx(host, runId, compensations, workflow = '') {
167
168
  error: {
168
169
  message: err instanceof Error ? err.message : String(err),
169
170
  stack: err instanceof Error ? err.stack : undefined,
171
+ ...codeAndDetails(err),
170
172
  },
171
173
  events,
172
174
  attempts: attempt,
@@ -496,11 +498,12 @@ export function createWorkflowCtx(host, runId, compensations, workflow = '') {
496
498
  // With `concurrency`, children go out in waves and the parent wakes once per settled wave to send
497
499
  // the next one. When all resolve, outputs are returned in INPUT order (waitAll), or a GatherError
498
500
  // is thrown carrying the per-item failures. Parity with the Python SDK's `gather_children`.
499
- const all = async (workflow, inputs, opts) => {
501
+ // `settle` is `ctx.allSettled`: the same waitAll fan, resolving with a `Settled` per item instead.
502
+ const fan = async (workflow, inputs, opts, settle) => {
500
503
  // Empty: reserve no positions and produce no side effects (degenerate identity).
501
504
  if (inputs.length === 0)
502
505
  return [];
503
- const mode = opts?.mode ?? 'waitAll';
506
+ const mode = settle ? 'waitAll' : (opts?.mode ?? 'waitAll');
504
507
  const name = workflowName(workflow);
505
508
  const waves = allWaves(inputs.length, opts?.concurrency);
506
509
  // Reserve the whole block in list order BEFORE any dispatch — replay re-derives identical seqs.
@@ -669,21 +672,31 @@ export function createWorkflowCtx(host, runId, compensations, workflow = '') {
669
672
  }
670
673
  // All resolved: build outputs in INPUT order, aggregating any failures.
671
674
  const outputs = [];
675
+ const results = [];
672
676
  const failures = [];
673
677
  for (let i = 0; i < inputs.length; i += 1) {
674
678
  const c = existing[i]?.output;
675
679
  if (c && typeof c === 'object' && 'ok' in c && c.ok === false) {
676
- failures.push({ index: i, id: id(i), error: c.error ?? 'unknown' });
680
+ const { message, ...rest } = completionError({ ...c, error: c.error ?? 'unknown' });
681
+ const failure = { id: id(i), error: message, ...rest };
682
+ failures.push({ index: i, ...failure });
683
+ results.push({ status: 'rejected', ...failure });
677
684
  outputs.push(undefined);
678
685
  }
679
686
  else {
680
- outputs.push(c?.value);
687
+ const value = c?.value;
688
+ results.push({ status: 'fulfilled', value });
689
+ outputs.push(value);
681
690
  }
682
691
  }
692
+ if (settle)
693
+ return results;
683
694
  if (failures.length > 0)
684
695
  throw new GatherError(failures, inputs.length);
685
696
  return outputs;
686
697
  };
698
+ const all = (workflow, inputs, opts) => fan(workflow, inputs, opts, false);
699
+ const allSettled = (workflow, inputs, opts) => fan(workflow, inputs, opts, true);
687
700
  // A fan's checkpoints: from the replay snapshot, plus ONE prefix query for any the snapshot does
688
701
  // not hold (on the first dispatch, all of them) instead of a lookup per child. A folded checkpoint
689
702
  // is expanded back into one completed checkpoint per child it stands for; `folded` marks those.
@@ -1007,6 +1020,7 @@ export function createWorkflowCtx(host, runId, compensations, workflow = '') {
1007
1020
  task: guard('task', task),
1008
1021
  child: guard('child', child),
1009
1022
  all: guard('all', all),
1023
+ allSettled: guard('allSettled', allSettled),
1010
1024
  startChild: guard('startChild', startChild),
1011
1025
  breakpoint: guard('breakpoint', breakpoint),
1012
1026
  webhook: guardedWebhook,