@genkit-ai/ai
Version:
Genkit AI framework generative AI APIs.
1,404 lines (1,402 loc) • 52.6 kB
text/typescript
import { ToolResponse, Part } from './parts.mjs';
import { z, Action, ActionFnArg, ActionMetadata } from '@genkit-ai/core';
import { Registry } from '@genkit-ai/core/registry';
/**
* A batch (array) of embeddings.
*/
type EmbeddingBatch = {
embedding: number[];
}[];
/**
* EmbeddingSchema includes the embedding and also metadata so you know
* which of multiple embeddings corresponds to which part of a document.
*/
declare const EmbeddingSchema: z.ZodObject<{
embedding: z.ZodArray<z.ZodNumber, "many">;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
embedding: number[];
metadata?: Record<string, unknown> | undefined;
}, {
embedding: number[];
metadata?: Record<string, unknown> | undefined;
}>;
/** A single embedding vector with optional metadata. */
type Embedding = z.infer<typeof EmbeddingSchema>;
/**
* A function used for embedder definition, encapsulates embedder implementation.
*/
type EmbedderFn<EmbedderOptions extends z.ZodTypeAny> = (input: Document[], embedderOpts?: z.infer<EmbedderOptions>) => Promise<EmbedResponse>;
/**
* Zod schema of an embed request.
*/
declare const EmbedRequestSchema: z.ZodObject<{
input: z.ZodArray<z.ZodObject<{
content: z.ZodArray<z.ZodUnion<[z.ZodObject<{
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
media: z.ZodObject<{
contentType: z.ZodOptional<z.ZodString>;
url: z.ZodString;
}, "strip", z.ZodTypeAny, {
url: string;
contentType?: string | undefined;
}, {
url: string;
contentType?: string | undefined;
}>;
}, "strip", z.ZodTypeAny, {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
toolRequest: z.ZodObject<{
ref: z.ZodOptional<z.ZodString>;
name: z.ZodString;
input: z.ZodOptional<z.ZodUnknown>;
partial: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
}, {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
}>;
}, "strip", z.ZodTypeAny, {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
toolResponse: z.ZodType<ToolResponse, z.ZodTypeDef, ToolResponse>;
}, "strip", z.ZodTypeAny, {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
data: z.ZodUnknown;
}, "strip", z.ZodTypeAny, {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
custom: z.ZodRecord<z.ZodString, z.ZodAny>;
}, "strip", z.ZodTypeAny, {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
resource: z.ZodOptional<z.ZodNever>;
} & {
reasoning: z.ZodString;
}, "strip", z.ZodTypeAny, {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
}, {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
} & {
resource: z.ZodObject<{
uri: z.ZodString;
}, "strip", z.ZodTypeAny, {
uri: string;
}, {
uri: string;
}>;
}, "strip", z.ZodTypeAny, {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
}, {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
}>]>, "many">;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
content: ({
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
} | {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
})[];
metadata?: Record<string, any> | undefined;
}, {
content: ({
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
} | {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
})[];
metadata?: Record<string, any> | undefined;
}>, "many">;
options: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
input: {
content: ({
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
} | {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
})[];
metadata?: Record<string, any> | undefined;
}[];
options?: any;
}, {
input: {
content: ({
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
} | {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
})[];
metadata?: Record<string, any> | undefined;
}[];
options?: any;
}>;
/** An embed request containing documents to embed and optional configuration. */
interface EmbedRequest<O = any> {
input: Document[];
options?: O;
}
/**
* Zod schema of an embed response.
*/
declare const EmbedResponseSchema: z.ZodObject<{
embeddings: z.ZodArray<z.ZodObject<{
embedding: z.ZodArray<z.ZodNumber, "many">;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
embedding: number[];
metadata?: Record<string, unknown> | undefined;
}, {
embedding: number[];
metadata?: Record<string, unknown> | undefined;
}>, "many">;
}, "strip", z.ZodTypeAny, {
embeddings: {
embedding: number[];
metadata?: Record<string, unknown> | undefined;
}[];
}, {
embeddings: {
embedding: number[];
metadata?: Record<string, unknown> | undefined;
}[];
}>;
type EmbedResponse = z.infer<typeof EmbedResponseSchema>;
/**
* Embedder action -- a subtype of {@link Action} with input/output types for embedders.
*/
type EmbedderAction<CustomOptions extends z.ZodTypeAny = z.ZodTypeAny> = Action<typeof EmbedRequestSchema, typeof EmbedResponseSchema> & {
__configSchema?: CustomOptions;
};
/**
* Options of an `embed` function.
*/
interface EmbedderParams<CustomOptions extends z.ZodTypeAny = z.ZodTypeAny> {
embedder: EmbedderArgument<CustomOptions>;
content: string | DocumentData;
metadata?: Record<string, unknown>;
options?: z.infer<CustomOptions>;
}
/** Configuration options for defining an embedder via {@link defineEmbedder} or {@link embedder}. */
interface EmbedderOptions<ConfigSchema extends z.ZodTypeAny> {
name: string;
configSchema?: ConfigSchema;
info?: EmbedderInfo;
}
/**
* Creates embedder model for the provided {@link EmbedderFn} model implementation.
*
* Unlike `defineEmbedder` this function does not register the embedder in the reigistry.
*/
declare function embedder<ConfigSchema extends z.ZodTypeAny = z.ZodTypeAny>(options: EmbedderOptions<ConfigSchema>, runner: (input: EmbedRequest<z.infer<ConfigSchema>>, opts: ActionFnArg<any>) => Promise<EmbedResponse>): EmbedderAction<ConfigSchema>;
/**
* Creates embedder model for the provided {@link EmbedderFn} model implementation.
*/
declare function defineEmbedder<ConfigSchema extends z.ZodTypeAny = z.ZodTypeAny>(registry: Registry, options: EmbedderOptions<ConfigSchema>, runner: EmbedderFn<ConfigSchema>): EmbedderAction<ConfigSchema>;
/**
* A union type representing all the types that can refer to an embedder.
*/
type EmbedderArgument<CustomOptions extends z.ZodTypeAny = z.ZodTypeAny> = string | EmbedderAction<CustomOptions> | EmbedderReference<CustomOptions>;
/**
* A veneer for interacting with embedder models.
*/
declare function embed<CustomOptions extends z.ZodTypeAny = z.ZodTypeAny>(registry: Registry, params: EmbedderParams<CustomOptions>): Promise<Embedding[]>;
/**
* A veneer for interacting with embedder models in bulk.
*/
declare function embedMany<ConfigSchema extends z.ZodTypeAny = z.ZodTypeAny>(registry: Registry, params: {
embedder: EmbedderArgument<ConfigSchema>;
content: string[] | DocumentData[];
metadata?: Record<string, unknown>;
options?: z.infer<ConfigSchema>;
}): Promise<EmbeddingBatch>;
/**
* Zod schema of embedder info object.
*/
declare const EmbedderInfoSchema: z.ZodObject<{
/** Friendly label for this model (e.g. "Google AI - Gemini Pro") */
label: z.ZodOptional<z.ZodString>;
/** Supported model capabilities. */
supports: z.ZodOptional<z.ZodObject<{
/** Model can input this type of data. */
input: z.ZodOptional<z.ZodArray<z.ZodEnum<["text", "image", "video"]>, "many">>;
/** Model can support multiple languages */
multilingual: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
input?: ("text" | "image" | "video")[] | undefined;
multilingual?: boolean | undefined;
}, {
input?: ("text" | "image" | "video")[] | undefined;
multilingual?: boolean | undefined;
}>>;
/** Embedding dimension */
dimensions: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
label?: string | undefined;
supports?: {
input?: ("text" | "image" | "video")[] | undefined;
multilingual?: boolean | undefined;
} | undefined;
dimensions?: number | undefined;
}, {
label?: string | undefined;
supports?: {
input?: ("text" | "image" | "video")[] | undefined;
multilingual?: boolean | undefined;
} | undefined;
dimensions?: number | undefined;
}>;
/** Embedder metadata information including label, capabilities, and dimensions. */
type EmbedderInfo = z.infer<typeof EmbedderInfoSchema>;
/**
* A reference object that can used to resolve an embedder instance. Include additional type information
* about the specific embedder, e.g. custom config options schema.
*/
interface EmbedderReference<CustomOptions extends z.ZodTypeAny = z.ZodTypeAny> {
name: string;
configSchema?: CustomOptions;
info?: EmbedderInfo;
config?: z.infer<CustomOptions>;
version?: string;
}
/**
* Helper method to configure a {@link EmbedderReference} to a plugin.
*/
declare function embedderRef<CustomOptionsSchema extends z.ZodTypeAny = z.ZodTypeAny>(options: EmbedderReference<CustomOptionsSchema> & {
namespace?: string;
}): EmbedderReference<CustomOptionsSchema>;
/**
* Packages embedder information into ActionMetadata object.
*/
declare function embedderActionMetadata({ name, info, configSchema, }: {
name: string;
info?: EmbedderInfo;
configSchema?: z.ZodTypeAny;
}): ActionMetadata;
/**
* Zod schema for the serializable data representation of a {@link Document}.
* Contains an array of content parts and optional metadata.
*/
declare const DocumentDataSchema: z.ZodObject<{
content: z.ZodArray<z.ZodUnion<[z.ZodObject<{
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
text: z.ZodString;
}, "strip", z.ZodTypeAny, {
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
media: z.ZodObject<{
contentType: z.ZodOptional<z.ZodString>;
url: z.ZodString;
}, "strip", z.ZodTypeAny, {
url: string;
contentType?: string | undefined;
}, {
url: string;
contentType?: string | undefined;
}>;
}, "strip", z.ZodTypeAny, {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
toolRequest: z.ZodObject<{
ref: z.ZodOptional<z.ZodString>;
name: z.ZodString;
input: z.ZodOptional<z.ZodUnknown>;
partial: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
}, {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
}>;
}, "strip", z.ZodTypeAny, {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
toolResponse: z.ZodType<ToolResponse, z.ZodTypeDef, ToolResponse>;
}, "strip", z.ZodTypeAny, {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
data: z.ZodUnknown;
}, "strip", z.ZodTypeAny, {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
resource: z.ZodOptional<z.ZodNever>;
} & {
custom: z.ZodRecord<z.ZodString, z.ZodAny>;
}, "strip", z.ZodTypeAny, {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}, {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
resource: z.ZodOptional<z.ZodNever>;
} & {
reasoning: z.ZodString;
}, "strip", z.ZodTypeAny, {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
}, {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
}>, z.ZodObject<{
text: z.ZodOptional<z.ZodNever>;
media: z.ZodOptional<z.ZodNever>;
toolRequest: z.ZodOptional<z.ZodNever>;
toolResponse: z.ZodOptional<z.ZodNever>;
data: z.ZodOptional<z.ZodUnknown>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
reasoning: z.ZodOptional<z.ZodNever>;
} & {
resource: z.ZodObject<{
uri: z.ZodString;
}, "strip", z.ZodTypeAny, {
uri: string;
}, {
uri: string;
}>;
}, "strip", z.ZodTypeAny, {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
}, {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
}>]>, "many">;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
content: ({
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
} | {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
})[];
metadata?: Record<string, any> | undefined;
}, {
content: ({
text: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
media: {
url: string;
contentType?: string | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolRequest: {
name: string;
ref?: string | undefined;
input?: unknown;
partial?: boolean | undefined;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
toolResponse: {
name: string;
output?: unknown;
ref?: string | undefined;
} & {
content?: Part[];
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
custom: Record<string, any>;
metadata?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
reasoning?: undefined;
resource?: undefined;
} | {
reasoning: string;
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
data?: unknown;
resource?: undefined;
} | {
resource: {
uri: string;
};
metadata?: Record<string, unknown> | undefined;
custom?: Record<string, unknown> | undefined;
text?: undefined;
media