@workglow/util 0.0.90 → 0.0.92

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/node.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/di/Container.ts", "../src/di/ServiceRegistry.ts", "../src/di/InputResolverRegistry.ts", "../src/events/EventEmitter.ts", "../src/utilities/BaseError.ts", "../src/graph/errors.ts", "../src/graph/graph.ts", "../src/graph/directedGraph.ts", "../src/graph/directedAcyclicGraph.ts", "../src/json-schema/FromSchema.ts", "../src/json-schema/SchemaUtils.ts", "../src/json-schema/SchemaValidation.ts", "../src/utilities/Misc.ts", "../src/utilities/objectOfArraysAsArrayOfObjects.ts", "../src/vector/TypedArray.ts", "../src/vector/Tensor.ts", "../src/vector/VectorSimilarityUtils.ts", "../src/vector/VectorUtils.ts", "../src/worker/WorkerManager.ts", "../src/worker/WorkerServer.ts", "../src/compress/compress.node.ts", "../src/crypto/Crypto.node.ts", "../src/media/image.ts", "../src/media/image.node.ts", "../src/worker/Worker.node.ts"],
3
+ "sources": ["../src/di/Container.ts", "../src/di/ServiceRegistry.ts", "../src/di/InputResolverRegistry.ts", "../src/events/EventEmitter.ts", "../src/utilities/BaseError.ts", "../src/graph/errors.ts", "../src/graph/graph.ts", "../src/graph/directedGraph.ts", "../src/graph/directedAcyclicGraph.ts", "../src/json-schema/FromSchema.ts", "../src/json-schema/SchemaUtils.ts", "../src/json-schema/SchemaValidation.ts", "../src/utilities/Misc.ts", "../src/utilities/objectOfArraysAsArrayOfObjects.ts", "../src/vector/TypedArray.ts", "../src/vector/Tensor.ts", "../src/vector/TypedArrayUtils.ts", "../src/vector/VectorSimilarityUtils.ts", "../src/vector/VectorUtils.ts", "../src/worker/WorkerManager.ts", "../src/worker/WorkerServer.ts", "../src/compress/compress.node.ts", "../src/crypto/Crypto.node.ts", "../src/media/image.ts", "../src/media/image.node.ts", "../src/worker/Worker.node.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Simple dependency injection container for managing service instances and dependencies\n */\nexport class Container {\n private services: Map<string, any> = new Map();\n private factories: Map<string, () => any> = new Map();\n private singletons: Set<string> = new Set();\n\n /**\n * Register a service factory\n * @param token The identifier token for the service\n * @param factory A factory function that creates the service\n * @param singleton Whether the service should be a singleton (created once)\n */\n register<T>(token: string, factory: () => T, singleton = true): void {\n this.factories.set(token, factory);\n if (singleton) {\n this.singletons.add(token);\n }\n }\n\n /**\n * Register an instance as a service\n * @param token The identifier token for the service\n * @param instance The instance to register\n */\n registerInstance<T>(token: string, instance: T): void {\n this.services.set(token, instance);\n this.singletons.add(token);\n }\n\n /**\n * Get a service by its token\n * @param token The identifier token for the service\n * @returns The service instance\n */\n get<T>(token: string): T {\n // Return existing instance if available\n if (this.services.has(token)) {\n return this.services.get(token) as T;\n }\n\n // Create new instance\n const factory = this.factories.get(token);\n if (!factory) {\n throw new Error(`Service not registered: ${String(token)}`);\n }\n\n const instance = factory();\n\n // Store singleton instances\n if (this.singletons.has(token)) {\n this.services.set(token, instance);\n }\n\n return instance as T;\n }\n\n /**\n * Check if a service is registered\n * @param token The identifier token for the service\n * @returns True if the service is registered\n */\n has(token: string): boolean {\n return this.services.has(token) || this.factories.has(token);\n }\n\n /**\n * Remove a service registration\n * @param token The identifier token for the service\n */\n remove(token: string): void {\n this.services.delete(token);\n this.factories.delete(token);\n this.singletons.delete(token);\n }\n\n /**\n * Create a child container that inherits registrations from the parent\n * @returns A new child container\n */\n createChildContainer(): Container {\n const child = new Container();\n\n // Copy all registrations to the child\n this.factories.forEach((factory, token) => {\n child.factories.set(token, factory);\n if (this.singletons.has(token)) {\n child.singletons.add(token);\n }\n });\n\n // Copy all singleton instances to the child\n this.services.forEach((service, token) => {\n if (this.singletons.has(token)) {\n child.services.set(token, service);\n child.singletons.add(token);\n }\n });\n\n return child;\n }\n}\n\n/**\n * Global container instance\n */\nexport const globalContainer = new Container();\n",
6
6
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Container, globalContainer } from \"./Container\";\n\n/**\n * Service token type for type-safe dependency injection\n */\nexport interface ServiceToken<T> {\n readonly _type: T;\n readonly id: string;\n}\n\n/**\n * Create a typed service token\n * @param id Unique identifier for the service\n * @returns A typed service token\n */\nexport function createServiceToken<T>(id: string): ServiceToken<T> {\n return { id, _type: null as any };\n}\n\n/**\n * Service registry for managing and accessing services\n */\nexport class ServiceRegistry {\n public container: Container;\n\n /**\n * Create a new service registry\n * @param container Optional container to use (defaults to global container)\n */\n constructor(container: Container = globalContainer) {\n this.container = container;\n }\n\n /**\n * Register a service factory\n * @param token Service token\n * @param factory Factory function to create the service\n * @param singleton Whether the service should be a singleton\n */\n register<T>(token: ServiceToken<T>, factory: () => T, singleton = true): void {\n this.container.register(token.id, factory, singleton);\n }\n\n /**\n * Register a service instance\n * @param token Service token\n * @param instance Service instance to register\n */\n registerInstance<T>(token: ServiceToken<T>, instance: T): void {\n this.container.registerInstance(token.id, instance);\n }\n\n /**\n * Get a service by its token\n * @param token Service token\n * @returns The service instance\n */\n get<T>(token: ServiceToken<T>): T {\n return this.container.get<T>(token.id);\n }\n\n /**\n * Check if a service is registered\n * @param token Service token\n * @returns True if the service is registered\n */\n has<T>(token: ServiceToken<T>): boolean {\n return this.container.has(token.id);\n }\n}\n\n/**\n * Global service registry instance\n */\nexport const globalServiceRegistry = new ServiceRegistry(globalContainer);\n",
@@ -18,17 +18,18 @@
18
18
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type Cursor<T> = {\n length: number;\n next: () => IteratorResult<T>;\n [Symbol.iterator]: () => Iterator<T>;\n};\n/**\n * Creates a proxy that treats an object-of-arrays as an array-of-objects.\n * It lazily computes each row when accessed and lets you update or add new rows.\n *\n * When adding a new object (either via .push or assignment to the next index),\n * the underlying arrays are updated accordingly.\n *\n * @param data An object whose properties are arrays (assumed to have equal lengths)\n * @returns A proxy that behaves like an array of objects backed by the input arrays\n */\nexport function objectOfArraysAsArrayOfObjects<T extends Record<string, any>>(data: {\n [K in keyof T]: T[K][];\n}): Array<T> & { cursor: () => Cursor<T> } {\n // Get all keys from the object-of-arrays.\n const keys = Object.keys(data) as (keyof T)[];\n // confirm that all arrays have the same length\n const length = data[keys[0]].length;\n for (const key of keys) {\n if (data[key].length !== length) {\n console.error(\"All arrays must have the same length\", key, data[key].length, length, data);\n throw new Error(\"All arrays must have the same length\");\n }\n }\n\n const indexSymbol = Symbol(\"index\");\n\n /**\n * Creates a live row proxy for the given index.\n * The proxy intercepts get/set operations so that reads and writes\n * go directly to data[key][index].\n */\n function createRowProxy(index: number): T & { [indexSymbol]: number } {\n let currentIndex = index;\n return new Proxy({} as T & { [indexSymbol]: number }, {\n get(_target, prop, receiver) {\n if (currentIndex < 0 || currentIndex >= data[keys[0]].length) {\n return undefined;\n }\n if (typeof prop === \"string\" && keys.includes(prop as keyof T)) {\n return data[prop as keyof T][currentIndex];\n }\n if (prop === indexSymbol) {\n return currentIndex;\n }\n return Reflect.get(_target, prop, receiver);\n },\n set(_target, prop, value, receiver) {\n if (currentIndex < 0 || currentIndex >= data[keys[0]].length) {\n return false;\n }\n if (typeof prop === \"string\" && keys.includes(prop as keyof T)) {\n data[prop as keyof T][currentIndex] = value;\n return true;\n }\n if (prop === indexSymbol) {\n currentIndex = value;\n return true;\n }\n return Reflect.set(_target, prop, value, receiver);\n },\n ownKeys(_target) {\n return keys as string[];\n },\n getOwnPropertyDescriptor(_target, prop) {\n if (typeof prop === \"string\" && keys.includes(prop as keyof T)) {\n return { enumerable: true, configurable: true };\n }\n return undefined;\n },\n });\n }\n\n function createCursor(): Cursor<T> {\n // Determine the keys and the effective number of rows.\n let currentIndex = 0;\n\n // The cursor object that will be updated for each row.\n const cursor = createRowProxy(0);\n\n const obj = {\n get length() {\n return data[keys[0]].length;\n },\n /**\n * Returns the next row via the cursor.\n */\n next(): IteratorResult<T> {\n if (currentIndex < length) {\n cursor[indexSymbol] = currentIndex;\n currentIndex++;\n return { done: false, value: cursor };\n } else {\n return { done: true, value: undefined as any };\n }\n },\n /**\n * Makes the object iterable.\n */\n [Symbol.iterator](): Iterator<T> {\n // Reset the cursor for a fresh iteration.\n currentIndex = 0;\n cursor[indexSymbol] = currentIndex;\n return obj;\n },\n };\n return obj as Cursor<T>;\n }\n\n // Helper: shallow equality comparison between two rows.\n function shallowEqual(index: number, row: T): boolean {\n for (const key of keys) {\n if (data[key][index] !== row[key]) return false;\n }\n return true;\n }\n\n return new Proxy([] as Array<T>, {\n get(target, prop, receiver) {\n // Always return the current length dynamically.\n if (prop === \"length\") {\n return data[keys[0]].length;\n }\n\n // Create a cursor iterator.\n if (prop === \"cursor\") {\n return function () {\n return createCursor();\n };\n }\n\n // Override reverse to reverse the underlying arrays.\n if (prop === \"reverse\") {\n return function () {\n for (const key of keys) {\n data[key].reverse();\n }\n return receiver;\n };\n }\n\n // Override push to add a new object to the underlying arrays.\n if (prop === \"push\") {\n return function (...args: T[]) {\n for (const item of args) {\n for (const key of keys) {\n data[key].push(item[key]);\n }\n }\n return data[keys[0]].length;\n };\n }\n\n // Override pop to remove the last row from the underlying arrays and return it.\n if (prop === \"pop\") {\n return function () {\n const len = data[keys[0]].length;\n if (len === 0) return undefined;\n const poppedRow = {} as T;\n // Remove last element from each array and assemble the row to return.\n for (const key of keys) {\n poppedRow[key] = data[key].pop() as T[keyof T];\n }\n return poppedRow;\n };\n }\n\n // Override unshift to add a new row (or rows) at the beginning.\n if (prop === \"unshift\") {\n return function (...args: T[]) {\n // To preserve order, iterate from the last argument to the first.\n for (let i = args.length - 1; i >= 0; i--) {\n const item = args[i];\n for (const key of keys) {\n data[key].unshift(item[key]);\n }\n }\n return data[keys[0]].length;\n };\n }\n\n // Override shift to remove the first row from the underlying arrays and return it.\n if (prop === \"shift\") {\n return function () {\n if (data[keys[0]].length === 0) return undefined;\n const shiftedRow = {} as T;\n for (const key of keys) {\n shiftedRow[key] = data[key].shift() as T[keyof T];\n }\n return shiftedRow;\n };\n }\n\n // Override splice to remove or replace elements at a specific index.\n if (prop === \"splice\") {\n return function (start: number, deleteCount?: number, ...items: T[]) {\n const len = data[keys[0]].length;\n // Normalize start index.\n if (start < 0) {\n start = len + start;\n if (start < 0) start = 0;\n }\n if (deleteCount === undefined) {\n deleteCount = len - start;\n }\n // For each key, perform splice and capture removed elements.\n const removedByKey: { [K in keyof T]: T[K][] } = {} as any;\n for (const key of keys) {\n removedByKey[key] = data[key].splice(\n start,\n deleteCount,\n ...items.map((item) => item[key])\n );\n }\n // Combine removed elements into an array of objects.\n const removed: T[] = [];\n for (let i = 0; i < deleteCount; i++) {\n const row = {} as T;\n for (const key of keys) {\n row[key] = removedByKey[key][i];\n }\n removed.push(row);\n }\n return removed;\n };\n }\n\n // Override sort to sort the underlying arrays.\n // TODO(str): This is a bit of a hack. We should probably use a more efficient\n // way to do this.\n if (prop === \"sort\") {\n return function (compareFn?: (a: T, b: T) => number) {\n // Build an array of rows.\n const rows = [...receiver];\n // Sort rows.\n rows.sort(compareFn);\n // Write back sorted rows.\n for (const key of keys) {\n data[key] = rows.map((row) => row[key]);\n }\n return receiver;\n };\n }\n\n // Non-mutating Methods: now rewritten as follows.\n if (prop === \"includes\") {\n return function (searchElement: T, fromIndex?: number) {\n const len = data[keys[0]].length;\n let start = fromIndex ?? 0;\n if (start < 0) {\n start = Math.max(0, len + start);\n }\n for (let i = start; i < len; i++) {\n if (shallowEqual(i, searchElement)) return true;\n }\n return false;\n };\n }\n if (prop === \"indexOf\") {\n return function (searchElement: T, fromIndex?: number) {\n const len = data[keys[0]].length;\n let start = fromIndex ?? 0;\n if (start < 0) {\n start = Math.max(0, len + start);\n }\n for (let i = start; i < len; i++) {\n if (shallowEqual(i, searchElement)) return i;\n }\n return -1;\n };\n }\n if (prop === \"lastIndexOf\") {\n return function (searchElement: T, fromIndex?: number) {\n const len = data[keys[0]].length;\n // Default start index is the last element.\n let start = fromIndex ?? len - 1;\n if (start < 0) {\n start = len + start;\n }\n for (let i = start; i >= 0; i--) {\n if (shallowEqual(i, searchElement)) return i;\n }\n return -1;\n };\n }\n\n // Non-mutating methods implemented via an array of object row proxies.\n if (prop === \"forEach\") {\n return function (callback: (value: T, index: number, array: T[]) => void, thisArg?: any) {\n return [...receiver].forEach(callback, thisArg);\n };\n }\n if (prop === \"map\") {\n return function (callback: (value: T, index: number, array: T[]) => any, thisArg?: any) {\n return [...receiver].map(callback, thisArg);\n };\n }\n if (prop === \"filter\") {\n return function (\n callback: (value: T, index: number, array: T[]) => boolean,\n thisArg?: any\n ) {\n return [...receiver].filter(callback, thisArg);\n };\n }\n if (prop === \"reduce\") {\n return function (\n callback: (accumulator: any, currentValue: T, currentIndex: number, array: T[]) => any,\n initialValue?: any\n ) {\n return [...receiver].reduce(callback, initialValue);\n };\n }\n if (prop === \"find\") {\n return function (\n callback: (value: T, index: number, array: T[]) => boolean,\n thisArg?: any\n ) {\n return [...receiver].find(callback, thisArg);\n };\n }\n if (prop === \"every\") {\n return function (\n callback: (value: T, index: number, array: T[]) => boolean,\n thisArg?: any\n ) {\n return [...receiver].every(callback, thisArg);\n };\n }\n if (prop === \"some\") {\n return function (\n callback: (value: T, index: number, array: T[]) => boolean,\n thisArg?: any\n ) {\n return [...receiver].some(callback, thisArg);\n };\n }\n\n // When a numeric index is accessed, build and return the corresponding row.\n if (typeof prop === \"string\" && !isNaN(Number(prop))) {\n const index = Number(prop);\n if (index < 0 || index >= data[keys[0]].length) {\n return undefined;\n }\n return createRowProxy(index);\n }\n\n // Allow iteration over the rows.\n if (prop === Symbol.iterator) {\n return function* () {\n for (let i = 0; i < data[keys[0]].length; i++) {\n yield createRowProxy(i);\n }\n };\n }\n\n // Delegate any other property access.\n return Reflect.get(target, prop, receiver);\n },\n set(target, prop, value, receiver) {\n // Intercept numeric index assignments.\n if (typeof prop === \"string\" && !isNaN(Number(prop))) {\n const index = Number(prop);\n if (index === data[keys[0]].length) {\n // Appending a new row.\n for (const key of keys) {\n data[key].push(value[key]);\n }\n return true;\n } else if (index < data[keys[0]].length) {\n // Updating an existing row.\n for (const key of keys) {\n if (value.hasOwnProperty(key)) {\n data[key][index] = value[key];\n }\n }\n return true;\n }\n }\n return Reflect.set(target, prop, value, receiver);\n },\n // Intercept deletion of properties to remove a row from each underlying array.\n deleteProperty(target, prop) {\n if (typeof prop === \"string\" && !isNaN(Number(prop))) {\n const index = Number(prop);\n if (index >= 0 && index < data[keys[0]].length) {\n // Remove the element at this index from every underlying array.\n for (const key of keys) {\n // slice mutates the array in place\n data[key].splice(index, 1);\n }\n return true;\n }\n }\n return Reflect.deleteProperty(target, prop);\n },\n }) as Array<T> & { cursor: () => Cursor<T> };\n}\n",
19
19
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FromSchema, FromSchemaDefaultOptions, FromSchemaOptions } from \"../json-schema/FromSchema\";\nimport { JsonSchema } from \"../json-schema/JsonSchema\";\n\n/**\n * Supported typed array types\n * - Float16Array: 16-bit floating point (medium precision)\n * - Float32Array: Standard 32-bit floating point (most common)\n * - Float64Array: 64-bit floating point (high precision)\n * - Int8Array: 8-bit signed integer (binary quantization)\n * - Uint8Array: 8-bit unsigned integer (quantization)\n * - Int16Array: 16-bit signed integer (quantization)\n * - Uint16Array: 16-bit unsigned integer (quantization)\n */\nexport type TypedArray =\n | Float32Array\n | Float16Array\n | Float64Array\n | Int8Array\n | Uint8Array\n | Int16Array\n | Uint16Array;\n\nexport type TypedArrayString =\n | \"TypedArray\"\n | \"TypedArray:Float16Array\"\n | \"TypedArray:Float32Array\"\n | \"TypedArray:Float64Array\"\n | \"TypedArray:Int8Array\"\n | \"TypedArray:Uint8Array\"\n | \"TypedArray:Int16Array\"\n | \"TypedArray:Uint16Array\";\n\nexport function isTypedArray(value: unknown): value is TypedArray {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n\n// Type-only value for use in deserialize patterns\nconst TypedArrayType = null as any as TypedArray;\n\nconst TypedArraySchemaOptions = {\n ...FromSchemaDefaultOptions,\n deserialize: [\n {\n pattern: { type: \"array\", format: \"TypedArray:Float64Array\" },\n output: Float64Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray:Float32Array\" },\n output: Float32Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray:Float16Array\" },\n output: Float16Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray:Int16Array\" },\n output: Int16Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray:Int8Array\" },\n output: Int8Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray:Uint8Array\" },\n output: Uint8Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray:Uint16Array\" },\n output: Uint16Array,\n },\n {\n pattern: { type: \"array\", format: \"TypedArray\" },\n output: TypedArrayType,\n },\n ],\n} as const satisfies FromSchemaOptions;\n\nexport type TypedArraySchemaOptions = typeof TypedArraySchemaOptions;\n\nexport type VectorFromSchema<SCHEMA extends JsonSchema> = FromSchema<\n SCHEMA,\n TypedArraySchemaOptions\n>;\n\nexport const TypedArraySchema = (annotations: Record<string, unknown> = {}) => {\n return {\n type: \"array\",\n format: \"TypedArray\",\n title: \"Typed Array\",\n description: \"A typed array (Float32Array, Int8Array, etc.)\",\n ...annotations,\n } as const satisfies JsonSchema;\n};\n",
20
20
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FromSchema } from \"../json-schema/FromSchema\";\nimport { JsonSchema } from \"../json-schema/JsonSchema\";\nimport { TypedArraySchema, TypedArraySchemaOptions } from \"./TypedArray\";\n\nexport const TensorType = {\n FLOAT16: \"float16\",\n FLOAT32: \"float32\",\n FLOAT64: \"float64\",\n INT8: \"int8\",\n UINT8: \"uint8\",\n INT16: \"int16\",\n UINT16: \"uint16\",\n} as const;\n\nexport type TensorType = (typeof TensorType)[keyof typeof TensorType];\n\n/**\n * Tensor schema for representing tensors as arrays of numbers\n * @param annotations - Additional annotations for the schema\n * @returns The tensor schema\n */\nexport const TensorSchema = (annotations: Record<string, unknown> = {}) =>\n ({\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: Object.values(TensorType),\n title: \"Type\",\n description: \"The type of the tensor\",\n },\n data: TypedArraySchema({\n title: \"Data\",\n description: \"The data of the tensor\",\n }),\n shape: {\n type: \"array\",\n items: { type: \"number\" },\n title: \"Shape\",\n description: \"The shape of the tensor (dimensions)\",\n minItems: 1,\n default: [1],\n },\n normalized: {\n type: \"boolean\",\n title: \"Normalized\",\n description: \"Whether the tensor data is normalized\",\n default: false,\n },\n },\n required: [\"data\"],\n additionalProperties: false,\n ...annotations,\n }) as const satisfies JsonSchema;\n\nexport type Tensor = FromSchema<ReturnType<typeof TensorSchema>, TypedArraySchemaOptions>;\n",
21
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TypedArray } from \"./TypedArray\";\n\n/** Width ranking: higher = wider type (more precision). Float64 > Float32 > Float16 > Int16 > Int8. */\nconst WIDTH_RANK: Record<string, number> = {\n Float64Array: 6,\n Float32Array: 5,\n Float16Array: 4,\n Int16Array: 3,\n Uint16Array: 3,\n Int8Array: 2,\n Uint8Array: 2,\n};\n\nfunction getWidthRank(arr: TypedArray): number {\n return WIDTH_RANK[arr.constructor.name] ?? 0;\n}\n\n/**\n * Returns the widest (highest-precision) TypedArray constructor among the given sources.\n * E.g. Int8Array × Float32Array → Float32Array.\n */\nfunction widestConstructor(sources: TypedArray[]): new (len: number) => TypedArray {\n let best = sources[0];\n for (let i = 1; i < sources.length; i++) {\n if (getWidthRank(sources[i]) > getWidthRank(best)) best = sources[i];\n }\n return best.constructor as new (len: number) => TypedArray;\n}\n\n/**\n * Creates a new TypedArray with the widest type among the given sources,\n * filled with the provided values. Use when combining multiple vectors\n * (e.g. a * b) so output precision matches the widest input.\n */\nexport function createTypedArrayFrom(sources: TypedArray[], values: number[]): TypedArray {\n const Ctor = widestConstructor(sources);\n const result = new Ctor(values.length);\n for (let i = 0; i < values.length; i++) result[i] = values[i];\n return result;\n}\n",
21
22
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TypedArray } from \"./TypedArray\";\n\n/**\n * Calculates cosine similarity between two vectors\n * Returns a value between -1 and 1, where 1 means identical direction\n */\nexport function cosineSimilarity(a: TypedArray, b: TypedArray): number {\n if (a.length !== b.length) {\n throw new Error(\"Vectors must have the same length\");\n }\n let dotProduct = 0;\n let normA = 0;\n let normB = 0;\n for (let i = 0; i < a.length; i++) {\n dotProduct += a[i] * b[i];\n normA += a[i] * a[i];\n normB += b[i] * b[i];\n }\n const denominator = Math.sqrt(normA) * Math.sqrt(normB);\n if (denominator === 0) {\n return 0;\n }\n return dotProduct / denominator;\n}\n\n/**\n * Calculates Jaccard similarity between two vectors\n * Uses the formula: sum(min(a[i], b[i])) / sum(max(a[i], b[i]))\n * Returns a value between 0 and 1\n * For negative values, normalizes by finding the global min and shifting to non-negative range\n */\nexport function jaccardSimilarity(a: TypedArray, b: TypedArray): number {\n if (a.length !== b.length) {\n throw new Error(\"Vectors must have the same length\");\n }\n\n // Find global min across both vectors to handle negative values\n let globalMin = a[0];\n for (let i = 0; i < a.length; i++) {\n globalMin = Math.min(globalMin, a[i], b[i]);\n }\n\n // Shift values to non-negative range if needed\n const shift = globalMin < 0 ? -globalMin : 0;\n\n let minSum = 0;\n let maxSum = 0;\n\n for (let i = 0; i < a.length; i++) {\n const shiftedA = a[i] + shift;\n const shiftedB = b[i] + shift;\n minSum += Math.min(shiftedA, shiftedB);\n maxSum += Math.max(shiftedA, shiftedB);\n }\n\n return maxSum === 0 ? 0 : minSum / maxSum;\n}\n\n/**\n * Calculates Hamming distance between two vectors (normalized)\n * Counts the number of positions where vectors differ\n * Returns a value between 0 and 1 (0 = identical, 1 = completely different)\n */\nexport function hammingDistance(a: TypedArray, b: TypedArray): number {\n if (a.length !== b.length) {\n throw new Error(\"Vectors must have the same length\");\n }\n\n let differences = 0;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n differences++;\n }\n }\n\n return differences / a.length;\n}\n\n/**\n * Calculates Hamming similarity (inverse of distance)\n * Returns a value between 0 and 1 (1 = identical, 0 = completely different)\n */\nexport function hammingSimilarity(a: TypedArray, b: TypedArray): number {\n return 1 - hammingDistance(a, b);\n}\n",
22
23
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TypedArray } from \"./TypedArray\";\n\n/**\n * Calculates the magnitude (L2 norm) of a vector\n */\nexport function magnitude(arr: TypedArray | number[]): number {\n // @ts-ignore - Vector reduce works but TS doesn't recognize it\n return Math.sqrt(arr.reduce((acc, val) => acc + val * val, 0));\n}\n\n/**\n * Calculates the inner (dot) product of two vectors\n */\nexport function inner(arr1: TypedArray, arr2: TypedArray): number {\n if (arr1.length !== arr2.length) {\n throw new Error(\"Vectors must have the same length to compute inner product.\");\n }\n // @ts-ignore - Vector reduce works but TS doesn't recognize it\n return arr1.reduce((acc, val, i) => acc + val * arr2[i], 0);\n}\n\n/**\n * Normalizes a vector to unit length (L2 normalization)\n *\n * @param vector - The vector to normalize\n * @param throwOnZero - If true, throws an error for zero vectors. If false, returns the original vector.\n * @returns Normalized vector with the same type as input\n */\nexport function normalize(vector: TypedArray, throwOnZero = true, float32 = false): TypedArray {\n const mag = magnitude(vector);\n\n if (mag === 0) {\n if (throwOnZero) {\n throw new Error(\"Cannot normalize a zero vector.\");\n }\n return vector;\n }\n\n const normalized = Array.from(vector).map((val) => Number(val) / mag);\n\n if (float32) {\n return new Float32Array(normalized);\n }\n\n // Preserve the original Vector type\n if (vector instanceof Float64Array) {\n return new Float64Array(normalized);\n }\n if (vector instanceof Float16Array) {\n return new Float16Array(normalized);\n }\n if (vector instanceof Float32Array) {\n return new Float32Array(normalized);\n }\n if (vector instanceof Int8Array) {\n return new Int8Array(normalized);\n }\n if (vector instanceof Uint8Array) {\n return new Uint8Array(normalized);\n }\n if (vector instanceof Int16Array) {\n return new Int16Array(normalized);\n }\n if (vector instanceof Uint16Array) {\n return new Uint16Array(normalized);\n }\n // For other integer arrays, use Float32Array since normalization produces floats\n return new Float32Array(normalized);\n}\n\n/**\n * Normalizes an array of numbers to unit length (L2 normalization)\n *\n * @param values - The array of numbers to normalize\n * @param throwOnZero - If true, throws an error for zero vectors. If false, returns the original array.\n * @returns Normalized array of numbers\n */\nexport function normalizeNumberArray(values: number[], throwOnZero = false): number[] {\n const norm = magnitude(values);\n\n if (norm === 0) {\n if (throwOnZero) {\n throw new Error(\"Cannot normalize a zero vector.\");\n }\n return values;\n }\n\n return values.map((v) => v / norm);\n}\n",
23
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createServiceToken, globalServiceRegistry } from \"../di\";\n\n/**\n * Extracts transferables from an object.\n * @param obj - The object to extract transferables from.\n * @returns An array of transferables.\n */\nfunction extractTransferables(obj: any): Transferable[] {\n const transferables: Transferable[] = [];\n const seen = new WeakSet();\n\n function findTransferables(value: any) {\n // Avoid infinite recursion\n if (value && typeof value === \"object\" && seen.has(value)) {\n return;\n }\n if (value && typeof value === \"object\") {\n seen.add(value);\n }\n\n // Handle TypedArrays\n if (value instanceof Float32Array || value instanceof Int16Array) {\n transferables.push(value.buffer);\n }\n // Handle other TypedArrays\n else if (\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int8Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float64Array ||\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array\n ) {\n transferables.push(value.buffer);\n }\n // Handle OffscreenCanvas\n else if (typeof OffscreenCanvas !== \"undefined\" && value instanceof OffscreenCanvas) {\n transferables.push(value);\n }\n // Handle ImageBitmap\n else if (typeof ImageBitmap !== \"undefined\" && value instanceof ImageBitmap) {\n transferables.push(value);\n }\n // Handle VideoFrame\n else if (typeof VideoFrame !== \"undefined\" && value instanceof VideoFrame) {\n transferables.push(value);\n }\n // Handle MessagePort\n else if (typeof MessagePort !== \"undefined\" && value instanceof MessagePort) {\n transferables.push(value);\n }\n // Handle ArrayBuffer\n else if (value instanceof ArrayBuffer) {\n transferables.push(value);\n }\n // Recursively search arrays and objects\n else if (Array.isArray(value)) {\n value.forEach(findTransferables);\n } else if (value && typeof value === \"object\") {\n Object.values(value).forEach(findTransferables);\n }\n }\n\n findTransferables(obj);\n return transferables;\n}\n\nexport class WorkerManager {\n private workers: Map<string, Worker> = new Map();\n private readyWorkers: Map<string, Promise<void>> = new Map();\n\n registerWorker(name: string, worker: Worker) {\n if (this.workers.has(name)) throw new Error(`Worker ${name} is already registered.`);\n this.workers.set(name, worker);\n\n this.workers.set(name, worker);\n worker.addEventListener(\"error\", (event) => {\n console.error(\"Worker Error:\", event.message, \"at\", event.filename, \"line:\", event.lineno);\n });\n worker.addEventListener(\"messageerror\", (event) => {\n console.error(\"Worker message error:\", event);\n });\n\n const readyPromise = new Promise<void>((resolve) => {\n const handleReady = (event: MessageEvent) => {\n if (event.data?.type === \"ready\") {\n worker.removeEventListener(\"message\", handleReady);\n resolve();\n }\n };\n\n worker.addEventListener(\"message\", handleReady);\n });\n\n this.readyWorkers.set(name, readyPromise);\n }\n\n getWorker(name: string): Worker {\n const worker = this.workers.get(name);\n if (!worker) throw new Error(`Worker ${name} not found.`);\n return worker;\n }\n\n async callWorkerFunction<T>(\n workerName: string,\n functionName: string,\n args: any[],\n options?: {\n signal?: AbortSignal;\n onProgress?: (progress: number, message?: string, details?: any) => void;\n }\n ): Promise<T> {\n const worker = this.workers.get(workerName);\n if (!worker) throw new Error(`Worker ${workerName} not found.`);\n await this.readyWorkers.get(workerName);\n\n return new Promise((resolve, reject) => {\n const requestId = crypto.randomUUID();\n\n const handleMessage = (event: MessageEvent) => {\n const { id, type, data } = event.data;\n if (id !== requestId) return;\n if (type === \"progress\" && options?.onProgress) {\n options.onProgress(data.progress, data.message, data.details);\n } else if (type === \"complete\") {\n cleanup();\n resolve(data);\n } else if (type === \"error\") {\n cleanup();\n reject(new Error(data));\n }\n };\n\n const handleAbort = () => {\n worker.postMessage({ id: requestId, type: \"abort\" });\n };\n\n const cleanup = () => {\n worker.removeEventListener(\"message\", handleMessage);\n options?.signal?.removeEventListener(\"abort\", handleAbort);\n };\n\n worker.addEventListener(\"message\", handleMessage);\n\n if (options?.signal) {\n options.signal.addEventListener(\"abort\", handleAbort, { once: true });\n }\n\n const message = { id: requestId, type: \"call\", functionName, args };\n const transferables = extractTransferables(message);\n worker.postMessage(message, transferables);\n });\n }\n}\n\nexport const WORKER_MANAGER = createServiceToken<WorkerManager>(\"worker.manager\");\n\nglobalServiceRegistry.register(WORKER_MANAGER, () => new WorkerManager(), true);\n",
24
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { parentPort } from \"@workglow/util\";\nimport { createServiceToken, globalServiceRegistry } from \"../di\";\n\n/**\n * Extracts transferables from an object.\n * @param obj - The object to extract transferables from.\n * @returns An array of transferables.\n */\nfunction extractTransferables(obj: any) {\n const transferables: Transferable[] = [];\n const seen = new WeakSet();\n\n function findTransferables(value: any) {\n // Avoid infinite recursion\n if (value && typeof value === \"object\" && seen.has(value)) {\n return;\n }\n if (value && typeof value === \"object\") {\n seen.add(value);\n }\n\n // Handle TypedArrays\n if (value instanceof Float32Array || value instanceof Int16Array) {\n transferables.push(value.buffer);\n }\n // Handle other TypedArrays\n else if (\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int8Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float64Array ||\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array\n ) {\n transferables.push(value.buffer);\n }\n // Handle OffscreenCanvas\n else if (typeof OffscreenCanvas !== \"undefined\" && value instanceof OffscreenCanvas) {\n transferables.push(value);\n }\n // Handle ImageBitmap\n else if (typeof ImageBitmap !== \"undefined\" && value instanceof ImageBitmap) {\n transferables.push(value);\n }\n // Handle VideoFrame\n else if (typeof VideoFrame !== \"undefined\" && value instanceof VideoFrame) {\n transferables.push(value);\n }\n // Handle MessagePort\n else if (typeof MessagePort !== \"undefined\" && value instanceof MessagePort) {\n transferables.push(value);\n }\n // Handle ArrayBuffer\n else if (value instanceof ArrayBuffer) {\n transferables.push(value);\n }\n // Recursively search arrays and objects\n else if (Array.isArray(value)) {\n value.forEach(findTransferables);\n } else if (value && typeof value === \"object\") {\n Object.values(value).forEach(findTransferables);\n }\n }\n\n findTransferables(obj);\n return transferables;\n}\n\n/**\n * WorkerServer is a class that handles messages from the main thread to the worker.\n * It is used to register functions that can be called from the main thread.\n * It also handles the transfer of transferables to the main thread.\n */\nexport class WorkerServer {\n constructor() {\n parentPort?.addEventListener(\"message\", async (event) => {\n const msg = {\n type: event.type,\n // @ts-ignore - Ignore type mismatch between standard MessageEvent and our message type\n data: event.data,\n };\n await this.handleMessage(msg);\n });\n }\n\n private functions: Record<string, (...args: any[]) => Promise<any>> = {};\n\n // Keep track of each request's AbortController\n private requestControllers = new Map<string, AbortController>();\n // Keep track of requests that have already been responded to\n private completedRequests = new Set<string>();\n\n private postResult = (id: string, result: any) => {\n if (this.completedRequests.has(id)) {\n return; // Already responded to this request\n }\n this.completedRequests.add(id);\n const transferables = extractTransferables(result);\n // @ts-ignore - Ignore type mismatch between standard Transferable and Bun.Transferable\n postMessage({ id, type: \"complete\", data: result }, transferables);\n };\n\n private postError = (id: string, errorMessage: string) => {\n if (this.completedRequests.has(id)) {\n return; // Already responded to this request\n }\n this.completedRequests.add(id);\n postMessage({ id, type: \"error\", data: errorMessage });\n };\n\n registerFunction(name: string, fn: (...args: any[]) => Promise<any>) {\n this.functions[name] = fn;\n }\n\n // Handle messages from the main thread\n async handleMessage(event: { type: string; data: any }) {\n const { id, type, functionName, args } = event.data;\n if (type === \"abort\") {\n return await this.handleAbort(id);\n }\n if (type === \"call\") {\n return await this.handleCall(id, functionName, args);\n }\n }\n\n async handleAbort(id: string) {\n if (this.requestControllers.has(id)) {\n const controller = this.requestControllers.get(id);\n controller?.abort();\n this.requestControllers.delete(id);\n // Send error response back to main thread so the promise rejects\n this.postError(id, \"Operation aborted\");\n }\n }\n\n async handleCall(id: string, functionName: string, [input, model]: [any, any]) {\n if (!(functionName in this.functions)) {\n this.postError(id, `Function ${functionName} not found`);\n return;\n }\n\n try {\n const abortController = new AbortController();\n this.requestControllers.set(id, abortController);\n\n const fn = this.functions[functionName];\n const postProgress = (progress: number, message?: string, details?: any) => {\n // Don't send progress updates after the request is completed/aborted\n if (!this.completedRequests.has(id)) {\n postMessage({ id, type: \"progress\", data: { progress, message, details } });\n }\n };\n const result = await fn(input, model, postProgress, abortController.signal);\n this.postResult(id, result);\n } catch (error: any) {\n this.postError(id, error.message);\n } finally {\n this.requestControllers.delete(id);\n // Clean up completed requests set after a delay to handle any race conditions\n // where abort message might arrive shortly after completion\n setTimeout(() => {\n this.completedRequests.delete(id);\n }, 1000);\n }\n }\n}\n\nexport const WORKER_SERVER = createServiceToken<WorkerServer>(\"worker.server\");\n\nglobalServiceRegistry.register(WORKER_SERVER, () => new WorkerServer(), true);\n",
24
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createServiceToken, globalServiceRegistry } from \"../di\";\n\n/**\n * Extracts transferables from an object.\n * @param obj - The object to extract transferables from.\n * @returns An array of transferables.\n */\nfunction extractTransferables(obj: any): Transferable[] {\n const transferables: Transferable[] = [];\n const seen = new WeakSet();\n\n function findTransferables(value: any) {\n // Avoid infinite recursion\n if (value && typeof value === \"object\" && seen.has(value)) {\n return;\n }\n if (value && typeof value === \"object\") {\n seen.add(value);\n }\n\n // Handle TypedArrays\n if (value instanceof Float32Array || value instanceof Int16Array) {\n transferables.push(value.buffer);\n }\n // Handle other TypedArrays\n else if (\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int8Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float64Array ||\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array\n ) {\n transferables.push(value.buffer);\n }\n // Handle OffscreenCanvas\n else if (typeof OffscreenCanvas !== \"undefined\" && value instanceof OffscreenCanvas) {\n transferables.push(value);\n }\n // Handle ImageBitmap\n else if (typeof ImageBitmap !== \"undefined\" && value instanceof ImageBitmap) {\n transferables.push(value);\n }\n // Handle VideoFrame\n else if (typeof VideoFrame !== \"undefined\" && value instanceof VideoFrame) {\n transferables.push(value);\n }\n // Handle MessagePort\n else if (typeof MessagePort !== \"undefined\" && value instanceof MessagePort) {\n transferables.push(value);\n }\n // Handle ArrayBuffer\n else if (value instanceof ArrayBuffer) {\n transferables.push(value);\n }\n // Recursively search arrays and objects\n else if (Array.isArray(value)) {\n value.forEach(findTransferables);\n } else if (value && typeof value === \"object\") {\n Object.values(value).forEach(findTransferables);\n }\n }\n\n findTransferables(obj);\n return transferables;\n}\n\nexport class WorkerManager {\n private workers: Map<string, Worker> = new Map();\n private readyWorkers: Map<string, Promise<void>> = new Map();\n\n registerWorker(name: string, worker: Worker) {\n if (this.workers.has(name)) throw new Error(`Worker ${name} is already registered.`);\n this.workers.set(name, worker);\n\n this.workers.set(name, worker);\n worker.addEventListener(\"error\", (event) => {\n console.error(\"Worker Error:\", event.message, \"at\", event.filename, \"line:\", event.lineno);\n });\n worker.addEventListener(\"messageerror\", (event) => {\n console.error(\"Worker message error:\", event);\n });\n\n const readyPromise = new Promise<void>((resolve) => {\n const handleReady = (event: MessageEvent) => {\n if (event.data?.type === \"ready\") {\n worker.removeEventListener(\"message\", handleReady);\n resolve();\n }\n };\n\n worker.addEventListener(\"message\", handleReady);\n });\n\n this.readyWorkers.set(name, readyPromise);\n }\n\n getWorker(name: string): Worker {\n const worker = this.workers.get(name);\n if (!worker) throw new Error(`Worker ${name} not found.`);\n return worker;\n }\n\n async callWorkerFunction<T>(\n workerName: string,\n functionName: string,\n args: any[],\n options?: {\n signal?: AbortSignal;\n onProgress?: (progress: number, message?: string, details?: any) => void;\n }\n ): Promise<T> {\n const worker = this.workers.get(workerName);\n if (!worker) throw new Error(`Worker ${workerName} not found.`);\n await this.readyWorkers.get(workerName);\n\n return new Promise((resolve, reject) => {\n const requestId = crypto.randomUUID();\n\n const handleMessage = (event: MessageEvent) => {\n const { id, type, data } = event.data;\n if (id !== requestId) return;\n if (type === \"progress\" && options?.onProgress) {\n options.onProgress(data.progress, data.message, data.details);\n } else if (type === \"complete\") {\n cleanup();\n resolve(data);\n } else if (type === \"error\") {\n cleanup();\n reject(new Error(data));\n }\n };\n\n const handleAbort = () => {\n worker.postMessage({ id: requestId, type: \"abort\" });\n };\n\n const cleanup = () => {\n worker.removeEventListener(\"message\", handleMessage);\n options?.signal?.removeEventListener(\"abort\", handleAbort);\n };\n\n worker.addEventListener(\"message\", handleMessage);\n\n if (options?.signal) {\n options.signal.addEventListener(\"abort\", handleAbort, { once: true });\n }\n\n const message = { id: requestId, type: \"call\", functionName, args };\n const transferables = extractTransferables(message);\n worker.postMessage(message, transferables);\n });\n }\n\n /**\n * Call a streaming function on a worker and return an AsyncGenerator that\n * yields each stream chunk sent by the worker. The worker sends `stream_chunk`\n * messages for each yielded event and a `complete` message when the generator\n * finishes. An `error` message from the worker causes the iterator to throw.\n *\n * @param workerName - Registered worker name\n * @param functionName - Name of the stream function registered on the worker\n * @param args - Arguments to pass to the stream function\n * @param options - Optional abort signal\n * @returns AsyncGenerator yielding stream events from the worker\n */\n async *callWorkerStreamFunction<T>(\n workerName: string,\n functionName: string,\n args: any[],\n options?: { signal?: AbortSignal }\n ): AsyncGenerator<T> {\n const worker = this.workers.get(workerName);\n if (!worker) throw new Error(`Worker ${workerName} not found.`);\n await this.readyWorkers.get(workerName);\n\n const requestId = crypto.randomUUID();\n\n // Push-queue pattern: messages push items, async generator pulls them\n type QueueItem =\n | { kind: \"event\"; data: T }\n | { kind: \"done\" }\n | { kind: \"error\"; error: Error };\n\n const queue: QueueItem[] = [];\n let waiting: ((value: void) => void) | null = null;\n\n const notify = () => {\n if (waiting) {\n const resolve = waiting;\n waiting = null;\n resolve();\n }\n };\n\n const handleMessage = (event: MessageEvent) => {\n const { id, type, data } = event.data;\n if (id !== requestId) return;\n\n if (type === \"stream_chunk\") {\n queue.push({ kind: \"event\", data });\n notify();\n } else if (type === \"complete\") {\n queue.push({ kind: \"done\" });\n notify();\n } else if (type === \"error\") {\n queue.push({ kind: \"error\", error: new Error(data) });\n notify();\n }\n };\n\n const handleAbort = () => {\n worker.postMessage({ id: requestId, type: \"abort\" });\n };\n\n const cleanup = () => {\n worker.removeEventListener(\"message\", handleMessage);\n options?.signal?.removeEventListener(\"abort\", handleAbort);\n };\n\n worker.addEventListener(\"message\", handleMessage);\n\n if (options?.signal) {\n if (options.signal.aborted) {\n cleanup();\n throw new Error(\"Operation aborted\");\n }\n options.signal.addEventListener(\"abort\", handleAbort, { once: true });\n }\n\n // Send call message with stream flag\n const message = { id: requestId, type: \"call\", functionName, args, stream: true };\n const transferables = extractTransferables(message);\n worker.postMessage(message, transferables);\n\n let completedNormally = false;\n try {\n while (true) {\n while (queue.length > 0) {\n const item = queue.shift()!;\n if (item.kind === \"event\") {\n yield item.data;\n } else if (item.kind === \"done\") {\n completedNormally = true;\n return;\n } else if (item.kind === \"error\") {\n completedNormally = true;\n throw item.error;\n }\n }\n\n // Wait for the next message to arrive\n await new Promise<void>((resolve) => {\n waiting = resolve;\n });\n }\n } finally {\n // If the consumer stopped iterating early (break/return), notify\n // the worker to abort so it doesn't continue generating tokens.\n if (!completedNormally) {\n worker.postMessage({ id: requestId, type: \"abort\" });\n }\n cleanup();\n }\n }\n}\n\nexport const WORKER_MANAGER = createServiceToken<WorkerManager>(\"worker.manager\");\n\nglobalServiceRegistry.register(WORKER_MANAGER, () => new WorkerManager(), true);\n",
25
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { parentPort } from \"@workglow/util\";\nimport { createServiceToken, globalServiceRegistry } from \"../di\";\n\n/**\n * Extracts transferables from an object.\n * @param obj - The object to extract transferables from.\n * @returns An array of transferables.\n */\nfunction extractTransferables(obj: any) {\n const transferables: Transferable[] = [];\n const seen = new WeakSet();\n\n function findTransferables(value: any) {\n // Avoid infinite recursion\n if (value && typeof value === \"object\" && seen.has(value)) {\n return;\n }\n if (value && typeof value === \"object\") {\n seen.add(value);\n }\n\n // Handle TypedArrays\n if (value instanceof Float32Array || value instanceof Int16Array) {\n transferables.push(value.buffer);\n }\n // Handle other TypedArrays\n else if (\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int8Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float64Array ||\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array\n ) {\n transferables.push(value.buffer);\n }\n // Handle OffscreenCanvas\n else if (typeof OffscreenCanvas !== \"undefined\" && value instanceof OffscreenCanvas) {\n transferables.push(value);\n }\n // Handle ImageBitmap\n else if (typeof ImageBitmap !== \"undefined\" && value instanceof ImageBitmap) {\n transferables.push(value);\n }\n // Handle VideoFrame\n else if (typeof VideoFrame !== \"undefined\" && value instanceof VideoFrame) {\n transferables.push(value);\n }\n // Handle MessagePort\n else if (typeof MessagePort !== \"undefined\" && value instanceof MessagePort) {\n transferables.push(value);\n }\n // Handle ArrayBuffer\n else if (value instanceof ArrayBuffer) {\n transferables.push(value);\n }\n // Recursively search arrays and objects\n else if (Array.isArray(value)) {\n value.forEach(findTransferables);\n } else if (value && typeof value === \"object\") {\n Object.values(value).forEach(findTransferables);\n }\n }\n\n findTransferables(obj);\n return transferables;\n}\n\n/**\n * WorkerServer is a class that handles messages from the main thread to the worker.\n * It is used to register functions that can be called from the main thread.\n * It also handles the transfer of transferables to the main thread.\n */\nexport class WorkerServer {\n constructor() {\n parentPort?.addEventListener(\"message\", async (event) => {\n const msg = {\n type: event.type,\n // @ts-ignore - Ignore type mismatch between standard MessageEvent and our message type\n data: event.data,\n };\n await this.handleMessage(msg);\n });\n }\n\n private functions: Record<string, (...args: any[]) => Promise<any>> = {};\n private streamFunctions: Record<string, (...args: any[]) => AsyncIterable<any>> = {};\n\n // Keep track of each request's AbortController\n private requestControllers = new Map<string, AbortController>();\n // Keep track of requests that have already been responded to\n private completedRequests = new Set<string>();\n\n private postResult = (id: string, result: any) => {\n if (this.completedRequests.has(id)) {\n return; // Already responded to this request\n }\n this.completedRequests.add(id);\n const transferables = extractTransferables(result);\n // @ts-ignore - Ignore type mismatch between standard Transferable and Bun.Transferable\n postMessage({ id, type: \"complete\", data: result }, transferables);\n };\n\n private postError = (id: string, errorMessage: string) => {\n if (this.completedRequests.has(id)) {\n return; // Already responded to this request\n }\n this.completedRequests.add(id);\n postMessage({ id, type: \"error\", data: errorMessage });\n };\n\n private postStreamChunk = (id: string, event: any) => {\n if (this.completedRequests.has(id)) {\n return;\n }\n postMessage({ id, type: \"stream_chunk\", data: event });\n };\n\n registerFunction(name: string, fn: (...args: any[]) => Promise<any>) {\n this.functions[name] = fn;\n }\n\n /**\n * Register an async generator function for streaming execution.\n * When called via the worker protocol with `stream: true`, the server\n * iterates the generator and sends each yielded value as a `stream_chunk`\n * message, followed by a `complete` message when the generator finishes.\n *\n * @param name - The function name (e.g., task type identifier)\n * @param fn - Async generator function: (input, model, signal) => AsyncIterable\n */\n registerStreamFunction(name: string, fn: (...args: any[]) => AsyncIterable<any>) {\n this.streamFunctions[name] = fn;\n }\n\n // Handle messages from the main thread\n async handleMessage(event: { type: string; data: any }) {\n const { id, type, functionName, args, stream } = event.data;\n if (type === \"abort\") {\n return await this.handleAbort(id);\n }\n if (type === \"call\") {\n if (stream) {\n return await this.handleStreamCall(id, functionName, args);\n }\n return await this.handleCall(id, functionName, args);\n }\n }\n\n async handleAbort(id: string) {\n if (this.requestControllers.has(id)) {\n const controller = this.requestControllers.get(id);\n controller?.abort();\n this.requestControllers.delete(id);\n // Send error response back to main thread so the promise rejects\n this.postError(id, \"Operation aborted\");\n }\n }\n\n async handleCall(id: string, functionName: string, [input, model]: [any, any]) {\n if (!(functionName in this.functions)) {\n this.postError(id, `Function ${functionName} not found`);\n return;\n }\n\n try {\n const abortController = new AbortController();\n this.requestControllers.set(id, abortController);\n\n const fn = this.functions[functionName];\n const postProgress = (progress: number, message?: string, details?: any) => {\n // Don't send progress updates after the request is completed/aborted\n if (!this.completedRequests.has(id)) {\n postMessage({ id, type: \"progress\", data: { progress, message, details } });\n }\n };\n const result = await fn(input, model, postProgress, abortController.signal);\n this.postResult(id, result);\n } catch (error: any) {\n this.postError(id, error.message);\n } finally {\n this.requestControllers.delete(id);\n // Clean up completed requests set after a delay to handle any race conditions\n // where abort message might arrive shortly after completion\n setTimeout(() => {\n this.completedRequests.delete(id);\n }, 1000);\n }\n }\n\n /**\n * Handle a streaming call. If a stream function is registered for the given name,\n * iterate it and send each yielded event as a `stream_chunk` message. If only a\n * regular function is registered, run it and wrap the result as a single `finish`\n * stream event (graceful fallback for providers that don't implement streaming).\n */\n async handleStreamCall(id: string, functionName: string, [input, model]: [any, any]) {\n if (functionName in this.streamFunctions) {\n try {\n const abortController = new AbortController();\n this.requestControllers.set(id, abortController);\n\n const fn = this.streamFunctions[functionName];\n const iterable = fn(input, model, abortController.signal);\n\n for await (const event of iterable) {\n if (this.completedRequests.has(id)) break;\n this.postStreamChunk(id, event);\n }\n\n this.postResult(id, undefined);\n } catch (error: any) {\n this.postError(id, error.message);\n } finally {\n this.requestControllers.delete(id);\n setTimeout(() => {\n this.completedRequests.delete(id);\n }, 1000);\n }\n } else if (functionName in this.functions) {\n // Fallback: run regular function and wrap result as a finish stream event\n try {\n const abortController = new AbortController();\n this.requestControllers.set(id, abortController);\n\n const fn = this.functions[functionName];\n const noopProgress = () => {};\n const result = await fn(input, model, noopProgress, abortController.signal);\n\n this.postStreamChunk(id, { type: \"finish\", data: result });\n this.postResult(id, undefined);\n } catch (error: any) {\n this.postError(id, error.message);\n } finally {\n this.requestControllers.delete(id);\n setTimeout(() => {\n this.completedRequests.delete(id);\n }, 1000);\n }\n } else {\n this.postError(id, `Function ${functionName} not found`);\n }\n }\n}\n\nexport const WORKER_SERVER = createServiceToken<WorkerServer>(\"worker.server\");\n\nglobalServiceRegistry.register(WORKER_SERVER, () => new WorkerServer(), true);\n",
25
26
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Node environment\n\nimport { promisify } from \"util\";\nimport zlib from \"zlib\";\n\nexport async function compress(\n input: string | Buffer,\n algorithm: \"gzip\" | \"br\" = \"gzip\"\n): Promise<Uint8Array> {\n const compressFn = algorithm === \"br\" ? zlib.brotliCompress : zlib.gzip;\n const compressAsync = promisify(compressFn);\n const compressAsyncTyped = compressAsync as unknown as (\n source: Buffer | Uint8Array | DataView\n ) => Promise<Buffer>;\n const sourceBuffer = Buffer.isBuffer(input) ? input : Buffer.from(input);\n const result: Buffer = await compressAsyncTyped(sourceBuffer);\n // Create a Uint8Array view over the Buffer without copying\n return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);\n}\n\nexport async function decompress(\n input: Uint8Array,\n algorithm: \"gzip\" | \"br\" = \"gzip\"\n): Promise<string> {\n const decompressFn = algorithm === \"br\" ? zlib.brotliDecompress : zlib.gunzip;\n const decompressAsync = promisify(decompressFn);\n const decompressAsyncTyped = decompressAsync as unknown as (\n source: Buffer | Uint8Array | DataView\n ) => Promise<Buffer>;\n const sourceBuffer = Buffer.isBuffer(input) ? (input as unknown as Buffer) : Buffer.from(input);\n const resultBuffer: Buffer = await decompressAsyncTyped(sourceBuffer);\n return resultBuffer.toString();\n}\n",
26
27
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Node.js environment\nimport { createHash } from \"node:crypto\";\nimport { serialize } from \"../utilities/Misc\";\n\nexport async function sha256(data: string) {\n return createHash(\"sha256\").update(data).digest(\"hex\");\n}\n\nexport async function makeFingerprint(input: any): Promise<string> {\n const serializedObj = serialize(input);\n const hash = await sha256(serializedObj);\n return hash;\n}\n\nexport function uuid4() {\n return crypto.randomUUID();\n}\n",
27
28
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type ImageChannels = 1 | 3 | 4; // grayscale, rgb, rgba\n\nexport type ImageDataSupport =\n | \"Blob\"\n | \"ImageBinary\"\n | \"ImageBitmap\"\n | \"OffscreenCanvas\"\n | \"VideoFrame\"\n | \"RawImage\"\n | \"DataUri\"\n | \"Sharp\";\n\nexport interface ImageBinary {\n data: Uint8ClampedArray;\n width: number;\n height: number;\n channels: ImageChannels;\n rawChannels?: number | undefined;\n}\n\nexport function parseDataUri(dataUri: string): {\n mimeType: string;\n base64: string;\n} {\n const match = dataUri.match(/^data:([^;]+);base64,(.+)$/);\n if (!match) {\n throw new Error(\"Invalid base64 data URI\");\n }\n\n return {\n mimeType: match[1], // e.g. \"image/png\"\n base64: match[2],\n };\n}\n",
28
29
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ImageBinary, ImageChannels, ImageDataSupport } from \"./image\";\nimport { parseDataUri } from \"./image\";\n\nexport { parseDataUri };\nexport type { ImageBinary, ImageChannels, ImageDataSupport };\n\nasync function dataUriToBlob(string: string): Promise<Blob> {\n const { mimeType, base64 } = parseDataUri(string);\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return new Blob([bytes], { type: mimeType });\n}\n\nexport async function convertImageDataToUseableForm(\n imageData: unknown,\n supports: ImageDataSupport[]\n): Promise<unknown> {\n if (imageData === null || imageData === undefined) {\n throw new Error(\"Image data is null or undefined\");\n }\n\n // first check if the image data is already in the supported format\n if (supports.includes(\"Blob\") && imageData instanceof Blob) {\n return imageData;\n }\n\n if (\n supports.includes(\"ImageBinary\") &&\n typeof imageData === \"object\" &&\n \"data\" in imageData &&\n \"width\" in imageData &&\n \"height\" in imageData &&\n \"channels\" in imageData\n ) {\n return {\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n channels: imageData.channels,\n };\n }\n\n // if not, convert it to the first supported format\n if (supports.includes(\"Blob\") && typeof imageData === \"string\") {\n return await dataUriToBlob(imageData);\n }\n\n if (\n supports.includes(\"DataUri\") &&\n typeof imageData === \"string\" &&\n imageData.startsWith(\"data:\")\n ) {\n return imageData;\n }\n\n throw new Error(`Unsupported image data type: ${typeof imageData}`);\n}\n",
29
30
  "import { Worker as NodeWorker, isMainThread, parentPort } from \"worker_threads\";\nimport type { WorkerOptions } from \"worker_threads\";\nimport { pathToFileURL } from \"url\";\nimport { URL as NodeURL } from \"url\";\n\nclass WorkerPolyfill extends NodeWorker {\n constructor(scriptUrl: string | NodeURL, options?: WorkerOptions) {\n const resolved: string =\n scriptUrl instanceof NodeURL ? scriptUrl.toString() : pathToFileURL(scriptUrl).toString();\n super(resolved, options);\n }\n\n addEventListener(event: \"message\" | \"error\", listener: (...args: any[]) => void) {\n if (event === \"message\") this.on(\"message\", listener);\n if (event === \"error\") this.on(\"error\", listener);\n }\n\n removeEventListener(event: \"message\" | \"error\", listener: (...args: any[]) => void) {\n if (event === \"message\") this.off(\"message\", listener);\n if (event === \"error\") this.off(\"error\", listener);\n }\n}\n\nconst Worker = isMainThread ? WorkerPolyfill : parentPort;\nexport { Worker, parentPort };\n"
