@komaa/standin-sdk 0.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/LICENSE +21 -0
- package/README.md +141 -0
- package/dist/ambient.d.ts +80 -0
- package/dist/ambient.d.ts.map +1 -0
- package/dist/ambient.js +281 -0
- package/dist/ambient.js.map +1 -0
- package/dist/attachments.d.ts +149 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +451 -0
- package/dist/attachments.js.map +1 -0
- package/dist/audio.d.ts +80 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/audio.js +170 -0
- package/dist/audio.js.map +1 -0
- package/dist/avatar.d.ts +111 -0
- package/dist/avatar.d.ts.map +1 -0
- package/dist/avatar.js +201 -0
- package/dist/avatar.js.map +1 -0
- package/dist/callServer.d.ts +151 -0
- package/dist/callServer.d.ts.map +1 -0
- package/dist/callServer.js +1097 -0
- package/dist/callServer.js.map +1 -0
- package/dist/callTools.d.ts +154 -0
- package/dist/callTools.d.ts.map +1 -0
- package/dist/callTools.js +255 -0
- package/dist/callTools.js.map +1 -0
- package/dist/chat.d.ts +226 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +574 -0
- package/dist/chat.js.map +1 -0
- package/dist/config.d.ts +32 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +86 -0
- package/dist/config.js.map +1 -0
- package/dist/consult.d.ts +147 -0
- package/dist/consult.d.ts.map +1 -0
- package/dist/consult.js +388 -0
- package/dist/consult.js.map +1 -0
- package/dist/delivery.d.ts +81 -0
- package/dist/delivery.d.ts.map +1 -0
- package/dist/delivery.js +187 -0
- package/dist/delivery.js.map +1 -0
- package/dist/echoGuard.d.ts +56 -0
- package/dist/echoGuard.d.ts.map +1 -0
- package/dist/echoGuard.js +57 -0
- package/dist/echoGuard.js.map +1 -0
- package/dist/errors.d.ts +5 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch.d.ts +40 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +240 -0
- package/dist/fetch.js.map +1 -0
- package/dist/gate.d.ts +80 -0
- package/dist/gate.d.ts.map +1 -0
- package/dist/gate.js +249 -0
- package/dist/gate.js.map +1 -0
- package/dist/handler.d.ts +283 -0
- package/dist/handler.d.ts.map +1 -0
- package/dist/handler.js +4 -0
- package/dist/handler.js.map +1 -0
- package/dist/hmac.d.ts +32 -0
- package/dist/hmac.d.ts.map +1 -0
- package/dist/hmac.js +108 -0
- package/dist/hmac.js.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/lane.d.ts +92 -0
- package/dist/lane.d.ts.map +1 -0
- package/dist/lane.js +269 -0
- package/dist/lane.js.map +1 -0
- package/dist/lipsync.d.ts +136 -0
- package/dist/lipsync.d.ts.map +1 -0
- package/dist/lipsync.js +310 -0
- package/dist/lipsync.js.map +1 -0
- package/dist/log.d.ts +18 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +20 -0
- package/dist/log.js.map +1 -0
- package/dist/media.d.ts +43 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +190 -0
- package/dist/media.js.map +1 -0
- package/dist/minutes.d.ts +398 -0
- package/dist/minutes.d.ts.map +1 -0
- package/dist/minutes.js +805 -0
- package/dist/minutes.js.map +1 -0
- package/dist/outbound.d.ts +388 -0
- package/dist/outbound.d.ts.map +1 -0
- package/dist/outbound.js +933 -0
- package/dist/outbound.js.map +1 -0
- package/dist/plugins/cartesia/agent.d.ts +58 -0
- package/dist/plugins/cartesia/agent.d.ts.map +1 -0
- package/dist/plugins/cartesia/agent.js +254 -0
- package/dist/plugins/cartesia/agent.js.map +1 -0
- package/dist/plugins/cartesia/cli.d.ts +3 -0
- package/dist/plugins/cartesia/cli.d.ts.map +1 -0
- package/dist/plugins/cartesia/cli.js +10 -0
- package/dist/plugins/cartesia/cli.js.map +1 -0
- package/dist/plugins/cartesia/config.d.ts +30 -0
- package/dist/plugins/cartesia/config.d.ts.map +1 -0
- package/dist/plugins/cartesia/config.js +29 -0
- package/dist/plugins/cartesia/config.js.map +1 -0
- package/dist/plugins/cartesia/handler.d.ts +40 -0
- package/dist/plugins/cartesia/handler.d.ts.map +1 -0
- package/dist/plugins/cartesia/handler.js +142 -0
- package/dist/plugins/cartesia/handler.js.map +1 -0
- package/dist/plugins/cartesia/index.d.ts +6 -0
- package/dist/plugins/cartesia/index.d.ts.map +1 -0
- package/dist/plugins/cartesia/index.js +54 -0
- package/dist/plugins/cartesia/index.js.map +1 -0
- package/dist/plugins/deepgram/agent.d.ts +60 -0
- package/dist/plugins/deepgram/agent.d.ts.map +1 -0
- package/dist/plugins/deepgram/agent.js +302 -0
- package/dist/plugins/deepgram/agent.js.map +1 -0
- package/dist/plugins/deepgram/cli.d.ts +3 -0
- package/dist/plugins/deepgram/cli.d.ts.map +1 -0
- package/dist/plugins/deepgram/cli.js +10 -0
- package/dist/plugins/deepgram/cli.js.map +1 -0
- package/dist/plugins/deepgram/config.d.ts +39 -0
- package/dist/plugins/deepgram/config.d.ts.map +1 -0
- package/dist/plugins/deepgram/config.js +66 -0
- package/dist/plugins/deepgram/config.js.map +1 -0
- package/dist/plugins/deepgram/handler.d.ts +87 -0
- package/dist/plugins/deepgram/handler.d.ts.map +1 -0
- package/dist/plugins/deepgram/handler.js +268 -0
- package/dist/plugins/deepgram/handler.js.map +1 -0
- package/dist/plugins/deepgram/index.d.ts +11 -0
- package/dist/plugins/deepgram/index.d.ts.map +1 -0
- package/dist/plugins/deepgram/index.js +76 -0
- package/dist/plugins/deepgram/index.js.map +1 -0
- package/dist/plugins/echo/cli.d.ts +3 -0
- package/dist/plugins/echo/cli.d.ts.map +1 -0
- package/dist/plugins/echo/cli.js +10 -0
- package/dist/plugins/echo/cli.js.map +1 -0
- package/dist/plugins/echo/index.d.ts +37 -0
- package/dist/plugins/echo/index.d.ts.map +1 -0
- package/dist/plugins/echo/index.js +61 -0
- package/dist/plugins/echo/index.js.map +1 -0
- package/dist/plugins/elevenlabs/agent.d.ts +72 -0
- package/dist/plugins/elevenlabs/agent.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/agent.js +305 -0
- package/dist/plugins/elevenlabs/agent.js.map +1 -0
- package/dist/plugins/elevenlabs/cli.d.ts +3 -0
- package/dist/plugins/elevenlabs/cli.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/cli.js +10 -0
- package/dist/plugins/elevenlabs/cli.js.map +1 -0
- package/dist/plugins/elevenlabs/config.d.ts +27 -0
- package/dist/plugins/elevenlabs/config.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/config.js +42 -0
- package/dist/plugins/elevenlabs/config.js.map +1 -0
- package/dist/plugins/elevenlabs/handler.d.ts +67 -0
- package/dist/plugins/elevenlabs/handler.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/handler.js +419 -0
- package/dist/plugins/elevenlabs/handler.js.map +1 -0
- package/dist/plugins/elevenlabs/index.d.ts +11 -0
- package/dist/plugins/elevenlabs/index.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/index.js +72 -0
- package/dist/plugins/elevenlabs/index.js.map +1 -0
- package/dist/plugins/livekit/cli.d.ts +3 -0
- package/dist/plugins/livekit/cli.d.ts.map +1 -0
- package/dist/plugins/livekit/cli.js +10 -0
- package/dist/plugins/livekit/cli.js.map +1 -0
- package/dist/plugins/livekit/config.d.ts +47 -0
- package/dist/plugins/livekit/config.d.ts.map +1 -0
- package/dist/plugins/livekit/config.js +46 -0
- package/dist/plugins/livekit/config.js.map +1 -0
- package/dist/plugins/livekit/handler.d.ts +59 -0
- package/dist/plugins/livekit/handler.d.ts.map +1 -0
- package/dist/plugins/livekit/handler.js +211 -0
- package/dist/plugins/livekit/handler.js.map +1 -0
- package/dist/plugins/livekit/index.d.ts +6 -0
- package/dist/plugins/livekit/index.d.ts.map +1 -0
- package/dist/plugins/livekit/index.js +68 -0
- package/dist/plugins/livekit/index.js.map +1 -0
- package/dist/plugins/livekit/room.d.ts +117 -0
- package/dist/plugins/livekit/room.d.ts.map +1 -0
- package/dist/plugins/livekit/room.js +449 -0
- package/dist/plugins/livekit/room.js.map +1 -0
- package/dist/plugins/openai/agent.d.ts +74 -0
- package/dist/plugins/openai/agent.d.ts.map +1 -0
- package/dist/plugins/openai/agent.js +264 -0
- package/dist/plugins/openai/agent.js.map +1 -0
- package/dist/plugins/openai/cli.d.ts +3 -0
- package/dist/plugins/openai/cli.d.ts.map +1 -0
- package/dist/plugins/openai/cli.js +10 -0
- package/dist/plugins/openai/cli.js.map +1 -0
- package/dist/plugins/openai/config.d.ts +29 -0
- package/dist/plugins/openai/config.d.ts.map +1 -0
- package/dist/plugins/openai/config.js +37 -0
- package/dist/plugins/openai/config.js.map +1 -0
- package/dist/plugins/openai/handler.d.ts +65 -0
- package/dist/plugins/openai/handler.d.ts.map +1 -0
- package/dist/plugins/openai/handler.js +297 -0
- package/dist/plugins/openai/handler.js.map +1 -0
- package/dist/plugins/openai/index.d.ts +6 -0
- package/dist/plugins/openai/index.d.ts.map +1 -0
- package/dist/plugins/openai/index.js +72 -0
- package/dist/plugins/openai/index.js.map +1 -0
- package/dist/plugins/openclaw/allowlist.d.ts +9 -0
- package/dist/plugins/openclaw/allowlist.d.ts.map +1 -0
- package/dist/plugins/openclaw/allowlist.js +11 -0
- package/dist/plugins/openclaw/allowlist.js.map +1 -0
- package/dist/plugins/openclaw/config.d.ts +50 -0
- package/dist/plugins/openclaw/config.d.ts.map +1 -0
- package/dist/plugins/openclaw/config.js +53 -0
- package/dist/plugins/openclaw/config.js.map +1 -0
- package/dist/plugins/openclaw/handler.d.ts +90 -0
- package/dist/plugins/openclaw/handler.d.ts.map +1 -0
- package/dist/plugins/openclaw/handler.js +146 -0
- package/dist/plugins/openclaw/handler.js.map +1 -0
- package/dist/plugins/openclaw/index.d.ts +55 -0
- package/dist/plugins/openclaw/index.d.ts.map +1 -0
- package/dist/plugins/openclaw/index.js +89 -0
- package/dist/plugins/openclaw/index.js.map +1 -0
- package/dist/plugins/openclaw/openclaw.plugin.json +74 -0
- package/dist/plugins/openclaw/package.json +14 -0
- package/dist/plugins/openclaw/realtime.d.ts +82 -0
- package/dist/plugins/openclaw/realtime.d.ts.map +1 -0
- package/dist/plugins/openclaw/realtime.js +238 -0
- package/dist/plugins/openclaw/realtime.js.map +1 -0
- package/dist/plugins/openclaw/runtime.d.ts +19 -0
- package/dist/plugins/openclaw/runtime.d.ts.map +1 -0
- package/dist/plugins/openclaw/runtime.js +160 -0
- package/dist/plugins/openclaw/runtime.js.map +1 -0
- package/dist/policy.d.ts +38 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +95 -0
- package/dist/policy.js.map +1 -0
- package/dist/protocol.d.ts +44 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +77 -0
- package/dist/protocol.js.map +1 -0
- package/dist/protocolRuntime.d.ts +19 -0
- package/dist/protocolRuntime.d.ts.map +1 -0
- package/dist/protocolRuntime.js +78 -0
- package/dist/protocolRuntime.js.map +1 -0
- package/dist/smoke.d.ts +65 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +293 -0
- package/dist/smoke.js.map +1 -0
- package/dist/startup.d.ts +74 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +112 -0
- package/dist/startup.js.map +1 -0
- package/dist/tile.d.ts +101 -0
- package/dist/tile.d.ts.map +1 -0
- package/dist/tile.js +195 -0
- package/dist/tile.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/dist/vision.d.ts +160 -0
- package/dist/vision.d.ts.map +1 -0
- package/dist/vision.js +301 -0
- package/dist/vision.js.map +1 -0
- package/dist/visionTools.d.ts +237 -0
- package/dist/visionTools.d.ts.map +1 -0
- package/dist/visionTools.js +578 -0
- package/dist/visionTools.js.map +1 -0
- package/dist/voice.d.ts +143 -0
- package/dist/voice.d.ts.map +1 -0
- package/dist/voice.js +403 -0
- package/dist/voice.js.map +1 -0
- package/package.json +129 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { CallHandler, HandlerFactory } from "./handler.js";
|
|
2
|
+
/**
|
|
3
|
+
* Outbound bytes past which agent audio is dropped rather than queued.
|
|
4
|
+
*
|
|
5
|
+
* A slow or wedged peer turns "send everything" into an unbounded queue, and
|
|
6
|
+
* that queue is what stalls the provider receive loop feeding it. Shedding keeps
|
|
7
|
+
* the loop moving: the caller hears a gap rather than the call wedging.
|
|
8
|
+
*
|
|
9
|
+
* Audio only. Control frames are what END a call, and a call that cannot be
|
|
10
|
+
* ended is the failure this exists to prevent.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MAX_AUDIO_BUFFER_BYTES: number;
|
|
13
|
+
/**
|
|
14
|
+
* How long a call may go without an agent ever answering it.
|
|
15
|
+
*
|
|
16
|
+
* The one gap none of the other watchdogs cover. `preStartTimeoutMs` watches for
|
|
17
|
+
* session.start, which arrived. `onStartTimeoutMs` bounds onStart, which
|
|
18
|
+
* succeeded. `audioIdleTimeoutMs` is satisfied because the CALLER is still
|
|
19
|
+
* talking. So StandIn is on the call, the caller hears nothing, and nothing ends
|
|
20
|
+
* it.
|
|
21
|
+
*/
|
|
22
|
+
export declare const STALE_CALL_REAPER_MS = 120000;
|
|
23
|
+
/**
|
|
24
|
+
* How often to look. Coarse on purpose: this is a grace period, not something
|
|
25
|
+
* anybody measures to the second.
|
|
26
|
+
*/
|
|
27
|
+
export declare const REAPER_CHECK_INTERVAL_MS = 15000;
|
|
28
|
+
export declare const REAPER_MIN_INTERVAL_MS = 50;
|
|
29
|
+
/**
|
|
30
|
+
* Whether this call has run past its grace with nothing answering it.
|
|
31
|
+
*
|
|
32
|
+
* Pure, with the clock passed in, so the boundary is testable without waiting.
|
|
33
|
+
* Strictly greater, so a tick landing exactly on the grace does not reap a call
|
|
34
|
+
* one instant early.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isUnanswered(call: {
|
|
37
|
+
startedAtMs: number;
|
|
38
|
+
answeredAtMs?: number;
|
|
39
|
+
}, staleMs: number, now: number): boolean;
|
|
40
|
+
/** Options for {@link CallServer}. */
|
|
41
|
+
export interface CallServerOptions {
|
|
42
|
+
/** Builds one {@link CallHandler} per call. This is the plugin. */
|
|
43
|
+
handlerFactory: HandlerFactory;
|
|
44
|
+
/**
|
|
45
|
+
* Called with (callId, outcome) when StandIn reports how an outbound call
|
|
46
|
+
* ended without anyone answering.
|
|
47
|
+
*
|
|
48
|
+
* Set it and the route exists; leave it and a POST there is a 404, so a
|
|
49
|
+
* worker that never places a call opens no extra surface.
|
|
50
|
+
*/
|
|
51
|
+
onCallOutcome?: (callId: string, outcome: string) => void | Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* The connection secret from the StandIn portal. Must byte-match, or the
|
|
54
|
+
* handshake is rejected with 401. Defaults to `STANDIN_SECRET`.
|
|
55
|
+
*/
|
|
56
|
+
secret?: string;
|
|
57
|
+
/** Bind address. Defaults to `STANDIN_HOST` then `0.0.0.0`. */
|
|
58
|
+
host?: string;
|
|
59
|
+
/** Port. Defaults to `STANDIN_PORT` then 9442. */
|
|
60
|
+
port?: number;
|
|
61
|
+
/** Path StandIn dials. Defaults to `STANDIN_WS_PATH` then `/msteams/calling`. */
|
|
62
|
+
wsPath?: string;
|
|
63
|
+
/** Concurrent live calls, checked before any crypto runs. */
|
|
64
|
+
maxConnections?: number;
|
|
65
|
+
/** Ms a socket may stay silent after authenticating before it is dropped. */
|
|
66
|
+
preStartTimeoutMs?: number;
|
|
67
|
+
/** Ms without caller audio before a live call is declared dead (0 disables). */
|
|
68
|
+
audioIdleTimeoutMs?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Ms a handler's onStart may take before the call is given up (0 disables).
|
|
71
|
+
* It does real network work - joining a room, opening a provider socket - and
|
|
72
|
+
* the frame loop is queued behind it, so an unbounded one holds a slot for the
|
|
73
|
+
* life of the worker.
|
|
74
|
+
*/
|
|
75
|
+
onStartTimeoutMs?: number;
|
|
76
|
+
/**
|
|
77
|
+
* A hard ceiling on ONE call, from `session.start` (0 disables).
|
|
78
|
+
*
|
|
79
|
+
* Different from `audioIdleTimeoutMs`, which ends a call that went quiet: this
|
|
80
|
+
* one ends a call that is still going. A caller who will not hang up, a model
|
|
81
|
+
* looping at itself, an automated system that dialled and never stopped
|
|
82
|
+
* talking, all bill a provider by the minute for as long as the socket lives.
|
|
83
|
+
*/
|
|
84
|
+
maxCallMs?: number;
|
|
85
|
+
/**
|
|
86
|
+
* What to say before hanging up on the limit. Delivered through the handler's
|
|
87
|
+
* `onGoodbye`, the same callback StandIn's own closing line uses, so a plugin
|
|
88
|
+
* needs no new code to honour it.
|
|
89
|
+
*/
|
|
90
|
+
goodbyeText?: string;
|
|
91
|
+
/** Ms to let that line finish before the call ends. */
|
|
92
|
+
goodbyeGraceMs?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Ms a call may run with nothing having answered it (0 disables).
|
|
95
|
+
*
|
|
96
|
+
* The gap none of the other watchdogs cover: an agent dispatch that never
|
|
97
|
+
* lands leaves StandIn on the call, the caller hearing nothing, and no timer
|
|
98
|
+
* that fires.
|
|
99
|
+
*/
|
|
100
|
+
staleCallReaperMs?: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Answers the socket StandIn dials, and hands each call to a plugin.
|
|
104
|
+
*
|
|
105
|
+
* Defaults match the StandIn plugin layout: port 9442, path `/msteams/calling`.
|
|
106
|
+
* `0.0.0.0` because the worker usually runs in a container behind an ingress;
|
|
107
|
+
* bind `127.0.0.1` when only a local tunnel should reach the listener (the
|
|
108
|
+
* upgrade is HMAC-authenticated either way).
|
|
109
|
+
*/
|
|
110
|
+
export declare class CallServer {
|
|
111
|
+
#private;
|
|
112
|
+
readonly preStartTimeoutMs: number;
|
|
113
|
+
readonly audioIdleTimeoutMs: number;
|
|
114
|
+
readonly onStartTimeoutMs: number;
|
|
115
|
+
readonly maxCallMs: number;
|
|
116
|
+
readonly goodbyeText: string;
|
|
117
|
+
readonly goodbyeGraceMs: number;
|
|
118
|
+
readonly staleCallReaperMs: number;
|
|
119
|
+
/** Stop accepting new calls; live ones continue. */
|
|
120
|
+
draining: boolean;
|
|
121
|
+
constructor(options: CallServerOptions);
|
|
122
|
+
get wsPath(): string;
|
|
123
|
+
/** The interface the listener is bound to, or will be. */
|
|
124
|
+
get host(): string;
|
|
125
|
+
get port(): number;
|
|
126
|
+
get activeCalls(): number;
|
|
127
|
+
/**
|
|
128
|
+
* Whether the listener is actually bound.
|
|
129
|
+
*
|
|
130
|
+
* A host that calls connect twice today binds a second listener and leaks the
|
|
131
|
+
* first, and has no way to ask whether the bind succeeded, so it reports a
|
|
132
|
+
* dead platform as connected.
|
|
133
|
+
*/
|
|
134
|
+
get running(): boolean;
|
|
135
|
+
/** @internal */
|
|
136
|
+
buildHandler(): CallHandler;
|
|
137
|
+
/** @internal */
|
|
138
|
+
release(callId: string): void;
|
|
139
|
+
/**
|
|
140
|
+
* Bind the listener. Transactional: either it is listening when this resolves,
|
|
141
|
+
* or nothing of it survives.
|
|
142
|
+
*/
|
|
143
|
+
start(): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Drain live calls, then stop listening. Awaits the calls' REAL teardown - a
|
|
146
|
+
* close that early-returns on an in-flight closer would let the process exit
|
|
147
|
+
* with teardown still pending, leaking sessions.
|
|
148
|
+
*/
|
|
149
|
+
aclose(): Promise<void>;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=callServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callServer.d.ts","sourceRoot":"","sources":["../src/callServer.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,WAAW,EAAe,cAAc,EAAE,MAAM,cAAc,CAAC;AAuF7E;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAOzC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAMT;AA6pBD,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,cAAc,EAAE,cAAc,CAAC;IAE/B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,UAAU;;IASrB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAcnC,oDAAoD;IACpD,QAAQ,UAAS;gBAEL,OAAO,EAAE,iBAAiB;IAuCtC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,0DAA0D;IAC1D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,gBAAgB;IAChB,YAAY,IAAI,WAAW;IAI3B,gBAAgB;IAChB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA0F7B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4F5B;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAsH9B"}
|