/** * @license * Copyright 2025 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import type { IRunConfig, TaskConfig } from "@workglow/task-graph"; import { CreateWorkflow, GraphAsTask } from "@workglow/task-graph"; import { DataPortSchema, FromSchema, TypedArraySchemaOptions } from "@workglow/util/schema"; import type { Capability } from "../capability/Capabilities"; export declare const SimilarityFn: { readonly COSINE: "cosine"; readonly JACCARD: "jaccard"; readonly HAMMING: "hamming"; }; export type SimilarityFn = (typeof SimilarityFn)[keyof typeof SimilarityFn]; declare const SimilarityInputSchema: { readonly type: "object"; readonly properties: { readonly query: { readonly type: "array"; readonly format: "TypedArray"; readonly title: "Typed Array"; readonly description: "A typed array (Float32Array, Int8Array, etc.)"; }; readonly vectors: { readonly type: "array"; readonly items: { readonly type: "array"; readonly format: "TypedArray"; readonly title: "Typed Array"; readonly description: "A typed array (Float32Array, Int8Array, etc.)"; }; }; readonly topK: { readonly type: "number"; readonly title: "Top K"; readonly description: "Number of top results to return"; readonly minimum: 1; readonly default: 10; }; readonly method: { readonly type: "string"; readonly enum: ("cosine" | "hamming" | "jaccard")[]; readonly title: "Similarity 𝑓"; readonly description: "Similarity function to use for comparisons"; readonly default: "cosine"; }; }; readonly required: readonly ["query", "vectors", "method"]; readonly additionalProperties: false; }; declare const SimilarityOutputSchema: { readonly type: "object"; readonly properties: { readonly output: { readonly type: "array"; readonly items: { readonly type: "array"; readonly format: "TypedArray"; readonly title: "Typed Array"; readonly description: "A typed array (Float32Array, Int8Array, etc.)"; }; }; readonly score: { readonly type: "array"; readonly items: { readonly type: "number"; readonly title: "Score"; readonly description: "Similarity scores for each output vector"; }; }; }; readonly required: readonly ["output", "score"]; readonly additionalProperties: false; }; export type VectorSimilarityTaskInput = FromSchema; export type VectorSimilarityTaskOutput = FromSchema; export type VectorSimilarityTaskConfig = TaskConfig; export declare class VectorSimilarityTask extends GraphAsTask { static readonly type = "VectorSimilarityTask"; /** Pure-compute vector similarity — no provider capability required. */ static readonly requires: readonly Capability[]; static readonly category = "Vector"; static readonly title = "Vector Similarity"; static description: string; static readonly cacheable = true; static inputSchema(): DataPortSchema; static outputSchema(): DataPortSchema; execute(input: VectorSimilarityTaskInput): Promise; executePreview({ query, vectors, method, topK, }: VectorSimilarityTaskInput): Promise; } export declare const similarity: (input: VectorSimilarityTaskInput, config?: VectorSimilarityTaskConfig, runConfig?: Partial) => Promise<{ output: import("@workglow/util/worker").TypedArray[]; score: number[]; }>; declare module "@workglow/task-graph" { interface Workflow { similarity: CreateWorkflow; } } export {}; //# sourceMappingURL=VectorSimilarityTask.d.ts.map