@memberjunction/ai-openai 6.1.0-edge.6 → 6.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.
@@ -0,0 +1,297 @@
1
+ import { BaseRealtimeModel, IRealtimeSession, RealtimeSessionCapabilities, RealtimeSessionParams, RealtimeToolDefinition, RealtimeTranscript, RealtimeToolCall, RealtimeUsage, RealtimeSessionError, RealtimeReasoningPlane, RealtimeRemoteReasoning, ClientRealtimeSessionConfig, RealtimeVoiceOption } from '@memberjunction/ai';
2
+ /**
3
+ * Structural interface for the underlying WebSocket transport (Node 22+ built-in or test mock).
4
+ */
5
+ export interface ILiveWebSocketLike {
6
+ addEventListener(type: 'open', listener: () => void): void;
7
+ addEventListener(type: 'message', listener: (event: {
8
+ data: unknown;
9
+ }) => void): void;
10
+ addEventListener(type: 'error', listener: (event: {
11
+ message?: string;
12
+ error?: unknown;
13
+ }) => void): void;
14
+ addEventListener(type: 'close', listener: (event: {
15
+ code?: number;
16
+ reason?: string;
17
+ }) => void): void;
18
+ send(data: string): void;
19
+ close(code?: number, reason?: string): void;
20
+ }
21
+ /** Wire client events for OpenAI Live Realtime API. */
22
+ export type LiveClientEvent = {
23
+ event_id: string;
24
+ type: 'session.start';
25
+ session: {
26
+ model: string;
27
+ instructions?: string;
28
+ audio?: {
29
+ format?: {
30
+ type: string;
31
+ rate?: number;
32
+ };
33
+ output?: {
34
+ voice?: string;
35
+ };
36
+ };
37
+ parallel_tool_calls?: boolean;
38
+ delegation?: {
39
+ type: 'client' | 'responses';
40
+ responses?: {
41
+ model: string;
42
+ reasoning?: {
43
+ effort?: string;
44
+ };
45
+ max_output_tokens?: number;
46
+ tools?: Array<{
47
+ type: 'function';
48
+ name: string;
49
+ description?: string;
50
+ parameters?: Record<string, unknown>;
51
+ }>;
52
+ };
53
+ };
54
+ };
55
+ } | {
56
+ event_id: string;
57
+ type: 'session.input_audio.append';
58
+ audio: string;
59
+ } | {
60
+ event_id: string;
61
+ type: 'session.commentary.append';
62
+ content: string;
63
+ delegation_id: string | null;
64
+ } | {
65
+ event_id: string;
66
+ type: 'session.thinking.append';
67
+ content: string;
68
+ delegation_id: string | null;
69
+ } | {
70
+ event_id: string;
71
+ type: 'session.instructions.append';
72
+ instructions: string;
73
+ } | {
74
+ event_id: string;
75
+ type: 'response.item.create';
76
+ item: {
77
+ type: 'function_call_output';
78
+ call_id: string;
79
+ output: string;
80
+ };
81
+ } | {
82
+ event_id: string;
83
+ type: 'response.create';
84
+ } | {
85
+ event_id: string;
86
+ type: 'session.close';
87
+ };
88
+ /** Wire server events for OpenAI Live Realtime API. */
89
+ export interface LiveServerEvent {
90
+ type: string;
91
+ event_id?: string;
92
+ session_id?: string;
93
+ response_id?: string;
94
+ delta?: string;
95
+ audio?: string;
96
+ start_ms?: number;
97
+ end_ms?: number;
98
+ usage?: {
99
+ seconds?: number;
100
+ input_tokens?: number;
101
+ output_tokens?: number;
102
+ };
103
+ delegation_id?: string;
104
+ reason?: string;
105
+ error?: {
106
+ message: string;
107
+ code?: string;
108
+ client_event_id?: string;
109
+ };
110
+ event?: {
111
+ type: string;
112
+ item?: {
113
+ type?: string;
114
+ name?: string;
115
+ call_id?: string;
116
+ arguments?: string;
117
+ };
118
+ response?: {
119
+ id?: string;
120
+ usage?: {
121
+ input_tokens?: number;
122
+ output_tokens?: number;
123
+ input_token_details?: {
124
+ text_tokens?: number;
125
+ audio_tokens?: number;
126
+ cached_tokens?: number;
127
+ };
128
+ output_token_details?: {
129
+ text_tokens?: number;
130
+ audio_tokens?: number;
131
+ };
132
+ };
133
+ };
134
+ };
135
+ }
136
+ /** Options for configuring an OpenAILiveSession. */
137
+ export interface OpenAILiveSessionOptions {
138
+ reasoningPlane?: RealtimeReasoningPlane;
139
+ remoteSettings?: RealtimeRemoteReasoning;
140
+ voice?: string;
141
+ audioCodec?: 'pcm16' | 'g711_ulaw' | 'g711_alaw';
142
+ sampleRate?: number;
143
+ interruptionPolicy?: string;
144
+ backchannelPolicy?: string;
145
+ persona?: {
146
+ StyleDescriptors?: string | Record<string, unknown> | null;
147
+ StyleDescriptorsObject?: Record<string, unknown> | null;
148
+ [key: string]: unknown;
149
+ };
150
+ styleDescriptors?: Record<string, unknown>;
151
+ }
152
+ /**
153
+ * Live {@link IRealtimeSession} handle speaking the OpenAI Live wire protocol
154
+ * (`wss://api.openai.com/v1/live/sessions`).
155
+ */
156
+ export declare class OpenAILiveSession implements IRealtimeSession {
157
+ InputSampleRate: number;
158
+ OutputSampleRate: number;
159
+ AudioFormat?: {
160
+ Codec: 'pcm16' | 'g711_ulaw' | 'g711_alaw';
161
+ SampleRate: number;
162
+ } | 'negotiated';
163
+ Capabilities: RealtimeSessionCapabilities;
164
+ private _socket;
165
+ private _params;
166
+ private _options;
167
+ private _active;
168
+ private _closed;
169
+ private _closeRequested;
170
+ private _trailingPcmBytes?;
171
+ private _lastReportedSeconds;
172
+ private _startPromise;
173
+ private _resolveStart;
174
+ private _rejectStart;
175
+ private _closePromise?;
176
+ private _resolveClose?;
177
+ private _countedResponseIds;
178
+ private _currentTaskRevision;
179
+ private _toolBatchBarrier;
180
+ private _outputHandlers;
181
+ private _transcriptHandlers;
182
+ private _toolCallHandlers;
183
+ private _errorHandlers;
184
+ private _usageHandlers;
185
+ private _interruptionHandlers;
186
+ private _closeHandlers;
187
+ constructor(socket: ILiveWebSocketLike, params: RealtimeSessionParams, options?: OpenAILiveSessionOptions);
188
+ /**
189
+ * Current task revision counter for cancellation and supersede-and-discard.
190
+ */
191
+ get CurrentTaskRevision(): number;
192
+ /**
193
+ * Advances the task revision counter, causing in-flight tool results from prior revisions to be discarded.
194
+ */
195
+ BumpTaskRevision(): number;
196
+ /**
197
+ * Waits until the initial `session.started` confirmation frame arrives from the server.
198
+ */
199
+ WaitForStarted(): Promise<void>;
200
+ private wireSocket;
201
+ private sendSessionStart;
202
+ private resolveWireAudioFormat;
203
+ private buildInitialInstructions;
204
+ private extractPolicyFromConfig;
205
+ private resolveInterruptionPolicy;
206
+ private resolveBackchannelPolicy;
207
+ private compileDelegationPolicy;
208
+ private handleMessage;
209
+ private dispatchError;
210
+ private sendFrame;
211
+ SendInput(chunk: ArrayBuffer, kind?: 'audio' | 'video'): void;
212
+ RegisterTools(tools: RealtimeToolDefinition[]): Promise<void>;
213
+ OnOutput(handler: (chunk: ArrayBuffer) => void): void;
214
+ OnTranscript(handler: (t: RealtimeTranscript) => void): void;
215
+ OnToolCall(handler: (call: RealtimeToolCall) => void): void;
216
+ SendToolResult(callID: string, output: string, taskRevision?: number): Promise<void>;
217
+ SendContextNote(text: string): void;
218
+ RequestSpokenUpdate(instructions: string): boolean;
219
+ SendInstructions(instructions: string): Promise<void>;
220
+ OnInterruption(handler: () => void): void;
221
+ OnError(handler: (error: RealtimeSessionError) => void): void;
222
+ OnClose(handler: () => void): void;
223
+ OnUsage(handler: (u: RealtimeUsage) => void): void;
224
+ Close(): Promise<void>;
225
+ }
226
+ /**
227
+ * Driver class for OpenAI GPT-Live 1 full-duplex realtime models.
228
+ */
229
+ export declare class OpenAILiveRealtime extends BaseRealtimeModel {
230
+ static readonly SupportsDynamicToolSet = true;
231
+ private _endpoint;
232
+ constructor(apiKey: string, endpoint?: string);
233
+ get SupportedVoices(): RealtimeVoiceOption[];
234
+ /**
235
+ * Creation seam for the live WebSocket connection. Unit tests override this to return an in-memory mock.
236
+ */
237
+ protected createSocket(url: string, apiKey: string): ILiveWebSocketLike;
238
+ /**
239
+ * Opens a duplex OpenAI Live session and awaits initialization.
240
+ */
241
+ StartSession(params: RealtimeSessionParams): Promise<IRealtimeSession>;
242
+ /**
243
+ * Whether this driver can mint an ephemeral, server-scoped client credential for a
244
+ * **client-direct** realtime session (the browser opens its own provider socket).
245
+ */
246
+ get SupportsClientDirect(): boolean;
247
+ /**
248
+ * Compiles the delegation policy block informing GPT-Live about available backend tools
249
+ * and when to delegate to the reasoning model.
250
+ */
251
+ static CompileDelegationPolicy(tools: RealtimeToolDefinition[]): string;
252
+ /**
253
+ * Mints a client session config for the browser-direct WebRTC topology.
254
+ *
255
+ * In the OpenAI Live WebRTC topology, the browser exchanges its offer SDP with the
256
+ * trusted server broker (via {@link ExchangeWebRtcSdp}); the project API key stays server-side.
257
+ * WebRTC omits audio.format entirely (negotiated via SDP).
258
+ */
259
+ CreateClientSession(params: RealtimeSessionParams): Promise<ClientRealtimeSessionConfig>;
260
+ /**
261
+ * Resolves the configured voice name from `params.Config`, accepting either lowercase `voice`
262
+ * (the driver-neutral standard) or uppercase `Voice`, defaulting to `'alloy'`.
263
+ */
264
+ private static resolveVoice;
265
+ /**
266
+ * Resolves the browser-facing HTTP(S) broker URL for the OpenAI Live WebRTC SDP exchange.
267
+ */
268
+ protected resolveBrokerUrl(params: RealtimeSessionParams, ticketId: string): string;
269
+ /**
270
+ * Exchanges a client WebRTC offer SDP for an answer SDP via OpenAI's `POST /v1/live/sessions`,
271
+ * using the server's project API key.
272
+ *
273
+ * In the OpenAI Live WebRTC topology, the browser never contacts api.openai.com directly;
274
+ * the trusted application server exchanges the offer for an answer and starts the session.
275
+ * Note: creating a WebRTC session pre-bills 15 seconds of voice duration.
276
+ *
277
+ * @param offerSdp The local SDP offer generated by the browser.
278
+ * @param sessionConfig The session configuration to initialize the session with.
279
+ * @returns The answer SDP, provider session ID, and the 15-second pre-bill accounting.
280
+ */
281
+ ExchangeWebRtcSdp(offerSdp: string, sessionConfig?: Record<string, unknown>): Promise<{
282
+ answerSdp: string;
283
+ sessionId: string;
284
+ prebillSeconds: number;
285
+ }>;
286
+ /**
287
+ * HTTP POST seam for `/v1/live/sessions` (unit tests override this to mock the HTTP call).
288
+ */
289
+ protected postLiveSessions(payload: unknown): Promise<{
290
+ id: string;
291
+ transport: {
292
+ type: string;
293
+ sdp: string;
294
+ };
295
+ }>;
296
+ }
297
+ //# sourceMappingURL=openAILiveRealtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openAILiveRealtime.d.ts","sourceRoot":"","sources":["../../src/models/openAILiveRealtime.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,iBAAiB,EAEjB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAE3B,mBAAmB,EAItB,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC3D,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACtF,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACxG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACrG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACrB;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE;YACJ,MAAM,CAAC,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YACzC,MAAM,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;SAC/B,CAAC;QACF,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,UAAU,CAAC,EAAE;YACT,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;YAC7B,SAAS,CAAC,EAAE;gBACR,KAAK,EAAE,MAAM,CAAC;gBACd,SAAS,CAAC,EAAE;oBACR,MAAM,CAAC,EAAE,MAAM,CAAC;iBACnB,CAAC;gBACF,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;oBACV,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,MAAM,CAAC;oBACb,WAAW,CAAC,EAAE,MAAM,CAAC;oBACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBACxC,CAAC,CAAC;aACN,CAAC;SACL,CAAC;KACL,CAAC;CACL,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,4BAA4B,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,6BAA6B,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;CACxB,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE;QACF,IAAI,EAAE,sBAAsB,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;CAC3B,GACD;IACI,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;CACzB,CAAC;AAER,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE;YACH,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,QAAQ,CAAC,EAAE;YACP,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,KAAK,CAAC,EAAE;gBACJ,YAAY,CAAC,EAAE,MAAM,CAAC;gBACtB,aAAa,CAAC,EAAE,MAAM,CAAC;gBACvB,mBAAmB,CAAC,EAAE;oBAClB,WAAW,CAAC,EAAE,MAAM,CAAC;oBACrB,YAAY,CAAC,EAAE,MAAM,CAAC;oBACtB,aAAa,CAAC,EAAE,MAAM,CAAC;iBAC1B,CAAC;gBACF,oBAAoB,CAAC,EAAE;oBACnB,WAAW,CAAC,EAAE,MAAM,CAAC;oBACrB,YAAY,CAAC,EAAE,MAAM,CAAC;iBACzB,CAAC;aACL,CAAC;SACL,CAAC;KACL,CAAC;CACL;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACrC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAC3D,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACxD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,gBAAgB;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,CAAC;IAChG,YAAY,EAAE,2BAA2B,CAAC;IAEjD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAAa;IACvC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,iBAAiB,CAAkC;IAE3D,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,cAAc,CAAoD;IAC1E,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,cAAc,CAAyB;gBAEnC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAE,wBAA6B;IAiC7G;;OAEG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAKjC;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,gBAAgB;IA0DxB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,aAAa;IA2LrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IAcV,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAyCvD,aAAa,CAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIrD,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAI5D,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;IAIrD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC1F,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASnC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAU5C,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,cAAc,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIzC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAI7D,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA+BtC;AAED;;GAEG;AACH,qBACa,kBAAmB,SAAQ,iBAAiB;IACrD,gBAAgC,sBAAsB,QAAQ;IAE9D,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK7C,IAAoB,eAAe,IAAI,mBAAmB,EAAE,CAa3D;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAsBvE;;OAEG;IACmB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4D5F;;;OAGG;IACH,IAAoB,oBAAoB,IAAI,OAAO,CAElD;IAED;;;OAGG;WACW,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,MAAM;IAmB9E;;;;;;OAMG;IACmB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA0F9G;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAK3B;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAcnF;;;;;;;;;;;OAWG;IACU,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAiB5E;;OAEG;cACa,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAkBxH"}