@workflow/world-local 4.0.1-beta.6 → 4.1.0-beta.28

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 (65) hide show
  1. package/dist/config.d.ts +15 -4
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +35 -9
  4. package/dist/config.js.map +1 -1
  5. package/dist/fs.d.ts +13 -0
  6. package/dist/fs.d.ts.map +1 -1
  7. package/dist/fs.js +109 -14
  8. package/dist/fs.js.map +1 -1
  9. package/dist/index.d.ts +10 -7
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +21 -9
  12. package/dist/index.js.map +1 -1
  13. package/dist/init.d.ts +91 -0
  14. package/dist/init.d.ts.map +1 -0
  15. package/dist/init.js +263 -0
  16. package/dist/init.js.map +1 -0
  17. package/dist/queue.d.ts +2 -1
  18. package/dist/queue.d.ts.map +1 -1
  19. package/dist/queue.js +83 -40
  20. package/dist/queue.js.map +1 -1
  21. package/dist/storage/events-storage.d.ts +7 -0
  22. package/dist/storage/events-storage.d.ts.map +1 -0
  23. package/dist/storage/events-storage.js +527 -0
  24. package/dist/storage/events-storage.js.map +1 -0
  25. package/dist/storage/filters.d.ts +26 -0
  26. package/dist/storage/filters.d.ts.map +1 -0
  27. package/dist/storage/filters.js +43 -0
  28. package/dist/storage/filters.js.map +1 -0
  29. package/dist/storage/helpers.d.ts +14 -0
  30. package/dist/storage/helpers.d.ts.map +1 -0
  31. package/dist/storage/helpers.js +34 -0
  32. package/dist/storage/helpers.js.map +1 -0
  33. package/dist/storage/hooks-storage.d.ts +12 -0
  34. package/dist/storage/hooks-storage.d.ts.map +1 -0
  35. package/dist/storage/hooks-storage.js +89 -0
  36. package/dist/storage/hooks-storage.js.map +1 -0
  37. package/dist/storage/index.d.ts +10 -0
  38. package/dist/storage/index.d.ts.map +1 -0
  39. package/dist/storage/index.js +20 -0
  40. package/dist/storage/index.js.map +1 -0
  41. package/dist/storage/legacy.d.ts +13 -0
  42. package/dist/storage/legacy.d.ts.map +1 -0
  43. package/dist/storage/legacy.js +73 -0
  44. package/dist/storage/legacy.js.map +1 -0
  45. package/dist/storage/runs-storage.d.ts +7 -0
  46. package/dist/storage/runs-storage.d.ts.map +1 -0
  47. package/dist/storage/runs-storage.js +59 -0
  48. package/dist/storage/runs-storage.js.map +1 -0
  49. package/dist/storage/steps-storage.d.ts +7 -0
  50. package/dist/storage/steps-storage.d.ts.map +1 -0
  51. package/dist/storage/steps-storage.js +58 -0
  52. package/dist/storage/steps-storage.js.map +1 -0
  53. package/dist/storage.d.ts +9 -2
  54. package/dist/storage.d.ts.map +1 -1
  55. package/dist/storage.js +10 -421
  56. package/dist/storage.js.map +1 -1
  57. package/dist/streamer.d.ts +1 -1
  58. package/dist/streamer.d.ts.map +1 -1
  59. package/dist/streamer.js +103 -20
  60. package/dist/streamer.js.map +1 -1
  61. package/dist/test-helpers.d.ts +43 -0
  62. package/dist/test-helpers.d.ts.map +1 -0
  63. package/dist/test-helpers.js +89 -0
  64. package/dist/test-helpers.js.map +1 -0
  65. package/package.json +10 -9
package/dist/streamer.js CHANGED
@@ -1,51 +1,97 @@
1
1
  import { EventEmitter } from 'node:events';
2
2
  import path from 'node:path';
3
3
  import { monotonicFactory } from 'ulid';
4
- import { listJSONFiles, readBuffer, write } from './fs.js';
4
+ import { z } from 'zod';
5
+ import { listJSONFiles, readBuffer, readJSON, write, writeJSON } from './fs.js';
5
6
  // Create a monotonic ULID factory that ensures ULIDs are always increasing