30
31
  ],
31
- "mappings": "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",
32
- "debugId": "BF7288EFD9A1D48464756E2164756E21",
32
+ "mappings": "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",
33
+ "debugId": "7EB96C55559F4FB464756E2164756E21",
33
34
  "names": []
34
35
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { TypedArray } from "./TypedArray";
7
+ /**
8
+ * Creates a new TypedArray with the widest type among the given sources,
9
+ * filled with the provided values. Use when combining multiple vectors
10
+ * (e.g. a * b) so output precision matches the widest input.
11
+ */
12
+ export declare function createTypedArrayFrom(sources: TypedArray[], values: number[]): TypedArray;
13
+ //# sourceMappingURL=TypedArrayUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedArrayUtils.d.ts","sourceRoot":"","sources":["../../src/vector/TypedArrayUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA6B/C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAKxF"}
@@ -12,6 +12,21 @@ export declare class WorkerManager {
12
12
  signal?: AbortSignal;
13
13
  onProgress?: (progress: number, message?: string, details?: any) => void;
14
14
  }): Promise<T>;
15
+ /**
16
+ * Call a streaming function on a worker and return an AsyncGenerator that
17
+ * yields each stream chunk sent by the worker. The worker sends `stream_chunk`
18
+ * messages for each yielded event and a `complete` message when the generator
19
+ * finishes. An `error` message from the worker causes the iterator to throw.
20
+ *
21
+ * @param workerName - Registered worker name
22
+ * @param functionName - Name of the stream function registered on the worker
23
+ * @param args - Arguments to pass to the stream function
24
+ * @param options - Optional abort signal
25
+ * @returns AsyncGenerator yielding stream events from the worker
26
+ */
27
+ callWorkerStreamFunction<T>(workerName: string, functionName: string, args: any[], options?: {
28
+ signal?: AbortSignal;
29
+ }): AsyncGenerator<T>;
15
30
  }
