import type { FilePart, TextPart, UserModelMessage } from '../_types/@internal_ai-sdk-v5/dist/index.d.ts'; import type { MastraDBMessage, MastraProviderMetadata } from './message-list/state/types.js'; /** * @experimental Agent signals are experimental and may change in a future release. */ export type AgentSignalCategory = 'user' | 'state' | 'reactive' | 'notification'; /** * @experimental Agent signals are experimental and may change in a future release. */ export type AgentLegacySignalType = 'user-message' | 'system-reminder'; export type AgentSignalType = AgentSignalCategory | AgentLegacySignalType; export type AgentSignalTagName = 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; export type AgentSignalAttributes = Record; export type AgentStateSignalMode = 'snapshot' | 'delta'; export type AgentStateSignalInput = { id: string; cacheKey: string; contents: AgentSignalContents; mode?: AgentStateSignalMode; value?: unknown; delta?: unknown; attributes?: AgentSignalAttributes; metadata?: Record; providerOptions?: MastraProviderMetadata; tagName?: AgentSignalTagName; }; export type AgentMessageInput = AgentSignalContents | { contents: AgentSignalContents; attributes?: AgentSignalAttributes; metadata?: Record; providerOptions?: MastraProviderMetadata; }; export type AgentSignalInput = { id?: string; createdAt?: Date | string; acceptedAt?: Date | string; type: AgentSignalType; tagName?: AgentSignalTagName; contents: AgentSignalContents; attributes?: AgentSignalAttributes; metadata?: Record; /** * 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-user-message' | 'data-signal'; data: { id: string; type: AgentSignalCategory; tagName?: AgentSignalTagName; contents: AgentSignalContents; createdAt: string; acceptedAt?: string; attributes?: AgentSignalAttributes; metadata?: Record; }; transient: true; }; /** * @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 & { contents?: string; }): string; export declare function isCreatedAgentSignal(input: unknown): input is CreatedAgentSignal; export declare function createSignal(input: AgentSignalInput): CreatedAgentSignal; /** * Resolve delivery option attributes into concrete `attributes` on a signal. * Returns a new signal with the selected branch's `attributes` merged into * top-level `attributes`. * * @experimental */ export declare function resolveDeliveryAttributes(signal: CreatedAgentSignal, attributes: AgentSignalAttributes | undefined): 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 createMessageSignal(input: AgentMessageInput, options?: Pick): CreatedAgentSignal; export declare function dataPartToSignal(part: AgentSignalDataPart): CreatedAgentSignal; export {}; //# sourceMappingURL=signals.d.ts.map