@kuralle-syrinx/core 4.4.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio/alaw.d.ts +3 -0
- package/dist/audio/alaw.d.ts.map +1 -0
- package/dist/audio/alaw.js +53 -0
- package/dist/audio/alaw.js.map +1 -0
- package/dist/audio/g722.d.ts +39 -0
- package/dist/audio/g722.d.ts.map +1 -0
- package/dist/audio/g722.js +286 -0
- package/dist/audio/g722.js.map +1 -0
- package/dist/audio/index.d.ts +7 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/audio/index.js +8 -0
- package/dist/audio/index.js.map +1 -0
- package/dist/audio/loudness.d.ts +13 -0
- package/dist/audio/loudness.d.ts.map +1 -0
- package/dist/audio/loudness.js +65 -0
- package/dist/audio/loudness.js.map +1 -0
- package/dist/audio/mulaw.d.ts +3 -0
- package/dist/audio/mulaw.d.ts.map +1 -0
- package/dist/audio/mulaw.js +39 -0
- package/dist/audio/mulaw.js.map +1 -0
- package/dist/audio/pcm.d.ts +5 -0
- package/dist/audio/pcm.d.ts.map +1 -0
- package/dist/audio/pcm.js +40 -0
- package/dist/audio/pcm.js.map +1 -0
- package/dist/audio/resample.d.ts +12 -0
- package/dist/audio/resample.d.ts.map +1 -0
- package/dist/audio/resample.js +157 -0
- package/dist/audio/resample.js.map +1 -0
- package/dist/audio-envelope.d.ts +23 -0
- package/dist/audio-envelope.d.ts.map +1 -0
- package/dist/audio-envelope.js +114 -0
- package/dist/audio-envelope.js.map +1 -0
- package/dist/confidence-to-wait.d.ts +12 -0
- package/dist/confidence-to-wait.d.ts.map +1 -0
- package/dist/confidence-to-wait.js +18 -0
- package/dist/confidence-to-wait.js.map +1 -0
- package/dist/conversation-event.d.ts +19 -0
- package/dist/conversation-event.d.ts.map +1 -0
- package/dist/conversation-event.js +44 -0
- package/dist/conversation-event.js.map +1 -0
- package/dist/error-handler.d.ts +35 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +136 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/idle-timeout.d.ts +69 -0
- package/dist/idle-timeout.d.ts.map +1 -0
- package/dist/idle-timeout.js +149 -0
- package/dist/idle-timeout.js.map +1 -0
- package/dist/incremental-unit.d.ts +17 -0
- package/dist/incremental-unit.d.ts.map +1 -0
- package/dist/incremental-unit.js +5 -0
- package/dist/incremental-unit.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/init-chain.d.ts +35 -0
- package/dist/init-chain.d.ts.map +1 -0
- package/dist/init-chain.js +102 -0
- package/dist/init-chain.js.map +1 -0
- package/dist/init-stage-order.d.ts +5 -0
- package/dist/init-stage-order.d.ts.map +1 -0
- package/dist/init-stage-order.js +74 -0
- package/dist/init-stage-order.js.map +1 -0
- package/dist/interaction-coordinator.d.ts +45 -0
- package/dist/interaction-coordinator.d.ts.map +1 -0
- package/dist/interaction-coordinator.js +197 -0
- package/dist/interaction-coordinator.js.map +1 -0
- package/dist/interaction-policy.d.ts +103 -0
- package/dist/interaction-policy.d.ts.map +1 -0
- package/dist/interaction-policy.js +6 -0
- package/dist/interaction-policy.js.map +1 -0
- package/dist/iu-ledger.d.ts +39 -0
- package/dist/iu-ledger.d.ts.map +1 -0
- package/dist/iu-ledger.js +90 -0
- package/dist/iu-ledger.js.map +1 -0
- package/dist/latency-filler-fixtures.d.ts +7 -0
- package/dist/latency-filler-fixtures.d.ts.map +1 -0
- package/dist/latency-filler-fixtures.js +10 -0
- package/dist/latency-filler-fixtures.js.map +1 -0
- package/dist/latency-filler.d.ts +29 -0
- package/dist/latency-filler.d.ts.map +1 -0
- package/dist/latency-filler.js +102 -0
- package/dist/latency-filler.js.map +1 -0
- package/dist/mode-switcher.d.ts +24 -0
- package/dist/mode-switcher.d.ts.map +1 -0
- package/dist/mode-switcher.js +83 -0
- package/dist/mode-switcher.js.map +1 -0
- package/dist/observability-observer.d.ts +36 -0
- package/dist/observability-observer.d.ts.map +1 -0
- package/dist/observability-observer.js +141 -0
- package/dist/observability-observer.js.map +1 -0
- package/dist/observability.d.ts +68 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/observability.js +70 -0
- package/dist/observability.js.map +1 -0
- package/dist/packet-factories.d.ts +58 -0
- package/dist/packet-factories.d.ts.map +1 -0
- package/dist/packet-factories.js +181 -0
- package/dist/packet-factories.js.map +1 -0
- package/dist/packets.d.ts +532 -0
- package/dist/packets.d.ts.map +1 -0
- package/dist/packets.js +51 -0
- package/dist/packets.js.map +1 -0
- package/dist/pipeline-bus.d.ts +92 -0
- package/dist/pipeline-bus.d.ts.map +1 -0
- package/dist/pipeline-bus.js +294 -0
- package/dist/pipeline-bus.js.map +1 -0
- package/dist/plugin-contract.d.ts +73 -0
- package/dist/plugin-contract.d.ts.map +1 -0
- package/dist/plugin-contract.js +30 -0
- package/dist/plugin-contract.js.map +1 -0
- package/dist/policies/defer.d.ts +11 -0
- package/dist/policies/defer.d.ts.map +1 -0
- package/dist/policies/defer.js +13 -0
- package/dist/policies/defer.js.map +1 -0
- package/dist/policies/rule-based.d.ts +35 -0
- package/dist/policies/rule-based.d.ts.map +1 -0
- package/dist/policies/rule-based.js +130 -0
- package/dist/policies/rule-based.js.map +1 -0
- package/dist/pricing.d.ts +34 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +108 -0
- package/dist/pricing.js.map +1 -0
- package/dist/primary-speaker-fixtures.d.ts +12 -0
- package/dist/primary-speaker-fixtures.d.ts.map +1 -0
- package/dist/primary-speaker-fixtures.js +37 -0
- package/dist/primary-speaker-fixtures.js.map +1 -0
- package/dist/primary-speaker-gate.d.ts +42 -0
- package/dist/primary-speaker-gate.d.ts.map +1 -0
- package/dist/primary-speaker-gate.js +178 -0
- package/dist/primary-speaker-gate.js.map +1 -0
- package/dist/provider-fallback.d.ts +28 -0
- package/dist/provider-fallback.d.ts.map +1 -0
- package/dist/provider-fallback.js +72 -0
- package/dist/provider-fallback.js.map +1 -0
- package/dist/reasoner-hedge.d.ts +21 -0
- package/dist/reasoner-hedge.d.ts.map +1 -0
- package/dist/reasoner-hedge.js +170 -0
- package/dist/reasoner-hedge.js.map +1 -0
- package/dist/reasoner-route.d.ts +24 -0
- package/dist/reasoner-route.d.ts.map +1 -0
- package/dist/reasoner-route.js +87 -0
- package/dist/reasoner-route.js.map +1 -0
- package/dist/reasoner-session-store.d.ts +18 -0
- package/dist/reasoner-session-store.d.ts.map +1 -0
- package/dist/reasoner-session-store.js +21 -0
- package/dist/reasoner-session-store.js.map +1 -0
- package/dist/reasoner.d.ts +97 -0
- package/dist/reasoner.d.ts.map +1 -0
- package/dist/reasoner.js +9 -0
- package/dist/reasoner.js.map +1 -0
- package/dist/retry.d.ts +31 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +83 -0
- package/dist/retry.js.map +1 -0
- package/dist/scheduler.d.ts +11 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +20 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/spend-cap.d.ts +27 -0
- package/dist/spend-cap.d.ts.map +1 -0
- package/dist/spend-cap.js +38 -0
- package/dist/spend-cap.js.map +1 -0
- package/dist/tts-playout-clock.d.ts +43 -0
- package/dist/tts-playout-clock.d.ts.map +1 -0
- package/dist/tts-playout-clock.js +125 -0
- package/dist/tts-playout-clock.js.map +1 -0
- package/dist/turn-arbiter.d.ts +41 -0
- package/dist/turn-arbiter.d.ts.map +1 -0
- package/dist/turn-arbiter.js +259 -0
- package/dist/turn-arbiter.js.map +1 -0
- package/dist/voice-agent-session-util.d.ts +60 -0
- package/dist/voice-agent-session-util.d.ts.map +1 -0
- package/dist/voice-agent-session-util.js +204 -0
- package/dist/voice-agent-session-util.js.map +1 -0
- package/dist/voice-agent-session.d.ts +435 -0
- package/dist/voice-agent-session.d.ts.map +1 -0
- package/dist/voice-agent-session.js +1597 -0
- package/dist/voice-agent-session.js.map +1 -0
- package/dist/voice-text.d.ts +46 -0
- package/dist/voice-text.d.ts.map +1 -0
- package/dist/voice-text.js +209 -0
- package/dist/voice-text.js.map +1 -0
- package/package.json +19 -6
- package/src/audio/alaw.test.ts +87 -0
- package/src/audio/audio.test.ts +285 -0
- package/src/audio/g722.test.ts +149 -0
- package/src/audio/loudness.test.ts +58 -0
- package/src/audio-envelope.test.ts +167 -0
- package/src/confidence-to-wait.test.ts +21 -0
- package/src/error-handler.test.ts +56 -0
- package/src/hedge-throwing-backend.test.ts +46 -0
- package/src/interaction-coordinator.test.ts +529 -0
- package/src/iu-ledger.test.ts +276 -0
- package/src/latency-filler.test.ts +62 -0
- package/src/observability-observer.test.ts +248 -0
- package/src/observability.test.ts +94 -0
- package/src/packet-factories.test.ts +126 -0
- package/src/pipeline-bus.g10.test.ts +145 -0
- package/src/pipeline-bus.test.ts +211 -0
- package/src/policies/defer.test.ts +86 -0
- package/src/policies/rule-based.test.ts +334 -0
- package/src/pricing.test.ts +226 -0
- package/src/primary-speaker-gate.test.ts +150 -0
- package/src/provider-fallback.test.ts +87 -0
- package/src/reasoner-hedge.test.ts +361 -0
- package/src/reasoner-route.test.ts +248 -0
- package/src/reasoner.test.ts +69 -0
- package/src/retry.test.ts +83 -0
- package/src/route-throwing-spec.test.ts +44 -0
- package/src/spend-cap.test.ts +114 -0
- package/src/tts-playout-clock.test.ts +125 -0
- package/src/turn-arbiter.characterization.test.ts +477 -0
- package/src/turn-arbiter.test.ts +762 -0
- package/src/voice-agent-session.test.ts +4165 -0
- package/src/voice-text.test.ts +156 -0
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
import type { WordTiming } from "./interaction-policy.js";
|
|
2
|
+
import type { EndpointingOwner, SttReconfigurePartial } from "./plugin-contract.js";
|
|
3
|
+
/** Every packet flowing through the bus has these fields. */
|
|
4
|
+
export interface VoicePacket {
|
|
5
|
+
/** Discriminator. Examples: "stt.result", "vad.speech_started", "init.failed" */
|
|
6
|
+
readonly kind: string;
|
|
7
|
+
/** Turn or session identifier. Empty string for session-scoped packets. */
|
|
8
|
+
readonly contextId: string;
|
|
9
|
+
/** Wall-clock creation time in ms since epoch. */
|
|
10
|
+
readonly timestampMs: number;
|
|
11
|
+
}
|
|
12
|
+
/** Marker: this packet's handler runs fire-and-forget (not awaited). */
|
|
13
|
+
export interface AsyncPacket extends VoicePacket {
|
|
14
|
+
readonly isAsync: true;
|
|
15
|
+
}
|
|
16
|
+
/** Categorized error types across all external-service components. */
|
|
17
|
+
export declare enum ErrorCategory {
|
|
18
|
+
RateLimit = "rate_limit",// HTTP 429 / quota exceeded — recoverable
|
|
19
|
+
NetworkTimeout = "network_timeout",// connection timeout / ECONNRESET — recoverable
|
|
20
|
+
Authentication = "authentication",// HTTP 401/403 — fatal
|
|
21
|
+
InvalidInput = "invalid_input",// HTTP 400 / invalid audio format — fatal
|
|
22
|
+
InternalFault = "internal_fault",// unexpected provider error — fatal
|
|
23
|
+
ResourceExhausted = "resource_exhausted"
|
|
24
|
+
}
|
|
25
|
+
export interface VoiceErrorPacket extends VoicePacket {
|
|
26
|
+
/** Which component emitted the error. */
|
|
27
|
+
readonly component: "stt" | "tts" | "vad" | "eos" | "denoiser" | "llm" | "bridge" | "pipeline" | "iu_ledger";
|
|
28
|
+
/** Machine-readable error category. */
|
|
29
|
+
readonly category: ErrorCategory;
|
|
30
|
+
/** Original error. May contain provider-specific details. */
|
|
31
|
+
readonly cause: Error;
|
|
32
|
+
/** Whether the session manager should retry (true) or terminate (false). */
|
|
33
|
+
readonly isRecoverable: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare enum SessionState {
|
|
36
|
+
Uninitialized = "uninitialized",
|
|
37
|
+
Initializing = "initializing",
|
|
38
|
+
Ready = "ready",
|
|
39
|
+
Finalizing = "finalizing",
|
|
40
|
+
Closed = "closed",
|
|
41
|
+
Failed = "failed"
|
|
42
|
+
}
|
|
43
|
+
export declare enum InitStage {
|
|
44
|
+
Assistant = "assistant",
|
|
45
|
+
Conversation = "conversation",
|
|
46
|
+
Recorder = "recorder",
|
|
47
|
+
Normalizer = "normalizer",
|
|
48
|
+
Auth = "auth",
|
|
49
|
+
STT = "stt",
|
|
50
|
+
TTS = "tts",
|
|
51
|
+
VAD = "vad",
|
|
52
|
+
EOS = "eos",
|
|
53
|
+
Denoiser = "denoiser",
|
|
54
|
+
Behavior = "behavior",
|
|
55
|
+
Telemetry = "telemetry"
|
|
56
|
+
}
|
|
57
|
+
export interface InitStepCompletedPacket extends VoicePacket {
|
|
58
|
+
readonly kind: "init.step_completed";
|
|
59
|
+
readonly stage: InitStage;
|
|
60
|
+
readonly component: string;
|
|
61
|
+
/** Milliseconds taken to initialize this component. */
|
|
62
|
+
readonly initMs: number;
|
|
63
|
+
}
|
|
64
|
+
export interface InitializationFailedPacket extends VoicePacket {
|
|
65
|
+
readonly kind: "init.failed";
|
|
66
|
+
readonly stage: InitStage;
|
|
67
|
+
readonly component: string;
|
|
68
|
+
readonly category: ErrorCategory;
|
|
69
|
+
readonly cause: Error;
|
|
70
|
+
readonly isRecoverable: false;
|
|
71
|
+
}
|
|
72
|
+
export interface InitializationCompletedPacket extends VoicePacket {
|
|
73
|
+
readonly kind: "init.completed";
|
|
74
|
+
}
|
|
75
|
+
export interface AudioFormat {
|
|
76
|
+
readonly encoding: "pcm_s16le" | "mulaw" | "opus";
|
|
77
|
+
readonly sampleRateHz: number;
|
|
78
|
+
readonly channels: 1;
|
|
79
|
+
/** Target frame duration for paced output, when known. */
|
|
80
|
+
readonly frameDurationMs?: number;
|
|
81
|
+
}
|
|
82
|
+
export interface UserAudioReceivedPacket extends VoicePacket {
|
|
83
|
+
readonly kind: "user.audio_received";
|
|
84
|
+
/** Raw PCM audio (16-bit, mono). Rate given by `sampleRateHz` (defaults to 16kHz). */
|
|
85
|
+
readonly audio: Uint8Array;
|
|
86
|
+
/** Sample rate of `audio` in Hz. Omitted means 16000 (the legacy default). */
|
|
87
|
+
readonly sampleRateHz?: number;
|
|
88
|
+
}
|
|
89
|
+
export interface UserTextReceivedPacket extends VoicePacket {
|
|
90
|
+
readonly kind: "user.text_received";
|
|
91
|
+
readonly text: string;
|
|
92
|
+
}
|
|
93
|
+
export interface DenoiseAudioPacket extends VoicePacket {
|
|
94
|
+
readonly kind: "denoise.audio";
|
|
95
|
+
readonly audio: Uint8Array;
|
|
96
|
+
}
|
|
97
|
+
export interface DenoisedAudioPacket extends VoicePacket {
|
|
98
|
+
readonly kind: "denoise.result";
|
|
99
|
+
readonly audio: Uint8Array;
|
|
100
|
+
readonly noiseReduced: boolean;
|
|
101
|
+
readonly confidence: number;
|
|
102
|
+
}
|
|
103
|
+
export interface VadAudioPacket extends VoicePacket {
|
|
104
|
+
readonly kind: "vad.audio";
|
|
105
|
+
readonly audio: Uint8Array;
|
|
106
|
+
}
|
|
107
|
+
export interface VadSpeechStartedPacket extends VoicePacket {
|
|
108
|
+
readonly kind: "vad.speech_started";
|
|
109
|
+
readonly confidence: number;
|
|
110
|
+
}
|
|
111
|
+
export interface VadSpeechEndedPacket extends VoicePacket {
|
|
112
|
+
readonly kind: "vad.speech_ended";
|
|
113
|
+
}
|
|
114
|
+
/** Heartbeat emitted on every audio chunk during active speech. EOS uses this to extend its timer. */
|
|
115
|
+
export interface VadSpeechActivityPacket extends VoicePacket, AsyncPacket {
|
|
116
|
+
readonly kind: "vad.speech_activity";
|
|
117
|
+
readonly isAsync: true;
|
|
118
|
+
}
|
|
119
|
+
export interface SpeechToTextAudioPacket extends VoicePacket {
|
|
120
|
+
readonly kind: "stt.audio";
|
|
121
|
+
readonly audio: Uint8Array;
|
|
122
|
+
}
|
|
123
|
+
export interface SttInterimPacket extends VoicePacket {
|
|
124
|
+
readonly kind: "stt.interim";
|
|
125
|
+
readonly text: string;
|
|
126
|
+
}
|
|
127
|
+
export interface SttPartialPacket extends VoicePacket {
|
|
128
|
+
readonly kind: "stt.partial";
|
|
129
|
+
readonly text: string;
|
|
130
|
+
readonly wordTimings?: readonly WordTiming[];
|
|
131
|
+
}
|
|
132
|
+
export interface SttResultPacket extends VoicePacket {
|
|
133
|
+
readonly kind: "stt.result";
|
|
134
|
+
readonly text: string;
|
|
135
|
+
readonly confidence: number;
|
|
136
|
+
readonly language?: string;
|
|
137
|
+
readonly provider?: Record<string, unknown>;
|
|
138
|
+
}
|
|
139
|
+
/** Requests that a streaming STT plugin publish its accumulated final transcript. */
|
|
140
|
+
export interface FinalizeSttPacket extends VoicePacket {
|
|
141
|
+
readonly kind: "stt.finalize";
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Per-turn STT reconfigure actuation. Session routes to the stt plugin's
|
|
145
|
+
* `sttReconfigure` seam when present (warn-and-no-op otherwise).
|
|
146
|
+
* Call at a turn boundary so reconnect-based STTs do not drop mid-utterance audio.
|
|
147
|
+
*/
|
|
148
|
+
export interface SttReconfigurePacket extends VoicePacket {
|
|
149
|
+
readonly kind: "stt.reconfigure";
|
|
150
|
+
readonly partial: SttReconfigurePartial;
|
|
151
|
+
}
|
|
152
|
+
export interface SttErrorPacket extends VoicePacket, VoiceErrorPacket {
|
|
153
|
+
readonly kind: "stt.error";
|
|
154
|
+
readonly component: "stt";
|
|
155
|
+
}
|
|
156
|
+
export interface EndOfSpeechAudioPacket extends VoicePacket {
|
|
157
|
+
readonly kind: "eos.audio";
|
|
158
|
+
readonly audio: Uint8Array;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Who decided a turn ended. Extends {@link EndpointingOwner} with the two
|
|
162
|
+
* non-plugin regimes: `"timer"` (a realtime front owns its own turn
|
|
163
|
+
* detection) and `"text"` (the user typed — no endpointer fired at all).
|
|
164
|
+
*
|
|
165
|
+
* Absent means genuinely unknown: never fabricate an owner the backend did
|
|
166
|
+
* not measure. A debugging surface that guesses is worse than one that says so.
|
|
167
|
+
*/
|
|
168
|
+
export type TurnEndOwner = EndpointingOwner | "timer" | "text";
|
|
169
|
+
/**
|
|
170
|
+
* Why a turn ended, paired with {@link TurnEndOwner}.
|
|
171
|
+
* - `end_of_speech` — an endpointer marked natural end of speech.
|
|
172
|
+
* - `force_finalized` — the STT was force-finalized by the
|
|
173
|
+
* `sttForceFinalizeTimeoutMs` watchdog (a timeout), not a natural endpoint.
|
|
174
|
+
* - `typed` — the turn came from typed input; no speech was endpointed.
|
|
175
|
+
*/
|
|
176
|
+
export type TurnEndReason = "end_of_speech" | "force_finalized" | "typed";
|
|
177
|
+
export interface EndOfSpeechPacket extends VoicePacket {
|
|
178
|
+
readonly kind: "eos.turn_complete";
|
|
179
|
+
readonly text: string;
|
|
180
|
+
/** All accumulated STT transcripts for this turn. */
|
|
181
|
+
readonly transcripts: readonly SttResultPacket[];
|
|
182
|
+
/** Which owner decided the turn ended. Omitted when genuinely unknown. */
|
|
183
|
+
readonly endpointingOwner?: TurnEndOwner;
|
|
184
|
+
/** Why the turn ended. Omitted when genuinely unknown. */
|
|
185
|
+
readonly endpointingReason?: TurnEndReason;
|
|
186
|
+
}
|
|
187
|
+
export interface InterimEndOfSpeechPacket extends VoicePacket {
|
|
188
|
+
readonly kind: "eos.interim";
|
|
189
|
+
readonly text: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Retraction of a prior `eos.interim` for the same context: the endpoint model
|
|
193
|
+
* signalled a likely turn end, then the user kept speaking (Deepgram Flux
|
|
194
|
+
* `TurnResumed` semantics). Consumers doing speculative work off `eos.interim`
|
|
195
|
+
* must cancel it.
|
|
196
|
+
*/
|
|
197
|
+
export interface EndOfSpeechRetractedPacket extends VoicePacket {
|
|
198
|
+
readonly kind: "eos.retracted";
|
|
199
|
+
}
|
|
200
|
+
export interface UserInputPacket extends VoicePacket {
|
|
201
|
+
readonly kind: "user.input";
|
|
202
|
+
readonly text: string;
|
|
203
|
+
readonly language: string;
|
|
204
|
+
}
|
|
205
|
+
export type InterruptionSource = "vad" | "word" | "client";
|
|
206
|
+
export interface InterruptionDetectedPacket extends VoicePacket {
|
|
207
|
+
readonly kind: "interrupt.detected";
|
|
208
|
+
readonly source: InterruptionSource;
|
|
209
|
+
}
|
|
210
|
+
export interface InterruptTtsPacket extends VoicePacket {
|
|
211
|
+
readonly kind: "interrupt.tts";
|
|
212
|
+
}
|
|
213
|
+
export interface InterruptLlmPacket extends VoicePacket {
|
|
214
|
+
readonly kind: "interrupt.llm";
|
|
215
|
+
}
|
|
216
|
+
export interface InterruptSttPacket extends VoicePacket {
|
|
217
|
+
readonly kind: "interrupt.stt";
|
|
218
|
+
}
|
|
219
|
+
export interface TurnChangePacket extends VoicePacket {
|
|
220
|
+
readonly kind: "turn.change";
|
|
221
|
+
readonly previousContextId: string;
|
|
222
|
+
readonly reason: string;
|
|
223
|
+
}
|
|
224
|
+
export type DtmfDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "*" | "#";
|
|
225
|
+
export interface DtmfReceivedPacket extends VoicePacket {
|
|
226
|
+
readonly kind: "dtmf.received";
|
|
227
|
+
readonly digit: DtmfDigit;
|
|
228
|
+
readonly provider: "twilio" | "telnyx" | "smartpbx";
|
|
229
|
+
/** Raw carrier-reported digit string, for diagnostics. */
|
|
230
|
+
readonly rawDigit: string;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Outbound DTMF request (IVR navigation). Digits may include pause syntax
|
|
234
|
+
* `w` (0.5s) / `W` (1s). Mechanism unit-tested; live carrier decode unverified.
|
|
235
|
+
*/
|
|
236
|
+
export interface DtmfSendPacket extends VoicePacket {
|
|
237
|
+
readonly kind: "dtmf.send";
|
|
238
|
+
/** Digits in `[0-9*#wW]+`. */
|
|
239
|
+
readonly digits: string;
|
|
240
|
+
}
|
|
241
|
+
export type CallTransferMode = "warm" | "cold" | "sip_refer";
|
|
242
|
+
/**
|
|
243
|
+
* Outbound call transfer. Prefer Call-Control transfer over SIP REFER where
|
|
244
|
+
* answer-rate matters (REFER drops STIR/SHAKEN attestation). Mechanism
|
|
245
|
+
* unit-tested; live transfer bridge unverified against a carrier.
|
|
246
|
+
*/
|
|
247
|
+
export interface CallTransferPacket extends VoicePacket {
|
|
248
|
+
readonly kind: "call.transfer";
|
|
249
|
+
readonly mode: CallTransferMode;
|
|
250
|
+
/** E.164 number or SIP URI. */
|
|
251
|
+
readonly target: string;
|
|
252
|
+
/** Warm-handoff context for the receiving agent/human (mode `"warm"`). */
|
|
253
|
+
readonly summary?: string;
|
|
254
|
+
}
|
|
255
|
+
export interface LlmDeltaPacket extends VoicePacket {
|
|
256
|
+
readonly kind: "llm.delta";
|
|
257
|
+
readonly text: string;
|
|
258
|
+
}
|
|
259
|
+
export interface LlmResponseDonePacket extends VoicePacket {
|
|
260
|
+
readonly kind: "llm.done";
|
|
261
|
+
readonly text: string;
|
|
262
|
+
}
|
|
263
|
+
export interface LlmErrorPacket extends VoicePacket, VoiceErrorPacket {
|
|
264
|
+
readonly kind: "llm.error";
|
|
265
|
+
readonly component: "llm" | "bridge" | "iu_ledger";
|
|
266
|
+
}
|
|
267
|
+
export interface LlmToolCallPacket extends VoicePacket {
|
|
268
|
+
readonly kind: "llm.tool_call";
|
|
269
|
+
readonly toolId: string;
|
|
270
|
+
readonly toolName: string;
|
|
271
|
+
readonly toolArgs: Record<string, unknown>;
|
|
272
|
+
}
|
|
273
|
+
export interface LlmToolResultPacket extends VoicePacket {
|
|
274
|
+
readonly kind: "llm.tool_result";
|
|
275
|
+
readonly toolId: string;
|
|
276
|
+
readonly toolName: string;
|
|
277
|
+
readonly result: string;
|
|
278
|
+
}
|
|
279
|
+
export interface ReasoningSuspendedPacket extends VoicePacket {
|
|
280
|
+
readonly kind: "reasoning.suspended";
|
|
281
|
+
readonly runId: string;
|
|
282
|
+
readonly prompt?: string;
|
|
283
|
+
readonly payload: unknown;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* The bridge handed a query to the Reasoner. Emitted the moment the delegate
|
|
287
|
+
* turn starts (RealtimeBridge `runDelegate`) or the cascade turn reaches the
|
|
288
|
+
* reasoner (ReasoningBridge), BEFORE the stream runs. Background route:
|
|
289
|
+
* droppable, never blocks the hot path (RFC bimodel-delegate-seam R4).
|
|
290
|
+
* `toolId`/`toolName` are present on realtime delegate turns (the front-model
|
|
291
|
+
* tool call that triggered the delegate); absent on cascade turns.
|
|
292
|
+
*/
|
|
293
|
+
export interface DelegateQueryPacket extends VoicePacket {
|
|
294
|
+
readonly kind: "delegate.query";
|
|
295
|
+
readonly query: string;
|
|
296
|
+
readonly toolId?: string;
|
|
297
|
+
readonly toolName?: string;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* The Reasoner produced the turn's final answer. Self-contained: carries the
|
|
301
|
+
* `query` again so a consumer can log/persist the Q&A pair from this one packet
|
|
302
|
+
* without correlating against the earlier `delegate.query`. `durationMs` spans
|
|
303
|
+
* query → answer; `grounded` is true when the reasoner stream surfaced at least
|
|
304
|
+
* one `tool-result` part (e.g. a retrieval hit) while producing the answer.
|
|
305
|
+
*/
|
|
306
|
+
export interface DelegateResultPacket extends VoicePacket {
|
|
307
|
+
readonly kind: "delegate.result";
|
|
308
|
+
readonly query: string;
|
|
309
|
+
readonly answer: string;
|
|
310
|
+
readonly durationMs: number;
|
|
311
|
+
readonly grounded: boolean;
|
|
312
|
+
readonly toolId?: string;
|
|
313
|
+
readonly toolName?: string;
|
|
314
|
+
readonly control?: {
|
|
315
|
+
readonly name: string;
|
|
316
|
+
readonly payload: unknown;
|
|
317
|
+
};
|
|
318
|
+
readonly blocked?: {
|
|
319
|
+
readonly userFacingMessage: string;
|
|
320
|
+
readonly payload?: unknown;
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
export interface ReasoningResumePacket extends VoicePacket {
|
|
324
|
+
readonly kind: "reasoning.resume";
|
|
325
|
+
readonly runId: string;
|
|
326
|
+
readonly data: unknown;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* G4: a realtime provider with native session resume (Gemini Live) issued a new
|
|
330
|
+
* resumption handle. Background route; a durable host (e.g. cf-agents) persists
|
|
331
|
+
* the latest handle and passes it back on reconnect instead of replaying history.
|
|
332
|
+
*/
|
|
333
|
+
export interface RealtimeResumptionHandlePacket extends VoicePacket {
|
|
334
|
+
readonly kind: "realtime.resumption_handle";
|
|
335
|
+
readonly handle: string;
|
|
336
|
+
}
|
|
337
|
+
export interface TextToSpeechTextPacket extends VoicePacket {
|
|
338
|
+
readonly kind: "tts.text";
|
|
339
|
+
readonly text: string;
|
|
340
|
+
}
|
|
341
|
+
export interface TextToSpeechDonePacket extends VoicePacket {
|
|
342
|
+
readonly kind: "tts.done";
|
|
343
|
+
readonly text: string;
|
|
344
|
+
}
|
|
345
|
+
export interface TextToSpeechAudioPacket extends VoicePacket {
|
|
346
|
+
readonly kind: "tts.audio";
|
|
347
|
+
/** PCM audio bytes (16-bit, mono). */
|
|
348
|
+
readonly audio: Uint8Array;
|
|
349
|
+
/** Source sample rate for the PCM payload. */
|
|
350
|
+
readonly sampleRateHz: number;
|
|
351
|
+
readonly provider?: Record<string, unknown>;
|
|
352
|
+
}
|
|
353
|
+
export interface TextToSpeechEndPacket extends VoicePacket {
|
|
354
|
+
readonly kind: "tts.end";
|
|
355
|
+
}
|
|
356
|
+
export interface TtsWordTimestamp {
|
|
357
|
+
readonly word: string;
|
|
358
|
+
/** Milliseconds from the start of audio for this TTS context. */
|
|
359
|
+
readonly startMs: number;
|
|
360
|
+
/** Milliseconds from the start of audio for this TTS context. */
|
|
361
|
+
readonly endMs: number;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Word-level timestamps for a TTS audio chunk, emitted by TTS plugins that
|
|
365
|
+
* support them (Cartesia, ElevenLabs). Enables the bridge to compute the spoken
|
|
366
|
+
* prefix (G2/G25): the subset of assistant text the user actually heard, used to
|
|
367
|
+
* rewrite history on barge-in at word granularity instead of text granularity.
|
|
368
|
+
* Times are cumulative from the start of the context's audio stream.
|
|
369
|
+
*/
|
|
370
|
+
export interface TextToSpeechWordTimestampsPacket extends VoicePacket {
|
|
371
|
+
readonly kind: "tts.word_timestamps";
|
|
372
|
+
readonly words: readonly TtsWordTimestamp[];
|
|
373
|
+
}
|
|
374
|
+
export interface TtsErrorPacket extends VoicePacket, VoiceErrorPacket {
|
|
375
|
+
readonly kind: "tts.error";
|
|
376
|
+
readonly component: "tts";
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Realtime playout position for a context, emitted by the output transport's
|
|
380
|
+
* paced-playout layer as audio actually reaches the wire. This is the
|
|
381
|
+
* authoritative playout clock; turn-taking and recording consume it instead of
|
|
382
|
+
* reconstructing timing from generation arrival. Absent when no paced transport
|
|
383
|
+
* is wired (e.g. headless), in which case consumers fall back to a
|
|
384
|
+
* sample-duration estimate.
|
|
385
|
+
*/
|
|
386
|
+
/** First paced audio frame reached the wire for a context (unthrottled). */
|
|
387
|
+
export interface TextToSpeechPlayoutStartedPacket extends VoicePacket {
|
|
388
|
+
readonly kind: "tts.playout_started";
|
|
389
|
+
}
|
|
390
|
+
export interface TextToSpeechPlayoutProgressPacket extends VoicePacket {
|
|
391
|
+
readonly kind: "tts.playout_progress";
|
|
392
|
+
/** Cumulative realtime audio (ms) paced out to the wire for this context. */
|
|
393
|
+
readonly playedOutMs: number;
|
|
394
|
+
/** True on the final progress for the context — all generated audio has played out. */
|
|
395
|
+
readonly complete: boolean;
|
|
396
|
+
}
|
|
397
|
+
export interface RecordUserAudioPacket extends VoicePacket {
|
|
398
|
+
readonly kind: "record.user_audio";
|
|
399
|
+
readonly audio: Uint8Array;
|
|
400
|
+
}
|
|
401
|
+
export interface RecordAssistantAudioDataPacket extends VoicePacket {
|
|
402
|
+
readonly kind: "record.assistant_audio";
|
|
403
|
+
readonly audio: Uint8Array;
|
|
404
|
+
/** Source sample rate for assistant PCM. */
|
|
405
|
+
readonly sampleRateHz: number;
|
|
406
|
+
readonly truncate: false;
|
|
407
|
+
}
|
|
408
|
+
export interface RecordAssistantAudioTruncatePacket extends VoicePacket {
|
|
409
|
+
readonly kind: "record.assistant_audio";
|
|
410
|
+
readonly audio: Uint8Array;
|
|
411
|
+
readonly truncate: true;
|
|
412
|
+
}
|
|
413
|
+
export type RecordAssistantAudioPacket = RecordAssistantAudioDataPacket | RecordAssistantAudioTruncatePacket;
|
|
414
|
+
/** Pre-cached backchannel cue id rendered by the outbound mixer (IP-C3). */
|
|
415
|
+
export interface InteractionBackchannelPacket extends VoicePacket {
|
|
416
|
+
readonly kind: "interaction.backchannel";
|
|
417
|
+
readonly cue: string;
|
|
418
|
+
}
|
|
419
|
+
/** Signal to attenuate active TTS while a barge-in is being evaluated (pending window). */
|
|
420
|
+
export interface InteractionDuckPacket extends VoicePacket {
|
|
421
|
+
readonly kind: "interaction.duck";
|
|
422
|
+
}
|
|
423
|
+
/** Signal to restore attenuated TTS when the pending window resolved without an interrupt. */
|
|
424
|
+
export interface InteractionResumePacket extends VoicePacket {
|
|
425
|
+
readonly kind: "interaction.resume";
|
|
426
|
+
}
|
|
427
|
+
export interface StartIdleTimeoutPacket extends VoicePacket {
|
|
428
|
+
readonly kind: "behavior.idle_timeout_start";
|
|
429
|
+
}
|
|
430
|
+
export interface StopIdleTimeoutPacket extends VoicePacket {
|
|
431
|
+
readonly kind: "behavior.idle_timeout_stop";
|
|
432
|
+
readonly resetCount: boolean;
|
|
433
|
+
}
|
|
434
|
+
export interface InjectMessagePacket extends VoicePacket {
|
|
435
|
+
readonly kind: "inject.message";
|
|
436
|
+
readonly text: string;
|
|
437
|
+
/** Defaults to speak for compatibility with existing inject.message producers. */
|
|
438
|
+
readonly mode?: "speak" | "context";
|
|
439
|
+
}
|
|
440
|
+
export interface DisconnectRequestedPacket extends VoicePacket {
|
|
441
|
+
readonly kind: "session.disconnect";
|
|
442
|
+
readonly reason: string;
|
|
443
|
+
}
|
|
444
|
+
export interface ModeSwitchRequestedPacket extends VoicePacket {
|
|
445
|
+
readonly kind: "mode.switch_requested";
|
|
446
|
+
readonly mode: "text" | "audio";
|
|
447
|
+
}
|
|
448
|
+
export interface ModeSwitchCompletedPacket extends VoicePacket {
|
|
449
|
+
readonly kind: "mode.switch_completed";
|
|
450
|
+
readonly mode: "text" | "audio";
|
|
451
|
+
}
|
|
452
|
+
export interface MessageCreatePacket extends VoicePacket {
|
|
453
|
+
readonly kind: "message.create";
|
|
454
|
+
readonly role: "user" | "assistant" | "system";
|
|
455
|
+
readonly text: string;
|
|
456
|
+
}
|
|
457
|
+
export interface ConversationMetricPacket extends VoicePacket {
|
|
458
|
+
readonly kind: "metric.conversation";
|
|
459
|
+
readonly name: string;
|
|
460
|
+
readonly value: string;
|
|
461
|
+
}
|
|
462
|
+
export type AcousticSignal = "prosody" | "backchannel" | "interruption" | "primary_speaker" | "echo_rejected" | "cadence";
|
|
463
|
+
export interface AcousticSignalPacket extends VoicePacket {
|
|
464
|
+
readonly kind: "acoustic.signal";
|
|
465
|
+
readonly signal: AcousticSignal;
|
|
466
|
+
readonly payload?: Readonly<Record<string, unknown>>;
|
|
467
|
+
}
|
|
468
|
+
export type TurnLocalizationVerdict = "infrastructure" | "conversation" | "none";
|
|
469
|
+
export interface TurnLocalizationPacket extends VoicePacket {
|
|
470
|
+
readonly kind: "turn.localization";
|
|
471
|
+
readonly value: TurnLocalizationVerdict;
|
|
472
|
+
readonly infrastructureBreached: boolean;
|
|
473
|
+
readonly conversationFlagged: boolean;
|
|
474
|
+
}
|
|
475
|
+
/** The pipeline stage that consumed resources. Billing planes group cost by this. */
|
|
476
|
+
export type UsageStage = "llm" | "stt" | "tts";
|
|
477
|
+
/**
|
|
478
|
+
* One unit of billable resource consumption, recorded where it happens.
|
|
479
|
+
*
|
|
480
|
+
* The full shape is defined up front — LLM tokens, STT audio-seconds, TTS characters —
|
|
481
|
+
* so a producer added later needs no schema change; only the LLM producer is wired today
|
|
482
|
+
* (the AI SDK finish part carries usage the bridge had been dropping). `VoiceAgentSession`
|
|
483
|
+
* accumulates these into an end-of-session `session.usage` manifest and exports them as
|
|
484
|
+
* counters — the load-bearing seam for metering, spend caps, and eventual per-tenant billing.
|
|
485
|
+
* Fields not applicable to a stage are simply absent (tokens on STT/TTS, seconds on LLM).
|
|
486
|
+
*/
|
|
487
|
+
export interface UsageRecordedPacket extends VoicePacket {
|
|
488
|
+
readonly kind: "usage.recorded";
|
|
489
|
+
readonly stage: UsageStage;
|
|
490
|
+
readonly provider?: string;
|
|
491
|
+
readonly model?: string;
|
|
492
|
+
readonly inputTokens?: number;
|
|
493
|
+
readonly outputTokens?: number;
|
|
494
|
+
readonly totalTokens?: number;
|
|
495
|
+
readonly cachedInputTokens?: number;
|
|
496
|
+
readonly reasoningTokens?: number;
|
|
497
|
+
readonly audioSeconds?: number;
|
|
498
|
+
readonly characters?: number;
|
|
499
|
+
}
|
|
500
|
+
export type TurnBoundaryKind = "user_started_speaking" | "user_stopped_speaking" | "agent_thinking" | "agent_started_speaking" | "agent_audio_done" | "interruption";
|
|
501
|
+
export interface TurnBoundaryEventPacket extends VoicePacket {
|
|
502
|
+
readonly kind: "obs.turn_boundary";
|
|
503
|
+
readonly boundary: TurnBoundaryKind;
|
|
504
|
+
readonly sessionId: string;
|
|
505
|
+
readonly speechId: string;
|
|
506
|
+
readonly requestId?: string;
|
|
507
|
+
/** Monotonic ms (performance.timeOrigin + performance.now()) — immune to wall-clock jumps. */
|
|
508
|
+
readonly monotonicMs: number;
|
|
509
|
+
readonly provider?: string;
|
|
510
|
+
readonly model?: string;
|
|
511
|
+
readonly region?: string;
|
|
512
|
+
readonly cancelled?: boolean;
|
|
513
|
+
}
|
|
514
|
+
export interface PipelineErrorPacket extends VoicePacket, VoiceErrorPacket {
|
|
515
|
+
readonly kind: "pipeline.error";
|
|
516
|
+
readonly component: "pipeline";
|
|
517
|
+
}
|
|
518
|
+
/** All input pipeline packets. */
|
|
519
|
+
export type InputPacket = UserAudioReceivedPacket | UserTextReceivedPacket | DenoiseAudioPacket | DenoisedAudioPacket | VadAudioPacket | VadSpeechStartedPacket | VadSpeechEndedPacket | VadSpeechActivityPacket | SpeechToTextAudioPacket | SttInterimPacket | SttPartialPacket | SttResultPacket | FinalizeSttPacket | SttReconfigurePacket | SttErrorPacket | EndOfSpeechAudioPacket | EndOfSpeechPacket | InterimEndOfSpeechPacket | EndOfSpeechRetractedPacket | UserInputPacket;
|
|
520
|
+
/** All interruption packets (Critical route). */
|
|
521
|
+
export type InterruptPacket = InterruptionDetectedPacket | InterruptTtsPacket | InterruptLlmPacket | InterruptSttPacket | TurnChangePacket;
|
|
522
|
+
/** All LLM output packets. */
|
|
523
|
+
export type LlmPacket = LlmDeltaPacket | LlmResponseDonePacket | LlmErrorPacket | LlmToolCallPacket | LlmToolResultPacket | ReasoningSuspendedPacket | ReasoningResumePacket;
|
|
524
|
+
/** All TTS output packets. */
|
|
525
|
+
export type TtsPacket = TextToSpeechTextPacket | TextToSpeechDonePacket | TextToSpeechAudioPacket | TextToSpeechEndPacket | TextToSpeechPlayoutStartedPacket | TextToSpeechPlayoutProgressPacket | TextToSpeechWordTimestampsPacket | TtsErrorPacket;
|
|
526
|
+
/** All error packets (any component). */
|
|
527
|
+
export type AnyErrorPacket = SttErrorPacket | TtsErrorPacket | LlmErrorPacket | PipelineErrorPacket | InitializationFailedPacket;
|
|
528
|
+
/** Observability packets (Background route). */
|
|
529
|
+
export type ObservabilityPacket = ConversationMetricPacket | TurnBoundaryEventPacket | UsageRecordedPacket | AcousticSignalPacket | TurnLocalizationPacket;
|
|
530
|
+
/** Delegate (Responder-Thinker) lifecycle packets (Background route). */
|
|
531
|
+
export type DelegatePacket = DelegateQueryPacket | DelegateResultPacket;
|
|
532
|
+
//# sourceMappingURL=packets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packets.d.ts","sourceRoot":"","sources":["../src/packets.ts"],"names":[],"mappings":"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"}
|
package/dist/packets.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
//
|
|
3
|
+
// Syrinx Kernel v2 — Packet Type Definitions
|
|
4
|
+
//
|
|
5
|
+
// Every packet flowing through the PipelineBus uses these types.
|
|
6
|
+
// Naming convention:
|
|
7
|
+
// Commands (verb-first): InterruptTts, DenoiseAudio, ExecuteLlm
|
|
8
|
+
// Events (past-tense): VadSpeechStarted, SttResult, LlmResponseDelta
|
|
9
|
+
// Errors: SttError, TtsError, LlmError
|
|
10
|
+
// Lifecycle: InitStepCompleted, InitFailed, InitCompleted
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Error Types
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/** Categorized error types across all external-service components. */
|
|
15
|
+
export var ErrorCategory;
|
|
16
|
+
(function (ErrorCategory) {
|
|
17
|
+
ErrorCategory["RateLimit"] = "rate_limit";
|
|
18
|
+
ErrorCategory["NetworkTimeout"] = "network_timeout";
|
|
19
|
+
ErrorCategory["Authentication"] = "authentication";
|
|
20
|
+
ErrorCategory["InvalidInput"] = "invalid_input";
|
|
21
|
+
ErrorCategory["InternalFault"] = "internal_fault";
|
|
22
|
+
ErrorCategory["ResourceExhausted"] = "resource_exhausted";
|
|
23
|
+
})(ErrorCategory || (ErrorCategory = {}));
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// Lifecycle Types
|
|
26
|
+
// =============================================================================
|
|
27
|
+
export var SessionState;
|
|
28
|
+
(function (SessionState) {
|
|
29
|
+
SessionState["Uninitialized"] = "uninitialized";
|
|
30
|
+
SessionState["Initializing"] = "initializing";
|
|
31
|
+
SessionState["Ready"] = "ready";
|
|
32
|
+
SessionState["Finalizing"] = "finalizing";
|
|
33
|
+
SessionState["Closed"] = "closed";
|
|
34
|
+
SessionState["Failed"] = "failed";
|
|
35
|
+
})(SessionState || (SessionState = {}));
|
|
36
|
+
export var InitStage;
|
|
37
|
+
(function (InitStage) {
|
|
38
|
+
InitStage["Assistant"] = "assistant";
|
|
39
|
+
InitStage["Conversation"] = "conversation";
|
|
40
|
+
InitStage["Recorder"] = "recorder";
|
|
41
|
+
InitStage["Normalizer"] = "normalizer";
|
|
42
|
+
InitStage["Auth"] = "auth";
|
|
43
|
+
InitStage["STT"] = "stt";
|
|
44
|
+
InitStage["TTS"] = "tts";
|
|
45
|
+
InitStage["VAD"] = "vad";
|
|
46
|
+
InitStage["EOS"] = "eos";
|
|
47
|
+
InitStage["Denoiser"] = "denoiser";
|
|
48
|
+
InitStage["Behavior"] = "behavior";
|
|
49
|
+
InitStage["Telemetry"] = "telemetry";
|
|
50
|
+
})(InitStage || (InitStage = {}));
|
|
51
|
+
//# sourceMappingURL=packets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packets.js","sourceRoot":"","sources":["../src/packets.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,iEAAiE;AACjE,qBAAqB;AACrB,mEAAmE;AACnE,0EAA0E;AAC1E,yDAAyD;AACzD,yEAAyE;AAwBzE,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,sEAAsE;AACtE,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,yCAAwB,CAAA;IACxB,mDAAkC,CAAA;IAClC,kDAAiC,CAAA;IACjC,+CAA8B,CAAA;IAC9B,iDAAgC,CAAA;IAChC,yDAAwC,CAAA;AAC1C,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAaD,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+CAA+B,CAAA;IAC/B,6CAA6B,CAAA;IAC7B,+BAAe,CAAA;IACf,yCAAyB,CAAA;IACzB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;AACnB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED,MAAM,CAAN,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,0CAA6B,CAAA;IAC7B,kCAAqB,CAAA;IACrB,sCAAyB,CAAA;IACzB,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;IACrB,oCAAuB,CAAA;AACzB,CAAC,EAbW,SAAS,KAAT,SAAS,QAapB"}
|