@workflow/world-vercel 4.1.0-beta.49 → 4.1.1
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.js.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/hooks.js.map +1 -1
- package/dist/http-client.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/instrumentObject.js.map +1 -1
- package/dist/queue.js.map +1 -1
- package/dist/refs.js.map +1 -1
- package/dist/resolve-latest-deployment.js.map +1 -1
- package/dist/runs.js.map +1 -1
- package/dist/steps.js.map +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/streamer.d.ts +22 -0
- package/dist/streamer.d.ts.map +1 -1
- package/dist/streamer.js +111 -13
- package/dist/streamer.js.map +1 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +4 -4
package/dist/encryption.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Vercel-specific key management for workflow encryption.\n *\n * This module handles:\n * - HKDF key derivation (deployment key + projectId + runId → per-run key)\n * - Cross-deployment key retrieval via the Vercel API\n *\n * The actual AES-GCM encrypt/decrypt operations are in @workflow/core/encryption\n * which is browser-compatible. This module is Node.js only (uses node:crypto\n * for HKDF and the Vercel API for key retrieval).\n */\n\nimport { webcrypto } from 'node:crypto';\nimport { getVercelOidcToken } from '@vercel/oidc';\nimport type { WorkflowRun, World } from '@workflow/world';\nimport * as z from 'zod';\nimport { getDispatcher } from './http-client.js';\n\nconst KEY_BYTES = 32; // 256 bits = 32 bytes (AES-256)\n\n/**\n * Derive a per-run AES-256 encryption key using HKDF-SHA256.\n *\n * The derivation uses `projectId|runId` as the HKDF info parameter,\n * ensuring that each run has a unique encryption key even when sharing\n * the same deployment key.\n *\n * @param deploymentKey - Raw 32-byte deployment key\n * @param projectId - Vercel project ID for context isolation\n * @param runId - Workflow run ID for per-run key isolation\n * @returns Raw 32-byte AES-256 key\n */\nexport async function deriveRunKey(\n deploymentKey: Uint8Array,\n projectId: string,\n runId: string\n): Promise<Uint8Array> {\n if (deploymentKey.length !== KEY_BYTES) {\n throw new Error(\n `Invalid deployment key length: expected ${KEY_BYTES} bytes for AES-256, got ${deploymentKey.length} bytes`\n );\n }\n if (!projectId || typeof projectId !== 'string') {\n throw new Error('projectId must be a non-empty string');\n }\n\n const baseKey = await webcrypto.subtle.importKey(\n 'raw',\n deploymentKey,\n 'HKDF',\n false,\n ['deriveBits']\n );\n\n const info = new TextEncoder().encode(`${projectId}|${runId}`);\n\n // Zero salt is acceptable per RFC 5869 Section 3.1 when the input key\n // material has high entropy (as is the case with our random deployment key).\n // The `info` parameter provides per-run context separation.\n const derivedBits = await webcrypto.subtle.deriveBits(\n {\n name: 'HKDF',\n hash: 'SHA-256',\n salt: new Uint8Array(32),\n info,\n },\n baseKey,\n KEY_BYTES * 8 // bits\n );\n\n return new Uint8Array(derivedBits);\n}\n\n/**\n * Fetch the per-run encryption key from the Vercel API.\n *\n * The API performs HKDF-SHA256 derivation server-side, so the raw\n * deployment key never leaves the API boundary. The returned key\n * is ready-to-use for AES-GCM encrypt/decrypt operations.\n *\n * Uses OIDC token authentication (for cross-deployment runtime calls like\n * resumeHook) or falls back to VERCEL_TOKEN (for external tooling like o11y).\n *\n * @param deploymentId - The deployment ID that holds the base key material\n * @param projectId - The project ID for HKDF context isolation\n * @param runId - The workflow run ID for per-run key derivation\n * @param options.token - Auth token (from config). Falls back to OIDC or VERCEL_TOKEN.\n * @returns Derived 32-byte per-run AES-256 key, or `undefined` when the\n * deployment has no key (encryption disabled for that run)\n */\nexport async function fetchRunKey(\n deploymentId: string,\n projectId: string,\n runId: string,\n options?: {\n /** Auth token (from config). Falls back to OIDC or VERCEL_TOKEN. */\n token?: string;\n /** Team ID for team-scoped API requests. */\n teamId?: string;\n }\n): Promise<Uint8Array | undefined> {\n // Authenticate via provided token (CLI/config), VERCEL_TOKEN env var\n // (external tooling), or OIDC token (runtime) — in that order.\n // OIDC is last to avoid an unnecessary network call when a token is\n // already available (e.g. CLI or CI contexts).\n const token =\n options?.token ??\n process.env.VERCEL_TOKEN ??\n (await getVercelOidcToken().catch(() => null));\n if (!token) {\n throw new Error(\n 'Cannot fetch run key: no OIDC token or VERCEL_TOKEN available'\n );\n }\n\n const params = new URLSearchParams({ projectId, runId });\n if (options?.teamId) {\n params.set('teamId', options.teamId);\n }\n // 429/5xx retries are handled by the shared RetryAgent from getDispatcher()\n const response = await fetch(\n `https://api.vercel.com/v1/workflow/run-key/${deploymentId}?${params}`,\n {\n method: 'GET',\n headers: {\n authorization: `Bearer ${token}`,\n },\n // @ts-expect-error -- undici dispatcher is accepted by Node.js fetch but not in @types/node's RequestInit\n dispatcher: getDispatcher(),\n }\n );\n\n if (!response.ok) {\n let body: string;\n try {\n body = await response.text();\n } catch {\n body = '<unable to read response body>';\n }\n throw new Error(\n `Failed to fetch run key for ${runId} (deployment ${deploymentId}): HTTP ${response.status} ${response.statusText}${body ? ` — ${body}` : ''}`\n );\n }\n\n const data = await response.json();\n const result = z.object({ key: z.string().nullable() }).safeParse(data);\n if (!result.success) {\n throw new Error(\n `Invalid response from Vercel API: expected { key: string | null }. Zod error: ${result.error.message}`\n );\n }\n if (result.data.key === null) {\n return undefined;\n }\n return Buffer.from(result.data.key, 'base64');\n}\n\n/**\n * Create the `getEncryptionKeyForRun` implementation for a Vercel World.\n *\n * Resolves the per-run AES-256 key by either:\n * - Deriving it locally via HKDF when the run belongs to the current deployment\n * - Fetching it from the Vercel API when the run belongs to a different deployment\n *\n * @param projectId - Vercel project ID for HKDF context isolation\n * @param teamId - Optional team ID for team-scoped API requests\n * @param token - Optional auth token from config\n * @returns The `getEncryptionKeyForRun` function, or `undefined` if no projectId\n */\nexport function createGetEncryptionKeyForRun(\n projectId: string | undefined,\n teamId?: string,\n token?: string\n): World['getEncryptionKeyForRun'] {\n if (!projectId) return undefined;\n\n // VERCEL=1 is set inside Vercel serverless functions. When true, we can\n // use the local deployment key for HKDF derivation. When false (e.g., e2e\n // test runner, CLI, external tooling), we must fetch the key from the API\n // even for same-deployment runs.\n const isServerlessRuntime = process.env.VERCEL === '1';\n\n // Parse the local deployment key from env (lazy, only when encryption is used)\n let localDeploymentKey: Uint8Array | undefined;\n function getLocalDeploymentKey(): Uint8Array | undefined {\n if (localDeploymentKey) return localDeploymentKey;\n const deploymentKeyBase64 = process.env.VERCEL_DEPLOYMENT_KEY;\n if (!deploymentKeyBase64) return undefined;\n localDeploymentKey = Buffer.from(deploymentKeyBase64, 'base64');\n return localDeploymentKey;\n }\n\n return async function getEncryptionKeyForRun(\n run: WorkflowRun | string,\n context?: Record<string, unknown>\n ): Promise<Uint8Array | undefined> {\n const runId = typeof run === 'string' ? run : run.runId;\n const deploymentId =\n typeof run === 'string'\n ? (context?.deploymentId as string | undefined)\n : run.deploymentId;\n\n // Inside the Vercel serverless runtime with a local deployment key:\n // use local HKDF derivation for same-deployment or unknown-deployment runs.\n if (isServerlessRuntime) {\n if (!deploymentId || deploymentId === process.env.VERCEL_DEPLOYMENT_ID) {\n const localKey = getLocalDeploymentKey();\n if (!localKey) return undefined;\n return deriveRunKey(localKey, projectId, runId);\n }\n }\n\n // External context (CLI, e2e tests, web dashboard) or cross-deployment:\n // fetch the derived per-run key from the Vercel API. The API performs\n // HKDF derivation server-side so the raw deployment key never leaves\n // the API boundary.\n if (!deploymentId) return undefined;\n return fetchRunKey(deploymentId, projectId, runId, { token, teamId });\n };\n}\n"]}
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { HookNotFoundError, WorkflowWorldError } from '@workflow/errors';\nimport {\n type AnyEventRequest,\n type CreateEventParams,\n type Event,\n type EventResult,\n EventSchema,\n EventTypeSchema,\n type GetEventParams,\n HookSchema,\n type ListEventsByCorrelationIdParams,\n type ListEventsParams,\n type PaginatedResponse,\n PaginatedResponseSchema,\n stripEventDataRefs,\n validateUlidTimestamp,\n type WorkflowRun,\n WorkflowRunSchema,\n} from '@workflow/world';\nimport z from 'zod';\nimport {\n isRefDescriptor,\n type RefDescriptor,\n type RefWithRunId,\n resolveRefDescriptors,\n} from './refs.js';\nimport {\n cancelWorkflowRunV1,\n createWorkflowRunV1,\n WorkflowRunWireBaseSchema,\n} from './runs.js';\nimport { deserializeStep, StepWireSchema } from './steps.js';\nimport { trace } from './telemetry.js';\nimport type { APIConfig } from './utils.js';\nimport {\n DEFAULT_RESOLVE_DATA_OPTION,\n deserializeError,\n makeRequest,\n} from './utils.js';\n\n// Wraps stripEventDataRefs to also strip the legacy eventDataRef field,\n// since the server always returns lazy refs and callers with\n// resolveData='none' should not see them.\nfunction stripEventAndLegacyRefs(\n event: any,\n resolveData: 'none' | 'all'\n): Event {\n if (resolveData !== 'none') return event;\n const { eventDataRef: _eventDataRef, ...withoutLegacyRef } = event;\n return stripEventDataRefs(withoutLegacyRef, resolveData);\n}\n\n// Schema for EventResult wire format returned by events.create.\n// Uses wire format schemas for step to handle field name mapping.\n// Two variants are used depending on `remoteRefBehavior`:\n// - 'resolve': the server returns fully resolved data, so we validate the run\n// with the strict WorkflowRunSchema discriminated union (e.g. status:'failed'\n// requires error to be present).\n// - 'lazy': the server may omit resolved fields (error may be a string or\n// undefined), so we use the looser WorkflowRunWireBaseSchema and normalize\n// the error via deserializeError() afterward.\nconst EventResultResolveWireSchema = z.object({\n event: EventSchema.optional(),\n run: WorkflowRunSchema.optional(),\n step: StepWireSchema.optional(),\n hook: HookSchema.optional(),\n events: z.array(EventSchema).optional(),\n});\n\nconst EventResultLazyWireSchema = z.object({\n event: EventSchema.optional(),\n run: WorkflowRunWireBaseSchema.optional(),\n step: StepWireSchema.optional(),\n hook: HookSchema.optional(),\n events: z.array(EventSchema).optional(),\n});\n\n// Schema for events returned with `remoteRefBehavior=lazy`.\n// Includes both `eventDataRef` (legacy, specVersion=1) and `eventData`\n// (v2, specVersion=2 — may contain nested RefDescriptor values).\n// specVersion defaults to 1 (legacy) when parsing responses from storage.\nconst EventWithRefsSchema = z.object({\n eventId: z.string(),\n runId: z.string(),\n eventType: EventTypeSchema,\n correlationId: z.string().optional(),\n eventDataRef: z.any().optional(),\n eventData: z.any().optional(),\n createdAt: z.coerce.date(),\n specVersion: z.number().default(1),\n});\n\n/**\n * Maps event types to the field name within `eventData` that may contain\n * a ref descriptor. Mirrors the server-side `resolveEventDataRefs()` mapping.\n */\nconst eventDataRefFieldMap: Record<string, string> = {\n run_created: 'input',\n run_completed: 'output',\n run_failed: 'error',\n step_created: 'input',\n step_completed: 'result',\n step_failed: 'error',\n step_retrying: 'error',\n hook_created: 'metadata',\n hook_received: 'payload',\n};\n\n// Events where the client uses the response entity data need 'resolve' (default).\n// Events where the client discards the response can use 'lazy' to skip expensive\n// S3 ref resolution on the server, saving ~200-460ms per event.\nconst eventsNeedingResolve = new Set([\n 'run_created', // client reads result.run.runId\n 'run_started', // client reads result.run (checks startedAt, status)\n 'step_started', // client reads result.step (checks attempt, state)\n]);\n\n/**\n * Collect all ref descriptors from a list of lazy-loaded events.\n * Returns a flat array of { eventIndex, refType, fieldName?, descriptor }\n * entries that can be resolved in bulk.\n */\ninterface PendingRef {\n eventIndex: number;\n /**\n * 'entity' = top-level eventDataRef (legacy specVersion=1 events)\n * 'nested' = nested ref descriptor within eventData (v2 events)\n */\n refType: 'entity' | 'nested';\n /** The field name within eventData containing the ref (only for 'nested') */\n fieldName?: string;\n descriptor: RefDescriptor;\n}\n\nfunction collectPendingRefs(events: any[]): PendingRef[] {\n const pending: PendingRef[] = [];\n\n for (let i = 0; i < events.length; i++) {\n const event = events[i];\n\n // Legacy events (specVersion=1): eventDataRef is a RefDescriptor\n if (event.eventDataRef && isRefDescriptor(event.eventDataRef)) {\n pending.push({\n eventIndex: i,\n refType: 'entity',\n descriptor: event.eventDataRef,\n });\n }\n\n // V2 events: eventData may contain a nested RefDescriptor\n if (event.eventData && typeof event.eventData === 'object') {\n const fieldName = eventDataRefFieldMap[event.eventType as string];\n if (fieldName) {\n const fieldValue = event.eventData[fieldName];\n if (isRefDescriptor(fieldValue)) {\n pending.push({\n eventIndex: i,\n refType: 'nested',\n fieldName,\n descriptor: fieldValue,\n });\n }\n }\n }\n }\n\n return pending;\n}\n\n/**\n * Hydrate lazy-loaded events by resolving all ref descriptors client-side.\n * For entity-level refs (eventDataRef), the resolved value becomes eventData.\n * For nested refs (eventData[field]), the resolved value replaces the descriptor.\n *\n * Events are shallow-cloned before mutation to avoid corrupting any upstream\n * caches (SWR, React cache, etc.) that might hold references to the originals.\n */\nasync function hydrateEventRefs(\n events: any[],\n config?: APIConfig,\n refResolveConcurrency?: number\n): Promise<any[]> {\n const pending = collectPendingRefs(events);\n if (pending.length === 0) return events;\n\n return trace('world.refs.hydrate', async (span) => {\n span?.setAttribute('workflow.refs.hydrated_count', pending.length);\n\n // Deduplicate descriptors by _ref key to avoid redundant resolutions.\n // Multiple events may reference the same ref (e.g., shared input).\n const uniqueRefs = new Map<string, RefWithRunId>();\n for (const p of pending) {\n if (!uniqueRefs.has(p.descriptor._ref)) {\n const eventRunId = events[p.eventIndex].runId as string;\n uniqueRefs.set(p.descriptor._ref, {\n descriptor: p.descriptor,\n runId: eventRunId,\n });\n }\n }\n const deduped = Array.from(uniqueRefs.values());\n\n // Resolve unique descriptors in parallel with bounded concurrency\n const dedupedResults = await resolveRefDescriptors(\n deduped,\n config,\n refResolveConcurrency\n ).catch((err) => {\n const msg = err instanceof Error ? err.message : String(err);\n throw new Error(\n `Failed to hydrate ${pending.length} ref(s) across ${events.length} event(s): ${msg}`\n );\n });\n\n // Build a map from ref key → resolved value for fast lookup\n const resolvedMap = new Map<string, unknown>();\n const dedupedKeys = Array.from(uniqueRefs.keys());\n for (let i = 0; i < dedupedKeys.length; i++) {\n resolvedMap.set(dedupedKeys[i], dedupedResults[i]);\n }\n\n // Shallow-clone events that need modification, then apply resolved values\n const result = [...events];\n for (let i = 0; i < pending.length; i++) {\n const { eventIndex, refType, fieldName, descriptor } = pending[i];\n const resolved = resolvedMap.get(descriptor._ref);\n\n // Shallow-clone the event (and eventData if nested) before mutating\n if (result[eventIndex] === events[eventIndex]) {\n result[eventIndex] = { ...events[eventIndex] };\n }\n const event = result[eventIndex];\n\n if (refType === 'entity') {\n // Legacy: eventDataRef → eventData, remove the ref field\n event.eventData = resolved;\n delete event.eventDataRef;\n } else if (refType === 'nested' && fieldName) {\n // Shallow-clone eventData before mutating if not yet cloned\n if (event.eventData === events[eventIndex].eventData) {\n event.eventData = { ...event.eventData };\n }\n // V2: replace the nested ref descriptor with resolved value\n event.eventData[fieldName] = resolved;\n }\n }\n\n return result;\n });\n}\n\n// Functions\nexport async function getEvent(\n runId: string,\n eventId: string,\n params?: GetEventParams,\n config?: APIConfig\n): Promise<Event> {\n const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n\n const searchParams = new URLSearchParams();\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n const queryString = searchParams.toString();\n const endpoint = `/v3/runs/${encodeURIComponent(runId)}/events/${encodeURIComponent(eventId)}${queryString ? `?${queryString}` : ''}`;\n\n const event = await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: (resolveData === 'none' ? EventWithRefsSchema : EventSchema) as any,\n });\n\n return stripEventAndLegacyRefs(event as any, resolveData);\n}\n\nexport async function getWorkflowRunEvents(\n params: ListEventsParams | ListEventsByCorrelationIdParams,\n config?: APIConfig\n): Promise<PaginatedResponse<Event>> {\n const searchParams = new URLSearchParams();\n\n const { pagination, resolveData = DEFAULT_RESOLVE_DATA_OPTION } = params;\n let runId: string | undefined;\n let correlationId: string | undefined;\n if ('runId' in params) {\n runId = params.runId;\n } else {\n correlationId = params.correlationId;\n }\n\n if (!runId && !correlationId) {\n throw new Error('Either runId or correlationId must be provided');\n }\n\n if (pagination?.limit) searchParams.set('limit', pagination.limit.toString());\n if (pagination?.cursor) searchParams.set('cursor', pagination.cursor);\n if (pagination?.sortOrder)\n searchParams.set('sortOrder', pagination.sortOrder);\n if (correlationId) searchParams.set('correlationId', correlationId);\n\n // Always send 'lazy' to the server to avoid memory pressure from resolving\n // all refs in memory. When resolveData is 'all', we hydrate refs client-side\n // via individual ref resolution requests.\n searchParams.set('remoteRefBehavior', 'lazy');\n\n const queryString = searchParams.toString();\n const query = queryString ? `?${queryString}` : '';\n const endpoint = correlationId\n ? `/v2/events${query}`\n : `/v3/runs/${encodeURIComponent(runId!)}/events${query}`;\n\n let refResolveConcurrency: number | undefined;\n const response = (await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: PaginatedResponseSchema(EventWithRefsSchema),\n onResponse: (res) => {\n const header = res.headers.get('x-ref-resolve-concurrency');\n if (header) {\n const parsed = parseInt(header, 10);\n if (!Number.isNaN(parsed) && parsed > 0) {\n refResolveConcurrency = parsed;\n }\n }\n },\n })) as PaginatedResponse<Event>;\n\n if (resolveData === 'all') {\n // Hydrate refs client-side: resolve all ref descriptors in parallel\n const hydratedEvents = await hydrateEventRefs(\n response.data,\n config,\n refResolveConcurrency\n );\n\n // Re-parse hydrated events through EventSchema to apply type coercions\n // (e.g., z.coerce.date() for resumeAt) that EventWithRefsSchema skips.\n // Use safeParse to gracefully handle any events that don't match a known\n // type — pass them through as-is rather than failing the entire request.\n let coercionFailures = 0;\n const validatedEvents = hydratedEvents.map((event: any) => {\n const result = EventSchema.safeParse(event);\n if (!result.success) coercionFailures++;\n return result.success ? result.data : event;\n });\n if (coercionFailures > 0) {\n console.warn(\n `[world-vercel] EventSchema coercion failed for ${coercionFailures}/${hydratedEvents.length} events`\n );\n }\n\n return {\n ...response,\n data: validatedEvents,\n };\n }\n\n // resolveData === 'none': strip eventData and eventDataRef\n return {\n ...response,\n data: response.data.map((event: any) =>\n stripEventAndLegacyRefs(event, resolveData)\n ),\n };\n}\n\n// Event types that require the hook to already exist — a 404 on these\n// means the hook was already disposed or never created.\nconst hookEventsRequiringExistence = new Set([\n 'hook_disposed',\n 'hook_received',\n]);\n\nexport async function createWorkflowRunEvent(\n id: string | null,\n data: AnyEventRequest,\n params?: CreateEventParams,\n config?: APIConfig\n): Promise<EventResult> {\n try {\n return await createWorkflowRunEventInner(id, data, params, config);\n } catch (err) {\n // Translate 404 to HookNotFoundError for hook-related events.\n // makeRequest() throws a generic WorkflowWorldError for all 404s;\n // on the hook_disposed / hook_received path a 404 means the hook\n // was already disposed or never created.\n if (\n hookEventsRequiringExistence.has(data.eventType) &&\n WorkflowWorldError.is(err) &&\n err.status === 404 &&\n data.correlationId\n ) {\n throw new HookNotFoundError(data.correlationId);\n }\n throw err;\n }\n}\n\nasync function createWorkflowRunEventInner(\n id: string | null,\n data: AnyEventRequest,\n params?: CreateEventParams,\n config?: APIConfig\n): Promise<EventResult> {\n const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;\n\n const v1Compat = params?.v1Compat ?? false;\n if (v1Compat) {\n if (data.eventType === 'run_cancelled' && id) {\n const run = await cancelWorkflowRunV1(id, params, config);\n return { run: run as WorkflowRun };\n } else if (data.eventType === 'run_created') {\n const run = await createWorkflowRunV1(data.eventData, config);\n return { run };\n }\n const wireResult = await makeRequest({\n endpoint: `/v1/runs/${encodeURIComponent(id!)}/events`,\n options: { method: 'POST' },\n data,\n config,\n schema: EventSchema,\n });\n\n return { event: wireResult };\n }\n\n // Validate client-provided runId timestamp is within acceptable threshold\n if (data.eventType === 'run_created' && id) {\n const validationError = validateUlidTimestamp(id, 'wrun_');\n if (validationError) {\n throw new WorkflowWorldError(validationError, { status: 400 });\n }\n }\n\n // For run_created events, runId may be client-provided or null\n const runIdPath = id === null ? 'null' : encodeURIComponent(id);\n\n const remoteRefBehavior = eventsNeedingResolve.has(data.eventType)\n ? 'resolve'\n : 'lazy';\n\n // Use the strict schema when the server resolves all refs (preserves the\n // WorkflowRunSchema discriminated union), and the loose wire schema when\n // the server returns lazy refs (error may be a string or undefined).\n if (remoteRefBehavior === 'resolve') {\n const wireResult = await makeRequest({\n endpoint: `/v3/runs/${runIdPath}/events`,\n options: { method: 'POST' },\n data: {\n ...data,\n remoteRefBehavior,\n ...(params?.requestId ? { vercelId: params.requestId } : {}),\n },\n config,\n schema: EventResultResolveWireSchema,\n });\n\n return {\n event: wireResult.event\n ? stripEventAndLegacyRefs(wireResult.event, resolveData)\n : undefined,\n run: wireResult.run,\n step: wireResult.step ? deserializeStep(wireResult.step) : undefined,\n hook: wireResult.hook,\n events: wireResult.events,\n };\n }\n\n const wireResult = await makeRequest({\n endpoint: `/v3/runs/${runIdPath}/events`,\n options: { method: 'POST' },\n data: {\n ...data,\n remoteRefBehavior,\n ...(params?.requestId ? { vercelId: params.requestId } : {}),\n },\n config,\n schema: EventResultLazyWireSchema,\n });\n\n // Transform wire format to interface format.\n // The run entity from the wire may have error as a string (legacy) or\n // undefined (lazy ref mode), so deserializeError normalizes it into the\n // StructuredError shape expected by WorkflowRun consumers.\n return {\n event: wireResult.event\n ? stripEventAndLegacyRefs(wireResult.event, resolveData)\n : undefined,\n run: wireResult.run\n ? deserializeError<WorkflowRun>(wireResult.run)\n : undefined,\n step: wireResult.step ? deserializeStep(wireResult.step) : undefined,\n hook: wireResult.hook,\n events: wireResult.events,\n };\n}\n"]}
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["import { HookNotFoundError, WorkflowWorldError } from '@workflow/errors';\nimport type {\n CreateHookRequest,\n GetHookParams,\n Hook,\n ListHooksParams,\n PaginatedResponse,\n} from '@workflow/world';\nimport { HookSchema, PaginatedResponseSchema } from '@workflow/world';\nimport z from 'zod';\nimport type { APIConfig } from './utils.js';\nimport { DEFAULT_RESOLVE_DATA_OPTION, makeRequest } from './utils.js';\n\n// Helper to filter hook data based on resolveData setting\nfunction filterHookData(hook: any, resolveData: 'none' | 'all'): Hook {\n if (resolveData === 'none') {\n const { metadataRef: _metadataRef, ...rest } = hook;\n return rest;\n }\n return hook;\n}\nconst HookWithRefsSchema = HookSchema.omit({\n metadata: true,\n}).extend({\n metadataRef: z.any().optional(),\n});\n\nexport async function listHooks(\n params: ListHooksParams,\n config?: APIConfig\n): Promise<PaginatedResponse<Hook>> {\n const {\n runId,\n pagination,\n resolveData = DEFAULT_RESOLVE_DATA_OPTION,\n } = params;\n\n const searchParams = new URLSearchParams();\n\n if (pagination?.limit) searchParams.set('limit', pagination.limit.toString());\n if (pagination?.cursor) searchParams.set('cursor', pagination.cursor);\n if (pagination?.sortOrder)\n searchParams.set('sortOrder', pagination.sortOrder);\n\n // Map resolveData to internal RemoteRefBehavior\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n if (runId) searchParams.set('runId', runId);\n\n const queryString = searchParams.toString();\n const endpoint = `/v2/hooks${queryString ? `?${queryString}` : ''}`;\n\n const response = (await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: PaginatedResponseSchema(\n remoteRefBehavior === 'lazy' ? HookWithRefsSchema : HookSchema\n ),\n })) as PaginatedResponse<Hook>;\n\n return {\n ...response,\n data: response.data.map((hook: any) => filterHookData(hook, resolveData)),\n };\n}\n\nexport async function getHook(\n hookId: string,\n params?: GetHookParams,\n config?: APIConfig\n): Promise<Hook> {\n const resolveData = params?.resolveData || 'all';\n const endpoint = `/v2/hooks/${encodeURIComponent(hookId)}`;\n\n const hook = await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: HookSchema,\n });\n\n return filterHookData(hook, resolveData);\n}\n\nexport async function createHook(\n runId: string,\n data: CreateHookRequest,\n config?: APIConfig\n): Promise<Hook> {\n return makeRequest({\n endpoint: `/v2/hooks/create`,\n options: { method: 'POST' },\n data: { runId, ...data },\n config,\n schema: HookSchema,\n });\n}\n\nexport async function getHookByToken(\n token: string,\n config?: APIConfig\n): Promise<Hook> {\n try {\n return await makeRequest({\n endpoint: `/v2/hooks/by-token?token=${encodeURIComponent(token)}`,\n options: {\n method: 'GET',\n },\n config,\n schema: HookSchema,\n });\n } catch (error) {\n if (WorkflowWorldError.is(error) && error.status === 404) {\n throw new HookNotFoundError(token);\n }\n throw error;\n }\n}\n\nexport async function disposeHook(\n hookId: string,\n config?: APIConfig\n): Promise<Hook> {\n return makeRequest({\n endpoint: `/v2/hooks/${encodeURIComponent(hookId)}`,\n options: { method: 'DELETE' },\n config,\n schema: HookSchema,\n });\n}\n"]}
|
package/dist/http-client.js.map
CHANGED
|
@@ -1 +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;;;;;;GAMG;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,iFAAiF;YACjF,aAAa;YACb,yEAAyE;YACzE,OAAO,EAAE,KAAK;YACd,oEAAoE;YACpE,0EAA0E;YAC1E,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"}
|
|
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;;;;;;GAMG;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,iFAAiF;YACjF,aAAa;YACb,yEAAyE;YACzE,OAAO,EAAE,KAAK;YACd,oEAAoE;YACpE,0EAA0E;YAC1E,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","sourcesContent":["import { Agent, RetryAgent } from 'undici';\n\nlet _dispatcher: RetryAgent | undefined;\n\n/**\n * Returns a shared undici RetryAgent wrapping an Agent.\n *\n * - Connection pooling (up to 8 connections per origin)\n * - Retry: Automatic retry on 429/5xx or network errors with exponential backoff\n * - Observes Retry-After header if received and lower than 30s\n */\nexport function getDispatcher(): RetryAgent {\n if (!_dispatcher) {\n _dispatcher = new RetryAgent(\n new Agent({\n connections: 8,\n keepAliveTimeout: 10_000,\n // H2 is specifically incompatible with SvelteKit on Vercel prod. Everything else\n // runs fine.\n // TODO: Investigate/fix the failure on SvelteKit so we can re-enable H2.\n allowH2: false,\n // HTTP/1.1 pipelining is disabled (pipelining: 1) because it causes\n // head-of-line blocking that deadlocks the webhook respondWith mechanism.\n pipelining: 1,\n }),\n {\n // Observe Retry-After header if received\n retryAfter: true,\n // By default, we observe re-try headers, and also separately\n // re-try on these status codes: 429 / 500 / 502 / 503 / 504.\n // TODO: We might want to let 429s pass through, so that we can do\n // runtime retry-after handling through the queue.\n }\n );\n }\n return _dispatcher;\n}\n"]}
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,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,CAkB3D"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT } from '@workflow/world';
|
|
1
2
|
import { createGetEncryptionKeyForRun } from './encryption.js';
|
|
2
3
|
import { instrumentObject } from './instrumentObject.js';
|
|
3
4
|
import { createQueue } from './queue.js';
|
|
@@ -13,6 +14,7 @@ export function createVercelWorld(config) {
|
|
|
13
14
|
// Use config value first (set correctly by CLI/web), fall back to env var (runtime).
|
|
14
15
|
const projectId = config?.projectConfig?.projectId || process.env.VERCEL_PROJECT_ID;
|
|
15
16
|
return {
|
|
17
|
+
specVersion: SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT,
|
|
16
18
|
...createQueue(config),
|
|
17
19
|
...createStorage(config),
|
|
18
20
|
...instrumentObject('world.streams', createStreamer(config)),
|
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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,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,gBAAgB,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5D,sBAAsB,EAAE,4BAA4B,CAClD,SAAS,EACT,MAAM,EAAE,aAAa,EAAE,MAAM,EAC7B,MAAM,EAAE,KAAK,CACd;QACD,yBAAyB,EAAE,+BAA+B,CAAC,MAAM,CAAC;KACnE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0CAA0C,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,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,WAAW,EAAE,0CAA0C;QACvD,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,aAAa,CAAC,MAAM,CAAC;QACxB,GAAG,gBAAgB,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5D,sBAAsB,EAAE,4BAA4B,CAClD,SAAS,EACT,MAAM,EAAE,aAAa,EAAE,MAAM,EAC7B,MAAM,EAAE,KAAK,CACd;QACD,yBAAyB,EAAE,+BAA+B,CAAC,MAAM,CAAC;KACnE,CAAC;AACJ,CAAC","sourcesContent":["import type { World } from '@workflow/world';\nimport { SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT } from '@workflow/world';\nimport { createGetEncryptionKeyForRun } from './encryption.js';\nimport { instrumentObject } from './instrumentObject.js';\nimport { createQueue } from './queue.js';\nimport { createResolveLatestDeploymentId } from './resolve-latest-deployment.js';\nimport { createStorage } from './storage.js';\nimport { createStreamer } from './streamer.js';\nimport type { APIConfig } from './utils.js';\n\nexport {\n createGetEncryptionKeyForRun,\n deriveRunKey,\n fetchRunKey,\n} from './encryption.js';\nexport { createQueue } from './queue.js';\nexport { createStorage } from './storage.js';\nexport { createStreamer } from './streamer.js';\nexport type { APIConfig } from './utils.js';\n\nexport function createVercelWorld(config?: APIConfig): World {\n // Project ID for HKDF key derivation context.\n // Use config value first (set correctly by CLI/web), fall back to env var (runtime).\n const projectId =\n config?.projectConfig?.projectId || process.env.VERCEL_PROJECT_ID;\n\n return {\n specVersion: SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT,\n ...createQueue(config),\n ...createStorage(config),\n ...instrumentObject('world.streams', createStreamer(config)),\n getEncryptionKeyForRun: createGetEncryptionKeyForRun(\n projectId,\n config?.projectConfig?.teamId,\n config?.token\n ),\n resolveLatestDeploymentId: createResolveLatestDeploymentId(config),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentObject.js","sourceRoot":"","sources":["../src/instrumentObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,iDAAiD;AACjD,MAAM,uBAAuB,GAAG;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAe;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAA4B,CAAC;QAChD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAmB,MAAc,EAAE,CAAI;IACrE,MAAM,QAAQ,GAAG,EAAO,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,+CAA+C;YAC/C,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAC3C,8DAA8D;gBAC9D,IAAI,QAAQ,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzC,IAAI,MAAM,KAAK,cAAc,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,SAAS,EAAE,CAAC;wBACd,QAAQ,GAAG,GAAG,MAAM,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,OAAO,KAAK,CACV,QAAQ,EACR,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,EACrC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACb,+CAA+C;oBAC/C,sEAAsE;oBACtE,IAAI,EAAE,aAAa,CAAC;wBAClB,GAAG,WAAW,CAAC,uBAAuB,CAAC,WAAW,CAAC;wBACnD,GAAG,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC;wBAC/C,GAAG,UAAU,CAAC,uBAAuB,CAAC,UAAU,CAAC;wBACjD,GAAG,SAAS,CAAC,QAAQ,CAAC;qBACvB,CAAC,CAAC;oBACH,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBACpB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"instrumentObject.js","sourceRoot":"","sources":["../src/instrumentObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,iDAAiD;AACjD,MAAM,uBAAuB,GAAG;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAe;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAA4B,CAAC;QAChD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAmB,MAAc,EAAE,CAAI;IACrE,MAAM,QAAQ,GAAG,EAAO,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,+CAA+C;YAC/C,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAC3C,8DAA8D;gBAC9D,IAAI,QAAQ,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzC,IAAI,MAAM,KAAK,cAAc,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,SAAS,EAAE,CAAC;wBACd,QAAQ,GAAG,GAAG,MAAM,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,OAAO,KAAK,CACV,QAAQ,EACR,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,EACrC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACb,+CAA+C;oBAC/C,sEAAsE;oBACtE,IAAI,EAAE,aAAa,CAAC;wBAClB,GAAG,WAAW,CAAC,uBAAuB,CAAC,WAAW,CAAC;wBACnD,GAAG,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC;wBAC/C,GAAG,UAAU,CAAC,uBAAuB,CAAC,UAAU,CAAC;wBACjD,GAAG,SAAS,CAAC,QAAQ,CAAC;qBACvB,CAAC,CAAC;oBACH,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBACpB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["/**\n * Utility to instrument object methods with tracing.\n * This is a minimal version for world-vercel to avoid circular dependencies with @workflow/core.\n */\nimport {\n trace,\n getSpanKind,\n PeerService,\n RpcSystem,\n RpcService,\n RpcMethod,\n} from './telemetry.js';\n\n/** Configuration for peer service attribution */\nconst WORKFLOW_SERVER_SERVICE = {\n peerService: 'workflow-server',\n rpcSystem: 'http',\n rpcService: 'workflow-server',\n};\n\n/**\n * Extracts the event type from arguments for events.create calls.\n * The event data is the second argument and contains eventType.\n */\nfunction extractEventType(args: unknown[]): string | undefined {\n if (args.length >= 2 && typeof args[1] === 'object' && args[1] !== null) {\n const data = args[1] as Record<string, unknown>;\n if (typeof data.eventType === 'string') {\n return data.eventType;\n }\n }\n return undefined;\n}\n\n/**\n * Wraps all methods of an object with tracing spans.\n * @param prefix - Prefix for span names (e.g., \"world.runs\")\n * @param o - Object with methods to instrument\n * @returns Instrumented object with same interface\n */\nexport function instrumentObject<T extends object>(prefix: string, o: T): T {\n const handlers = {} as T;\n for (const key of Object.keys(o) as (keyof T)[]) {\n if (typeof o[key] !== 'function') {\n handlers[key] = o[key];\n } else {\n const f = o[key];\n const methodName = String(key);\n // @ts-expect-error - dynamic function wrapping\n handlers[key] = async (...args: unknown[]) => {\n // Build span name - for events.create, include the event type\n let spanName = `${prefix}.${methodName}`;\n if (prefix === 'world.events' && methodName === 'create') {\n const eventType = extractEventType(args);\n if (eventType) {\n spanName = `${prefix}.${methodName} ${eventType}`;\n }\n }\n\n return trace(\n spanName,\n { kind: await getSpanKind('CLIENT') },\n async (span) => {\n // Add peer service attributes for service maps\n // Use spanName for rpc.method so Datadog shows event type in resource\n span?.setAttributes({\n ...PeerService(WORKFLOW_SERVER_SERVICE.peerService),\n ...RpcSystem(WORKFLOW_SERVER_SERVICE.rpcSystem),\n ...RpcService(WORKFLOW_SERVER_SERVICE.rpcService),\n ...RpcMethod(spanName),\n });\n return f(...args);\n }\n );\n };\n }\n }\n return handlers;\n}\n"]}
|
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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","sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks';\nimport type { Transport } from '@vercel/queue';\nimport { DuplicateMessageError, QueueClient } from '@vercel/queue';\nimport {\n MessageId,\n type Queue,\n type QueueOptions,\n type QueuePayload,\n QueuePayloadSchema,\n SPEC_VERSION_CURRENT,\n SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT,\n ValidQueueName,\n} from '@workflow/world';\nimport { decode, encode } from 'cbor-x';\nimport { z } from 'zod/v4';\nimport { getDispatcher } from './http-client.js';\nimport { type APIConfig, getHeaders, getHttpUrl } from './utils.js';\n\n/**\n * CBOR-based queue transport. Encodes values with cbor-x on send and\n * decodes on receive, preserving Uint8Array values natively (workflow\n * input is a Uint8Array in specVersion >= 2).\n *\n * Used for specVersion >= SPEC_VERSION_CURRENT (3).\n */\nclass CborTransport implements Transport<unknown> {\n readonly contentType = 'application/cbor';\n\n serialize(value: unknown): Buffer {\n return Buffer.from(encode(value));\n }\n\n async deserialize(stream: ReadableStream<Uint8Array>): Promise<unknown> {\n const chunks: Uint8Array[] = [];\n const reader = stream.getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value) chunks.push(value);\n }\n return decode(Buffer.concat(chunks));\n }\n}\n\n/**\n * JSON-based queue transport. Used for specVersion < SPEC_VERSION_CURRENT\n * to maintain compatibility with older deployments that expect JSON messages.\n */\nclass JsonTransport implements Transport<unknown> {\n readonly contentType = 'application/json';\n\n serialize(value: unknown): Buffer {\n return Buffer.from(JSON.stringify(value));\n }\n\n async deserialize(stream: ReadableStream<Uint8Array>): Promise<unknown> {\n const chunks: Uint8Array[] = [];\n const reader = stream.getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value) chunks.push(value);\n }\n return JSON.parse(Buffer.concat(chunks).toString());\n }\n}\n\n/**\n * Dual transport for the queue handler. Serializes with CBOR (handler\n * re-enqueues target the same new deployment) but deserializes with\n * CBOR-first, falling back to JSON for messages from older deployments.\n */\nclass DualTransport implements Transport<unknown> {\n readonly contentType = 'application/cbor';\n\n serialize(value: unknown): Buffer {\n return Buffer.from(encode(value));\n }\n\n async deserialize(stream: ReadableStream<Uint8Array>): Promise<unknown> {\n const chunks: Uint8Array[] = [];\n const reader = stream.getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value) chunks.push(value);\n }\n const buffer = Buffer.concat(chunks);\n try {\n return decode(buffer);\n } catch {\n return JSON.parse(buffer.toString());\n }\n }\n}\n\nconst requestIdStorage = new AsyncLocalStorage<string | undefined>();\n\nconst MessageWrapper = z.object({\n payload: QueuePayloadSchema,\n queueName: ValidQueueName,\n /**\n * The deployment ID to use when re-enqueueing the message.\n * This ensures the message is processed by the same deployment.\n */\n deploymentId: z.string().optional(),\n});\n\n/**\n * Sleep Implementation via Message Delays\n *\n * VQS v3 supports `delaySeconds` which delays the initial delivery of a message.\n * We use this for implementing sleep() by creating a new message with the delay,\n * rather than using visibility timeouts on the same message.\n *\n * Benefits of this approach:\n * - Fresh 24-hour lifetime with each message (no message age tracking needed)\n * - Messages fire at the scheduled time (no short-circuit + recheck pattern)\n * - Simpler conceptual model: messages are triggers with delivery schedules\n *\n * For sleeps > 24 hours (max delay), we use chaining:\n * 1. Schedule message with max delay (~23h, leaving buffer)\n * 2. When it fires, workflow checks if sleep is complete\n * 3. If not, another delayed message is queued for remaining time\n * 4. Process repeats until the full sleep duration has elapsed\n *\n * The workflow runtime handles this via event sourcing - the `wait_created` event\n * stores the `resumeAt` timestamp, and on each invocation the runtime checks\n * if `now >= resumeAt`. If not, it returns another `timeoutSeconds`.\n *\n * These constants can be overridden via environment variables for testing.\n */\nconst MAX_DELAY_SECONDS = Number(\n process.env.VERCEL_QUEUE_MAX_DELAY_SECONDS || 82800 // 23 hours - leave 1h buffer before 24h retention limit\n);\n\n/**\n * Extract known identifiers from a queue payload and return them as VQS headers.\n * This ensures observability headers are always set without relying on callers.\n */\nfunction getHeadersFromPayload(\n payload: QueuePayload\n): Record<string, string> | undefined {\n const headers: Record<string, string> = {};\n\n if ('runId' in payload && typeof payload.runId === 'string') {\n headers['x-vercel-workflow-run-id'] = payload.runId;\n }\n if ('workflowRunId' in payload && typeof payload.workflowRunId === 'string') {\n headers['x-vercel-workflow-run-id'] = payload.workflowRunId;\n }\n if ('stepId' in payload && typeof payload.stepId === 'string') {\n headers['x-vercel-workflow-step-id'] = payload.stepId;\n }\n\n return Object.keys(headers).length > 0 ? headers : undefined;\n}\n\ntype QueueFunction = (\n queueName: ValidQueueName,\n payload: QueuePayload,\n opts?: QueueOptions\n) => ReturnType<Queue['queue']>;\n\nexport function createQueue(config?: APIConfig): Queue {\n const { baseUrl, usingProxy } = getHttpUrl(config);\n const headers = getHeaders(config, { usingProxy });\n\n const region = 'iad1';\n\n const cborTransport = new CborTransport();\n const jsonTransport = new JsonTransport();\n const dualTransport = new DualTransport();\n\n const clientOptions = {\n region,\n dispatcher: getDispatcher(),\n transport: dualTransport,\n ...(usingProxy && {\n // final path will be /queues-proxy/api/v3/topic/...\n // and the proxy will strip the /queues-proxy prefix before forwarding to VQS\n resolveBaseUrl: () => new URL(`${baseUrl}/queues-proxy`),\n token: config?.token,\n }),\n headers: Object.fromEntries(headers.entries()),\n };\n\n const queue: QueueFunction = async (\n queueName,\n payload,\n opts?: QueueOptions\n ) => {\n // Check if we have a deployment ID either from options or environment\n const deploymentId = opts?.deploymentId ?? process.env.VERCEL_DEPLOYMENT_ID;\n if (!deploymentId) {\n throw new Error(\n 'No deploymentId provided and VERCEL_DEPLOYMENT_ID environment variable is not set. ' +\n 'Queue messages require a deployment ID to route correctly. ' +\n 'Either set VERCEL_DEPLOYMENT_ID or provide deploymentId in options.'\n );\n }\n\n // Select transport based on the target run's specVersion:\n // CBOR for specVersion >= 3 (CBOR transport), JSON for older ones.\n const useCbor =\n (opts?.specVersion ?? SPEC_VERSION_CURRENT) >=\n SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT;\n const transport = useCbor ? cborTransport : jsonTransport;\n\n const client = new QueueClient({\n ...clientOptions,\n deploymentId,\n transport,\n });\n\n // The CborTransport handles CBOR encoding inside serialize(),\n // preserving Uint8Array values (workflow input in specVersion >= 2).\n const wrapper = {\n payload,\n queueName,\n // Store deploymentId in the message so it can be preserved when re-enqueueing\n deploymentId: opts?.deploymentId,\n };\n const sanitizedQueueName = queueName.replace(/[^A-Za-z0-9-_]/g, '-');\n try {\n const { messageId } = await client.send(sanitizedQueueName, wrapper, {\n idempotencyKey: opts?.idempotencyKey,\n delaySeconds: opts?.delaySeconds,\n headers: {\n ...getHeadersFromPayload(payload),\n ...opts?.headers,\n },\n });\n return {\n // messageId may be null when VQS fails over to a different region —\n // the event is ingested but the responding region cannot return an ID.\n messageId: messageId ? MessageId.parse(messageId) : null,\n };\n } catch (error) {\n // Silently handle idempotency key conflicts - the message was already queued.\n // This matches the behavior of world-local and world-postgres.\n if (error instanceof DuplicateMessageError) {\n // Return a placeholder messageId since the original is not available from the error.\n // Callers using idempotency keys shouldn't depend on the returned messageId.\n return {\n messageId: MessageId.parse(\n `msg_duplicate_${error.idempotencyKey ?? opts?.idempotencyKey ?? 'unknown'}`\n ),\n };\n }\n throw error;\n }\n };\n\n const createQueueHandler: Queue['createQueueHandler'] = (\n _prefix,\n handler\n ) => {\n const client = new QueueClient(clientOptions);\n const vqsHandler = client.handleCallback(\n async (message: unknown, metadata) => {\n if (!message || !metadata) {\n return;\n }\n\n const requestId = requestIdStorage.getStore();\n // The CborTransport handles CBOR decoding inside deserialize(),\n // so message is already a plain object with Uint8Array values intact.\n const { payload, queueName, deploymentId } =\n MessageWrapper.parse(message);\n\n const result = await handler(payload, {\n queueName,\n messageId: MessageId.parse(metadata.messageId),\n attempt: metadata.deliveryCount,\n requestId,\n });\n\n if (typeof result?.timeoutSeconds === 'number') {\n // When timeoutSeconds is 0, skip delaySeconds entirely for immediate re-enqueue.\n // Otherwise, clamp to max delay (23h) - for longer sleeps, the workflow will chain\n // multiple delayed messages until the full sleep duration has elapsed.\n const delaySeconds =\n result.timeoutSeconds > 0\n ? Math.min(result.timeoutSeconds, MAX_DELAY_SECONDS)\n : undefined;\n\n // Send new message BEFORE acknowledging current message.\n // This ensures crash safety: if process dies after send but before ack,\n // we may get a duplicate invocation but won't lose the scheduled wakeup.\n await queue(queueName, payload, { deploymentId, delaySeconds });\n }\n }\n );\n\n return async (req: Request) => {\n const rawId = req.headers.get('x-vercel-id');\n const requestId = rawId?.trim() || undefined;\n return requestIdStorage.run(requestId, () => vqsHandler(req));\n };\n };\n\n const getDeploymentId: Queue['getDeploymentId'] = async () => {\n const deploymentId = process.env.VERCEL_DEPLOYMENT_ID;\n if (!deploymentId) {\n throw new Error('VERCEL_DEPLOYMENT_ID environment variable is not set');\n }\n return deploymentId;\n };\n\n return { queue, createQueueHandler, getDeploymentId };\n}\n"]}
|
package/dist/refs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,KAAK,EACL,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,YAAY,CAAC;AAe3D;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,MAAM,IAAI,KAAK;QACf,OAAQ,KAA2B,CAAC,IAAI,KAAK,QAAQ;QACpD,KAA2B,CAAC,KAAK,KAAK,WAAW,CACnD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAyB,EACzB,KAAa,EACb,MAAkB;IAElB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC;IAE5B,0EAA0E;IAC1E,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,kBAAkB,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,WAAW,KAAK,0BAA0B,EAAE,CAAC;YAC/C,qEAAqE;YACrE,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,wEAAwE;QACxE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,gEAAgE;IAChE,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,YAAY,kBAAkB,CAAC,KAAK,CAAC,aAAa,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7F,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAC;IAEpC,iEAAiE;IACjE,oEAAoE;IACpE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,4CAA4C,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErD,OAAO,KAAK,CACV,UAAU,EACV,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,EACrC,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,iBAAiB,CAAC,KAAK,CAAC;YAC3B,GAAG,OAAO,CAAC,GAAG,CAAC;YACf,GAAG,WAAW,CAAC,iBAAiB,CAAC;SAClC,CAAC,CAAC;QAEH,kIAAkI;QAClI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO;YACP,UAAU,EAAE,aAAa,EAAE;SACrB,CAAC,CAAC;QAEV,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAClC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,EAChD,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CACjC,CAAC;YACF,IAAI,EAAE,aAAa,CAAC;gBAClB,GAAG,SAAS,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;aACxC,CAAC,CAAC;YACH,IAAI,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACrD,4DAA4D;YAC5D,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,4DAA4D;QAC5D,OAAO,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC,CACF,CAAC;AACJ,CAAC;AAUD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAoB,EACpB,MAAkB,EAClB,WAAoB;IAEpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,WAAW,IAAI,uBAAuB,CAAC;IAErD,OAAO,KAAK,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CACtC,CAAC,MAAM,CAAC;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAE9C,IAAI,EAAE,aAAa,CAAC;YAClB,2BAA2B,EAAE,IAAI,CAAC,MAAM;YACxC,4BAA4B,EAAE,WAAW;YACzC,4BAA4B,EAAE,WAAW;YACzC,iCAAiC,EAAE,KAAK;SACzC,CAAC,CAAC;QAEH,+DAA+D;QAC/D,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CACrE,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,+DAA+D;QAC/D,sBAAsB;QACtB,MAAM,OAAO,GAAc,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CACtE,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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","sourcesContent":["import { WorkflowWorldError } from '@workflow/errors';\nimport { decode } from 'cbor-x';\nimport { getDispatcher } from './http-client.js';\nimport {\n ErrorType,\n getSpanKind,\n HttpRequestMethod,\n HttpResponseStatusCode,\n PeerService,\n trace,\n UrlFull,\n} from './telemetry.js';\nimport { type APIConfig, getHttpConfig } from './utils.js';\n\n/**\n * A ref descriptor as returned by workflow-server when `remoteRefBehavior=lazy`.\n * Matches the server-side `RefDescriptor` type in `lib/data/remote-ref.ts`.\n */\nexport interface RefDescriptor {\n _type: 'RemoteRef';\n _ref: string;\n /** Base64-encoded inline payload. Present only for dbrf: (inline) refs. */\n _data?: string;\n /** Content type of the inline payload. Present only for dbrf: refs. */\n _ct?: string;\n}\n\n/**\n * Checks if a value is a RefDescriptor object.\n */\nexport function isRefDescriptor(value: unknown): value is RefDescriptor {\n return (\n typeof value === 'object' &&\n value !== null &&\n '_type' in value &&\n '_ref' in value &&\n typeof (value as { _ref: unknown })._ref === 'string' &&\n (value as { _type: string })._type === 'RemoteRef'\n );\n}\n\n/**\n * Maximum number of concurrent ref resolution requests.\n * Limits peak concurrency to avoid overwhelming the server.\n */\nconst REF_RESOLVE_CONCURRENCY = 10;\n\n/**\n * Resolve a single ref descriptor.\n *\n * For inline refs (dbrf: prefix), the data is decoded locally from the\n * descriptor's `_data` field — no network request is needed.\n *\n * For S3 refs (s3rf:) and Redis refs (kvrf:), a request is made to the\n * `GET /v2/runs/:runId/refs` endpoint on workflow-server which returns\n * raw CBOR or binary bytes.\n *\n * @param descriptor - The ref descriptor to resolve\n * @param runId - The runId that owns this ref (used in the URL path)\n * @param config - API configuration\n */\nexport async function resolveRefDescriptor(\n descriptor: RefDescriptor,\n runId: string,\n config?: APIConfig\n): Promise<unknown> {\n const ref = descriptor._ref;\n\n // Inline refs (dbrf:) carry their data in the descriptor — decode locally\n if (ref.startsWith('dbrf:')) {\n if (!descriptor._data) {\n throw new Error(`Inline ref descriptor missing _data field: ${ref}`);\n }\n const contentType = descriptor._ct ?? 'application/cbor';\n const binaryData = Buffer.from(descriptor._data, 'base64');\n if (contentType === 'application/octet-stream') {\n // Buffer is a Uint8Array subclass — return directly to avoid a copy.\n return binaryData;\n }\n // CBOR-encoded data — decode it. Buffer is accepted by cbor-x directly.\n return decode(binaryData);\n }\n\n // Remote refs (s3rf:, kvrf:) — fetch raw bytes from the server.\n // The server returns the raw stored bytes directly (not wrapped in a\n // JSON/CBOR envelope). The Content-Type may be 'application/cbor' (for\n // CBOR-encoded data) or 'application/octet-stream' (for raw binary like\n // Uint8Array). We handle both content types directly rather than going\n // through makeRequest, which only handles JSON/CBOR API responses.\n const { baseUrl, headers } = await getHttpConfig(config);\n const endpoint = `/v2/runs/${encodeURIComponent(runId)}/refs?ref=${encodeURIComponent(ref)}`;\n const url = `${baseUrl}${endpoint}`;\n\n // Set headers that makeRequest normally adds: Accept for content\n // negotiation and X-Request-Time to bypass RSC request memoization.\n headers.set('Accept', 'application/cbor, application/octet-stream');\n headers.set('X-Request-Time', Date.now().toString());\n\n return trace(\n 'http GET',\n { kind: await getSpanKind('CLIENT') },\n async (span) => {\n span?.setAttributes({\n ...HttpRequestMethod('GET'),\n ...UrlFull(url),\n ...PeerService('workflow-server'),\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit\n const response = await fetch(url, {\n method: 'GET',\n headers,\n dispatcher: getDispatcher(),\n } as any);\n\n span?.setAttributes({\n ...HttpResponseStatusCode(response.status),\n });\n\n if (!response.ok) {\n const error = new WorkflowWorldError(\n `Failed to resolve ref: HTTP ${response.status}`,\n { url, status: response.status }\n );\n span?.setAttributes({\n ...ErrorType(`HTTP ${response.status}`),\n });\n span?.recordException?.(error);\n throw error;\n }\n\n const contentType = response.headers.get('content-type') || '';\n const buffer = await response.arrayBuffer();\n\n if (contentType.includes('application/octet-stream')) {\n // Raw binary data (e.g., Uint8Array stored by the workflow)\n return new Uint8Array(buffer);\n }\n\n // CBOR-encoded data (the common case for structured values)\n return decode(new Uint8Array(buffer));\n }\n );\n}\n\n/**\n * A ref descriptor paired with the runId that owns it, for resolution.\n */\nexport interface RefWithRunId {\n descriptor: RefDescriptor;\n runId: string;\n}\n\n/**\n * Resolve multiple ref descriptors in parallel with bounded concurrency.\n *\n * If any ref in a batch fails, the batch rejects and remaining batches\n * are aborted to avoid cascading failures.\n *\n * @param refs - Array of ref descriptors with their owning runIds\n * @param config - API configuration\n * @param concurrency - Max concurrent ref resolution requests. Falls back to REF_RESOLVE_CONCURRENCY.\n * @returns Array of resolved values in the same order as input\n */\nexport async function resolveRefDescriptors(\n refs: RefWithRunId[],\n config?: APIConfig,\n concurrency?: number\n): Promise<unknown[]> {\n if (refs.length === 0) return [];\n\n const limit = concurrency ?? REF_RESOLVE_CONCURRENCY;\n\n return trace('world.refs.resolve', async (span) => {\n const inlineCount = refs.filter((r) =>\n r.descriptor._ref.startsWith('dbrf:')\n ).length;\n const remoteCount = refs.length - inlineCount;\n\n span?.setAttributes({\n 'workflow.refs.total_count': refs.length,\n 'workflow.refs.inline_count': inlineCount,\n 'workflow.refs.remote_count': remoteCount,\n 'workflow.refs.concurrency_limit': limit,\n });\n\n // Simple case: if under concurrency limit, resolve all at once\n if (refs.length <= limit) {\n return Promise.all(\n refs.map((r) => resolveRefDescriptor(r.descriptor, r.runId, config))\n );\n }\n\n // Batch with bounded concurrency. If any ref in a batch fails,\n // the batch rejects and remaining batches are aborted to avoid\n // cascading failures.\n const results: unknown[] = new Array(refs.length);\n for (let i = 0; i < refs.length; i += limit) {\n const batch = refs.slice(i, i + limit);\n const batchResults = await Promise.all(\n batch.map((r) => resolveRefDescriptor(r.descriptor, r.runId, config))\n );\n for (let j = 0; j < batchResults.length; j++) {\n results[i + j] = batchResults[j];\n }\n }\n\n return results;\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-latest-deployment.js","sourceRoot":"","sources":["../src/resolve-latest-deployment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAkB;IAElB,OAAO,KAAK,UAAU,yBAAyB;QAC7C,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,+DAA+D;QAC/D,oEAAoE;QACpE,+CAA+C;QAC/C,MAAM,KAAK,GACT,MAAM,EAAE,KAAK;YACb,OAAO,CAAC,GAAG,CAAC,YAAY;YACxB,CAAC,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,gEAAgE,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAEtH,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,0GAA0G;YAC1G,UAAU,EAAE,aAAa,EAAE;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,gCAAgC,CAAC;YAC1C,CAAC;YACD,MAAM,IAAI,KAAK,CACb,2CAA2C,mBAAmB,UAAU,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5I,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,qCAAqC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,yEAAyE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolve-latest-deployment.js","sourceRoot":"","sources":["../src/resolve-latest-deployment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAkB;IAElB,OAAO,KAAK,UAAU,yBAAyB;QAC7C,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,+DAA+D;QAC/D,oEAAoE;QACpE,+CAA+C;QAC/C,MAAM,KAAK,GACT,MAAM,EAAE,KAAK;YACb,OAAO,CAAC,GAAG,CAAC,YAAY;YACxB,CAAC,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,gEAAgE,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAEtH,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,0GAA0G;YAC1G,UAAU,EAAE,aAAa,EAAE;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,gCAAgC,CAAC;YAC1C,CAAC;YACD,MAAM,IAAI,KAAK,CACb,2CAA2C,mBAAmB,UAAU,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5I,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,qCAAqC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,yEAAyE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Resolve the latest deployment ID for the current deployment's environment.\n *\n * Calls the Vercel API to find the most recent deployment that shares the same\n * environment (e.g., same \"production\" target or same git branch for \"preview\"\n * deployments) as the provided current deployment.\n */\n\nimport { getVercelOidcToken } from '@vercel/oidc';\nimport * as z from 'zod';\nimport { getDispatcher } from './http-client.js';\nimport type { APIConfig } from './utils.js';\n\nconst ResolveLatestDeploymentResponseSchema = z.object({\n id: z.string(),\n});\n\n/**\n * Create the `resolveLatestDeploymentId` implementation for a Vercel World.\n *\n * Resolves the most recent deployment ID for the same environment as the\n * current deployment by calling the Vercel API.\n *\n * @param config - API configuration (token, project config, etc.)\n * @returns The `resolveLatestDeploymentId` function\n */\nexport function createResolveLatestDeploymentId(\n config?: APIConfig\n): () => Promise<string> {\n return async function resolveLatestDeploymentId(): Promise<string> {\n const currentDeploymentId = process.env.VERCEL_DEPLOYMENT_ID;\n if (!currentDeploymentId) {\n throw new Error(\n 'Cannot resolve latest deployment: VERCEL_DEPLOYMENT_ID environment variable is not set'\n );\n }\n\n // Authenticate via provided token (CLI/config), VERCEL_TOKEN env var\n // (external tooling), or OIDC token (runtime) — in that order.\n // OIDC is last to avoid an unnecessary network call when a token is\n // already available (e.g. CLI or CI contexts).\n const token =\n config?.token ??\n process.env.VERCEL_TOKEN ??\n (await getVercelOidcToken().catch(() => null));\n if (!token) {\n throw new Error(\n 'Cannot resolve latest deployment: no OIDC token or VERCEL_TOKEN available'\n );\n }\n\n const url = `https://api.vercel.com/v1/workflow/resolve-latest-deployment/${encodeURIComponent(currentDeploymentId)}`;\n\n // 429/5xx retries are handled by the shared RetryAgent from getDispatcher()\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n authorization: `Bearer ${token}`,\n },\n // @ts-expect-error -- undici dispatcher is accepted by Node.js fetch but not in @types/node's RequestInit\n dispatcher: getDispatcher(),\n });\n\n if (!response.ok) {\n let body: string;\n try {\n body = await response.text();\n } catch {\n body = '<unable to read response body>';\n }\n throw new Error(\n `Failed to resolve latest deployment for ${currentDeploymentId}: HTTP ${response.status} ${response.statusText}${body ? ` — ${body}` : ''}`\n );\n }\n\n const data = await response.json();\n const result = ResolveLatestDeploymentResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error(\n `Invalid response from Vercel API: expected { id: string }. Zod error: ${result.error.message}`\n );\n }\n\n return result.data.id;\n };\n}\n"]}
|
package/dist/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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","sourcesContent":["import { WorkflowWorldError, WorkflowRunNotFoundError } from '@workflow/errors';\nimport {\n type CancelWorkflowRunParams,\n type CreateWorkflowRunRequest,\n type GetWorkflowRunParams,\n type ListWorkflowRunsParams,\n type PaginatedResponse,\n PaginatedResponseSchema,\n StructuredErrorSchema,\n type WorkflowRun,\n WorkflowRunBaseSchema,\n type WorkflowRunWithoutData,\n} from '@workflow/world';\nimport { z } from 'zod';\nimport type { APIConfig } from './utils.js';\nimport {\n DEFAULT_RESOLVE_DATA_OPTION,\n deserializeError,\n makeRequest,\n} from './utils.js';\n\n/**\n * Wire format schema for workflow runs coming from the backend.\n * The backend may return error either as:\n * - A JSON string (legacy format) that needs deserialization\n * - An already structured object (new format) with { message, stack?, code? }\n *\n * This is used for validation in makeRequest(), then deserializeError()\n * normalizes both formats into the expected StructuredError object.\n */\nexport const WorkflowRunWireBaseSchema = WorkflowRunBaseSchema.omit({\n error: true,\n}).extend({\n // Backend returns error as either a JSON string or structured object\n error: z.union([z.string(), StructuredErrorSchema]).optional(),\n // errorCode is stored inline on the run entity (not inside errorRef).\n // It's merged into StructuredError.code by deserializeError().\n errorCode: z.string().optional(),\n // Not part of the World interface, but passed through for direct consumers and debugging\n blobStorageBytes: z.number().optional(),\n streamStorageBytes: z.number().optional(),\n});\n\n// Wire schema for resolved data (full input/output)\nconst WorkflowRunWireSchema = WorkflowRunWireBaseSchema;\n\n// Wire schema for lazy mode with refs instead of data\n// input/output can be Uint8Array (v2) or any JSON (legacy v1)\nconst WorkflowRunWireWithRefsSchema = WorkflowRunWireBaseSchema.omit({\n input: true,\n output: true,\n}).extend({\n // We discard the results of the refs, so we don't care about the type here\n inputRef: z.any().optional(),\n outputRef: z.any().optional(),\n // Accept both Uint8Array (v2 format) and any (legacy v1 JSON format)\n input: z.union([z.instanceof(Uint8Array), z.any()]).optional(),\n output: z.union([z.instanceof(Uint8Array), z.any()]).optional(),\n});\n\n// Overloaded function signatures for filterRunData\nfunction filterRunData(run: any, resolveData: 'none'): WorkflowRunWithoutData;\nfunction filterRunData(run: any, resolveData: 'all'): WorkflowRun;\nfunction filterRunData(\n run: any,\n resolveData: 'none' | 'all'\n): WorkflowRun | WorkflowRunWithoutData;\n\n// Implementation\nfunction filterRunData(\n run: any,\n resolveData: 'none' | 'all'\n): WorkflowRun | WorkflowRunWithoutData {\n if (resolveData === 'none') {\n const { inputRef: _inputRef, outputRef: _outputRef, ...rest } = run;\n const deserialized = deserializeError<WorkflowRun>(rest);\n return {\n ...deserialized,\n input: undefined,\n output: undefined,\n } as WorkflowRunWithoutData;\n }\n return deserializeError<WorkflowRun>(run);\n}\n\n// Functions\n\n/**\n * This query technically works but should be used sparingly till the backend\n * uses CH to resolve this instead of scanning a dynamo table.\n */\nexport async function listWorkflowRuns(\n params: ListWorkflowRunsParams & { resolveData: 'none' },\n config?: APIConfig\n): Promise<PaginatedResponse<WorkflowRunWithoutData>>;\nexport async function listWorkflowRuns(\n params?: ListWorkflowRunsParams & { resolveData?: 'all' },\n config?: APIConfig\n): Promise<PaginatedResponse<WorkflowRun>>;\nexport async function listWorkflowRuns(\n params?: ListWorkflowRunsParams,\n config?: APIConfig\n): Promise<PaginatedResponse<WorkflowRun | WorkflowRunWithoutData>>;\nexport async function listWorkflowRuns(\n params: ListWorkflowRunsParams = {},\n config?: APIConfig\n): Promise<PaginatedResponse<WorkflowRun | WorkflowRunWithoutData>> {\n const {\n workflowName,\n status,\n pagination,\n resolveData = DEFAULT_RESOLVE_DATA_OPTION,\n } = params;\n\n const searchParams = new URLSearchParams();\n\n if (workflowName) searchParams.set('workflowName', workflowName);\n if (status) searchParams.set('status', status);\n if (pagination?.limit) searchParams.set('limit', pagination.limit.toString());\n if (pagination?.cursor) searchParams.set('cursor', pagination.cursor);\n if (pagination?.sortOrder)\n searchParams.set('sortOrder', pagination.sortOrder);\n\n // Map resolveData to internal RemoteRefBehavior\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n const queryString = searchParams.toString();\n const endpoint = `/v2/runs${queryString ? `?${queryString}` : ''}`;\n\n const response = (await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: PaginatedResponseSchema(\n remoteRefBehavior === 'lazy'\n ? WorkflowRunWireWithRefsSchema\n : WorkflowRunWireSchema\n ),\n })) as PaginatedResponse<WorkflowRun>;\n\n return {\n ...response,\n data: response.data.map((run: any) => filterRunData(run, resolveData)),\n };\n}\n\nexport async function createWorkflowRunV1(\n data: CreateWorkflowRunRequest,\n config?: APIConfig\n): Promise<WorkflowRun> {\n const run = await makeRequest({\n endpoint: '/v1/runs/create',\n options: { method: 'POST' },\n data,\n config,\n schema: WorkflowRunWireSchema,\n });\n return deserializeError<WorkflowRun>(run);\n}\n\nexport async function getWorkflowRun(\n id: string,\n params: GetWorkflowRunParams & { resolveData: 'none' },\n config?: APIConfig\n): Promise<WorkflowRunWithoutData>;\nexport async function getWorkflowRun(\n id: string,\n params?: GetWorkflowRunParams & { resolveData?: 'all' },\n config?: APIConfig\n): Promise<WorkflowRun>;\nexport async function getWorkflowRun(\n id: string,\n params?: GetWorkflowRunParams,\n config?: APIConfig\n): Promise<WorkflowRun | WorkflowRunWithoutData>;\nexport async function getWorkflowRun(\n id: string,\n params?: GetWorkflowRunParams,\n config?: APIConfig\n): Promise<WorkflowRun | WorkflowRunWithoutData> {\n const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n\n const searchParams = new URLSearchParams();\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n const queryString = searchParams.toString();\n const endpoint = `/v2/runs/${encodeURIComponent(id)}${queryString ? `?${queryString}` : ''}`;\n\n try {\n const run = await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: (remoteRefBehavior === 'lazy'\n ? WorkflowRunWireWithRefsSchema\n : WorkflowRunWireSchema) as any,\n });\n\n return filterRunData(run, resolveData);\n } catch (error) {\n if (error instanceof WorkflowWorldError && error.status === 404) {\n throw new WorkflowRunNotFoundError(id);\n }\n throw error;\n }\n}\n\nexport async function cancelWorkflowRunV1(\n id: string,\n params: CancelWorkflowRunParams & { resolveData: 'none' },\n config?: APIConfig\n): Promise<WorkflowRunWithoutData>;\nexport async function cancelWorkflowRunV1(\n id: string,\n params?: CancelWorkflowRunParams & { resolveData?: 'all' },\n config?: APIConfig\n): Promise<WorkflowRun>;\nexport async function cancelWorkflowRunV1(\n id: string,\n params?: CancelWorkflowRunParams,\n config?: APIConfig\n): Promise<WorkflowRun | WorkflowRunWithoutData>;\nexport async function cancelWorkflowRunV1(\n id: string,\n params?: CancelWorkflowRunParams,\n config?: APIConfig\n): Promise<WorkflowRun | WorkflowRunWithoutData> {\n const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n\n const searchParams = new URLSearchParams();\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n const queryString = searchParams.toString();\n const endpoint = `/v1/runs/${encodeURIComponent(id)}/cancel${queryString ? `?${queryString}` : ''}`;\n\n try {\n const run = await makeRequest({\n endpoint,\n options: { method: 'PUT' },\n config,\n schema: (remoteRefBehavior === 'lazy'\n ? WorkflowRunWireWithRefsSchema\n : WorkflowRunWireSchema) as any,\n });\n\n return filterRunData(run, resolveData);\n } catch (error) {\n if (error instanceof WorkflowWorldError && error.status === 404) {\n throw new WorkflowRunNotFoundError(id);\n }\n throw error;\n }\n}\n"]}
|
package/dist/steps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,uBAAuB,EAEvB,UAAU,GAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IAC5C,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC,MAAM,CAAC;IACR,mCAAmC;IACnC,qCAAqC;IACrC,2DAA2D;IAC3D,gDAAgD;IAChD,KAAK,EAAE,CAAC;SACL,KAAK,CAAC;QACL,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,sBAAsB,GAAG,cAAc,CAAC,IAAI,CAAC;IACjD,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAC,CAAC,MAAM,CAAC;IACR,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAa;IAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAE9C,MAAM,MAAM,GAAQ;QAClB,GAAG,IAAI;KACR,CAAC;IAEF,uCAAuC;IACvC,gCAAgC;IAChC,0DAA0D;IAC1D,8EAA8E;IAC9E,MAAM,WAAW,GAAG,KAAK,IAAI,QAAQ,CAAC;IACtC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/D,MAAM,CAAC,KAAK,GAAG;wBACb,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,wCAAwC;oBACxC,MAAM,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;gBAClC,MAAM,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACnE,wCAAwC;YACxC,MAAM,CAAC,KAAK,GAAG;gBACb,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,eAAe;gBAC/C,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAc,CAAC;AACxB,CAAC;AAUD,4FAA4F;AAC5F,qEAAqE;AACrE,SAAS,cAAc,CACrB,IAAS,EACT,WAA2B;IAE3B,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACrE,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO;YACL,GAAG,YAAY;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;SACC,CAAC;IACvB,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAkC,EAClC,MAAkB;IAElB,MAAM,EACJ,KAAK,EACL,UAAU,EACV,WAAW,GAAG,2BAA2B,GAC1C,GAAG,MAAM,CAAC;IAEX,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAE3C,IAAI,UAAU,EAAE,MAAM;QAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACtE,IAAI,UAAU,EAAE,KAAK;QAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,IAAI,UAAU,EAAE,SAAS;QACvB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAEtD,gDAAgD;IAChD,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,kBAAkB,CAAC,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEtG,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CAAC;QAClC,QAAQ;QACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1B,MAAM;QACN,MAAM,EAAE,uBAAuB,CAC7B,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc,CAChE;KACT,CAAC,CAA2B,CAAC;IAE9B,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,IAAuB,EACvB,MAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;QAC7B,QAAQ,EAAE,YAAY,kBAAkB,CAAC,KAAK,CAAC,QAAQ;QACvD,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3B,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,MAAc,EACd,IAAuB,EACvB,MAAkB;IAElB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;QAC7B,QAAQ,EAAE,YAAY,kBAAkB,CAAC,KAAK,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE;QACrF,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1B,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAyB,EACzB,MAAc,EACd,MAAsB,EACtB,MAAkB;IAElB,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,2BAA2B,CAAC;IACvE,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACpH,CAAC,CAAC,aAAa,kBAAkB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAErF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;QAC7B,QAAQ;QACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1B,MAAM;QACN,MAAM,EAAE,CAAC,iBAAiB,KAAK,MAAM;YACnC,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,cAAc,CAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["import {\n type CreateStepRequest,\n type GetStepParams,\n type ListWorkflowRunStepsParams,\n type PaginatedResponse,\n PaginatedResponseSchema,\n type Step,\n StepSchema,\n type StepWithoutData,\n type UpdateStepRequest,\n} from '@workflow/world';\nimport { z } from 'zod';\nimport type { APIConfig } from './utils.js';\nimport {\n DEFAULT_RESOLVE_DATA_OPTION,\n makeRequest,\n serializeError,\n} from './utils.js';\n\n/**\n * Wire format schema for steps coming from the backend.\n * Handles error deserialization from wire format.\n */\nexport const StepWireSchema = StepSchema.omit({\n error: true,\n}).extend({\n // Backend returns error either as:\n // - A JSON string (legacy/lazy mode)\n // - An object {message, stack} (when errorRef is resolved)\n // This will be deserialized and mapped to error\n error: z\n .union([\n z.string(),\n z.object({\n message: z.string(),\n stack: z.string().optional(),\n code: z.string().optional(),\n }),\n ])\n .optional(),\n errorRef: z.any().optional(),\n});\n\n// Wire schema for lazy mode with refs instead of data\nconst StepWireWithRefsSchema = StepWireSchema.omit({\n input: true,\n output: true,\n}).extend({\n // We discard the results of the refs, so we don't care about the type here\n inputRef: z.any().optional(),\n outputRef: z.any().optional(),\n input: z.instanceof(Uint8Array).optional(),\n output: z.instanceof(Uint8Array).optional(),\n});\n\n/**\n * Transform step from wire format to Step interface format.\n * Maps:\n * - error/errorRef → error (deserializing JSON string to StructuredError)\n */\nexport function deserializeStep(wireStep: any): Step {\n const { error, errorRef, ...rest } = wireStep;\n\n const result: any = {\n ...rest,\n };\n\n // Deserialize error to StructuredError\n // The backend returns error as:\n // - error: JSON string (legacy) or object (when resolved)\n // - errorRef: resolved object {message, stack} when remoteRefBehavior=resolve\n const errorSource = error ?? errorRef;\n if (errorSource) {\n if (typeof errorSource === 'string') {\n try {\n const parsed = JSON.parse(errorSource);\n if (typeof parsed === 'object' && parsed.message !== undefined) {\n result.error = {\n message: parsed.message,\n stack: parsed.stack,\n code: parsed.code,\n };\n } else {\n // Parsed but not an object with message\n result.error = { message: String(parsed) };\n }\n } catch {\n // Not JSON, treat as plain string\n result.error = { message: errorSource };\n }\n } else if (typeof errorSource === 'object' && errorSource !== null) {\n // Already an object (from resolved ref)\n result.error = {\n message: errorSource.message ?? 'Unknown error',\n stack: errorSource.stack,\n code: errorSource.code,\n };\n }\n }\n\n return result as Step;\n}\n\n// Overloaded function signatures for filterStepData\nfunction filterStepData(step: any, resolveData: 'none'): StepWithoutData;\nfunction filterStepData(step: any, resolveData: 'all'): Step;\nfunction filterStepData(\n step: any,\n resolveData: 'none' | 'all'\n): Step | StepWithoutData;\n\n// Implementation - when resolveData='none', returns Step with input/output set to undefined\n// to match other World implementations (world-local, world-postgres)\nfunction filterStepData(\n step: any,\n resolveData: 'none' | 'all'\n): Step | StepWithoutData {\n if (resolveData === 'none') {\n const { inputRef: _inputRef, outputRef: _outputRef, ...rest } = step;\n const deserialized = deserializeStep(rest);\n return {\n ...deserialized,\n input: undefined,\n output: undefined,\n } as StepWithoutData;\n }\n return deserializeStep(step);\n}\n\n// Functions\nexport async function listWorkflowRunSteps(\n params: ListWorkflowRunStepsParams & { resolveData: 'none' },\n config?: APIConfig\n): Promise<PaginatedResponse<StepWithoutData>>;\nexport async function listWorkflowRunSteps(\n params: ListWorkflowRunStepsParams & { resolveData?: 'all' },\n config?: APIConfig\n): Promise<PaginatedResponse<Step>>;\nexport async function listWorkflowRunSteps(\n params: ListWorkflowRunStepsParams,\n config?: APIConfig\n): Promise<PaginatedResponse<Step | StepWithoutData>>;\nexport async function listWorkflowRunSteps(\n params: ListWorkflowRunStepsParams,\n config?: APIConfig\n): Promise<PaginatedResponse<Step | StepWithoutData>> {\n const {\n runId,\n pagination,\n resolveData = DEFAULT_RESOLVE_DATA_OPTION,\n } = params;\n\n const searchParams = new URLSearchParams();\n\n if (pagination?.cursor) searchParams.set('cursor', pagination.cursor);\n if (pagination?.limit) searchParams.set('limit', pagination.limit.toString());\n if (pagination?.sortOrder)\n searchParams.set('sortOrder', pagination.sortOrder);\n\n // Map resolveData to internal RemoteRefBehavior\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n const queryString = searchParams.toString();\n const endpoint = `/v2/runs/${encodeURIComponent(runId)}/steps${queryString ? `?${queryString}` : ''}`;\n\n const response = (await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: PaginatedResponseSchema(\n remoteRefBehavior === 'lazy' ? StepWireWithRefsSchema : StepWireSchema\n ) as any,\n })) as PaginatedResponse<any>;\n\n return {\n ...response,\n data: response.data.map((step: any) => filterStepData(step, resolveData)),\n };\n}\n\nexport async function createStep(\n runId: string,\n data: CreateStepRequest,\n config?: APIConfig\n): Promise<Step> {\n const step = await makeRequest({\n endpoint: `/v2/runs/${encodeURIComponent(runId)}/steps`,\n options: { method: 'POST' },\n data,\n config,\n schema: StepWireSchema,\n });\n return deserializeStep(step);\n}\n\nexport async function updateStep(\n runId: string,\n stepId: string,\n data: UpdateStepRequest,\n config?: APIConfig\n): Promise<Step> {\n const serialized = serializeError(data);\n const step = await makeRequest({\n endpoint: `/v2/runs/${encodeURIComponent(runId)}/steps/${encodeURIComponent(stepId)}`,\n options: { method: 'PUT' },\n data: serialized,\n config,\n schema: StepWireSchema,\n });\n return deserializeStep(step);\n}\n\nexport async function getStep(\n runId: string | undefined,\n stepId: string,\n params: GetStepParams & { resolveData: 'none' },\n config?: APIConfig\n): Promise<StepWithoutData>;\nexport async function getStep(\n runId: string | undefined,\n stepId: string,\n params?: GetStepParams & { resolveData?: 'all' },\n config?: APIConfig\n): Promise<Step>;\nexport async function getStep(\n runId: string | undefined,\n stepId: string,\n params?: GetStepParams,\n config?: APIConfig\n): Promise<Step | StepWithoutData>;\nexport async function getStep(\n runId: string | undefined,\n stepId: string,\n params?: GetStepParams,\n config?: APIConfig\n): Promise<Step | StepWithoutData> {\n const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;\n const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';\n\n const searchParams = new URLSearchParams();\n searchParams.set('remoteRefBehavior', remoteRefBehavior);\n\n const queryString = searchParams.toString();\n const endpoint = runId\n ? `/v2/runs/${encodeURIComponent(runId)}/steps/${encodeURIComponent(stepId)}${queryString ? `?${queryString}` : ''}`\n : `/v2/steps/${encodeURIComponent(stepId)}${queryString ? `?${queryString}` : ''}`;\n\n const step = await makeRequest({\n endpoint,\n options: { method: 'GET' },\n config,\n schema: (remoteRefBehavior === 'lazy'\n ? StepWireWithRefsSchema\n : StepWireSchema) as any,\n });\n\n return filterStepData(step, resolveData);\n}\n"]}
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,MAAM,OAAO,GAAY;QACvB,4CAA4C;QAC5C,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,CAAC,EAAU,EAAE,MAAY,EAAE,EAAE,CACjC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAA2B;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAY,EAAE,EAAE,CACtB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAA4B;SAC/D;QACD,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,CAAC,KAAyB,EAAE,MAAc,EAAE,MAAY,EAAE,EAAE,CAChE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAA4B;YACpE,IAAI,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CACrB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAA6B;SACpE;QACD,MAAM,EAAE;YACN,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAC9B,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YACrD,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACzE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;YACtD,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;SACtE;QACD,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACxD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;YACpD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;SAC5C;KACF,CAAC;IAEF,8CAA8C;IAC9C,+DAA+D;IAC/D,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;QAClD,KAAK,EAAE,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC;QACrD,MAAM,EAAE,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC;QACxD,KAAK,EAAE,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC;KACtD,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,MAAM,OAAO,GAAY;QACvB,4CAA4C;QAC5C,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,CAAC,EAAU,EAAE,MAAY,EAAE,EAAE,CACjC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAA2B;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAY,EAAE,EAAE,CACtB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAA4B;SAC/D;QACD,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,CAAC,KAAyB,EAAE,MAAc,EAAE,MAAY,EAAE,EAAE,CAChE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAA4B;YACpE,IAAI,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CACrB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAA6B;SACpE;QACD,MAAM,EAAE;YACN,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAC9B,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YACrD,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACzE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;YACtD,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;SACtE;QACD,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACxD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;YACpD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;SAC5C;KACF,CAAC;IAEF,8CAA8C;IAC9C,+DAA+D;IAC/D,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;QAClD,KAAK,EAAE,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC;QACrD,MAAM,EAAE,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC;QACxD,KAAK,EAAE,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC;KACtD,CAAC;AACJ,CAAC","sourcesContent":["import type { Storage } from '@workflow/world';\nimport {\n createWorkflowRunEvent,\n getEvent,\n getWorkflowRunEvents,\n} from './events.js';\nimport { getHook, getHookByToken, listHooks } from './hooks.js';\nimport { instrumentObject } from './instrumentObject.js';\nimport { getWorkflowRun, listWorkflowRuns } from './runs.js';\nimport { getStep, listWorkflowRunSteps } from './steps.js';\nimport type { APIConfig } from './utils.js';\n\nexport function createStorage(config?: APIConfig): Storage {\n const storage: Storage = {\n // Storage interface with namespaced methods\n runs: {\n get: ((id: string, params?: any) =>\n getWorkflowRun(id, params, config)) as Storage['runs']['get'],\n list: ((params?: any) =>\n listWorkflowRuns(params, config)) as Storage['runs']['list'],\n },\n steps: {\n get: ((runId: string | undefined, stepId: string, params?: any) =>\n getStep(runId, stepId, params, config)) as Storage['steps']['get'],\n list: ((params: any) =>\n listWorkflowRunSteps(params, config)) as Storage['steps']['list'],\n },\n events: {\n create: (runId, data, params) =>\n createWorkflowRunEvent(runId, data, params, config),\n get: (runId, eventId, params) => getEvent(runId, eventId, params, config),\n list: (params) => getWorkflowRunEvents(params, config),\n listByCorrelationId: (params) => getWorkflowRunEvents(params, config),\n },\n hooks: {\n get: (hookId, params) => getHook(hookId, params, config),\n getByToken: (token) => getHookByToken(token, config),\n list: (params) => listHooks(params, config),\n },\n };\n\n // Instrument all storage methods with tracing\n // NOTE: Span names are lowercase per OTEL semantic conventions\n return {\n runs: instrumentObject('world.runs', storage.runs),\n steps: instrumentObject('world.steps', storage.steps),\n events: instrumentObject('world.events', storage.events),\n hooks: instrumentObject('world.hooks', storage.hooks),\n };\n}\n"]}
|
package/dist/streamer.d.ts
CHANGED
|
@@ -5,6 +5,28 @@ import { type APIConfig } from './utils.js';
|
|
|
5
5
|
* MAX_CHUNKS_PER_BATCH. Larger batches are split into multiple requests.
|
|
6
6
|
*/
|
|
7
7
|
export declare const MAX_CHUNKS_PER_REQUEST = 1000;
|
|
8
|
+
/**
|
|
9
|
+
* Stream control frame constants, mirroring workflow-server's format.
|
|
10
|
+
*
|
|
11
|
+
* Control frame (13 bytes):
|
|
12
|
+
* [0-3] Zero-frame marker (0x00 0x00 0x00 0x00)
|
|
13
|
+
* [4] Flags — bit 0: done (1 = complete, 0 = timeout/reconnect)
|
|
14
|
+
* [5-8] nextIndex — big-endian uint32, chunk index to resume from
|
|
15
|
+
* [9-12] Magic footer — "WFCT" (0x57 0x46 0x43 0x54)
|
|
16
|
+
*/
|
|
17
|
+
export declare const STREAM_CONTROL_FRAME_SIZE = 13;
|
|
18
|
+
export interface StreamControlFrame {
|
|
19
|
+
done: boolean;
|
|
20
|
+
nextIndex: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Try to parse a stream control frame from the tail of a buffer.
|
|
24
|
+
* Returns the parsed frame and the byte length of the control data,
|
|
25
|
+
* or null if no valid control frame is present.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseStreamControlFrame(buffer: Uint8Array): (StreamControlFrame & {
|
|
28
|
+
totalLength: number;
|
|
29
|
+
}) | null;
|
|
8
30
|
/**
|
|
9
31
|
* Encode multiple chunks into a length-prefixed binary format.
|
|
10
32
|
* Format: [4 bytes big-endian length][chunk bytes][4 bytes length][chunk bytes]...
|
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,EAGV,QAAQ,EAET,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EAET,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAO3C;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,GACjB,CAAC,kBAAkB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAkCvD;AAeD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CA0B7E;AAwBD,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAiO3D"}
|
package/dist/streamer.js
CHANGED
|
@@ -9,6 +9,49 @@ export const MAX_CHUNKS_PER_REQUEST = 1000;
|
|
|
9
9
|
// The dispatcher's retry logic doesn't apply well to streaming operations
|
|
10
10
|
// (partial writes, long-lived reads), and duplex streams are incompatible
|
|
11
11
|
// with undici's experimental H2 support.
|
|
12
|
+
/**
|
|
13
|
+
* Stream control frame constants, mirroring workflow-server's format.
|
|
14
|
+
*
|
|
15
|
+
* Control frame (13 bytes):
|
|
16
|
+
* [0-3] Zero-frame marker (0x00 0x00 0x00 0x00)
|
|
17
|
+
* [4] Flags — bit 0: done (1 = complete, 0 = timeout/reconnect)
|
|
18
|
+
* [5-8] nextIndex — big-endian uint32, chunk index to resume from
|
|
19
|
+
* [9-12] Magic footer — "WFCT" (0x57 0x46 0x43 0x54)
|
|
20
|
+
*/
|
|
21
|
+
export const STREAM_CONTROL_FRAME_SIZE = 13;
|
|
22
|
+
const STREAM_CONTROL_MAGIC = new Uint8Array([0x57, 0x46, 0x43, 0x54]);
|
|
23
|
+
/**
|
|
24
|
+
* Try to parse a stream control frame from the tail of a buffer.
|
|
25
|
+
* Returns the parsed frame and the byte length of the control data,
|
|
26
|
+
* or null if no valid control frame is present.
|
|
27
|
+
*/
|
|
28
|
+
export function parseStreamControlFrame(buffer) {
|
|
29
|
+
if (buffer.length < STREAM_CONTROL_FRAME_SIZE)
|
|
30
|
+
return null;
|
|
31
|
+
const offset = buffer.length - STREAM_CONTROL_FRAME_SIZE;
|
|
32
|
+
// Check zero-frame marker (bytes 0-3 must be 0x00)
|
|
33
|
+
if (buffer[offset] !== 0 ||
|
|
34
|
+
buffer[offset + 1] !== 0 ||
|
|
35
|
+
buffer[offset + 2] !== 0 ||
|
|
36
|
+
buffer[offset + 3] !== 0) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
// Check magic footer at bytes 9-12
|
|
40
|
+
if (buffer[offset + 9] !== STREAM_CONTROL_MAGIC[0] ||
|
|
41
|
+
buffer[offset + 10] !== STREAM_CONTROL_MAGIC[1] ||
|
|
42
|
+
buffer[offset + 11] !== STREAM_CONTROL_MAGIC[2] ||
|
|
43
|
+
buffer[offset + 12] !== STREAM_CONTROL_MAGIC[3]) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const flags = buffer[offset + 4];
|
|
47
|
+
const view = new DataView(buffer.buffer, buffer.byteOffset + offset + 5, 4);
|
|
48
|
+
const nextIndex = view.getUint32(0, false);
|
|
49
|
+
return {
|
|
50
|
+
done: (flags & 1) === 1,
|
|
51
|
+
nextIndex,
|
|
52
|
+
totalLength: STREAM_CONTROL_FRAME_SIZE,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
12
55
|
function getStreamUrl(name, runId, httpConfig) {
|
|
13
56
|
if (runId) {
|
|
14
57
|
return new URL(`${httpConfig.baseUrl}/v2/runs/${encodeURIComponent(runId)}/stream/${encodeURIComponent(name)}`);
|
|
@@ -126,21 +169,76 @@ export function createStreamer(config) {
|
|
|
126
169
|
}
|
|
127
170
|
},
|
|
128
171
|
async readFromStream(name, startIndex) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
172
|
+
let currentStartIndex = startIndex ?? 0;
|
|
173
|
+
// Cap reconnections to prevent infinite loops if the server
|
|
174
|
+
// never completes the stream. 50 reconnects at 2-min server
|
|
175
|
+
// timeout ≈ 100 minutes of streaming.
|
|
176
|
+
const MAX_RECONNECTS = 50;
|
|
177
|
+
let reconnectCount = 0;
|
|
178
|
+
const connect = async () => {
|
|
179
|
+
const httpConfig = await getHttpConfig(config);
|
|
180
|
+
// Use v3 to receive the stream control frame for reconnection.
|
|
181
|
+
const url = new URL(`${httpConfig.baseUrl}/v3/stream/${encodeURIComponent(name)}`);
|
|
182
|
+
url.searchParams.set('startIndex', String(currentStartIndex));
|
|
183
|
+
const response = await fetch(url, {
|
|
184
|
+
headers: httpConfig.headers,
|
|
185
|
+
});
|
|
186
|
+
if (!response.ok) {
|
|
187
|
+
throw new Error(`Failed to fetch stream: ${response.status}`);
|
|
188
|
+
}
|
|
189
|
+
if (!response.body) {
|
|
190
|
+
throw new Error('No response body for stream');
|
|
191
|
+
}
|
|
192
|
+
return response;
|
|
193
|
+
};
|
|
194
|
+
// Read the entire response as bytes, then strip any trailing
|
|
195
|
+
// control frame. This avoids the complexity of hold-back buffering
|
|
196
|
+
// inside a ReadableStream pull loop, which interacts poorly with
|
|
197
|
+
// the proxy and byte-stream wrappers in production.
|
|
198
|
+
const readFull = async () => {
|
|
199
|
+
const response = await connect();
|
|
200
|
+
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
201
|
+
const control = parseStreamControlFrame(buffer);
|
|
202
|
+
if (control) {
|
|
203
|
+
const dataLen = buffer.length - control.totalLength;
|
|
204
|
+
return {
|
|
205
|
+
data: dataLen > 0 ? buffer.subarray(0, dataLen) : new Uint8Array(0),
|
|
206
|
+
control,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
return { data: buffer, control: null };
|
|
210
|
+
};
|
|
211
|
+
// Collect all data, transparently reconnecting on server timeout.
|
|
212
|
+
const parts = [];
|
|
213
|
+
for (;;) {
|
|
214
|
+
const { data, control } = await readFull();
|
|
215
|
+
if (data.length > 0) {
|
|
216
|
+
parts.push(data);
|
|
217
|
+
}
|
|
218
|
+
if (!control || control.done) {
|
|
219
|
+
// Stream complete or no control frame (older server).
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
// Timeout — reconnect from the next chunk index.
|
|
223
|
+
reconnectCount++;
|
|
224
|
+
if (reconnectCount > MAX_RECONNECTS) {
|
|
225
|
+
throw new Error(`Stream exceeded maximum reconnection attempts (${MAX_RECONNECTS})`);
|
|
226
|
+
}
|
|
227
|
+
currentStartIndex = control.nextIndex;
|
|
133
228
|
}
|
|
134
|
-
|
|
135
|
-
|
|
229
|
+
// Return a ReadableStream that emits the collected data.
|
|
230
|
+
let emitted = false;
|
|
231
|
+
return new ReadableStream({
|
|
232
|
+
pull(controller) {
|
|
233
|
+
if (!emitted) {
|
|
234
|
+
emitted = true;
|
|
235
|
+
for (const part of parts) {
|
|
236
|
+
controller.enqueue(part);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
controller.close();
|
|
240
|
+
},
|
|
136
241
|
});
|
|
137
|
-
if (!response.ok) {
|
|
138
|
-
throw new Error(`Failed to fetch stream: ${response.status}`);
|
|
139
|
-
}
|
|
140
|
-
if (!response.body) {
|
|
141
|
-
throw new Error('No response body for stream');
|
|
142
|
-
}
|
|
143
|
-
return response.body;
|
|
144
242
|
},
|
|
145
243
|
async getStreamChunks(name, runId, options) {
|
|
146
244
|
const params = new URLSearchParams();
|
package/dist/streamer.js.map
CHANGED
|
@@ -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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","sourcesContent":["import type {\n GetChunksOptions,\n StreamChunksResponse,\n Streamer,\n StreamInfoResponse,\n} from '@workflow/world';\nimport { z } from 'zod';\nimport {\n type APIConfig,\n getHttpConfig,\n type HttpConfig,\n makeRequest,\n} from './utils.js';\n\n/**\n * Maximum number of chunks per request, matching the server-side\n * MAX_CHUNKS_PER_BATCH. Larger batches are split into multiple requests.\n */\nexport const MAX_CHUNKS_PER_REQUEST = 1000;\n\n// Streaming calls use plain fetch() without the undici dispatcher.\n// The dispatcher's retry logic doesn't apply well to streaming operations\n// (partial writes, long-lived reads), and duplex streams are incompatible\n// with undici's experimental H2 support.\n\n/**\n * Stream control frame constants, mirroring workflow-server's format.\n *\n * Control frame (13 bytes):\n * [0-3] Zero-frame marker (0x00 0x00 0x00 0x00)\n * [4] Flags — bit 0: done (1 = complete, 0 = timeout/reconnect)\n * [5-8] nextIndex — big-endian uint32, chunk index to resume from\n * [9-12] Magic footer — \"WFCT\" (0x57 0x46 0x43 0x54)\n */\nexport const STREAM_CONTROL_FRAME_SIZE = 13;\nconst STREAM_CONTROL_MAGIC = new Uint8Array([0x57, 0x46, 0x43, 0x54]);\n\nexport interface StreamControlFrame {\n done: boolean;\n nextIndex: number;\n}\n\n/**\n * Try to parse a stream control frame from the tail of a buffer.\n * Returns the parsed frame and the byte length of the control data,\n * or null if no valid control frame is present.\n */\nexport function parseStreamControlFrame(\n buffer: Uint8Array\n): (StreamControlFrame & { totalLength: number }) | null {\n if (buffer.length < STREAM_CONTROL_FRAME_SIZE) return null;\n\n const offset = buffer.length - STREAM_CONTROL_FRAME_SIZE;\n\n // Check zero-frame marker (bytes 0-3 must be 0x00)\n if (\n buffer[offset] !== 0 ||\n buffer[offset + 1] !== 0 ||\n buffer[offset + 2] !== 0 ||\n buffer[offset + 3] !== 0\n ) {\n return null;\n }\n\n // Check magic footer at bytes 9-12\n if (\n buffer[offset + 9] !== STREAM_CONTROL_MAGIC[0] ||\n buffer[offset + 10] !== STREAM_CONTROL_MAGIC[1] ||\n buffer[offset + 11] !== STREAM_CONTROL_MAGIC[2] ||\n buffer[offset + 12] !== STREAM_CONTROL_MAGIC[3]\n ) {\n return null;\n }\n\n const flags = buffer[offset + 4];\n const view = new DataView(buffer.buffer, buffer.byteOffset + offset + 5, 4);\n const nextIndex = view.getUint32(0, false);\n\n return {\n done: (flags & 1) === 1,\n nextIndex,\n totalLength: STREAM_CONTROL_FRAME_SIZE,\n };\n}\n\nfunction getStreamUrl(\n name: string,\n runId: string | undefined,\n httpConfig: HttpConfig\n) {\n if (runId) {\n return new URL(\n `${httpConfig.baseUrl}/v2/runs/${encodeURIComponent(runId)}/stream/${encodeURIComponent(name)}`\n );\n }\n return new URL(`${httpConfig.baseUrl}/v2/stream/${encodeURIComponent(name)}`);\n}\n\n/**\n * Encode multiple chunks into a length-prefixed binary format.\n * Format: [4 bytes big-endian length][chunk bytes][4 bytes length][chunk bytes]...\n *\n * This preserves chunk boundaries so the server can store them as separate\n * chunks, maintaining correct startIndex semantics for readers.\n *\n * @internal Exported for testing purposes\n */\nexport function encodeMultiChunks(chunks: (string | Uint8Array)[]): Uint8Array {\n const encoder = new TextEncoder();\n\n // Convert all chunks to Uint8Array and calculate total size\n const binaryChunks: Uint8Array[] = [];\n let totalSize = 0;\n\n for (const chunk of chunks) {\n const binary = typeof chunk === 'string' ? encoder.encode(chunk) : chunk;\n binaryChunks.push(binary);\n totalSize += 4 + binary.length; // 4 bytes for length prefix\n }\n\n // Allocate buffer and write length-prefixed chunks\n const result = new Uint8Array(totalSize);\n const view = new DataView(result.buffer);\n let offset = 0;\n\n for (const binary of binaryChunks) {\n view.setUint32(offset, binary.length, false); // big-endian\n offset += 4;\n result.set(binary, offset);\n offset += binary.length;\n }\n\n return result;\n}\n\nconst StreamInfoResponseSchema = z.object({\n tailIndex: z.number(),\n done: z.boolean(),\n});\n\n/**\n * Zod schema for the paginated stream chunks response from the server.\n * When using CBOR (the default for makeRequest), chunk data arrives as\n * native Uint8Array byte strings — no base64 decoding required.\n */\nconst StreamChunksResponseSchema = z.object({\n data: z.array(\n z.object({\n index: z.number(),\n data: z.instanceof(Uint8Array),\n })\n ),\n cursor: z.string().nullable(),\n hasMore: z.boolean(),\n done: z.boolean(),\n});\n\n/** Creates the HTTP-backed streamer that talks to workflow-server. */\nexport function createStreamer(config?: APIConfig): Streamer {\n return {\n async writeToStream(\n name: string,\n runId: string | Promise<string>,\n chunk: string | Uint8Array\n ) {\n // Await runId if it's a promise to ensure proper flushing\n const resolvedRunId = await runId;\n\n const httpConfig = await getHttpConfig(config);\n const response = await fetch(\n getStreamUrl(name, resolvedRunId, httpConfig),\n {\n method: 'PUT',\n body: chunk,\n headers: httpConfig.headers,\n }\n );\n const text = await response.text();\n if (!response.ok) {\n throw new Error(\n `Stream write failed: HTTP ${response.status}: ${text}`\n );\n }\n },\n\n async writeToStreamMulti(\n name: string,\n runId: string | Promise<string>,\n chunks: (string | Uint8Array)[]\n ) {\n if (chunks.length === 0) return;\n\n // Await runId if it's a promise to ensure proper flushing\n const resolvedRunId = await runId;\n\n const httpConfig = await getHttpConfig(config);\n\n // Signal to server that this is a multi-chunk batch\n httpConfig.headers.set('X-Stream-Multi', 'true');\n\n // Send in pages of MAX_CHUNKS_PER_REQUEST to stay within the\n // server's per-batch limit (MAX_CHUNKS_PER_BATCH).\n // Note: for batches spanning multiple pages, atomicity is relaxed —\n // earlier pages may persist while a later page fails. The caller\n // retains the full buffer on error, so chunks from successful pages\n // will be re-sent on retry, producing duplicates. This is acceptable\n // because the alternative (400 on all >1000 chunk flushes) is worse,\n // and the scenario requires a network failure mid-batch.\n for (let i = 0; i < chunks.length; i += MAX_CHUNKS_PER_REQUEST) {\n const batch = chunks.slice(i, i + MAX_CHUNKS_PER_REQUEST);\n const body = encodeMultiChunks(batch);\n const response = await fetch(\n getStreamUrl(name, resolvedRunId, httpConfig),\n {\n method: 'PUT',\n body,\n headers: httpConfig.headers,\n }\n );\n const text = await response.text();\n if (!response.ok) {\n throw new Error(\n `Stream write failed: HTTP ${response.status}: ${text}`\n );\n }\n }\n },\n\n async closeStream(name: string, runId: string | Promise<string>) {\n // Await runId if it's a promise to ensure proper flushing\n const resolvedRunId = await runId;\n\n const httpConfig = await getHttpConfig(config);\n httpConfig.headers.set('X-Stream-Done', 'true');\n const response = await fetch(\n getStreamUrl(name, resolvedRunId, httpConfig),\n {\n method: 'PUT',\n headers: httpConfig.headers,\n }\n );\n const text = await response.text();\n if (!response.ok) {\n throw new Error(\n `Stream close failed: HTTP ${response.status}: ${text}`\n );\n }\n },\n\n async readFromStream(name: string, startIndex?: number) {\n let currentStartIndex = startIndex ?? 0;\n\n // Cap reconnections to prevent infinite loops if the server\n // never completes the stream. 50 reconnects at 2-min server\n // timeout ≈ 100 minutes of streaming.\n const MAX_RECONNECTS = 50;\n let reconnectCount = 0;\n\n const connect = async (): Promise<Response> => {\n const httpConfig = await getHttpConfig(config);\n // Use v3 to receive the stream control frame for reconnection.\n const url = new URL(\n `${httpConfig.baseUrl}/v3/stream/${encodeURIComponent(name)}`\n );\n url.searchParams.set('startIndex', String(currentStartIndex));\n const response = await fetch(url, {\n headers: httpConfig.headers,\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch stream: ${response.status}`);\n }\n if (!response.body) {\n throw new Error('No response body for stream');\n }\n return response;\n };\n\n // Read the entire response as bytes, then strip any trailing\n // control frame. This avoids the complexity of hold-back buffering\n // inside a ReadableStream pull loop, which interacts poorly with\n // the proxy and byte-stream wrappers in production.\n const readFull = async (): Promise<{\n data: Uint8Array;\n control: (StreamControlFrame & { totalLength: number }) | null;\n }> => {\n const response = await connect();\n const buffer = new Uint8Array(await response.arrayBuffer());\n const control = parseStreamControlFrame(buffer);\n if (control) {\n const dataLen = buffer.length - control.totalLength;\n return {\n data: dataLen > 0 ? buffer.subarray(0, dataLen) : new Uint8Array(0),\n control,\n };\n }\n return { data: buffer, control: null };\n };\n\n // Collect all data, transparently reconnecting on server timeout.\n const parts: Uint8Array[] = [];\n for (;;) {\n const { data, control } = await readFull();\n if (data.length > 0) {\n parts.push(data);\n }\n\n if (!control || control.done) {\n // Stream complete or no control frame (older server).\n break;\n }\n\n // Timeout — reconnect from the next chunk index.\n reconnectCount++;\n if (reconnectCount > MAX_RECONNECTS) {\n throw new Error(\n `Stream exceeded maximum reconnection attempts (${MAX_RECONNECTS})`\n );\n }\n currentStartIndex = control.nextIndex;\n }\n\n // Return a ReadableStream that emits the collected data.\n let emitted = false;\n return new ReadableStream<Uint8Array>({\n pull(controller) {\n if (!emitted) {\n emitted = true;\n for (const part of parts) {\n controller.enqueue(part);\n }\n }\n controller.close();\n },\n });\n },\n\n async getStreamChunks(\n name: string,\n runId: string,\n options?: GetChunksOptions\n ): Promise<StreamChunksResponse> {\n const params = new URLSearchParams();\n if (options?.limit != null) {\n params.set('limit', String(options.limit));\n }\n if (options?.cursor) {\n params.set('cursor', options.cursor);\n }\n const qs = params.toString();\n const endpoint = `/v2/runs/${encodeURIComponent(runId)}/streams/${encodeURIComponent(name)}/chunks${qs ? `?${qs}` : ''}`;\n return makeRequest({\n endpoint,\n config,\n schema: StreamChunksResponseSchema,\n });\n },\n\n async getStreamInfo(\n name: string,\n runId: string\n ): Promise<StreamInfoResponse> {\n const endpoint = `/v2/runs/${encodeURIComponent(runId)}/streams/${encodeURIComponent(name)}/info`;\n return makeRequest({\n endpoint,\n config,\n schema: StreamInfoResponseSchema,\n });\n },\n\n async listStreamsByRunId(runId: string) {\n const httpConfig = await getHttpConfig(config);\n const url = new URL(\n `${httpConfig.baseUrl}/v2/runs/${encodeURIComponent(runId)}/streams`\n );\n const response = await fetch(url, {\n headers: httpConfig.headers,\n });\n if (!response.ok) {\n throw new Error(`Failed to list streams: ${response.status}`);\n }\n return (await response.json()) as string[];\n },\n };\n}\n"]}
|
package/dist/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAkBA,kDAAkD;AAClD,IAAI,cAAc,GAAsC,IAAI,CAAC;AAE7D,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,IAAI,aAAa,GAAsC,IAAI,CAAC;AAE5D,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/C,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,QAAgB,EAChB,GAAG,IAEqD;IAExD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAChB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;QAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;gBAC/B,OAAO,EAAG,CAAW,CAAC,OAAO;aAC9B,CAAC,CAAC;YACH,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,iDAAiD;AACjD,0FAA0F;AAC1F,SAAS,kBAAkB,CAAI,GAAG,KAAe;IAC/C,OAAO,CAAC,KAAQ,EAAE,EAAE,CAClB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CACjD,qBAAqB,CACtB,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAS,UAAU,CAAC,CAAC;AAE9D,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAS,gBAAgB,CAAC,CAAC;AAE1E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAS,aAAa,CAAC,CAAC;AAEpE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CACtD,2BAA2B,CAC5B,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAS,YAAY,CAAC,CAAC;AAElE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAChD,6BAA6B,CAC9B,CAAC;AAEF,yEAAyE;AACzE,kEAAkE;AAElE,wFAAwF;AACxF,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAS,cAAc,CAAC,CAAC;AAEtE,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAS,YAAY,CAAC,CAAC;AAElE,oDAAoD;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAS,aAAa,CAAC,CAAC;AAEpE,kDAAkD;AAClD,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAS,YAAY,CAAC,CAAC","sourcesContent":["/**\n * Minimal telemetry utilities for world-vercel package.\n *\n * NOTE: This module intentionally duplicates semantic conventions from @workflow/core\n * to avoid a circular dependency (world-vercel cannot depend on core).\n * If you update conventions here, ensure @workflow/core/telemetry/semantic-conventions.ts\n * remains synchronized.\n *\n * NOTE: Unlike the trace() function in @workflow/core, this implementation does not\n * have special handling for WorkflowSuspension errors because world-vercel operates\n * at the HTTP layer and never encounters workflow suspension effects.\n *\n * IMPORTANT: This module uses the same tracer name 'workflow' as @workflow/core to ensure\n * all spans are reported under the parent application's service, not as a separate service.\n */\nimport type * as api from '@opentelemetry/api';\nimport type { Span, SpanKind, SpanOptions } from '@opentelemetry/api';\n\n// Lazy load OpenTelemetry API to make it optional\nlet otelApiPromise: Promise<typeof api | null> | null = null;\n\nasync function getOtelApi(): Promise<typeof api | null> {\n if (!otelApiPromise) {\n otelApiPromise = import('@opentelemetry/api').catch(() => null);\n }\n return otelApiPromise;\n}\n\nlet tracerPromise: Promise<api.Tracer | null> | null = null;\n\nasync function getTracer(): Promise<api.Tracer | null> {\n if (!tracerPromise) {\n tracerPromise = getOtelApi().then((otel) =>\n otel ? otel.trace.getTracer('workflow') : null\n );\n }\n return tracerPromise;\n}\n\n/**\n * Wrap an async function with a trace span.\n * No-op if OpenTelemetry is not available.\n */\nexport async function trace<T>(\n spanName: string,\n ...args:\n | [fn: (span?: Span) => Promise<T>]\n | [opts: SpanOptions, fn: (span?: Span) => Promise<T>]\n): Promise<T> {\n const [tracer, otel] = await Promise.all([getTracer(), getOtelApi()]);\n const { fn, opts } =\n typeof args[0] === 'function'\n ? { fn: args[0], opts: {} }\n : { fn: args[1], opts: args[0] };\n if (!fn) throw new Error('Function to trace must be provided');\n\n if (!tracer || !otel) {\n return await fn();\n }\n\n return tracer.startActiveSpan(spanName, opts, async (span) => {\n try {\n const result = await fn(span);\n span.setStatus({ code: otel.SpanStatusCode.OK });\n return result;\n } catch (e) {\n span.setStatus({\n code: otel.SpanStatusCode.ERROR,\n message: (e as Error).message,\n });\n throw e;\n } finally {\n span.end();\n }\n });\n}\n\n/**\n * Get SpanKind enum value by name.\n * Returns undefined if OpenTelemetry is not available.\n */\nexport async function getSpanKind(\n field: keyof typeof SpanKind\n): Promise<SpanKind | undefined> {\n const otel = await getOtelApi();\n if (!otel) return undefined;\n return otel.SpanKind[field];\n}\n\n// Semantic conventions for World/Storage tracing\n// Standard OTEL conventions: https://opentelemetry.io/docs/specs/semconv/http/http-spans/\nfunction SemanticConvention<T>(...names: string[]) {\n return (value: T) =>\n Object.fromEntries(names.map((name) => [name, value] as const));\n}\n\n/** HTTP request method (standard OTEL: http.request.method) */\nexport const HttpRequestMethod = SemanticConvention<string>(\n 'http.request.method'\n);\n\n/** Full URL of the request (standard OTEL: url.full) */\nexport const UrlFull = SemanticConvention<string>('url.full');\n\n/** Server hostname (standard OTEL: server.address) */\nexport const ServerAddress = SemanticConvention<string>('server.address');\n\n/** Server port (standard OTEL: server.port) */\nexport const ServerPort = SemanticConvention<number>('server.port');\n\n/** HTTP response status code (standard OTEL: http.response.status_code) */\nexport const HttpResponseStatusCode = SemanticConvention<number>(\n 'http.response.status_code'\n);\n\n/** Error type when request fails (standard OTEL: error.type) */\nexport const ErrorType = SemanticConvention<string>('error.type');\n\n/** Format used for parsing response body (cbor or json) */\nexport const WorldParseFormat = SemanticConvention<'cbor' | 'json'>(\n 'workflow.world.parse.format'\n);\n\n// RPC/Peer Service attributes - For service maps and dependency tracking\n// See: https://opentelemetry.io/docs/specs/semconv/rpc/rpc-spans/\n\n/** The remote service name for Datadog service maps (Datadog-specific: peer.service) */\nexport const PeerService = SemanticConvention<string>('peer.service');\n\n/** RPC system identifier (standard OTEL: rpc.system) */\nexport const RpcSystem = SemanticConvention<string>('rpc.system');\n\n/** RPC service name (standard OTEL: rpc.service) */\nexport const RpcService = SemanticConvention<string>('rpc.service');\n\n/** RPC method name (standard OTEL: rpc.method) */\nexport const RpcMethod = SemanticConvention<string>('rpc.method');\n"]}
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import os from 'node:os';\nimport { inspect } from 'node:util';\nimport { getVercelOidcToken } from '@vercel/oidc';\nimport {\n EntityConflictError,\n RunExpiredError,\n ThrottleError,\n TooEarlyError,\n WorkflowWorldError,\n} from '@workflow/errors';\nimport { type StructuredError, StructuredErrorSchema } from '@workflow/world';\nimport { decode, encode } from 'cbor-x';\nimport type { z } from 'zod';\nimport { getDispatcher } from './http-client.js';\nimport {\n ErrorType,\n getSpanKind,\n HttpRequestMethod,\n HttpResponseStatusCode,\n PeerService,\n RpcService,\n RpcSystem,\n ServerAddress,\n ServerPort,\n trace,\n UrlFull,\n WorldParseFormat,\n} from './telemetry.js';\nimport { version } from './version.js';\n\n/**\n * Lightweight debug logger for HTTP requests. Activated when the DEBUG\n * env var contains \"workflow:\" or is \"*\".\n *\n * Note: this does not implement full `debug` module semantics (e.g.\n * comma-separated globs, negation with `-`). It is a simple check\n * sufficient for enabling HTTP-level debug output.\n */\nconst HTTP_DEBUG_ENABLED =\n typeof process !== 'undefined' &&\n typeof process.env.DEBUG === 'string' &&\n (process.env.DEBUG.includes('workflow:') || process.env.DEBUG === '*');\n\nfunction httpLog(\n method: string,\n endpoint: string,\n status: number,\n ms: number\n): void {\n if (HTTP_DEBUG_ENABLED) {\n console.debug(\n `[workflow:world-vercel:http] ${method} ${endpoint} -> ${status} (${ms}ms)`\n );\n }\n}\n\n/**\n * Hard-coded workflow-server URL override for testing.\n * Set this to test against a different workflow-server version.\n * Leave empty string for production (uses default vercel-workflow.com).\n *\n * Example: 'https://workflow-server-git-branch-name.vercel.sh'\n */\nconst WORKFLOW_SERVER_URL_OVERRIDE = '';\n\nexport interface APIConfig {\n token?: string;\n headers?: RequestInit['headers'];\n projectConfig?: {\n /** The real Vercel project ID (e.g., prj_xxx) */\n projectId?: string;\n /** The project name/slug (e.g., my-app), used for dashboard URLs */\n projectName?: string;\n teamId?: string;\n environment?: string;\n };\n}\n\nexport const DEFAULT_RESOLVE_DATA_OPTION = 'all';\n\n/**\n * Helper to serialize error into a JSON string in the error field.\n * The error field can be either:\n * - A plain string (legacy format, just the error message)\n * - A JSON string with { message, stack, code } (new format)\n */\nexport function serializeError<T extends { error?: StructuredError }>(\n data: T\n): Omit<T, 'error'> & { error?: string } {\n const { error, ...rest } = data;\n\n // If we have an error, serialize as JSON string\n if (error !== undefined) {\n return {\n ...rest,\n error: JSON.stringify({\n message: error.message,\n stack: error.stack,\n code: error.code,\n }),\n } as Omit<T, 'error'> & { error: string };\n }\n\n return data as Omit<T, 'error'>;\n}\n\n/**\n * Helper to deserialize error field from the backend into a StructuredError object.\n * Handles multiple formats from the backend:\n * - If error is already a structured object → validate and use directly\n * - If error is a JSON string with {message, stack, code} → parse into StructuredError\n * - If error is a plain string → treat as error message with no stack\n * - If no error → undefined\n *\n * This function transforms objects from wire format (where error may be a JSON string\n * or already structured) to domain format (where error is a StructuredError object).\n * The generic type parameter should be the expected output type (WorkflowRun or Step).\n *\n * Note: The type assertion is necessary because the wire format types from Zod schemas\n * have `error?: string | StructuredError` while the domain types have complex error types\n * (e.g., discriminated unions with `error: void` or `error: StructuredError` depending on\n * status), but the transformation preserves all other fields correctly.\n */\nexport function deserializeError<T extends Record<string, any>>(obj: any): T {\n const { error, errorCode, ...rest } = obj;\n\n if (!error) {\n return obj as T;\n }\n\n // errorCode is stored as a separate inline field on the run entity (not\n // inside errorRef). Merge it into StructuredError.code so consumers see it.\n // If the error already has a code from the ref, errorCode takes precedence.\n\n // If error is already an object (new format), validate and use directly\n if (typeof error === 'object' && error !== null) {\n const result = StructuredErrorSchema.safeParse(error);\n if (result.success) {\n return {\n ...rest,\n error: {\n message: result.data.message,\n stack: result.data.stack,\n code: errorCode ?? result.data.code,\n },\n } as T;\n }\n // Fall through to treat as unknown format\n }\n\n // If error is a string, try to parse as structured error JSON\n if (typeof error === 'string') {\n try {\n const parsed = StructuredErrorSchema.parse(JSON.parse(error));\n return {\n ...rest,\n error: {\n message: parsed.message,\n stack: parsed.stack,\n code: errorCode ?? parsed.code,\n },\n } as T;\n } catch {\n // Backwards compatibility: error is just a plain string\n return {\n ...rest,\n error: {\n message: error,\n code: errorCode,\n },\n } as T;\n }\n }\n\n // Unknown format - return as-is and let downstream handle it\n return obj as T;\n}\n\nconst getUserAgent = () => {\n const deploymentId = process.env.VERCEL_DEPLOYMENT_ID;\n if (deploymentId) {\n return `@workflow/world-vercel/${version} node-${process.version} ${os.platform()} (${os.arch()}) ${deploymentId}`;\n }\n return `@workflow/world-vercel/${version} node-${process.version} ${os.platform()} (${os.arch()})`;\n};\n\nexport interface HttpConfig {\n baseUrl: string;\n headers: Headers;\n usingProxy: boolean;\n}\n\nexport const getHttpUrl = (\n config?: APIConfig\n): { baseUrl: string; usingProxy: boolean } => {\n const projectConfig = config?.projectConfig;\n const defaultHost =\n WORKFLOW_SERVER_URL_OVERRIDE || 'https://vercel-workflow.com';\n const customProxyUrl = process.env.WORKFLOW_VERCEL_BACKEND_URL;\n const defaultProxyUrl = 'https://api.vercel.com/v1/workflow';\n // Use proxy when we have project config (for authentication via Vercel API)\n const usingProxy = Boolean(projectConfig?.projectId && projectConfig?.teamId);\n // When using proxy, requests go through api.vercel.com (with x-vercel-workflow-api-url header if override is set)\n // When not using proxy, use the default workflow-server URL (with /api path appended)\n const baseUrl = usingProxy\n ? customProxyUrl || defaultProxyUrl\n : `${defaultHost}/api`;\n return { baseUrl, usingProxy };\n};\n\nexport const getHeaders = (\n config: APIConfig | undefined,\n options: { usingProxy: boolean }\n): Headers => {\n const projectConfig = config?.projectConfig;\n const headers = new Headers(config?.headers);\n headers.set('User-Agent', getUserAgent());\n if (projectConfig) {\n headers.set(\n 'x-vercel-environment',\n projectConfig.environment || 'production'\n );\n if (projectConfig.projectId) {\n headers.set('x-vercel-project-id', projectConfig.projectId);\n }\n if (projectConfig.teamId) {\n headers.set('x-vercel-team-id', projectConfig.teamId);\n }\n }\n // Only set workflow-api-url header when using the proxy, since the proxy\n // forwards it to the workflow-server. When not using proxy, requests go\n // directly to the workflow-server so this header has no effect.\n if (WORKFLOW_SERVER_URL_OVERRIDE && options.usingProxy) {\n headers.set('x-vercel-workflow-api-url', WORKFLOW_SERVER_URL_OVERRIDE);\n }\n return headers;\n};\n\nexport async function getHttpConfig(config?: APIConfig): Promise<HttpConfig> {\n const { baseUrl, usingProxy } = getHttpUrl(config);\n const headers = getHeaders(config, { usingProxy });\n const token = config?.token ?? (await getVercelOidcToken());\n if (token) {\n headers.set('Authorization', `Bearer ${token}`);\n }\n return { baseUrl, headers, usingProxy };\n}\n\nexport async function makeRequest<T>({\n endpoint,\n options = {},\n config = {},\n schema,\n data,\n onResponse,\n}: {\n endpoint: string;\n options?: Omit<RequestInit, 'body'>;\n config?: APIConfig;\n schema: z.ZodSchema<T>;\n /** Request body data - will be CBOR encoded */\n data?: unknown;\n /** Optional callback invoked with the raw Response before body consumption. Use to read response headers. */\n onResponse?: (response: Response) => void;\n}): Promise<T> {\n const method = options.method || 'GET';\n const { baseUrl, headers } = await getHttpConfig(config);\n const url = `${baseUrl}${endpoint}`;\n\n // Parse server address and port from URL for OTEL attributes\n let serverAddress: string | undefined;\n let serverPort: number | undefined;\n try {\n const parsedUrl = new URL(url);\n serverAddress = parsedUrl.hostname;\n serverPort = parsedUrl.port\n ? parseInt(parsedUrl.port, 10)\n : parsedUrl.protocol === 'https:'\n ? 443\n : 80;\n } catch {\n // URL parsing failed, skip these attributes\n }\n\n // Standard OTEL span name for HTTP client: \"{method}\"\n // See: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name\n return trace(\n `http ${method}`,\n { kind: await getSpanKind('CLIENT') },\n async (span) => {\n // Set standard OTEL HTTP client attributes\n span?.setAttributes({\n ...HttpRequestMethod(method),\n ...UrlFull(url),\n ...(serverAddress && ServerAddress(serverAddress)),\n ...(serverPort && ServerPort(serverPort)),\n // Peer service for Datadog service maps\n ...PeerService('workflow-server'),\n ...RpcSystem('http'),\n ...RpcService('workflow-server'),\n });\n\n headers.set('Accept', 'application/cbor');\n // NOTE: Add a unique header to bypass RSC request memoization.\n // See: https://github.com/vercel/workflow/issues/618\n headers.set('X-Request-Time', Date.now().toString());\n\n // Encode body as CBOR if data is provided\n let body: Buffer | undefined;\n if (data !== undefined) {\n headers.set('Content-Type', 'application/cbor');\n body = encode(data);\n }\n\n const request = new Request(url, {\n ...options,\n body,\n headers,\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit\n const fetchStart = Date.now();\n const response = await fetch(request, {\n dispatcher: getDispatcher(),\n } as any);\n const fetchMs = Date.now() - fetchStart;\n\n httpLog(method, endpoint, response.status, fetchMs);\n\n span?.setAttributes({\n ...HttpResponseStatusCode(response.status),\n });\n\n if (!response.ok) {\n const errorData: { message?: string; code?: string } =\n await parseResponseBody(response)\n .then((r) => r.data as { message?: string; code?: string })\n .catch(() => ({}));\n if (process.env.DEBUG) {\n const stringifiedHeaders = Array.from(headers.entries())\n .filter(([key]) => key.toLowerCase() !== 'authorization')\n .map(([key, value]: [string, string]) => `-H \"${key}: ${value}\"`)\n .join(' ');\n console.error(\n `Failed to fetch, reproduce with:\\ncurl -X ${request.method} ${stringifiedHeaders} \"${url}\"`\n );\n }\n\n // Parse Retry-After header (value is in seconds).\n // Used by both 425 (TooEarlyError) and 429 (ThrottleError).\n // Note: RetryAgent handles most 429 retries automatically, but this\n // catches the case where retries are exhausted.\n let retryAfter: number | undefined;\n const retryAfterHeader = response.headers.get('Retry-After');\n if (retryAfterHeader) {\n const parsed = parseInt(retryAfterHeader, 10);\n if (!Number.isNaN(parsed)) {\n retryAfter = parsed;\n }\n }\n\n const defaultMessage =\n errorData.message ||\n `${request.method} ${endpoint} -> HTTP ${response.status}: ${response.statusText}`;\n\n // Map specific HTTP status codes to semantic error types\n const throwWithTrace = (error: Error): never => {\n span?.setAttributes({\n ...ErrorType(errorData.code || `HTTP ${response.status}`),\n });\n span?.recordException?.(error);\n throw error;\n };\n\n if (response.status === 409) {\n throwWithTrace(new EntityConflictError(defaultMessage));\n }\n if (response.status === 410) {\n throwWithTrace(new RunExpiredError(defaultMessage));\n }\n if (response.status === 425) {\n throwWithTrace(new TooEarlyError(defaultMessage, { retryAfter }));\n }\n if (response.status === 429) {\n throwWithTrace(new ThrottleError(defaultMessage, { retryAfter }));\n }\n\n throwWithTrace(\n new WorkflowWorldError(defaultMessage, {\n url,\n status: response.status,\n code: errorData.code,\n retryAfter,\n })\n );\n }\n\n // Expose response headers to caller before consuming the body\n onResponse?.(response);\n\n // Parse the response body (CBOR or JSON) with tracing\n let parseResult: ParseResult;\n try {\n parseResult = await trace('world.parse', async (parseSpan) => {\n const result = await parseResponseBody(response);\n // Extract format and size from debug context for attributes\n const contentType = response.headers.get('Content-Type') || '';\n const isCbor = contentType.includes('application/cbor');\n parseSpan?.setAttributes({\n ...WorldParseFormat(isCbor ? 'cbor' : 'json'),\n });\n return result;\n });\n } catch (error) {\n const contentType = response.headers.get('Content-Type') || 'unknown';\n throw new WorkflowWorldError(\n `Failed to parse response body for ${request.method} ${endpoint} (Content-Type: ${contentType}):\\n\\n${error}`,\n { url, cause: error }\n );\n }\n\n // Validate against the schema with tracing\n const result = await trace('world.validate', async () => {\n const validationResult = schema.safeParse(parseResult.data);\n if (!validationResult.success) {\n const issues = validationResult.error.issues\n .map(\n (i) =>\n ` ${i.path.length > 0 ? i.path.join('.') : '<root>'}: ${i.message}`\n )\n .join('\\n');\n const debugContext = process.env.DEBUG\n ? `\\n\\nResponse context: ${parseResult.getDebugContext()}`\n : '';\n throw new WorkflowWorldError(\n `Schema validation failed for ${method} ${endpoint}:\\n${issues}${debugContext}`,\n { url, cause: validationResult.error }\n );\n }\n return validationResult.data;\n });\n\n return result;\n }\n );\n}\n\ninterface ParseResult {\n data: unknown;\n /** Lazily generates debug context for error messages (only called on failure) */\n getDebugContext: () => string;\n}\n\n/** Max length for response preview in error messages */\nconst MAX_PREVIEW_LENGTH = 500;\n\n/**\n * Create a truncated preview of data for error messages.\n */\nfunction createPreview(data: unknown): string {\n const str = inspect(data, { depth: 3, maxArrayLength: 10, breakLength: 120 });\n return str.length > MAX_PREVIEW_LENGTH\n ? `${str.slice(0, MAX_PREVIEW_LENGTH)}...`\n : str;\n}\n\n/**\n * Parse response body based on Content-Type header.\n * Supports both CBOR and JSON responses.\n * Returns parsed data along with a lazy debug context generator for error reporting.\n */\nasync function parseResponseBody(response: Response): Promise<ParseResult> {\n const contentType = response.headers.get('Content-Type') || '';\n\n if (contentType.includes('application/cbor')) {\n const buffer = await response.arrayBuffer();\n const data = decode(new Uint8Array(buffer));\n return {\n data,\n getDebugContext: () =>\n `Content-Type: ${contentType}, ${buffer.byteLength} bytes (CBOR), preview: ${createPreview(data)}`,\n };\n }\n\n // Fall back to JSON parsing\n const text = await response.text();\n const data = JSON.parse(text);\n return {\n data,\n getDebugContext: () =>\n `Content-Type: ${contentType}, ${text.length} bytes, preview: ${createPreview(data)}`,\n };\n}\n"]}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "4.1.
|
|
1
|
+
export declare const version = "4.1.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '4.1.1'\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/world-vercel",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"description": "Vercel platform World implementation for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"cbor-x": "1.6.0",
|
|
29
29
|
"undici": "7.22.0",
|
|
30
30
|
"zod": "4.3.6",
|
|
31
|
-
"@workflow/errors": "4.1.
|
|
32
|
-
"@workflow/world": "4.1.
|
|
31
|
+
"@workflow/errors": "4.1.1",
|
|
32
|
+
"@workflow/world": "4.1.1"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"@opentelemetry/api": "1"
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@types/node": "22.19.0",
|
|
45
45
|
"genversion": "3.2.0",
|
|
46
46
|
"vitest": "^4.0.18",
|
|
47
|
-
"@workflow/tsconfig": "4.0.1
|
|
47
|
+
"@workflow/tsconfig": "4.0.1"
|
|
48
48
|
},
|
|
49
49
|
"scripts": {
|
|
50
50
|
"build": "genversion --es6 src/version.ts && tsc",
|