@data-club/ai-hub-server 0.0.1

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.
Files changed (248) hide show
  1. package/dist/auth/argon2.d.ts +72 -0
  2. package/dist/auth/argon2.d.ts.map +1 -0
  3. package/dist/auth/argon2.js +145 -0
  4. package/dist/auth/argon2.js.map +1 -0
  5. package/dist/auth/encryption.d.ts +52 -0
  6. package/dist/auth/encryption.d.ts.map +1 -0
  7. package/dist/auth/encryption.js +98 -0
  8. package/dist/auth/encryption.js.map +1 -0
  9. package/dist/auth/jwt.d.ts +133 -0
  10. package/dist/auth/jwt.d.ts.map +1 -0
  11. package/dist/auth/jwt.js +147 -0
  12. package/dist/auth/jwt.js.map +1 -0
  13. package/dist/auth/middleware.d.ts +101 -0
  14. package/dist/auth/middleware.d.ts.map +1 -0
  15. package/dist/auth/middleware.js +161 -0
  16. package/dist/auth/middleware.js.map +1 -0
  17. package/dist/auth/passwordPolicy.d.ts +72 -0
  18. package/dist/auth/passwordPolicy.d.ts.map +1 -0
  19. package/dist/auth/passwordPolicy.js +88 -0
  20. package/dist/auth/passwordPolicy.js.map +1 -0
  21. package/dist/auth/roleRules.d.ts +200 -0
  22. package/dist/auth/roleRules.d.ts.map +1 -0
  23. package/dist/auth/roleRules.js +365 -0
  24. package/dist/auth/roleRules.js.map +1 -0
  25. package/dist/auth/userView.d.ts +55 -0
  26. package/dist/auth/userView.d.ts.map +1 -0
  27. package/dist/auth/userView.js +77 -0
  28. package/dist/auth/userView.js.map +1 -0
  29. package/dist/bootstrap.d.ts +104 -0
  30. package/dist/bootstrap.d.ts.map +1 -0
  31. package/dist/bootstrap.js +160 -0
  32. package/dist/bootstrap.js.map +1 -0
  33. package/dist/db/connection.d.ts +39 -0
  34. package/dist/db/connection.d.ts.map +1 -0
  35. package/dist/db/connection.js +62 -0
  36. package/dist/db/connection.js.map +1 -0
  37. package/dist/db/migrate.d.ts +31 -0
  38. package/dist/db/migrate.d.ts.map +1 -0
  39. package/dist/db/migrate.js +197 -0
  40. package/dist/db/migrate.js.map +1 -0
  41. package/dist/db/schema.d.ts +1902 -0
  42. package/dist/db/schema.d.ts.map +1 -0
  43. package/dist/db/schema.js +662 -0
  44. package/dist/db/schema.js.map +1 -0
  45. package/dist/db/seed.d.ts +92 -0
  46. package/dist/db/seed.d.ts.map +1 -0
  47. package/dist/db/seed.js +160 -0
  48. package/dist/db/seed.js.map +1 -0
  49. package/dist/handlers/fetch.d.ts +89 -0
  50. package/dist/handlers/fetch.d.ts.map +1 -0
  51. package/dist/handlers/fetch.js +173 -0
  52. package/dist/handlers/fetch.js.map +1 -0
  53. package/dist/handlers/nextjs.d.ts +40 -0
  54. package/dist/handlers/nextjs.d.ts.map +1 -0
  55. package/dist/handlers/nextjs.js +42 -0
  56. package/dist/handlers/nextjs.js.map +1 -0
  57. package/dist/handlers/responses.d.ts +46 -0
  58. package/dist/handlers/responses.d.ts.map +1 -0
  59. package/dist/handlers/responses.js +74 -0
  60. package/dist/handlers/responses.js.map +1 -0
  61. package/dist/handlers/routeTable.d.ts +21 -0
  62. package/dist/handlers/routeTable.d.ts.map +1 -0
  63. package/dist/handlers/routeTable.js +133 -0
  64. package/dist/handlers/routeTable.js.map +1 -0
  65. package/dist/handlers/router.d.ts +37 -0
  66. package/dist/handlers/router.d.ts.map +1 -0
  67. package/dist/handlers/router.js +82 -0
  68. package/dist/handlers/router.js.map +1 -0
  69. package/dist/handlers/sse.d.ts +38 -0
  70. package/dist/handlers/sse.d.ts.map +1 -0
  71. package/dist/handlers/sse.js +52 -0
  72. package/dist/handlers/sse.js.map +1 -0
  73. package/dist/handlers/types.d.ts +96 -0
  74. package/dist/handlers/types.d.ts.map +1 -0
  75. package/dist/handlers/types.js +14 -0
  76. package/dist/handlers/types.js.map +1 -0
  77. package/dist/index.d.ts +25 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +24 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/letta/client.d.ts +355 -0
  82. package/dist/letta/client.d.ts.map +1 -0
  83. package/dist/letta/client.js +529 -0
  84. package/dist/letta/client.js.map +1 -0
  85. package/dist/letta/eventTranslator.d.ts +166 -0
  86. package/dist/letta/eventTranslator.d.ts.map +1 -0
  87. package/dist/letta/eventTranslator.js +532 -0
  88. package/dist/letta/eventTranslator.js.map +1 -0
  89. package/dist/letta/index.d.ts +13 -0
  90. package/dist/letta/index.d.ts.map +1 -0
  91. package/dist/letta/index.js +12 -0
  92. package/dist/letta/index.js.map +1 -0
  93. package/dist/letta/modelSettings.d.ts +176 -0
  94. package/dist/letta/modelSettings.d.ts.map +1 -0
  95. package/dist/letta/modelSettings.js +314 -0
  96. package/dist/letta/modelSettings.js.map +1 -0
  97. package/dist/letta/promptWrapping.d.ts +141 -0
  98. package/dist/letta/promptWrapping.d.ts.map +1 -0
  99. package/dist/letta/promptWrapping.js +213 -0
  100. package/dist/letta/promptWrapping.js.map +1 -0
  101. package/dist/letta/sandbox.d.ts +100 -0
  102. package/dist/letta/sandbox.d.ts.map +1 -0
  103. package/dist/letta/sandbox.js +151 -0
  104. package/dist/letta/sandbox.js.map +1 -0
  105. package/dist/letta/settingsFileSeed.d.ts +146 -0
  106. package/dist/letta/settingsFileSeed.d.ts.map +1 -0
  107. package/dist/letta/settingsFileSeed.js +177 -0
  108. package/dist/letta/settingsFileSeed.js.map +1 -0
  109. package/dist/letta/subprocessThrottle.d.ts +151 -0
  110. package/dist/letta/subprocessThrottle.d.ts.map +1 -0
  111. package/dist/letta/subprocessThrottle.js +195 -0
  112. package/dist/letta/subprocessThrottle.js.map +1 -0
  113. package/dist/letta/tpmRecovery.d.ts +202 -0
  114. package/dist/letta/tpmRecovery.d.ts.map +1 -0
  115. package/dist/letta/tpmRecovery.js +314 -0
  116. package/dist/letta/tpmRecovery.js.map +1 -0
  117. package/dist/letta/types.d.ts +54 -0
  118. package/dist/letta/types.d.ts.map +1 -0
  119. package/dist/letta/types.js +16 -0
  120. package/dist/letta/types.js.map +1 -0
  121. package/dist/observability/logger.d.ts +48 -0
  122. package/dist/observability/logger.d.ts.map +1 -0
  123. package/dist/observability/logger.js +81 -0
  124. package/dist/observability/logger.js.map +1 -0
  125. package/dist/observability/metrics.d.ts +53 -0
  126. package/dist/observability/metrics.d.ts.map +1 -0
  127. package/dist/observability/metrics.js +92 -0
  128. package/dist/observability/metrics.js.map +1 -0
  129. package/dist/routes/admin/agents.d.ts +63 -0
  130. package/dist/routes/admin/agents.d.ts.map +1 -0
  131. package/dist/routes/admin/agents.js +461 -0
  132. package/dist/routes/admin/agents.js.map +1 -0
  133. package/dist/routes/admin/rotatingMessages.d.ts +51 -0
  134. package/dist/routes/admin/rotatingMessages.d.ts.map +1 -0
  135. package/dist/routes/admin/rotatingMessages.js +292 -0
  136. package/dist/routes/admin/rotatingMessages.js.map +1 -0
  137. package/dist/routes/admin/sessions.d.ts +61 -0
  138. package/dist/routes/admin/sessions.d.ts.map +1 -0
  139. package/dist/routes/admin/sessions.js +232 -0
  140. package/dist/routes/admin/sessions.js.map +1 -0
  141. package/dist/routes/admin/settings.d.ts +110 -0
  142. package/dist/routes/admin/settings.d.ts.map +1 -0
  143. package/dist/routes/admin/settings.js +401 -0
  144. package/dist/routes/admin/settings.js.map +1 -0
  145. package/dist/routes/admin/users.d.ts +115 -0
  146. package/dist/routes/admin/users.d.ts.map +1 -0
  147. package/dist/routes/admin/users.js +374 -0
  148. package/dist/routes/admin/users.js.map +1 -0
  149. package/dist/routes/agents.d.ts +30 -0
  150. package/dist/routes/agents.d.ts.map +1 -0
  151. package/dist/routes/agents.js +55 -0
  152. package/dist/routes/agents.js.map +1 -0
  153. package/dist/routes/auth.d.ts +121 -0
  154. package/dist/routes/auth.d.ts.map +1 -0
  155. package/dist/routes/auth.js +422 -0
  156. package/dist/routes/auth.js.map +1 -0
  157. package/dist/routes/chat.d.ts +97 -0
  158. package/dist/routes/chat.d.ts.map +1 -0
  159. package/dist/routes/chat.js +484 -0
  160. package/dist/routes/chat.js.map +1 -0
  161. package/dist/routes/featureToggles.d.ts +34 -0
  162. package/dist/routes/featureToggles.d.ts.map +1 -0
  163. package/dist/routes/featureToggles.js +47 -0
  164. package/dist/routes/featureToggles.js.map +1 -0
  165. package/dist/routes/health.d.ts +24 -0
  166. package/dist/routes/health.d.ts.map +1 -0
  167. package/dist/routes/health.js +37 -0
  168. package/dist/routes/health.js.map +1 -0
  169. package/dist/routes/metrics.d.ts +35 -0
  170. package/dist/routes/metrics.d.ts.map +1 -0
  171. package/dist/routes/metrics.js +106 -0
  172. package/dist/routes/metrics.js.map +1 -0
  173. package/dist/routes/sessions.d.ts +161 -0
  174. package/dist/routes/sessions.d.ts.map +1 -0
  175. package/dist/routes/sessions.js +1501 -0
  176. package/dist/routes/sessions.js.map +1 -0
  177. package/dist/routes/stubs.d.ts +25 -0
  178. package/dist/routes/stubs.d.ts.map +1 -0
  179. package/dist/routes/stubs.js +25 -0
  180. package/dist/routes/stubs.js.map +1 -0
  181. package/dist/state/cron.d.ts +58 -0
  182. package/dist/state/cron.d.ts.map +1 -0
  183. package/dist/state/cron.js +160 -0
  184. package/dist/state/cron.js.map +1 -0
  185. package/dist/state/rotationRunner.d.ts +96 -0
  186. package/dist/state/rotationRunner.d.ts.map +1 -0
  187. package/dist/state/rotationRunner.js +246 -0
  188. package/dist/state/rotationRunner.js.map +1 -0
  189. package/dist/state/rotationScheduler.d.ts +76 -0
  190. package/dist/state/rotationScheduler.d.ts.map +1 -0
  191. package/dist/state/rotationScheduler.js +124 -0
  192. package/dist/state/rotationScheduler.js.map +1 -0
  193. package/dist/state/turnRegistry.d.ts +95 -0
  194. package/dist/state/turnRegistry.d.ts.map +1 -0
  195. package/dist/state/turnRegistry.js +149 -0
  196. package/dist/state/turnRegistry.js.map +1 -0
  197. package/dist/state/turnRunner.d.ts +134 -0
  198. package/dist/state/turnRunner.d.ts.map +1 -0
  199. package/dist/state/turnRunner.js +476 -0
  200. package/dist/state/turnRunner.js.map +1 -0
  201. package/package.json +47 -0
  202. package/src/auth/argon2.ts +152 -0
  203. package/src/auth/encryption.ts +110 -0
  204. package/src/auth/jwt.ts +217 -0
  205. package/src/auth/middleware.ts +250 -0
  206. package/src/auth/passwordPolicy.ts +99 -0
  207. package/src/auth/roleRules.ts +497 -0
  208. package/src/auth/userView.ts +88 -0
  209. package/src/bootstrap.ts +254 -0
  210. package/src/db/connection.ts +75 -0
  211. package/src/db/migrate.ts +212 -0
  212. package/src/db/schema.ts +750 -0
  213. package/src/db/seed.ts +236 -0
  214. package/src/handlers/fetch.ts +251 -0
  215. package/src/handlers/nextjs.ts +49 -0
  216. package/src/handlers/responses.ts +95 -0
  217. package/src/handlers/routeTable.ts +188 -0
  218. package/src/handlers/router.ts +96 -0
  219. package/src/handlers/sse.ts +55 -0
  220. package/src/handlers/types.ts +104 -0
  221. package/src/index.ts +60 -0
  222. package/src/letta/client.ts +860 -0
  223. package/src/letta/eventTranslator.ts +667 -0
  224. package/src/letta/index.ts +46 -0
  225. package/src/letta/lettaCliShim.mjs +40 -0
  226. package/src/letta/sandbox.ts +167 -0
  227. package/src/letta/settingsFileSeed.ts +254 -0
  228. package/src/letta/subprocessThrottle.ts +251 -0
  229. package/src/letta/types.ts +65 -0
  230. package/src/observability/logger.ts +103 -0
  231. package/src/observability/metrics.ts +114 -0
  232. package/src/routes/admin/agents.ts +574 -0
  233. package/src/routes/admin/rotatingMessages.ts +351 -0
  234. package/src/routes/admin/sessions.ts +283 -0
  235. package/src/routes/admin/settings.ts +463 -0
  236. package/src/routes/admin/users.ts +455 -0
  237. package/src/routes/agents.ts +66 -0
  238. package/src/routes/auth.ts +513 -0
  239. package/src/routes/chat.ts +534 -0
  240. package/src/routes/featureToggles.ts +52 -0
  241. package/src/routes/health.ts +44 -0
  242. package/src/routes/metrics.ts +111 -0
  243. package/src/routes/sessions.ts +1878 -0
  244. package/src/state/cron.ts +179 -0
  245. package/src/state/rotationRunner.ts +326 -0
  246. package/src/state/rotationScheduler.ts +164 -0
  247. package/src/state/turnRegistry.ts +210 -0
  248. package/src/state/turnRunner.ts +588 -0
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Pure function: Letta Code SDK message → ai-hub SSE events (§9).
3
+ *
4
+ * Input type: `SDKMessage` (Letta Code SDK's stdin/stdout JSON wire
5
+ * shape). Output type: ai-hub's stable SSE events from §9.
6
+ *
7
+ * The translator has **no I/O** — it takes one `SDKMessage` and the
8
+ * current translation state (running text length, open tool-call ids)
9
+ * and returns zero or more ai-hub event payloads + the next state.
10
+ * Persistence, `seq` assignment, and SSE writing are the caller's
11
+ * responsibility (see `state/turnRunner.ts`).
12
+ *
13
+ * ## SDK message variants we handle
14
+ *
15
+ * - `assistant` — streaming chunk of assistant text. Same `uuid` across
16
+ * chunks of one logical assistant message; different `uuid` signals a
17
+ * new logical step (multi-step turn). Emits `assistant_delta`.
18
+ * - `reasoning` — same as `assistant` but for the reasoning channel.
19
+ * Emits `reasoning_delta`. Phase → `model_reasoning`.
20
+ * - `tool_call` — incremental tool-call event. Same `toolCallId` across
21
+ * chunks; `rawArguments` carries one chunk of the partial JSON
22
+ * arguments. First sighting emits `tool_call_started`; subsequent
23
+ * sightings (or first sighting with a non-empty `rawArguments`) emit
24
+ * `tool_call_input_delta`. Phase → `model_tool_input`.
25
+ * - `tool_result` — one event per call. Emits `tool_call_dispatched`
26
+ * (if not already emitted for this id, with the assembled JSON input)
27
+ * then `tool_call_result` (success or error variant).
28
+ * - `result` — terminal. `success: true` → `assistant_message_complete`
29
+ * followed by `stream_end {done}`. `success: false` with
30
+ * `errorCode: "interrupted"` → `stream_end {cancelled}`. Any other
31
+ * failure → `error` + `stream_end {error}`.
32
+ * - `error` — non-terminal error inside the stream (rare; Letta Code
33
+ * surfaces most errors through the terminal `result` event). Emits
34
+ * `error` and does NOT change phase — the runner decides whether the
35
+ * turn fails based on subsequent events.
36
+ * - `retry` — Letta Code's internal retry notice (its own TPM
37
+ * recovery). We drop it; users don't need to see it in v1.x.
38
+ * - `init` — never appears on `stream()`; it's the return of
39
+ * `session.initialize()`. We don't process it here.
40
+ * - `stream_event` — only emitted when `--include-partial-messages` is
41
+ * set on the CLI. We don't enable that flag.
42
+ *
43
+ * @see SPECIFICATIONS.md §9 — wire protocol
44
+ * @see SPECIFICATIONS.md §10 — state machine
45
+ */
46
+ import type { AIHubEvent, RunningPhase, TurnStatus } from "@data-club/ai-hub";
47
+ import type { SDKMessage } from "@letta-ai/letta-code-sdk";
48
+ /**
49
+ * Carried across events for a single turn. The translator is otherwise
50
+ * pure — no module-level mutable state.
51
+ *
52
+ * The shape is preserved verbatim from the pre-migration translator so
53
+ * `state/turnRunner.ts` keeps its existing call sites unchanged. The
54
+ * `assistantText` / `reasoningText` accumulators are still the canonical
55
+ * assembled payloads (the SDK delivers deltas in `content`); the
56
+ * step-boundary detection now uses `uuid` change instead of Letta's
57
+ * `id` field on `assistant_message`.
58
+ */
59
+ export interface TranslatorState {
60
+ /** Current `(status, phase)` pair. Pre-emission state. */
61
+ status: TurnStatus;
62
+ /** Current sub-phase or `null`. */
63
+ phase: RunningPhase | null;
64
+ /** Running concatenation of assistant deltas across the current step. */
65
+ assistantText: string;
66
+ /** Same idea for reasoning content (only populated when effort != none). */
67
+ reasoningText: string;
68
+ /**
69
+ * Tool-call ids we've already announced via `tool_call_started`. The
70
+ * translator only emits `started` on first sight; subsequent arrivals
71
+ * with the same id emit deltas.
72
+ */
73
+ openToolCalls: Set<string>;
74
+ /**
75
+ * Per-id accumulator for the tool-call's `rawArguments` chunks. Used
76
+ * to assemble the full JSON input we send on `tool_call_dispatched`.
77
+ */
78
+ toolCallArguments: Map<string, string>;
79
+ /**
80
+ * Tool-call ids we've already emitted `tool_call_dispatched` for. The
81
+ * runner doesn't depend on per-call timing, just "dispatched yet or
82
+ * not"; we transition phase → `tool_executing` on first sighting of
83
+ * a `tool_result` for an undispatched call.
84
+ */
85
+ dispatchedToolCalls: Set<string>;
86
+ /**
87
+ * Stable `uuid` of the assistant message currently being assembled,
88
+ * if any. Used by the step-boundary detector to spot when a new
89
+ * logical step starts (new uuid means new step).
90
+ */
91
+ assistantMessageUuid: string | null;
92
+ }
93
+ /** Builds the per-turn initial state. */
94
+ export declare function initialTranslatorState(): TranslatorState;
95
+ /** Output of a single translation step. */
96
+ export interface TranslateStep {
97
+ /** Zero-or-more ai-hub event payloads (without `seq` — the runner assigns). */
98
+ events: ReadonlyArray<UnsequencedEvent>;
99
+ /** Next translator state. */
100
+ state: TranslatorState;
101
+ }
102
+ /**
103
+ * An ai-hub event without the `seq` field. The runner assigns seq when
104
+ * it persists + writes the event. The `error` event additionally
105
+ * carries a required `request_id` that only the runner knows — we
106
+ * strip it from the translator surface so the per-variant translators
107
+ * stay pure (no need to thread the requestId through every call).
108
+ * `emit()` in the runner stamps it on every error event before it goes
109
+ * out on the wire.
110
+ *
111
+ * Uses a distributive conditional so each variant of `AIHubEvent` is
112
+ * mapped independently — without this, the default non-distributive
113
+ * `Omit` would collapse the union to just the keys common to every
114
+ * variant (which loses `data` on every variant except `heartbeat`).
115
+ */
116
+ export type UnsequencedEvent = AIHubEvent extends infer T ? T extends AIHubEvent ? T extends {
117
+ event: "error";
118
+ data: infer D;
119
+ } ? Omit<T, "seq" | "data"> & {
120
+ data: Omit<D, "request_id">;
121
+ } : Omit<T, "seq"> : never : never;
122
+ /**
123
+ * Translates one SDK message into zero-or-more ai-hub events.
124
+ *
125
+ * Pure: no I/O, no module state, no clocks (the caller stamps
126
+ * timestamps).
127
+ *
128
+ * @param msg - the Letta Code SDK message.
129
+ * @param state - the translator state.
130
+ * @returns the events to emit + the next state.
131
+ */
132
+ export declare function translateSdkMessage(msg: SDKMessage, state: TranslatorState): TranslateStep;
133
+ /**
134
+ * Emits the closing `assistant_message_complete` event for a turn that
135
+ * accumulated assistant text. Called by the runner exactly once when
136
+ * the terminal `result` SDK message arrives — but only when the turn
137
+ * succeeded. For a cancelled / failed turn we still emit it (the user
138
+ * deserves to see whatever partial text was generated), but the
139
+ * snapshot reflects the terminal status.
140
+ *
141
+ * @param state - the translator state at end-of-stream.
142
+ * @param terminalStatus - the status to snapshot into the envelope.
143
+ * @returns the closing events (empty if no assistant text was produced).
144
+ */
145
+ export declare function finalizeAssistantMessage(state: TranslatorState, terminalStatus?: TurnStatus): ReadonlyArray<UnsequencedEvent>;
146
+ /**
147
+ * Interprets the terminal SDK `result` message into the right closing
148
+ * sequence: `assistant_message_complete` (if any) + the final
149
+ * `stream_end` with the appropriate reason. Pure function — no I/O.
150
+ *
151
+ * Behavior matrix:
152
+ *
153
+ * | result.success | result.errorCode | Emitted closing events |
154
+ * |---|---|---|
155
+ * | true | — | assistant_message_complete + stream_end{done} |
156
+ * | false | "interrupted" | assistant_message_complete (with partial text, if any) + stream_end{cancelled} |
157
+ * | false | anything else | (assistant_message_complete if partial text) + error + stream_end{error} |
158
+ *
159
+ * @param msg - the terminal SDK result message.
160
+ * @param state - the translator state right before the result arrived.
161
+ * @returns the events to emit + the (terminal) state.
162
+ */
163
+ export declare function finalizeTerminal(msg: Extract<SDKMessage, {
164
+ type: "result";
165
+ }>, state: TranslatorState): TranslateStep;
166
+ //# sourceMappingURL=eventTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventTranslator.d.ts","sourceRoot":"","sources":["../../src/letta/eventTranslator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EACV,UAAU,EAGV,YAAY,EACZ,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM3D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,MAAM,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;;;OAKG;IACH,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,yCAAyC;AACzC,wBAAgB,sBAAsB,IAAI,eAAe,CAWxD;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACxC,6BAA6B;IAC7B,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,SAAS,MAAM,CAAC,GACrD,CAAC,SAAS,UAAU,GAClB,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GACzC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;CAAE,GACzD,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAChB,KAAK,GACP,KAAK,CAAC;AAMV;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,eAAe,GACrB,aAAa,CAsBf;AAkTD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,cAAc,GAAE,UAAmB,GAClC,aAAa,CAAC,gBAAgB,CAAC,CAejC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EAC5C,KAAK,EAAE,eAAe,GACrB,aAAa,CA0Df"}