@adonis-agora/durable 0.47.0 → 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 (114) hide show
  1. package/CHANGELOG.md +22 -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/completion.d.ts +11 -0
  14. package/dist/src/completion.d.ts.map +1 -1
  15. package/dist/src/completion.js +18 -1
  16. package/dist/src/completion.js.map +1 -1
  17. package/dist/src/dashboard/index.d.ts +1 -1
  18. package/dist/src/dashboard/index.js +1 -1
  19. package/dist/src/engine.d.ts +45 -0
  20. package/dist/src/engine.d.ts.map +1 -1
  21. package/dist/src/engine.js +222 -11
  22. package/dist/src/engine.js.map +1 -1
  23. package/dist/src/errors.d.ts +18 -11
  24. package/dist/src/errors.d.ts.map +1 -1
  25. package/dist/src/errors.js +9 -7
  26. package/dist/src/errors.js.map +1 -1
  27. package/dist/src/fan-join.d.ts +4 -3
  28. package/dist/src/fan-join.d.ts.map +1 -1
  29. package/dist/src/fan-join.js +5 -4
  30. package/dist/src/fan-join.js.map +1 -1
  31. package/dist/src/handshake/announced.d.ts +94 -0
  32. package/dist/src/handshake/announced.d.ts.map +1 -0
  33. package/dist/src/handshake/announced.js +113 -0
  34. package/dist/src/handshake/announced.js.map +1 -0
  35. package/dist/src/handshake/descriptor.d.ts +59 -0
  36. package/dist/src/handshake/descriptor.d.ts.map +1 -1
  37. package/dist/src/handshake/descriptor.js +38 -0
  38. package/dist/src/handshake/descriptor.js.map +1 -1
  39. package/dist/src/index.d.ts +3 -1
  40. package/dist/src/index.d.ts.map +1 -1
  41. package/dist/src/index.js +3 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/interfaces.d.ts +39 -4
  44. package/dist/src/interfaces.d.ts.map +1 -1
  45. package/dist/src/interfaces.js.map +1 -1
  46. package/dist/src/metrics.d.ts +5 -0
  47. package/dist/src/metrics.d.ts.map +1 -1
  48. package/dist/src/metrics.js +14 -1
  49. package/dist/src/metrics.js.map +1 -1
  50. package/dist/src/on-error.d.ts +59 -0
  51. package/dist/src/on-error.d.ts.map +1 -0
  52. package/dist/src/on-error.js +71 -0
  53. package/dist/src/on-error.js.map +1 -0
  54. package/dist/src/otel/durable-metrics.d.ts +6 -0
  55. package/dist/src/otel/durable-metrics.d.ts.map +1 -1
  56. package/dist/src/otel/durable-metrics.js +22 -2
  57. package/dist/src/otel/durable-metrics.js.map +1 -1
  58. package/dist/src/otel/durable-otel.d.ts.map +1 -1
  59. package/dist/src/otel/durable-otel.js +15 -0
  60. package/dist/src/otel/durable-otel.js.map +1 -1
  61. package/dist/src/protocol.d.ts.map +1 -1
  62. package/dist/src/protocol.js +1 -0
  63. package/dist/src/protocol.js.map +1 -1
  64. package/dist/src/stores/lucid.js +1 -1
  65. package/dist/src/stores/lucid.js.map +1 -1
  66. package/dist/src/transports/db-schema.d.ts +12 -0
  67. package/dist/src/transports/db-schema.d.ts.map +1 -1
  68. package/dist/src/transports/db-schema.js +24 -0
  69. package/dist/src/transports/db-schema.js.map +1 -1
  70. package/dist/src/transports/db.d.ts +14 -0
  71. package/dist/src/transports/db.d.ts.map +1 -1
  72. package/dist/src/transports/db.js +34 -0
  73. package/dist/src/transports/db.js.map +1 -1
  74. package/dist/src/transports/event-emitter.d.ts +8 -0
  75. package/dist/src/transports/event-emitter.d.ts.map +1 -1
  76. package/dist/src/transports/event-emitter.js +27 -0
  77. package/dist/src/transports/event-emitter.js.map +1 -1
  78. package/dist/src/transports/factory.d.ts +12 -0
  79. package/dist/src/transports/factory.d.ts.map +1 -1
  80. package/dist/src/transports/factory.js +24 -0
  81. package/dist/src/transports/factory.js.map +1 -1
  82. package/dist/src/transports/queue.d.ts +19 -0
  83. package/dist/src/transports/queue.d.ts.map +1 -1
  84. package/dist/src/transports/queue.js +17 -0
  85. package/dist/src/transports/queue.js.map +1 -1
  86. package/dist/src/transports/worker-keys-db.d.ts +17 -0
  87. package/dist/src/transports/worker-keys-db.d.ts.map +1 -0
  88. package/dist/src/transports/worker-keys-db.js +43 -0
  89. package/dist/src/transports/worker-keys-db.js.map +1 -0
  90. package/dist/src/transports/worker-keys.d.ts +56 -0
  91. package/dist/src/transports/worker-keys.d.ts.map +1 -0
  92. package/dist/src/transports/worker-keys.js +92 -0
  93. package/dist/src/transports/worker-keys.js.map +1 -0
  94. package/dist/src/worker-runtime/index.d.ts +1 -1
  95. package/dist/src/worker-runtime/index.d.ts.map +1 -1
  96. package/dist/src/worker-runtime/index.js.map +1 -1
  97. package/dist/src/worker-runtime/worker-runtime.d.ts +7 -2
  98. package/dist/src/worker-runtime/worker-runtime.d.ts.map +1 -1
  99. package/dist/src/worker-runtime/worker-runtime.js +22 -20
  100. package/dist/src/worker-runtime/worker-runtime.js.map +1 -1
  101. package/dist/src/workflow-ctx.d.ts.map +1 -1
  102. package/dist/src/workflow-ctx.js +19 -5
  103. package/dist/src/workflow-ctx.js.map +1 -1
  104. package/dist/src/workflow-discovery.d.ts.map +1 -1
  105. package/dist/src/workflow-discovery.js +2 -1
  106. package/dist/src/workflow-discovery.js.map +1 -1
  107. package/dist/src/workflow-ref.d.ts +31 -0
  108. package/dist/src/workflow-ref.d.ts.map +1 -1
  109. package/dist/src/workflow-ref.js +22 -0
  110. package/dist/src/workflow-ref.js.map +1 -1
  111. package/dist/stubs/database/migrations/create_durable_transport_worker_keys.stub +24 -0
  112. package/package.json +4 -4
  113. package/skills/durable-workflows/SKILL.md +4 -1
  114. package/dist/assets/spa/assets/index-CL6q2kMB.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/transports/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/transports/factory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,24 @@
