@mastra/core
Version:
The core foundation of the Mastra framework, providing essential components and interfaces for building AI-powered applications.
160 lines • 7.74 kB
TypeScript
import type { Agent } from '../agent';
import type { BundlerConfig } from '../bundler/types';
import type { MastraDeployer } from '../deployer';
import { LogLevel } from '../logger';
import type { IMastraLogger } from '../logger';
import type { MCPServerBase } from '../mcp';
import type { MastraMemory } from '../memory/memory';
import type { AgentNetwork } from '../network';
import type { NewAgentNetwork } from '../network/vNext';
import type { Middleware, ServerConfig } from '../server/types';
import type { MastraStorage } from '../storage';
import { Telemetry } from '../telemetry';
import type { OtelConfig } from '../telemetry';
import type { MastraTTS } from '../tts';
import type { MastraVector } from '../vector';
import type { Workflow } from '../workflows';
import type { LegacyWorkflow } from '../workflows/legacy';
type NonEmpty<T extends string> = T extends '' ? never : T;
export interface Config<TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>, TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>, TWorkflows extends Record<string, Workflow> = Record<string, Workflow>, TVectors extends Record<string, MastraVector> = Record<string, MastraVector>, TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>, TLogger extends IMastraLogger = IMastraLogger, TNetworks extends Record<string, AgentNetwork> = Record<string, AgentNetwork>, TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>, TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>> {
agents?: TAgents;
networks?: TNetworks;
vnext_networks?: TVNextNetworks;
storage?: MastraStorage;
vectors?: TVectors;
logger?: TLogger | false;
legacy_workflows?: TLegacyWorkflows;
workflows?: TWorkflows;
tts?: TTTS;
telemetry?: OtelConfig;
idGenerator?: () => NonEmpty<string>;
deployer?: MastraDeployer;
server?: ServerConfig;
mcpServers?: TMCPServers;
bundler?: BundlerConfig;
/**
* Server middleware functions to be applied to API routes
* Each middleware can specify a path pattern (defaults to '/api/*')
* @deprecated use server.middleware instead
*/
serverMiddleware?: Array<{
handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;
path?: string;
}>;
memory?: never;
}
export declare class Mastra<TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>, TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>, TWorkflows extends Record<string, Workflow> = Record<string, Workflow>, TVectors extends Record<string, MastraVector> = Record<string, MastraVector>, TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>, TLogger extends IMastraLogger = IMastraLogger, TNetworks extends Record<string, AgentNetwork> = Record<string, AgentNetwork>, TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>, TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>> {
#private;
/**
* @deprecated use getTelemetry() instead
*/
get telemetry(): Telemetry | undefined;
/**
* @deprecated use getStorage() instead
*/
get storage(): MastraStorage | undefined;
/**
* @deprecated use getMemory() instead
*/
get memory(): MastraMemory | undefined;
getIdGenerator(): (() => NonEmpty<string>) | undefined;
/**
* Generate a unique identifier using the configured generator or default to crypto.randomUUID()
* @returns A unique string ID
*/
generateId(): string;
setIdGenerator(idGenerator: () => NonEmpty<string>): void;
constructor(config?: Config<TAgents, TLegacyWorkflows, TWorkflows, TVectors, TTTS, TLogger, TNetworks, TVNextNetworks, TMCPServers>);
getAgent<TAgentName extends keyof TAgents>(name: TAgentName): TAgents[TAgentName];
getAgentById(id: string): Agent;
getAgents(): TAgents;
getVector<TVectorName extends keyof TVectors>(name: TVectorName): TVectors[TVectorName];
getVectors(): TVectors | undefined;
getDeployer(): MastraDeployer | undefined;
legacy_getWorkflow<TWorkflowId extends keyof TLegacyWorkflows>(id: TWorkflowId, { serialized }?: {
serialized?: boolean;
}): TLegacyWorkflows[TWorkflowId];
getWorkflow<TWorkflowId extends keyof TWorkflows>(id: TWorkflowId, { serialized }?: {
serialized?: boolean;
}): TWorkflows[TWorkflowId];
getWorkflowById(id: string): Workflow;
legacy_getWorkflows(props?: {
serialized?: boolean;
}): Record<string, LegacyWorkflow>;
getWorkflows(props?: {
serialized?: boolean;
}): Record<string, Workflow>;
setStorage(storage: MastraStorage): void;
setLogger({ logger }: {
logger: TLogger;
}): void;
setTelemetry(telemetry: OtelConfig): void;
getTTS(): TTTS | undefined;
getLogger(): TLogger;
getTelemetry(): Telemetry | undefined;
getMemory(): MastraMemory | undefined;
getStorage(): MastraStorage | undefined;
getServerMiddleware(): {
handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;
path: string;
}[];
setServerMiddleware(serverMiddleware: Middleware | Middleware[]): void;
getNetworks(): AgentNetwork[];
vnext_getNetworks(): NewAgentNetwork[];
getServer(): ServerConfig | undefined;
getBundlerConfig(): BundlerConfig | undefined;
/**
* Get a specific network by ID
* @param networkId - The ID of the network to retrieve
* @returns The network with the specified ID, or undefined if not found
*/
getNetwork(networkId: string): AgentNetwork | undefined;
vnext_getNetwork(networkId: string): NewAgentNetwork | undefined;
getLogsByRunId({ runId, transportId, fromDate, toDate, logLevel, filters, page, perPage, }: {
runId: string;
transportId: string;
fromDate?: Date;
toDate?: Date;
logLevel?: LogLevel;
filters?: Record<string, any>;
page?: number;
perPage?: number;
}): Promise<{
logs: import("../logger").BaseLogMessage[];
total: number;
page: number;
perPage: number;
hasMore: boolean;
}>;
getLogs(transportId: string, params?: {
fromDate?: Date;
toDate?: Date;
logLevel?: LogLevel;
filters?: Record<string, any>;
page?: number;
perPage?: number;
}): Promise<{
logs: import("../logger").BaseLogMessage[];
total: number;
page: number;
perPage: number;
hasMore: boolean;
}>;
/**
* Get all registered MCP server instances.
* @returns A record of MCP server ID to MCPServerBase instance, or undefined if none are registered.
*/
getMCPServers(): Record<string, MCPServerBase> | undefined;
/**
* Get a specific MCP server instance.
* If a version is provided, it attempts to find the server with that exact logical ID and version.
* If no version is provided, it returns the server with the specified logical ID that has the most recent releaseDate.
* The logical ID should match the `id` property of the MCPServer instance (typically set via MCPServerConfig.id).
* @param serverId - The logical ID of the MCP server to retrieve.
* @param version - Optional specific version of the MCP server to retrieve.
* @returns The MCP server instance, or undefined if not found or if the specific version is not found.
*/
getMCPServer(serverId: string, version?: string): MCPServerBase | undefined;
}
export {};
//# sourceMappingURL=index.d.ts.map