@workglow/ai 0.2.22 → 0.2.23
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/browser.js +15 -3
- package/dist/browser.js.map +7 -7
- package/dist/bun.js +15 -3
- package/dist/bun.js.map +7 -7
- package/dist/job/AiJob.d.ts.map +1 -1
- package/dist/node.js +15 -3
- package/dist/node.js.map +7 -7
- package/dist/task/ModelSearchTask.d.ts +7 -0
- package/dist/task/ModelSearchTask.d.ts.map +1 -1
- package/dist/task/base/AiImageOutputTask.d.ts.map +1 -1
- package/dist/task/base/StreamingAiTask.d.ts.map +1 -1
- package/dist/worker.js.map +3 -3
- package/package.json +11 -11
package/dist/bun.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/job/AiJob.ts", "../src/provider/AiProviderRegistry.ts", "../src/errors/ImageGenerationErrors.ts", "../src/execution/DirectExecutionStrategy.ts", "../src/execution/QueuedExecutionStrategy.ts", "../src/task/ToolCallingUtils.ts", "../src/model/InMemoryModelRepository.ts", "../src/model/ModelRepository.ts", "../src/model/ModelSchema.ts", "../src/model/ModelRegistry.ts", "../src/provider/AiProvider.ts", "../src/provider/QueuedAiProvider.ts", "../src/task/index.ts", "../src/task/AiChatTask.ts", "../src/task/base/AiTaskSchemas.ts", "../src/task/base/StreamingAiTask.ts", "../src/task/base/AiTask.ts", "../src/task/ChatMessage.ts", "../src/task/BackgroundRemovalTask.ts", "../src/task/base/AiVisionTask.ts", "../src/task/ChunkRetrievalTask.ts", "../src/task/TextEmbeddingTask.ts", "../src/task/ChunkVectorUpsertTask.ts", "../src/task/ContextBuilderTask.ts", "../src/task/CountTokensTask.ts", "../src/task/DocumentEnricherTask.ts", "../src/task/TextNamedEntityRecognitionTask.ts", "../src/task/TextSummaryTask.ts", "../src/task/DocumentUpsertTask.ts", "../src/task/DownloadModelTask.ts", "../src/task/generation/ImageEditTask.ts", "../src/task/base/AiImageOutputTask.ts", "../src/task/generation/AiImageSchemas.ts", "../src/task/FaceDetectorTask.ts", "../src/task/FaceLandmarkerTask.ts", "../src/task/generation/ImageGenerateTask.ts", "../src/task/GestureRecognizerTask.ts", "../src/task/HandLandmarkerTask.ts", "../src/task/HierarchicalChunkerTask.ts", "../src/task/HierarchyJoinTask.ts", "../src/task/KbToDocumentsTask.ts", "../src/task/ImageClassificationTask.ts", "../src/task/ImageEmbeddingTask.ts", "../src/task/ImageSegmentationTask.ts", "../src/task/ImageToTextTask.ts", "../src/task/ModelInfoTask.ts", "../src/task/ModelSearchTask.ts", "../src/task/ObjectDetectionTask.ts", "../src/task/PoseLandmarkerTask.ts", "../src/task/QueryExpanderTask.ts", "../src/task/RerankerTask.ts", "../src/task/StructuralParserTask.ts", "../src/task/StructuredGenerationTask.ts", "../src/task/TextChunkerTask.ts", "../src/task/TextClassificationTask.ts", "../src/task/TextFillMaskTask.ts", "../src/task/TextGenerationTask.ts", "../src/task/TextLanguageDetectionTask.ts", "../src/task/TextQuestionAnswerTask.ts", "../src/task/TextRewriterTask.ts", "../src/task/TextTranslationTask.ts", "../src/task/ToolCallingTask.ts", "../src/task/TopicSegmenterTask.ts", "../src/task/UnloadModelTask.ts", "../src/task/VectorQuantizeTask.ts", "../src/task/VectorSimilarityTask.ts", "../src/task/MessageConversion.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AbortSignalJobError,\n IJobExecuteContext,\n Job,\n JobStatus,\n PermanentJobError,\n RetryableJobError,\n withJobErrorDiagnostics,\n} from \"@workglow/job-queue\";\nimport { TaskInput, TaskOutput } from \"@workglow/task-graph\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { JsonSchema } from \"@workglow/util/schema\";\nimport type { ModelConfig } from \"../model/ModelSchema\";\nimport { getAiProviderRegistry } from \"../provider/AiProviderRegistry\";\nimport {\n ImageGenerationContentPolicyError,\n ImageGenerationProviderError,\n ProviderUnsupportedFeatureError,\n} from \"../errors/ImageGenerationErrors\";\n\n/** Default timeout for provider API calls (2 minutes). */\nconst DEFAULT_AI_TIMEOUT_MS = 120_000;\n\n/** Local inference (CPU/WASM) often needs several minutes (downloads, load, multi-turn tool follow-up). */\nconst LOCAL_INFERENCE_DEFAULT_TIMEOUT_MS = 300_000;\n\nfunction resolveAiJobTimeoutMs(aiProvider: string, explicitMs: number | undefined): number {\n if (explicitMs !== undefined) {\n return explicitMs;\n }\n if (aiProvider === \"LOCAL_LLAMACPP\" || aiProvider === \"HF_TRANSFORMERS_ONNX\") {\n return LOCAL_INFERENCE_DEFAULT_TIMEOUT_MS;\n }\n return DEFAULT_AI_TIMEOUT_MS;\n}\n\n/**\n * Input data for the AiJob\n */\nexport interface AiJobInput<Input extends TaskInput = TaskInput> {\n taskType: string;\n aiProvider: string;\n taskInput: Input & { model: ModelConfig };\n /** JSON Schema for structured output, when the task declares x-structured-output. */\n outputSchema?: JsonSchema;\n /** Timeout in milliseconds for the provider API call. Defaults to 120s. */\n timeoutMs?: number;\n /** Opaque session token for multi-turn conversation caching (KV cache for local models, prompt caching for API providers). */\n sessionId?: string;\n}\n\n/**\n * Classifies a provider error as retryable or permanent based on known patterns.\n * Returns a RetryableJobError for transient issues (rate limits, network errors,\n * server errors) and a PermanentJobError for non-recoverable issues (auth, not found).\n */\nexport function classifyProviderError(err: unknown, taskType: string, provider: string): Error {\n if (\n err instanceof PermanentJobError ||\n err instanceof RetryableJobError ||\n err instanceof AbortSignalJobError\n ) {\n return err;\n }\n\n if (\n err instanceof ProviderUnsupportedFeatureError ||\n err instanceof ImageGenerationContentPolicyError\n ) {\n return new PermanentJobError(err.message);\n }\n if (err instanceof ImageGenerationProviderError) {\n return err.retryable\n ? new RetryableJobError(err.message)\n : new PermanentJobError(err.message);\n }\n\n const message = err instanceof Error ? err.message : String(err);\n const status =\n typeof (err as any)?.status === \"number\"\n ? (err as any).status\n : typeof (err as any)?.statusCode === \"number\"\n ? (err as any).statusCode\n : (() => {\n const m = message.match(/\\b([45]\\d{2})\\b/);\n return m ? parseInt(m[1], 10) : undefined;\n })();\n\n // Check for abort/cancellation\n if (err instanceof Error && err.name === \"AbortError\") {\n return new AbortSignalJobError(\n withJobErrorDiagnostics(`Provider call aborted for ${taskType} (${provider})`, err)\n );\n }\n if (err instanceof Error && err.name === \"TimeoutError\") {\n return new AbortSignalJobError(\n withJobErrorDiagnostics(`Provider call timed out for ${taskType} (${provider})`, err)\n );\n }\n // Catch abort patterns re-thrown as plain Errors (e.g. \"Pipeline download aborted\" from HFT)\n if (\n message.includes(\"Pipeline download aborted\") ||\n message.includes(\"Operation aborted\") ||\n message.includes(\"operation was aborted\") ||\n message.includes(\"The operation was aborted\")\n ) {\n return new AbortSignalJobError(\n withJobErrorDiagnostics(\n `Provider call aborted for ${taskType} (${provider}): ${message}`,\n err\n )\n );\n }\n\n // Incomplete model cache (e.g. missing preprocessor_config.json) — let the queue retry\n // so the provider re-downloads missing files on the next attempt.\n // The \"HFT_NULL_PROCESSOR:\" prefix is produced by HFT_Pipeline.ts\n // (HFT_NULL_PROCESSOR_PREFIX constant) when an image processor fails to initialize.\n if (message.startsWith(\"HFT_NULL_PROCESSOR:\")) {\n return new RetryableJobError(withJobErrorDiagnostics(message, err));\n }\n\n // Rate limiting (429) — retryable with backoff\n if (status === 429) {\n const retryAfterMatch = message.match(/retry.after[:\\s]*(\\d+)/i);\n const retryMs = retryAfterMatch ? parseInt(retryAfterMatch[1], 10) * 1000 : 30_000;\n return new RetryableJobError(\n withJobErrorDiagnostics(`Rate limited by ${provider} for ${taskType}: ${message}`, err),\n new Date(Date.now() + retryMs)\n );\n }\n\n // Auth errors (401, 403) — permanent\n if (status === 401 || status === 403) {\n return new PermanentJobError(\n withJobErrorDiagnostics(\n `Authentication failed for ${provider} (${taskType}): ${message}`,\n err\n )\n );\n }\n\n // Not found / invalid request (400, 404) — permanent\n if (status === 400 || status === 404) {\n return new PermanentJobError(\n withJobErrorDiagnostics(`Invalid request to ${provider} for ${taskType}: ${message}`, err)\n );\n }\n\n // Server errors (500, 502, 503, 529) — retryable\n if (status && status >= 500) {\n return new RetryableJobError(\n withJobErrorDiagnostics(\n `Server error from ${provider} for ${taskType} (HTTP ${status}): ${message}`,\n err\n )\n );\n }\n\n // Network errors — retryable\n if (\n message.includes(\"ECONNREFUSED\") ||\n message.includes(\"ECONNRESET\") ||\n message.includes(\"ETIMEDOUT\") ||\n message.includes(\"fetch failed\") ||\n message.includes(\"network\") ||\n (err instanceof TypeError && message.includes(\"fetch\"))\n ) {\n return new RetryableJobError(\n withJobErrorDiagnostics(`Network error calling ${provider} for ${taskType}: ${message}`, err)\n );\n }\n\n // Timeout errors — retryable\n if (message.includes(\"timed out\") || message.includes(\"timeout\")) {\n return new RetryableJobError(\n withJobErrorDiagnostics(`Timeout calling ${provider} for ${taskType}: ${message}`, err)\n );\n }\n\n // Default: treat unknown errors as permanent to avoid infinite retries\n return new PermanentJobError(\n withJobErrorDiagnostics(`Provider ${provider} failed for ${taskType}: ${message}`, err)\n );\n}\n\n/**\n * Extends the base Job class to provide custom execution functionality\n * through a provided function.\n */\nexport class AiJob<\n Input extends AiJobInput<TaskInput> = AiJobInput<TaskInput>,\n Output extends TaskOutput = TaskOutput,\n> extends Job<Input, Output> {\n /**\n * Executes the job using the provided function.\n */\n override async execute(input: Input, context: IJobExecuteContext): Promise<Output> {\n if (context.signal.aborted || this.status === JobStatus.ABORTING) {\n throw new AbortSignalJobError(\"Abort signal aborted before execution of job\");\n }\n\n let abortHandler: (() => void) | undefined;\n\n try {\n const abortPromise = new Promise<never>((_resolve, reject) => {\n const handler = () => {\n reject(new AbortSignalJobError(\"Abort signal seen, ending job\"));\n };\n\n context.signal.addEventListener(\"abort\", handler, { once: true });\n abortHandler = () => context.signal.removeEventListener(\"abort\", handler);\n });\n\n const runFn = async () => {\n const fn = getAiProviderRegistry().getDirectRunFn<Input[\"taskInput\"], Output>(\n input.aiProvider,\n input.taskType\n );\n const model = input.taskInput.model;\n // Second abort check after resolving run function (covers async gap)\n if (context.signal.aborted) {\n throw new AbortSignalJobError(\"Job aborted\");\n }\n\n // Apply timeout via AbortSignal.timeout combined with the caller's signal\n const timeoutMs = resolveAiJobTimeoutMs(input.aiProvider, input.timeoutMs);\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n const combinedSignal = AbortSignal.any([context.signal, timeoutSignal]);\n\n return await fn(\n input.taskInput,\n model,\n context.updateProgress,\n combinedSignal,\n input.outputSchema,\n input.sessionId\n );\n };\n const runFnPromise = runFn();\n\n return await Promise.race([runFnPromise, abortPromise]);\n } catch (err) {\n throw classifyProviderError(err, input.taskType, input.aiProvider);\n } finally {\n // Clean up the abort event listener to prevent memory leaks\n if (abortHandler) {\n abortHandler();\n }\n }\n }\n\n /**\n * Streaming execution: yields StreamEvents from the provider's stream function.\n * Falls back to non-streaming execute() if no stream function is registered.\n * On mid-stream errors, logs the failure, yields a finish event with the last\n * finish payload received (or an empty object if none was received), then\n * re-throws the classified error. Delta accumulation is the responsibility of\n * the caller (e.g. TaskRunner).\n */\n async *executeStream(\n input: Input,\n context: IJobExecuteContext\n ): AsyncIterable<StreamEvent<Output>> {\n if (context.signal.aborted || this.status === JobStatus.ABORTING) {\n throw new AbortSignalJobError(\"Abort signal aborted before streaming execution of job\");\n }\n\n const streamFn = getAiProviderRegistry().getStreamFn<Input[\"taskInput\"], Output>(\n input.aiProvider,\n input.taskType\n );\n\n if (!streamFn) {\n const result = await this.execute(input, context);\n yield { type: \"finish\", data: result } as StreamEvent<Output>;\n return;\n }\n\n const model = input.taskInput.model;\n\n // Apply timeout via AbortSignal.timeout combined with the caller's signal\n const timeoutMs = resolveAiJobTimeoutMs(input.aiProvider, input.timeoutMs);\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n const combinedSignal = AbortSignal.any([context.signal, timeoutSignal]);\n\n try {\n yield* streamFn(\n input.taskInput,\n model,\n combinedSignal,\n input.outputSchema,\n input.sessionId\n );\n } catch (err) {\n const logger = getLogger();\n logger.warn(\n `AiJob: Stream error for ${input.taskType} (${input.aiProvider}): ${err instanceof Error ? err.message : String(err)}`\n );\n throw classifyProviderError(err, input.taskType, input.aiProvider);\n }\n }\n}\n",
|
|
5
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AbortSignalJobError,\n IJobExecuteContext,\n Job,\n JobStatus,\n PermanentJobError,\n RetryableJobError,\n withJobErrorDiagnostics,\n} from \"@workglow/job-queue\";\nimport { TaskInput, TaskOutput } from \"@workglow/task-graph\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { JsonSchema } from \"@workglow/util/schema\";\nimport type { ModelConfig } from \"../model/ModelSchema\";\nimport { getAiProviderRegistry } from \"../provider/AiProviderRegistry\";\nimport {\n ImageGenerationContentPolicyError,\n ImageGenerationProviderError,\n ProviderUnsupportedFeatureError,\n} from \"../errors/ImageGenerationErrors\";\n\n/** Default timeout for provider API calls (2 minutes). */\nconst DEFAULT_AI_TIMEOUT_MS = 120_000;\n\n/** Local inference (CPU/WASM) often needs several minutes (downloads, load, multi-turn tool follow-up). */\nconst LOCAL_INFERENCE_DEFAULT_TIMEOUT_MS = 300_000;\n\nfunction resolveAiJobTimeoutMs(aiProvider: string, explicitMs: number | undefined): number {\n if (explicitMs !== undefined) {\n return explicitMs;\n }\n if (aiProvider === \"LOCAL_LLAMACPP\" || aiProvider === \"HF_TRANSFORMERS_ONNX\") {\n return LOCAL_INFERENCE_DEFAULT_TIMEOUT_MS;\n }\n return DEFAULT_AI_TIMEOUT_MS;\n}\n\n/**\n * Input data for the AiJob\n */\nexport interface AiJobInput<Input extends TaskInput = TaskInput> {\n taskType: string;\n aiProvider: string;\n taskInput: Input & { model: ModelConfig };\n /** JSON Schema for structured output, when the task declares x-structured-output. */\n outputSchema?: JsonSchema;\n /** Timeout in milliseconds for the provider API call. Defaults to 120s. */\n timeoutMs?: number;\n /** Opaque session token for multi-turn conversation caching (KV cache for local models, prompt caching for API providers). */\n sessionId?: string;\n}\n\n/**\n * Classifies a provider error as retryable or permanent based on known patterns.\n * Returns a RetryableJobError for transient issues (rate limits, network errors,\n * server errors) and a PermanentJobError for non-recoverable issues (auth, not found).\n */\nexport function classifyProviderError(err: unknown, taskType: string, provider: string): Error {\n if (\n err instanceof PermanentJobError ||\n err instanceof RetryableJobError ||\n err instanceof AbortSignalJobError\n ) {\n return err;\n }\n\n if (\n err instanceof ProviderUnsupportedFeatureError ||\n err instanceof ImageGenerationContentPolicyError\n ) {\n return new PermanentJobError(err.message);\n }\n if (err instanceof ImageGenerationProviderError) {\n return err.retryable ? new RetryableJobError(err.message) : new PermanentJobError(err.message);\n }\n\n const message = err instanceof Error ? err.message : String(err);\n const status =\n typeof (err as any)?.status === \"number\"\n ? (err as any).status\n : typeof (err as any)?.statusCode === \"number\"\n ? (err as any).statusCode\n : (() => {\n const m = message.match(/\\b([45]\\d{2})\\b/);\n return m ? parseInt(m[1], 10) : undefined;\n })();\n\n // Check for abort/cancellation\n if (err instanceof Error && err.name === \"AbortError\") {\n return new AbortSignalJobError(\n withJobErrorDiagnostics(`Provider call aborted for ${taskType} (${provider})`, err)\n );\n }\n if (err instanceof Error && err.name === \"TimeoutError\") {\n return new AbortSignalJobError(\n withJobErrorDiagnostics(`Provider call timed out for ${taskType} (${provider})`, err)\n );\n }\n // Catch abort patterns re-thrown as plain Errors (e.g. \"Pipeline download aborted\" from HFT)\n if (\n message.includes(\"Pipeline download aborted\") ||\n message.includes(\"Operation aborted\") ||\n message.includes(\"operation was aborted\") ||\n message.includes(\"The operation was aborted\")\n ) {\n return new AbortSignalJobError(\n withJobErrorDiagnostics(\n `Provider call aborted for ${taskType} (${provider}): ${message}`,\n err\n )\n );\n }\n\n // Incomplete model cache (e.g. missing preprocessor_config.json) — let the queue retry\n // so the provider re-downloads missing files on the next attempt.\n // The \"HFT_NULL_PROCESSOR:\" prefix is produced by HFT_Pipeline.ts\n // (HFT_NULL_PROCESSOR_PREFIX constant) when an image processor fails to initialize.\n if (message.startsWith(\"HFT_NULL_PROCESSOR:\")) {\n return new RetryableJobError(withJobErrorDiagnostics(message, err));\n }\n\n // Rate limiting (429) — retryable with backoff\n if (status === 429) {\n const retryAfterMatch = message.match(/retry.after[:\\s]*(\\d+)/i);\n const retryMs = retryAfterMatch ? parseInt(retryAfterMatch[1], 10) * 1000 : 30_000;\n return new RetryableJobError(\n withJobErrorDiagnostics(`Rate limited by ${provider} for ${taskType}: ${message}`, err),\n new Date(Date.now() + retryMs)\n );\n }\n\n // Auth errors (401, 403) — permanent\n if (status === 401 || status === 403) {\n return new PermanentJobError(\n withJobErrorDiagnostics(\n `Authentication failed for ${provider} (${taskType}): ${message}`,\n err\n )\n );\n }\n\n // Not found / invalid request (400, 404) — permanent\n if (status === 400 || status === 404) {\n return new PermanentJobError(\n withJobErrorDiagnostics(`Invalid request to ${provider} for ${taskType}: ${message}`, err)\n );\n }\n\n // Server errors (500, 502, 503, 529) — retryable\n if (status && status >= 500) {\n return new RetryableJobError(\n withJobErrorDiagnostics(\n `Server error from ${provider} for ${taskType} (HTTP ${status}): ${message}`,\n err\n )\n );\n }\n\n // Network errors — retryable\n if (\n message.includes(\"ECONNREFUSED\") ||\n message.includes(\"ECONNRESET\") ||\n message.includes(\"ETIMEDOUT\") ||\n message.includes(\"fetch failed\") ||\n message.includes(\"network\") ||\n (err instanceof TypeError && message.includes(\"fetch\"))\n ) {\n return new RetryableJobError(\n withJobErrorDiagnostics(`Network error calling ${provider} for ${taskType}: ${message}`, err)\n );\n }\n\n // Timeout errors — retryable\n if (message.includes(\"timed out\") || message.includes(\"timeout\")) {\n return new RetryableJobError(\n withJobErrorDiagnostics(`Timeout calling ${provider} for ${taskType}: ${message}`, err)\n );\n }\n\n // Default: treat unknown errors as permanent to avoid infinite retries\n return new PermanentJobError(\n withJobErrorDiagnostics(`Provider ${provider} failed for ${taskType}: ${message}`, err)\n );\n}\n\n/**\n * Extends the base Job class to provide custom execution functionality\n * through a provided function.\n */\nexport class AiJob<\n Input extends AiJobInput<TaskInput> = AiJobInput<TaskInput>,\n Output extends TaskOutput = TaskOutput,\n> extends Job<Input, Output> {\n /**\n * Executes the job using the provided function.\n */\n override async execute(input: Input, context: IJobExecuteContext): Promise<Output> {\n if (context.signal.aborted || this.status === JobStatus.ABORTING) {\n throw new AbortSignalJobError(\"Abort signal aborted before execution of job\");\n }\n\n let abortHandler: (() => void) | undefined;\n\n try {\n const abortPromise = new Promise<never>((_resolve, reject) => {\n const handler = () => {\n reject(new AbortSignalJobError(\"Abort signal seen, ending job\"));\n };\n\n context.signal.addEventListener(\"abort\", handler, { once: true });\n abortHandler = () => context.signal.removeEventListener(\"abort\", handler);\n });\n\n const runFn = async () => {\n const fn = getAiProviderRegistry().getDirectRunFn<Input[\"taskInput\"], Output>(\n input.aiProvider,\n input.taskType\n );\n const model = input.taskInput.model;\n // Second abort check after resolving run function (covers async gap)\n if (context.signal.aborted) {\n throw new AbortSignalJobError(\"Job aborted\");\n }\n\n // Apply timeout via AbortSignal.timeout combined with the caller's signal\n const timeoutMs = resolveAiJobTimeoutMs(input.aiProvider, input.timeoutMs);\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n const combinedSignal = AbortSignal.any([context.signal, timeoutSignal]);\n\n return await fn(\n input.taskInput,\n model,\n context.updateProgress,\n combinedSignal,\n input.outputSchema,\n input.sessionId\n );\n };\n const runFnPromise = runFn();\n\n return await Promise.race([runFnPromise, abortPromise]);\n } catch (err) {\n throw classifyProviderError(err, input.taskType, input.aiProvider);\n } finally {\n // Clean up the abort event listener to prevent memory leaks\n if (abortHandler) {\n abortHandler();\n }\n }\n }\n\n /**\n * Streaming execution: yields StreamEvents from the provider's stream function.\n * Falls back to non-streaming execute() if no stream function is registered.\n * On mid-stream errors, logs the failure, yields a finish event with the last\n * finish payload received (or an empty object if none was received), then\n * re-throws the classified error. Delta accumulation is the responsibility of\n * the caller (e.g. TaskRunner).\n */\n async *executeStream(\n input: Input,\n context: IJobExecuteContext\n ): AsyncIterable<StreamEvent<Output>> {\n if (context.signal.aborted || this.status === JobStatus.ABORTING) {\n throw new AbortSignalJobError(\"Abort signal aborted before streaming execution of job\");\n }\n\n const streamFn = getAiProviderRegistry().getStreamFn<Input[\"taskInput\"], Output>(\n input.aiProvider,\n input.taskType\n );\n\n if (!streamFn) {\n const result = await this.execute(input, context);\n yield { type: \"finish\", data: result } as StreamEvent<Output>;\n return;\n }\n\n const model = input.taskInput.model;\n\n // Apply timeout via AbortSignal.timeout combined with the caller's signal\n const timeoutMs = resolveAiJobTimeoutMs(input.aiProvider, input.timeoutMs);\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n const combinedSignal = AbortSignal.any([context.signal, timeoutSignal]);\n\n try {\n yield* streamFn(input.taskInput, model, combinedSignal, input.outputSchema, input.sessionId);\n } catch (err) {\n const logger = getLogger();\n logger.warn(\n `AiJob: Stream error for ${input.taskType} (${input.aiProvider}): ${err instanceof Error ? err.message : String(err)}`\n );\n throw classifyProviderError(err, input.taskType, input.aiProvider);\n }\n }\n}\n",
|
|
6
6
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { TaskInput, TaskOutput } from \"@workglow/task-graph\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { globalServiceRegistry, WORKER_MANAGER } from \"@workglow/util/worker\";\nimport type { JsonSchema } from \"@workglow/util/worker\";\nimport { DirectExecutionStrategy } from \"../execution/DirectExecutionStrategy\";\nimport type { IAiExecutionStrategy, AiStrategyResolver } from \"../execution/IAiExecutionStrategy\";\nimport type { ModelConfig } from \"../model/ModelSchema\";\nimport type { AiProvider } from \"./AiProvider\";\n\n/**\n * Type for the run function for the AiJob.\n * The optional `outputSchema` is provided when the task declares structured output\n * (via `x-structured-output: true`). Providers use it to request schema-conformant\n * JSON output from the model API.\n */\nexport type AiProviderRunFn<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Model extends ModelConfig = ModelConfig,\n> = (\n input: Input,\n model: Model | undefined,\n update_progress: (progress: number, message?: string, details?: any) => void,\n signal: AbortSignal,\n outputSchema?: JsonSchema,\n sessionId?: string\n) => Promise<Output>;\n\n/**\n * Type for the preview run function for AiTask.executePreview().\n * Computes a fast preview from input alone -- no prior output needed.\n * No `signal` or `update_progress` -- preview execution is lightweight and synchronous-ish.\n */\nexport type AiProviderPreviewRunFn<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Model extends ModelConfig = ModelConfig,\n> = (input: Input, model: Model | undefined) => Promise<Output | undefined>;\n\n/**\n * Type for the streaming run function for the AiJob.\n * Returns an AsyncIterable of StreamEvents instead of a Promise.\n * No `update_progress` callback -- for streaming providers, the stream itself IS the progress signal.\n * The optional `outputSchema` is provided for structured output tasks.\n *\n * Streaming primitive: this is the canonical authoring surface for provider streams.\n * Implementations MUST be `async function*` generators returning `AsyncIterable`.\n * Do not return a `ReadableStream` -- `ReadableStream` is an engine-internal primitive\n * used only at the dataflow edge for fan-out via `tee()`.\n *\n * Finish convention: yield `{ type: \"finish\", data: {} as Output }` at the end.\n * Do not accumulate deltas into the finish payload -- the `StreamingAiTask` / `TaskRunner`\n * consumer handles accumulation.\n *\n * @cancel The provided `signal` MUST be forwarded to the underlying SDK or fetch.\n * Generators MUST stop yielding promptly after `signal.aborted` becomes true -- either\n * because the underlying SDK tears down the connection, or because the generator checks\n * `signal.aborted` at loop boundaries. Use `try { ... } finally { ... }` to release any\n * resources (readers, timers) -- `finally` runs when the consumer stops iterating on abort.\n * On abort, the consumer will throw `TaskAbortedError`; do not swallow abort errors.\n */\nexport type AiProviderStreamFn<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Model extends ModelConfig = ModelConfig,\n> = (\n input: Input,\n model: Model | undefined,\n signal: AbortSignal,\n outputSchema?: JsonSchema,\n sessionId?: string\n) => AsyncIterable<StreamEvent<Output>>;\n\n/**\n * Registry that manages provider-specific task execution functions and job queues.\n * Handles the registration, retrieval, and execution of task processing functions\n * for different model providers and task types.\n */\nexport class AiProviderRegistry {\n runFnRegistry: Map<string, Map<string, AiProviderRunFn<any, any>>> = new Map();\n streamFnRegistry: Map<string, Map<string, AiProviderStreamFn<any, any>>> = new Map();\n previewRunFnRegistry: Map<string, Map<string, AiProviderPreviewRunFn<any, any>>> = new Map();\n private providers: Map<string, AiProvider<any>> = new Map();\n private strategyResolvers: Map<string, AiStrategyResolver> = new Map();\n private defaultStrategy: IAiExecutionStrategy | undefined;\n\n /**\n * Registers an AiProvider instance for lifecycle management and introspection.\n * @param provider - The provider instance to register\n */\n registerProvider(provider: AiProvider<any>): void {\n this.providers.set(provider.name, provider);\n }\n\n /**\n * Removes a previously registered provider and all of its run/stream/preview functions.\n * Used for cleanup when provider initialization fails partway through.\n * @param name - The provider name to unregister\n */\n unregisterProvider(name: string): void {\n this.providers.delete(name);\n this.strategyResolvers.delete(name);\n // Remove all run functions for this provider\n for (const [, providerMap] of this.runFnRegistry) {\n providerMap.delete(name);\n }\n for (const [, providerMap] of this.streamFnRegistry) {\n providerMap.delete(name);\n }\n for (const [, providerMap] of this.previewRunFnRegistry) {\n providerMap.delete(name);\n }\n }\n\n /**\n * Retrieves a registered AiProvider instance by name.\n * @param name - The provider name (e.g., \"HF_TRANSFORMERS_ONNX\")\n * @returns The provider instance, or undefined if not found\n */\n getProvider(name: string): AiProvider<any> | undefined {\n return this.providers.get(name);\n }\n\n /**\n * Returns all registered AiProvider instances.\n */\n getProviders(): Map<string, AiProvider<any>> {\n return new Map(this.providers);\n }\n\n /**\n * Stable-sorted ids of all {@link AiProvider} instances currently registered\n * via {@link registerProvider} (typically after {@link AiProvider.register}).\n */\n getInstalledProviderIds(): string[] {\n return [...this.providers.keys()].sort();\n }\n\n /**\n * Registers a strategy resolver for a provider. The resolver receives the full\n * ModelConfig at execution time and returns the appropriate execution strategy.\n * This allows model-aware decisions (e.g., HFT WebGPU → queued, HFT WASM → direct).\n */\n registerStrategyResolver(providerName: string, resolver: AiStrategyResolver): void {\n this.strategyResolvers.set(providerName, resolver);\n }\n\n /**\n * Sets the default execution strategy used when no provider-specific resolver\n * is registered. Useful in tests to inject a strategy without registering a\n * full provider.\n */\n setDefaultStrategy(strategy: IAiExecutionStrategy): void {\n this.defaultStrategy = strategy;\n }\n\n /**\n * Resolves the execution strategy for a given model config.\n * Falls back to DirectExecutionStrategy if no resolver is registered.\n */\n getStrategy(model: ModelConfig): IAiExecutionStrategy {\n const resolver = this.strategyResolvers.get(model.provider);\n if (resolver) return resolver(model);\n if (!this.defaultStrategy) {\n this.defaultStrategy = new DirectExecutionStrategy();\n }\n return this.defaultStrategy;\n }\n\n /**\n * Creates a session on the named provider.\n * @param providerName - The provider to create a session on\n * @param model - The model configuration for the session\n * @returns An opaque session ID\n * @throws If the provider is not registered\n */\n createSession(providerName: string, model: ModelConfig): string {\n const provider = this.providers.get(providerName);\n if (!provider) {\n throw new Error(\n `No provider found for \"${providerName}\". Register the provider before creating sessions.`\n );\n }\n return provider.createSession(model);\n }\n\n /**\n * Disposes a session on the named provider. Silently ignores unknown providers.\n * @param providerName - The provider that owns the session\n * @param sessionId - The session ID to dispose\n */\n async disposeSession(providerName: string, sessionId: string): Promise<void> {\n const provider = this.providers.get(providerName);\n if (provider) {\n await provider.disposeSession(sessionId);\n }\n }\n\n /**\n * Stable-sorted provider ids that have a direct run function registered for `taskType`.\n * Use this when the UI or validation should only offer providers that can execute a task\n * (e.g. {@link ModelSearchTask}).\n */\n getProviderIdsForTask(taskType: string): string[] {\n const taskMap = this.runFnRegistry.get(taskType);\n if (!taskMap) return [];\n return [...taskMap.keys()].sort();\n }\n\n /**\n * Registers a task execution function for a specific task type and model provider\n * @param taskType - The type of task (e.g., 'text-generation', 'embedding')\n * @param modelProvider - The provider of the model (e.g., 'hf-transformers', 'tf-mediapipe', 'openai', etc)\n * @param runFn - The function that executes the task\n */\n registerRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(\n modelProvider: string,\n taskType: string,\n runFn: AiProviderRunFn<Input, Output>\n ) {\n if (!this.runFnRegistry.has(taskType)) {\n this.runFnRegistry.set(taskType, new Map());\n }\n this.runFnRegistry.get(taskType)!.set(modelProvider, runFn);\n }\n\n registerAsWorkerRunFn<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n >(modelProvider: string, taskType: string) {\n const workerFn: AiProviderRunFn<Input, Output> = async (\n input: Input,\n model: ModelConfig | undefined,\n update_progress: (progress: number, message?: string, details?: any) => void,\n signal?: AbortSignal,\n outputSchema?: JsonSchema,\n sessionId?: string\n ) => {\n const workerManager = globalServiceRegistry.get(WORKER_MANAGER);\n const result = await workerManager.callWorkerFunction<Output>(\n modelProvider,\n taskType,\n [input, model, outputSchema, sessionId],\n {\n signal: signal,\n onProgress: update_progress,\n }\n );\n return result;\n };\n this.registerRunFn<Input, Output>(modelProvider, taskType, workerFn);\n }\n\n /**\n * Registers a streaming execution function for a specific task type and model provider.\n * @param modelProvider - The provider of the model (e.g., 'openai', 'anthropic', etc.)\n * @param taskType - The type of task (e.g., 'TextGenerationTask')\n * @param streamFn - The async generator function that yields StreamEvents\n */\n registerStreamFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(\n modelProvider: string,\n taskType: string,\n streamFn: AiProviderStreamFn<Input, Output>\n ) {\n if (!this.streamFnRegistry.has(taskType)) {\n this.streamFnRegistry.set(taskType, new Map());\n }\n this.streamFnRegistry.get(taskType)!.set(modelProvider, streamFn);\n }\n\n /**\n * Registers a worker-proxied streaming function for a specific task type and model provider.\n * Creates a proxy that delegates streaming to a Web Worker via WorkerManager.\n * The proxy calls `callWorkerStreamFunction()` which sends a `stream: true` call message\n * and yields `stream_chunk` messages from the worker as an AsyncIterable.\n */\n registerAsWorkerStreamFn<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n >(modelProvider: string, taskType: string) {\n const streamFn: AiProviderStreamFn<Input, Output> = async function* (\n input: Input,\n model: ModelConfig | undefined,\n signal: AbortSignal,\n outputSchema?: JsonSchema,\n sessionId?: string\n ) {\n const workerManager = globalServiceRegistry.get(WORKER_MANAGER);\n yield* workerManager.callWorkerStreamFunction<StreamEvent<Output>>(\n modelProvider,\n taskType,\n [input, model, outputSchema, sessionId],\n { signal }\n );\n };\n this.registerStreamFn<Input, Output>(modelProvider, taskType, streamFn);\n }\n\n /**\n * Retrieves the streaming execution function for a task type and model provider.\n * Returns undefined if no streaming function is registered (fallback to non-streaming).\n */\n getStreamFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(\n modelProvider: string,\n taskType: string\n ): AiProviderStreamFn<Input, Output> | undefined {\n const taskTypeMap = this.streamFnRegistry.get(taskType);\n return taskTypeMap?.get(modelProvider) as AiProviderStreamFn<Input, Output> | undefined;\n }\n\n /**\n * Registers a worker-proxied preview function for a specific task type and model provider.\n * Creates a proxy that delegates preview execution to a Web Worker via WorkerManager.\n * Returns undefined (non-throwing) if the worker has no preview function for the task type.\n */\n registerAsWorkerPreviewRunFn<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n >(modelProvider: string, taskType: string) {\n const previewFn: AiProviderPreviewRunFn<Input, Output> = async (\n input: Input,\n model: ModelConfig | undefined\n ) => {\n const workerManager = globalServiceRegistry.get(WORKER_MANAGER);\n return workerManager.callWorkerPreviewFunction<Output>(modelProvider, taskType, [\n input,\n model,\n ]);\n };\n this.registerPreviewRunFn<Input, Output>(modelProvider, taskType, previewFn);\n }\n\n /**\n * Registers a preview execution function for a specific task type and model provider.\n * Called by AiTask.executePreview() to provide a fast, lightweight preview without a network call.\n */\n registerPreviewRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(\n modelProvider: string,\n taskType: string,\n previewRunFn: AiProviderPreviewRunFn<Input, Output>\n ) {\n if (!this.previewRunFnRegistry.has(taskType)) {\n this.previewRunFnRegistry.set(taskType, new Map());\n }\n this.previewRunFnRegistry.get(taskType)!.set(modelProvider, previewRunFn);\n }\n\n /**\n * Retrieves the preview execution function for a task type and model provider.\n * Returns undefined if no preview function is registered (fallback to default behavior).\n */\n getPreviewRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(\n modelProvider: string,\n taskType: string\n ): AiProviderPreviewRunFn<Input, Output> | undefined {\n const taskTypeMap = this.previewRunFnRegistry.get(taskType);\n return taskTypeMap?.get(modelProvider) as AiProviderPreviewRunFn<Input, Output> | undefined;\n }\n\n /**\n * Retrieves the direct execution function for a task type and model\n * Bypasses the job queue system for immediate execution\n */\n getDirectRunFn<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput>(\n modelProvider: string,\n taskType: string\n ) {\n const taskTypeMap = this.runFnRegistry.get(taskType);\n const runFn = taskTypeMap?.get(modelProvider) as AiProviderRunFn<Input, Output> | undefined;\n if (!runFn) {\n const installedProviders = this.getInstalledProviderIds();\n const providersForTask = this.getProviderIdsForTask(taskType);\n const hint =\n providersForTask.length > 0\n ? ` Providers supporting \"${taskType}\": [${providersForTask.join(\", \")}].`\n : installedProviders.length > 0\n ? ` Installed providers: [${installedProviders.join(\", \")}] (none support \"${taskType}\").`\n : \" No providers are registered. Call provider.register() before running AI tasks.\";\n throw new Error(\n `No run function found for task type \"${taskType}\" and provider \"${modelProvider}\".${hint}`\n );\n }\n return runFn;\n }\n}\n\n// Singleton instance management for the ProviderRegistry\nlet providerRegistry: AiProviderRegistry = new AiProviderRegistry();\nexport function getAiProviderRegistry() {\n return providerRegistry;\n}\nexport function setAiProviderRegistry(pr: AiProviderRegistry) {\n providerRegistry = pr;\n}\n",
|
|
7
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Thrown synchronously from validateInput() when the requested model cannot\n * support a feature on the provided input (e.g., Gemini + mask, HF + multiple images).\n * Surfaces before any worker/queue dispatch.\n */\nexport class ProviderUnsupportedFeatureError extends Error {\n public readonly retryable = false;\n constructor(\n public readonly field: string,\n public readonly modelId: string,\n detail: string
|
|
7
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Thrown synchronously from validateInput() when the requested model cannot\n * support a feature on the provided input (e.g., Gemini + mask, HF + multiple images).\n * Surfaces before any worker/queue dispatch.\n */\nexport class ProviderUnsupportedFeatureError extends Error {\n public readonly retryable = false;\n constructor(\n public readonly field: string,\n public readonly modelId: string,\n detail: string\n ) {\n super(`Model \"${modelId}\" does not support input field \"${field}\": ${detail}`);\n this.name = \"ProviderUnsupportedFeatureError\";\n }\n}\n\n/**\n * Thrown when a provider returns a content-policy refusal (OpenAI moderation,\n * Gemini SAFETY block, HF NSFW filter). Non-retryable.\n */\nexport class ImageGenerationContentPolicyError extends Error {\n public readonly retryable = false;\n constructor(\n public readonly modelId: string,\n public readonly providerReason: string\n ) {\n super(`Image generation refused by ${modelId}: ${providerReason}`);\n this.name = \"ImageGenerationContentPolicyError\";\n }\n}\n\n/**\n * Wraps any other provider failure (rate limits, transient 5xx, malformed responses).\n * Retryable per the existing job-queue retry policy.\n */\nexport class ImageGenerationProviderError extends Error {\n public readonly retryable = true;\n constructor(\n public readonly modelId: string,\n message: string,\n options?: ErrorOptions\n ) {\n super(`${modelId}: ${message}`, options);\n this.name = \"ImageGenerationProviderError\";\n }\n}\n",
|
|
8
8
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { IExecuteContext, TaskInput, TaskOutput } from \"@workglow/task-graph\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { AiJob } from \"../job/AiJob\";\nimport type { AiJobInput } from \"../job/AiJob\";\nimport type { IAiExecutionStrategy } from \"./IAiExecutionStrategy\";\n\n/**\n * Executes AI jobs directly without a queue. Used by API providers\n * (OpenAI, Anthropic, etc.) and local providers that don't require\n * GPU serialization or concurrency control.\n */\nexport class DirectExecutionStrategy implements IAiExecutionStrategy {\n async execute(\n jobInput: AiJobInput<TaskInput>,\n context: IExecuteContext,\n runnerId: string | undefined\n ): Promise<TaskOutput> {\n const job = new AiJob({\n queueName: jobInput.aiProvider,\n jobRunId: runnerId,\n input: jobInput,\n });\n\n const cleanup = job.onJobProgress(\n (progress: number, message: string, details: Record<string, any> | null) => {\n context.updateProgress(progress, message, details);\n }\n );\n\n try {\n return await job.execute(jobInput, {\n signal: context.signal,\n updateProgress: context.updateProgress,\n });\n } finally {\n cleanup();\n }\n }\n\n async *executeStream(\n jobInput: AiJobInput<TaskInput>,\n context: IExecuteContext,\n runnerId: string | undefined\n ): AsyncIterable<StreamEvent<TaskOutput>> {\n const job = new AiJob({\n queueName: jobInput.aiProvider,\n jobRunId: runnerId,\n input: jobInput,\n });\n\n yield* job.executeStream(jobInput, {\n signal: context.signal,\n updateProgress: context.updateProgress,\n });\n }\n\n abort(): void {\n // No-op — abort handled via AbortSignal passed through context\n }\n}\n",
|
|
9
9
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AbortSignalJobError,\n ConcurrencyLimiter,\n JobQueueClient,\n JobQueueServer,\n} from \"@workglow/job-queue\";\nimport type { ILimiter } from \"@workglow/job-queue\";\nimport { InMemoryQueueStorage } from \"@workglow/storage\";\nimport { getTaskQueueRegistry, TaskConfigurationError } from \"@workglow/task-graph\";\nimport type { RegisteredQueue, IExecuteContext, TaskInput, TaskOutput } from \"@workglow/task-graph\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { AiJob } from \"../job/AiJob\";\nimport type { AiJobInput } from \"../job/AiJob\";\nimport type { IAiExecutionStrategy } from \"./IAiExecutionStrategy\";\n\n/**\n * Executes AI jobs through a job queue with concurrency control.\n * Used by providers that need GPU serialization (e.g., HFT with WebGPU,\n * LlamaCpp).\n *\n * The queue is created lazily on first use and registered in the\n * global TaskQueueRegistry for deduplication.\n */\nexport class QueuedExecutionStrategy implements IAiExecutionStrategy {\n /**\n * Memoized initialization promise so that concurrent calls to ensureQueue()\n * within the same strategy instance share a single queue-creation flow.\n */\n private initPromise: Promise<RegisteredQueue<AiJobInput<TaskInput>, TaskOutput>> | null = null;\n\n /**\n * Shared limiter used by both the underlying JobQueueServer (for `execute`)\n * and `executeStream` below. Created lazily in createQueue() and reused so\n * streaming calls compete for the same concurrency slots as queued jobs.\n */\n private limiter: ILimiter | undefined;\n\n constructor(\n private readonly queueName: string,\n private readonly concurrency: number = 1,\n /**\n * When false, the strategy will use a pre-registered queue and throw if\n * none exists. When true (default), it auto-creates the queue on first use.\n */\n private readonly autoCreate: boolean = true\n ) {}\n\n async execute(\n jobInput: AiJobInput<TaskInput>,\n context: IExecuteContext,\n runnerId: string | undefined\n ): Promise<TaskOutput> {\n // Bail early to avoid submitting a job that's already been cancelled.\n if (context.signal.aborted) {\n throw context.signal.reason ?? new AbortSignalJobError(\"The operation was aborted\");\n }\n\n const registeredQueue = await this.ensureQueue();\n const { client } = registeredQueue;\n\n const handle = await client.submit(jobInput, {\n jobRunId: runnerId,\n maxRetries: 10,\n });\n\n // Wire the task abort signal to the queued job so that aborting the task\n // (e.g., via TaskRunner timeout) also cancels the in-flight queue job.\n const onAbort = () => {\n handle.abort().catch((err) => {\n console.warn(`Failed to abort queued job`, err);\n });\n };\n context.signal.addEventListener(\"abort\", onAbort);\n\n const cleanupProgress = handle.onProgress(\n (progress: number, message: string | undefined, details: Record<string, any> | null) => {\n context.updateProgress(progress, message, details);\n }\n );\n\n try {\n // Re-check after registering the listener to close the race window\n // between submit and listener registration.\n if (context.signal.aborted) {\n throw context.signal.reason ?? new AbortSignalJobError(\"The operation was aborted\");\n }\n const output = await handle.waitFor();\n return output as TaskOutput;\n } finally {\n cleanupProgress();\n context.signal.removeEventListener(\"abort\", onAbort);\n }\n }\n\n abort(): void {\n // No-op — abort is handled via the AbortSignal wired in execute().\n }\n\n /**\n * Streaming execution for queued providers. Runs the provider's stream\n * function directly (bypassing the storage-backed queue, which can't\n * forward mid-stream events) while still acquiring a slot from the same\n * concurrency limiter the queue uses — so GPU serialization is preserved.\n *\n * AiJob.executeStream handles worker-proxy lookup, abort wiring, timeouts,\n * and error classification; we just gate it through the limiter.\n */\n async *executeStream(\n jobInput: AiJobInput<TaskInput>,\n context: IExecuteContext,\n runnerId: string | undefined\n ): AsyncIterable<StreamEvent<TaskOutput>> {\n if (context.signal.aborted) {\n throw context.signal.reason ?? new AbortSignalJobError(\"The operation was aborted\");\n }\n\n // Ensure the queue (and thus the shared limiter) has been created.\n await this.ensureQueue();\n const limiter = this.limiter;\n if (!limiter) {\n throw new TaskConfigurationError(\n `QueuedExecutionStrategy: limiter was not initialized for queue \"${this.queueName}\"`\n );\n }\n\n await this.acquireLimiterSlot(limiter, context.signal);\n\n try {\n const job = new AiJob({\n queueName: jobInput.aiProvider,\n jobRunId: runnerId,\n input: jobInput,\n });\n\n yield* job.executeStream(jobInput, {\n signal: context.signal,\n updateProgress: context.updateProgress,\n });\n } finally {\n await limiter.recordJobCompletion();\n }\n }\n\n /**\n * Spin-wait on `limiter.canProceed()` until a slot is available or the\n * abort signal fires. Yields to the microtask queue between polls; for\n * concurrency=1 with one caller at a time this usually takes one check.\n */\n private async acquireLimiterSlot(limiter: ILimiter, signal: AbortSignal): Promise<void> {\n const poll = async (): Promise<void> => {\n while (!(await limiter.canProceed())) {\n if (signal.aborted) {\n throw signal.reason ?? new AbortSignalJobError(\"The operation was aborted\");\n }\n const next = await limiter.getNextAvailableTime();\n const delay = Math.max(0, next.getTime() - Date.now());\n await new Promise<void>((resolve) => setTimeout(resolve, Math.min(delay, 50)));\n }\n };\n await poll();\n await limiter.recordJobStart();\n }\n\n private ensureQueue(): Promise<RegisteredQueue<AiJobInput<TaskInput>, TaskOutput>> {\n if (!this.initPromise) {\n this.initPromise = this.createQueue().catch((err) => {\n // Reset so next execution retries (e.g., transient storage error or late queue registration).\n this.initPromise = null;\n throw err;\n });\n }\n return this.initPromise;\n }\n\n private async createQueue(): Promise<RegisteredQueue<AiJobInput<TaskInput>, TaskOutput>> {\n const registry = getTaskQueueRegistry();\n const existing = registry.getQueue<AiJobInput<TaskInput>, TaskOutput>(this.queueName);\n if (existing) {\n if (!existing.server.isRunning()) {\n await existing.server.start();\n }\n this.limiter = existing.server.limiter;\n return existing;\n }\n\n if (!this.autoCreate) {\n throw new TaskConfigurationError(\n `Queue \"${this.queueName}\" is not registered and autoCreate is disabled. ` +\n `Register the queue before executing tasks with this provider.`\n );\n }\n\n const storage = new InMemoryQueueStorage<AiJobInput<TaskInput>, TaskOutput>(this.queueName);\n await storage.setupDatabase();\n\n this.limiter = new ConcurrencyLimiter(this.concurrency);\n const server = new JobQueueServer<AiJobInput<TaskInput>, TaskOutput>(AiJob, {\n storage,\n queueName: this.queueName,\n limiter: this.limiter,\n });\n\n const client = new JobQueueClient<AiJobInput<TaskInput>, TaskOutput>({\n storage,\n queueName: this.queueName,\n });\n\n client.attach(server);\n\n const registeredQueue: RegisteredQueue<AiJobInput<TaskInput>, TaskOutput> = {\n server,\n client,\n storage,\n };\n\n try {\n registry.registerQueue(registeredQueue);\n } catch (err: unknown) {\n if (err instanceof Error && err.message.includes(\"already exists\")) {\n // Another strategy instance won the race; use its queue. Stop the server\n // we just created (safe no-op since it was never started) to release any\n // resources eagerly, and drop our references so they can be GC'd.\n server.stop().catch((stopErr) => {\n console.warn(\"QueuedExecutionStrategy: failed to stop raced-out queue server\", stopErr);\n });\n const raced = registry.getQueue<AiJobInput<TaskInput>, TaskOutput>(this.queueName);\n if (raced) {\n if (!raced.server.isRunning()) {\n await raced.server.start();\n }\n this.limiter = raced.server.limiter;\n return raced;\n }\n }\n throw err;\n }\n\n await server.start();\n return registeredQueue;\n }\n}\n",
|
|
10
10
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { JsonSchema } from \"@workglow/util/worker\";\n\n/**\n * A tool definition that can be passed to an LLM for tool calling.\n * Can be created manually or generated from TaskRegistry entries via `taskTypesToTools` in ToolCallingTask.\n *\n * The `name` is used both as the tool name presented to the LLM and as a\n * lookup key for the backing Task in the TaskRegistry. When a tool is\n * backed by a configurable task (e.g. `McpToolCallTask`, `JavaScriptTask`),\n * `configSchema` describes what configuration the task accepts and `config`\n * provides the concrete values. The LLM never sees `configSchema` or\n * `config` — they are setup-time concerns used when instantiating the task.\n */\nexport interface ToolDefinition {\n name: string;\n description: string;\n inputSchema: JsonSchema;\n outputSchema?: JsonSchema;\n /**\n * Optional discriminator for tool resolution. When specified, skips\n * duck-typing heuristics:\n * - `\"function\"` — uses the `execute` function directly\n * - `\"task\"` — looks up the task by `name` in the TaskRegistry\n *\n * When omitted, resolution falls back to the existing heuristic\n * (check `execute`, then registry lookup, then stub).\n */\n type?: \"function\" | \"task\";\n /** JSON Schema describing the task's configuration options. */\n configSchema?: JsonSchema;\n /** Concrete configuration values matching {@link configSchema}. */\n config?: Record<string, unknown>;\n /**\n * Optional custom executor function. When provided, the tool is executed\n * by calling this function directly instead of instantiating a Task.\n */\n execute?: (input: Record<string, unknown>) => Promise<Record<string, unknown>>;\n}\n\n/**\n * A tool call returned by the LLM, requesting invocation of a specific tool.\n */\nexport interface ToolCall {\n id: string;\n name: string;\n input: Record<string, unknown>;\n}\n\nexport type ToolCalls = Array<ToolCall>;\n\n/**\n * Controls which tools the model may call.\n * - `\"auto\"` — model decides whether to call tools\n * - `\"none\"` — model must not call any tools\n * - `\"required\"` — model must call at least one tool\n * - any other string — model must call the tool with that name\n */\nexport type ToolChoiceOption = \"auto\" | \"none\" | \"required\" | (string & {});\n\n/**\n * Builds a tool description string for provider APIs, appending the output\n * schema when present. Shared across all provider implementations.\n */\nexport function buildToolDescription(tool: ToolDefinition): string {\n let desc = tool.description;\n if (tool.outputSchema && typeof tool.outputSchema === \"object\") {\n desc += `\\n\\nReturns: ${JSON.stringify(tool.outputSchema)}`;\n }\n return desc;\n}\n\n/**\n * Validates that a tool call name returned by the LLM matches one of the\n * allowed tool definitions. Returns true if valid, false otherwise.\n */\nexport function isAllowedToolName(\n name: string,\n allowedTools: ReadonlyArray<ToolDefinition>\n): boolean {\n return allowedTools.some((t) => t.name === name);\n}\n\n/**\n * Filters an array of tool calls, removing any whose name does not appear\n * in the provided tools list. Returns the filtered array.\n */\nexport function filterValidToolCalls(\n toolCalls: ToolCalls,\n allowedTools: ReadonlyArray<ToolDefinition>\n): ToolCalls {\n return toolCalls.filter((tc) => {\n if (tc.name && isAllowedToolName(tc.name, allowedTools)) {\n return true;\n }\n getLogger().warn(`Filtered out tool call with unknown name \"${tc.name ?? \"(missing)\"}\"`, {\n callId: tc.id,\n toolName: tc.name,\n });\n return false;\n });\n}\n",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { TaskRegistry } from \"@workglow/task-graph\";\nimport { AiChatTask } from \"./AiChatTask\";\nimport { BackgroundRemovalTask } from \"./BackgroundRemovalTask\";\nimport { ChunkRetrievalTask } from \"./ChunkRetrievalTask\";\nimport { ChunkVectorUpsertTask } from \"./ChunkVectorUpsertTask\";\nimport { ContextBuilderTask } from \"./ContextBuilderTask\";\nimport { CountTokensTask } from \"./CountTokensTask\";\nimport { DocumentEnricherTask } from \"./DocumentEnricherTask\";\nimport { DocumentUpsertTask } from \"./DocumentUpsertTask\";\nimport { DownloadModelTask } from \"./DownloadModelTask\";\nimport { ImageEditTask } from \"./generation/ImageEditTask\";\nimport { FaceDetectorTask } from \"./FaceDetectorTask\";\nimport { FaceLandmarkerTask } from \"./FaceLandmarkerTask\";\nimport { ImageGenerateTask } from \"./generation/ImageGenerateTask\";\nimport { GestureRecognizerTask } from \"./GestureRecognizerTask\";\nimport { HandLandmarkerTask } from \"./HandLandmarkerTask\";\nimport { HierarchicalChunkerTask } from \"./HierarchicalChunkerTask\";\nimport { HierarchyJoinTask } from \"./HierarchyJoinTask\";\nimport { KbToDocumentsTask } from \"./KbToDocumentsTask\";\nimport { ImageClassificationTask } from \"./ImageClassificationTask\";\nimport { ImageEmbeddingTask } from \"./ImageEmbeddingTask\";\nimport { ImageSegmentationTask } from \"./ImageSegmentationTask\";\nimport { ImageToTextTask } from \"./ImageToTextTask\";\nimport { ModelInfoTask } from \"./ModelInfoTask\";\nimport { ModelSearchTask } from \"./ModelSearchTask\";\nimport { ObjectDetectionTask } from \"./ObjectDetectionTask\";\nimport { PoseLandmarkerTask } from \"./PoseLandmarkerTask\";\nimport { QueryExpanderTask } from \"./QueryExpanderTask\";\nimport { RerankerTask } from \"./RerankerTask\";\nimport { StructuralParserTask } from \"./StructuralParserTask\";\nimport { StructuredGenerationTask } from \"./StructuredGenerationTask\";\nimport { TextChunkerTask } from \"./TextChunkerTask\";\nimport { TextClassificationTask } from \"./TextClassificationTask\";\nimport { TextEmbeddingTask } from \"./TextEmbeddingTask\";\nimport { TextFillMaskTask } from \"./TextFillMaskTask\";\nimport { TextGenerationTask } from \"./TextGenerationTask\";\nimport { TextLanguageDetectionTask } from \"./TextLanguageDetectionTask\";\nimport { TextNamedEntityRecognitionTask } from \"./TextNamedEntityRecognitionTask\";\nimport { TextQuestionAnswerTask } from \"./TextQuestionAnswerTask\";\nimport { TextRewriterTask } from \"./TextRewriterTask\";\nimport { TextSummaryTask } from \"./TextSummaryTask\";\nimport { TextTranslationTask } from \"./TextTranslationTask\";\nimport { ToolCallingTask } from \"./ToolCallingTask\";\nimport { TopicSegmenterTask } from \"./TopicSegmenterTask\";\nimport { UnloadModelTask } from \"./UnloadModelTask\";\nimport { VectorQuantizeTask } from \"./VectorQuantizeTask\";\nimport { VectorSimilarityTask } from \"./VectorSimilarityTask\";\n\n// Register all AI tasks with the TaskRegistry.\n// Centralized registration ensures tasks are available for JSON deserialization\n// and prevents tree-shaking issues.\nexport const registerAiTasks = () => {\n const tasks = [\n AiChatTask,\n BackgroundRemovalTask,\n CountTokensTask,\n ContextBuilderTask,\n DocumentEnricherTask,\n DocumentUpsertTask,\n ChunkRetrievalTask,\n ChunkVectorUpsertTask,\n DownloadModelTask,\n ImageEditTask,\n FaceDetectorTask,\n FaceLandmarkerTask,\n ImageGenerateTask,\n GestureRecognizerTask,\n HandLandmarkerTask,\n HierarchicalChunkerTask,\n HierarchyJoinTask,\n KbToDocumentsTask,\n ImageClassificationTask,\n ImageEmbeddingTask,\n ImageSegmentationTask,\n ImageToTextTask,\n ModelInfoTask,\n ModelSearchTask,\n ObjectDetectionTask,\n PoseLandmarkerTask,\n QueryExpanderTask,\n RerankerTask,\n StructuralParserTask,\n StructuredGenerationTask,\n TextChunkerTask,\n TextClassificationTask,\n TextEmbeddingTask,\n TextFillMaskTask,\n TextGenerationTask,\n TextLanguageDetectionTask,\n TextNamedEntityRecognitionTask,\n TextQuestionAnswerTask,\n TextRewriterTask,\n TextSummaryTask,\n TextTranslationTask,\n ToolCallingTask,\n TopicSegmenterTask,\n UnloadModelTask,\n VectorQuantizeTask,\n VectorSimilarityTask,\n ];\n tasks.map(TaskRegistry.registerTask);\n return tasks;\n};\n\nexport * from \"./AiChatTask\";\nexport * from \"./ChatMessage\";\nexport * from \"./BackgroundRemovalTask\";\nexport * from \"./base/AiImageOutputTask\";\nexport * from \"./base/AiTask\";\nexport * from \"./base/AiTaskSchemas\";\nexport * from \"./base/StreamingAiTask\";\nexport * from \"./ChunkRetrievalTask\";\nexport * from \"./ChunkVectorUpsertTask\";\nexport * from \"./ContextBuilderTask\";\nexport * from \"./CountTokensTask\";\nexport * from \"./DocumentEnricherTask\";\nexport * from \"./DocumentUpsertTask\";\nexport * from \"./DownloadModelTask\";\nexport * from \"./generation/ImageEditTask\";\nexport * from \"./FaceDetectorTask\";\nexport * from \"./FaceLandmarkerTask\";\nexport * from \"./generation/ImageGenerateTask\";\nexport * from \"./GestureRecognizerTask\";\nexport * from \"./HandLandmarkerTask\";\nexport * from \"./HierarchicalChunkerTask\";\nexport * from \"./HierarchyJoinTask\";\nexport * from \"./KbToDocumentsTask\";\nexport * from \"./ImageClassificationTask\";\nexport * from \"./ImageEmbeddingTask\";\nexport * from \"./ImageSegmentationTask\";\nexport * from \"./ImageToTextTask\";\nexport * from \"./MessageConversion\";\nexport * from \"./ModelInfoTask\";\nexport * from \"./ModelSearchTask\";\nexport * from \"./ObjectDetectionTask\";\nexport * from \"./PoseLandmarkerTask\";\nexport * from \"./QueryExpanderTask\";\nexport * from \"./RerankerTask\";\nexport * from \"./StructuralParserTask\";\nexport * from \"./StructuredGenerationTask\";\nexport * from \"./TextChunkerTask\";\nexport * from \"./TextClassificationTask\";\nexport * from \"./TextEmbeddingTask\";\nexport * from \"./TextFillMaskTask\";\nexport * from \"./TextGenerationTask\";\nexport * from \"./TextLanguageDetectionTask\";\nexport * from \"./TextNamedEntityRecognitionTask\";\nexport * from \"./TextQuestionAnswerTask\";\nexport * from \"./TextRewriterTask\";\nexport * from \"./TextSummaryTask\";\nexport * from \"./TextTranslationTask\";\nexport * from \"./ToolCallingTask\";\nexport * from \"./ToolCallingUtils\";\nexport * from \"./TopicSegmenterTask\";\nexport * from \"./UnloadModelTask\";\nexport * from \"./VectorQuantizeTask\";\nexport * from \"./VectorSimilarityTask\";\n",
|
|
18
18
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { IExecuteContext, StreamEvent } from \"@workglow/task-graph\";\nimport { TaskConfigSchema } from \"@workglow/task-graph\";\nimport type { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport type { AiJobInput } from \"../job/AiJob\";\nimport type { ModelConfig } from \"../model/ModelSchema\";\nimport { getAiProviderRegistry } from \"../provider/AiProviderRegistry\";\nimport { TypeModel } from \"./base/AiTaskSchemas\";\nimport { StreamingAiTask } from \"./base/StreamingAiTask\";\nimport type { ChatMessage, ContentBlock } from \"./ChatMessage\";\nimport { ChatMessageSchema, ContentBlockSchema } from \"./ChatMessage\";\nimport type { IHumanRequest } from \"@workglow/util\";\nimport { resolveHumanConnector } from \"@workglow/util\";\n\n// ========================================================================\n// Schemas\n// ========================================================================\n\nconst modelSchema = TypeModel(\"model:AiChatTask\");\n\n/**\n * Connector elicit schema. The connector side renders a plain text field\n * for this — chat UIs let the user type a message, not author a JSON\n * ContentBlock array. AiChatTask wraps the string into\n * `[{ type: \"text\", text }]` before appending to the conversation.\n *\n * `content` is intentionally optional: submitting an empty message ends\n * the conversation (the chat loop treats empty content as \"done\"). A\n * consumer that wants to send structured content blocks directly (e.g.,\n * an image) can still bypass the elicit form and call `connector.send`\n * with `content: { content: ContentBlock[] }` — the task accepts both shapes.\n */\nconst chatConnectorContentSchema = {\n type: \"object\",\n properties: {\n content: {\n type: \"string\",\n title: \"Message\",\n description: \"Your reply (leave blank to end the conversation)\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const AiChatInputSchema = {\n type: \"object\",\n properties: {\n model: modelSchema,\n prompt: {\n oneOf: [\n { type: \"string\", title: \"Prompt\", description: \"The initial user message\" },\n {\n type: \"array\",\n title: \"Prompt\",\n description: \"The initial user message as structured content blocks\",\n items: ContentBlockSchema,\n },\n ],\n title: \"Prompt\",\n description: \"The first user message to start the conversation\",\n },\n messages: {\n type: \"array\",\n title: \"Messages\",\n description:\n \"Conversation history (managed internally by the chat loop; not a user-facing input)\",\n items: ChatMessageSchema,\n \"x-ui-hidden\": true,\n },\n systemPrompt: {\n type: \"string\",\n title: \"System Prompt\",\n description: \"Optional system instructions for the model\",\n },\n maxTokens: {\n type: \"number\",\n title: \"Max Tokens\",\n description: \"Per-turn token limit\",\n minimum: 1,\n \"x-ui-group\": \"Configuration\",\n },\n temperature: {\n type: \"number\",\n title: \"Temperature\",\n description: \"Sampling temperature\",\n minimum: 0,\n maximum: 2,\n \"x-ui-group\": \"Configuration\",\n },\n maxIterations: {\n type: \"number\",\n title: \"Max Iterations\",\n description: \"Safety cap on conversation turns\",\n minimum: 1,\n default: 100,\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"model\", \"prompt\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const AiChatOutputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Last assistant response\",\n \"x-stream\": \"append\",\n },\n messages: {\n type: \"array\",\n title: \"Messages\",\n description: \"Full conversation history\",\n items: ChatMessageSchema,\n \"x-stream\": \"object\",\n },\n iterations: {\n type: \"number\",\n title: \"Iterations\",\n description: \"Number of completed turns\",\n },\n },\n required: [\"text\", \"messages\", \"iterations\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\n// ========================================================================\n// Runtime types\n// ========================================================================\n\nexport type AiChatTaskInput = Omit<FromSchema<typeof AiChatInputSchema>, \"messages\"> & {\n readonly messages?: ReadonlyArray<ChatMessage>;\n};\n\nexport type AiChatTaskOutput = FromSchema<typeof AiChatOutputSchema>;\n\n/** Provider-facing input: same structural type as AiChatTaskInput, named separately for intent. */\nexport type AiChatProviderInput = AiChatTaskInput;\n\nexport interface AiChatProviderOutput {\n readonly text: string;\n [key: string]: unknown;\n}\n\n// ========================================================================\n// Task class\n// ========================================================================\n\nexport class AiChatTask extends StreamingAiTask<AiChatTaskInput, AiChatTaskOutput> {\n public static override type = \"AiChatTask\";\n protected static override readonly streamingPhaseLabel = \"Replying\";\n public static override category = \"AI Chat\";\n public static override title = \"AI Chat\";\n public static override description =\n \"Multi-turn chat with a language model, using a human connector to collect user input between turns.\";\n public static override cacheable = false;\n\n public static override configSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n },\n additionalProperties: false,\n } as const satisfies DataPortSchema;\n }\n\n public static override inputSchema(): DataPortSchema {\n return AiChatInputSchema as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return AiChatOutputSchema as DataPortSchema;\n }\n\n private _sessionId: string | undefined;\n\n protected override async getJobInput(\n input: AiChatTaskInput\n ): Promise<AiJobInput<AiChatTaskInput>> {\n const model = input.model as ModelConfig;\n if (!this._sessionId) {\n this._sessionId = getAiProviderRegistry().createSession(model.provider, model);\n }\n return {\n taskType: \"AiChatTask\",\n aiProvider: model.provider,\n taskInput: input as AiChatTaskInput & { model: ModelConfig },\n sessionId: this._sessionId,\n };\n }\n\n override async *executeStream(\n input: AiChatTaskInput,\n context: IExecuteContext\n ): AsyncIterable<StreamEvent<AiChatTaskOutput>> {\n // Reset session so re-running the task starts a fresh conversation.\n this._sessionId = undefined;\n\n const model = input.model as ModelConfig;\n if (!model || typeof model !== \"object\") {\n throw new Error(\"AiChatTask: model was not resolved to ModelConfig\");\n }\n const connector = resolveHumanConnector(context);\n\n // Build initial history.\n const history: ChatMessage[] = [];\n if (input.systemPrompt) {\n history.push({ role: \"system\", content: [{ type: \"text\", text: input.systemPrompt }] });\n }\n const firstUserBlocks: ReadonlyArray<ContentBlock> =\n typeof input.prompt === \"string\"\n ? [{ type: \"text\", text: input.prompt }]\n : (input.prompt as ReadonlyArray<ContentBlock>);\n history.push({ role: \"user\", content: firstUserBlocks });\n\n // Call getJobInput once before the loop to initialize _sessionId.\n const workingInput: AiChatTaskInput = { ...input, messages: history };\n await this.getJobInput(workingInput);\n const strategy = getAiProviderRegistry().getStrategy(model);\n const maxIterations = input.maxIterations ?? 100;\n\n // Register session disposal so it's cleaned up at end of the resource scope.\n if (context.resourceScope && this._sessionId) {\n const sessionId = this._sessionId;\n context.resourceScope.register(`ai:session:${sessionId}`, async () => {\n await getAiProviderRegistry().disposeSession(model.provider, sessionId);\n });\n }\n\n // Emit the initial messages as an object-delta. TaskRunner accumulates\n // array object-deltas by appending items (upsert-by-id when an `id`\n // field is present; plain append otherwise). ChatMessage has no id,\n // so we yield *deltas* — just the messages added since the last yield —\n // rather than full snapshots, or the accumulator would duplicate every\n // existing message on each emission.\n yield {\n type: \"object-delta\",\n port: \"messages\",\n objectDelta: [...history],\n } as StreamEvent<AiChatTaskOutput>;\n\n let iterations = 0;\n let lastAssistantText = \"\";\n for (let turn = 0; turn < maxIterations; turn++) {\n // Fresh job input per turn with current history snapshot.\n const perTurnInput: AiChatTaskInput = { ...input, messages: [...history] };\n const turnJobInput = await this.getJobInput(perTurnInput);\n\n let assistantText = \"\";\n for await (const event of strategy.executeStream(\n turnJobInput as any,\n context,\n this.runConfig.runnerId\n )) {\n if (event.type === \"text-delta\") {\n assistantText += (event as any).textDelta;\n yield {\n ...event,\n port: (event as any).port ?? \"text\",\n } as StreamEvent<AiChatTaskOutput>;\n } else if (event.type === \"finish\") {\n // swallow — we emit our own finish at the end\n } else {\n yield event as StreamEvent<AiChatTaskOutput>;\n }\n }\n\n iterations++;\n lastAssistantText = assistantText;\n const assistantMsg: ChatMessage = {\n role: \"assistant\",\n content: [{ type: \"text\", text: assistantText }],\n };\n history.push(assistantMsg);\n yield {\n type: \"object-delta\",\n port: \"messages\",\n objectDelta: [assistantMsg],\n } as StreamEvent<AiChatTaskOutput>;\n\n // Ask the human for the next turn.\n const request: IHumanRequest = {\n requestId: crypto.randomUUID(),\n targetHumanId: \"default\",\n kind: \"elicit\",\n message: \"\",\n contentSchema: chatConnectorContentSchema,\n contentData: undefined,\n expectsResponse: true,\n mode: \"multi-turn\",\n metadata: { iteration: turn, taskId: this.id },\n };\n\n const response = await connector.send(request, context.signal);\n if (response.action === \"cancel\" || response.action === \"decline\") break;\n\n // The elicit schema asks for a plain string; accept either shape so\n // programmatic callers can also send raw ContentBlock[] (e.g. images).\n // `response.done` is a form-completion flag (the submit happened), not\n // a conversation signal — do NOT treat it as end-of-chat. The signal\n // that the user wants to end the conversation is empty content.\n const raw = response.content?.content;\n let userContent: ContentBlock[];\n if (typeof raw === \"string\") {\n const text = raw.trim();\n userContent = text.length > 0 ? [{ type: \"text\", text: raw }] : [];\n } else if (Array.isArray(raw)) {\n userContent = raw as ContentBlock[];\n } else {\n userContent = [];\n }\n if (userContent.length === 0) break;\n\n const userMsg: ChatMessage = { role: \"user\", content: userContent };\n history.push(userMsg);\n yield {\n type: \"object-delta\",\n port: \"messages\",\n objectDelta: [userMsg],\n } as StreamEvent<AiChatTaskOutput>;\n }\n\n yield {\n type: \"finish\",\n data: {\n text: lastAssistantText,\n messages: [...history] as AiChatTaskOutput[\"messages\"],\n iterations,\n } satisfies AiChatTaskOutput,\n } as StreamEvent<AiChatTaskOutput>;\n }\n\n override async execute(\n input: AiChatTaskInput,\n context: IExecuteContext\n ): Promise<AiChatTaskOutput | undefined> {\n let result: AiChatTaskOutput | undefined;\n for await (const event of this.executeStream(input, context)) {\n if (event.type === \"finish\") {\n result = (event as { type: \"finish\"; data: AiChatTaskOutput }).data;\n }\n }\n return result;\n }\n}\n",
|
|
19
19
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DataPortSchemaNonBoolean, JsonSchema } from \"@workglow/util/schema\";\nimport { ModelConfigSchema } from \"../../model/ModelSchema\";\n\nexport const TypeLanguage = (annotations: Record<string, unknown> = {}) =>\n ({\n type: \"string\",\n title: \"Language\",\n description: \"The language to use\",\n maxLength: 2,\n minLength: 2,\n ...annotations,\n }) as const;\n\nexport type TypeModelSemantic = \"model\" | `model:${string}`;\n\nexport type TTypeModel = DataPortSchemaNonBoolean & {\n readonly type: \"string\";\n readonly format: TypeModelSemantic;\n};\n\nexport function TypeModelAsString<\n S extends TypeModelSemantic = \"model\",\n O extends Record<string, unknown> = {},\n>(semantic: S = \"model\" as S, options: O = {} as O) {\n if (semantic !== \"model\" && !semantic.startsWith(\"model:\")) {\n throw new Error(\"Invalid semantic value\");\n }\n const taskName = semantic.startsWith(\"model:\")\n ? semantic\n .slice(6)\n .replace(/Task$/, \"\")\n .replaceAll(/[A-Z]/g, (char) => \" \" + char.toLowerCase())\n .trim()\n : null;\n return {\n title: \"Model\",\n description: `The model ${taskName ? `for ${taskName} ` : \"to use\"}`,\n ...options,\n format: semantic,\n type: \"string\",\n } as const satisfies JsonSchema;\n}\n\nexport function TypeModelByDetail<\n S extends TypeModelSemantic = \"model\",\n O extends Record<string, unknown> = {},\n>(semantic: S = \"model\" as S, options: O = {} as O) {\n if (semantic !== \"model\" && !semantic.startsWith(\"model:\")) {\n throw new Error(\"Invalid semantic value\");\n }\n return {\n ...ModelConfigSchema,\n ...options,\n format: semantic,\n } as const satisfies JsonSchema;\n}\n\nexport function TypeModel<\n S extends TypeModelSemantic = \"model\",\n O extends Record<string, unknown> = {},\n>(semantic: S = \"model\" as S, options: O = {} as O) {\n return {\n oneOf: [TypeModelAsString<S, O>(semantic, options), TypeModelByDetail<S, O>(semantic, options)],\n ...options,\n format: semantic,\n } as const satisfies JsonSchema;\n}\n\nexport function TypeSingleOrArray<const T extends DataPortSchemaNonBoolean>(type: T) {\n return {\n anyOf: [type, { type: \"array\", items: type }],\n } as const satisfies JsonSchema;\n}\n\n/**\n * A landmark point with x, y, z coordinates.\n */\nexport const TypeLandmark = {\n type: \"object\",\n properties: {\n x: {\n type: \"number\",\n title: \"X Coordinate\",\n description: \"X coordinate normalized to [0.0, 1.0]\",\n },\n y: {\n type: \"number\",\n title: \"Y Coordinate\",\n description: \"Y coordinate normalized to [0.0, 1.0]\",\n },\n z: {\n type: \"number\",\n title: \"Z Coordinate\",\n description: \"Z coordinate (depth)\",\n },\n },\n required: [\"x\", \"y\", \"z\"],\n format: \"point:3d:relative\",\n additionalProperties: false,\n} as const satisfies JsonSchema;\n\n/**\n * A landmark point with x, y, z coordinates and visibility/presence scores.\n */\nexport const TypePoseLandmark = {\n ...TypeLandmark,\n properties: {\n ...TypeLandmark.properties,\n visibility: {\n type: \"number\",\n title: \"Visibility\",\n description: \"Likelihood of the landmark being visible within the image\",\n },\n presence: {\n type: \"number\",\n title: \"Presence\",\n description: \"Likelihood of the landmark being present in the image\",\n },\n },\n} as const satisfies JsonSchema;\n\nexport type ImageSource = ImageBitmap | OffscreenCanvas | VideoFrame;\n\n/**\n * Image input schema — hydrated to `ImageValue` at task entry by the image\n * input resolver. Used by vision tasks; see `ImageValueSchema()` in\n * `@workglow/util/media` for the equivalent factory used by image-filter tasks\n * (the factory accepts a multi-type form including `string` for raw data: URI\n * inputs).\n */\nexport const TypeImageInput = {\n type: \"object\",\n properties: {},\n title: \"Image\",\n description:\n \"Image as data: URI, Blob, ImageBitmap, or ImageValue — hydrated to ImageValue at task entry\",\n format: \"image\",\n} as const satisfies JsonSchema;\n\n/**\n * Audio input schema supporting URIs and base64-encoded audio in multiple formats\n */\nexport const TypeAudioInput = {\n type: \"string\",\n title: \"Audio\",\n format: \"audio:data-uri\",\n description: \"Audio as data-uri, or Blob\",\n} as const satisfies JsonSchema;\n\n/**\n * Bounding box coordinates\n */\nexport const TypeBoundingBox = {\n type: \"object\",\n properties: {\n x: { type: \"number\", title: \"X coordinate\", description: \"Left edge of the bounding box\" },\n y: { type: \"number\", title: \"Y coordinate\", description: \"Top edge of the bounding box\" },\n width: { type: \"number\", title: \"Width\", description: \"Width of the bounding box\" },\n height: { type: \"number\", title: \"Height\", description: \"Height of the bounding box\" },\n },\n required: [\"x\", \"y\", \"width\", \"height\"],\n additionalProperties: false,\n title: \"Bounding Box\",\n description: \"Bounding box coordinates\",\n} as const satisfies JsonSchema;\n\n/**\n * Classification category with label and confidence score\n */\nexport const TypeCategory = {\n type: \"object\",\n properties: {\n label: { type: \"string\", title: \"Label\", description: \"Category label\" },\n score: {\n type: \"number\",\n title: \"Confidence Score\",\n description: \"Confidence score between 0 and 1\",\n minimum: 0,\n maximum: 1,\n },\n },\n required: [\"label\", \"score\"],\n additionalProperties: false,\n title: \"Category\",\n description: \"Classification category with label and score\",\n} as const satisfies JsonSchema;\n",
|
|
20
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @description Base class for AI tasks that support streaming output.\n * Extends AiTask with executeStream() that yields StreamEvents from the provider.\n */\n\nimport { getStreamingPorts, TaskConfigurationError } from \"@workglow/task-graph\";\nimport type { TaskConfig, IExecuteContext, StreamEvent, TaskOutput } from \"@workglow/task-graph\";\n\nimport { AiTask } from \"./AiTask\";\nimport type { AiTaskInput } from \"./AiTask\";\nimport { getAiProviderRegistry } from \"../../provider/AiProviderRegistry\";\nimport type { ModelConfig } from \"../../model/ModelSchema\";\n\n/**\n * A base class for streaming AI tasks.\n * Extends AiTask to provide streaming output via executeStream().\n *\n * Subclasses set `streamMode` to control streaming behavior:\n * - 'append': each chunk is a delta (e.g., a new token). Default for text generation.\n * - 'object': each chunk is a progressively more complete partial object.\n * - 'replace': each chunk is a revised full snapshot of the output.\n *\n * The standard execute() method is preserved as a fallback that internally\n * consumes the stream to completion (so non-streaming callers get the same result).\n *\n * Port annotation: providers yield raw events without a `port` field.\n * This class wraps text-delta events with the correct port from the task's\n * output schema before they reach the TaskRunner.\n *\n * @cancel The `context.signal` is forwarded to the resolved execution strategy\n * (direct or queued), which in turn forwards it to the provider stream function.\n * When the signal fires, the underlying provider SDK tears down its connection\n * and the inner `for await` exits; this generator then returns or throws\n * promptly. Partial accumulated text / object state may still remain in task\n * or runner state after abort (the runner does not clear `runOutputData`) and\n * MUST be treated as invalid unless the final run status is `COMPLETED`.\n * Subclasses overriding `executeStream()` MUST preserve this contract: forward\n * `context.signal`, and either return or throw promptly after abort.\n */\nexport class StreamingAiTask<\n Input extends AiTaskInput = AiTaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends TaskConfig<Input> = TaskConfig<Input>,\n> extends AiTask<Input, Output, Config> {\n public static override type: string = \"StreamingAiTask\";\n\n /**\n * Phase label emitted before the underlying provider stream begins\n * producing data events. Override in subclasses for task-specific\n * pre-stream phases (e.g. \"Uploading\" for tasks that prepare large\n * inputs).\n */\n protected static readonly preparingPhaseLabel: string = \"Preparing\";\n\n /**\n * Phase label emitted on the first data event from the underlying\n * provider stream (text-delta / object-delta / snapshot). Override in\n * subclasses to reflect what the task is producing — \"Generating\",\n * \"Summarizing\", \"Translating\", \"Rendering\", etc.\n */\n protected static readonly streamingPhaseLabel: string = \"Streaming\";\n\n /**\n * Streaming execution: resolves the provider strategy and yields StreamEvents from it.\n * Routes through the same strategy as execute() (queued vs direct) so GPU\n * serialization is respected even for streaming tasks.\n *\n * Wraps port-less text-delta and object-delta events from providers with\n * the port determined by the task's output schema `x-stream` annotations.\n */\n async *executeStream(input: Input, context: IExecuteContext): AsyncIterable<StreamEvent<Output>> {\n const model = input.model as ModelConfig;\n if (!model || typeof model !== \"object\") {\n throw new TaskConfigurationError(\n \"StreamingAiTask: Model was not resolved to ModelConfig - this indicates a bug in the resolution system\"\n );\n }\n const jobInput = await this.getJobInput(input);\n const strategy = getAiProviderRegistry().getStrategy(model);\n\n // Resolve the streaming port(s) from the output schema for wrapping.\n // Falls back to the first property in the output schema rather than\n // hardcoding \"text\", so non-text streaming tasks work correctly.\n const outSchema = this.outputSchema();\n const ports = getStreamingPorts(outSchema);\n let defaultPort = \"text\";\n if (ports.length > 0) {\n defaultPort = ports[0].port;\n } else {\n if (typeof outSchema === \"object\" && outSchema.properties) {\n const firstProp = Object.keys(outSchema.properties)[0];\n if (firstProp) defaultPort = firstProp;\n }\n }\n\n const ctor = this.constructor as typeof StreamingAiTask;\n const preparingLabel = ctor.preparingPhaseLabel;\n const streamingLabel = ctor.streamingPhaseLabel;\n\n // Default pre-stream phase: covers strategy resolution, queueing,\n // GPU acquisition, provider API connect time.\n yield { type: \"phase\", message: preparingLabel, progress: undefined } as StreamEvent<Output>;\n\n let firstDataSeen = false;\n for await (const event of strategy.executeStream(jobInput, context, this.runConfig.runnerId)) {\n if (\n !firstDataSeen &&\n (event.type === \"text-delta\" || event.type === \"object-delta\" || event.type === \"snapshot\")\n ) {\n firstDataSeen = true;\n yield {
|
|
20
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @description Base class for AI tasks that support streaming output.\n * Extends AiTask with executeStream() that yields StreamEvents from the provider.\n */\n\nimport { getStreamingPorts, TaskConfigurationError } from \"@workglow/task-graph\";\nimport type { TaskConfig, IExecuteContext, StreamEvent, TaskOutput } from \"@workglow/task-graph\";\n\nimport { AiTask } from \"./AiTask\";\nimport type { AiTaskInput } from \"./AiTask\";\nimport { getAiProviderRegistry } from \"../../provider/AiProviderRegistry\";\nimport type { ModelConfig } from \"../../model/ModelSchema\";\n\n/**\n * A base class for streaming AI tasks.\n * Extends AiTask to provide streaming output via executeStream().\n *\n * Subclasses set `streamMode` to control streaming behavior:\n * - 'append': each chunk is a delta (e.g., a new token). Default for text generation.\n * - 'object': each chunk is a progressively more complete partial object.\n * - 'replace': each chunk is a revised full snapshot of the output.\n *\n * The standard execute() method is preserved as a fallback that internally\n * consumes the stream to completion (so non-streaming callers get the same result).\n *\n * Port annotation: providers yield raw events without a `port` field.\n * This class wraps text-delta events with the correct port from the task's\n * output schema before they reach the TaskRunner.\n *\n * @cancel The `context.signal` is forwarded to the resolved execution strategy\n * (direct or queued), which in turn forwards it to the provider stream function.\n * When the signal fires, the underlying provider SDK tears down its connection\n * and the inner `for await` exits; this generator then returns or throws\n * promptly. Partial accumulated text / object state may still remain in task\n * or runner state after abort (the runner does not clear `runOutputData`) and\n * MUST be treated as invalid unless the final run status is `COMPLETED`.\n * Subclasses overriding `executeStream()` MUST preserve this contract: forward\n * `context.signal`, and either return or throw promptly after abort.\n */\nexport class StreamingAiTask<\n Input extends AiTaskInput = AiTaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends TaskConfig<Input> = TaskConfig<Input>,\n> extends AiTask<Input, Output, Config> {\n public static override type: string = \"StreamingAiTask\";\n\n /**\n * Phase label emitted before the underlying provider stream begins\n * producing data events. Override in subclasses for task-specific\n * pre-stream phases (e.g. \"Uploading\" for tasks that prepare large\n * inputs).\n */\n protected static readonly preparingPhaseLabel: string = \"Preparing\";\n\n /**\n * Phase label emitted on the first data event from the underlying\n * provider stream (text-delta / object-delta / snapshot). Override in\n * subclasses to reflect what the task is producing — \"Generating\",\n * \"Summarizing\", \"Translating\", \"Rendering\", etc.\n */\n protected static readonly streamingPhaseLabel: string = \"Streaming\";\n\n /**\n * Streaming execution: resolves the provider strategy and yields StreamEvents from it.\n * Routes through the same strategy as execute() (queued vs direct) so GPU\n * serialization is respected even for streaming tasks.\n *\n * Wraps port-less text-delta and object-delta events from providers with\n * the port determined by the task's output schema `x-stream` annotations.\n */\n async *executeStream(input: Input, context: IExecuteContext): AsyncIterable<StreamEvent<Output>> {\n const model = input.model as ModelConfig;\n if (!model || typeof model !== \"object\") {\n throw new TaskConfigurationError(\n \"StreamingAiTask: Model was not resolved to ModelConfig - this indicates a bug in the resolution system\"\n );\n }\n const jobInput = await this.getJobInput(input);\n const strategy = getAiProviderRegistry().getStrategy(model);\n\n // Resolve the streaming port(s) from the output schema for wrapping.\n // Falls back to the first property in the output schema rather than\n // hardcoding \"text\", so non-text streaming tasks work correctly.\n const outSchema = this.outputSchema();\n const ports = getStreamingPorts(outSchema);\n let defaultPort = \"text\";\n if (ports.length > 0) {\n defaultPort = ports[0].port;\n } else {\n if (typeof outSchema === \"object\" && outSchema.properties) {\n const firstProp = Object.keys(outSchema.properties)[0];\n if (firstProp) defaultPort = firstProp;\n }\n }\n\n const ctor = this.constructor as typeof StreamingAiTask;\n const preparingLabel = ctor.preparingPhaseLabel;\n const streamingLabel = ctor.streamingPhaseLabel;\n\n // Default pre-stream phase: covers strategy resolution, queueing,\n // GPU acquisition, provider API connect time.\n yield { type: \"phase\", message: preparingLabel, progress: undefined } as StreamEvent<Output>;\n\n let firstDataSeen = false;\n for await (const event of strategy.executeStream(jobInput, context, this.runConfig.runnerId)) {\n if (\n !firstDataSeen &&\n (event.type === \"text-delta\" || event.type === \"object-delta\" || event.type === \"snapshot\")\n ) {\n firstDataSeen = true;\n yield {\n type: \"phase\",\n message: streamingLabel,\n progress: undefined,\n } as StreamEvent<Output>;\n }\n\n if (event.type === \"text-delta\") {\n yield { ...event, port: event.port ?? defaultPort } as StreamEvent<Output>;\n } else if (event.type === \"object-delta\") {\n yield { ...event, port: event.port ?? defaultPort } as StreamEvent<Output>;\n } else {\n yield event as StreamEvent<Output>;\n }\n }\n }\n}\n",
|
|
21
21
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @description Base class for AI tasks that delegate execution to a\n * provider-registered strategy (direct or queued).\n */\n\nimport { Job } from \"@workglow/job-queue\";\nimport type {\n IExecuteContext,\n IExecutePreviewContext,\n TaskConfig,\n TaskEntitlement,\n TaskEntitlements,\n TaskOutput,\n} from \"@workglow/task-graph\";\nimport {\n Entitlements,\n Task,\n TaskConfigSchema,\n TaskConfigurationError,\n TaskInput,\n hasStructuredOutput,\n} from \"@workglow/task-graph\";\nimport type { ServiceRegistry } from \"@workglow/util\";\nimport type { DataPortSchema, JsonSchema } from \"@workglow/util/schema\";\n\nimport { AiJob, AiJobInput } from \"../../job/AiJob\";\nimport { MODEL_REPOSITORY } from \"../../model/ModelRegistry\";\nimport type { ModelRepository } from \"../../model/ModelRepository\";\nimport type { ModelConfig } from \"../../model/ModelSchema\";\nimport { getAiProviderRegistry } from \"../../provider/AiProviderRegistry\";\n\nfunction schemaFormat(schema: JsonSchema): string | undefined {\n return typeof schema === \"object\" && schema !== null && \"format\" in schema\n ? schema.format\n : undefined;\n}\n\nconst aiTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport interface AiTaskInput extends TaskInput {\n model: string | ModelConfig;\n}\n\n/**\n * A base class for AI related tasks that use an execution strategy\n * (direct or queued) determined by the provider at registration time.\n *\n * Model resolution is handled automatically by the TaskRunner before execution.\n * By the time execute() is called, input.model is always a ModelConfig object.\n */\nexport class AiTask<\n Input extends AiTaskInput = AiTaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends TaskConfig<Input> = TaskConfig<Input>,\n> extends Task<Input, Output, Config> {\n public static override type: string = \"AiTask\";\n public static override hasDynamicEntitlements: boolean = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [{ id: Entitlements.AI_INFERENCE, reason: \"Runs AI model inference\" }],\n };\n }\n\n public override entitlements(): TaskEntitlements {\n const base: TaskEntitlement[] = [\n { id: Entitlements.AI_INFERENCE, reason: \"Runs AI model inference\" },\n ];\n // Prefer runInputData.model (runtime) over defaults.model (construction-time)\n const runModel = this.runInputData?.model;\n const modelId =\n typeof runModel === \"string\"\n ? runModel\n : typeof this.defaults.model === \"string\"\n ? this.defaults.model\n : undefined;\n if (modelId) {\n base.push({\n id: Entitlements.AI_MODEL,\n reason: `Uses model ${modelId}`,\n resources: [modelId],\n });\n }\n return { entitlements: base };\n }\n\n public static override configSchema(): DataPortSchema {\n return aiTaskConfigSchema;\n }\n\n // ========================================================================\n // Execution\n // ========================================================================\n\n override async execute(\n input: Input,\n executeContext: IExecuteContext\n ): Promise<Output | undefined> {\n const model = input.model as ModelConfig;\n if (!model || typeof model !== \"object\") {\n throw new TaskConfigurationError(\n \"AiTask: Model was not resolved to ModelConfig - this indicates a bug in the resolution system\"\n );\n }\n\n const jobInput = await this.getJobInput(input);\n const strategy = getAiProviderRegistry().getStrategy(model);\n\n const output = await strategy.execute(jobInput, executeContext, this.runConfig.runnerId);\n\n // Register a disposer so the caller can unload the model when done.\n if (executeContext.resourceScope) {\n const registry = getAiProviderRegistry();\n const provider = registry.getProvider(model.provider);\n const unloadFn = provider?.getRunFn(\"UnloadModelTask\");\n if (unloadFn) {\n const modelPath = model.provider_config?.model_path ?? model.model;\n const resourceKey = `ai:${model.provider}:${modelPath}`;\n executeContext.resourceScope.register(resourceKey, async () => {\n await unloadFn({ model }, model, () => {}, AbortSignal.timeout(30_000));\n });\n }\n }\n\n return output as Output;\n }\n\n // ========================================================================\n // Job creation\n // ========================================================================\n\n /**\n * Get the input to submit to the job queue (or direct execution).\n * Transforms the task input to AiJobInput format.\n */\n protected async getJobInput(input: Input): Promise<AiJobInput<Input>> {\n const model = input.model as ModelConfig;\n\n const runtype = (this.constructor as any).runtype ?? (this.constructor as any).type;\n\n const jobInput: AiJobInput<Input> = {\n taskType: runtype,\n aiProvider: model.provider,\n taskInput: input as Input & { model: ModelConfig },\n };\n\n const taskTimeoutMs = (this.config as TaskConfig).timeout;\n if (typeof taskTimeoutMs === \"number\" && taskTimeoutMs > 0) {\n jobInput.timeoutMs = taskTimeoutMs;\n }\n\n // Attach structured output schema if the task declares it.\n const inputOutputSchema = input.outputSchema as DataPortSchema;\n if (\n inputOutputSchema &&\n typeof inputOutputSchema === \"object\" &&\n !Array.isArray(inputOutputSchema) &&\n typeof inputOutputSchema.type === \"string\"\n ) {\n jobInput.outputSchema = inputOutputSchema;\n } else {\n const taskOutputSchema = this.outputSchema();\n if (hasStructuredOutput(taskOutputSchema)) {\n jobInput.outputSchema = taskOutputSchema;\n }\n }\n\n const sessionId = (input as any).sessionId as string | undefined;\n if (sessionId) {\n jobInput.sessionId = sessionId;\n }\n\n return jobInput;\n }\n\n /**\n * Creates a new Job instance for direct execution (without a queue).\n */\n async createJob(input: Input, queueName?: string): Promise<Job<AiJobInput<Input>, Output>> {\n const jobInput = await this.getJobInput(input);\n const resolvedQueueName = queueName ?? (await this.getDefaultQueueName(input));\n if (!resolvedQueueName) {\n throw new TaskConfigurationError(\"AiTask: Unable to determine queue for AI provider\");\n }\n const job = new AiJob<AiJobInput<Input>, Output>({\n queueName: resolvedQueueName,\n jobRunId: this.runConfig.runnerId,\n input: jobInput,\n });\n return job;\n }\n\n /**\n * Gets the default queue name based on the model's provider.\n */\n protected async getDefaultQueueName(input: Input): Promise<string | undefined> {\n const model = input.model as ModelConfig;\n return model?.provider;\n }\n\n // ========================================================================\n // Preview execution\n // ========================================================================\n\n /**\n * Delegates to a provider-registered preview run function if one exists,\n * otherwise falls back to the default Task.executePreview().\n */\n override async executePreview(\n input: Input,\n context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n const model = input.model as ModelConfig | undefined;\n if (model && typeof model === \"object\" && model.provider) {\n const taskType = (this.constructor as any).runtype ?? (this.constructor as any).type;\n const previewFn = getAiProviderRegistry().getPreviewRunFn<Input, Output>(\n model.provider,\n taskType\n );\n if (previewFn) {\n return previewFn(input, model);\n }\n }\n return super.executePreview(input, context);\n }\n\n // ========================================================================\n // Validation\n // ========================================================================\n\n /**\n * Validates that model inputs are valid ModelConfig objects.\n */\n public override async validateInput(input: Input): Promise<boolean> {\n const inputSchema = this.inputSchema();\n if (typeof inputSchema === \"boolean\") {\n if (inputSchema === false) {\n throw new TaskConfigurationError(`AiTask: Input schema is 'false' and accepts no inputs`);\n }\n return true;\n }\n\n const modelTaskProperties = Object.entries<JsonSchema>(\n (inputSchema.properties || {}) as Record<string, JsonSchema>\n ).filter(([key, schema]) => schemaFormat(schema)?.startsWith(\"model:\"));\n\n for (const [key] of modelTaskProperties) {\n const model = input[key];\n if (typeof model === \"object\" && model !== null) {\n const tasks = (model as ModelConfig).tasks;\n if (Array.isArray(tasks) && tasks.length > 0 && !tasks.includes(this.type)) {\n const modelId = (model as ModelConfig).model_id ?? \"(inline config)\";\n throw new TaskConfigurationError(\n `AiTask: Model \"${modelId}\" for '${key}' is not compatible with task '${this.type}'. ` +\n `Model supports: [${tasks.join(\", \")}]`\n );\n }\n } else if (model !== undefined && model !== null) {\n throw new TaskConfigurationError(\n `AiTask: Invalid model for '${key}' - expected ModelConfig object but got ${typeof model}. ` +\n `Ensure the model ID was registered in the ModelRepository before running the task.`\n );\n }\n }\n\n const modelPlainProperties = Object.entries<JsonSchema>(\n (inputSchema.properties || {}) as Record<string, JsonSchema>\n ).filter(([key, schema]) => schemaFormat(schema) === \"model\");\n\n for (const [key] of modelPlainProperties) {\n const model = input[key];\n if (model !== undefined && model !== null && typeof model !== \"object\") {\n throw new TaskConfigurationError(\n `AiTask: Invalid model for '${key}' - expected ModelConfig object but got ${typeof model}. ` +\n `Ensure the model ID was registered in the ModelRepository before running the task.`\n );\n }\n }\n\n return super.validateInput(input);\n }\n\n public override async narrowInput(input: Input, registry: ServiceRegistry): Promise<Input> {\n const inputSchema = this.inputSchema();\n if (typeof inputSchema === \"boolean\") {\n if (inputSchema === false) {\n throw new TaskConfigurationError(`AiTask: Input schema is 'false' and accepts no inputs`);\n }\n return input;\n }\n const modelTaskProperties = Object.entries<JsonSchema>(\n (inputSchema.properties || {}) as Record<string, JsonSchema>\n ).filter(([key, schema]) => schemaFormat(schema)?.startsWith(\"model:\"));\n if (modelTaskProperties.length > 0) {\n const modelRepo = registry.get<ModelRepository>(MODEL_REPOSITORY);\n\n // Fetch models for this task type from the repository associated with the given registry.\n // Note: we intentionally avoid using a shared cache here to prevent mixing results\n // from different ServiceRegistry / ModelRepository instances.\n const taskModels: ModelConfig[] = (await modelRepo.findModelsByTask(this.type)) ?? [];\n\n for (const [key] of modelTaskProperties) {\n const requestedModel = input[key];\n\n if (typeof requestedModel === \"string\") {\n const found = taskModels?.find((m) => m.model_id === requestedModel);\n if (!found) {\n (input as any)[key] = undefined;\n }\n } else if (typeof requestedModel === \"object\" && requestedModel !== null) {\n const model = requestedModel as ModelConfig;\n const tasks = model.tasks;\n if (Array.isArray(tasks) && tasks.length > 0 && !tasks.includes(this.type)) {\n (input as any)[key] = undefined;\n }\n }\n }\n }\n return input;\n }\n}\n",
|
|
22
22
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\n\n// ========================================================================\n// Canonical ContentBlock union\n// ========================================================================\n\nexport type ContentBlockText = {\n readonly type: \"text\";\n readonly text: string;\n};\n\nexport type ContentBlockImage = {\n readonly type: \"image\";\n readonly mimeType: string;\n readonly data: string;\n};\n\nexport type ContentBlockToolUse = {\n readonly type: \"tool_use\";\n readonly id: string;\n readonly name: string;\n readonly input: Record<string, unknown>;\n};\n\n/**\n * Blocks that may appear in a `tool_result`'s `content` array. Provider payloads\n * typically use text, image, and tool_use; nested `tool_result` is not modeled\n * here so the JSON schema can be embedded in parent task schemas without a\n * recursive `$ref` (which fails to resolve when `ContentBlockSchema` is nested\n * under a larger document such as `ToolCallingInputSchema`).\n */\nexport type ContentBlockInToolResultBody =\n | ContentBlockText\n | ContentBlockImage\n | ContentBlockToolUse;\n\nexport type ContentBlockToolResult = {\n readonly type: \"tool_result\";\n readonly tool_use_id: string;\n readonly content: ReadonlyArray<ContentBlockInToolResultBody>;\n readonly is_error: boolean | undefined;\n};\n\nexport type ContentBlock =\n | ContentBlockText\n | ContentBlockImage\n | ContentBlockToolUse\n | ContentBlockToolResult;\n\n// ========================================================================\n// Canonical ChatMessage\n// ========================================================================\n\nexport type ChatRole = \"user\" | \"assistant\" | \"tool\" | \"system\";\n\nexport interface ChatMessage {\n readonly role: ChatRole;\n readonly content: ReadonlyArray<ContentBlock>;\n}\n\n// ========================================================================\n// JSON Schemas (runtime validation + DataPort declarations)\n// ========================================================================\n\nconst ContentBlockTextSchema = {\n type: \"object\",\n properties: {\n type: { type: \"string\", enum: [\"text\"] },\n text: { type: \"string\" },\n },\n required: [\"type\", \"text\"],\n additionalProperties: false,\n} as const;\n\nconst ContentBlockImageSchema = {\n type: \"object\",\n properties: {\n type: { type: \"string\", enum: [\"image\"] },\n mimeType: { type: \"string\" },\n data: { type: \"string\" },\n },\n required: [\"type\", \"mimeType\", \"data\"],\n additionalProperties: false,\n} as const;\n\nconst ContentBlockToolUseSchema = {\n type: \"object\",\n properties: {\n type: { type: \"string\", enum: [\"tool_use\"] },\n id: { type: \"string\" },\n name: { type: \"string\" },\n input: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"id\", \"name\", \"input\"],\n additionalProperties: false,\n} as const;\n\n/** `tool_result.content` — text, image, and tool_use only (no nested `tool_result`). */\nconst ContentBlockInToolResultBodySchema = {\n oneOf: [ContentBlockTextSchema, ContentBlockImageSchema, ContentBlockToolUseSchema],\n} as const;\n\nconst ContentBlockToolResultSchema = {\n type: \"object\",\n properties: {\n type: { type: \"string\", enum: [\"tool_result\"] },\n tool_use_id: { type: \"string\" },\n content: {\n type: \"array\",\n items: ContentBlockInToolResultBodySchema,\n },\n is_error: { type: \"boolean\" },\n },\n required: [\"type\", \"tool_use_id\", \"content\"],\n additionalProperties: false,\n} as const;\n\n// Not a DataPortSchema because the root is `oneOf`, not `type: \"object\"`.\n// Consumers embed it inside an object schema (see ChatMessageSchema).\nexport const ContentBlockSchema = {\n oneOf: [\n ContentBlockTextSchema,\n ContentBlockImageSchema,\n ContentBlockToolUseSchema,\n ContentBlockToolResultSchema,\n ],\n title: \"ContentBlock\",\n description: \"A single content block within a chat message\",\n} as const;\n\nexport const ChatMessageSchema = {\n type: \"object\",\n properties: {\n role: { type: \"string\", enum: [\"user\", \"assistant\", \"tool\", \"system\"] },\n content: {\n type: \"array\",\n items: ContentBlockSchema,\n },\n },\n required: [\"role\", \"content\"],\n additionalProperties: false,\n title: \"ChatMessage\",\n description: \"A single chat message with role and structured content blocks\",\n} as const satisfies DataPortSchema;\n\n// ========================================================================\n// Runtime type guards\n// ========================================================================\n\nexport function isContentBlockInToolResultBody(\n value: unknown\n): value is ContentBlockInToolResultBody {\n if (!value || typeof value !== \"object\") return false;\n const v = value as Record<string, unknown>;\n switch (v.type) {\n case \"text\":\n return typeof v.text === \"string\";\n case \"image\":\n return typeof v.mimeType === \"string\" && typeof v.data === \"string\";\n case \"tool_use\":\n return (\n typeof v.id === \"string\" &&\n typeof v.name === \"string\" &&\n v.input !== null &&\n typeof v.input === \"object\"\n );\n default:\n return false;\n }\n}\n\nexport function isContentBlock(value: unknown): value is ContentBlock {\n if (!value || typeof value !== \"object\") return false;\n const v = value as Record<string, unknown>;\n switch (v.type) {\n case \"text\":\n return typeof v.text === \"string\";\n case \"image\":\n return typeof v.mimeType === \"string\" && typeof v.data === \"string\";\n case \"tool_use\":\n return (\n typeof v.id === \"string\" &&\n typeof v.name === \"string\" &&\n v.input !== null &&\n typeof v.input === \"object\"\n );\n case \"tool_result\":\n return (\n typeof v.tool_use_id === \"string\" &&\n Array.isArray(v.content) &&\n v.content.every(isContentBlockInToolResultBody)\n );\n default:\n return false;\n }\n}\n\nexport function isChatMessage(value: unknown): value is ChatMessage {\n if (!value || typeof value !== \"object\") return false;\n const v = value as Record<string, unknown>;\n const validRole =\n v.role === \"user\" || v.role === \"assistant\" || v.role === \"tool\" || v.role === \"system\";\n return validRole && Array.isArray(v.content) && v.content.every(isContentBlock);\n}\n\n// ========================================================================\n// Convenience constructors\n// ========================================================================\n\nexport function textMessage(role: ChatRole, text: string): ChatMessage {\n return { role, content: [{ type: \"text\", text }] };\n}\n",
|
|
23
23
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { ImageValueSchema } from \"@workglow/util/media\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeImageInput, TypeModel } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:BackgroundRemovalTask\");\n\nexport const BackgroundRemovalInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const BackgroundRemovalOutputSchema = {\n type: \"object\",\n properties: {\n image: ImageValueSchema({\n title: \"Image\",\n description: \"Image with transparent background\",\n }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BackgroundRemovalTaskInput = FromSchema<typeof BackgroundRemovalInputSchema>;\nexport type BackgroundRemovalTaskOutput = FromSchema<typeof BackgroundRemovalOutputSchema>;\nexport type BackgroundRemovalTaskConfig = TaskConfig<BackgroundRemovalTaskInput>;\n\n/**\n * Removes backgrounds from images using computer vision models\n */\nexport class BackgroundRemovalTask extends AiVisionTask<\n BackgroundRemovalTaskInput,\n BackgroundRemovalTaskOutput,\n BackgroundRemovalTaskConfig\n> {\n public static override type = \"BackgroundRemovalTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Background Removal\";\n public static override description =\n \"Removes backgrounds from images, producing images with transparent backgrounds\";\n public static override inputSchema(): DataPortSchema {\n return BackgroundRemovalInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return BackgroundRemovalOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run background removal tasks.\n * Creates and executes a BackgroundRemovalTask with the provided input.\n * @param input The input parameters for background removal (image and model)\n * @returns Promise resolving to the image with transparent background\n */\nexport const backgroundRemoval = (\n input: BackgroundRemovalTaskInput,\n config?: BackgroundRemovalTaskConfig\n) => {\n return new BackgroundRemovalTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n backgroundRemoval: CreateWorkflow<\n BackgroundRemovalTaskInput,\n BackgroundRemovalTaskOutput,\n BackgroundRemovalTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.backgroundRemoval = CreateWorkflow(BackgroundRemovalTask);\n",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Document, KnowledgeBase, TypeKnowledgeBase } from \"@workglow/knowledge-base\";\nimport { DocumentMetadataSchema } from \"@workglow/knowledge-base\";\nimport type { DocumentMetadata, DocumentNode } from \"@workglow/knowledge-base\";\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, IExecuteContext, Task, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n knowledgeBase: TypeKnowledgeBase({\n title: \"Knowledge Base\",\n description: \"The knowledge base instance to store the document in\",\n }),\n doc_id: {\n type: \"string\",\n title: \"Document ID\",\n description: \"The document ID (from the parser)\",\n },\n documentTree: {\n title: \"Document Tree\",\n description: \"The hierarchical document tree to persist\",\n },\n title: {\n type: \"string\",\n title: \"Title\",\n description:\n \"Optional human-readable title. If provided, overrides metadata.title. \" +\n \"Either this or metadata.title must be supplied.\",\n },\n metadata: {\n ...DocumentMetadataSchema,\n // Override the title requirement inherited from DocumentMetadataSchema.\n // The task framework materializes absent optional object inputs as `{}`,\n // which would otherwise fail `required: [\"title\"]` validation here.\n // Title presence is enforced at runtime in execute() instead, so the\n // `title` and `metadata.title` paths can each independently satisfy it.\n required: [],\n title: \"Metadata\",\n description:\n \"Optional document metadata. May contain `title` (unless the top-level \" +\n \"`title` input is also provided), `sourceUri`, `createdAt`, and any \" +\n \"additional caller-defined fields (the schema is open).\",\n },\n },\n required: [\"knowledgeBase\", \"doc_id\", \"documentTree\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n doc_id: {\n type: \"string\",\n title: \"Document ID\",\n description: \"The document ID (passed through after persistence)\",\n },\n },\n required: [\"doc_id\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type DocumentUpsertTaskInput = FromSchema<typeof inputSchema>;\nexport type DocumentUpsertTaskOutput = FromSchema<typeof outputSchema>;\nexport type DocumentUpsertTaskConfig = TaskConfig<DocumentUpsertTaskInput>;\n\n/**\n * Persists a parsed document tree to a knowledge base. Sits between\n * `StructuralParserTask` and `HierarchicalChunkerTask` in a typical RAG\n * ingest pipeline so that the document row exists in tabular storage\n * before any chunk-vector row references its `doc_id`.\n *\n * Pure side-effect task: input `doc_id` is preserved on the output so\n * downstream tasks can chain on the upsert completing successfully.\n */\nexport class DocumentUpsertTask extends Task<\n DocumentUpsertTaskInput,\n DocumentUpsertTaskOutput,\n DocumentUpsertTaskConfig\n> {\n public static override type = \"DocumentUpsertTask\";\n public static override category = \"Vector Store\";\n public static override title = \"Add Document\";\n public static override description = \"Persist a parsed document tree to a knowledge base\";\n public static override cacheable = false; // Has side effects\n\n public static override inputSchema(): DataPortSchema {\n return inputSchema as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return outputSchema as DataPortSchema;\n }\n\n override async execute(\n input: DocumentUpsertTaskInput,\n context: IExecuteContext\n ): Promise<DocumentUpsertTaskOutput> {\n const { knowledgeBase, doc_id, documentTree, title, metadata } = input;\n const kb = knowledgeBase as KnowledgeBase;\n\n // Merge: explicit `title` wins over `metadata.title`. Open `metadata` shape\n // (additionalProperties: true) means any extra frontmatter fields the caller\n // passed are persisted on the Document record unchanged.\n const merged: DocumentMetadata = {\n ...((metadata ?? {}) as DocumentMetadata),\n ...(title !== undefined ? { title } : {}),\n };\n if (!merged.title) {\n throw new Error(\n \"DocumentUpsertTask: title is required — provide it via the 'title' input or 'metadata.title'\"\n );\n }\n\n await context.updateProgress(1, \"Upserting document\");\n\n const document = new Document(documentTree as DocumentNode, merged, [], doc_id);\n const stored = await kb.upsertDocument(document);\n\n return {\n doc_id: stored.doc_id ?? doc_id,\n };\n }\n}\n\nexport const documentUpsert = (\n input: DocumentUpsertTaskInput,\n config?: DocumentUpsertTaskConfig\n) => {\n return new DocumentUpsertTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n documentUpsert: CreateWorkflow<\n DocumentUpsertTaskInput,\n DocumentUpsertTaskOutput,\n DocumentUpsertTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.documentUpsert = CreateWorkflow(DocumentUpsertTask);\n",
|
|
34
34
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { AiTask } from \"./base/AiTask\";\nimport { TypeModel } from \"./base/AiTaskSchemas\";\n\nconst modelSchema = TypeModel(\"model\");\n\nconst DownloadModelInputSchema = {\n type: \"object\",\n properties: {\n model: modelSchema,\n },\n required: [\"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst DownloadModelOutputSchema = {\n type: \"object\",\n properties: {\n model: modelSchema,\n },\n required: [\"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type DownloadModelTaskRunInput = FromSchema<typeof DownloadModelInputSchema>;\nexport type DownloadModelTaskRunOutput = FromSchema<typeof DownloadModelOutputSchema>;\nexport type DownloadModelTaskConfig = TaskConfig<DownloadModelTaskRunInput>;\n\n/**\n * Download a model from a remote source and cache it locally.\n *\n * @remarks\n * This task has a side effect of downloading the model and caching it locally outside of the task system\n */\nexport class DownloadModelTask extends AiTask<\n DownloadModelTaskRunInput,\n DownloadModelTaskRunOutput,\n DownloadModelTaskConfig\n> {\n public static override type = \"DownloadModelTask\";\n public static override category = \"AI Model\";\n public static override title = \"Download Model\";\n public static override description =\n \"Downloads and caches AI models locally with progress tracking\";\n public static override inputSchema(): DataPortSchema {\n return DownloadModelInputSchema satisfies DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return DownloadModelOutputSchema satisfies DataPortSchema;\n }\n public static override cacheable = false;\n\n public files: { file: string; progress: number }[] = [];\n\n constructor(config: Partial<DownloadModelTaskConfig> = {}) {\n super(config);\n this.on(\"progress\", this.processProgress.bind(this));\n this.on(\"start\", () => {\n this.files = [];\n });\n }\n\n /**\n * Handles progress updates for the download task\n * @param progress - The progress value (0-100), or `undefined` for indeterminate\n * @param message - The message to display\n * @param details - Additional details about the progress\n */\n processProgress(\n progress: number | undefined,\n message: string = \"\",\n details?: {\n file?: string;\n progress?: number;\n /** Full snapshot (e.g. Hugging Face transformers pipeline); per-file % derived from loaded/total */\n files?: Record<string, { loaded: number; total: number }>;\n text?: number;\n }\n ): void {\n if (details?.files && typeof details.files === \"object\") {\n const entries = Object.entries(details.files);\n if (entries.length > 0) {\n this.files = entries\n .map(([file, info]) => ({\n file,\n progress: info.total > 0 ? (info.loaded / info.total) * 100 : 0,\n }))\n .sort((a, b) => a.file.localeCompare(b.file));\n this.progress = progress;\n return;\n }\n }\n if (details?.file !== undefined && details.progress !== undefined) {\n const file = this.files.find((f) => f.file === details.file);\n if (file) {\n file.progress = details.progress;\n } else {\n this.files.push({ file: details.file, progress: details.progress });\n }\n this.progress = this.files.reduce((acc, f) => acc + f.progress, 0) / this.files.length;\n } else {\n this.progress = progress;\n }\n }\n}\n\n/**\n * Download a model from a remote source and cache it locally.\n *\n * @param input - Input containing model(s) to download\n * @returns Promise resolving to the downloaded model(s)\n */\nexport const downloadModel = (\n input: DownloadModelTaskRunInput,\n config?: DownloadModelTaskConfig\n) => {\n return new DownloadModelTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n downloadModel: CreateWorkflow<\n DownloadModelTaskRunInput,\n DownloadModelTaskRunOutput,\n DownloadModelTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.downloadModel = CreateWorkflow(DownloadModelTask);\n",
|
|
35
35
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { ImageValueSchema } from \"@workglow/util/media\";\nimport type { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nimport type { AiImageOutput } from \"../base/AiImageOutputTask\";\nimport { AiImageOutputTask } from \"../base/AiImageOutputTask\";\nimport { TypeModel } from \"../base/AiTaskSchemas\";\nimport { AiImageOptionsProperties, AiImageOutputSchema } from \"./AiImageSchemas\";\n\nconst modelSchema = TypeModel(\"model:ImageEditTask\");\n\nexport const ImageEditInputSchema = {\n type: \"object\",\n properties: {\n model: modelSchema,\n prompt: {\n type: \"string\",\n title: \"Prompt\",\n description: \"Text describing the edit to apply\",\n },\n image: ImageValueSchema({\n title: \"Image\",\n description: \"Primary image to edit\",\n }),\n mask: ImageValueSchema({\n title: \"Mask\",\n description:\n \"Optional inpainting mask. Transparent regions indicate where to edit. Supported by OpenAI and HF inpainting models.\",\n }),\n additionalImages: {\n type: \"array\",\n title: \"Additional Images\",\n description:\n \"Optional reference / composite images. Used by gpt-image-2 and Gemini 2.5 Flash Image for multi-image edits.\",\n items: ImageValueSchema(),\n },\n ...AiImageOptionsProperties,\n },\n required: [\"model\", \"prompt\", \"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const ImageEditOutputSchema = AiImageOutputSchema;\n\nexport type ImageEditTaskInput = FromSchema<typeof ImageEditInputSchema>;\nexport type ImageEditTaskOutput = AiImageOutput;\nexport type ImageEditTaskConfig = TaskConfig<ImageEditTaskInput>;\n\nexport class ImageEditTask extends AiImageOutputTask<ImageEditTaskInput, ImageEditTaskConfig> {\n public static override type = \"ImageEditTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Edit Image\";\n public static override description =\n \"Edits an input image guided by a prompt. Optionally accepts a mask (inpaint) and/or additional reference images (composite).\";\n public static override cacheable = true;\n\n public static override inputSchema(): DataPortSchema {\n return ImageEditInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return ImageEditOutputSchema as DataPortSchema;\n }\n\n public override async validateInput(input: ImageEditTaskInput): Promise<boolean> {\n const ok = await super.validateInput(input);\n if (!ok) return false;\n await this.validateProviderImageInput(input);\n return true;\n }\n}\n\nexport const imageEdit = (input: ImageEditTaskInput, config?: ImageEditTaskConfig) =>\n new ImageEditTask(config).run(input);\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageEdit: CreateWorkflow<ImageEditTaskInput, ImageEditTaskOutput, ImageEditTaskConfig>;\n }\n}\n\nWorkflow.prototype.imageEdit = CreateWorkflow(ImageEditTask);\n",
|
|
36
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Shared base for AI tasks that produce a single ImageValue output, with\n * streaming partial-image support. The streaming convention follows the\n * existing snapshot/finish contract on StreamingAiTask: providers yield\n * `{ type: \"snapshot\", data: { image: ImageValue } }` for each partial image\n * (and the final), then `{ type: \"finish\", data: {} }`.\n *\n * This base class:\n * - Tracks the latest partial in `_latestPartial`. ImageValue lifetime is\n * JS GC; there is no retain/release. When a new snapshot arrives, the\n * prior partial is simply replaced and becomes garbage-collectable.\n * - Exposes the latest partial via `executePreview()` so downstream image\n * tasks can refresh their preview chains live as the image refines.\n * - Returns `undefined` (no output) when no partial and no prior run exist,\n * so the UI shows nothing rather than a synthetic placeholder.\n * - Treats the task as not cacheable when `input.seed` is undefined, since\n * image generation without a seed is non-deterministic.\n */\n\nimport type {
|
|
36
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Shared base for AI tasks that produce a single ImageValue output, with\n * streaming partial-image support. The streaming convention follows the\n * existing snapshot/finish contract on StreamingAiTask: providers yield\n * `{ type: \"snapshot\", data: { image: ImageValue } }` for each partial image\n * (and the final), then `{ type: \"finish\", data: {} }`.\n *\n * This base class:\n * - Tracks the latest partial in `_latestPartial`. ImageValue lifetime is\n * JS GC; there is no retain/release. When a new snapshot arrives, the\n * prior partial is simply replaced and becomes garbage-collectable.\n * - Exposes the latest partial via `executePreview()` so downstream image\n * tasks can refresh their preview chains live as the image refines.\n * - Returns `undefined` (no output) when no partial and no prior run exist,\n * so the UI shows nothing rather than a synthetic placeholder.\n * - Treats the task as not cacheable when `input.seed` is undefined, since\n * image generation without a seed is non-deterministic.\n */\n\nimport type {\n TaskConfig,\n IExecutePreviewContext,\n IExecuteContext,\n StreamEvent,\n TaskOutput,\n} from \"@workglow/task-graph\";\nimport type { ImageValue } from \"@workglow/util/media\";\n\nimport { StreamingAiTask } from \"./StreamingAiTask\";\nimport type { AiTaskInput } from \"./AiTask\";\nimport type { ModelConfig } from \"../../model/ModelSchema\";\nimport { ProviderUnsupportedFeatureError } from \"../../errors/ImageGenerationErrors\";\n\nexport interface AiImageOutput extends TaskOutput {\n image: ImageValue;\n}\n\nexport interface AiImageInputBase extends AiTaskInput {\n prompt: string;\n seed?: number | undefined;\n}\n\nexport class AiImageOutputTask<\n Input extends AiImageInputBase = AiImageInputBase,\n Config extends TaskConfig<Input> = TaskConfig<Input>,\n> extends StreamingAiTask<Input, AiImageOutput, Config> {\n public static override type: string = \"AiImageOutputTask\";\n protected static override readonly streamingPhaseLabel = \"Rendering\";\n\n /** The most recent partial received from the provider stream. ImageValue\n * lifetime is JS GC — replacing the slot lets the prior become collectable. */\n protected _latestPartial: ImageValue | undefined = undefined;\n\n // --------------------------------------------------------------------\n // Cacheable: seed-aware\n // --------------------------------------------------------------------\n\n public override get cacheable(): boolean {\n const seed = (this.runInputData as { seed?: number } | undefined)?.seed;\n if (seed === undefined || seed === null) return false;\n return super.cacheable;\n }\n\n // --------------------------------------------------------------------\n // Streaming accumulator\n // --------------------------------------------------------------------\n\n /**\n * Called by executeStream() (or directly by tests) for each partial image\n * delivered by the provider. Replaces the prior `_latestPartial`. ImageValue\n * lifetime is JS GC — no retain/release dance required.\n */\n protected ingestPartial(image: ImageValue): void {\n this._latestPartial = image;\n }\n\n /**\n * Transfers the latest partial out of the task, clearing the internal slot.\n * Used to hand the final image to the runner via the snapshot/finish path\n * so the output port owns the reference.\n */\n protected takeFinalPartial(): ImageValue | undefined {\n const partial = this._latestPartial;\n this._latestPartial = undefined;\n return partial;\n }\n\n /**\n * Clears the latest partial. Used on abort/error.\n */\n protected discardPartial(): void {\n this._latestPartial = undefined;\n }\n\n // --------------------------------------------------------------------\n // executeStream override\n // --------------------------------------------------------------------\n\n /**\n * Wraps the StreamingAiTask stream to track partial images via ingestPartial,\n * so executePreview() can surface the latest partial mid-stream.\n *\n * Providers yield `{ type: \"snapshot\", data: { image: ImageValue } }` for each\n * partial (and the final). On `finish`, we clear `_latestPartial` — the final\n * image is owned by `runOutputData`.\n *\n * Note: this relies on the runner's snapshot-mode accumulator falling back\n * to `runOutputData` when `finish.data` is empty (see `TaskRunner` finish\n * handling). Providers MUST yield the final image as a `snapshot` event\n * before `finish`, and `finish.data` MUST stay empty — otherwise the\n * runner would overwrite the accumulated snapshot with empty data.\n */\n override async *executeStream(\n input: Input,\n context: IExecuteContext\n ): AsyncIterable<StreamEvent<AiImageOutput>> {\n try {\n for await (const event of super.executeStream(input, context)) {\n if (event.type === \"snapshot\") {\n const newImage = (event.data as AiImageOutput | undefined)?.image;\n if (newImage) {\n this.ingestPartial(newImage);\n }\n yield event;\n } else if (event.type === \"finish\") {\n this._latestPartial = undefined;\n yield event;\n } else {\n yield event;\n }\n }\n } catch (err) {\n // Drop any retained partial on error so the task doesn't surface a\n // stale preview. The normal completion path clears _latestPartial in\n // the \"finish\" branch; this only fires when an exception escapes.\n this.discardPartial();\n throw err;\n }\n }\n\n // --------------------------------------------------------------------\n // Preview\n // --------------------------------------------------------------------\n\n /**\n * Cheap UI preview path. NEVER calls the provider.\n * Order of preference:\n * 1. Live partial currently in `_latestPartial`.\n * 2. Last completed run's output (`runOutputData.image`).\n * 3. `undefined` — no output, so the UI shows nothing instead of a\n * synthetic placeholder.\n */\n override async executePreview(\n _input: Input,\n _context: IExecutePreviewContext\n ): Promise<AiImageOutput | undefined> {\n if (this._latestPartial !== undefined) {\n return { image: this._latestPartial };\n }\n const prior = (this.runOutputData as AiImageOutput | undefined)?.image;\n if (prior !== undefined) {\n return { image: prior };\n }\n return undefined;\n }\n\n // --------------------------------------------------------------------\n // Cleanup\n // --------------------------------------------------------------------\n\n /**\n * Called by the runner on abort. Clears any retained partial.\n * Errors during executeStream are handled inline via the catch block.\n */\n async cleanup(): Promise<void> {\n this.discardPartial();\n }\n\n // --------------------------------------------------------------------\n // Validation hook\n // --------------------------------------------------------------------\n\n /**\n * Hook for subclasses + providers to reject unsupported (model, input)\n * combinations before any worker dispatch. Subclasses call this from\n * their own validateInput() override after super.validateInput().\n *\n * Each provider implements the per-feature checks (e.g., Gemini + mask).\n * Throws ProviderUnsupportedFeatureError on rejection.\n */\n protected async validateProviderImageInput(input: Input): Promise<void> {\n const model = input.model as ModelConfig | string | undefined;\n if (!model || typeof model === \"string\") return;\n const provider = model.provider;\n const validator = AiImageOutputTask._providerValidators.get(provider);\n if (validator) {\n await validator(this.type, input as unknown as Record<string, unknown>, model);\n }\n }\n\n /**\n * Provider-side validators register here at provider load time. Each\n * validator inspects (taskType, input, model) and throws\n * ProviderUnsupportedFeatureError if the combination is invalid.\n */\n private static _providerValidators: Map<\n string,\n (taskType: string, input: Record<string, unknown>, model: ModelConfig) => Promise<void> | void\n > = new Map();\n\n public static registerProviderImageValidator(\n providerName: string,\n validator: (\n taskType: string,\n input: Record<string, unknown>,\n model: ModelConfig\n ) => Promise<void> | void\n ): void {\n AiImageOutputTask._providerValidators.set(providerName, validator);\n }\n\n public static unregisterProviderImageValidator(providerName: string): void {\n AiImageOutputTask._providerValidators.delete(providerName);\n }\n\n // Keep a reference to the unsupported error class so tests/providers don't\n // need to import it separately when overriding validators.\n public static readonly UnsupportedFeatureError = ProviderUnsupportedFeatureError;\n}\n",
|
|
37
37
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageValueSchema } from \"@workglow/util/media\";\n\nexport const AspectRatioSchema = {\n type: \"string\",\n title: \"Aspect Ratio\",\n description: \"Output image aspect ratio. Mapped per-provider to the nearest supported size.\",\n enum: [\"1:1\", \"16:9\", \"9:16\", \"4:3\", \"3:4\"],\n default: \"1:1\",\n} as const;\n\nexport const QualitySchema = {\n type: \"string\",\n title: \"Quality\",\n description: \"Generation quality. Only honored by providers that support it (gpt-image-2).\",\n enum: [\"low\", \"medium\", \"high\"],\n \"x-ui-group\": \"Configuration\",\n} as const;\n\n/**\n * Properties shared by ImageGenerateTask and ImageEditTask. Inlined into each\n * task's input schema (rather than referenced via $ref) to keep the per-task\n * schema simple to inspect and serialize.\n */\nexport const AiImageOptionsProperties = {\n aspectRatio: AspectRatioSchema,\n quality: QualitySchema,\n seed: {\n type: \"number\",\n title: \"Seed\",\n description:\n \"Random seed for reproducibility. When unset, results are non-deterministic and the task is treated as not cacheable.\",\n \"x-ui-group\": \"Configuration\",\n },\n negativePrompt: {\n type: \"string\",\n title: \"Negative Prompt\",\n description:\n \"What the model should avoid. Honored by providers that support it (Imagen, HF diffusion models).\",\n \"x-ui-group\": \"Configuration\",\n },\n providerOptions: {\n type: \"object\",\n title: \"Provider Options\",\n description:\n \"Provider-specific options that don't normalize across providers (e.g., DALL-E style, HF guidance scale).\",\n additionalProperties: true,\n \"x-ui-group\": \"Advanced\",\n },\n} as const;\n\n/**\n * Output schema shared by ImageGenerateTask and ImageEditTask. Marked with\n * x-stream: \"replace\" so each provider snapshot replaces the prior partial.\n */\nexport const AiImageOutputSchema = {\n type: \"object\",\n properties: {\n image: ImageValueSchema({\n title: \"Image\",\n description: \"Generated image\",\n \"x-stream\": \"replace\",\n }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n",
|
|
38
38
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeImageInput, TypeModel } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:FaceDetectorTask\");\n\n/**\n * A bounding box for face detection.\n */\nconst TypeBoundingBox = {\n type: \"object\",\n properties: {\n x: {\n type: \"number\",\n title: \"X Coordinate\",\n description: \"X coordinate of the top-left corner\",\n },\n y: {\n type: \"number\",\n title: \"Y Coordinate\",\n description: \"Y coordinate of the top-left corner\",\n },\n width: {\n type: \"number\",\n title: \"Width\",\n description: \"Width of the bounding box\",\n },\n height: {\n type: \"number\",\n title: \"Height\",\n description: \"Height of the bounding box\",\n },\n },\n required: [\"x\", \"y\", \"width\", \"height\"],\n additionalProperties: false,\n} as const;\n\n/**\n * A keypoint on the face.\n */\nconst TypeKeypoint = {\n type: \"object\",\n properties: {\n x: {\n type: \"number\",\n title: \"X Coordinate\",\n description: \"X coordinate normalized to [0.0, 1.0]\",\n },\n y: {\n type: \"number\",\n title: \"Y Coordinate\",\n description: \"Y coordinate normalized to [0.0, 1.0]\",\n },\n label: {\n type: \"string\",\n title: \"Keypoint Label\",\n description: \"Label for the keypoint (e.g., 'leftEye', 'rightEye', 'noseTip', etc.)\",\n },\n },\n required: [\"x\", \"y\"],\n additionalProperties: false,\n} as const;\n\n/**\n * A detected face with bounding box and keypoints.\n */\nconst TypeFaceDetection = {\n type: \"object\",\n properties: {\n box: TypeBoundingBox,\n keypoints: {\n type: \"array\",\n items: TypeKeypoint,\n title: \"Keypoints\",\n description: \"Facial keypoints (left eye, right eye, nose tip, mouth, left/right tragion)\",\n },\n score: {\n type: \"number\",\n title: \"Confidence Score\",\n description: \"Confidence score for the face detection\",\n },\n },\n required: [\"box\", \"keypoints\", \"score\"],\n additionalProperties: false,\n} as const;\n\nexport const FaceDetectorInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n minDetectionConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Detection Confidence\",\n description: \"Minimum confidence score for face detection\",\n \"x-ui-group\": \"Configuration\",\n },\n minSuppressionThreshold: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.3,\n title: \"Min Suppression Threshold\",\n description: \"Minimum non-maximum-suppression threshold for overlapping detections\",\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const FaceDetectorOutputSchema = {\n type: \"object\",\n properties: {\n faces: {\n oneOf: [\n { type: \"array\", items: TypeFaceDetection },\n { type: \"array\", items: { type: \"array\", items: TypeFaceDetection } },\n ],\n title: \"Face Detections\",\n description: \"Detected faces with bounding boxes, keypoints, and confidence scores\",\n },\n },\n required: [\"faces\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type FaceDetectorTaskInput = FromSchema<typeof FaceDetectorInputSchema>;\nexport type FaceDetectorTaskOutput = FromSchema<typeof FaceDetectorOutputSchema>;\nexport type FaceDetectorTaskConfig = TaskConfig<FaceDetectorTaskInput>;\n\n/**\n * Detects faces in images using MediaPipe Face Detector.\n * Locates faces and identifies facial keypoints like eyes, nose, and mouth.\n */\nexport class FaceDetectorTask extends AiVisionTask<\n FaceDetectorTaskInput,\n FaceDetectorTaskOutput,\n FaceDetectorTaskConfig\n> {\n public static override type = \"FaceDetectorTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Face Detector\";\n public static override description =\n \"Detects faces in images. Locates faces and identifies facial keypoints like eyes, nose, and mouth.\";\n public static override inputSchema(): DataPortSchema {\n return FaceDetectorInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return FaceDetectorOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run face detection tasks.\n * Creates and executes a FaceDetectorTask with the provided input.\n * @param input The input parameters for face detection (image, model, and optional configuration)\n * @returns Promise resolving to the detected faces with bounding boxes and keypoints\n */\nexport const faceDetector = (input: FaceDetectorTaskInput, config?: FaceDetectorTaskConfig) => {\n return new FaceDetectorTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n faceDetector: CreateWorkflow<\n FaceDetectorTaskInput,\n FaceDetectorTaskOutput,\n FaceDetectorTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.faceDetector = CreateWorkflow(FaceDetectorTask);\n",
|
|
39
39
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeImageInput, TypeLandmark, TypeModel } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:FaceLandmarkerTask\");\n\n/**\n * A blendshape coefficient representing facial expression.\n */\nconst TypeBlendshape = {\n type: \"object\",\n properties: {\n label: {\n type: \"string\",\n title: \"Blendshape Label\",\n description: \"Name of the blendshape (e.g., 'browDownLeft', 'eyeBlinkRight', etc.)\",\n },\n score: {\n type: \"number\",\n title: \"Coefficient Value\",\n description: \"Coefficient value for this blendshape\",\n },\n },\n required: [\"label\", \"score\"],\n additionalProperties: false,\n} as const;\n\n/**\n * A 4x4 transformation matrix.\n */\nconst TypeTransformationMatrix = {\n type: \"array\",\n items: { type: \"number\" },\n minItems: 16,\n maxItems: 16,\n title: \"Transformation Matrix\",\n description: \"4x4 transformation matrix for face effects rendering\",\n} as const;\n\n/**\n * Detection result for a single face.\n */\nconst TypeFaceLandmarkerDetection = {\n type: \"object\",\n properties: {\n landmarks: {\n type: \"array\",\n items: TypeLandmark,\n title: \"Landmarks\",\n description: \"478 facial landmarks in image coordinates\",\n format: \"points:3d:relative\",\n },\n blendshapes: {\n type: \"array\",\n items: TypeBlendshape,\n title: \"Blendshapes\",\n description: \"52 blendshape coefficients representing facial expressions\",\n },\n transformationMatrix: TypeTransformationMatrix,\n },\n required: [\"landmarks\"],\n additionalProperties: false,\n} as const;\n\nexport const FaceLandmarkerInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n numFaces: {\n type: \"number\",\n minimum: 1,\n maximum: 10,\n default: 1,\n title: \"Number of Faces\",\n description: \"The maximum number of faces to detect\",\n \"x-ui-group\": \"Configuration\",\n },\n minFaceDetectionConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Face Detection Confidence\",\n description: \"Minimum confidence score for face detection\",\n \"x-ui-group\": \"Configuration\",\n },\n minFacePresenceConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Face Presence Confidence\",\n description: \"Minimum confidence score for face presence\",\n \"x-ui-group\": \"Configuration\",\n },\n minTrackingConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Tracking Confidence\",\n description: \"Minimum confidence score for face tracking\",\n \"x-ui-group\": \"Configuration\",\n },\n outputFaceBlendshapes: {\n type: \"boolean\",\n default: false,\n title: \"Output Face Blendshapes\",\n description: \"Whether to output blendshape coefficients for facial expressions\",\n \"x-ui-group\": \"Configuration\",\n },\n outputFacialTransformationMatrixes: {\n type: \"boolean\",\n default: false,\n title: \"Output Facial Transformation Matrix\",\n description: \"Whether to output transformation matrix for effects rendering\",\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const FaceLandmarkerOutputSchema = {\n type: \"object\",\n properties: {\n faces: {\n oneOf: [\n { type: \"array\", items: TypeFaceLandmarkerDetection },\n { type: \"array\", items: { type: \"array\", items: TypeFaceLandmarkerDetection } },\n ],\n title: \"Face Detections\",\n description: \"Detected faces with landmarks, blendshapes, and transformation matrices\",\n },\n },\n required: [\"faces\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type FaceLandmarkerTaskInput = FromSchema<typeof FaceLandmarkerInputSchema>;\nexport type FaceLandmarkerTaskOutput = FromSchema<typeof FaceLandmarkerOutputSchema>;\nexport type FaceLandmarkerTaskConfig = TaskConfig<FaceLandmarkerTaskInput>;\n\n/**\n * Detects facial landmarks and expressions in images using MediaPipe Face Landmarker.\n * Identifies 478 facial landmarks, 52 blendshape coefficients for expressions,\n * and provides transformation matrices for AR effects.\n */\nexport class FaceLandmarkerTask extends AiVisionTask<\n FaceLandmarkerTaskInput,\n FaceLandmarkerTaskOutput,\n FaceLandmarkerTaskConfig\n> {\n public static override type = \"FaceLandmarkerTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Face Landmarker\";\n public static override description =\n \"Detects facial landmarks and expressions in images. Identifies 478 facial landmarks, blendshapes for expressions, and transformation matrices for AR effects.\";\n public static override inputSchema(): DataPortSchema {\n return FaceLandmarkerInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return FaceLandmarkerOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run face landmark detection tasks.\n * Creates and executes a FaceLandmarkerTask with the provided input.\n * @param input The input parameters for face landmark detection (image, model, and optional configuration)\n * @returns Promise resolving to the detected facial landmarks, blendshapes, and transformation matrices\n */\nexport const faceLandmarker = (\n input: FaceLandmarkerTaskInput,\n config?: FaceLandmarkerTaskConfig\n) => {\n return new FaceLandmarkerTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n faceLandmarker: CreateWorkflow<\n FaceLandmarkerTaskInput,\n FaceLandmarkerTaskOutput,\n FaceLandmarkerTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.faceLandmarker = CreateWorkflow(FaceLandmarkerTask);\n",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeImageInput, TypeModel } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:ImageSegmentationTask\");\n\nexport const ImageSegmentationInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n threshold: {\n type: \"number\",\n title: \"Threshold\",\n description: \"The threshold for filtering masks by score\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n \"x-ui-group\": \"Configuration\",\n },\n maskThreshold: {\n type: \"number\",\n title: \"Mask Threshold\",\n description: \"Threshold to use when turning predicted masks into binary values\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst segmentationMaskSchema = {\n type: \"object\",\n properties: {\n label: {\n type: \"string\",\n title: \"Label\",\n description: \"The label of the segmented region\",\n },\n score: {\n type: \"number\",\n title: \"Score\",\n description: \"The confidence score for this segmentation\",\n minimum: 0,\n maximum: 1,\n },\n mask: {\n type: \"object\",\n format: \"image\",\n title: \"Mask\",\n description: \"Mask image\",\n },\n },\n required: [\"label\", \"score\", \"mask\"],\n additionalProperties: false,\n} as const;\n\nexport const ImageSegmentationOutputSchema = {\n type: \"object\",\n properties: {\n masks: {\n oneOf: [\n { type: \"array\", items: segmentationMaskSchema },\n { type: \"array\", items: { type: \"array\", items: segmentationMaskSchema } },\n ],\n title: \"Segmentation Masks\",\n description: \"The segmented regions with their labels, scores, and masks\",\n },\n },\n required: [\"masks\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageSegmentationTaskInput = FromSchema<typeof ImageSegmentationInputSchema>;\nexport type ImageSegmentationTaskOutput = FromSchema<typeof ImageSegmentationOutputSchema>;\nexport type ImageSegmentationTaskConfig = TaskConfig<ImageSegmentationTaskInput>;\n\n/**\n * Segments images into regions using computer vision models\n */\nexport class ImageSegmentationTask extends AiVisionTask<\n ImageSegmentationTaskInput,\n ImageSegmentationTaskOutput,\n ImageSegmentationTaskConfig\n> {\n public static override type = \"ImageSegmentationTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Image Segmentation\";\n public static override description =\n \"Segments images into regions with labels using computer vision models\";\n public static override inputSchema(): DataPortSchema {\n return ImageSegmentationInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return ImageSegmentationOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run image segmentation tasks.\n * Creates and executes an ImageSegmentationTask with the provided input.\n * @param input The input parameters for image segmentation (image and model)\n * @returns Promise resolving to the segmentation masks with labels and scores\n */\nexport const imageSegmentation = (\n input: ImageSegmentationTaskInput,\n config?: ImageSegmentationTaskConfig\n) => {\n return new ImageSegmentationTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageSegmentation: CreateWorkflow<\n ImageSegmentationTaskInput,\n ImageSegmentationTaskOutput,\n ImageSegmentationTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.imageSegmentation = CreateWorkflow(ImageSegmentationTask);\n",
|
|
49
49
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeImageInput, TypeModel } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:ImageToTextTask\");\n\nconst generatedTextSchema = {\n type: \"string\",\n title: \"Text\",\n description: \"The generated text description\",\n} as const;\n\nexport const ImageToTextInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n maxTokens: {\n type: \"number\",\n title: \"Max Tokens\",\n description: \"The maximum number of tokens to generate\",\n minimum: 1,\n maximum: 4096,\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const ImageToTextOutputSchema = {\n type: \"object\",\n properties: {\n text: {\n oneOf: [generatedTextSchema, { type: \"array\", items: generatedTextSchema }],\n title: generatedTextSchema.title,\n description: generatedTextSchema.description,\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageToTextTaskInput = FromSchema<typeof ImageToTextInputSchema>;\nexport type ImageToTextTaskOutput = FromSchema<typeof ImageToTextOutputSchema>;\nexport type ImageToTextTaskConfig = TaskConfig<ImageToTextTaskInput>;\n\n/**\n * Generates text descriptions from images using vision-language models\n */\nexport class ImageToTextTask extends AiVisionTask<\n ImageToTextTaskInput,\n ImageToTextTaskOutput,\n ImageToTextTaskConfig\n> {\n public static override type = \"ImageToTextTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Image to Text\";\n public static override description =\n \"Generates text descriptions from images using vision-language models\";\n public static override inputSchema(): DataPortSchema {\n return ImageToTextInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return ImageToTextOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run image to text tasks.\n * Creates and executes an ImageToTextTask with the provided input.\n * @param input The input parameters for image to text (image and model)\n * @returns Promise resolving to the generated text description\n */\nexport const imageToText = (input: ImageToTextTaskInput, config?: ImageToTextTaskConfig) => {\n return new ImageToTextTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageToText: CreateWorkflow<ImageToTextTaskInput, ImageToTextTaskOutput, ImageToTextTaskConfig>;\n }\n}\n\nWorkflow.prototype.imageToText = CreateWorkflow(ImageToTextTask);\n",
|
|
50
50
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\n\nimport type { IExecuteContext, TaskConfig } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { ModelConfig } from \"../model/ModelSchema\";\nimport { getAiProviderRegistry } from \"../provider/AiProviderRegistry\";\nimport { AiTask } from \"./base/AiTask\";\nimport { TypeModel } from \"./base/AiTaskSchemas\";\n\nconst modelSchema = TypeModel(\"model\");\n\nconst ModelInfoInputSchema = {\n type: \"object\",\n properties: {\n model: modelSchema,\n detail: {\n type: \"string\",\n enum: [\"cached_status\", \"files\", \"files_with_metadata\", \"dimensions\"],\n default: \"files_with_metadata\",\n },\n },\n required: [\"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst ModelInfoOutputSchema = {\n type: \"object\",\n properties: {\n model: modelSchema,\n is_local: { type: \"boolean\" },\n is_remote: { type: \"boolean\" },\n supports_browser: { type: \"boolean\" },\n supports_node: { type: \"boolean\" },\n is_cached: { type: \"boolean\" },\n is_loaded: { type: \"boolean\" },\n file_sizes: {},\n quantizations: {\n type: \"array\",\n items: { type: \"string\" },\n description:\n \"Available quantization variants (e.g. fp32, fp16, q8). Only present for models with quantization options.\",\n },\n native_dimensions: {\n type: \"integer\",\n description:\n \"Native output vector dimensions. Only present when detail is 'dimensions' and the provider can determine them.\",\n },\n mrl: {\n type: \"boolean\",\n description:\n \"Whether the model supports Matryoshka Representation Learning. Only present when detail is 'dimensions'.\",\n },\n },\n required: [\n \"model\",\n \"is_local\",\n \"is_remote\",\n \"supports_browser\",\n \"supports_node\",\n \"is_cached\",\n \"is_loaded\",\n \"file_sizes\",\n ],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ModelInfoTaskInput = FromSchema<typeof ModelInfoInputSchema>;\nexport type ModelInfoTaskOutput = FromSchema<typeof ModelInfoOutputSchema>;\nexport type ModelInfoTaskConfig = TaskConfig<ModelInfoTaskInput>;\n\n/**\n * Retrieve runtime metadata about a model: locality, browser support, cache status, and file sizes.\n */\nexport class ModelInfoTask extends AiTask<\n ModelInfoTaskInput,\n ModelInfoTaskOutput,\n ModelInfoTaskConfig\n> {\n public static override type = \"ModelInfoTask\";\n public static override category = \"AI Model\";\n public static override cacheable = false;\n public static override title = \"Model Info\";\n public static override description =\n \"Returns runtime information about a model including locality, cache status, and file sizes\";\n public static override inputSchema(): DataPortSchema {\n return ModelInfoInputSchema satisfies DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return ModelInfoOutputSchema satisfies DataPortSchema;\n }\n\n override async execute(\n input: ModelInfoTaskInput,\n context: IExecuteContext\n ): Promise<ModelInfoTaskOutput> {\n const model = input.model as ModelConfig;\n const registry = getAiProviderRegistry();\n const noop = () => {};\n const runFn = registry.getDirectRunFn<ModelInfoTaskInput, ModelInfoTaskOutput>(\n model.provider,\n \"ModelInfoTask\"\n );\n return runFn(input, model, noop, context.signal);\n }\n}\n\n/**\n * Retrieve runtime metadata about a model.\n *\n * @param input - Input containing the model to query\n * @returns Promise resolving to model info including locality and cache status\n */\nexport const modelInfo = (input: ModelInfoTaskInput, config?: ModelInfoTaskConfig) => {\n return new ModelInfoTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n modelInfo: CreateWorkflow<ModelInfoTaskInput, ModelInfoTaskOutput, ModelInfoTaskConfig>;\n }\n}\n\nWorkflow.prototype.modelInfo = CreateWorkflow(ModelInfoTask);\n",
|
|
51
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, Workflow } from \"@workglow/task-graph\";\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport {
|
|
51
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, Workflow } from \"@workglow/task-graph\";\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport type { ModelRecord } from \"../model/ModelSchema\";\nimport { getAiProviderRegistry } from \"../provider/AiProviderRegistry\";\nimport { TypeModel } from \"./base/AiTaskSchemas\";\n\n/**\n * A single result item from a model search.\n */\nexport interface ModelSearchResultItem {\n readonly id: string;\n readonly label: string;\n readonly description: string;\n readonly record: Partial<ModelRecord>;\n readonly raw: unknown;\n}\n\n/** Static input schema (serialization, typing). Enum/labels for `provider` are added at runtime via {@link ModelSearchTask.inputSchema}. */\nconst ModelSearchInputSchema = {\n type: \"object\",\n properties: {\n provider: {\n type: \"string\",\n title: \"Provider\",\n description:\n \"Registered AI provider id to use for model search. At runtime the workflow UI lists only providers that support model search.\",\n },\n query: {\n type: \"string\",\n title: \"Query\",\n description:\n \"Optional search string. When omitted or empty, returns all models (provider-specific listing).\",\n },\n credential_key: {\n type: \"string\",\n title: \"Credential\",\n description:\n \"Optional credential-store key used to list provider models. When omitted, providers may return a curated fallback list.\",\n format: \"credential\",\n \"x-ui-hidden\": true,\n },\n },\n required: [\"provider\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nfunction buildModelSearchInputSchemaDynamic(): DataPortSchema {\n const registry = getAiProviderRegistry();\n const ids = registry.getProviderIdsForTask(\"ModelSearchTask\");\n const enumLabels: Record<string, string> = {};\n for (const id of ids) {\n enumLabels[id] = registry.getProvider(id)?.displayName ?? id;\n }\n const providerProp: Record<string, unknown> = {\n ...ModelSearchInputSchema.properties.provider,\n };\n if (ids.length > 0) {\n providerProp.enum = ids;\n providerProp[\"x-ui-enum-labels\"] = enumLabels;\n }\n return {\n type: \"object\",\n properties: {\n provider: providerProp,\n query: ModelSearchInputSchema.properties.query,\n credential_key: ModelSearchInputSchema.properties.credential_key,\n },\n required: [...ModelSearchInputSchema.required],\n additionalProperties: ModelSearchInputSchema.additionalProperties,\n } as DataPortSchema;\n}\n\nconst ModelSearchOutputSchema = {\n type: \"object\",\n properties: {\n results: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n label: { type: \"string\" },\n description: { type: \"string\" },\n record: TypeModel(\"model\"),\n raw: {},\n },\n required: [\"id\", \"label\", \"description\", \"record\"],\n additionalProperties: false,\n },\n },\n },\n required: [\"results\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ModelSearchTaskInput = FromSchema<typeof ModelSearchInputSchema>;\nexport type ModelSearchTaskOutput = { results: ModelSearchResultItem[] };\nexport type ModelSearchTaskConfig = TaskConfig<ModelSearchTaskInput>;\n\n/**\n * Search for models using a provider-specific run function from the AiProviderRegistry.\n */\nexport class ModelSearchTask extends Task<\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n ModelSearchTaskConfig\n> {\n public static override type = \"ModelSearchTask\";\n public static override category = \"AI Model\";\n public static override title = \"Model Search\";\n public static override description = \"Search for models using provider-specific search functions\";\n public static override cacheable = false;\n public static override hasDynamicSchemas = true;\n\n public static override inputSchema(): DataPortSchema {\n return ModelSearchInputSchema satisfies DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return ModelSearchOutputSchema satisfies DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return buildModelSearchInputSchemaDynamic();\n }\n\n override async execute(\n input: ModelSearchTaskInput,\n context: IExecuteContext\n ): Promise<ModelSearchTaskOutput> {\n const registry = getAiProviderRegistry();\n const noop = () => {};\n const runFn = registry.getDirectRunFn<ModelSearchTaskInput, ModelSearchTaskOutput>(\n input.provider,\n \"ModelSearchTask\"\n );\n return runFn(input, undefined, noop, context.signal);\n }\n}\n\n/**\n * Search for models using a provider-specific search function.\n */\nexport const modelSearch = (input: ModelSearchTaskInput, config?: ModelSearchTaskConfig) => {\n return new ModelSearchTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n modelSearch: CreateWorkflow<ModelSearchTaskInput, ModelSearchTaskOutput, ModelSearchTaskConfig>;\n }\n}\n\nWorkflow.prototype.modelSearch = CreateWorkflow(ModelSearchTask);\n",
|
|
52
52
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeBoundingBox, TypeImageInput, TypeModel } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:ObjectDetectionTask\");\n\nconst detectionSchema = {\n type: \"object\",\n properties: {\n label: {\n type: \"string\",\n title: \"Label\",\n description: \"The label of the detected object\",\n },\n score: {\n type: \"number\",\n title: \"Confidence Score\",\n description: \"The confidence score for this detection\",\n minimum: 0,\n maximum: 1,\n },\n box: TypeBoundingBox,\n },\n required: [\"label\", \"score\", \"box\"],\n additionalProperties: false,\n} as const;\n\nexport const ObjectDetectionInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n labels: {\n type: \"array\",\n items: {\n type: \"string\",\n },\n title: \"Labels\",\n description:\n \"List of object labels to detect (optional, if provided uses zero-shot detection)\",\n \"x-ui-group\": \"Configuration\",\n },\n threshold: {\n type: \"number\",\n title: \"Threshold\",\n description: \"The threshold for filtering detections by score\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const ObjectDetectionOutputSchema = {\n type: \"object\",\n properties: {\n detections: {\n oneOf: [\n { type: \"array\", items: detectionSchema },\n { type: \"array\", items: { type: \"array\", items: detectionSchema } },\n ],\n title: \"Detections\",\n description: \"The detected objects with their labels, scores, and bounding boxes\",\n },\n },\n required: [\"detections\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ObjectDetectionTaskInput = FromSchema<typeof ObjectDetectionInputSchema>;\nexport type ObjectDetectionTaskOutput = FromSchema<typeof ObjectDetectionOutputSchema>;\nexport type ObjectDetectionTaskConfig = TaskConfig<ObjectDetectionTaskInput>;\n\n/**\n * Detects objects in images using vision models.\n * Automatically selects between regular and zero-shot detection based on whether labels are provided.\n */\nexport class ObjectDetectionTask extends AiVisionTask<\n ObjectDetectionTaskInput,\n ObjectDetectionTaskOutput,\n ObjectDetectionTaskConfig\n> {\n public static override type = \"ObjectDetectionTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Object Detection\";\n public static override description =\n \"Detects objects in images using vision models. Supports zero-shot detection when labels are provided.\";\n public static override inputSchema(): DataPortSchema {\n return ObjectDetectionInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return ObjectDetectionOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run object detection tasks.\n * Creates and executes an ObjectDetectionTask with the provided input.\n * @param input The input parameters for object detection (image, model, and optional labels)\n * @returns Promise resolving to the detected objects with labels, scores, and bounding boxes\n */\nexport const objectDetection = (\n input: ObjectDetectionTaskInput,\n config?: ObjectDetectionTaskConfig\n) => {\n return new ObjectDetectionTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n objectDetection: CreateWorkflow<\n ObjectDetectionTaskInput,\n ObjectDetectionTaskOutput,\n ObjectDetectionTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.objectDetection = CreateWorkflow(ObjectDetectionTask);\n",
|
|
53
53
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { TypeImageInput, TypeModel, TypePoseLandmark } from \"./base/AiTaskSchemas\";\nimport { AiVisionTask } from \"./base/AiVisionTask\";\n\nconst modelSchema = TypeModel(\"model:PoseLandmarkerTask\");\n\n/**\n * A segmentation mask for the detected person.\n */\nconst TypeSegmentationMask = {\n type: \"object\",\n properties: {\n data: {\n type: \"object\",\n title: \"Mask Data\",\n description: \"Canvas or image data containing the segmentation mask\",\n },\n width: {\n type: \"number\",\n title: \"Width\",\n description: \"Width of the segmentation mask\",\n },\n height: {\n type: \"number\",\n title: \"Height\",\n description: \"Height of the segmentation mask\",\n },\n },\n required: [\"data\", \"width\", \"height\"],\n additionalProperties: false,\n} as const;\n\n/**\n * Detection result for a single pose.\n */\nconst TypePoseDetection = {\n type: \"object\",\n properties: {\n landmarks: {\n type: \"array\",\n items: TypePoseLandmark,\n title: \"Landmarks\",\n description: \"33 pose landmarks in image coordinates\",\n },\n worldLandmarks: {\n type: \"array\",\n items: TypePoseLandmark,\n title: \"World Landmarks\",\n description: \"33 pose landmarks in 3D world coordinates (meters)\",\n },\n segmentationMask: TypeSegmentationMask,\n },\n required: [\"landmarks\", \"worldLandmarks\"],\n additionalProperties: false,\n} as const;\n\nexport const PoseLandmarkerInputSchema = {\n type: \"object\",\n properties: {\n image: TypeImageInput,\n model: modelSchema,\n numPoses: {\n type: \"number\",\n minimum: 1,\n maximum: 10,\n default: 1,\n title: \"Number of Poses\",\n description: \"The maximum number of poses to detect\",\n \"x-ui-group\": \"Configuration\",\n },\n minPoseDetectionConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Pose Detection Confidence\",\n description: \"Minimum confidence score for pose detection\",\n \"x-ui-group\": \"Configuration\",\n },\n minPosePresenceConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Pose Presence Confidence\",\n description: \"Minimum confidence score for pose presence\",\n \"x-ui-group\": \"Configuration\",\n },\n minTrackingConfidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n title: \"Min Tracking Confidence\",\n description: \"Minimum confidence score for pose tracking\",\n \"x-ui-group\": \"Configuration\",\n },\n outputSegmentationMasks: {\n type: \"boolean\",\n default: false,\n title: \"Output Segmentation Masks\",\n description: \"Whether to output segmentation masks for detected poses\",\n \"x-ui-group\": \"Configuration\",\n },\n },\n required: [\"image\", \"model\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport const PoseLandmarkerOutputSchema = {\n type: \"object\",\n properties: {\n poses: {\n oneOf: [\n { type: \"array\", items: TypePoseDetection },\n { type: \"array\", items: { type: \"array\", items: TypePoseDetection } },\n ],\n title: \"Pose Detections\",\n description: \"Detected poses with landmarks and optional segmentation masks\",\n },\n },\n required: [\"poses\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type PoseLandmarkerTaskInput = FromSchema<typeof PoseLandmarkerInputSchema>;\nexport type PoseLandmarkerTaskOutput = FromSchema<typeof PoseLandmarkerOutputSchema>;\nexport type PoseLandmarkerTaskConfig = TaskConfig<PoseLandmarkerTaskInput>;\n\n/**\n * Detects pose landmarks in images using MediaPipe Pose Landmarker.\n * Identifies 33 body landmarks for pose estimation and optional segmentation.\n */\nexport class PoseLandmarkerTask extends AiVisionTask<\n PoseLandmarkerTaskInput,\n PoseLandmarkerTaskOutput,\n PoseLandmarkerTaskConfig\n> {\n public static override type = \"PoseLandmarkerTask\";\n public static override category = \"AI Vision\";\n public static override title = \"Pose Landmarker\";\n public static override description =\n \"Detects pose landmarks in images. Identifies 33 body landmarks for pose estimation and optional segmentation.\";\n public static override inputSchema(): DataPortSchema {\n return PoseLandmarkerInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return PoseLandmarkerOutputSchema as DataPortSchema;\n }\n}\n\n/**\n * Convenience function to run pose landmark detection tasks.\n * Creates and executes a PoseLandmarkerTask with the provided input.\n * @param input The input parameters for pose landmark detection (image, model, and optional configuration)\n * @returns Promise resolving to the detected pose landmarks and optional segmentation masks\n */\nexport const poseLandmarker = (\n input: PoseLandmarkerTaskInput,\n config?: PoseLandmarkerTaskConfig\n) => {\n return new PoseLandmarkerTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n poseLandmarker: CreateWorkflow<\n PoseLandmarkerTaskInput,\n PoseLandmarkerTaskOutput,\n PoseLandmarkerTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.poseLandmarker = CreateWorkflow(PoseLandmarkerTask);\n",
|
|
54
54
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, Workflow } from \"@workglow/task-graph\";\n\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nexport const QueryExpansionMethod = {\n MULTI_QUERY: \"multi-query\",\n SYNONYMS: \"synonyms\",\n} as const;\n\nexport type QueryExpansionMethod = (typeof QueryExpansionMethod)[keyof typeof QueryExpansionMethod];\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n query: {\n type: \"string\",\n title: \"Query\",\n description: \"The original query to expand\",\n },\n method: {\n type: \"string\",\n enum: Object.values(QueryExpansionMethod),\n title: \"Expansion Method\",\n description: \"Method to use for query expansion\",\n default: QueryExpansionMethod.MULTI_QUERY,\n },\n numVariations: {\n type: \"number\",\n title: \"Number of Variations\",\n description: \"Number of query variations to generate\",\n minimum: 1,\n maximum: 10,\n default: 3,\n },\n },\n required: [\"query\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n query: {\n type: \"array\",\n items: { type: \"string\" },\n title: \"Expanded Queries\",\n description: \"Generated query variations\",\n },\n originalQuery: {\n type: \"string\",\n title: \"Original Query\",\n description: \"The original input query\",\n },\n method: {\n type: \"string\",\n title: \"Method Used\",\n description: \"The expansion method that was used\",\n },\n count: {\n type: \"number\",\n title: \"Count\",\n description: \"Number of queries generated\",\n },\n },\n required: [\"query\", \"originalQuery\", \"method\", \"count\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type QueryExpanderTaskInput = FromSchema<typeof inputSchema>;\nexport type QueryExpanderTaskOutput = FromSchema<typeof outputSchema>;\nexport type QueryExpanderTaskConfig = TaskConfig<QueryExpanderTaskInput>;\n\n/**\n * Rule-based query expansion for improved retrieval recall.\n * Supports `multi-query` (question-word variations) and `synonyms` (keyword swaps).\n * Note: LLM-driven methods (HyDE, paraphrase) were removed until a real\n * implementation lands — use a TextGenerationTask upstream for those.\n */\nexport class QueryExpanderTask extends Task<\n QueryExpanderTaskInput,\n QueryExpanderTaskOutput,\n QueryExpanderTaskConfig\n> {\n public static override type = \"QueryExpanderTask\";\n public static override category = \"RAG\";\n public static override title = \"Query Expander\";\n public static override description = \"Expand queries to improve retrieval coverage\";\n public static override cacheable = true;\n\n public static override inputSchema(): DataPortSchema {\n return inputSchema as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return outputSchema as DataPortSchema;\n }\n\n override async execute(\n input: QueryExpanderTaskInput,\n context: IExecuteContext\n ): Promise<QueryExpanderTaskOutput> {\n const { query, method = QueryExpansionMethod.MULTI_QUERY, numVariations = 3 } = input;\n\n let queries: string[];\n switch (method) {\n case QueryExpansionMethod.SYNONYMS:\n queries = this.synonymExpansion(query, numVariations);\n break;\n case QueryExpansionMethod.MULTI_QUERY:\n default:\n queries = this.multiQueryExpansion(query, numVariations);\n break;\n }\n\n if (!queries.includes(query)) {\n queries.unshift(query);\n }\n\n return {\n query: queries,\n originalQuery: query,\n method,\n count: queries.length,\n };\n }\n\n private multiQueryExpansion(query: string, numVariations: number): string[] {\n const queries: string[] = [query];\n const variations: string[] = [];\n\n if (query.toLowerCase().startsWith(\"what\")) {\n variations.push(query.replace(/^what/i, \"Which\"));\n variations.push(query.replace(/^what/i, \"Can you explain\"));\n } else if (query.toLowerCase().startsWith(\"how\")) {\n variations.push(query.replace(/^how/i, \"What is the method to\"));\n variations.push(query.replace(/^how/i, \"In what way\"));\n } else if (query.toLowerCase().startsWith(\"why\")) {\n variations.push(query.replace(/^why/i, \"What is the reason\"));\n variations.push(query.replace(/^why/i, \"For what purpose\"));\n } else if (query.toLowerCase().startsWith(\"where\")) {\n variations.push(query.replace(/^where/i, \"In which location\"));\n variations.push(query.replace(/^where/i, \"At what place\"));\n }\n\n if (!query.toLowerCase().startsWith(\"tell me\")) {\n variations.push(`Tell me about ${query.toLowerCase()}`);\n }\n if (!query.toLowerCase().startsWith(\"explain\")) {\n variations.push(`Explain ${query.toLowerCase()}`);\n }\n\n for (let i = 0; i < Math.min(numVariations - 1, variations.length); i++) {\n if (variations[i] && !queries.includes(variations[i])) {\n queries.push(variations[i]);\n }\n }\n\n return queries;\n }\n\n private synonymExpansion(query: string, numVariations: number): string[] {\n const queries: string[] = [query];\n\n const synonyms: Record<string, string[]> = {\n find: [\"locate\", \"discover\", \"search for\"],\n create: [\"make\", \"build\", \"generate\"],\n delete: [\"remove\", \"erase\", \"eliminate\"],\n update: [\"modify\", \"change\", \"edit\"],\n show: [\"display\", \"present\", \"reveal\"],\n explain: [\"describe\", \"clarify\", \"elaborate\"],\n help: [\"assist\", \"aid\", \"support\"],\n problem: [\"issue\", \"challenge\", \"difficulty\"],\n solution: [\"answer\", \"resolution\", \"fix\"],\n method: [\"approach\", \"technique\", \"way\"],\n };\n\n const words = query.toLowerCase().split(/\\s+/);\n let variationsGenerated = 0;\n\n for (const [word, syns] of Object.entries(synonyms)) {\n if (variationsGenerated >= numVariations - 1) break;\n const wordIndex = words.indexOf(word);\n if (wordIndex !== -1) {\n for (const syn of syns) {\n if (variationsGenerated >= numVariations - 1) break;\n const newWords = [...words];\n newWords[wordIndex] = syn;\n const capitalizedQuery = this.preserveCapitalization(query, newWords.join(\" \"));\n if (!queries.includes(capitalizedQuery)) {\n queries.push(capitalizedQuery);\n variationsGenerated++;\n }\n }\n }\n }\n\n return queries;\n }\n\n private preserveCapitalization(original: string, modified: string): string {\n if (original[0] === original[0].toUpperCase()) {\n return modified.charAt(0).toUpperCase() + modified.slice(1);\n }\n return modified;\n }\n}\n\nexport const queryExpander = (input: QueryExpanderTaskInput, config?: QueryExpanderTaskConfig) => {\n return new QueryExpanderTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n queryExpander: CreateWorkflow<\n QueryExpanderTaskInput,\n QueryExpanderTaskOutput,\n QueryExpanderTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.queryExpander = CreateWorkflow(QueryExpanderTask);\n",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, GraphAsTask, Workflow } from \"@workglow/task-graph\";\nimport type { TaskConfig } from \"@workglow/task-graph\";\nimport {\n cosineSimilarity,\n DataPortSchema,\n FromSchema,\n hammingSimilarity,\n jaccardSimilarity,\n TypedArraySchema,\n TypedArraySchemaOptions,\n} from \"@workglow/util/schema\";\n\nexport const SimilarityFn = {\n COSINE: \"cosine\",\n JACCARD: \"jaccard\",\n HAMMING: \"hamming\",\n} as const;\n\nconst similarityFunctions = {\n cosine: cosineSimilarity,\n jaccard: jaccardSimilarity,\n hamming: hammingSimilarity,\n} as const;\n\nexport type SimilarityFn = (typeof SimilarityFn)[keyof typeof SimilarityFn];\n\nconst SimilarityInputSchema = {\n type: \"object\",\n properties: {\n query: TypedArraySchema({\n title: \"Query\",\n description: \"Query vector to compare against\",\n }),\n vectors: {\n type: \"array\",\n items: TypedArraySchema({\n title: \"Input\",\n description: \"Array of vectors to compare against the query\",\n }),\n },\n topK: {\n type: \"number\",\n title: \"Top K\",\n description: \"Number of top results to return\",\n minimum: 1,\n default: 10,\n },\n method: {\n type: \"string\",\n enum: Object.values(SimilarityFn),\n title: \"Similarity 𝑓\",\n description: \"Similarity function to use for comparisons\",\n default: SimilarityFn.COSINE,\n },\n },\n required: [\"query\", \"vectors\", \"method\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst SimilarityOutputSchema = {\n type: \"object\",\n properties: {\n output: {\n type: \"array\",\n items: TypedArraySchema({\n title: \"Output\",\n description: \"Ranked output vectors\",\n }),\n },\n score: {\n type: \"array\",\n items: {\n type: \"number\",\n title: \"Score\",\n description: \"Similarity scores for each output vector\",\n },\n },\n },\n required: [\"output\", \"score\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type VectorSimilarityTaskInput = FromSchema<\n typeof SimilarityInputSchema,\n TypedArraySchemaOptions\n>;\nexport type VectorSimilarityTaskOutput = FromSchema<\n typeof SimilarityOutputSchema,\n TypedArraySchemaOptions\n>;\nexport type VectorSimilarityTaskConfig = TaskConfig<VectorSimilarityTaskInput>;\n\nexport class VectorSimilarityTask extends GraphAsTask<\n VectorSimilarityTaskInput,\n VectorSimilarityTaskOutput,\n VectorSimilarityTaskConfig\n> {\n static override readonly type = \"VectorSimilarityTask\";\n static override readonly category = \"Vector\";\n static override readonly title = \"Vector Similarity\";\n public static override description =\n \"Compares vectors using similarity functions and returns top-K ranked results\";\n static override readonly cacheable = true;\n\n public static override inputSchema(): DataPortSchema {\n return SimilarityInputSchema as DataPortSchema;\n }\n public static override outputSchema(): DataPortSchema {\n return SimilarityOutputSchema as DataPortSchema;\n }\n\n override async execute(input: VectorSimilarityTaskInput): Promise<VectorSimilarityTaskOutput> {\n return this.executePreview(input);\n }\n\n override async executePreview({\n query,\n vectors,\n method,\n topK,\n }: VectorSimilarityTaskInput): Promise<VectorSimilarityTaskOutput> {\n let similarities = [];\n const fnName = method as keyof typeof similarityFunctions;\n const fn = similarityFunctions[fnName];\n\n for (const embedding of vectors) {\n similarities.push({\n similarity: fn(embedding, query),\n embedding,\n });\n }\n similarities = similarities.sort((a, b) => b.similarity - a.similarity).slice(0, topK);\n\n const outputs = similarities.map((s) => s.embedding);\n const scores = similarities.map((s) => s.similarity);\n return {\n output: outputs,\n score: scores,\n };\n }\n}\n\nexport const similarity = (\n input: VectorSimilarityTaskInput,\n config?: VectorSimilarityTaskConfig\n) => {\n return new VectorSimilarityTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n similarity: CreateWorkflow<\n VectorSimilarityTaskInput,\n VectorSimilarityTaskOutput,\n VectorSimilarityTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.similarity = CreateWorkflow(VectorSimilarityTask);\n",
|
|
71
71
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Shared message conversion utilities for converting provider-agnostic\n * ChatMessage arrays to provider-specific formats.\n *\n * These are pure functions safe for both main-thread and worker contexts.\n * Providers with unique requirements (Anthropic, Gemini, LlamaCpp)\n * maintain their own conversion logic.\n */\n\nimport type { ChatMessage, ContentBlock } from \"./ChatMessage\";\nimport type { ToolCallingTaskInput } from \"./ToolCallingTask\";\n\n// ========================================================================\n// Internal helpers\n// ========================================================================\n\n/**\n * Extract the messages array from a ToolCallingTaskInput.\n * Returns undefined if no messages are present.\n */\nfunction getInputMessages(input: ToolCallingTaskInput): ReadonlyArray<ChatMessage> | undefined {\n const messages = input.messages;\n if (!messages || messages.length === 0) return undefined;\n return messages;\n}\n\n// ========================================================================\n// OpenAI-compatible format (OpenAI, HF Inference)\n// ========================================================================\n\nexport interface OpenAICompatMessage {\n role: string;\n content: string | null | Array<{ type: string; [key: string]: unknown }>;\n tool_calls?: Array<{\n id: string;\n type: \"function\";\n function: { name: string; arguments: string };\n }>;\n tool_call_id?: string;\n}\n\n/**\n * Converts ToolCallingTaskInput to OpenAI-compatible message format.\n * Used by OpenAI and HuggingFace Inference providers.\n *\n * Multi-turn capable: preserves full tool call metadata across turns.\n */\nexport function toOpenAIMessages(input: ToolCallingTaskInput): OpenAICompatMessage[] {\n const messages: OpenAICompatMessage[] = [];\n\n if (input.systemPrompt) {\n messages.push({ role: \"system\", content: input.systemPrompt });\n }\n\n const inputMessages = getInputMessages(input);\n if (!inputMessages) {\n if (!Array.isArray(input.prompt)) {\n messages.push({ role: \"user\", content: input.prompt });\n } else if (input.prompt.every((item) => typeof item === \"string\")) {\n messages.push({ role: \"user\", content: (input.prompt as string[]).join(\"\\n\") });\n } else {\n const parts: Array<{ type: string; [key: string]: unknown }> = [];\n for (const item of input.prompt) {\n if (typeof item === \"string\") {\n parts.push({ type: \"text\", text: item });\n } else {\n const b = item as Record<string, unknown>;\n if (b.type === \"text\") {\n parts.push({ type: \"text\", text: b.text as string });\n } else if (b.type === \"image\") {\n parts.push({\n type: \"image_url\",\n image_url: { url: `data:${b.mimeType};base64,${b.data}` },\n });\n } else if (b.type === \"audio\") {\n const format = (b.mimeType as string).replace(/^audio\\//, \"\");\n parts.push({\n type: \"input_audio\",\n input_audio: { data: b.data as string, format },\n });\n }\n }\n }\n messages.push({ role: \"user\", content: parts });\n }\n return messages;\n }\n\n for (const msg of inputMessages) {\n if (msg.role === \"user\") {\n const parts: Array<{ type: string; [key: string]: unknown }> = [];\n for (const block of msg.content) {\n if (block.type === \"text\") {\n parts.push({ type: \"text\", text: block.text });\n } else if (block.type === \"image\") {\n parts.push({\n type: \"image_url\",\n image_url: { url: `data:${block.mimeType};base64,${block.data}` },\n });\n }\n // tool_use / tool_result not valid in a user message — skip\n }\n messages.push({ role: \"user\", content: parts });\n } else if (msg.role === \"assistant\") {\n const textParts = msg.content\n .filter((b): b is Extract<ContentBlock, { type: \"text\" }> => b.type === \"text\")\n .map((b) => b.text)\n .join(\"\");\n const toolCalls = msg.content\n .filter((b): b is Extract<ContentBlock, { type: \"tool_use\" }> => b.type === \"tool_use\")\n .map((b) => ({\n id: b.id,\n type: \"function\" as const,\n function: {\n name: b.name,\n arguments: JSON.stringify(b.input),\n },\n }));\n const entry: OpenAICompatMessage = {\n role: \"assistant\",\n content: textParts.length > 0 ? textParts : null,\n };\n if (toolCalls.length > 0) {\n entry.tool_calls = toolCalls;\n }\n messages.push(entry);\n } else if (msg.role === \"tool\") {\n for (const block of msg.content) {\n if (block.type !== \"tool_result\") continue;\n let content: string | Array<{ type: string; [key: string]: unknown }>;\n if (block.content.length === 1 && block.content[0].type === \"text\") {\n content = block.content[0].text;\n } else {\n const parts: Array<{ type: string; [key: string]: unknown }> = [];\n for (const inner of block.content) {\n if (inner.type === \"text\") {\n parts.push({ type: \"text\", text: inner.text });\n } else if (inner.type === \"image\") {\n parts.push({\n type: \"image_url\",\n image_url: { url: `data:${inner.mimeType};base64,${inner.data}` },\n });\n }\n }\n content = parts;\n }\n messages.push({ role: \"tool\", content, tool_call_id: block.tool_use_id });\n }\n }\n }\n\n return messages;\n}\n\n// ========================================================================\n// Text-flat format (Ollama, HF Transformers)\n// ========================================================================\n\nexport interface TextFlatMessage {\n role: string;\n content: string;\n}\n\n/**\n * Converts ToolCallingTaskInput to a simplified text-only message format.\n * Used by providers that don't natively support structured multi-turn\n * tool calling (Ollama, HuggingFace Transformers).\n *\n * NOTE: This format discards tool_use blocks from assistant messages.\n * The LLM will not see what tools it previously called. Multi-turn tool\n * calling will have degraded quality on these providers.\n */\nexport function toTextFlatMessages(input: ToolCallingTaskInput): TextFlatMessage[] {\n const messages: TextFlatMessage[] = [];\n\n if (input.systemPrompt) {\n messages.push({ role: \"system\", content: input.systemPrompt });\n }\n\n const inputMessages = getInputMessages(input);\n if (!inputMessages) {\n let promptContent: string;\n if (!Array.isArray(input.prompt)) {\n promptContent = input.prompt;\n } else {\n // Extract text content only; media blocks are dropped in text-flat format\n promptContent = input.prompt\n .map((item) => {\n if (typeof item === \"string\") return item;\n const b = item as Record<string, unknown>;\n return b.type === \"text\" ? (b.text as string) : \"\";\n })\n .filter((s) => s !== \"\")\n .join(\"\\n\");\n }\n messages.push({ role: \"user\", content: promptContent });\n return messages;\n }\n\n for (const msg of inputMessages) {\n if (msg.role === \"user\") {\n // Extract only text blocks; media blocks are dropped in text-flat format\n const content = msg.content\n .filter((b): b is Extract<ContentBlock, { type: \"text\" }> => b.type === \"text\")\n .map((b) => b.text)\n .join(\"\");\n messages.push({ role: \"user\", content });\n } else if (msg.role === \"assistant\") {\n const text = msg.content\n .filter((b): b is Extract<ContentBlock, { type: \"text\" }> => b.type === \"text\")\n .map((b) => b.text)\n .join(\"\");\n if (text) {\n messages.push({ role: \"assistant\", content: text });\n }\n } else if (msg.role === \"tool\") {\n for (const block of msg.content) {\n if (block.type !== \"tool_result\") continue;\n // Extract only text blocks from multi-part tool results\n const content = block.content\n .filter(\n (inner): inner is Extract<ContentBlock, { type: \"text\" }> => inner.type === \"text\"\n )\n .map((inner) => inner.text)\n .join(\"\");\n messages.push({ role: \"tool\", content });\n }\n }\n }\n\n return messages;\n}\n"
|
|
72
72
|
],
|
|
73
|
-
"mappings": "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",
|
|
74
|
-
"debugId": "
|
|
73
|
+
"mappings": "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",
|
|
74
|
+
"debugId": "9A35FF50116833CB64756E2164756E21",
|
|
75
75
|
"names": []
|
|
76
76
|
}
|