UNPKG

@mastra/core

Version:

Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.

202 lines • 9.16 kB
import type { WritableStream } from 'node:stream/web'; import type { UIMessage } from '../_types/@internal_ai-sdk-v4/dist/index.js'; import type { JSONSchema7 } from 'json-schema'; import type { MastraLLMV1 } from '../llm/model/index.js'; import type { GenerateObjectResult, GenerateTextResult, StreamObjectResult, StreamTextResult } from '../llm/model/base.types.js'; import type { ProviderOptions } from '../llm/model/provider-options.js'; import type { MastraModelConfig } from '../llm/model/shared.types.js'; import type { Mastra } from '../mastra/index.js'; import type { MastraMemory } from '../memory/memory.js'; import type { MemoryConfigInternal } from '../memory/types.js'; import type { TracingProperties, ObservabilityContext } from '../observability/index.js'; import type { InputProcessorOrWorkflow, OutputProcessorOrWorkflow } from '../processors/index.js'; import { RequestContext } from '../request-context/index.js'; import type { ChunkType } from '../stream/types.js'; import type { CoreTool } from '../tools/types.js'; import type { DynamicArgument } from '../types/index.js'; import type { OutputWriter } from '../workflows/index.js'; import { MessageList } from './message-list/index.js'; import type { MastraDBMessage, MessageListInput, UIMessageWithMetadata } from './message-list/index.js'; import type { ZodSchema, AgentGenerateOptions, AgentStreamOptions, AgentInstructions, ToolsetsInput, ToolsInput, AgentMethodType } from './types.js'; /** * Interface for accessing Agent methods needed by the legacy handler. * This allows the legacy handler to work with Agent without directly accessing private members. */ export interface AgentLegacyCapabilities { /** Logger instance */ logger: { debug: (message: string, meta?: any) => void; error: (message: string, meta?: any) => void; warn: (message: string, meta?: any) => void; }; /** Agent name for logging */ name: string; /** Agent ID */ id: string; /** Mastra instance for generating IDs */ mastra?: Mastra; /** Get default generate options for legacy */ getDefaultGenerateOptionsLegacy(options: { requestContext?: RequestContext; }): AgentGenerateOptions | Promise<AgentGenerateOptions>; /** Get default stream options for legacy */ getDefaultStreamOptionsLegacy(options: { requestContext?: RequestContext; }): AgentStreamOptions | Promise<AgentStreamOptions>; /** Check if agent has own memory */ hasOwnMemory(): boolean; /** Get instructions */ getInstructions(options: { requestContext: RequestContext; }): Promise<AgentInstructions>; /** Get the agent's LLM instance, optionally using a request-scoped model override */ getLLM(options: { requestContext: RequestContext; model?: DynamicArgument<MastraModelConfig>; }): Promise<MastraLLMV1>; /** Get memory instance */ getMemory(options: { requestContext: RequestContext; }): Promise<MastraMemory | undefined>; /** Get memory messages (deprecated - use input processors) */ getMemoryMessages(args: { resourceId?: string; threadId: string; vectorMessageSearch: string; memoryConfig?: MemoryConfigInternal; requestContext: RequestContext; }): Promise<{ messages: MastraDBMessage[]; }>; /** Convert tools for LLM */ convertTools(args: { toolsets?: ToolsetsInput; clientTools?: ToolsInput; threadId?: string; resourceId?: string; runId?: string; requestContext: RequestContext; writableStream?: WritableStream<ChunkType>; methodType: AgentMethodType; memoryConfig?: MemoryConfigInternal; inputProcessors?: InputProcessorOrWorkflow[]; } & ObservabilityContext): Promise<Record<string, CoreTool>>; /** Run input processors */ __runInputProcessors(args: { requestContext: RequestContext; messageList: MessageList; inputProcessorOverrides?: InputProcessorOrWorkflow[]; } & ObservabilityContext): Promise<{ messageList: MessageList; tripwire?: { reason: string; retry?: boolean; metadata?: unknown; processorId?: string; }; }>; /** Run processInputStep phase on input processors (for legacy path compatibility) */ __runProcessInputStep(args: Partial<ObservabilityContext> & { requestContext: RequestContext; messageList: MessageList; stepNumber?: number; inputProcessorOverrides?: InputProcessorOrWorkflow[]; tools?: Record<string, CoreTool>; runId?: string; threadId?: string; resourceId?: string; outputWriter?: OutputWriter; autoResumeSuspendedTools?: boolean; backgroundTaskEnabled?: boolean; providerOptions?: ProviderOptions; }): Promise<{ messageList: MessageList; tools?: Record<string, CoreTool>; tripwire?: { reason: string; retry?: boolean; metadata?: unknown; processorId?: string; }; }>; /** Get most recent user message */ getMostRecentUserMessage(messages: Array<UIMessage | UIMessageWithMetadata>): UIMessage | UIMessageWithMetadata | undefined; /** Generate title for thread */ genTitle(userMessage: UIMessage | UIMessageWithMetadata, requestContext: RequestContext, observabilityContext: ObservabilityContext, titleModel?: DynamicArgument<MastraModelConfig, any>, titleInstructions?: DynamicArgument<string>): Promise<string | undefined>; /** Resolve title generation config */ resolveTitleGenerationConfig(generateTitleConfig: boolean | { model?: DynamicArgument<MastraModelConfig, any>; instructions?: DynamicArgument<string>; minMessages?: number; } | undefined): { shouldGenerate: boolean; model?: DynamicArgument<MastraModelConfig, any>; instructions?: DynamicArgument<string>; minMessages?: number; }; /** Convert instructions to string */ convertInstructionsToString(instructions: AgentInstructions): string; /** Options for tracing policy */ tracingPolicy?: any; /** Resolved version ID from stored config */ resolvedVersionId?: string; /** Agent network append flag */ _agentNetworkAppend?: boolean; /** List resolved output processors */ listResolvedOutputProcessors(requestContext?: RequestContext): Promise<OutputProcessorOrWorkflow[]>; /** Run output processors */ __runOutputProcessors(args: { requestContext: RequestContext; messageList: MessageList; outputProcessorOverrides?: OutputProcessorOrWorkflow[]; } & ObservabilityContext): Promise<{ messageList: MessageList; tripwire?: { reason: string; retry?: boolean; metadata?: unknown; processorId?: string; }; }>; /** Run scorers */ runScorers(args: { messageList: MessageList; runId: string; requestContext: RequestContext; structuredOutput?: boolean; overrideScorers?: Record<string, any>; threadId?: string; resourceId?: string; } & ObservabilityContext): Promise<void>; } /** * Handler class for legacy Agent functionality (v1 models). * Encapsulates all legacy-specific streaming and generation logic. */ export declare class AgentLegacyHandler { private capabilities; constructor(capabilities: AgentLegacyCapabilities); /** * Prepares message list and tools before LLM execution and handles memory persistence after. * This is the legacy version that only works with v1 models. * @internal */ private __primitive; /** * Prepares options and handlers for LLM text/object generation or streaming. * This is the legacy version that only works with v1 models. * @internal */ private prepareLLMOptions; /** * Legacy implementation of generate method using AI SDK v4 models. * Use this method if you need to continue using AI SDK v4 models. */ generateLegacy<OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined, EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined>(messages: MessageListInput, generateOptions?: AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT>): Promise<OUTPUT extends undefined ? GenerateTextResult<any, EXPERIMENTAL_OUTPUT> : GenerateObjectResult<OUTPUT>>; /** * Legacy implementation of stream method using AI SDK v4 models. * Use this method if you need to continue using AI SDK v4 models. */ streamLegacy<OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined, EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined>(messages: MessageListInput, streamOptions?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>): Promise<StreamTextResult<any, EXPERIMENTAL_OUTPUT> | (StreamObjectResult<OUTPUT extends ZodSchema | JSONSchema7 ? OUTPUT : never> & TracingProperties)>; } //# sourceMappingURL=agent-legacy.d.ts.map