@genkit-ai/ai
Version:
Genkit AI framework generative AI APIs.
1,363 lines (1,362 loc) • 510 kB
text/typescript
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