1
1
  import { resolveLucidDatabase } from '../resolve-lucid-db.js';
2
2
  import { InMemoryTransport } from '../testing/in-memory-transport.js';
3
+ /**
4
+ * The worker-key store a queue transport advertises through: the configured one, else the app
5
+ * database's table when `@adonisjs/lucid` is bound, else none.
6
+ */
7
+ async function queueWorkerKeys(ctx, config) {
8
+ if (config.workerKeys === false)
9
+ return undefined;
10
+ if (config.workerKeys)
11
+ return config.workerKeys;
12
+ let db;
13
+ try {
14
+ db = (await resolveLucidDatabase(ctx));
15
+ }
16
+ catch {
17
+ return undefined;
18
+ }
19
+ const { lucidWorkerKeys } = await import('./worker-keys-db.js');
20
+ return lucidWorkerKeys(db, { connectionName: config.workerKeysConnection });
21
+ }
3
22
  /**
4
23
  * Resolve a raw `@adonisjs/queue` adapter factory from `config/queue.ts` by connection name —
5
24
  * mirroring `@adonisjs/queue`'s own `resolveAdapters`: a function entry is the factory; a config
@@ -47,8 +66,13 @@ export const transports = {
47
66
  return async (ctx) => {
48
67
  const { QueueTransport } = await import('./queue.js');
49
68
  const adapter = config.adapter ?? (await resolveQueueAdapter(ctx, config.connection));
69
+ const workerKeys = await queueWorkerKeys(ctx, config);
50
70
  return new QueueTransport({
51
71
  adapter,
72
+ ...(workerKeys !== undefined ? { workerKeys } : {}),
73
+ ...(config.workerKeysCacheMs !== undefined
74
+ ? { workerKeysCacheMs: config.workerKeysCacheMs }
75
+ : {}),
52
76
  ...(config.group !== undefined ? { group: config.group } : {}),
53
77
  ...(config.partition !== undefined ? { partition: config.partition } : {}),
54
78
  ...(config.namespace !== undefined ? { namespace: config.namespace } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/transports/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/transports/factory.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { AcquiredJob, AdapterFactory } from '@adonisjs/queue/types';
2
+ import type { WorkerDescriptor } from '../handshake/descriptor.js';
2
3
  import { type ControlMessage, type ControlPlane, type Heartbeat, type RemoteTask, type StepResult, type Transport } from '../interfaces.js';
3
4
  import { type StepHandler } from '../protocol.js';
5
+ import type { DescriptorRedis } from '../worker-runtime/registry.js';
6
+ import { type WorkerKeyStore } from './worker-keys.js';
4
7
  /**
5
8
  * The wire payloads carried as a queue job's `payload`. Everything that crosses the queue is plain
6
9
  * JSON — a `RemoteTask` (engine → worker), a `StepResult` / `Heartbeat` (worker → engine) and a
@@ -101,6 +104,16 @@ export interface QueueTransportOptions {
101
104
  * `console.error`. Point it at your app's logger to route transport failures into your logs.
102
105
  */
103
106
  onError?: (err: unknown) => void;