6
7
  // even when generated within the same millisecond
7
8
  const monotonicUlid = monotonicFactory(() => Math.random());
9
+ // Schema for the run-to-streams mapping file
10
+ const RunStreamsSchema = z.object({
11
+ streams: z.array(z.string()),
12
+ });
8
13
  export function serializeChunk(chunk) {
9
14
  const eofByte = Buffer.from([chunk.eof ? 1 : 0]);
10
15
  return Buffer.concat([eofByte, chunk.chunk]);
11
16
  }
12
17
  export function deserializeChunk(serialized) {
13
18
  const eof = serialized[0] === 1;
14
- const chunk = serialized.subarray(1);
19
+ // Create a copy instead of a view to prevent ArrayBuffer detachment
20
+ const chunk = Buffer.from(serialized.subarray(1));
15
21
  return { eof, chunk };
16
22
  }
17
23
  export function createStreamer(basedir) {
18
24
  const streamEmitter = new EventEmitter();
25
+ // Track which streams have already been registered for a run (in-memory cache)
26
+ const registeredStreams = new Set();
27
+ // Helper to record the runId <> streamId association
28
+ async function registerStreamForRun(runId, streamName) {
29
+ const cacheKey = `${runId}:${streamName}`;
30
+ if (registeredStreams.has(cacheKey)) {
31
+ return; // Already registered in this session
32
+ }
33
+ const runStreamsPath = path.join(basedir, 'streams', 'runs', `${runId}.json`);
34
+ // Read existing streams for this run
35
+ const existing = await readJSON(runStreamsPath, RunStreamsSchema);
36
+ const streams = existing?.streams ?? [];
37
+ // Add stream if not already present
38
+ if (!streams.includes(streamName)) {
39
+ streams.push(streamName);
40
+ await writeJSON(runStreamsPath, { streams }, { overwrite: true });
41
+ }
42
+ registeredStreams.add(cacheKey);
43
+ }
19
44
  return {
20
- async writeToStream(name, chunk) {
21
- const chunkId = `strm_${monotonicUlid()}`;
45
+ async writeToStream(name, _runId, chunk) {
46
+ // Generate ULID synchronously BEFORE any await to preserve call order.
47
+ // This ensures that chunks written in sequence maintain their order even
48
+ // when runId is a promise that multiple writes are waiting on.
49
+ const chunkId = `chnk_${monotonicUlid()}`;
50
+ // Await runId if it's a promise to ensure proper flushing
51
+ const runId = await _runId;
52
+ // Register this stream for the run
53
+ await registerStreamForRun(runId, name);
54
+ // Convert chunk to buffer for serialization
55
+ let chunkBuffer;
22
56
  if (typeof chunk === 'string') {
23
- chunk = new TextEncoder().encode(chunk);
57
+ chunkBuffer = Buffer.from(new TextEncoder().encode(chunk));
58
+ }
59
+ else if (chunk instanceof Buffer) {
60
+ chunkBuffer = chunk;
61
+ }
62
+ else {
63
+ chunkBuffer = Buffer.from(chunk);
24
64
  }
25
65
  const serialized = serializeChunk({
26
- chunk: Buffer.from(chunk),
66
+ chunk: chunkBuffer,
27
67
  eof: false,
28
68
  });
29
69
  const chunkPath = path.join(basedir, 'streams', 'chunks', `${name}-${chunkId}.json`);
30
70
  await write(chunkPath, serialized);
31
- // Emit real-time event
32
- const chunkData = typeof chunk === 'string'
33
- ? new TextEncoder().encode(chunk)
34
- : chunk instanceof Buffer
35
- ? new Uint8Array(chunk)
36
- : chunk;
71
+ // Emit real-time event with Uint8Array (create copy to prevent ArrayBuffer detachment)
72
+ const chunkData = Uint8Array.from(chunkBuffer);
37
73
  streamEmitter.emit(`chunk:${name}`, {
38
74
  streamName: name,
39
75
  chunkData,
40
76
  chunkId,
41
77
  });
42
78
  },
43
- async closeStream(name) {
44
- const chunkId = `strm_${monotonicUlid()}`;
79
+ async closeStream(name, _runId) {
80
+ // Generate ULID synchronously BEFORE any await to preserve call order.
81
+ const chunkId = `chnk_${monotonicUlid()}`;
82
+ // Await runId if it's a promise to ensure proper flushing
83
+ const runId = await _runId;
84
+ // Register this stream for the run (in case writeToStream wasn't called)
85
+ await registerStreamForRun(runId, name);
45
86
  const chunkPath = path.join(basedir, 'streams', 'chunks', `${name}-${chunkId}.json`);
46
87
  await write(chunkPath, serializeChunk({ chunk: Buffer.from([]), eof: true }));
47
88
  streamEmitter.emit(`close:${name}`, { streamName: name });
48
89
  },
90
+ async listStreamsByRunId(runId) {
91
+ const runStreamsPath = path.join(basedir, 'streams', 'runs', `${runId}.json`);
92
+ const data = await readJSON(runStreamsPath, RunStreamsSchema);
93
+ return data?.streams ?? [];
94
+ },
49
95
  async readFromStream(name, startIndex = 0) {
50
96
  const chunksDir = path.join(basedir, 'streams', 'chunks');
51
97
  let removeListeners = () => { };
@@ -56,25 +102,44 @@ export function createStreamer(basedir) {
56
102
  // Buffer for chunks that arrive via events during disk reading
57
103
  const bufferedEventChunks = [];
58
104
  let isReadingFromDisk = true;
105
+ // Buffer close event if it arrives during disk reading
106
+ let pendingClose = false;
59
107
  const chunkListener = (event) => {
60
108
  deliveredChunkIds.add(event.chunkId);
109
+ // Skip empty chunks to maintain consistency with disk reading behavior
110
+ // Empty chunks are not enqueued when read from disk (see line 184-186)
111
+ if (event.chunkData.byteLength === 0) {
112
+ return;
113
+ }
61
114
  if (isReadingFromDisk) {
62
115
  // Buffer chunks that arrive during disk reading to maintain order
116
+ // Create a copy to prevent ArrayBuffer detachment when enqueued later
63
117
  bufferedEventChunks.push({
64
118
  chunkId: event.chunkId,
65
- chunkData: event.chunkData,
119
+ chunkData: Uint8Array.from(event.chunkData),
66
120
  });
67
121
  }
68
122
  else {
69
123
  // After disk reading is complete, deliver chunks immediately
70
- controller.enqueue(event.chunkData);
124
+ // Create a copy to prevent ArrayBuffer detachment
125
+ controller.enqueue(Uint8Array.from(event.chunkData));
71
126
  }
72
127
  };
73
128
  const closeListener = () => {
129
+ // Buffer close event if disk reading is still in progress
130
+ if (isReadingFromDisk) {
131
+ pendingClose = true;
132
+ return;
133
+ }
74
134
  // Remove listeners before closing
75
135
  streamEmitter.off(`chunk:${name}`, chunkListener);
76
136
  streamEmitter.off(`close:${name}`, closeListener);
77
- controller.close();
137
+ try {
138
+ controller.close();
139
+ }
140
+ catch {
141
+ // Ignore if controller is already closed (e.g., from cancel() or EOF)
142
+ }
78
143
  };
79
144
  removeListeners = closeListener;
80
145
  // Set up listeners FIRST to avoid missing events
@@ -101,7 +166,8 @@ export function createStreamer(basedir) {
101
166
  break;
102
167
  }
103
168
  if (chunk.chunk.byteLength) {
104
- controller.enqueue(chunk.chunk);
169
+ // Create a copy to prevent ArrayBuffer detachment
170
+ controller.enqueue(Uint8Array.from(chunk.chunk));
105
171
  }
106
172
  }
107
173
  // Finished reading from disk - now deliver buffered event chunks in chronological order
@@ -109,13 +175,30 @@ export function createStreamer(basedir) {
109
175
  // Sort buffered chunks by ULID (chronological order)
110
176
  bufferedEventChunks.sort((a, b) => a.chunkId.localeCompare(b.chunkId));
111
177
  for (const buffered of bufferedEventChunks) {
112
- controller.enqueue(buffered.chunkData);
178
+ // Create a copy for defense in depth (already copied at storage, but be extra safe)
179
+ controller.enqueue(Uint8Array.from(buffered.chunkData));
113
180
  }
114
181
  if (isComplete) {
115
182
  removeListeners();
116
- controller.close();
183
+ try {
184
+ controller.close();
185
+ }
186
+ catch {
187
+ // Ignore if controller is already closed (e.g., from closeListener event)
188
+ }
117
189
  return;
118
190
  }
191
+ // Process any pending close event that arrived during disk reading
192
+ if (pendingClose) {
193
+ streamEmitter.off(`chunk:${name}`, chunkListener);
194
+ streamEmitter.off(`close:${name}`, closeListener);
195
+ try {
196
+ controller.close();
197
+ }
198
+ catch {
199
+ // Ignore if controller is already closed
200
+ }
201
+ }
119
202
  },
120
203
  cancel() {
121
204
  removeListeners();
@@ -1 +1 @@
1
- {"version":3,"file":"streamer.js","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamer.js","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { Hook, SerializedData, Step, Storage, WorkflowRun } from '@workflow/world';
2
+ /**
3
+ * Test helper functions for creating and updating storage entities through events.
4
+ * These helpers simplify test setup by providing a convenient API for common operations.
5
+ */
6
+ /**
7
+ * Create a new workflow run through the run_created event.
8
+ */
9
+ export declare function createRun(storage: Storage, data: {
10
+ deploymentId: string;
11
+ workflowName: string;
12
+ input: SerializedData;
13
+ executionContext?: Record<string, unknown>;
14
+ }): Promise<WorkflowRun>;
15
+ /**
16
+ * Update a workflow run's status through lifecycle events.
17
+ */
18
+ export declare function updateRun(storage: Storage, runId: string, eventType: 'run_started' | 'run_completed' | 'run_failed', eventData?: Record<string, unknown>): Promise<WorkflowRun>;
19
+ /**
20
+ * Create a new step through the step_created event.
21
+ */
22
+ export declare function createStep(storage: Storage, runId: string, data: {
23
+ stepId: string;
24
+ stepName: string;
25
+ input: SerializedData;
26
+ }): Promise<Step>;
27
+ /**
28
+ * Update a step's status through lifecycle events.
29
+ */
30
+ export declare function updateStep(storage: Storage, runId: string, stepId: string, eventType: 'step_started' | 'step_completed' | 'step_failed', eventData?: Record<string, unknown>): Promise<Step>;
31
+ /**
32
+ * Create a new hook through the hook_created event.
33
+ */
34
+ export declare function createHook(storage: Storage, runId: string, data: {
35
+ hookId: string;
36
+ token: string;
37
+ metadata?: SerializedData;
38
+ }): Promise<Hook>;
39
+ /**
40
+ * Dispose a hook through the hook_disposed event.
41
+ */
42
+ export declare function disposeHook(storage: Storage, runId: string, hookId: string): Promise<void>;
43
+ //# sourceMappingURL=test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,OAAO,EACP,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAGzB;;;GAGG;AAEH;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,aAAa,GAAG,eAAe,GAAG,YAAY,EACzD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,GAAG,gBAAgB,GAAG,aAAa,EAC5D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -0,0 +1,89 @@
1
+ import { SPEC_VERSION_CURRENT } from '@workflow/world';
2
+ /**
3
+ * Test helper functions for creating and updating storage entities through events.
4
+ * These helpers simplify test setup by providing a convenient API for common operations.
5
+ */
6
+ /**
7
+ * Create a new workflow run through the run_created event.
8
+ */
9
+ export async function createRun(storage, data) {
10
+ const result = await storage.events.create(null, {
11
+ eventType: 'run_created',
12
+ specVersion: SPEC_VERSION_CURRENT,
13
+ eventData: data,
14
+ });
15
+ if (!result.run) {
16
+ throw new Error('Expected run to be created');
17
+ }
18
+ return result.run;
19
+ }
20
+ /**
21
+ * Update a workflow run's status through lifecycle events.
22
+ */
23
+ export async function updateRun(storage, runId, eventType, eventData) {
24
+ const result = await storage.events.create(runId, {
25
+ eventType,
26
+ specVersion: SPEC_VERSION_CURRENT,
27
+ eventData,
28
+ });
29
+ if (!result.run) {
30
+ throw new Error('Expected run to be updated');
31
+ }
32
+ return result.run;
33
+ }
34
+ /**
35
+ * Create a new step through the step_created event.
36
+ */
37
+ export async function createStep(storage, runId, data) {
38
+ const result = await storage.events.create(runId, {
39
+ eventType: 'step_created',
40
+ specVersion: SPEC_VERSION_CURRENT,
41
+ correlationId: data.stepId,
42
+ eventData: { stepName: data.stepName, input: data.input },
43
+ });
44
+ if (!result.step) {
45
+ throw new Error('Expected step to be created');
46
+ }
47
+ return result.step;
48
+ }
49
+ /**
50
+ * Update a step's status through lifecycle events.
51
+ */
52
+ export async function updateStep(storage, runId, stepId, eventType, eventData) {
53
+ const result = await storage.events.create(runId, {
54
+ eventType,
55
+ specVersion: SPEC_VERSION_CURRENT,
56
+ correlationId: stepId,
57
+ eventData,
58
+ });
59
+ if (!result.step) {
60
+ throw new Error('Expected step to be updated');
61
+ }
62
+ return result.step;
63
+ }
64
+ /**
65
+ * Create a new hook through the hook_created event.
66
+ */
67
+ export async function createHook(storage, runId, data) {
68
+ const result = await storage.events.create(runId, {
69
+ eventType: 'hook_created',
70
+ specVersion: SPEC_VERSION_CURRENT,
71
+ correlationId: data.hookId,
72
+ eventData: { token: data.token, metadata: data.metadata },
73
+ });
74
+ if (!result.hook) {
75
+ throw new Error('Expected hook to be created');
76
+ }
77
+ return result.hook;
78
+ }
79
+ /**
80
+ * Dispose a hook through the hook_disposed event.
81
+ */
82
+ export async function disposeHook(storage, runId, hookId) {
83
+ await storage.events.create(runId, {
84
+ eventType: 'hook_disposed',
85
+ specVersion: SPEC_VERSION_CURRENT,
86
+ correlationId: hookId,
87
+ });
88
+ }
89
+ //# sourceMappingURL=test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/world-local",
3
- "version": "4.0.1-beta.6",
3
+ "version": "4.1.0-beta.28",
4
4
  "description": "Local development World implementation for Workflow DevKit",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,20 +23,21 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@vercel/queue": "0.0.0-alpha.23",
27
- "ulid": "^3.0.1",
28
- "undici": "^6.19.0",
26
+ "@vercel/queue": "0.0.0-alpha.34",
27
+ "async-sema": "3.1.1",
28
+ "ulid": "3.0.1",
29
+ "undici": "6.22.0",
29
30
  "zod": "4.1.11",
30
- "@workflow/utils": "4.0.1-beta.2",
31
- "@workflow/world": "4.0.1-beta.4"
31
+ "@workflow/errors": "4.1.0-beta.14",
32
+ "@workflow/utils": "4.1.0-beta.11",
33
+ "@workflow/world": "4.1.0-beta.1"
32
34
  },
33
35
  "devDependencies": {
34
- "@opentelemetry/api": "^1.9.0",
35
- "@types/ms": "^0.7.34",
36
+ "@opentelemetry/api": "1.9.0",
37
+ "@types/ms": "0.7.34",
36
38
  "@types/node": "22.19.0",
37
39
  "ms": "2.1.3",
38
40
  "vitest": "^3.2.4",
39
- "@workflow/errors": "4.0.1-beta.4",
40
41
  "@workflow/tsconfig": "4.0.1-beta.0"
41
42
  },
42
43
  "peerDependencies": {