life
Version:
Life.js is the first fullstack framework to build agentic web applications. It is minimal, extensible, and typesafe. Well, everything you love.
925 lines (924 loc) • 259 kB
text/typescript
import { T as TypedPluginClientBuilder, P as PluginClientProvidedConfigs, a as PluginClientParams, b as PluginClientBuilder } from '../create-CNv4Yhhl.mjs';
export { A as AgentClient, f as AgentClientFromBuild, g as AgentClientParam, L as LifeClient, c as createLifeClient, d as defineAgentClient, e as definePluginClient, p as parseAgentClientParam } from '../create-CNv4Yhhl.mjs';
import { g as generationPluginClient } from '../client-CAhzt71i.mjs';
import { a as Any, L as LifeErrorUnion, M as MemoryDefinition, c as Message, S as StoreDefinition } from '../types-DcmGusfD.mjs';
import * as nanostores from 'nanostores';
import { Z as ZodObjectWithTelemetry } from '../config-n67P8tNt.mjs';
import * as z from 'zod';
import * as zod_v4_core from 'zod/v4/core';
import 'LIFE_CLIENT_BUILD_PATH';
import 'type-fest';
declare const memoriesPluginClient: TypedPluginClientBuilder<{
readonly name: "memories";
readonly config: ZodObjectWithTelemetry<z.ZodObject<{
[x: string]: any;
}, zod_v4_core.$strip>, "output">;
readonly dependencies: {
readonly name: "generation";
readonly config: ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">;
readonly class: <const ProvidedConfigs extends PluginClientProvidedConfigs<ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">, 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">>>({ plugin }: PluginClientParams<{
readonly name: "generation";
readonly config: ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">;
readonly dependencies: [];
readonly class: <const _ProvidedConfigs>(..._args: Any[]) => {
new (): {};
};
readonly atoms: <const _ProvidedConfigs>(..._args: Any[]) => never[];
readonly $serverDef: {
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;
}];
} & {
dependencies: [];
};
}, ProvidedConfigs>) => {
new (): {
continue(params: {
interrupt?: false | "abrupt" | "smooth" | undefined;
preventInterruption?: boolean | undefined;
}): Promise<string>;
decide(params: {
messages: ({
role: "user";
id: string;
createdAt: number;
lastUpdated: number;
content?: string | undefined;
} | {
role: "system";
id: string;
createdAt: number;
lastUpdated: number;
content?: string | undefined;
} | {
role: "agent";
id: string;
createdAt: number;
lastUpdated: number;
content?: string | undefined;
toolsRequests?: {
toolRequestId: string;
toolName: string;
toolInput: Record<string, any>;
}[] | undefined;
} | {
role: "tool";
toolRequestId: string;
toolName: string;
toolSuccess: boolean;
id: string;
createdAt: number;
lastUpdated: number;
toolOutput?: Record<string, any> | undefined;
toolError?: string | undefined;
})[];
interrupt?: false | "abrupt" | "smooth" | undefined;
preventInterruption?: boolean | undefined;
}): Promise<string>;
say(params: {
text: string;
interrupt?: false | "abrupt" | "smooth" | undefined;
preventInterruption?: boolean | undefined;
}): Promise<string>;
interrupt(params: {
reason: string;
author: "user" | "application";
force?: boolean | undefined;
}): Promise<string>;
messages: {
create: (params: {
message: {
role: "user";
content?: string | undefined;
} | {
role: "system";
content?: string | undefined;
} | {
role: "agent";
content?: string | undefined;
toolsRequests?: {
toolRequestId: string;
toolName: string;
toolInput: Record<string, any>;
}[] | undefined;
} | {
role: "tool";
toolRequestId: string;
toolName: string;
toolSuccess: boolean;
toolOutput?: Record<string, any> | undefined;
toolError?: string | undefined;
};
}) => Promise<string>;
update: (params: {
id: string;
role: "user" | "system" | "agent" | "tool";
message: {
role: "user";
content?: string | undefined;
} | {
role: "system";
content?: string | undefined;
} | {
role: "agent";
content?: string | undefined;
toolsRequests?: {
toolRequestId: string;
toolName: string;
toolInput: Record<string, any>;
}[] | undefined;
} | {
role: "tool";
toolRequestId: string;
toolName: string;
toolSuccess: boolean;
toolOutput?: Record<string, any> | undefined;
toolError?: string | undefined;
};
}) => Promise<string>;
get: () => ({
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;
})[];
};
};
};
readonly atoms: <const ProvidedConfigs extends PluginClientProvidedConfigs<ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">, 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">>>({ plugin, telemetry }: PluginClientParams<{
readonly name: "generation";
readonly config: ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">;
readonly dependencies: [];
readonly class: <const ProvidedConfigs_1 extends PluginClientProvidedConfigs<ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">, 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">>>({ plugin }: PluginClientParams<{
readonly name: "generation";
readonly config: ZodObjectWithTelemetry<z.ZodObject<{
enableVoice: z.ZodPrefault<z.ZodBoolean>;
}, zod_v4_core.$strip>, "output">;
readonly dependencies: [];
readonly class: <const _ProvidedConfigs>(..._args: Any[]) => {
new (): {};
};
readonly atoms: <const _ProvidedConfigs>(..._args: Any[]) => never[];
readonly $serverDef: {
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.ZodBoole