@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
84 lines • 3.42 kB
TypeScript
import type { FilePart, TextPart, UserModelMessage } from '../_types/@internal_ai-sdk-v5/dist/index.js';
import type { MastraDBMessage, MastraProviderMetadata } from './message-list/state/types.js';
/**
* @experimental Agent signals are experimental and may change in a future release.
*/
export type AgentSignalType = 'user-message' | 'system-reminder' | string;
export type SignalPart = TextPart | SignalFilePart;
type SignalFilePart = {
type: 'file';
data: string;
mediaType: string;
filename?: string;
providerOptions?: MastraProviderMetadata;
};
/**
* @experimental Agent signals are experimental and may change in a future release.
*/
export type AgentSignalContents = string | Array<TextPart | FilePart>;
/**
* @experimental Agent signals are experimental and may change in a future release.
*/
export type AgentSignalInput = {
id?: string;
createdAt?: Date | string;
acceptedAt?: Date | string;
type: AgentSignalType;
contents: AgentSignalContents;
attributes?: Record<string, string | number | boolean | null | undefined>;
metadata?: Record<string, unknown>;
/**
* Provider options attached to the resulting prompt turn. Surfaces as `providerOptions` on the
* `UserModelMessage` sent to the model and as `content.providerMetadata` on the persisted DB
* message (also visible to UI consumers via `useChat` message metadata).
*/
providerOptions?: MastraProviderMetadata;
};
/**
* @experimental Agent signals are experimental and may change in a future release.
*/
export type AgentSignalDataPart = {
type: `data-${string}`;
data: {
id: string;
type: AgentSignalType;
contents: AgentSignalContents;
createdAt: string;
acceptedAt?: string;
attributes?: Record<string, string | number | boolean | null | undefined>;
metadata?: Record<string, unknown>;
};
};
/**
* @experimental Agent signals are experimental and may change in a future release.
*/
export type CreatedAgentSignal = AgentSignalInput & {
__isCreatedSignal: true;
id: string;
createdAt: Date;
acceptedAt?: Date;
toDBMessage: (options?: {
threadId?: string;
resourceId?: string;
}) => MastraDBMessage;
toLLMMessage: () => UserModelMessage;
toDataPart: () => AgentSignalDataPart;
};
export declare function isMastraSignalMessage(message: MastraDBMessage): message is MastraDBMessage & {
role: 'signal';
};
export declare function signalToXmlMarkup(signal: Pick<AgentSignalInput, 'type' | 'attributes'> & {
contents?: string;
}): string;
export declare function isCreatedAgentSignal(input: unknown): input is CreatedAgentSignal;
export declare function createSignal(input: AgentSignalInput): CreatedAgentSignal;
export declare function signalToMessage(signal: AgentSignalInput | CreatedAgentSignal): UserModelMessage;
export declare function signalToMastraDBMessage(signal: AgentSignalInput | CreatedAgentSignal, options?: {
threadId?: string;
resourceId?: string;
}): MastraDBMessage;
export declare function signalToDataPartFormat(signal: AgentSignalInput | CreatedAgentSignal): AgentSignalDataPart;
export declare function mastraDBMessageToSignal(message: MastraDBMessage): CreatedAgentSignal;
export declare function dataPartToSignal(part: AgentSignalDataPart): CreatedAgentSignal;
export {};
//# sourceMappingURL=signals.d.ts.map