@workflow/world-local 4.1.0-beta.43 → 4.1.0-beta.45

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 (56) hide show
  1. package/dist/config.d.ts +7 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/fs.d.ts +28 -0
  5. package/dist/fs.d.ts.map +1 -1
  6. package/dist/fs.js +73 -3
  7. package/dist/fs.js.map +1 -1
  8. package/dist/index.d.ts +3 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +55 -5
  11. package/dist/index.js.map +1 -1
  12. package/dist/init.d.ts.map +1 -1
  13. package/dist/init.js +6 -1
  14. package/dist/init.js.map +1 -1
  15. package/dist/queue.d.ts +1 -28
  16. package/dist/queue.d.ts.map +1 -1
  17. package/dist/queue.js +77 -95
  18. package/dist/queue.js.map +1 -1
  19. package/dist/storage/events-storage.d.ts +1 -1
  20. package/dist/storage/events-storage.d.ts.map +1 -1
  21. package/dist/storage/events-storage.js +94 -89
  22. package/dist/storage/events-storage.js.map +1 -1
  23. package/dist/storage/filters.d.ts +2 -6
  24. package/dist/storage/filters.d.ts.map +1 -1
  25. package/dist/storage/filters.js +1 -11
  26. package/dist/storage/filters.js.map +1 -1
  27. package/dist/storage/helpers.d.ts.map +1 -1
  28. package/dist/storage/helpers.js +7 -4
  29. package/dist/storage/helpers.js.map +1 -1
  30. package/dist/storage/hooks-storage.d.ts +1 -1
  31. package/dist/storage/hooks-storage.d.ts.map +1 -1
  32. package/dist/storage/hooks-storage.js +3 -4
  33. package/dist/storage/hooks-storage.js.map +1 -1
  34. package/dist/storage/index.d.ts +1 -1
  35. package/dist/storage/index.d.ts.map +1 -1
  36. package/dist/storage/index.js +5 -5
  37. package/dist/storage/index.js.map +1 -1
  38. package/dist/storage/legacy.js +2 -2
  39. package/dist/storage/legacy.js.map +1 -1
  40. package/dist/storage/runs-storage.d.ts +1 -1
  41. package/dist/storage/runs-storage.d.ts.map +1 -1
  42. package/dist/storage/runs-storage.js +3 -4
  43. package/dist/storage/runs-storage.js.map +1 -1
  44. package/dist/storage/steps-storage.d.ts +1 -1
  45. package/dist/storage/steps-storage.d.ts.map +1 -1
  46. package/dist/storage/steps-storage.js +5 -6
  47. package/dist/storage/steps-storage.js.map +1 -1
  48. package/dist/streamer.d.ts +3 -1
  49. package/dist/streamer.d.ts.map +1 -1
  50. package/dist/streamer.js +190 -16
  51. package/dist/streamer.js.map +1 -1
  52. package/dist/test-helpers.d.ts +14 -3
  53. package/dist/test-helpers.d.ts.map +1 -1
  54. package/dist/test-helpers.js +29 -0
  55. package/dist/test-helpers.js.map +1 -1
  56. package/package.json +4 -4
package/dist/queue.js CHANGED
@@ -30,7 +30,7 @@ function getQueueRoute(queueName) {
30
30
  }
31
31
  throw new Error('Unknown queue name prefix');
32
32
  }
