UNPKG

life

Version:

Life.js is the first fullstack framework to build agentic web applications. It is minimal, extensible, and typesafe. Well, everything you love.

1,158 lines (1,155 loc) 71.1 kB
import { d as TypedPluginBuilder, L as LifeErrorUnion, M as MemoryDefinition, c as Message, S as StoreDefinition } from '../types-DcmGusfD.mjs'; export { e as defineAgent, f as defineMemory, h as definePlugin, g as defineStore } from '../types-DcmGusfD.mjs'; import { Z as ZodObjectWithTelemetry } from '../config-n67P8tNt.mjs'; export { d as defineConfig } from '../config-n67P8tNt.mjs'; import * as zod_v4_core from 'zod/v4/core'; import * as z from 'zod'; import { z as z$1 } from 'zod'; import 'type-fest'; declare const generationPlugin: TypedPluginBuilder<{ name: "generation"; dependencies: never[]; config: ZodObjectWithTelemetry<z.ZodObject<{ voiceDetection: z.ZodPrefault<z.ZodObject<{ scoreInThreshold: z.ZodPrefault<z.ZodNumber>; scoreOutThreshold: z.ZodPrefault<z.ZodNumber>; prePaddingChunks: z.ZodPrefault<z.ZodNumber>; postPaddingChunks: z.ZodPrefault<z.ZodNumber>; minVoiceInterruptionMs: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>>; endOfTurnDetection: z.ZodPrefault<z.ZodObject<{ threshold: z.ZodPrefault<z.ZodNumber>; minTimeoutMs: z.ZodPrefault<z.ZodNumber>; maxTimeoutMs: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>>; }, zod_v4_core.$strip>, "output">; context: ZodObjectWithTelemetry<z.ZodObject<{ messages: z.ZodPrefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>>; status: z.ZodPrefault<z.ZodObject<{ listening: z.ZodPrefault<z.ZodBoolean>; thinking: z.ZodPrefault<z.ZodBoolean>; speaking: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>>; voiceEnabled: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>, "output">; events: [{ readonly name: "plugin.start"; readonly dataSchema: z.ZodObject<{ isRestart: z.ZodPrefault<z.ZodBoolean>; restartCount: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>; }, { readonly name: "plugin.stop"; }, { readonly name: "plugin.test"; }, { readonly name: "plugin.error"; readonly dataSchema: z.ZodObject<{ error: z.ZodCustom<LifeErrorUnion, LifeErrorUnion>; event: z.ZodObject<{ id: z.ZodString; name: z.ZodString; urgent: z.ZodPrefault<z.ZodBoolean>; data: z.ZodPrefault<z.ZodAny>; created: z.ZodObject<{ at: z.ZodNumber; by: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"handler">; plugin: z.ZodString; handler: z.ZodString; event: z.ZodString; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"server">; name: z.ZodString; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"client">; name: z.ZodString; }, zod_v4_core.$strip>], "type">; }, zod_v4_core.$strip>; edited: z.ZodDefault<z.ZodUnion<[z.ZodArray<z.ZodObject<{ at: z.ZodNumber; by: z.ZodObject<{ plugin: z.ZodString; handler: z.ZodString; }, zod_v4_core.$strip>; reason: z.ZodString; dataBefore: z.ZodAny; dataAfter: z.ZodAny; }, zod_v4_core.$strip>>, z.ZodLiteral<false>]>>; dropped: z.ZodPrefault<z.ZodUnion<[z.ZodObject<{ at: z.ZodNumber; by: z.ZodObject<{ plugin: z.ZodString; handler: z.ZodString; }, zod_v4_core.$strip>; reason: z.ZodString; }, zod_v4_core.$strip>, z.ZodLiteral<false>]>>; contextChanges: z.ZodPrefault<z.ZodArray<z.ZodObject<{ at: z.ZodNumber; byHandler: z.ZodString; valueBefore: z.ZodAny; valueAfter: z.ZodAny; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>; }, zod_v4_core.$strip>; }] | [{ name: "messages.create"; dataSchema: z.ZodObject<{ message: z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>], "role">; }, zod_v4_core.$strip>; }, { name: "messages.update"; dataSchema: z.ZodObject<{ id: z.ZodString; role: z.ZodEnum<{ user: "user"; system: "system"; agent: "agent"; tool: "tool"; }>; message: z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>], "role">; }, zod_v4_core.$strip>; }, { name: "user.audio-chunk"; dataSchema: z.ZodObject<{ audioChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; }, zod_v4_core.$strip>; }, { name: "user.voice-start"; }, { name: "user.voice-chunk"; dataSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"voice">; voiceChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"padding">; voiceChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; paddingSide: z.ZodEnum<{ pre: "pre"; post: "post"; }>; paddingIndex: z.ZodNumber; }, zod_v4_core.$strip>], "type">; }, { name: "user.voice-end"; }, { name: "user.text-chunk"; dataSchema: z.ZodObject<{ textChunk: z.ZodString; }, zod_v4_core.$strip>; }, { name: "user.interrupted"; }, { name: "agent.thinking-start"; }, { name: "agent.thinking-end"; }, { name: "agent.speaking-start"; }, { name: "agent.speaking-end"; }, { name: "agent.continue"; dataSchema: z.ZodObject<{ interrupt: z.ZodPrefault<z.ZodUnion<[z.ZodEnum<{ abrupt: "abrupt"; smooth: "smooth"; }>, z.ZodLiteral<false>]>>; preventInterruption: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>; }, { name: "agent.decide"; dataSchema: z.ZodObject<{ interrupt: z.ZodPrefault<z.ZodUnion<[z.ZodEnum<{ abrupt: "abrupt"; smooth: "smooth"; }>, z.ZodLiteral<false>]>>; preventInterruption: z.ZodPrefault<z.ZodBoolean>; messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>; }, zod_v4_core.$strip>; }, { name: "agent.say"; dataSchema: z.ZodObject<{ interrupt: z.ZodPrefault<z.ZodUnion<[z.ZodEnum<{ abrupt: "abrupt"; smooth: "smooth"; }>, z.ZodLiteral<false>]>>; preventInterruption: z.ZodPrefault<z.ZodBoolean>; text: z.ZodString; }, zod_v4_core.$strip>; }, { name: "agent.interrupt"; dataSchema: z.ZodObject<{ reason: z.ZodString; author: z.ZodEnum<{ user: "user"; application: "application"; }>; force: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>; }, { name: "agent.resources-request"; }, { name: "agent.resources-response"; dataSchema: z.ZodObject<{ requestId: z.ZodString; resources: z.ZodObject<{ messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>; tools: z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodObject<{ input: z.ZodCustom<z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>, z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>>; output: z.ZodCustom<z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>, z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>>; }, zod_v4_core.$strip>; run: z.ZodFunction<z.ZodTuple<readonly [z.ZodRecord<z.ZodString, z.ZodAny>], null>, z.ZodUnion<readonly [z.ZodObject<{ success: z.ZodBoolean; output: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; error: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>, z.ZodPromise<z.ZodObject<{ success: z.ZodBoolean; output: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; error: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>>]>>; }, zod_v4_core.$strip>>; }, zod_v4_core.$strip>; }, zod_v4_core.$strip>; }, { name: "agent.tool-requests"; dataSchema: z.ZodObject<{ requests: z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>; }, zod_v4_core.$strip>; }, { name: "agent.interrupted"; dataSchema: z.ZodObject<{ reason: z.ZodString; forced: z.ZodBoolean; author: z.ZodEnum<{ user: "user"; application: "application"; }>; }, zod_v4_core.$strip>; }, { name: "agent.text-chunk"; dataSchema: z.ZodObject<{ textChunk: z.ZodString; }, zod_v4_core.$strip>; }, { name: "agent.voice-chunk"; dataSchema: z.ZodObject<{ voiceChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; }, zod_v4_core.$strip>; }]; handlers: [...never[], { name: "maintain-status"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "maintain-messages"; mode: "block"; state: never; onEvent: (params: unknown) => string | undefined; }, { name: "receive-user-audio"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "detect-user-voice"; mode: "stream"; state: never; onEvent: (params: unknown) => Promise<void>; }, { name: "transcribe-user-voice"; mode: "stream"; state: never; onEvent: (params: unknown) => Promise<void>; }, { name: "detect-end-of-turn"; mode: "stream"; state: never; onEvent: (params: unknown) => Promise<void>; }, { name: "generate-agent-response"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "handle-resources-requests"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "handle-tools-requests"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "stream-outgoing-audio"; mode: "stream"; state: never; onEvent: (params: unknown) => void; }]; }, "events" | "config" | "context" | "$config" | "$context" | "$events">; declare const memoriesPlugin: TypedPluginBuilder<{ name: "memories"; dependencies: { name: "generation"; config: ZodObjectWithTelemetry<z.ZodObject<{ voiceDetection: z.ZodPrefault<z.ZodObject<{ scoreInThreshold: z.ZodPrefault<z.ZodNumber>; scoreOutThreshold: z.ZodPrefault<z.ZodNumber>; prePaddingChunks: z.ZodPrefault<z.ZodNumber>; postPaddingChunks: z.ZodPrefault<z.ZodNumber>; minVoiceInterruptionMs: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>>; endOfTurnDetection: z.ZodPrefault<z.ZodObject<{ threshold: z.ZodPrefault<z.ZodNumber>; minTimeoutMs: z.ZodPrefault<z.ZodNumber>; maxTimeoutMs: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>>; }, zod_v4_core.$strip>, "output">; context: ZodObjectWithTelemetry<z.ZodObject<{ messages: z.ZodPrefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>>; status: z.ZodPrefault<z.ZodObject<{ listening: z.ZodPrefault<z.ZodBoolean>; thinking: z.ZodPrefault<z.ZodBoolean>; speaking: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>>; voiceEnabled: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>, "output">; events: [{ readonly name: "plugin.start"; readonly dataSchema: z.ZodObject<{ isRestart: z.ZodPrefault<z.ZodBoolean>; restartCount: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>; }, { readonly name: "plugin.stop"; }, { readonly name: "plugin.test"; }, { readonly name: "plugin.error"; readonly dataSchema: z.ZodObject<{ error: z.ZodCustom<LifeErrorUnion, LifeErrorUnion>; event: z.ZodObject<{ id: z.ZodString; name: z.ZodString; urgent: z.ZodPrefault<z.ZodBoolean>; data: z.ZodPrefault<z.ZodAny>; created: z.ZodObject<{ at: z.ZodNumber; by: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"handler">; plugin: z.ZodString; handler: z.ZodString; event: z.ZodString; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"server">; name: z.ZodString; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"client">; name: z.ZodString; }, zod_v4_core.$strip>], "type">; }, zod_v4_core.$strip>; edited: z.ZodDefault<z.ZodUnion<[z.ZodArray<z.ZodObject<{ at: z.ZodNumber; by: z.ZodObject<{ plugin: z.ZodString; handler: z.ZodString; }, zod_v4_core.$strip>; reason: z.ZodString; dataBefore: z.ZodAny; dataAfter: z.ZodAny; }, zod_v4_core.$strip>>, z.ZodLiteral<false>]>>; dropped: z.ZodPrefault<z.ZodUnion<[z.ZodObject<{ at: z.ZodNumber; by: z.ZodObject<{ plugin: z.ZodString; handler: z.ZodString; }, zod_v4_core.$strip>; reason: z.ZodString; }, zod_v4_core.$strip>, z.ZodLiteral<false>]>>; contextChanges: z.ZodPrefault<z.ZodArray<z.ZodObject<{ at: z.ZodNumber; byHandler: z.ZodString; valueBefore: z.ZodAny; valueAfter: z.ZodAny; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>; }, zod_v4_core.$strip>; }] | [{ name: "messages.create"; dataSchema: z.ZodObject<{ message: z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>], "role">; }, zod_v4_core.$strip>; }, { name: "messages.update"; dataSchema: z.ZodObject<{ id: z.ZodString; role: z.ZodEnum<{ user: "user"; system: "system"; agent: "agent"; tool: "tool"; }>; message: z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>], "role">; }, zod_v4_core.$strip>; }, { name: "user.audio-chunk"; dataSchema: z.ZodObject<{ audioChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; }, zod_v4_core.$strip>; }, { name: "user.voice-start"; }, { name: "user.voice-chunk"; dataSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"voice">; voiceChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"padding">; voiceChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; paddingSide: z.ZodEnum<{ pre: "pre"; post: "post"; }>; paddingIndex: z.ZodNumber; }, zod_v4_core.$strip>], "type">; }, { name: "user.voice-end"; }, { name: "user.text-chunk"; dataSchema: z.ZodObject<{ textChunk: z.ZodString; }, zod_v4_core.$strip>; }, { name: "user.interrupted"; }, { name: "agent.thinking-start"; }, { name: "agent.thinking-end"; }, { name: "agent.speaking-start"; }, { name: "agent.speaking-end"; }, { name: "agent.continue"; dataSchema: z.ZodObject<{ interrupt: z.ZodPrefault<z.ZodUnion<[z.ZodEnum<{ abrupt: "abrupt"; smooth: "smooth"; }>, z.ZodLiteral<false>]>>; preventInterruption: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>; }, { name: "agent.decide"; dataSchema: z.ZodObject<{ interrupt: z.ZodPrefault<z.ZodUnion<[z.ZodEnum<{ abrupt: "abrupt"; smooth: "smooth"; }>, z.ZodLiteral<false>]>>; preventInterruption: z.ZodPrefault<z.ZodBoolean>; messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>; }, zod_v4_core.$strip>; }, { name: "agent.say"; dataSchema: z.ZodObject<{ interrupt: z.ZodPrefault<z.ZodUnion<[z.ZodEnum<{ abrupt: "abrupt"; smooth: "smooth"; }>, z.ZodLiteral<false>]>>; preventInterruption: z.ZodPrefault<z.ZodBoolean>; text: z.ZodString; }, zod_v4_core.$strip>; }, { name: "agent.interrupt"; dataSchema: z.ZodObject<{ reason: z.ZodString; author: z.ZodEnum<{ user: "user"; application: "application"; }>; force: z.ZodPrefault<z.ZodBoolean>; }, zod_v4_core.$strip>; }, { name: "agent.resources-request"; }, { name: "agent.resources-response"; dataSchema: z.ZodObject<{ requestId: z.ZodString; resources: z.ZodObject<{ messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>; tools: z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodObject<{ input: z.ZodCustom<z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>, z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>>; output: z.ZodCustom<z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>, z.ZodObject<zod_v4_core.$ZodLooseShape, zod_v4_core.$strip>>; }, zod_v4_core.$strip>; run: z.ZodFunction<z.ZodTuple<readonly [z.ZodRecord<z.ZodString, z.ZodAny>], null>, z.ZodUnion<readonly [z.ZodObject<{ success: z.ZodBoolean; output: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; error: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>, z.ZodPromise<z.ZodObject<{ success: z.ZodBoolean; output: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; error: z.ZodOptional<z.ZodString>; }, zod_v4_core.$strip>>]>>; }, zod_v4_core.$strip>>; }, zod_v4_core.$strip>; }, zod_v4_core.$strip>; }, { name: "agent.tool-requests"; dataSchema: z.ZodObject<{ requests: z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>; }, zod_v4_core.$strip>; }, { name: "agent.interrupted"; dataSchema: z.ZodObject<{ reason: z.ZodString; forced: z.ZodBoolean; author: z.ZodEnum<{ user: "user"; application: "application"; }>; }, zod_v4_core.$strip>; }, { name: "agent.text-chunk"; dataSchema: z.ZodObject<{ textChunk: z.ZodString; }, zod_v4_core.$strip>; }, { name: "agent.voice-chunk"; dataSchema: z.ZodObject<{ voiceChunk: z.ZodCustom<Int16Array<ArrayBufferLike>, Int16Array<ArrayBufferLike>>; }, zod_v4_core.$strip>; }]; handlers: [...never[], { name: "maintain-status"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "maintain-messages"; mode: "block"; state: never; onEvent: (params: unknown) => string | undefined; }, { name: "receive-user-audio"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "detect-user-voice"; mode: "stream"; state: never; onEvent: (params: unknown) => Promise<void>; }, { name: "transcribe-user-voice"; mode: "stream"; state: never; onEvent: (params: unknown) => Promise<void>; }, { name: "detect-end-of-turn"; mode: "stream"; state: never; onEvent: (params: unknown) => Promise<void>; }, { name: "generate-agent-response"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "handle-resources-requests"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "handle-tools-requests"; mode: "block"; state: never; onEvent: (params: unknown) => void; }, { name: "stream-outgoing-audio"; mode: "stream"; state: never; onEvent: (params: unknown) => void; }]; }[]; config: ZodObjectWithTelemetry<z.ZodObject<{ items: z.ZodPrefault<z.ZodArray<z.ZodCustom<{ _definition: MemoryDefinition; }, { _definition: MemoryDefinition; }>>>; }, zod_v4_core.$strip>, "output">; context: ZodObjectWithTelemetry<z.ZodObject<{ memoriesLastResults: z.ZodPrefault<z.ZodCustom<Map<string, ({ role: "user"; content: string; id: string; createdAt: number; lastUpdated: number; } | { role: "system"; content: string; id: string; createdAt: number; lastUpdated: number; } | { role: "agent"; content: string; toolsRequests: { toolRequestId: string; toolName: string; toolInput: Record<string, any>; }[]; id: string; createdAt: number; lastUpdated: number; } | { role: "tool"; toolRequestId: string; toolName: string; toolSuccess: boolean; id: string; createdAt: number; lastUpdated: number; toolOutput?: Record<string, any> | undefined; toolError?: string | undefined; })[]>, Map<string, ({ role: "user"; content: string; id: string; createdAt: number; lastUpdated: number; } | { role: "system"; content: string; id: string; createdAt: number; lastUpdated: number; } | { role: "agent"; content: string; toolsRequests: { toolRequestId: string; toolName: string; toolInput: Record<string, any>; }[]; id: string; createdAt: number; lastUpdated: number; } | { role: "tool"; toolRequestId: string; toolName: string; toolSuccess: boolean; id: string; createdAt: number; lastUpdated: number; toolOutput?: Record<string, any> | undefined; toolError?: string | undefined; })[]>>>; memoriesLastTimestamp: z.ZodPrefault<z.ZodCustom<Map<string, number>, Map<string, number>>>; processedRequestsIds: z.ZodPrefault<z.ZodCustom<Set<string>, Set<string>>>; computedMemoriesCache: z.ZodPrefault<z.ZodCustom<Map<string, { hash: string; memories: Message[]; }>, Map<string, { hash: string; memories: Message[]; }>>>; }, zod_v4_core.$strip>, "output">; events: [{ readonly name: "plugin.start"; readonly dataSchema: z.ZodObject<{ isRestart: z.ZodPrefault<z.ZodBoolean>; restartCount: z.ZodPrefault<z.ZodNumber>; }, zod_v4_core.$strip>; }, { readonly name: "plugin.stop"; }, { readonly name: "plugin.test"; }, { readonly name: "plugin.error"; readonly dataSchema: z.ZodObject<{ error: z.ZodCustom<LifeErrorUnion, LifeErrorUnion>; event: z.ZodObject<{ id: z.ZodString; name: z.ZodString; urgent: z.ZodPrefault<z.ZodBoolean>; data: z.ZodPrefault<z.ZodAny>; created: z.ZodObject<{ at: z.ZodNumber; by: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"handler">; plugin: z.ZodString; handler: z.ZodString; event: z.ZodString; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"server">; name: z.ZodString; }, zod_v4_core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"client">; name: z.ZodString; }, zod_v4_core.$strip>], "type">; }, zod_v4_core.$strip>; edited: z.ZodDefault<z.ZodUnion<[z.ZodArray<z.ZodObject<{ at: z.ZodNumber; by: z.ZodObject<{ plugin: z.ZodString; handler: z.ZodString; }, zod_v4_core.$strip>; reason: z.ZodString; dataBefore: z.ZodAny; dataAfter: z.ZodAny; }, zod_v4_core.$strip>>, z.ZodLiteral<false>]>>; dropped: z.ZodPrefault<z.ZodUnion<[z.ZodObject<{ at: z.ZodNumber; by: z.ZodObject<{ plugin: z.ZodString; handler: z.ZodString; }, zod_v4_core.$strip>; reason: z.ZodString; }, zod_v4_core.$strip>, z.ZodLiteral<false>]>>; contextChanges: z.ZodPrefault<z.ZodArray<z.ZodObject<{ at: z.ZodNumber; byHandler: z.ZodString; valueBefore: z.ZodAny; valueAfter: z.ZodAny; }, zod_v4_core.$strip>>>; }, zod_v4_core.$strip>; }, zod_v4_core.$strip>; }] | [{ name: "cache-build"; dataSchema: z.ZodObject<{ messagesHash: z.ZodString; memories: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>; }, zod_v4_core.$strip>; }, { name: "cache-memory"; dataSchema: z.ZodObject<{ name: z.ZodString; messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{ role: z.ZodLiteral<"user">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"system">; content: z.ZodPrefault<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"agent">; content: z.ZodPrefault<z.ZodString>; toolsRequests: z.ZodPrefault<z.ZodArray<z.ZodObject<{ toolRequestId: z.ZodString; toolName: z.ZodString; toolInput: z.ZodRecord<z.ZodString, z.ZodAny>; }, zod_v4_core.$strip>>>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>, z.ZodObject<{ role: z.ZodLiteral<"tool">; toolRequestId: z.ZodString; toolName: z.ZodString; toolSuccess: z.ZodBoolean; toolOutput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; toolError: z.ZodOptional<z.ZodString>; id: z.ZodString; createdAt: z.ZodNumber; lastUpdated: z.ZodNumber; }, zod_v4_core.$strip>], "role">>; timestamp: z.ZodNumber; }, zod_v4_core.$strip>; }]; handlers: never[]; }, "events" | "config" | "dependencies" | "context" | "$config" | "$context" | "$events">; declare const storesPlugin: TypedPluginBuilder<{ name: "stores"; dependencies: { name: "generation"; config: ZodObjectWithTelemetry<z$1.ZodObject<{ voiceDetection: z$1.ZodPrefault<z$1.ZodObject<{ scoreInThreshold: z$1.ZodPrefault<z$1.ZodNumber>; scoreOutThreshold: z$1.ZodPrefault<z$1.ZodNumber>; prePaddingChunks: z$1.ZodPrefault<z$1.ZodNumber>; postPaddingChunks: z$1.ZodPrefault<z$1.ZodNumber>; minVoiceInterruptionMs: z$1.ZodPrefault<z$1.ZodNumber>; }, z$1.core.$strip>>; endOfTurnDetection: z$1.ZodPrefault<z$1.ZodObject<{ threshold: z$1.ZodPrefault<z$1.ZodNumber>; minTimeoutMs: z$1.ZodPrefault<z$1.ZodNumber>; maxTimeoutMs: z$1.ZodPrefault<z$1.ZodNumber>; }, z$1.core.$strip>>; }, z$1.core.$strip>, "output">; context: ZodObjectWithTelemetry<z$1.ZodObject<{ messages: z$1.ZodPrefault<z$1.ZodArray<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{ role: z$1.ZodLiteral<"user">; content: z$1.ZodPrefault<z$1.ZodString>; id: z$1.ZodString; createdAt: z$1.ZodNumber; lastUpdated: z$1.ZodNumber; }, z$1.core.$strip>, z$1.ZodObject<{ role: z$1.ZodLiteral<"system">; content: z$1.ZodPrefault<z$1.ZodString>; id: z$1.ZodString; createdAt: z$1.ZodNumber; lastUpdated: z$1.ZodNumber; }, z$1.core.$strip>, z$1.ZodObject<{ role: z$1.ZodLiteral<"agent">; content: z$1.ZodPrefault<z$1.ZodString>; toolsRequests: z$1.ZodPrefault<z$1.ZodArray<z$1.ZodObject<{ toolRequestId: z$1.ZodString; toolName: z$1.ZodString; toolInput: z$1.ZodRecord<z$1.ZodString, z$1.ZodAny>; }, z$1.core.$strip>>>; id: z$1.ZodString; createdAt: z$1.ZodNumber; lastUpdated: z$1.ZodNumber; }, z$1.core.$strip>, z$1.ZodObject<{ role: z$1.ZodLiteral<"tool">; toolRequestId: z$1.ZodString; toolName: z$1.ZodString; toolSuccess: z$1.ZodBoolean; toolOutput: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodAny>>; toolError: z$1.ZodOptional<z$1.ZodString>; id: z$1.ZodString; createdAt: z$1.ZodNumber; lastUpdated: z$1.ZodNumber; }, z$1.core.$strip>], "role">>>; status: z$1.ZodPrefault<z$1.ZodObject<{ listening: z$1.ZodPrefault<z$1.ZodBoolean>; thinking: z$1.ZodPrefault<z$1.ZodBoolean>; speaking: z$1.ZodPrefault<z$1.ZodBoolean>; }, z$1.core.$strip>>; voiceEnabled: z