@workflow/world-vercel 4.1.0-beta.34 → 4.1.0-beta.36
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.
- package/dist/encryption.d.ts +7 -3
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +18 -6
- package/dist/encryption.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +158 -8
- package/dist/events.js.map +1 -1
- package/dist/http-client.d.ts +16 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +33 -0
- package/dist/http-client.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +17 -13
- package/dist/queue.js.map +1 -1
- package/dist/refs.d.ts +52 -0
- package/dist/refs.d.ts.map +1 -0
- package/dist/refs.js +140 -0
- package/dist/refs.js.map +1 -0
- package/dist/runs.d.ts.map +1 -1
- package/dist/runs.js +3 -2
- package/dist/runs.js.map +1 -1
- package/dist/steps.d.ts +1 -1
- package/dist/streamer.d.ts.map +1 -1
- package/dist/streamer.js +27 -13
- package/dist/streamer.js.map +1 -1
- package/dist/utils.d.ts +3 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +11 -3
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -7
package/dist/encryption.d.ts
CHANGED
|
@@ -37,12 +37,15 @@ export declare function deriveRunKey(deploymentKey: Uint8Array, projectId: strin
|
|
|
37
37
|
* @param projectId - The project ID for HKDF context isolation
|
|
38
38
|
* @param runId - The workflow run ID for per-run key derivation
|
|
39
39
|
* @param options.token - Auth token (from config). Falls back to OIDC or VERCEL_TOKEN.
|
|
40
|
-
* @returns Derived 32-byte per-run AES-256 key
|
|
40
|
+
* @returns Derived 32-byte per-run AES-256 key, or `undefined` when the
|
|
41
|
+
* deployment has no key (encryption disabled for that run)
|
|
41
42
|
*/
|
|
42
43
|
export declare function fetchRunKey(deploymentId: string, projectId: string, runId: string, options?: {
|
|
43
44
|
/** Auth token (from config). Falls back to OIDC or VERCEL_TOKEN. */
|
|
44
45
|
token?: string;
|
|
45
|
-
|
|
46
|
+
/** Team ID for team-scoped API requests. */
|
|
47
|
+
teamId?: string;
|
|
48
|
+
}): Promise<Uint8Array | undefined>;
|
|
46
49
|
/**
|
|
47
50
|
* Create the `getEncryptionKeyForRun` implementation for a Vercel World.
|
|
48
51
|
*
|
|
@@ -51,8 +54,9 @@ export declare function fetchRunKey(deploymentId: string, projectId: string, run
|
|
|
51
54
|
* - Fetching it from the Vercel API when the run belongs to a different deployment
|
|
52
55
|
*
|
|
53
56
|
* @param projectId - Vercel project ID for HKDF context isolation
|
|
57
|
+
* @param teamId - Optional team ID for team-scoped API requests
|
|
54
58
|
* @param token - Optional auth token from config
|
|
55
59
|
* @returns The `getEncryptionKeyForRun` function, or `undefined` if no projectId
|
|
56
60
|
*/
|
|
57
|
-
export declare function createGetEncryptionKeyForRun(projectId: string | undefined, token?: string): World['getEncryptionKeyForRun'];
|
|
61
|
+
export declare function createGetEncryptionKeyForRun(projectId: string | undefined, teamId?: string, token?: string): World['getEncryptionKeyForRun'];
|
|
58
62
|
//# sourceMappingURL=encryption.d.ts.map
|
package/dist/encryption.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAe,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAe,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAM1D;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IACR,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA4CjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,KAAK,CAAC,wBAAwB,CAAC,CAyCjC"}
|
package/dist/encryption.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { webcrypto } from 'node:crypto';
|
|
13
13
|
import { getVercelOidcToken } from '@vercel/oidc';
|
|
14
14
|
import * as z from 'zod';
|
|
15
|
+
import { getDispatcher } from './http-client.js';
|
|
15
16
|
const KEY_BYTES = 32; // 256 bits = 32 bytes (AES-256)
|
|
16
17
|
/**
|
|
17
18
|
* Derive a per-run AES-256 encryption key using HKDF-SHA256.
|
|
@@ -60,7 +61,8 @@ export async function deriveRunKey(deploymentKey, projectId, runId) {
|
|
|
60
61
|
* @param projectId - The project ID for HKDF context isolation
|
|
61
62
|
* @param runId - The workflow run ID for per-run key derivation
|
|
62
63
|
* @param options.token - Auth token (from config). Falls back to OIDC or VERCEL_TOKEN.
|
|
63
|
-
* @returns Derived 32-byte per-run AES-256 key
|
|
64
|
+
* @returns Derived 32-byte per-run AES-256 key, or `undefined` when the
|
|
65
|
+
* deployment has no key (encryption disabled for that run)
|
|
64
66
|
*/
|
|
65
67
|
export async function fetchRunKey(deploymentId, projectId, runId, options) {
|
|
66
68
|
// Authenticate via provided token (CLI/config), OIDC token (runtime),
|
|
@@ -71,18 +73,27 @@ export async function fetchRunKey(deploymentId, projectId, runId, options) {
|
|
|
71
73
|
throw new Error('Cannot fetch run key: no OIDC token or VERCEL_TOKEN available');
|
|
72
74
|
}
|
|
73
75
|
const params = new URLSearchParams({ projectId, runId });
|
|
76
|
+
if (options?.teamId) {
|
|
77
|
+
params.set('teamId', options.teamId);
|
|
78
|
+
}
|
|
74
79
|
const response = await fetch(`https://api.vercel.com/v1/workflow/run-key/${deploymentId}?${params}`, {
|
|
80
|
+
method: 'GET',
|
|
75
81
|
headers: {
|
|
76
|
-
|
|
82
|
+
authorization: `Bearer ${token}`,
|
|
77
83
|
},
|
|
84
|
+
dispatcher: getDispatcher(),
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
|
|
78
86
|
});
|
|
79
87
|
if (!response.ok) {
|
|
80
88
|
throw new Error(`Failed to fetch run key for ${runId} (deployment ${deploymentId}): HTTP ${response.status}`);
|
|
81
89
|
}
|
|
82
90
|
const data = await response.json();
|
|
83
|
-
const result = z.object({ key: z.string() }).safeParse(data);
|
|
91
|
+
const result = z.object({ key: z.string().nullable() }).safeParse(data);
|
|
84
92
|
if (!result.success) {
|
|
85
|
-
throw new Error(
|
|
93
|
+
throw new Error(`Invalid response from Vercel API: expected { key: string | null }. Zod error: ${result.error.message}`);
|
|
94
|
+
}
|
|
95
|
+
if (result.data.key === null) {
|
|
96
|
+
return undefined;
|
|
86
97
|
}
|
|
87
98
|
return Buffer.from(result.data.key, 'base64');
|
|
88
99
|
}
|
|
@@ -94,10 +105,11 @@ export async function fetchRunKey(deploymentId, projectId, runId, options) {
|
|
|
94
105
|
* - Fetching it from the Vercel API when the run belongs to a different deployment
|
|
95
106
|
*
|
|
96
107
|
* @param projectId - Vercel project ID for HKDF context isolation
|
|
108
|
+
* @param teamId - Optional team ID for team-scoped API requests
|
|
97
109
|
* @param token - Optional auth token from config
|
|
98
110
|
* @returns The `getEncryptionKeyForRun` function, or `undefined` if no projectId
|
|
99
111
|
*/
|
|
100
|
-
export function createGetEncryptionKeyForRun(projectId, token) {
|
|
112
|
+
export function createGetEncryptionKeyForRun(projectId, teamId, token) {
|
|
101
113
|
if (!projectId)
|
|
102
114
|
return undefined;
|
|
103
115
|
const currentDeploymentId = process.env.VERCEL_DEPLOYMENT_ID;
|
|
@@ -131,7 +143,7 @@ export function createGetEncryptionKeyForRun(projectId, token) {
|
|
|
131
143
|
// raw deployment key never leaves the API boundary.
|
|
132
144
|
// Covers cross-deployment resumeHook() (OIDC auth) and o11y
|
|
133
145
|
// tooling reading data from other deployments (VERCEL_TOKEN).
|
|
134
|
-
return fetchRunKey(deploymentId, projectId, runId, { token });
|
|
146
|
+
return fetchRunKey(deploymentId, projectId, runId, { token, teamId });
|
|
135
147
|
};
|
|
136
148
|
}
|
|
137
149
|
//# sourceMappingURL=encryption.js.map
|
package/dist/encryption.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACV,KAAK,WAAW,EAIhB,KAAK,+BAA+B,EACpC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAIvB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACV,KAAK,WAAW,EAIhB,KAAK,+BAA+B,EACpC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAIvB,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyM5C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,GAAG,+BAA+B,EAC1D,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAuFnC;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,IAAI,EAAE,eAAe,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CA6CtB"}
|
package/dist/events.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { EventSchema, EventTypeSchema, HookSchema, PaginatedResponseSchema, WorkflowRunSchema, } from '@workflow/world';
|
|
2
2
|
import z from 'zod';
|
|
3
|
+
import { isRefDescriptor, resolveRefDescriptors, } from './refs.js';
|
|
3
4
|
import { cancelWorkflowRunV1, createWorkflowRunV1 } from './runs.js';
|
|
4
5
|
import { deserializeStep, StepWireSchema } from './steps.js';
|
|
6
|
+
import { trace } from './telemetry.js';
|
|
5
7
|
import { DEFAULT_RESOLVE_DATA_OPTION, makeRequest } from './utils.js';
|
|
6
|
-
// Helper to filter event data based on resolveData setting
|
|
8
|
+
// Helper to filter event data based on resolveData setting.
|
|
9
|
+
// Strips both eventData and eventDataRef since the server always returns
|
|
10
|
+
// lazy refs now, and callers with resolveData='none' should not see either.
|
|
7
11
|
function filterEventData(event, resolveData) {
|
|
8
12
|
if (resolveData === 'none') {
|
|
9
|
-
const { eventData: _eventData, ...rest } = event;
|
|
13
|
+
const { eventData: _eventData, eventDataRef: _eventDataRef, ...rest } = event;
|
|
10
14
|
return rest;
|
|
11
15
|
}
|
|
12
16
|
return event;
|
|
@@ -19,18 +23,34 @@ const EventResultWireSchema = z.object({
|
|
|
19
23
|
step: StepWireSchema.optional(),
|
|
20
24
|
hook: HookSchema.optional(),
|
|
21
25
|
});
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
// specVersion
|
|
26
|
+
// Schema for events returned with `remoteRefBehavior=lazy`.
|
|
27
|
+
// Includes both `eventDataRef` (legacy, specVersion=1) and `eventData`
|
|
28
|
+
// (v2, specVersion=2 — may contain nested RefDescriptor values).
|
|
29
|
+
// specVersion defaults to 1 (legacy) when parsing responses from storage.
|
|
25
30
|
const EventWithRefsSchema = z.object({
|
|
26
31
|
eventId: z.string(),
|
|
27
32
|
runId: z.string(),
|
|
28
33
|
eventType: EventTypeSchema,
|
|
29
34
|
correlationId: z.string().optional(),
|
|
30
35
|
eventDataRef: z.any().optional(),
|
|
36
|
+
eventData: z.any().optional(),
|
|
31
37
|
createdAt: z.coerce.date(),
|
|
32
38
|
specVersion: z.number().default(1),
|
|
33
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* Maps event types to the field name within `eventData` that may contain
|
|
42
|
+
* a ref descriptor. Mirrors the server-side `resolveEventDataRefs()` mapping.
|
|
43
|
+
*/
|
|
44
|
+
const eventDataRefFieldMap = {
|
|
45
|
+
run_created: 'input',
|
|
46
|
+
run_completed: 'output',
|
|
47
|
+
run_failed: 'error',
|
|
48
|
+
step_created: 'input',
|
|
49
|
+
step_completed: 'result',
|
|
50
|
+
step_failed: 'error',
|
|
51
|
+
step_retrying: 'error',
|
|
52
|
+
hook_created: 'metadata',
|
|
53
|
+
};
|
|
34
54
|
// Events where the client uses the response entity data need 'resolve' (default).
|
|
35
55
|
// Events where the client discards the response can use 'lazy' to skip expensive
|
|
36
56
|
// S3 ref resolution on the server, saving ~200-460ms per event.
|
|
@@ -39,6 +59,101 @@ const eventsNeedingResolve = new Set([
|
|
|
39
59
|
'run_started', // client reads result.run (checks startedAt, status)
|
|
40
60
|
'step_started', // client reads result.step (checks attempt, state)
|
|
41
61
|
]);
|
|
62
|
+
function collectPendingRefs(events) {
|
|
63
|
+
const pending = [];
|
|
64
|
+
for (let i = 0; i < events.length; i++) {
|
|
65
|
+
const event = events[i];
|
|
66
|
+
// Legacy events (specVersion=1): eventDataRef is a RefDescriptor
|
|
67
|
+
if (event.eventDataRef && isRefDescriptor(event.eventDataRef)) {
|
|
68
|
+
pending.push({
|
|
69
|
+
eventIndex: i,
|
|
70
|
+
refType: 'entity',
|
|
71
|
+
descriptor: event.eventDataRef,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// V2 events: eventData may contain a nested RefDescriptor
|
|
75
|
+
if (event.eventData && typeof event.eventData === 'object') {
|
|
76
|
+
const fieldName = eventDataRefFieldMap[event.eventType];
|
|
77
|
+
if (fieldName) {
|
|
78
|
+
const fieldValue = event.eventData[fieldName];
|
|
79
|
+
if (isRefDescriptor(fieldValue)) {
|
|
80
|
+
pending.push({
|
|
81
|
+
eventIndex: i,
|
|
82
|
+
refType: 'nested',
|
|
83
|
+
fieldName,
|
|
84
|
+
descriptor: fieldValue,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return pending;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Hydrate lazy-loaded events by resolving all ref descriptors client-side.
|
|
94
|
+
* For entity-level refs (eventDataRef), the resolved value becomes eventData.
|
|
95
|
+
* For nested refs (eventData[field]), the resolved value replaces the descriptor.
|
|
96
|
+
*
|
|
97
|
+
* Events are shallow-cloned before mutation to avoid corrupting any upstream
|
|
98
|
+
* caches (SWR, React cache, etc.) that might hold references to the originals.
|
|
99
|
+
*/
|
|
100
|
+
async function hydrateEventRefs(events, config, refResolveConcurrency) {
|
|
101
|
+
const pending = collectPendingRefs(events);
|
|
102
|
+
if (pending.length === 0)
|
|
103
|
+
return events;
|
|
104
|
+
return trace('world.refs.hydrate', async (span) => {
|
|
105
|
+
span?.setAttribute('workflow.refs.hydrated_count', pending.length);
|
|
106
|
+
// Deduplicate descriptors by _ref key to avoid redundant resolutions.
|
|
107
|
+
// Multiple events may reference the same ref (e.g., shared input).
|
|
108
|
+
const uniqueRefs = new Map();
|
|
109
|
+
for (const p of pending) {
|
|
110
|
+
if (!uniqueRefs.has(p.descriptor._ref)) {
|
|
111
|
+
const eventRunId = events[p.eventIndex].runId;
|
|
112
|
+
uniqueRefs.set(p.descriptor._ref, {
|
|
113
|
+
descriptor: p.descriptor,
|
|
114
|
+
runId: eventRunId,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const deduped = Array.from(uniqueRefs.values());
|
|
119
|
+
// Resolve unique descriptors in parallel with bounded concurrency
|
|
120
|
+
const dedupedResults = await resolveRefDescriptors(deduped, config, refResolveConcurrency).catch((err) => {
|
|
121
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
122
|
+
throw new Error(`Failed to hydrate ${pending.length} ref(s) across ${events.length} event(s): ${msg}`);
|
|
123
|
+
});
|
|
124
|
+
// Build a map from ref key → resolved value for fast lookup
|
|
125
|
+
const resolvedMap = new Map();
|
|
126
|
+
const dedupedKeys = Array.from(uniqueRefs.keys());
|
|
127
|
+
for (let i = 0; i < dedupedKeys.length; i++) {
|
|
128
|
+
resolvedMap.set(dedupedKeys[i], dedupedResults[i]);
|
|
129
|
+
}
|
|
130
|
+
// Shallow-clone events that need modification, then apply resolved values
|
|
131
|
+
const result = [...events];
|
|
132
|
+
for (let i = 0; i < pending.length; i++) {
|
|
133
|
+
const { eventIndex, refType, fieldName, descriptor } = pending[i];
|
|
134
|
+
const resolved = resolvedMap.get(descriptor._ref);
|
|
135
|
+
// Shallow-clone the event (and eventData if nested) before mutating
|
|
136
|
+
if (result[eventIndex] === events[eventIndex]) {
|
|
137
|
+
result[eventIndex] = { ...events[eventIndex] };
|
|
138
|
+
}
|
|
139
|
+
const event = result[eventIndex];
|
|
140
|
+
if (refType === 'entity') {
|
|
141
|
+
// Legacy: eventDataRef → eventData, remove the ref field
|
|
142
|
+
event.eventData = resolved;
|
|
143
|
+
delete event.eventDataRef;
|
|
144
|
+
}
|
|
145
|
+
else if (refType === 'nested' && fieldName) {
|
|
146
|
+
// Shallow-clone eventData before mutating if not yet cloned
|
|
147
|
+
if (event.eventData === events[eventIndex].eventData) {
|
|
148
|
+
event.eventData = { ...event.eventData };
|
|
149
|
+
}
|
|
150
|
+
// V2: replace the nested ref descriptor with resolved value
|
|
151
|
+
event.eventData[fieldName] = resolved;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
42
157
|
// Functions
|
|
43
158
|
export async function getWorkflowRunEvents(params, config) {
|
|
44
159
|
const searchParams = new URLSearchParams();
|
|
@@ -62,19 +177,54 @@ export async function getWorkflowRunEvents(params, config) {
|
|
|
62
177
|
searchParams.set('sortOrder', pagination.sortOrder);
|
|
63
178
|
if (correlationId)
|
|
64
179
|
searchParams.set('correlationId', correlationId);
|
|
65
|
-
|
|
66
|
-
|
|
180
|
+
// Always send 'lazy' to the server to avoid memory pressure from resolving
|
|
181
|
+
// all refs in memory. When resolveData is 'all', we hydrate refs client-side
|
|
182
|
+
// via individual ref resolution requests.
|
|
183
|
+
searchParams.set('remoteRefBehavior', 'lazy');
|
|
67
184
|
const queryString = searchParams.toString();
|
|
68
185
|
const query = queryString ? `?${queryString}` : '';
|
|
69
186
|
const endpoint = correlationId
|
|
70
187
|
? `/v2/events${query}`
|
|
71
188
|
: `/v2/runs/${runId}/events${query}`;
|
|
189
|
+
let refResolveConcurrency;
|
|
72
190
|
const response = (await makeRequest({
|
|
73
191
|
endpoint,
|
|
74
192
|
options: { method: 'GET' },
|
|
75
193
|
config,
|
|
76
|
-
schema: PaginatedResponseSchema(
|
|
194
|
+
schema: PaginatedResponseSchema(EventWithRefsSchema),
|
|
195
|
+
onResponse: (res) => {
|
|
196
|
+
const header = res.headers.get('x-ref-resolve-concurrency');
|
|
197
|
+
if (header) {
|
|
198
|
+
const parsed = parseInt(header, 10);
|
|
199
|
+
if (!Number.isNaN(parsed) && parsed > 0) {
|
|
200
|
+
refResolveConcurrency = parsed;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
77
204
|
}));
|
|
205
|
+
if (resolveData === 'all') {
|
|
206
|
+
// Hydrate refs client-side: resolve all ref descriptors in parallel
|
|
207
|
+
const hydratedEvents = await hydrateEventRefs(response.data, config, refResolveConcurrency);
|
|
208
|
+
// Re-parse hydrated events through EventSchema to apply type coercions
|
|
209
|
+
// (e.g., z.coerce.date() for resumeAt) that EventWithRefsSchema skips.
|
|
210
|
+
// Use safeParse to gracefully handle any events that don't match a known
|
|
211
|
+
// type — pass them through as-is rather than failing the entire request.
|
|
212
|
+
let coercionFailures = 0;
|
|
213
|
+
const validatedEvents = hydratedEvents.map((event) => {
|
|
214
|
+
const result = EventSchema.safeParse(event);
|
|
215
|
+
if (!result.success)
|
|
216
|
+
coercionFailures++;
|
|
217
|
+
return result.success ? result.data : event;
|
|
218
|
+
});
|
|
219
|
+
if (coercionFailures > 0) {
|
|
220
|
+
console.warn(`[world-vercel] EventSchema coercion failed for ${coercionFailures}/${hydratedEvents.length} events`);
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
...response,
|
|
224
|
+
data: validatedEvents,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
// resolveData === 'none': strip eventData and eventDataRef
|
|
78
228
|
return {
|
|
79
229
|
...response,
|
|
80
230
|
data: response.data.map((event) => filterEventData(event, resolveData)),
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,WAAW,EACX,eAAe,EACf,UAAU,EAIV,uBAAuB,EAEvB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RetryAgent } from 'undici';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a shared undici RetryAgent wrapping an Agent.
|
|
4
|
+
*
|
|
5
|
+
* - Connection pooling (up to 8 connections per origin)
|
|
6
|
+
* - Retry: Automatic retry on 429/5xx or network errors with exponential backoff
|
|
7
|
+
* - Observes Retry-After header if received and lower than 30s
|
|
8
|
+
*
|
|
9
|
+
* Note: HTTP/2 is disabled because undici's experimental H2 support hangs
|
|
10
|
+
* in certain Vercel runtime environments (sveltekit). HTTP/1.1 pipelining
|
|
11
|
+
* is also disabled (pipelining: 1) because it causes head-of-line blocking
|
|
12
|
+
* that deadlocks the webhook respondWith mechanism. The primary benefits
|
|
13
|
+
* from undici here are retry logic and connection pooling.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getDispatcher(): RetryAgent;
|
|
16
|
+
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,QAAQ,CAAC;AAI3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAmB1C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Agent, RetryAgent } from 'undici';
|
|
2
|
+
let _dispatcher;
|
|
3
|
+
/**
|
|
4
|
+
* Returns a shared undici RetryAgent wrapping an Agent.
|
|
5
|
+
*
|
|
6
|
+
* - Connection pooling (up to 8 connections per origin)
|
|
7
|
+
* - Retry: Automatic retry on 429/5xx or network errors with exponential backoff
|
|
8
|
+
* - Observes Retry-After header if received and lower than 30s
|
|
9
|
+
*
|
|
10
|
+
* Note: HTTP/2 is disabled because undici's experimental H2 support hangs
|
|
11
|
+
* in certain Vercel runtime environments (sveltekit). HTTP/1.1 pipelining
|
|
12
|
+
* is also disabled (pipelining: 1) because it causes head-of-line blocking
|
|
13
|
+
* that deadlocks the webhook respondWith mechanism. The primary benefits
|
|
14
|
+
* from undici here are retry logic and connection pooling.
|
|
15
|
+
*/
|
|
16
|
+
export function getDispatcher() {
|
|
17
|
+
if (!_dispatcher) {
|
|
18
|
+
_dispatcher = new RetryAgent(new Agent({
|
|
19
|
+
connections: 8,
|
|
20
|
+
keepAliveTimeout: 10_000,
|
|
21
|
+
pipelining: 1,
|
|
22
|
+
}), {
|
|
23
|
+
// Observe Retry-After header if received
|
|
24
|
+
retryAfter: true,
|
|
25
|
+
// By default, we observe re-try headers, and also separately
|
|
26
|
+
// re-try on these status codes: 429 / 500 / 502 / 503 / 504.
|
|
27
|
+
// TODO: We might want to let 429s pass through, so that we can do
|
|
28
|
+
// runtime retry-after handling through the queue.
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return _dispatcher;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE3C,IAAI,WAAmC,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,IAAI,UAAU,CAC1B,IAAI,KAAK,CAAC;YACR,WAAW,EAAE,CAAC;YACd,gBAAgB,EAAE,MAAM;YACxB,UAAU,EAAE,CAAC;SACd,CAAC,EACF;YACE,yCAAyC;YACzC,UAAU,EAAE,IAAI;YAChB,6DAA6D;YAC7D,6DAA6D;YAC7D,kEAAkE;YAClE,kDAAkD;SACnD,CACF,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,CAgB3D"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export function createVercelWorld(config) {
|
|
|
14
14
|
...createQueue(config),
|
|
15
15
|
...createStorage(config),
|
|
16
16
|
...createStreamer(config),
|
|
17
|
-
getEncryptionKeyForRun: createGetEncryptionKeyForRun(projectId, config?.token),
|
|
17
|
+
getEncryptionKeyForRun: createGetEncryptionKeyForRun(projectId, config?.projectConfig?.teamId, config?.token),
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,8CAA8C;IAC9C,qFAAqF;IACrF,MAAM,SAAS,GACb,MAAM,EAAE,aAAa,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEpE,OAAO;QACL,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,aAAa,CAAC,MAAM,CAAC;QACxB,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,sBAAsB,EAAE,4BAA4B,CAClD,SAAS,EACT,MAAM,EAAE,KAAK,CACd;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,8CAA8C;IAC9C,qFAAqF;IACrF,MAAM,SAAS,GACb,MAAM,EAAE,aAAa,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEpE,OAAO;QACL,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,aAAa,CAAC,MAAM,CAAC;QACxB,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,sBAAsB,EAAE,4BAA4B,CAClD,SAAS,EACT,MAAM,EAAE,aAAa,EAAE,MAAM,EAC7B,MAAM,EAAE,KAAK,CACd;KACF,CAAC;AACJ,CAAC"}
|
package/dist/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,KAAK,EAKX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,SAAS,EAA0B,MAAM,YAAY,CAAC;AAoEpE,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,CAgIrD"}
|
package/dist/queue.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { QueueClient, DuplicateMessageError } from '@vercel/queue';
|
|
2
|
-
import { handleCallback } from '@vercel/queue/web';
|
|
3
2
|
import { MessageId, QueuePayloadSchema, ValidQueueName, } from '@workflow/world';
|
|
4
3
|
import * as z from 'zod';
|
|
5
4
|
import { getHeaders, getHttpUrl } from './utils.js';
|
|
@@ -58,13 +57,15 @@ function getHeadersFromPayload(payload) {
|
|
|
58
57
|
export function createQueue(config) {
|
|
59
58
|
const { baseUrl, usingProxy } = getHttpUrl(config);
|
|
60
59
|
const headers = getHeaders(config, { usingProxy });
|
|
60
|
+
const region = 'iad1';
|
|
61
61
|
const clientOptions = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
region,
|
|
63
|
+
...(usingProxy && {
|
|
64
|
+
// final path will be /queues-proxy/api/v3/topic/...
|
|
65
|
+
// and the proxy will strip the /queues-proxy prefix before forwarding to VQS
|
|
66
|
+
resolveBaseUrl: () => new URL(`${baseUrl}/queues-proxy`),
|
|
67
|
+
token: config?.token,
|
|
68
|
+
}),
|
|
68
69
|
headers: Object.fromEntries(headers.entries()),
|
|
69
70
|
};
|
|
70
71
|
const queue = async (queueName, payload, opts) => {
|
|
@@ -96,9 +97,7 @@ export function createQueue(config) {
|
|
|
96
97
|
});
|
|
97
98
|
const sanitizedQueueName = queueName.replace(/[^A-Za-z0-9-_]/g, '-');
|
|
98
99
|
try {
|
|
99
|
-
const { messageId } = await client.
|
|
100
|
-
queueName: sanitizedQueueName,
|
|
101
|
-
payload: encoded,
|
|
100
|
+
const { messageId } = await client.send(sanitizedQueueName, encoded, {
|
|
102
101
|
idempotencyKey: opts?.idempotencyKey,
|
|
103
102
|
delaySeconds: opts?.delaySeconds,
|
|
104
103
|
headers: {
|
|
@@ -106,7 +105,11 @@ export function createQueue(config) {
|
|
|
106
105
|
...opts?.headers,
|
|
107
106
|
},
|
|
108
107
|
});
|
|
109
|
-
return {
|
|
108
|
+
return {
|
|
109
|
+
// messageId may be null when VQS fails over to a different region —
|
|
110
|
+
// the event is ingested but the responding region cannot return an ID.
|
|
111
|
+
messageId: messageId ? MessageId.parse(messageId) : null,
|
|
112
|
+
};
|
|
110
113
|
}
|
|
111
114
|
catch (error) {
|
|
112
115
|
// Silently handle idempotency key conflicts - the message was already queued.
|
|
@@ -122,7 +125,8 @@ export function createQueue(config) {
|
|
|
122
125
|
}
|
|
123
126
|
};
|
|
124
127
|
const createQueueHandler = (_prefix, handler) => {
|
|
125
|
-
|
|
128
|
+
const client = new QueueClient(clientOptions);
|
|
129
|
+
return client.handleCallback(async (message, metadata) => {
|
|
126
130
|
if (!message || !metadata) {
|
|
127
131
|
return;
|
|
128
132
|
}
|
|
@@ -142,7 +146,7 @@ export function createQueue(config) {
|
|
|
142
146
|
// we may get a duplicate invocation but won't lose the scheduled wakeup.
|
|
143
147
|
await queue(queueName, payload, { deploymentId, delaySeconds });
|
|
144
148
|
}
|
|
145
|
-
}
|
|
149
|
+
});
|
|
146
150
|
};
|
|
147
151
|
const getDeploymentId = async () => {
|
|
148
152
|
const deploymentId = process.env.VERCEL_DEPLOYMENT_ID;
|
package/dist/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/refs.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type APIConfig } from './utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* A ref descriptor as returned by workflow-server when `remoteRefBehavior=lazy`.
|
|
4
|
+
* Matches the server-side `RefDescriptor` type in `lib/data/remote-ref.ts`.
|
|
5
|
+
*/
|
|
6
|
+
export interface RefDescriptor {
|
|
7
|
+
_type: 'RemoteRef';
|
|
8
|
+
_ref: string;
|
|
9
|
+
/** Base64-encoded inline payload. Present only for dbrf: (inline) refs. */
|
|
10
|
+
_data?: string;
|
|
11
|
+
/** Content type of the inline payload. Present only for dbrf: refs. */
|
|
12
|
+
_ct?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Checks if a value is a RefDescriptor object.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isRefDescriptor(value: unknown): value is RefDescriptor;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve a single ref descriptor.
|
|
20
|
+
*
|
|
21
|
+
* For inline refs (dbrf: prefix), the data is decoded locally from the
|
|
22
|
+
* descriptor's `_data` field — no network request is needed.
|
|
23
|
+
*
|
|
24
|
+
* For S3 refs (s3rf:) and Redis refs (kvrf:), a request is made to the
|
|
25
|
+
* `GET /v2/runs/:runId/refs` endpoint on workflow-server which returns
|
|
26
|
+
* raw CBOR or binary bytes.
|
|
27
|
+
*
|
|
28
|
+
* @param descriptor - The ref descriptor to resolve
|
|
29
|
+
* @param runId - The runId that owns this ref (used in the URL path)
|
|
30
|
+
* @param config - API configuration
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveRefDescriptor(descriptor: RefDescriptor, runId: string, config?: APIConfig): Promise<unknown>;
|
|
33
|
+
/**
|
|
34
|
+
* A ref descriptor paired with the runId that owns it, for resolution.
|
|
35
|
+
*/
|
|
36
|
+
export interface RefWithRunId {
|
|
37
|
+
descriptor: RefDescriptor;
|
|
38
|
+
runId: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve multiple ref descriptors in parallel with bounded concurrency.
|
|
42
|
+
*
|
|
43
|
+
* If any ref in a batch fails, the batch rejects and remaining batches
|
|
44
|
+
* are aborted to avoid cascading failures.
|
|
45
|
+
*
|
|
46
|
+
* @param refs - Array of ref descriptors with their owning runIds
|
|
47
|
+
* @param config - API configuration
|
|
48
|
+
* @param concurrency - Max concurrent ref resolution requests. Falls back to REF_RESOLVE_CONCURRENCY.
|
|
49
|
+
* @returns Array of resolved values in the same order as input
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveRefDescriptors(refs: RefWithRunId[], config?: APIConfig, concurrency?: number): Promise<unknown[]>;
|
|
52
|
+
//# sourceMappingURL=refs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAStE;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,OAAO,CAAC,CA8ElB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,aAAa,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,YAAY,EAAE,EACpB,MAAM,CAAC,EAAE,SAAS,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAyCpB"}
|
package/dist/refs.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { WorkflowAPIError } from '@workflow/errors';
|
|
2
|
+
import { decode } from 'cbor-x';
|
|
3
|
+
import { getDispatcher } from './http-client.js';
|
|
4
|
+
import { ErrorType, getSpanKind, HttpRequestMethod, HttpResponseStatusCode, PeerService, trace, UrlFull, } from './telemetry.js';
|
|
5
|
+
import { getHttpConfig } from './utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a value is a RefDescriptor object.
|
|
8
|
+
*/
|
|
9
|
+
export function isRefDescriptor(value) {
|
|
10
|
+
return (typeof value === 'object' &&
|
|
11
|
+
value !== null &&
|
|
12
|
+
'_type' in value &&
|
|
13
|
+
'_ref' in value &&
|
|
14
|
+
typeof value._ref === 'string' &&
|
|
15
|
+
value._type === 'RemoteRef');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Maximum number of concurrent ref resolution requests.
|
|
19
|
+
* Limits peak concurrency to avoid overwhelming the server.
|
|
20
|
+
*/
|
|
21
|
+
const REF_RESOLVE_CONCURRENCY = 10;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a single ref descriptor.
|
|
24
|
+
*
|
|
25
|
+
* For inline refs (dbrf: prefix), the data is decoded locally from the
|
|
26
|
+
* descriptor's `_data` field — no network request is needed.
|
|
27
|
+
*
|
|
28
|
+
* For S3 refs (s3rf:) and Redis refs (kvrf:), a request is made to the
|
|
29
|
+
* `GET /v2/runs/:runId/refs` endpoint on workflow-server which returns
|
|
30
|
+
* raw CBOR or binary bytes.
|
|
31
|
+
*
|
|
32
|
+
* @param descriptor - The ref descriptor to resolve
|
|
33
|
+
* @param runId - The runId that owns this ref (used in the URL path)
|
|
34
|
+
* @param config - API configuration
|
|
35
|
+
*/
|
|
36
|
+
export async function resolveRefDescriptor(descriptor, runId, config) {
|
|
37
|
+
const ref = descriptor._ref;
|
|
38
|
+
// Inline refs (dbrf:) carry their data in the descriptor — decode locally
|
|
39
|
+
if (ref.startsWith('dbrf:')) {
|
|
40
|
+
if (!descriptor._data) {
|
|
41
|
+
throw new Error(`Inline ref descriptor missing _data field: ${ref}`);
|
|
42
|
+
}
|
|
43
|
+
const contentType = descriptor._ct ?? 'application/cbor';
|
|
44
|
+
const binaryData = Buffer.from(descriptor._data, 'base64');
|
|
45
|
+
if (contentType === 'application/octet-stream') {
|
|
46
|
+
// Buffer is a Uint8Array subclass — return directly to avoid a copy.
|
|
47
|
+
return binaryData;
|
|
48
|
+
}
|
|
49
|
+
// CBOR-encoded data — decode it. Buffer is accepted by cbor-x directly.
|
|
50
|
+
return decode(binaryData);
|
|
51
|
+
}
|
|
52
|
+
// Remote refs (s3rf:, kvrf:) — fetch raw bytes from the server.
|
|
53
|
+
// The server returns the raw stored bytes directly (not wrapped in a
|
|
54
|
+
// JSON/CBOR envelope). The Content-Type may be 'application/cbor' (for
|
|
55
|
+
// CBOR-encoded data) or 'application/octet-stream' (for raw binary like
|
|
56
|
+
// Uint8Array). We handle both content types directly rather than going
|
|
57
|
+
// through makeRequest, which only handles JSON/CBOR API responses.
|
|
58
|
+
const { baseUrl, headers } = await getHttpConfig(config);
|
|
59
|
+
const endpoint = `/v2/runs/${encodeURIComponent(runId)}/refs?ref=${encodeURIComponent(ref)}`;
|
|
60
|
+
const url = `${baseUrl}${endpoint}`;
|
|
61
|
+
// Set headers that makeRequest normally adds: Accept for content
|
|
62
|
+
// negotiation and X-Request-Time to bypass RSC request memoization.
|
|
63
|
+
headers.set('Accept', 'application/cbor, application/octet-stream');
|
|
64
|
+
headers.set('X-Request-Time', Date.now().toString());
|
|
65
|
+
return trace('http GET', { kind: await getSpanKind('CLIENT') }, async (span) => {
|
|
66
|
+
span?.setAttributes({
|
|
67
|
+
...HttpRequestMethod('GET'),
|
|
68
|
+
...UrlFull(url),
|
|
69
|
+
...PeerService('workflow-server'),
|
|
70
|
+
});
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
|
|
72
|
+
const response = await fetch(url, {
|
|
73
|
+
method: 'GET',
|
|
74
|
+
headers,
|
|
75
|
+
dispatcher: getDispatcher(),
|
|
76
|
+
});
|
|
77
|
+
span?.setAttributes({
|
|
78
|
+
...HttpResponseStatusCode(response.status),
|
|
79
|
+
});
|
|
80
|
+
if (!response.ok) {
|
|
81
|
+
const error = new WorkflowAPIError(`Failed to resolve ref: HTTP ${response.status}`, { url, status: response.status });
|
|
82
|
+
span?.setAttributes({
|
|
83
|
+
...ErrorType(`HTTP ${response.status}`),
|
|
84
|
+
});
|
|
85
|
+
span?.recordException?.(error);
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
const contentType = response.headers.get('content-type') || '';
|
|
89
|
+
const buffer = await response.arrayBuffer();
|
|
90
|
+
if (contentType.includes('application/octet-stream')) {
|
|
91
|
+
// Raw binary data (e.g., Uint8Array stored by the workflow)
|
|
92
|
+
return new Uint8Array(buffer);
|
|
93
|
+
}
|
|
94
|
+
// CBOR-encoded data (the common case for structured values)
|
|
95
|
+
return decode(new Uint8Array(buffer));
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Resolve multiple ref descriptors in parallel with bounded concurrency.
|
|
100
|
+
*
|
|
101
|
+
* If any ref in a batch fails, the batch rejects and remaining batches
|
|
102
|
+
* are aborted to avoid cascading failures.
|
|
103
|
+
*
|
|
104
|
+
* @param refs - Array of ref descriptors with their owning runIds
|
|
105
|
+
* @param config - API configuration
|
|
106
|
+
* @param concurrency - Max concurrent ref resolution requests. Falls back to REF_RESOLVE_CONCURRENCY.
|
|
107
|
+
* @returns Array of resolved values in the same order as input
|
|
108
|
+
*/
|
|
109
|
+
export async function resolveRefDescriptors(refs, config, concurrency) {
|
|
110
|
+
if (refs.length === 0)
|
|
111
|
+
return [];
|
|
112
|
+
const limit = concurrency ?? REF_RESOLVE_CONCURRENCY;
|
|
113
|
+
return trace('world.refs.resolve', async (span) => {
|
|
114
|
+
const inlineCount = refs.filter((r) => r.descriptor._ref.startsWith('dbrf:')).length;
|
|
115
|
+
const remoteCount = refs.length - inlineCount;
|
|
116
|
+
span?.setAttributes({
|
|
117
|
+
'workflow.refs.total_count': refs.length,
|
|
118
|
+
'workflow.refs.inline_count': inlineCount,
|
|
119
|
+
'workflow.refs.remote_count': remoteCount,
|
|
120
|
+
'workflow.refs.concurrency_limit': limit,
|
|
121
|
+
});
|
|
122
|
+
// Simple case: if under concurrency limit, resolve all at once
|
|
123
|
+
if (refs.length <= limit) {
|
|
124
|
+
return Promise.all(refs.map((r) => resolveRefDescriptor(r.descriptor, r.runId, config)));
|
|
125
|
+
}
|
|
126
|
+
// Batch with bounded concurrency. If any ref in a batch fails,
|
|
127
|
+
// the batch rejects and remaining batches are aborted to avoid
|
|
128
|
+
// cascading failures.
|
|
129
|
+
const results = new Array(refs.length);
|
|
130
|
+
for (let i = 0; i < refs.length; i += limit) {
|
|
131
|
+
const batch = refs.slice(i, i + limit);
|
|
132
|
+
const batchResults = await Promise.all(batch.map((r) => resolveRefDescriptor(r.descriptor, r.runId, config)));
|
|
133
|
+
for (let j = 0; j < batchResults.length; j++) {
|
|
134
|
+
results[i + j] = batchResults[j];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return results;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=refs.js.map
|
package/dist/refs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
|
package/dist/runs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAGtB,KAAK,WAAW,EAEhB,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAGtB,KAAK,WAAW,EAEhB,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAsE5C;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EACxD,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACtD,wBAAsB,gBAAgB,CACpC,MAAM,CAAC,EAAE,sBAAsB,GAAG;IAAE,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,EACzD,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,wBAAsB,gBAAgB,CACpC,MAAM,CAAC,EAAE,sBAAsB,EAC/B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC;AA6CpE,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,wBAAwB,EAC9B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CAStB;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,oBAAoB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EACtD,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACnC,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,oBAAoB,GAAG;IAAE,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,EACvD,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;AACxB,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,GAAG,sBAAsB,CAAC,CAAC;AAkCjD,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,uBAAuB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EACzD,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACnC,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,uBAAuB,GAAG;IAAE,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,EAC1D,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;AACxB,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,GAAG,sBAAsB,CAAC,CAAC"}
|
package/dist/runs.js
CHANGED
|
@@ -16,6 +16,9 @@ const WorkflowRunWireBaseSchema = WorkflowRunBaseSchema.omit({
|
|
|
16
16
|
}).extend({
|
|
17
17
|
// Backend returns error as either a JSON string or structured object
|
|
18
18
|
error: z.union([z.string(), StructuredErrorSchema]).optional(),
|
|
19
|
+
// Not part of the World interface, but passed through for direct consumers and debugging
|
|
20
|
+
blobStorageBytes: z.number().optional(),
|
|
21
|
+
streamStorageBytes: z.number().optional(),
|
|
19
22
|
});
|
|
20
23
|
// Wire schema for resolved data (full input/output)
|
|
21
24
|
const WorkflowRunWireSchema = WorkflowRunWireBaseSchema;
|
|
@@ -31,8 +34,6 @@ const WorkflowRunWireWithRefsSchema = WorkflowRunWireBaseSchema.omit({
|
|
|
31
34
|
// Accept both Uint8Array (v2 format) and any (legacy v1 JSON format)
|
|
32
35
|
input: z.union([z.instanceof(Uint8Array), z.any()]).optional(),
|
|
33
36
|
output: z.union([z.instanceof(Uint8Array), z.any()]).optional(),
|
|
34
|
-
blobStorageBytes: z.number().optional(),
|
|
35
|
-
streamStorageBytes: z.number().optional(),
|
|
36
37
|
});
|
|
37
38
|
// Implementation
|
|
38
39
|
function filterRunData(run, resolveData) {
|
package/dist/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAML,uBAAuB,EACvB,qBAAqB,EAErB,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAC3D,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC,MAAM,CAAC;IACR,qEAAqE;IACrE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
package/dist/steps.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { APIConfig } from './utils.js';
|
|
|
6
6
|
* Handles error deserialization from wire format.
|
|
7
7
|
*/
|
|
8
8
|
export declare const StepWireSchema: z.ZodObject<{
|
|
9
|
+
retryAfter: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
9
10
|
output: z.ZodOptional<z.ZodUnion<readonly [z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>]>>;
|
|
10
11
|
input: z.ZodUnion<readonly [z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>]>;
|
|
11
12
|
runId: z.ZodString;
|
|
@@ -21,7 +22,6 @@ export declare const StepWireSchema: z.ZodObject<{
|
|
|
21
22
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
22
23
|
updatedAt: z.ZodCoercedDate<unknown>;
|
|
23
24
|
completedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
24
|
-
retryAfter: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
25
25
|
stepId: z.ZodString;
|
|
26
26
|
stepName: z.ZodString;
|
|
27
27
|
attempt: z.ZodNumber;
|
package/dist/streamer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,YAAY,CAAC;AAoB5E;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CA0B7E;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CA+F3D"}
|
package/dist/streamer.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { getHttpConfig } from './utils.js';
|
|
2
|
+
// Streaming calls use plain fetch() without the undici dispatcher.
|
|
3
|
+
// The dispatcher's retry logic doesn't apply well to streaming operations
|
|
4
|
+
// (partial writes, long-lived reads), and duplex streams are incompatible
|
|
5
|
+
// with undici's experimental H2 support.
|
|
2
6
|
function getStreamUrl(name, runId, httpConfig) {
|
|
3
7
|
if (runId) {
|
|
4
8
|
return new URL(`${httpConfig.baseUrl}/v2/runs/${runId}/stream/${encodeURIComponent(name)}`);
|
|
@@ -42,12 +46,12 @@ export function createStreamer(config) {
|
|
|
42
46
|
// Await runId if it's a promise to ensure proper flushing
|
|
43
47
|
const resolvedRunId = await runId;
|
|
44
48
|
const httpConfig = await getHttpConfig(config);
|
|
45
|
-
await fetch(getStreamUrl(name, resolvedRunId, httpConfig), {
|
|
49
|
+
const response = await fetch(getStreamUrl(name, resolvedRunId, httpConfig), {
|
|
46
50
|
method: 'PUT',
|
|
47
51
|
body: chunk,
|
|
48
52
|
headers: httpConfig.headers,
|
|
49
|
-
duplex: 'half',
|
|
50
53
|
});
|
|
54
|
+
await response.text();
|
|
51
55
|
},
|
|
52
56
|
async writeToStreamMulti(name, runId, chunks) {
|
|
53
57
|
if (chunks.length === 0)
|
|
@@ -58,22 +62,23 @@ export function createStreamer(config) {
|
|
|
58
62
|
// Signal to server that this is a multi-chunk batch
|
|
59
63
|
httpConfig.headers.set('X-Stream-Multi', 'true');
|
|
60
64
|
const body = encodeMultiChunks(chunks);
|
|
61
|
-
await fetch(getStreamUrl(name, resolvedRunId, httpConfig), {
|
|
65
|
+
const response = await fetch(getStreamUrl(name, resolvedRunId, httpConfig), {
|
|
62
66
|
method: 'PUT',
|
|
63
67
|
body,
|
|
64
68
|
headers: httpConfig.headers,
|
|
65
|
-
duplex: 'half',
|
|
66
69
|
});
|
|
70
|
+
await response.text();
|
|
67
71
|
},
|
|
68
72
|
async closeStream(name, runId) {
|
|
69
73
|
// Await runId if it's a promise to ensure proper flushing
|
|
70
74
|
const resolvedRunId = await runId;
|
|
71
75
|
const httpConfig = await getHttpConfig(config);
|
|
72
76
|
httpConfig.headers.set('X-Stream-Done', 'true');
|
|
73
|
-
await fetch(getStreamUrl(name, resolvedRunId, httpConfig), {
|
|
77
|
+
const response = await fetch(getStreamUrl(name, resolvedRunId, httpConfig), {
|
|
74
78
|
method: 'PUT',
|
|
75
79
|
headers: httpConfig.headers,
|
|
76
80
|
});
|
|
81
|
+
await response.text();
|
|
77
82
|
},
|
|
78
83
|
async readFromStream(name, startIndex) {
|
|
79
84
|
const httpConfig = await getHttpConfig(config);
|
|
@@ -81,18 +86,27 @@ export function createStreamer(config) {
|
|
|
81
86
|
if (typeof startIndex === 'number') {
|
|
82
87
|
url.searchParams.set('startIndex', String(startIndex));
|
|
83
88
|
}
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
const response = await fetch(url, {
|
|
90
|
+
headers: httpConfig.headers,
|
|
91
|
+
});
|
|
92
|
+
if (!response.ok) {
|
|
93
|
+
throw new Error(`Failed to fetch stream: ${response.status}`);
|
|
94
|
+
}
|
|
95
|
+
if (!response.body) {
|
|
96
|
+
throw new Error('No response body for stream');
|
|
97
|
+
}
|
|
98
|
+
return response.body;
|
|
88
99
|
},
|
|
89
100
|
async listStreamsByRunId(runId) {
|
|
90
101
|
const httpConfig = await getHttpConfig(config);
|
|
91
102
|
const url = new URL(`${httpConfig.baseUrl}/v2/runs/${runId}/streams`);
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
const response = await fetch(url, {
|
|
104
|
+
headers: httpConfig.headers,
|
|
105
|
+
});
|
|
106
|
+
if (!response.ok) {
|
|
107
|
+
throw new Error(`Failed to list streams: ${response.status}`);
|
|
108
|
+
}
|
|
109
|
+
return (await response.json());
|
|
96
110
|
},
|
|
97
111
|
};
|
|
98
112
|
}
|
package/dist/streamer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamer.js","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE5E,SAAS,YAAY,CACnB,IAAY,EACZ,KAAyB,EACzB,UAAsB;IAEtB,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,IAAI,GAAG,CACZ,GAAG,UAAU,CAAC,OAAO,YAAY,KAAK,WAAW,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA+B;IAC/D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,4DAA4D;IAC5D,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,SAAS,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,4BAA4B;IAC9D,CAAC;IAED,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;QAC3D,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,OAAO;QACL,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,KAA+B,EAC/B,KAA0B;YAE1B,0DAA0D;YAC1D,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC;YAElC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"streamer.js","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -55,12 +55,14 @@ export declare const getHeaders: (config: APIConfig | undefined, options: {
|
|
|
55
55
|
usingProxy: boolean;
|
|
56
56
|
}) => Headers;
|
|
57
57
|
export declare function getHttpConfig(config?: APIConfig): Promise<HttpConfig>;
|
|
58
|
-
export declare function makeRequest<T>({ endpoint, options, config, schema, data, }: {
|
|
58
|
+
export declare function makeRequest<T>({ endpoint, options, config, schema, data, onResponse, }: {
|
|
59
59
|
endpoint: string;
|
|
60
60
|
options?: Omit<RequestInit, 'body'>;
|
|
61
61
|
config?: APIConfig;
|
|
62
62
|
schema: z.ZodSchema<T>;
|
|
63
63
|
/** Request body data - will be CBOR encoded */
|
|
64
64
|
data?: unknown;
|
|
65
|
+
/** Optional callback invoked with the raw Response before body consumption. Use to read response headers. */
|
|
66
|
+
onResponse?: (response: Response) => void;
|
|
65
67
|
}): Promise<T>;
|
|
66
68
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2B7B,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE;QACd,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oEAAoE;QACpE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,EAClE,IAAI,EAAE,CAAC,GACN,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAgD3E;AAUD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,GACrB,SAAS,SAAS,KACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAcxC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,QAAQ,SAAS,GAAG,SAAS,EAC7B,SAAS;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,KAC/B,OAuBF,CAAC;AAEF,wBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAQ3E;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EACnC,QAAQ,EACR,OAAY,EACZ,MAAW,EACX,MAAM,EACN,IAAI,EACJ,UAAU,GACX,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6GAA6G;IAC7G,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC3C,GAAG,OAAO,CAAC,CAAC,CAAC,CAgJb"}
|
package/dist/utils.js
CHANGED
|
@@ -4,6 +4,7 @@ import { getVercelOidcToken } from '@vercel/oidc';
|
|
|
4
4
|
import { WorkflowAPIError } from '@workflow/errors';
|
|
5
5
|
import { StructuredErrorSchema } from '@workflow/world';
|
|
6
6
|
import { decode, encode } from 'cbor-x';
|
|
7
|
+
import { getDispatcher } from './http-client.js';
|
|
7
8
|
import { ErrorType, getSpanKind, HttpRequestMethod, HttpResponseStatusCode, PeerService, RpcService, RpcSystem, ServerAddress, ServerPort, trace, UrlFull, WorldParseFormat, } from './telemetry.js';
|
|
8
9
|
import { version } from './version.js';
|
|
9
10
|
/**
|
|
@@ -150,7 +151,7 @@ export async function getHttpConfig(config) {
|
|
|
150
151
|
}
|
|
151
152
|
return { baseUrl, headers, usingProxy };
|
|
152
153
|
}
|
|
153
|
-
export async function makeRequest({ endpoint, options = {}, config = {}, schema, data, }) {
|
|
154
|
+
export async function makeRequest({ endpoint, options = {}, config = {}, schema, data, onResponse, }) {
|
|
154
155
|
const method = options.method || 'GET';
|
|
155
156
|
const { baseUrl, headers } = await getHttpConfig(config);
|
|
156
157
|
const url = `${baseUrl}${endpoint}`;
|
|
@@ -198,7 +199,10 @@ export async function makeRequest({ endpoint, options = {}, config = {}, schema,
|
|
|
198
199
|
body,
|
|
199
200
|
headers,
|
|
200
201
|
});
|
|
201
|
-
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
|
|
203
|
+
const response = await fetch(request, {
|
|
204
|
+
dispatcher: getDispatcher(),
|
|
205
|
+
});
|
|
202
206
|
span?.setAttributes({
|
|
203
207
|
...HttpResponseStatusCode(response.status),
|
|
204
208
|
});
|
|
@@ -213,6 +217,8 @@ export async function makeRequest({ endpoint, options = {}, config = {}, schema,
|
|
|
213
217
|
console.error(`Failed to fetch, reproduce with:\ncurl -X ${request.method} ${stringifiedHeaders} "${url}"`);
|
|
214
218
|
}
|
|
215
219
|
// Parse Retry-After header for 429 responses (value is in seconds)
|
|
220
|
+
// Note: RetryAgent handles most 429 retries automatically, but this
|
|
221
|
+
// catches the case where retries are exhausted.
|
|
216
222
|
let retryAfter;
|
|
217
223
|
if (response.status === 429) {
|
|
218
224
|
const retryAfterHeader = response.headers.get('Retry-After');
|
|
@@ -232,6 +238,8 @@ export async function makeRequest({ endpoint, options = {}, config = {}, schema,
|
|
|
232
238
|
span?.recordException?.(error);
|
|
233
239
|
throw error;
|
|
234
240
|
}
|
|
241
|
+
// Expose response headers to caller before consuming the body
|
|
242
|
+
onResponse?.(response);
|
|
235
243
|
// Parse the response body (CBOR or JSON) with tracing
|
|
236
244
|
let parseResult;
|
|
237
245
|
try {
|
|
@@ -254,7 +262,7 @@ export async function makeRequest({ endpoint, options = {}, config = {}, schema,
|
|
|
254
262
|
const result = await trace('world.validate', async () => {
|
|
255
263
|
const validationResult = schema.safeParse(parseResult.data);
|
|
256
264
|
if (!validationResult.success) {
|
|
257
|
-
throw new WorkflowAPIError(`Schema validation failed for ${
|
|
265
|
+
throw new WorkflowAPIError(`Schema validation failed for ${method} ${endpoint}:\n\n${validationResult.error}\n\nResponse context: ${parseResult.getDebugContext()}`, { url, cause: validationResult.error });
|
|
258
266
|
}
|
|
259
267
|
return validationResult.data;
|
|
260
268
|
});
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAwB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,KAAK,EACL,OAAO,EACP,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAexC,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAO;IAEP,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEhC,gDAAgD;IAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,GAAG,IAAI;YACP,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;SACqC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAwB,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAAgC,GAAQ;IACtE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAQ,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;oBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;oBACxB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;iBACvB;aACG,CAAC;QACT,CAAC;QACD,0CAA0C;IAC5C,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,OAAO;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB;aACG,CAAC;QACT,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK;iBACf;aACG,CAAC;QACT,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,OAAO,GAAQ,CAAC;AAClB,CAAC;AAED,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACtD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,0BAA0B,OAAO,SAAS,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;IACrH,CAAC;IACD,OAAO,0BAA0B,OAAO,SAAS,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;AACrG,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAAkB,EACwB,EAAE;IAC5C,MAAM,aAAa,GAAG,MAAM,EAAE,aAAa,CAAC;IAC5C,MAAM,WAAW,GACf,4BAA4B,IAAI,6BAA6B,CAAC;IAChE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC/D,MAAM,eAAe,GAAG,oCAAoC,CAAC;IAC7D,4EAA4E;IAC5E,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9E,kHAAkH;IAClH,sFAAsF;IACtF,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,cAAc,IAAI,eAAe;QACnC,CAAC,CAAC,GAAG,WAAW,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAA6B,EAC7B,OAAgC,EACvB,EAAE;IACX,MAAM,aAAa,GAAG,MAAM,EAAE,aAAa,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CACT,sBAAsB,EACtB,aAAa,CAAC,WAAW,IAAI,YAAY,CAC1C,CAAC;QACF,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,wEAAwE;IACxE,gEAAgE;IAChE,IAAI,4BAA4B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAkB;IACpD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC;IAC5D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,EACnC,QAAQ,EACR,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,EAAE,EACX,MAAM,EACN,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "4.1.0-beta.
|
|
1
|
+
export declare const version = "4.1.0-beta.36";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/world-vercel",
|
|
3
|
-
"version": "4.1.0-beta.
|
|
3
|
+
"version": "4.1.0-beta.36",
|
|
4
4
|
"description": "Vercel platform World implementation for Workflow DevKit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,12 +23,13 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@vercel/oidc": "3.0
|
|
27
|
-
"@vercel/queue": "0.
|
|
26
|
+
"@vercel/oidc": "3.2.0",
|
|
27
|
+
"@vercel/queue": "0.1.1",
|
|
28
28
|
"cbor-x": "1.6.0",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"@workflow/
|
|
29
|
+
"undici": "7.22.0",
|
|
30
|
+
"zod": "4.3.6",
|
|
31
|
+
"@workflow/errors": "4.1.0-beta.17",
|
|
32
|
+
"@workflow/world": "4.1.0-beta.8"
|
|
32
33
|
},
|
|
33
34
|
"peerDependencies": {
|
|
34
35
|
"@opentelemetry/api": "1"
|
|
@@ -42,7 +43,7 @@
|
|
|
42
43
|
"@opentelemetry/api": "1.9.0",
|
|
43
44
|
"@types/node": "22.19.0",
|
|
44
45
|
"genversion": "3.2.0",
|
|
45
|
-
"vitest": "^
|
|
46
|
+
"vitest": "^4.0.18",
|
|
46
47
|
"@workflow/tsconfig": "4.0.1-beta.0"
|
|
47
48
|
},
|
|
48
49
|
"scripts": {
|