16
31
  export declare const WORKER_MANAGER: import("../di").ServiceToken<WorkerManager>;
17
32
  //# sourceMappingURL=WorkerManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwEH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAE7D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA0B3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMzB,kBAAkB,CAAC,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KAC1E,GACA,OAAO,CAAC,CAAC,CAAC;CA0Cd;AAED,eAAO,MAAM,cAAc,6CAAsD,CAAC"}
1
+ {"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwEH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAE7D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA0B3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMzB,kBAAkB,CAAC,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KAC1E,GACA,OAAO,CAAC,CAAC,CAAC;IA2Cb;;;;;;;;;;;OAWG;IACI,wBAAwB,CAAC,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,cAAc,CAAC,CAAC,CAAC;CA8FrB;AAED,eAAO,MAAM,cAAc,6CAAsD,CAAC"}
@@ -11,17 +11,36 @@
11
11
  export declare class WorkerServer {
12
12
  constructor();
13
13
  private functions;
14
+ private streamFunctions;
14
15
  private requestControllers;
15
16
  private completedRequests;
16
17
  private postResult;
17
18
  private postError;
19
+ private postStreamChunk;
18
20
  registerFunction(name: string, fn: (...args: any[]) => Promise<any>): void;
21
+ /**
22
+ * Register an async generator function for streaming execution.
23
+ * When called via the worker protocol with `stream: true`, the server
24
+ * iterates the generator and sends each yielded value as a `stream_chunk`
25
+ * message, followed by a `complete` message when the generator finishes.
26
+ *
27
+ * @param name - The function name (e.g., task type identifier)
28
+ * @param fn - Async generator function: (input, model, signal) => AsyncIterable
29
+ */
30
+ registerStreamFunction(name: string, fn: (...args: any[]) => AsyncIterable<any>): void;
19
31
  handleMessage(event: {
20
32
  type: string;
21
33
  data: any;
22
34
  }): Promise<void>;
23
35
  handleAbort(id: string): Promise<void>;
24
36
  handleCall(id: string, functionName: string, [input, model]: [any, any]): Promise<void>;
37
+ /**
38
+ * Handle a streaming call. If a stream function is registered for the given name,
39
+ * iterate it and send each yielded event as a `stream_chunk` message. If only a
40
+ * regular function is registered, run it and wrap the result as a single `finish`
41
+ * stream event (graceful fallback for providers that don't implement streaming).
42
+ */
43
+ handleStreamCall(id: string, functionName: string, [input, model]: [any, any]): Promise<void>;
25
44
  }