107
+ /**
108
+ * Where the worker advertisement (design §7.2: each worker's descriptor and heartbeat keys) lives.
109
+ * A queue delivers each job to one consumer, so the keys cannot travel over it: they go to a key
110
+ * store every engine and worker can read — `transports.queue()` defaults to the app database's
111
+ * `durable_transport_worker_keys` table, the one the db transport uses. Absent: nothing is
112
+ * advertised, and the engine routes without descriptors.
113
+ */
114
+ workerKeys?: WorkerKeyStore;
115
+ /** How long a read of {@link workerKeys} is reused (ms). Default 5000; `0` reads every time. */
116
+ workerKeysCacheMs?: number;
104
117
  }
105
118
  /**
106
119
  * A `@adonisjs/queue`-backed {@link Transport}. Remote steps are dispatched to a per-group task
@@ -124,6 +137,12 @@ export interface QueueTransportOptions {
124
137
  export declare class QueueTransport implements Transport, ControlPlane {
125
138
  #private;
126
139
  constructor(options: QueueTransportOptions);
140
+ /** The writer a worker runtime's registry advertises its descriptor and heartbeat through. */
141
+ createDescriptorRedis(): DescriptorRedis;
142
+ /** The live worker descriptors advertised on `token`. */
143
+ listWorkerDescriptors(token: string): Promise<WorkerDescriptor[]>;
144
+ /** The routing tokens a live worker beats on. */
145
+ listWorkerGroups(): Promise<string[]>;
127
146
  /** Stable id stamped on heartbeats and control `from`. */
128
147
  get instanceId(): string;
129
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAW,MAAM,uBAAuB,CAAC;AAClF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlE;;;;;;GAMG;AAEH,iGAAiG;AACjG,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAErC;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAO7C;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;AACrC,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AACvC,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACzC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAwB5C;;;;;GAKG;AACH,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wGAAwG;AACxG,KAAK,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;AAyBvC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAGrD;AAeD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAItE;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,EAAE,cAAc,CAAC;IACxB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAe,YAAW,SAAS,EAAE,YAAY;;IAoC5D,YAAY,OAAO,EAAE,qBAAqB,EAkBzC;IAED,0DAA0D;IAC1D,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,IAAI,IAAI,CAErB;IAED;;mEAE+D;IAC/D,cAAc,IAAI,IAAI,CAIrB;IAED;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGpC;IA+CK,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9C;IAMD;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,IAAI,CAc1C;IAED,4EAA4E;IACtE,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9C;IAMD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAI7D;IAED,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAI7D;IAMK,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD;IAED,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI,CAItD;IA8ID;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAY3B;CACF"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { randomUUID } from 'node:crypto';
2
2
  import { Pollers } from '../pollers.js';
3
3
  import { runStepHandler } from '../protocol.js';
4
4
  import { sanitizeQueueToken, tenantGroup } from '../tenant-group.js';
5
+ import { cachedLiveKeys, descriptorsOn, liveGroupsOf, NO_WORKER_KEYS, workerKeyWriter, } from './worker-keys.js';
5
6
  /**
6
7
  * The wire payloads carried as a queue job's `payload`. Everything that crosses the queue is plain
7
8
  * JSON — a `RemoteTask` (engine → worker), a `StepResult` / `Heartbeat` (worker → engine) and a
@@ -128,6 +129,8 @@ export class QueueTransport {
128
129
  * is never deferred; only consumption is. */
129
130
  #consumersDeferred = false;
130
131
  #deferredStarts = [];
132
+ #workerKeys;
133
+ #liveWorkerKeys;
131
134
  constructor(options) {
132
135
  // Typed through CompatAdapter so the same code drives the 0.6 (job-id) and 0.7 (lease) contracts.
133
136
  this.#adapter = options.adapter();
@@ -144,6 +147,20 @@ export class QueueTransport {
144
147
  this.#adapter.setWorkerId(this.#instanceId);
145
148
  this.#pollers = new Pollers(this.#pollIntervalMs, this.#onError);
146
149
  this.#reclaimPollers = this.#startReclaimSweep(options.stalledCheckIntervalMs ?? DEFAULT_STALLED_CHECK_INTERVAL_MS);
150
+ this.#workerKeys = options.workerKeys ?? NO_WORKER_KEYS;
151
+ this.#liveWorkerKeys = cachedLiveKeys(this.#workerKeys, options.workerKeysCacheMs ?? 5_000, Date.now);
152
+ }
153
+ /** The writer a worker runtime's registry advertises its descriptor and heartbeat through. */
154
+ createDescriptorRedis() {
155
+ return workerKeyWriter(this.#workerKeys, Date.now);
156
+ }
157
+ /** The live worker descriptors advertised on `token`. */
158
+ async listWorkerDescriptors(token) {
159
+ return descriptorsOn(await this.#liveWorkerKeys(), token);
160
+ }
161
+ /** The routing tokens a live worker beats on. */
162
+ async listWorkerGroups() {
163
+ return liveGroupsOf(await this.#liveWorkerKeys());
147
164
  }
148
165
  /** Stable id stamped on heartbeats and control `from`. */
149
166
  get instanceId() {
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/transports/queue.ts"],"names":[],"mappings":"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"}
@@ -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() {