33
- export function createQueueExecutor(config) {
33
+ export function createQueue(config) {
34
34
  // Create a custom agent optimized for high-concurrency local workflows:
35
35
  // - headersTimeout: 0 allows long-running steps
36
36
  // - connections: 1000 allows many parallel connections to the same host
@@ -41,70 +41,6 @@ export function createQueueExecutor(config) {
41
41
  connections: 1000,
42
42
  keepAliveTimeout: 30_000,
43
43
  });
44
- /** Direct in-process handlers by queue prefix, bypassing HTTP when set. */
45
- const directHandlers = new Map();
46
- const executeMessage = async ({ queueName, messageId, attempt, body, headers: extraHeaders, }) => {
47
- const { pathname, prefix } = getQueueRoute(queueName);
48
- const headers = {
49
- ...extraHeaders,
50
- 'content-type': 'application/json',
51
- 'x-vqs-queue-name': queueName,
52
- 'x-vqs-message-id': messageId,
53
- 'x-vqs-message-attempt': String(attempt),
54
- };
55
- const directHandler = directHandlers.get(prefix);
56
- let response;
57
- if (directHandler) {
58
- // Wrap direct handlers in a Request so local execution and HTTP execution
59
- // share the same contract and response parsing.
60
- const req = new Request('http://localhost/.well-known/workflow/v1/' + pathname, {
61
- method: 'POST',
62
- headers,
63
- body,
64
- });
65
- response = await directHandler(req);
66
- }
67
- else {
68
- const baseUrl = await resolveBaseUrl(config);
69
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
70
- response = await fetch(`${baseUrl}/.well-known/workflow/v1/${pathname}`, {
71
- method: 'POST',
72
- duplex: 'half',
73
- dispatcher: httpAgent,
74
- headers,
75
- body,
76
- });
77
- }
78
- const text = await response.text();
79
- if (!response.ok) {
80
- return {
81
- type: 'error',
82
- status: response.status,
83
- text,
84
- headers: Object.fromEntries(response.headers.entries()),
85
- };
86
- }
87
- try {
88
- const timeoutSeconds = Number(JSON.parse(text).timeoutSeconds);
89
- if (Number.isFinite(timeoutSeconds) && timeoutSeconds >= 0) {
90
- return { type: 'reschedule', timeoutSeconds };
91
- }
92
- }
93
- catch { }
94
- return { type: 'completed' };
95
- };
96
- return {
97
- executeMessage,
98
- registerHandler(prefix, handler) {
99
- directHandlers.set(prefix, handler);
100
- },
101
- async close() {
102
- await httpAgent.close();
103
- },
104
- };
105
- }
106
- export function createQueue(config) {
107
- const executor = createQueueExecutor(config);
108
44
  const transport = new JsonTransport();
109
45
  const generateId = monotonicFactory();
110
46
  const semaphore = new Sema(WORKFLOW_LOCAL_QUEUE_CONCURRENCY);
@@ -113,6 +49,8 @@ export function createQueue(config) {
113
49
  * that we don't queue the same message multiple times
114
50
  */
115
51
  const inflightMessages = new Map();
52
+ /** Direct in-process handlers by queue prefix, bypassing HTTP when set. */
53
+ const directHandlers = new Map();
116
54
  const queue = async (queueName, message, opts) => {
117
55
  const cleanup = [];
118
56
  if (opts?.idempotencyKey) {
@@ -122,8 +60,13 @@ export function createQueue(config) {
122
60
  }
123
61
  }
124
62
  const body = transport.serialize(message);
125
- getQueueRoute(queueName);
63
+ const { pathname, prefix } = getQueueRoute(queueName);
126
64
  const messageId = MessageId.parse(`msg_${generateId()}`);
65
+ // Extract identifiers from the message for structured logging.
66
+ // Workflow messages have `runId`, step messages have `workflowRunId` + `stepId`.
67
+ const msg = message;
68
+ const runId = (msg.runId ?? msg.workflowRunId ?? undefined);
69
+ const stepId = (msg.stepId ?? undefined);
127
70
  if (opts?.idempotencyKey) {
128
71
  const key = opts.idempotencyKey;
129
72
  inflightMessages.set(key, messageId);
@@ -137,40 +80,77 @@ export function createQueue(config) {
137
80
  console.warn(`[world-local]: concurrency limit (${WORKFLOW_LOCAL_QUEUE_CONCURRENCY}) reached, waiting for queue to free up`);
138
81
  await semaphore.acquire();
139
82
  }
83
+ // Safety limit to prevent infinite loops in the local queue.
84
+ // The actual max delivery enforcement happens in the workflow/step handlers
85
+ // (at MAX_QUEUE_DELIVERIES = 48), so this just needs to be comfortably higher.
86
+ const MAX_LOCAL_SAFETY_LIMIT = 256;
140
87
  try {
141
- let defaultRetriesLeft = 3;
142
- for (let attempt = 0; defaultRetriesLeft > 0; attempt++) {
143
- defaultRetriesLeft--;
144
- const result = await executor.executeMessage({
145
- queueName,
146
- messageId,
147
- attempt: attempt + 1,
148
- body,
149
- headers: opts?.headers,
150
- });
151
- if (result.type === 'completed') {
152
- return;
88
+ for (let attempt = 0; attempt < MAX_LOCAL_SAFETY_LIMIT; attempt++) {
89
+ const headers = {
90
+ ...opts?.headers,
91
+ 'content-type': 'application/json',
92
+ 'x-vqs-queue-name': queueName,
93
+ 'x-vqs-message-id': messageId,
94
+ 'x-vqs-message-attempt': String(attempt + 1),
95
+ };
96
+ const directHandler = directHandlers.get(prefix);
97
+ let response;
98
+ if (directHandler) {
99
+ const req = new Request(`http://localhost/.well-known/workflow/v1/${pathname}`, {
100
+ method: 'POST',
101
+ headers,
102
+ body,
103
+ });
104
+ response = await directHandler(req);
105
+ }
106
+ else {
107
+ const baseUrl = await resolveBaseUrl(config);
108
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
109
+ response = await fetch(`${baseUrl}/.well-known/workflow/v1/${pathname}`, {
110
+ method: 'POST',
111
+ duplex: 'half',
112
+ dispatcher: httpAgent,
113
+ headers,
114
+ body,
115
+ });
153
116
  }
154
- if (result.type === 'reschedule') {
155
- // Clamp to MAX_SAFE_TIMEOUT_MS to avoid Node.js setTimeout overflow warning.
156
- // When this fires early, the handler recalculates remaining time from
157
- // persistent state and returns another timeoutSeconds if needed.
158
- if (result.timeoutSeconds > 0) {
159
- const timeoutMs = Math.min(result.timeoutSeconds * 1000, MAX_SAFE_TIMEOUT_MS);
160
- await setTimeout(timeoutMs);
117
+ const text = await response.text();
118
+ if (response.ok) {
119
+ try {
120
+ const timeoutSeconds = Number(JSON.parse(text).timeoutSeconds);
121
+ if (Number.isFinite(timeoutSeconds) && timeoutSeconds >= 0) {
122
+ // Clamp to MAX_SAFE_TIMEOUT_MS to avoid Node.js setTimeout overflow warning.
123
+ // When this fires early, the handler recalculates remaining time from
124
+ // persistent state and returns another timeoutSeconds if needed.
125
+ if (timeoutSeconds > 0) {
126
+ const timeoutMs = Math.min(timeoutSeconds * 1000, MAX_SAFE_TIMEOUT_MS);
127
+ await setTimeout(timeoutMs);
128
+ }
129
+ continue;
130
+ }
161
131
  }
162
- defaultRetriesLeft++;
163
- continue;
132
+ catch { }
133
+ return;
164
134
  }
165
- console.error(`[local world] Failed to queue message`, {
135
+ console.error(`[world-local] Queue message failed (attempt ${attempt + 1}, HTTP ${response.status})`, {
166
136
  queueName,
167
- text: result.text,
168
- status: result.status,
169
- headers: result.headers,
170
- body: body.toString(),
137
+ messageId,
138
+ ...(runId && { runId }),
139
+ ...(stepId && { stepId }),
140
+ handlerError: text,
171
141
  });
142
+ // 5s linear backoff to approximate VQS retry timing in local dev.
143
+ // VQS uses 5s linear for attempts 1–32, then exponential, but for
144
+ // local dev linear 5s is sufficient — the handler enforces the real
145
+ // cap at MAX_QUEUE_DELIVERIES (48) which keeps total time under ~4min.
146
+ await setTimeout(5000);
172
147
  }
173
- console.error(`[local world] Reached max retries of local world queue implementation`);
148
+ console.error(`[world-local] Queue message exhausted safety limit (${MAX_LOCAL_SAFETY_LIMIT} attempts)`, {
149
+ queueName,
150
+ messageId,
151
+ ...(runId && { runId }),
152
+ ...(stepId && { stepId }),
153
+ });
174
154
  }
175
155
  finally {
176
156
  semaphore.release();
@@ -237,9 +217,11 @@ export function createQueue(config) {
237
217
  queue,
238
218
  createQueueHandler,
239
219
  getDeploymentId,
240
- registerHandler: executor.registerHandler,
220
+ registerHandler(prefix, handler) {
221
+ directHandlers.set(prefix, handler);
222
+ },
241
223
  async close() {
242
- await executor.close();
224
+ await httpAgent.close();
243
225
  },
244
226
  };
245
227
  }
package/dist/queue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ import type { Storage } from '@workflow/world';
3
3
  * Creates the events storage implementation using the filesystem.
4
4
  * Implements the Storage['events'] interface with create, list, and listByCorrelationId operations.
5
5
  */
6
- export declare function createEventsStorage(basedir: string): Storage['events'];
6
+ export declare function createEventsStorage(basedir: string, tag?: string): Storage['events'];
7
7
  //# sourceMappingURL=events-storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-storage.d.ts","sourceRoot":"","sources":["../../src/storage/events-storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,OAAO,EAGR,MAAM,iBAAiB,CAAC;AA6CzB;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0vBtE"}
1
+ {"version":3,"file":"events-storage.d.ts","sourceRoot":"","sources":["../../src/storage/events-storage.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAMV,OAAO,EAGR,MAAM,iBAAiB,CAAC;AAgDzB;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,CAAC,CAg0BnB"}