UNPKG

@genkit-ai/ai

Version:

Genkit AI framework generative AI APIs.

1,363 lines (1,362 loc) 510 kB
import { ToolResponse, Part } from './parts.mjs'; import { z } from '@genkit-ai/core'; import { MessageData } from './model-types.mjs'; /** * Schema for the canonical Genkit error wire shape (`{status, message, * details}`). This is the form runtimes use when an error travels as data * inside another value (e.g. agent outputs and session snapshots). */ declare const RuntimeErrorSchema: z.ZodObject<{ /** Canonical status name (e.g. `INTERNAL`, `FAILED_PRECONDITION`). */ status: z.ZodOptional<z.ZodString>; /** Human-readable error message. */ message: z.ZodString; /** Optional structured details describing the failure. */ details: z.ZodOptional<z.ZodAny>; }, "strip", z.ZodTypeAny, { message: string; status?: string | undefined; details?: any; }, { message: string; status?: string | undefined; details?: any; }>; /** Structured error carried as data inside agent outputs and snapshots. */ type RuntimeError = z.infer<typeof RuntimeErrorSchema>; /** * Schema for tracking persistent artifacts generated during a session turn. */ declare const ArtifactSchema: z.ZodObject<{ /** Name identifies the artifact (e.g., "generated_code.go", "diagram.png"). */ name: z.ZodOptional<z.ZodString>; /** Parts contains the artifact content (text, media, etc.). */ parts: 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; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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, { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; resource?: undefined; }, { reasoning: string; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | 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>>; reasoning: z.ZodOptional<z.ZodNever>; } & { resource: z.ZodObject<{ uri: z.ZodString; }, "strip", z.ZodTypeAny, { uri: string; }, { uri: string; }>; }, "strip", z.ZodTypeAny, { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; }, { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; }>]>, "many">; /** Metadata contains additional artifact-specific data. */ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; }, "strip", z.ZodTypeAny, { parts: ({ text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { reasoning: string; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; resource?: undefined; } | { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; })[]; name?: string | undefined; metadata?: Record<string, any> | undefined; }, { parts: ({ text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { reasoning: string; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; resource?: undefined; } | { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; })[]; name?: string | undefined; metadata?: Record<string, any> | undefined; }>; /** * Artifact generated during a session turn. */ type Artifact = z.infer<typeof ArtifactSchema>; /** * Schema for a snapshot's lifecycle status. * * - `pending`: a detached invocation is still processing the queued inputs. * The snapshot's state is empty until the background work finishes, at * which point it is rewritten with the cumulative final state and a * terminal status. * - `completed`: the snapshot captures a settled state. * - `aborted`: the snapshot's invocation was aborted via the `abort` companion * action while detached. * - `failed`: the invocation terminated with an error. The snapshot's `error` * field describes the failure and resume is rejected with that same error. * - `expired`: a `pending` snapshot whose detached background worker is * presumed dead because its heartbeat went stale. Computed on read from a * stale `heartbeatAt`; never persisted (the dead worker can no longer write * a terminal status itself). */ declare const SnapshotStatusSchema: z.ZodEnum<["pending", "completed", "aborted", "failed", "expired"]>; /** * Lifecycle status of a session snapshot. */ type SnapshotStatus = z.infer<typeof SnapshotStatusSchema>; /** * Reason an agent turn (or whole invocation) finished. * * The first group mirrors the model-level `FinishReason` so a turn backed by a * single `generate` call can forward its reason verbatim. The remaining values * are agent-specific outcomes with no `generate`-level equivalent: `aborted` * (the turn/invocation was aborted), `detached` (the turn was moved to the * background), and `failed` (the turn ended in an error). */ declare const AgentFinishReasonSchema: z.ZodEnum<["stop", "length", "blocked", "interrupted", "other", "unknown", "aborted", "detached", "failed"]>; /** * Reason an agent turn (or whole invocation) finished. */ type AgentFinishReason = z.infer<typeof AgentFinishReasonSchema>; /** * Schema for session execution state. */ declare const SessionStateSchema: z.ZodObject<{ sessionId: z.ZodOptional<z.ZodString>; messages: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["system", "user", "model", "tool"]>; 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; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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, { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; resource?: undefined; }, { reasoning: string; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | 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>>; reasoning: z.ZodOptional<z.ZodNever>; } & { resource: z.ZodObject<{ uri: z.ZodString; }, "strip", z.ZodTypeAny, { uri: string; }, { uri: string; }>; }, "strip", z.ZodTypeAny, { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; }, { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; }>]>, "many">; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { role: "system" | "user" | "model" | "tool"; content: ({ text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { reasoning: string; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; resource?: undefined; } | { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; })[]; metadata?: Record<string, unknown> | undefined; }, { role: "system" | "user" | "model" | "tool"; content: ({ text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; } | { reasoning: string; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; resource?: undefined; } | { resource: { uri: string; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; })[]; metadata?: Record<string, unknown> | undefined; }>, "many">>; custom: z.ZodOptional<z.ZodAny>; artifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{ /** Name identifies the artifact (e.g., "generated_code.go", "diagram.png"). */ name: z.ZodOptional<z.ZodString>; /** Parts contains the artifact content (text, media, etc.). */ parts: 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; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { text: string; custom?: Record<string, unknown> | undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { media: { url: string; contentType?: string | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { toolRequest: { name: string; ref?: string | undefined; input?: unknown; partial?: boolean | undefined; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { toolResponse: { name: string; ref?: string | undefined; output?: unknown; } & { content?: Part[]; }; custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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, { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { custom?: Record<string, unknown> | undefined; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; reasoning?: undefined; resource?: undefined; }, { custom: Record<string, any>; text?: undefined; media?: undefined; toolRequest?: undefined; toolResponse?: undefined; data?: unknown; metadata?: Record<string, unknown> | undefined; 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