26
45
  export declare const WORKER_SERVER: import("@workglow/util").ServiceToken<WorkerServer>;
27
46
  //# sourceMappingURL=WorkerServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerServer.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyEH;;;;GAIG;AACH,qBAAa,YAAY;;IAYvB,OAAO,CAAC,SAAS,CAAwD;IAGzE,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,UAAU,CAQhB;IAEF,OAAO,CAAC,SAAS,CAMf;IAEF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC;IAK7D,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAUhD,WAAW,CAAC,EAAE,EAAE,MAAM;IAUtB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;CA8B9E;AAED,eAAO,MAAM,aAAa,qDAAoD,CAAC"}
1
+ {"version":3,"file":"WorkerServer.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyEH;;;;GAIG;AACH,qBAAa,YAAY;;IAYvB,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,eAAe,CAA8D;IAGrF,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,UAAU,CAQhB;IAEF,OAAO,CAAC,SAAS,CAMf;IAEF,OAAO,CAAC,eAAe,CAKrB;IAEF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC;IAInE;;;;;;;;OAQG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,GAAG,CAAC;IAKzE,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAahD,WAAW,CAAC,EAAE,EAAE,MAAM;IAUtB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IA+B7E;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;CA+CpF;AAED,eAAO,MAAM,aAAa,qDAAoD,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@workglow/util",
3
3
  "type": "module",
4
- "version": "0.0.90",
4
+ "version": "0.0.92",
5
5
  "description": "Utility functions and shared types for Workglow, providing common functionality across all packages.",
6
6
  "scripts": {
7
7
  "watch": "concurrently -c 'auto' 'bun:watch-*'",