@llmrtc/llmrtc-core 1.0.0 → 1.1.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/CHANGELOG.md +29 -0
- package/NOTICE +7 -0
- package/dist/hooks.d.ts +10 -6
- package/dist/hooks.js +3 -1
- package/dist/hooks.js.map +1 -1
- package/dist/logging-hooks.js +6 -1
- package/dist/logging-hooks.js.map +1 -1
- package/dist/orchestrator.d.ts +10 -7
- package/dist/orchestrator.js +142 -86
- package/dist/orchestrator.js.map +1 -1
- package/dist/playbook-engine.d.ts +6 -0
- package/dist/playbook-engine.js +8 -4
- package/dist/playbook-engine.js.map +1 -1
- package/dist/playbook-orchestrator.d.ts +22 -1
- package/dist/playbook-orchestrator.js +135 -28
- package/dist/playbook-orchestrator.js.map +1 -1
- package/dist/tool-executor.d.ts +0 -4
- package/dist/tool-executor.js +58 -43
- package/dist/tool-executor.js.map +1 -1
- package/dist/tools.d.ts +10 -2
- package/dist/tools.js +73 -26
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/package.json +13 -5
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @llmrtc/llmrtc-core
|
|
2
|
+
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8ff3ea3: Correctness release: make the advertised behavior actually work end to end.
|
|
8
|
+
- Core: system prompt is always sent and pinned outside the history window;
|
|
9
|
+
runTurnStream accepts an AbortSignal (barge-in); onLLMEnd has real
|
|
10
|
+
guardrail semantics; concurrent turns serialize correctly; clearHistory
|
|
11
|
+
transitions clear conversation history; PlaybookHooks are wired; tool
|
|
12
|
+
executor abort/ordering fixes; deep tool-argument validation.
|
|
13
|
+
- Providers: multi-turn tool calling now works across OpenAI, Anthropic,
|
|
14
|
+
Gemini, Bedrock, OpenRouter, LMStudio, and Ollama (history replay,
|
|
15
|
+
parallel tool results, streaming accumulation); malformed tool arguments
|
|
16
|
+
are flagged instead of silently becoming {}; Bedrock defaults to an
|
|
17
|
+
invocable inference profile; Ollama NDJSON streaming is buffered
|
|
18
|
+
correctly; ElevenLabs format mapping fixed; Whisper uploads are named by
|
|
19
|
+
their actual container.
|
|
20
|
+
- Backend: turns serialize per connection and barge-in aborts the in-flight
|
|
21
|
+
turn in any phase; session reconnection binds the recovered history;
|
|
22
|
+
Metered TURN credentials refresh on a TTL; start()/stop() lifecycle
|
|
23
|
+
fixes; real-time audio pacing.
|
|
24
|
+
- Web client: vision frames are delivered in time to reach the turn;
|
|
25
|
+
session resume follows the protocol and actually restores history;
|
|
26
|
+
close()/failure releases the microphone and camera; frame capture works
|
|
27
|
+
outside Chromium; non-WebRTC fallback (sendAudio/ttsChunk) is usable.
|
|
28
|
+
- Packaging: packages resolve under require(), clean checkouts build first
|
|
29
|
+
try, and npm tarballs ship the NOTICE file.
|
package/NOTICE
ADDED
package/dist/hooks.d.ts
CHANGED
|
@@ -123,8 +123,12 @@ export interface OrchestratorHooks {
|
|
|
123
123
|
*/
|
|
124
124
|
onLLMChunk?(ctx: TurnContext, chunk: LLMChunk, chunkIndex: number): void | Promise<void>;
|
|
125
125
|
/**
|
|
126
|
-
* Called when LLM inference completes successfully
|
|
127
|
-
* Use this hook for content guardrails
|
|
126
|
+
* Called when LLM inference completes successfully.
|
|
127
|
+
* Use this hook for content guardrails: throwing cancels the response -
|
|
128
|
+
* it is not committed to history, no further TTS is produced, and the
|
|
129
|
+
* turn fails with the thrown error. Note that with streaming TTS enabled,
|
|
130
|
+
* audio for sentences generated before the hook ran may already have been
|
|
131
|
+
* emitted.
|
|
128
132
|
* @param ctx - Turn context
|
|
129
133
|
* @param result - Complete LLM response
|
|
130
134
|
* @param timing - LLM operation duration
|
|
@@ -264,9 +268,7 @@ export interface PlaybookContext {
|
|
|
264
268
|
*
|
|
265
269
|
* @example
|
|
266
270
|
* ```typescript
|
|
267
|
-
* const orchestrator = new PlaybookOrchestrator({
|
|
268
|
-
* llm,
|
|
269
|
-
* playbook,
|
|
271
|
+
* const orchestrator = new PlaybookOrchestrator(llm, playbook, registry, {
|
|
270
272
|
* hooks: {
|
|
271
273
|
* onStageEnter(ctx, stage) {
|
|
272
274
|
* console.log(`Entered stage: ${stage.name}`);
|
|
@@ -338,7 +340,9 @@ export declare function createErrorContext(code: ErrorCode, component: ErrorCont
|
|
|
338
340
|
}): ErrorContext;
|
|
339
341
|
/**
|
|
340
342
|
* Safely call an async hook without blocking
|
|
341
|
-
* Errors are caught and logged but don't propagate
|
|
343
|
+
* Errors are caught and logged but don't propagate.
|
|
344
|
+
* Note: orchestrators intentionally do NOT use this for onLLMEnd - that hook
|
|
345
|
+
* has guardrail semantics and a throw from it aborts the turn.
|
|
342
346
|
* @param hook - The hook function to call
|
|
343
347
|
* @param args - Arguments to pass to the hook
|
|
344
348
|
*/
|
package/dist/hooks.js
CHANGED
|
@@ -34,7 +34,9 @@ export function createErrorContext(code, component, options) {
|
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Safely call an async hook without blocking
|
|
37
|
-
* Errors are caught and logged but don't propagate
|
|
37
|
+
* Errors are caught and logged but don't propagate.
|
|
38
|
+
* Note: orchestrators intentionally do NOT use this for onLLMEnd - that hook
|
|
39
|
+
* has guardrail semantics and a throw from it aborts the turn.
|
|
38
40
|
* @param hook - The hook function to call
|
|
39
41
|
* @param args - Arguments to pass to the hook
|
|
40
42
|
*/
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+YH,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,OAAe;IACjE,OAAO;QACL,SAAS;QACT,OAAO;QACP,UAAU,EAAE,OAAO,GAAG,SAAS;KAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,SAAoC,EACpC,OAIC;IAED,OAAO;QACL,IAAI;QACJ,SAAS;QACT,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAwD,EACxD,GAAG,IAAO;IAEV,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
package/dist/logging-hooks.js
CHANGED
|
@@ -90,7 +90,12 @@ export function createLoggingHooks(config = {}) {
|
|
|
90
90
|
logger.debug(formatted);
|
|
91
91
|
break;
|
|
92
92
|
case 'info':
|
|
93
|
-
|
|
93
|
+
if (logger.info) {
|
|
94
|
+
logger.info(formatted);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
logger.log(formatted);
|
|
98
|
+
}
|
|
94
99
|
break;
|
|
95
100
|
case 'warn':
|
|
96
101
|
logger.warn(formatted);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging-hooks.js","sourceRoot":"","sources":["../src/logging-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA8DH,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,eAAe,GAA6B;IAChD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAS,SAAS,CAAC,WAAqB,EAAE,YAAsB;IAC9D,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AACvE,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAA6B,EAAE;IAE/B,MAAM,EACJ,MAAM,GAAG,OAAO,EAChB,KAAK,GAAG,MAAM,EACd,eAAe,GAAG,KAAK,EACvB,MAAM,GAAG,UAAU,EACnB,gBAAgB,GAAG,IAAI,EACxB,GAAG,MAAM,CAAC;IAEX,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,IAA8B,EAAU,EAAE;QAC5E,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,GAAG,SAAS,GAAG,MAAM,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;IACtD,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,YAAsB,EAAE,OAAe,EAAE,IAA8B,EAAE,EAAE;QACtF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;YAAE,OAAO;QAE5C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"logging-hooks.js","sourceRoot":"","sources":["../src/logging-hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -45,7 +45,10 @@ export declare class ConversationOrchestrator {
|
|
|
45
45
|
*
|
|
46
46
|
* Hooks and metrics are called throughout the turn lifecycle.
|
|
47
47
|
*/
|
|
48
|
-
runTurnStream(audio: Buffer, attachments?: VisionAttachment[]
|
|
48
|
+
runTurnStream(audio: Buffer, attachments?: VisionAttachment[], options?: {
|
|
49
|
+
signal?: AbortSignal;
|
|
50
|
+
}): AsyncGenerator<OrchestratorYield, void, unknown>;
|
|
51
|
+
private runTurnStreamInternal;
|
|
49
52
|
/**
|
|
50
53
|
* Split text into sentences using custom chunker or default regex
|
|
51
54
|
*/
|
|
@@ -60,14 +63,14 @@ export declare class ConversationOrchestrator {
|
|
|
60
63
|
*/
|
|
61
64
|
private generateTTSWithHooks;
|
|
62
65
|
/**
|
|
63
|
-
*
|
|
64
|
-
* Stream TTS chunks for a sentence using PCM format.
|
|
66
|
+
* Ensure the system prompt is seeded as the first history message.
|
|
65
67
|
*/
|
|
66
|
-
private
|
|
68
|
+
private ensureSystemMessage;
|
|
67
69
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
+
* Build the message window for an LLM request.
|
|
71
|
+
* The system message is always included and does not consume history slots,
|
|
72
|
+
* so long conversations never lose the assistant's instructions.
|
|
70
73
|
*/
|
|
71
|
-
private
|
|
74
|
+
private buildRequestMessages;
|
|
72
75
|
private pushHistory;
|
|
73
76
|
}
|
package/dist/orchestrator.js
CHANGED
|
@@ -100,12 +100,10 @@ export class ConversationOrchestrator {
|
|
|
100
100
|
content: transcript.text,
|
|
101
101
|
attachments: attachments.length ? attachments : undefined
|
|
102
102
|
};
|
|
103
|
-
|
|
104
|
-
this.history.push({ role: 'system', content: this.systemPrompt });
|
|
105
|
-
}
|
|
103
|
+
this.ensureSystemMessage();
|
|
106
104
|
this.pushHistory(userMessage);
|
|
107
105
|
const llmRequest = {
|
|
108
|
-
messages: this.
|
|
106
|
+
messages: this.buildRequestMessages(),
|
|
109
107
|
config: {
|
|
110
108
|
systemPrompt: this.systemPrompt,
|
|
111
109
|
historyLimit: this.historyLimit,
|
|
@@ -132,7 +130,8 @@ export class ConversationOrchestrator {
|
|
|
132
130
|
*
|
|
133
131
|
* Hooks and metrics are called throughout the turn lifecycle.
|
|
134
132
|
*/
|
|
135
|
-
async *runTurnStream(audio, attachments = []) {
|
|
133
|
+
async *runTurnStream(audio, attachments = [], options) {
|
|
134
|
+
const signal = options?.signal;
|
|
136
135
|
// Generate turn context
|
|
137
136
|
const turnStartTime = Date.now();
|
|
138
137
|
const ctx = {
|
|
@@ -140,6 +139,31 @@ export class ConversationOrchestrator {
|
|
|
140
139
|
sessionId: this.sessionId,
|
|
141
140
|
startTime: turnStartTime
|
|
142
141
|
};
|
|
142
|
+
let errored = false;
|
|
143
|
+
let turnEnded = false;
|
|
144
|
+
const endTurn = async () => {
|
|
145
|
+
if (turnEnded)
|
|
146
|
+
return;
|
|
147
|
+
turnEnded = true;
|
|
148
|
+
const turnTiming = createTimingInfo(turnStartTime, Date.now());
|
|
149
|
+
this.metrics.timing(MetricNames.TURN_DURATION, turnTiming.durationMs);
|
|
150
|
+
await callHookSafe(this.hooks.onTurnEnd, ctx, turnTiming);
|
|
151
|
+
};
|
|
152
|
+
try {
|
|
153
|
+
yield* this.runTurnStreamInternal(ctx, audio, attachments, signal, () => {
|
|
154
|
+
errored = true;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
// Runs on normal completion, barge-in abort, and consumer abandonment,
|
|
159
|
+
// so turn metrics and onTurnEnd are never skipped. Errors keep the
|
|
160
|
+
// previous semantics: the turn ends without onTurnEnd.
|
|
161
|
+
if (!errored) {
|
|
162
|
+
await endTurn();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async *runTurnStreamInternal(ctx, audio, attachments, signal, markErrored) {
|
|
143
167
|
// Call onTurnStart hook
|
|
144
168
|
await callHookSafe(this.hooks.onTurnStart, ctx, audio);
|
|
145
169
|
// -------------------------------------------------------------------------
|
|
@@ -160,12 +184,22 @@ export class ConversationOrchestrator {
|
|
|
160
184
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
161
185
|
await callHookSafe(this.hooks.onSTTError, ctx, err);
|
|
162
186
|
this.metrics.increment(MetricNames.ERRORS, 1, { component: 'stt' });
|
|
187
|
+
markErrored();
|
|
163
188
|
throw error;
|
|
164
189
|
}
|
|
165
|
-
this.pushHistory({ role: 'user', content: transcript.text, attachments: attachments.length ? attachments : undefined });
|
|
166
190
|
yield transcript;
|
|
191
|
+
// Empty transcript guard: VAD misfires and silent audio produce empty
|
|
192
|
+
// text - don't burn an LLM/TTS round trip or pollute history with it.
|
|
193
|
+
if (!transcript.text.trim()) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (signal?.aborted) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
this.ensureSystemMessage();
|
|
200
|
+
this.pushHistory({ role: 'user', content: transcript.text, attachments: attachments.length ? attachments : undefined });
|
|
167
201
|
const llmRequest = {
|
|
168
|
-
messages: this.
|
|
202
|
+
messages: this.buildRequestMessages(),
|
|
169
203
|
config: {
|
|
170
204
|
systemPrompt: this.systemPrompt,
|
|
171
205
|
historyLimit: this.historyLimit,
|
|
@@ -183,28 +217,38 @@ export class ConversationOrchestrator {
|
|
|
183
217
|
let llmFirstChunkTime;
|
|
184
218
|
// Non-streaming LLM fallback
|
|
185
219
|
if (!this.providers.llm.stream) {
|
|
220
|
+
let llm;
|
|
221
|
+
let llmTiming;
|
|
186
222
|
try {
|
|
187
|
-
|
|
188
|
-
|
|
223
|
+
llm = await this.providers.llm.complete(llmRequest);
|
|
224
|
+
llmTiming = createTimingInfo(llmStartTime, Date.now());
|
|
189
225
|
this.metrics.timing(MetricNames.LLM_DURATION, llmTiming.durationMs, {
|
|
190
226
|
provider: this.providers.llm.name
|
|
191
227
|
});
|
|
192
|
-
await callHookSafe(this.hooks.onLLMEnd, ctx, llm, llmTiming);
|
|
193
|
-
this.pushHistory({ role: 'assistant', content: llm.fullText });
|
|
194
|
-
yield llm;
|
|
195
|
-
yield* this.generateTTSWithHooks(ctx, llm.fullText);
|
|
196
|
-
// Turn complete
|
|
197
|
-
const turnTiming = createTimingInfo(turnStartTime, Date.now());
|
|
198
|
-
this.metrics.timing(MetricNames.TURN_DURATION, turnTiming.durationMs);
|
|
199
|
-
await callHookSafe(this.hooks.onTurnEnd, ctx, turnTiming);
|
|
200
|
-
return;
|
|
201
228
|
}
|
|
202
229
|
catch (error) {
|
|
203
230
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
204
231
|
await callHookSafe(this.hooks.onLLMError, ctx, err);
|
|
205
232
|
this.metrics.increment(MetricNames.ERRORS, 1, { component: 'llm' });
|
|
233
|
+
markErrored();
|
|
206
234
|
throw error;
|
|
207
235
|
}
|
|
236
|
+
// Guardrail: a throw from onLLMEnd cancels the response - it is not
|
|
237
|
+
// committed to history and no TTS is produced.
|
|
238
|
+
try {
|
|
239
|
+
await this.hooks.onLLMEnd?.(ctx, llm, llmTiming);
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
markErrored();
|
|
243
|
+
throw error;
|
|
244
|
+
}
|
|
245
|
+
this.pushHistory({ role: 'assistant', content: llm.fullText });
|
|
246
|
+
yield llm;
|
|
247
|
+
if (signal?.aborted) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
yield* this.generateTTSWithHooks(ctx, llm.fullText);
|
|
251
|
+
return;
|
|
208
252
|
}
|
|
209
253
|
// Check if we can do streaming TTS (requires config enabled AND provider support)
|
|
210
254
|
const canStreamTTS = this.streamingTTS && !!this.providers.tts.speakStream;
|
|
@@ -212,11 +256,16 @@ export class ConversationOrchestrator {
|
|
|
212
256
|
let pendingText = '';
|
|
213
257
|
let ttsStarted = false;
|
|
214
258
|
let chunkIndex = 0;
|
|
215
|
-
|
|
259
|
+
let ttsStartTime;
|
|
260
|
+
let aborted = false;
|
|
216
261
|
try {
|
|
217
262
|
for await (const chunk of this.providers.llm.stream(llmRequest)) {
|
|
263
|
+
if (signal?.aborted) {
|
|
264
|
+
aborted = true;
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
218
267
|
// Track time to first token
|
|
219
|
-
if (
|
|
268
|
+
if (llmFirstChunkTime === undefined && chunk.content) {
|
|
220
269
|
llmFirstChunkTime = Date.now();
|
|
221
270
|
this.metrics.timing(MetricNames.LLM_TTFT, llmFirstChunkTime - llmStartTime, {
|
|
222
271
|
provider: this.providers.llm.name
|
|
@@ -239,37 +288,62 @@ export class ConversationOrchestrator {
|
|
|
239
288
|
const completeSentences = sentences.slice(0, -1);
|
|
240
289
|
pendingText = sentences[sentences.length - 1];
|
|
241
290
|
for (const completeSentence of completeSentences) {
|
|
291
|
+
if (signal?.aborted) {
|
|
292
|
+
aborted = true;
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
242
295
|
if (completeSentence.trim()) {
|
|
243
296
|
// Signal TTS start on first sentence
|
|
244
297
|
if (!ttsStarted) {
|
|
245
298
|
ttsStarted = true;
|
|
299
|
+
ttsStartTime = Date.now();
|
|
246
300
|
await callHookSafe(this.hooks.onTTSStart, ctx, completeSentence.trim());
|
|
247
301
|
yield { type: 'tts-start' };
|
|
248
302
|
}
|
|
249
303
|
// Stream TTS for this sentence
|
|
250
|
-
yield* this.streamTTSChunksWithHooks(ctx, completeSentence.trim());
|
|
304
|
+
yield* this.streamTTSChunksWithHooks(ctx, completeSentence.trim(), signal);
|
|
251
305
|
}
|
|
252
306
|
}
|
|
307
|
+
if (aborted) {
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
253
310
|
}
|
|
254
311
|
}
|
|
255
312
|
}
|
|
256
|
-
// LLM complete
|
|
257
|
-
const llmEndTime = Date.now();
|
|
258
|
-
const llmTiming = createTimingInfo(llmStartTime, llmEndTime);
|
|
259
|
-
this.metrics.timing(MetricNames.LLM_DURATION, llmTiming.durationMs, {
|
|
260
|
-
provider: this.providers.llm.name
|
|
261
|
-
});
|
|
262
|
-
const llmResult = { fullText: assembled };
|
|
263
|
-
await callHookSafe(this.hooks.onLLMEnd, ctx, llmResult, llmTiming);
|
|
264
|
-
this.pushHistory({ role: 'assistant', content: assembled });
|
|
265
|
-
yield llmResult;
|
|
266
313
|
}
|
|
267
314
|
catch (error) {
|
|
268
315
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
269
316
|
await callHookSafe(this.hooks.onLLMError, ctx, err);
|
|
270
317
|
this.metrics.increment(MetricNames.ERRORS, 1, { component: 'llm' });
|
|
318
|
+
markErrored();
|
|
271
319
|
throw error;
|
|
272
320
|
}
|
|
321
|
+
// LLM complete (or interrupted)
|
|
322
|
+
const llmTiming = createTimingInfo(llmStartTime, Date.now());
|
|
323
|
+
this.metrics.timing(MetricNames.LLM_DURATION, llmTiming.durationMs, {
|
|
324
|
+
provider: this.providers.llm.name
|
|
325
|
+
});
|
|
326
|
+
if (aborted) {
|
|
327
|
+
// Barge-in: commit what was generated so far so history reflects what
|
|
328
|
+
// the user (partially) heard, then stop without further TTS.
|
|
329
|
+
if (assembled) {
|
|
330
|
+
this.pushHistory({ role: 'assistant', content: assembled });
|
|
331
|
+
}
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const llmResult = { fullText: assembled };
|
|
335
|
+
// Guardrail: a throw from onLLMEnd cancels the response - it is not
|
|
336
|
+
// committed to history and no further TTS is produced. (With streaming
|
|
337
|
+
// TTS, audio for earlier sentences may already have been emitted.)
|
|
338
|
+
try {
|
|
339
|
+
await this.hooks.onLLMEnd?.(ctx, llmResult, llmTiming);
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
markErrored();
|
|
343
|
+
throw error;
|
|
344
|
+
}
|
|
345
|
+
this.pushHistory({ role: 'assistant', content: assembled });
|
|
346
|
+
yield llmResult;
|
|
273
347
|
// -------------------------------------------------------------------------
|
|
274
348
|
// TTS Phase (remaining text)
|
|
275
349
|
// -------------------------------------------------------------------------
|
|
@@ -277,17 +351,18 @@ export class ConversationOrchestrator {
|
|
|
277
351
|
// Handle remaining text after LLM completes
|
|
278
352
|
if (canStreamTTS) {
|
|
279
353
|
const remainingText = pendingText.trim();
|
|
280
|
-
if (remainingText) {
|
|
354
|
+
if (remainingText && !signal?.aborted) {
|
|
281
355
|
if (!ttsStarted) {
|
|
282
356
|
ttsStarted = true;
|
|
357
|
+
ttsStartTime = Date.now();
|
|
283
358
|
await callHookSafe(this.hooks.onTTSStart, ctx, remainingText);
|
|
284
359
|
yield { type: 'tts-start' };
|
|
285
360
|
}
|
|
286
|
-
yield* this.streamTTSChunksWithHooks(ctx, remainingText);
|
|
361
|
+
yield* this.streamTTSChunksWithHooks(ctx, remainingText, signal);
|
|
287
362
|
}
|
|
288
363
|
// Signal TTS complete
|
|
289
364
|
if (ttsStarted) {
|
|
290
|
-
const ttsTiming = createTimingInfo(ttsStartTime, Date.now());
|
|
365
|
+
const ttsTiming = createTimingInfo(ttsStartTime ?? llmStartTime, Date.now());
|
|
291
366
|
this.metrics.timing(MetricNames.TTS_DURATION, ttsTiming.durationMs, {
|
|
292
367
|
provider: this.providers.tts.name
|
|
293
368
|
});
|
|
@@ -295,7 +370,7 @@ export class ConversationOrchestrator {
|
|
|
295
370
|
yield { type: 'tts-complete' };
|
|
296
371
|
}
|
|
297
372
|
}
|
|
298
|
-
else {
|
|
373
|
+
else if (!signal?.aborted) {
|
|
299
374
|
// Fallback to non-streaming TTS
|
|
300
375
|
yield* this.generateTTSWithHooks(ctx, assembled);
|
|
301
376
|
}
|
|
@@ -304,12 +379,9 @@ export class ConversationOrchestrator {
|
|
|
304
379
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
305
380
|
await callHookSafe(this.hooks.onTTSError, ctx, err);
|
|
306
381
|
this.metrics.increment(MetricNames.ERRORS, 1, { component: 'tts' });
|
|
382
|
+
markErrored();
|
|
307
383
|
throw error;
|
|
308
384
|
}
|
|
309
|
-
// Turn complete
|
|
310
|
-
const turnTiming = createTimingInfo(turnStartTime, Date.now());
|
|
311
|
-
this.metrics.timing(MetricNames.TURN_DURATION, turnTiming.durationMs);
|
|
312
|
-
await callHookSafe(this.hooks.onTurnEnd, ctx, turnTiming);
|
|
313
385
|
}
|
|
314
386
|
/**
|
|
315
387
|
* Split text into sentences using custom chunker or default regex
|
|
@@ -336,26 +408,37 @@ export class ConversationOrchestrator {
|
|
|
336
408
|
* Stream TTS chunks for a sentence using PCM format with hooks.
|
|
337
409
|
* Yields TTSChunk events as audio data arrives.
|
|
338
410
|
*/
|
|
339
|
-
async *streamTTSChunksWithHooks(ctx, text) {
|
|
411
|
+
async *streamTTSChunksWithHooks(ctx, text, signal) {
|
|
340
412
|
if (!this.providers.tts.speakStream)
|
|
341
413
|
return;
|
|
414
|
+
const sampleRate = this.providers.tts.pcmSampleRate ?? 24000;
|
|
342
415
|
let chunkIndex = 0;
|
|
416
|
+
let emittedChunks = false;
|
|
343
417
|
try {
|
|
344
418
|
for await (const audioChunk of this.providers.tts.speakStream(text, { format: 'pcm' })) {
|
|
419
|
+
if (signal?.aborted) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
345
422
|
const ttsChunk = {
|
|
346
423
|
type: 'tts-chunk',
|
|
347
424
|
audio: audioChunk,
|
|
348
425
|
format: 'pcm',
|
|
349
|
-
sampleRate
|
|
426
|
+
sampleRate,
|
|
350
427
|
sentence: text
|
|
351
428
|
};
|
|
352
429
|
await callHookSafe(this.hooks.onTTSChunk, ctx, ttsChunk, chunkIndex);
|
|
353
430
|
chunkIndex++;
|
|
431
|
+
emittedChunks = true;
|
|
354
432
|
yield ttsChunk;
|
|
355
433
|
}
|
|
356
434
|
}
|
|
357
435
|
catch (err) {
|
|
358
436
|
this.logger.error?.('[orchestrator] TTS stream error:', err);
|
|
437
|
+
if (emittedChunks) {
|
|
438
|
+
// Part of this sentence was already emitted; re-speaking it would
|
|
439
|
+
// duplicate audio, so surface the failure instead.
|
|
440
|
+
throw err;
|
|
441
|
+
}
|
|
359
442
|
// Fallback: try non-streaming TTS
|
|
360
443
|
try {
|
|
361
444
|
const tts = await this.providers.tts.speak(text, { format: 'pcm' });
|
|
@@ -363,7 +446,7 @@ export class ConversationOrchestrator {
|
|
|
363
446
|
type: 'tts-chunk',
|
|
364
447
|
audio: tts.audio,
|
|
365
448
|
format: 'pcm',
|
|
366
|
-
sampleRate
|
|
449
|
+
sampleRate,
|
|
367
450
|
sentence: text
|
|
368
451
|
};
|
|
369
452
|
await callHookSafe(this.hooks.onTTSChunk, ctx, ttsChunk, chunkIndex);
|
|
@@ -392,58 +475,31 @@ export class ConversationOrchestrator {
|
|
|
392
475
|
yield { type: 'tts-complete' };
|
|
393
476
|
}
|
|
394
477
|
/**
|
|
395
|
-
*
|
|
396
|
-
* Stream TTS chunks for a sentence using PCM format.
|
|
478
|
+
* Ensure the system prompt is seeded as the first history message.
|
|
397
479
|
*/
|
|
398
|
-
|
|
399
|
-
if (
|
|
400
|
-
|
|
401
|
-
try {
|
|
402
|
-
for await (const audioChunk of this.providers.tts.speakStream(text, { format: 'pcm' })) {
|
|
403
|
-
yield {
|
|
404
|
-
type: 'tts-chunk',
|
|
405
|
-
audio: audioChunk,
|
|
406
|
-
format: 'pcm',
|
|
407
|
-
sampleRate: 24000, // OpenAI/ElevenLabs PCM is 24kHz
|
|
408
|
-
sentence: text
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
catch (err) {
|
|
413
|
-
this.logger.error?.('[orchestrator] TTS stream error:', err);
|
|
414
|
-
// Fallback: try non-streaming TTS
|
|
415
|
-
try {
|
|
416
|
-
const tts = await this.providers.tts.speak(text, { format: 'pcm' });
|
|
417
|
-
yield {
|
|
418
|
-
type: 'tts-chunk',
|
|
419
|
-
audio: tts.audio,
|
|
420
|
-
format: 'pcm',
|
|
421
|
-
sampleRate: 24000,
|
|
422
|
-
sentence: text
|
|
423
|
-
};
|
|
424
|
-
}
|
|
425
|
-
catch (fallbackErr) {
|
|
426
|
-
this.logger.error?.('[orchestrator] TTS fallback also failed:', fallbackErr);
|
|
427
|
-
}
|
|
480
|
+
ensureSystemMessage() {
|
|
481
|
+
if (this.systemPrompt && this.history[0]?.role !== 'system') {
|
|
482
|
+
this.history.unshift({ role: 'system', content: this.systemPrompt });
|
|
428
483
|
}
|
|
429
484
|
}
|
|
430
485
|
/**
|
|
431
|
-
*
|
|
432
|
-
*
|
|
486
|
+
* Build the message window for an LLM request.
|
|
487
|
+
* The system message is always included and does not consume history slots,
|
|
488
|
+
* so long conversations never lose the assistant's instructions.
|
|
433
489
|
*/
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
const
|
|
437
|
-
|
|
438
|
-
|
|
490
|
+
buildRequestMessages() {
|
|
491
|
+
const hasSystem = this.history[0]?.role === 'system';
|
|
492
|
+
const conversation = hasSystem ? this.history.slice(1) : this.history;
|
|
493
|
+
const window = conversation.slice(-this.historyLimit);
|
|
494
|
+
return hasSystem ? [this.history[0], ...window] : window;
|
|
439
495
|
}
|
|
440
496
|
pushHistory(message) {
|
|
441
497
|
this.history.push(message);
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
this.history.splice(start,
|
|
498
|
+
const hasSystem = this.history[0]?.role === 'system';
|
|
499
|
+
const start = hasSystem ? 1 : 0;
|
|
500
|
+
const maxLength = this.historyLimit + 2 + start;
|
|
501
|
+
if (this.history.length > maxLength) {
|
|
502
|
+
this.history.splice(start, this.history.length - maxLength);
|
|
447
503
|
}
|
|
448
504
|
}
|
|
449
505
|
}
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAcA,OAAO,EAGL,gBAAgB,EAChB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkB,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExE,0EAA0E;AAC1E,yEAAyE;AACzE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAc5C,MAAM,OAAO,wBAAwB;IAYnC,YAA6B,MAAmC;QAApD;;;;mBAAiB,MAAM;WAA6B;QAX/C;;;;;WAAiC;QACjC;;;;mBAAqB,EAAE;WAAC;QACxB;;;;;WAAsB;QACtB;;;;;WAAqB;QACrB;;;;;WAAO;QACP;;;;;WAAsB;QACtB;;;;;WAAmB;QACnB;;;;;WAAyB;QACzB;;;;;WAAwB;QACxB;;;;;WAA6C;QAG5D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,cAAkC,EAAE;QAK/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,2BAA2B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAElE,MAAM,WAAW,GAAY;YAC3B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,UAAU,CAAC,IAAI;YACxB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC1D,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAe;YAC7B,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACrC,MAAM,EAAE;gBACN,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC;SACF,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,6BAA6B,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjE,MAAM,gBAAgB,GAAY,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/E,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEzD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,CAAC,aAAa,CAClB,KAAa,EACb,cAAkC,EAAE,EACpC,OAAkC;QAElC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAE/B,wBAAwB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,GAAG,GAAgB;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,aAAa;SACzB,CAAC;QAEF,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YACtE,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE;gBACtE,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,uEAAuE;YACvE,mEAAmE;YACnE,uDAAuD;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,qBAAqB,CAClC,GAAgB,EAChB,KAAa,EACb,WAA+B,EAC/B,MAA+B,EAC/B,WAAuB;QAEvB,wBAAwB;QACxB,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAEvD,4EAA4E;QAC5E,YAAY;QACZ,4EAA4E;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtD,IAAI,UAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE;gBAClE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;aAClC,CAAC,CAAC;YACH,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,WAAW,EAAE,CAAC;YACd,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,UAAU,CAAC;QAEjB,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAExH,MAAM,UAAU,GAAe;YAC7B,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACrC,MAAM,EAAE;gBACN,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC;YACD,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,4EAA4E;QAC5E,YAAY;QACZ,4EAA4E;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,iBAAqC,CAAC;QAE1C,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,GAAc,CAAC;YACnB,IAAI,SAAS,CAAC;YACd,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpD,SAAS,GAAG,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE;oBAClE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;iBAClC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpE,WAAW,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,+CAA+C;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,MAAM,GAAG,CAAC;YACV,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;QAE3E,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAgC,CAAC;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;gBAED,4BAA4B;gBAC5B,IAAI,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrD,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,YAAY,EAAE;wBAC1E,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC;oBAC3B,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;gBAC/B,CAAC;gBAED,sBAAsB;gBACtB,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;gBAClE,UAAU,EAAE,CAAC;gBACb,MAAM,KAAK,CAAC;gBAEZ,+DAA+D;gBAC/D,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;oBAChC,+DAA+D;oBAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBACvD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,yCAAyC;wBACzC,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACjD,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAE9C,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;4BACjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gCACpB,OAAO,GAAG,IAAI,CAAC;gCACf,MAAM;4BACR,CAAC;4BACD,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;gCAC5B,qCAAqC;gCACrC,IAAI,CAAC,UAAU,EAAE,CAAC;oCAChB,UAAU,GAAG,IAAI,CAAC;oCAClB,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oCAC1B,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;oCACxE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAc,CAAC;gCAC1C,CAAC;gCAED,+BAA+B;gCAC/B,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;4BAC7E,CAAC;wBACH,CAAC;wBACD,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,WAAW,EAAE,CAAC;YACd,MAAM,KAAK,CAAC;QACd,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE;YAClE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;SAClC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,sEAAsE;YACtE,6DAA6D;YAC7D,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAErD,oEAAoE;QACpE,uEAAuE;QACvE,mEAAmE;QACnE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC;QAEhB,4EAA4E;QAC5E,6BAA6B;QAC7B,4EAA4E;QAC5E,IAAI,CAAC;YACH,4CAA4C;YAC5C,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,aAAa,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBACtC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,UAAU,GAAG,IAAI,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC1B,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;wBAC9D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAc,CAAC;oBAC1C,CAAC;oBACD,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;gBACnE,CAAC;gBAED,sBAAsB;gBACtB,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,IAAI,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC7E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE;wBAClE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;qBAClC,CAAC,CAAC;oBACH,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;oBACxD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAiB,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC5B,gCAAgC;gBAChC,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,WAAW,EAAE,CAAC;YACd,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAY;QACrC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,sEAAsE;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5C,6DAA6D;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,CAAC,wBAAwB,CACrC,GAAgB,EAChB,IAAY,EACZ,MAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW;YAAE,OAAO;QAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC;QAC7D,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACvF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAa;oBACzB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,KAAK;oBACb,UAAU;oBACV,QAAQ,EAAE,IAAI;iBACf,CAAC;gBACF,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACrE,UAAU,EAAE,CAAC;gBACb,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM,QAAQ,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,kEAAkE;gBAClE,mDAAmD;gBACnD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,kCAAkC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAa;oBACzB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,KAAK;oBACb,UAAU;oBACV,QAAQ,EAAE,IAAI;iBACf,CAAC;gBACF,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACrE,MAAM,QAAQ,CAAC;YACjB,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,0CAA0C,EAAE,WAAW,CAAC,CAAC;gBAC7E,MAAM,WAAW,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,CAAC,oBAAoB,CACjC,GAAgB,EAChB,IAAY;QAEZ,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAc,CAAC;QAExC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,CAAC;QAEV,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE;YAClE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;SAClC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAiB,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,oBAAoB;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC;QACrD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACtE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3D,CAAC;IAEO,WAAW,CAAC,OAAgB;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC;QACrD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
|