@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
479 lines • 17.1 kB
TypeScript
import type { LanguageModelV1LogProbs } from '@ai-sdk/provider';
import type { ReasoningPart } from '@ai-sdk/provider-utils-v5';
import type { LanguageModelV2FinishReason, LanguageModelV2CallWarning, SharedV2ProviderMetadata, LanguageModelV2Source } from '@ai-sdk/provider-v5';
import type { LanguageModelRequestMetadata } from 'ai';
import type { StepResult, ModelMessage, LanguageModelUsage, ToolSet, TypedToolCall, TypedToolResult, StaticToolCall, StaticToolResult, DynamicToolCall, DynamicToolResult, GeneratedFile } from 'ai-v5';
import z from 'zod';
import type { InferSchemaOutput, OutputSchema } from '../../stream/base/schema.js';
export interface LLMIterationStepResult {
reason: LanguageModelV2FinishReason | 'abort';
warnings: LanguageModelV2CallWarning[];
isContinued: boolean;
logprobs?: LanguageModelV1LogProbs;
totalUsage: LanguageModelUsage;
headers?: Record<string, string>;
messageId?: string;
request?: LanguageModelRequestMetadata;
}
export interface LLMIterationOutput<Tools extends ToolSet = ToolSet, OUTPUT extends OutputSchema = undefined> {
text?: string;
reasoning?: ReasoningPart[];
reasoningText?: string;
files?: GeneratedFile[];
toolCalls?: TypedToolCall<Tools>[];
toolResults?: TypedToolResult<Tools>[];
sources?: LanguageModelV2Source[];
staticToolCalls?: StaticToolCall<Tools>[];
dynamicToolCalls?: DynamicToolCall[];
staticToolResults?: StaticToolResult<Tools>[];
dynamicToolResults?: DynamicToolResult[];
usage: LanguageModelUsage;
steps: StepResult<Tools>[];
object?: InferSchemaOutput<OUTPUT>;
}
export interface LLMIterationMetadata {
id?: string;
model?: string;
modelId?: string;
modelMetadata?: {
modelId: string;
modelVersion: string;
modelProvider: string;
};
timestamp?: Date;
providerMetadata?: SharedV2ProviderMetadata;
headers?: Record<string, string>;
request?: LanguageModelRequestMetadata;
}
export interface LLMIterationData<Tools extends ToolSet = ToolSet, OUTPUT extends OutputSchema = undefined> {
messageId: string;
messages: {
all: ModelMessage[];
user: ModelMessage[];
nonUser: ModelMessage[];
};
output: LLMIterationOutput<Tools, OUTPUT>;
metadata: LLMIterationMetadata;
stepResult: LLMIterationStepResult;
}
export declare const llmIterationStepResultSchema: z.ZodObject<{
reason: z.ZodString;
warnings: z.ZodArray<z.ZodAny, "many">;
isContinued: z.ZodBoolean;
logprobs: z.ZodOptional<z.ZodAny>;
totalUsage: z.ZodOptional<z.ZodObject<{
inputTokens: z.ZodNumber;
outputTokens: z.ZodNumber;
totalTokens: z.ZodNumber;
reasoningTokens: z.ZodOptional<z.ZodNumber>;
cachedInputTokens: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
}, {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
}>>;
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
request: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
reason: string;
warnings: any[];
isContinued: boolean;
messageId?: string | undefined;
headers?: Record<string, string> | undefined;
request?: Record<string, any> | undefined;
logprobs?: any;
totalUsage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
} | undefined;
}, {
reason: string;
warnings: any[];
isContinued: boolean;
messageId?: string | undefined;
headers?: Record<string, string> | undefined;
request?: Record<string, any> | undefined;
logprobs?: any;
totalUsage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
} | undefined;
}>;
export declare const llmIterationOutputSchema: z.ZodObject<{
messageId: z.ZodString;
messages: z.ZodObject<{
all: z.ZodArray<z.ZodAny, "many">;
user: z.ZodArray<z.ZodAny, "many">;
nonUser: z.ZodArray<z.ZodAny, "many">;
}, "strip", z.ZodTypeAny, {
user: any[];
all: any[];
nonUser: any[];
}, {
user: any[];
all: any[];
nonUser: any[];
}>;
output: z.ZodObject<{
text: z.ZodOptional<z.ZodString>;
reasoning: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
reasoningText: z.ZodOptional<z.ZodString>;
files: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
toolCalls: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
toolResults: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
sources: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
staticToolCalls: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
dynamicToolCalls: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
staticToolResults: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
dynamicToolResults: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
usage: z.ZodObject<{
inputTokens: z.ZodNumber;
outputTokens: z.ZodNumber;
totalTokens: z.ZodNumber;
reasoningTokens: z.ZodOptional<z.ZodNumber>;
cachedInputTokens: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
}, {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
}>;
steps: z.ZodArray<z.ZodAny, "many">;
}, "strip", z.ZodTypeAny, {
usage: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
};
steps: any[];
text?: string | undefined;
reasoning?: any[] | undefined;
sources?: any[] | undefined;
files?: any[] | undefined;
toolCalls?: any[] | undefined;
toolResults?: any[] | undefined;
reasoningText?: string | undefined;
staticToolCalls?: any[] | undefined;
dynamicToolCalls?: any[] | undefined;
staticToolResults?: any[] | undefined;
dynamicToolResults?: any[] | undefined;
}, {
usage: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
};
steps: any[];
text?: string | undefined;
reasoning?: any[] | undefined;
sources?: any[] | undefined;
files?: any[] | undefined;
toolCalls?: any[] | undefined;
toolResults?: any[] | undefined;
reasoningText?: string | undefined;
staticToolCalls?: any[] | undefined;
dynamicToolCalls?: any[] | undefined;
staticToolResults?: any[] | undefined;
dynamicToolResults?: any[] | undefined;
}>;
metadata: z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
model: z.ZodOptional<z.ZodString>;
modelId: z.ZodOptional<z.ZodString>;
modelMetadata: z.ZodOptional<z.ZodObject<{
modelId: z.ZodString;
modelVersion: z.ZodString;
modelProvider: z.ZodString;
}, "strip", z.ZodTypeAny, {
modelId: string;
modelVersion: string;
modelProvider: string;
}, {
modelId: string;
modelVersion: string;
modelProvider: string;
}>>;
timestamp: z.ZodOptional<z.ZodDate>;
providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
request: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
id?: string | undefined;
providerMetadata?: Record<string, any> | undefined;
headers?: Record<string, string> | undefined;
model?: string | undefined;
request?: Record<string, any> | undefined;
timestamp?: Date | undefined;
modelId?: string | undefined;
modelMetadata?: {
modelId: string;
modelVersion: string;
modelProvider: string;
} | undefined;
}, {
id?: string | undefined;
providerMetadata?: Record<string, any> | undefined;
headers?: Record<string, string> | undefined;
model?: string | undefined;
request?: Record<string, any> | undefined;
timestamp?: Date | undefined;
modelId?: string | undefined;
modelMetadata?: {
modelId: string;
modelVersion: string;
modelProvider: string;
} | undefined;
}>;
stepResult: z.ZodObject<{
reason: z.ZodString;
warnings: z.ZodArray<z.ZodAny, "many">;
isContinued: z.ZodBoolean;
logprobs: z.ZodOptional<z.ZodAny>;
totalUsage: z.ZodOptional<z.ZodObject<{
inputTokens: z.ZodNumber;
outputTokens: z.ZodNumber;
totalTokens: z.ZodNumber;
reasoningTokens: z.ZodOptional<z.ZodNumber>;
cachedInputTokens: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
}, {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
}>>;
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
messageId: z.ZodOptional<z.ZodString>;
request: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
reason: string;
warnings: any[];
isContinued: boolean;
messageId?: string | undefined;
headers?: Record<string, string> | undefined;
request?: Record<string, any> | undefined;
logprobs?: any;
totalUsage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
} | undefined;
}, {
reason: string;
warnings: any[];
isContinued: boolean;
messageId?: string | undefined;
headers?: Record<string, string> | undefined;
request?: Record<string, any> | undefined;
logprobs?: any;
totalUsage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
} | undefined;
}>;
}, "strip", z.ZodTypeAny, {
output: {
usage: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
};
steps: any[];
text?: string | undefined;
reasoning?: any[] | undefined;
sources?: any[] | undefined;
files?: any[] | undefined;
toolCalls?: any[] | undefined;
toolResults?: any[] | undefined;
reasoningText?: string | undefined;
staticToolCalls?: any[] | undefined;
dynamicToolCalls?: any[] | undefined;
staticToolResults?: any[] | undefined;
dynamicToolResults?: any[] | undefined;
};
messageId: string;
metadata: {
id?: string | undefined;
providerMetadata?: Record<string, any> | undefined;
headers?: Record<string, string> | undefined;
model?: string | undefined;
request?: Record<string, any> | undefined;
timestamp?: Date | undefined;
modelId?: string | undefined;
modelMetadata?: {
modelId: string;
modelVersion: string;
modelProvider: string;
} | undefined;
};
messages: {
user: any[];
all: any[];
nonUser: any[];
};
stepResult: {
reason: string;
warnings: any[];
isContinued: boolean;
messageId?: string | undefined;
headers?: Record<string, string> | undefined;
request?: Record<string, any> | undefined;
logprobs?: any;
totalUsage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
} | undefined;
};
}, {
output: {
usage: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
};
steps: any[];
text?: string | undefined;
reasoning?: any[] | undefined;
sources?: any[] | undefined;
files?: any[] | undefined;
toolCalls?: any[] | undefined;
toolResults?: any[] | undefined;
reasoningText?: string | undefined;
staticToolCalls?: any[] | undefined;
dynamicToolCalls?: any[] | undefined;
staticToolResults?: any[] | undefined;
dynamicToolResults?: any[] | undefined;
};
messageId: string;
metadata: {
id?: string | undefined;
providerMetadata?: Record<string, any> | undefined;
headers?: Record<string, string> | undefined;
model?: string | undefined;
request?: Record<string, any> | undefined;
timestamp?: Date | undefined;
modelId?: string | undefined;
modelMetadata?: {
modelId: string;
modelVersion: string;
modelProvider: string;
} | undefined;
};
messages: {
user: any[];
all: any[];
nonUser: any[];
};
stepResult: {
reason: string;
warnings: any[];
isContinued: boolean;
messageId?: string | undefined;
headers?: Record<string, string> | undefined;
request?: Record<string, any> | undefined;
logprobs?: any;
totalUsage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
} | undefined;
};
}>;
export declare const toolCallInputSchema: z.ZodObject<{
toolCallId: z.ZodString;
toolName: z.ZodString;
args: z.ZodRecord<z.ZodString, z.ZodAny>;
providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
providerExecuted: z.ZodOptional<z.ZodBoolean>;
output: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
toolCallId: string;
toolName: string;
args: Record<string, any>;
providerMetadata?: Record<string, any> | undefined;
providerExecuted?: boolean | undefined;
output?: any;
}, {
toolCallId: string;
toolName: string;
args: Record<string, any>;
providerMetadata?: Record<string, any> | undefined;
providerExecuted?: boolean | undefined;
output?: any;
}>;
export declare const toolCallOutputSchema: z.ZodObject<{
toolCallId: z.ZodString;
toolName: z.ZodString;
args: z.ZodRecord<z.ZodString, z.ZodAny>;
providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
providerExecuted: z.ZodOptional<z.ZodBoolean>;
output: z.ZodOptional<z.ZodAny>;
} & {
result: z.ZodAny;
error: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
toolCallId: string;
toolName: string;
args: Record<string, any>;
error?: any;
providerMetadata?: Record<string, any> | undefined;
providerExecuted?: boolean | undefined;
output?: any;
result?: any;
}, {
toolCallId: string;
toolName: string;
args: Record<string, any>;
error?: any;
providerMetadata?: Record<string, any> | undefined;
providerExecuted?: boolean | undefined;
output?: any;
result?: any;
}>;
//# sourceMappingURL=schema.d.ts.map