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
TypeScript
import { d as TypedPluginBuilder, L as LifeErrorUnion, M as MemoryDefinition, c as Message, S as StoreDefinition } from '../types-B6ejZKUB.js';
export { e as defineAgent, f as defineMemory, h as definePlugin, g as defineStore } from '../types-B6ejZKUB.js';
import { Z as ZodObjectWithTelemetry } from '../config-n67P8tNt.js';
export { d as defineConfig } from '../config-n67P8tNt.js';
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$1.Z