openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
163 lines • 8.64 kB
TypeScript
import { Static, Type } from "typebox";
//#region packages/gateway-protocol/src/schema/channels.d.ts
/** Canonical Talk event envelope emitted to browser, relay, and channel consumers. */
declare const TalkEventSchema: Type.TObject<{
id: Type.TString;
type: Type.TUnion<[Type.TLiteral<"session.started">, Type.TLiteral<"session.ready">, Type.TLiteral<"session.closed">, Type.TLiteral<"session.error">, Type.TLiteral<"session.replaced">, Type.TLiteral<"turn.started">, Type.TLiteral<"turn.ended">, Type.TLiteral<"turn.cancelled">, Type.TLiteral<"capture.started">, Type.TLiteral<"capture.stopped">, Type.TLiteral<"capture.cancelled">, Type.TLiteral<"capture.once">, Type.TLiteral<"input.audio.delta">, Type.TLiteral<"input.audio.committed">, Type.TLiteral<"transcript.delta">, Type.TLiteral<"transcript.done">, Type.TLiteral<"output.text.delta">, Type.TLiteral<"output.text.done">, Type.TLiteral<"output.audio.started">, Type.TLiteral<"output.audio.delta">, Type.TLiteral<"output.audio.done">, Type.TLiteral<"tool.call">, Type.TLiteral<"tool.progress">, Type.TLiteral<"tool.result">, Type.TLiteral<"tool.error">, Type.TLiteral<"usage.metrics">, Type.TLiteral<"latency.metrics">, Type.TLiteral<"health.changed">]>;
sessionId: Type.TString;
turnId: Type.TOptional<Type.TString>;
captureId: Type.TOptional<Type.TString>;
seq: Type.TInteger;
timestamp: Type.TString;
mode: Type.TUnion<[Type.TLiteral<"realtime">, Type.TLiteral<"stt-tts">, Type.TLiteral<"transcription">]>;
transport: Type.TUnion<[Type.TLiteral<"webrtc">, Type.TLiteral<"provider-websocket">, Type.TLiteral<"gateway-relay">, Type.TLiteral<"managed-room">]>;
brain: Type.TUnion<[Type.TLiteral<"agent-consult">, Type.TLiteral<"direct-tools">, Type.TLiteral<"none">]>;
provider: Type.TOptional<Type.TString>;
final: Type.TOptional<Type.TBoolean>;
callId: Type.TOptional<Type.TString>;
itemId: Type.TOptional<Type.TString>;
parentId: Type.TOptional<Type.TString>;
payload: Type.TUnknown;
}>;
declare const TalkClientCreateResultSchema: Type.TUnion<[Type.TObject<{
provider: Type.TString;
transport: Type.TLiteral<"webrtc">;
voiceSessionId: Type.TString;
clientSecret: Type.TString;
offerUrl: Type.TOptional<Type.TString>;
offerHeaders: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
model: Type.TOptional<Type.TString>;
voice: Type.TOptional<Type.TString>;
expiresAt: Type.TOptional<Type.TNumber>;
clientControl: Type.TOptional<Type.TObject<{
owner: Type.TLiteral<"gateway">;
}>>;
}>, Type.TObject<{
provider: Type.TString;
transport: Type.TLiteral<"provider-websocket">;
voiceSessionId: Type.TString;
protocol: Type.TString;
clientSecret: Type.TString;
websocketUrl: Type.TString;
audio: Type.TObject<{
inputEncoding: Type.TUnion<[Type.TLiteral<"pcm16">, Type.TLiteral<"g711_ulaw">]>;
inputSampleRateHz: Type.TInteger;
outputEncoding: Type.TUnion<[Type.TLiteral<"pcm16">, Type.TLiteral<"g711_ulaw">]>;
outputSampleRateHz: Type.TInteger;
}>;
initialMessage: Type.TOptional<Type.TUnknown>;
model: Type.TOptional<Type.TString>;
voice: Type.TOptional<Type.TString>;
expiresAt: Type.TOptional<Type.TNumber>;
}>, Type.TObject<{
provider: Type.TString;
transport: Type.TLiteral<"gateway-relay">;
voiceSessionId: Type.TOptional<Type.TString>;
relaySessionId: Type.TString;
audio: Type.TObject<{
inputEncoding: Type.TUnion<[Type.TLiteral<"pcm16">, Type.TLiteral<"g711_ulaw">]>;
inputSampleRateHz: Type.TInteger;
outputEncoding: Type.TUnion<[Type.TLiteral<"pcm16">, Type.TLiteral<"g711_ulaw">]>;
outputSampleRateHz: Type.TInteger;
}>;
model: Type.TOptional<Type.TString>;
voice: Type.TOptional<Type.TString>;
expiresAt: Type.TOptional<Type.TNumber>;
}>, Type.TObject<{
provider: Type.TString;
transport: Type.TLiteral<"managed-room">;
voiceSessionId: Type.TOptional<Type.TString>;
roomUrl: Type.TString;
token: Type.TOptional<Type.TString>;
model: Type.TOptional<Type.TString>;
voice: Type.TOptional<Type.TString>;
expiresAt: Type.TOptional<Type.TNumber>;
}>]>;
declare const ChannelsStatusResultSchema: Type.TObject<{
ts: Type.TInteger;
channelOrder: Type.TArray<Type.TString>;
channelLabels: Type.TRecord<"^.*$", Type.TString>;
channelDetailLabels: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
channelSystemImages: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
channelMeta: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
detailLabel: Type.TString;
systemImage: Type.TOptional<Type.TString>;
}>>>;
channels: Type.TRecord<"^.*$", Type.TUnknown>;
channelAccounts: Type.TRecord<"^.*$", Type.TArray<Type.TObject<{
accountId: Type.TString;
name: Type.TOptional<Type.TString>;
enabled: Type.TOptional<Type.TBoolean>;
configured: Type.TOptional<Type.TBoolean>;
linked: Type.TOptional<Type.TBoolean>;
running: Type.TOptional<Type.TBoolean>;
connected: Type.TOptional<Type.TBoolean>;
reconnectAttempts: Type.TOptional<Type.TInteger>;
lastConnectedAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
lastError: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
healthState: Type.TOptional<Type.TString>;
lastStartAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
lastStopAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
lastInboundAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
lastOutboundAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
lastTransportActivityAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
busy: Type.TOptional<Type.TBoolean>;
activeRuns: Type.TOptional<Type.TInteger>;
lastRunActivityAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
activeRunStartedAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
lastProbeAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
mode: Type.TOptional<Type.TString>;
dmPolicy: Type.TOptional<Type.TString>;
allowFrom: Type.TOptional<Type.TArray<Type.TString>>;
tokenSource: Type.TOptional<Type.TString>;
botTokenSource: Type.TOptional<Type.TString>;
appTokenSource: Type.TOptional<Type.TString>;
credentialSource: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
audienceType: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
audience: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
webhookPath: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
webhookUrl: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
baseUrl: Type.TOptional<Type.TString>;
allowUnmentionedGroups: Type.TOptional<Type.TBoolean>;
cliPath: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
dbPath: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
port: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
probe: Type.TOptional<Type.TUnknown>;
audit: Type.TOptional<Type.TUnknown>;
application: Type.TOptional<Type.TUnknown>;
}>>>;
channelDefaultAccountId: Type.TRecord<"^.*$", Type.TString>;
eventLoop: Type.TOptional<Type.TObject<{
degraded: Type.TBoolean;
degradedSinceMs: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
reasons: Type.TArray<Type.TUnion<[Type.TLiteral<"event_loop_delay">, Type.TLiteral<"event_loop_utilization">, Type.TLiteral<"cpu">]>>;
delayP99Ms: Type.TNumber;
delayMaxMs: Type.TNumber;
utilization: Type.TNumber;
cpuCoreRatio: Type.TNumber;
cpuBreakdown: Type.TOptional<Type.TObject<{
mainThreadCoreRatio: Type.TOptional<Type.TNumber>;
workerCoreRatio: Type.TOptional<Type.TNumber>;
otherThreadsCoreRatio: Type.TOptional<Type.TNumber>;
hostUtilization: Type.TOptional<Type.TNumber>;
hostCpuCount: Type.TOptional<Type.TInteger>;
}>>;
intervalMs: Type.TInteger;
}>>;
partial: Type.TOptional<Type.TBoolean>;
warnings: Type.TOptional<Type.TArray<Type.TString>>;
statusIssues: Type.TOptional<Type.TArray<Type.TObject<{
channel: Type.TString;
accountId: Type.TString;
kind: Type.TUnion<[Type.TLiteral<"intent">, Type.TLiteral<"permissions">, Type.TLiteral<"config">, Type.TLiteral<"auth">, Type.TLiteral<"runtime">]>;
message: Type.TString;
fix: Type.TOptional<Type.TString>;
}>>>;
}>;
type TalkEvent = Static<typeof TalkEventSchema>;
type TalkClientCreateResult = Static<typeof TalkClientCreateResultSchema>;
type ChannelsStatusResult = Static<typeof ChannelsStatusResultSchema>;
//#endregion
export { TalkClientCreateResult as n, TalkEvent as r, ChannelsStatusResult as t };