@animalabs/agent-framework 0.19.0 → 0.21.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.
Files changed (214) hide show
  1. package/README.md +29 -0
  2. package/dist/src/agent.d.ts +22 -0
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +128 -10
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/api/types.d.ts +1 -1
  7. package/dist/src/api/types.d.ts.map +1 -1
  8. package/dist/src/code-execution/py-runner.d.ts +10 -1
  9. package/dist/src/code-execution/py-runner.d.ts.map +1 -1
  10. package/dist/src/code-execution/py-runner.js +27 -2
  11. package/dist/src/code-execution/py-runner.js.map +1 -1
  12. package/dist/src/code-execution/tool-definition.d.ts +21 -0
  13. package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
  14. package/dist/src/code-execution/tool-definition.js +34 -0
  15. package/dist/src/code-execution/tool-definition.js.map +1 -1
  16. package/dist/src/framework.d.ts +153 -2
  17. package/dist/src/framework.d.ts.map +1 -1
  18. package/dist/src/framework.js +1175 -76
  19. package/dist/src/framework.js.map +1 -1
  20. package/dist/src/index.d.ts +2 -0
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/index.js +4 -0
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/mcpl/capability-grant.d.ts +1 -1
  25. package/dist/src/mcpl/capability-grant.d.ts.map +1 -1
  26. package/dist/src/mcpl/capability-grant.js +49 -5
  27. package/dist/src/mcpl/capability-grant.js.map +1 -1
  28. package/dist/src/mcpl/channel-registry.d.ts +59 -2
  29. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  30. package/dist/src/mcpl/channel-registry.js +106 -6
  31. package/dist/src/mcpl/channel-registry.js.map +1 -1
  32. package/dist/src/mcpl/conversation-router.d.ts +8 -6
  33. package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
  34. package/dist/src/mcpl/conversation-router.js +12 -6
  35. package/dist/src/mcpl/conversation-router.js.map +1 -1
  36. package/dist/src/mcpl/index.d.ts +3 -0
  37. package/dist/src/mcpl/index.d.ts.map +1 -1
  38. package/dist/src/mcpl/index.js +3 -0
  39. package/dist/src/mcpl/index.js.map +1 -1
  40. package/dist/src/mcpl/push-coalescer.d.ts +318 -0
  41. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -0
  42. package/dist/src/mcpl/push-coalescer.js +709 -0
  43. package/dist/src/mcpl/push-coalescer.js.map +1 -0
  44. package/dist/src/mcpl/push-handler.d.ts +7 -2
  45. package/dist/src/mcpl/push-handler.d.ts.map +1 -1
  46. package/dist/src/mcpl/push-handler.js +43 -4
  47. package/dist/src/mcpl/push-handler.js.map +1 -1
  48. package/dist/src/mcpl/references.d.ts.map +1 -1
  49. package/dist/src/mcpl/references.js +9 -4
  50. package/dist/src/mcpl/references.js.map +1 -1
  51. package/dist/src/mcpl/server-connection.d.ts +18 -0
  52. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  53. package/dist/src/mcpl/server-connection.js +44 -1
  54. package/dist/src/mcpl/server-connection.js.map +1 -1
  55. package/dist/src/mcpl/tool-classes.d.ts +71 -0
  56. package/dist/src/mcpl/tool-classes.d.ts.map +1 -0
  57. package/dist/src/mcpl/tool-classes.js +170 -0
  58. package/dist/src/mcpl/tool-classes.js.map +1 -0
  59. package/dist/src/mcpl/tool-glob.d.ts +16 -0
  60. package/dist/src/mcpl/tool-glob.d.ts.map +1 -0
  61. package/dist/src/mcpl/tool-glob.js +41 -0
  62. package/dist/src/mcpl/tool-glob.js.map +1 -0
  63. package/dist/src/mcpl/tool-lifecycle.d.ts +253 -0
  64. package/dist/src/mcpl/tool-lifecycle.d.ts.map +1 -0
  65. package/dist/src/mcpl/tool-lifecycle.js +607 -0
  66. package/dist/src/mcpl/tool-lifecycle.js.map +1 -0
  67. package/dist/src/mcpl/transport.d.ts +15 -0
  68. package/dist/src/mcpl/transport.d.ts.map +1 -1
  69. package/dist/src/mcpl/transport.js +65 -1
  70. package/dist/src/mcpl/transport.js.map +1 -1
  71. package/dist/src/mcpl/types.d.ts +68 -1
  72. package/dist/src/mcpl/types.d.ts.map +1 -1
  73. package/dist/src/mcpl/types.js +6 -0
  74. package/dist/src/mcpl/types.js.map +1 -1
  75. package/dist/src/modules/discord/index.js +1 -1
  76. package/dist/src/modules/discord/index.js.map +1 -1
  77. package/dist/src/modules/history/index.d.ts +85 -0
  78. package/dist/src/modules/history/index.d.ts.map +1 -1
  79. package/dist/src/modules/history/index.js +1019 -24
  80. package/dist/src/modules/history/index.js.map +1 -1
  81. package/dist/src/modules/history/semantic.d.ts +202 -0
  82. package/dist/src/modules/history/semantic.d.ts.map +1 -0
  83. package/dist/src/modules/history/semantic.js +418 -0
  84. package/dist/src/modules/history/semantic.js.map +1 -0
  85. package/dist/src/modules/index.d.ts +2 -1
  86. package/dist/src/modules/index.d.ts.map +1 -1
  87. package/dist/src/modules/index.js.map +1 -1
  88. package/dist/src/tool-result-guard.d.ts +82 -0
  89. package/dist/src/tool-result-guard.d.ts.map +1 -0
  90. package/dist/src/tool-result-guard.js +306 -0
  91. package/dist/src/tool-result-guard.js.map +1 -0
  92. package/dist/src/types/agent.d.ts +14 -0
  93. package/dist/src/types/agent.d.ts.map +1 -1
  94. package/dist/src/types/framework.d.ts +21 -0
  95. package/dist/src/types/framework.d.ts.map +1 -1
  96. package/dist/src/types/trace.d.ts +17 -0
  97. package/dist/src/types/trace.d.ts.map +1 -1
  98. package/dist/test/channel-registry-routing.test.js +59 -0
  99. package/dist/test/channel-registry-routing.test.js.map +1 -1
  100. package/dist/test/code-execution.test.js +139 -0
  101. package/dist/test/code-execution.test.js.map +1 -1
  102. package/dist/test/conversation-router.test.js +33 -19
  103. package/dist/test/conversation-router.test.js.map +1 -1
  104. package/dist/test/conversation-routing.test.js +89 -0
  105. package/dist/test/conversation-routing.test.js.map +1 -1
  106. package/dist/test/helpers/coalescing-fixture.d.ts +72 -0
  107. package/dist/test/helpers/coalescing-fixture.d.ts.map +1 -0
  108. package/dist/test/helpers/coalescing-fixture.js +145 -0
  109. package/dist/test/helpers/coalescing-fixture.js.map +1 -0
  110. package/dist/test/helpers/coalescing-kill-child.d.ts +2 -0
  111. package/dist/test/helpers/coalescing-kill-child.d.ts.map +1 -0
  112. package/dist/test/helpers/coalescing-kill-child.js +24 -0
  113. package/dist/test/helpers/coalescing-kill-child.js.map +1 -0
  114. package/dist/test/history-module-realstore.test.d.ts +2 -0
  115. package/dist/test/history-module-realstore.test.d.ts.map +1 -0
  116. package/dist/test/history-module-realstore.test.js +363 -0
  117. package/dist/test/history-module-realstore.test.js.map +1 -0
  118. package/dist/test/history-module-semantic.test.d.ts +2 -0
  119. package/dist/test/history-module-semantic.test.d.ts.map +1 -0
  120. package/dist/test/history-module-semantic.test.js +213 -0
  121. package/dist/test/history-module-semantic.test.js.map +1 -0
  122. package/dist/test/history-module-ux.test.d.ts +2 -0
  123. package/dist/test/history-module-ux.test.d.ts.map +1 -0
  124. package/dist/test/history-module-ux.test.js +304 -0
  125. package/dist/test/history-module-ux.test.js.map +1 -0
  126. package/dist/test/history-module.test.js +25 -1
  127. package/dist/test/history-module.test.js.map +1 -1
  128. package/dist/test/history-semantic-review-findings.test.d.ts +2 -0
  129. package/dist/test/history-semantic-review-findings.test.d.ts.map +1 -0
  130. package/dist/test/history-semantic-review-findings.test.js +338 -0
  131. package/dist/test/history-semantic-review-findings.test.js.map +1 -0
  132. package/dist/test/history-semantic-sync-converges.test.d.ts +2 -0
  133. package/dist/test/history-semantic-sync-converges.test.d.ts.map +1 -0
  134. package/dist/test/history-semantic-sync-converges.test.js +109 -0
  135. package/dist/test/history-semantic-sync-converges.test.js.map +1 -0
  136. package/dist/test/mcpl-capability-grant.test.js +3 -1
  137. package/dist/test/mcpl-capability-grant.test.js.map +1 -1
  138. package/dist/test/mcpl-child-env.test.d.ts +2 -0
  139. package/dist/test/mcpl-child-env.test.d.ts.map +1 -0
  140. package/dist/test/mcpl-child-env.test.js +158 -0
  141. package/dist/test/mcpl-child-env.test.js.map +1 -0
  142. package/dist/test/mcpl-coalescing.test.d.ts +2 -0
  143. package/dist/test/mcpl-coalescing.test.d.ts.map +1 -0
  144. package/dist/test/mcpl-coalescing.test.js +1050 -0
  145. package/dist/test/mcpl-coalescing.test.js.map +1 -0
  146. package/dist/test/mcpl-list-status.test.js +4 -0
  147. package/dist/test/mcpl-list-status.test.js.map +1 -1
  148. package/dist/test/mcpl-reference-fields.test.d.ts +2 -0
  149. package/dist/test/mcpl-reference-fields.test.d.ts.map +1 -0
  150. package/dist/test/mcpl-reference-fields.test.js +82 -0
  151. package/dist/test/mcpl-reference-fields.test.js.map +1 -0
  152. package/dist/test/mcpl-tool-class-listing.test.d.ts +2 -0
  153. package/dist/test/mcpl-tool-class-listing.test.d.ts.map +1 -0
  154. package/dist/test/mcpl-tool-class-listing.test.js +147 -0
  155. package/dist/test/mcpl-tool-class-listing.test.js.map +1 -0
  156. package/dist/test/mcpl-tool-classes.test.d.ts +7 -0
  157. package/dist/test/mcpl-tool-classes.test.d.ts.map +1 -0
  158. package/dist/test/mcpl-tool-classes.test.js +80 -0
  159. package/dist/test/mcpl-tool-classes.test.js.map +1 -0
  160. package/dist/test/mcpl-tool-lifecycle-e2e.test.d.ts +2 -0
  161. package/dist/test/mcpl-tool-lifecycle-e2e.test.d.ts.map +1 -0
  162. package/dist/test/mcpl-tool-lifecycle-e2e.test.js +237 -0
  163. package/dist/test/mcpl-tool-lifecycle-e2e.test.js.map +1 -0
  164. package/dist/test/mcpl-tool-lifecycle-emitter.test.d.ts +11 -0
  165. package/dist/test/mcpl-tool-lifecycle-emitter.test.d.ts.map +1 -0
  166. package/dist/test/mcpl-tool-lifecycle-emitter.test.js +307 -0
  167. package/dist/test/mcpl-tool-lifecycle-emitter.test.js.map +1 -0
  168. package/dist/test/mcpl-tool-lifecycle.test.d.ts +11 -0
  169. package/dist/test/mcpl-tool-lifecycle.test.d.ts.map +1 -0
  170. package/dist/test/mcpl-tool-lifecycle.test.js +270 -0
  171. package/dist/test/mcpl-tool-lifecycle.test.js.map +1 -0
  172. package/dist/test/silent-heartbeat.test.d.ts +2 -0
  173. package/dist/test/silent-heartbeat.test.d.ts.map +1 -0
  174. package/dist/test/silent-heartbeat.test.js +154 -0
  175. package/dist/test/silent-heartbeat.test.js.map +1 -0
  176. package/dist/test/tool-result-guard.test.d.ts +2 -0
  177. package/dist/test/tool-result-guard.test.d.ts.map +1 -0
  178. package/dist/test/tool-result-guard.test.js +1081 -0
  179. package/dist/test/tool-result-guard.test.js.map +1 -0
  180. package/dist/test/tools-observe-parser-conformance.test.d.ts +2 -0
  181. package/dist/test/tools-observe-parser-conformance.test.d.ts.map +1 -0
  182. package/dist/test/tools-observe-parser-conformance.test.js +129 -0
  183. package/dist/test/tools-observe-parser-conformance.test.js.map +1 -0
  184. package/dist/test/trunk-channel-routing.test.js +67 -0
  185. package/dist/test/trunk-channel-routing.test.js.map +1 -1
  186. package/dist/tsconfig.tsbuildinfo +1 -1
  187. package/package.json +2 -2
  188. package/src/agent.ts +128 -10
  189. package/src/api/types.ts +2 -0
  190. package/src/code-execution/py-runner.ts +34 -2
  191. package/src/code-execution/tool-definition.ts +46 -0
  192. package/src/framework.ts +1207 -80
  193. package/src/index.ts +13 -0
  194. package/src/mcpl/capability-grant.ts +54 -6
  195. package/src/mcpl/channel-registry.ts +115 -7
  196. package/src/mcpl/conversation-router.ts +12 -8
  197. package/src/mcpl/index.ts +29 -0
  198. package/src/mcpl/push-coalescer.ts +821 -0
  199. package/src/mcpl/push-handler.ts +40 -4
  200. package/src/mcpl/references.ts +11 -3
  201. package/src/mcpl/server-connection.ts +48 -2
  202. package/src/mcpl/tool-classes.ts +188 -0
  203. package/src/mcpl/tool-glob.ts +36 -0
  204. package/src/mcpl/tool-lifecycle.ts +745 -0
  205. package/src/mcpl/transport.ts +67 -1
  206. package/src/mcpl/types.ts +71 -1
  207. package/src/modules/discord/index.ts +1 -1
  208. package/src/modules/history/index.ts +1089 -24
  209. package/src/modules/history/semantic.ts +473 -0
  210. package/src/modules/index.ts +2 -1
  211. package/src/tool-result-guard.ts +318 -0
  212. package/src/types/agent.ts +15 -0
  213. package/src/types/framework.ts +23 -0
  214. package/src/types/trace.ts +17 -0
@@ -43,11 +43,22 @@ import type { Module, ModuleContext } from '../../types/module.js';
43
43
  import type { ToolDefinition, ToolCall, ToolResult, ProcessEvent } from '../../types/events.js';
44
44
  import type { EventResponse, ProcessState } from '../../types/module.js';
45
45
  import type { ChannelRegistry } from '../../mcpl/channel-registry.js';
46
+ import { type SemanticIndexConfig, type SyncReport } from './semantic.js';
47
+ export interface HistoryModuleOptions {
48
+ /** Enable `semantic_search` against a shared embed-service (see ./semantic.ts). Absent = tool not offered. */
49
+ semantic?: SemanticIndexConfig;
50
+ }
46
51
  export declare class HistoryModule implements Module {
47
52
  readonly name = "history";
48
53
  private ctx;
49
54
  private cm;
50
55
  private channelRegistry;
56
+ private readonly semanticCfg;
57
+ private semanticClient;
58
+ private indexer;
59
+ private syncTimer;
60
+ private firstSyncTimer;
61
+ constructor(options?: HistoryModuleOptions);
51
62
  /**
52
63
  * Wire the context-manager instance, and optionally the host's
53
64
  * ChannelRegistry. Host calls this after ContextManager.open() so the
@@ -117,13 +128,86 @@ export declare class HistoryModule implements Module {
117
128
  * practice.
118
129
  */
119
130
  private boundaryMessagesAt;
131
+ /** Messages at exactly `ms` (in `channelId` when given). Bounded by
132
+ * AROUND_TIE_CAP: past it a same-millisecond group is too large to step
133
+ * through by sequence, and the caller should narrow instead. */
134
+ private countAtMs;
135
+ /** Highest sequence in the store right now (the last append), or -1 when empty. */
136
+ private storeSeqMark;
137
+ /**
138
+ * Of the messages appended since `seqMark` (the store's append tail above
139
+ * it, walked back in pages), the ones `relevant` keeps. Unrelated appends
140
+ * cost a look but never count. `complete` is false when the walk stopped
141
+ * at APPENDED_SCAN_CAP before reaching seqMark — the result is then a
142
+ * lower bound, not a verification.
143
+ */
144
+ private appendedSince;
145
+ /**
146
+ * Validate a filtered-extract resume position against the window as it is
147
+ * NOW. `afterId` names the message the previous call saw at position
148
+ * `windowOffset - 1`. If it is still there, resume as asked. If the window
149
+ * moved (a removal or an insertion before that point since the previous
150
+ * call), look for it within RELOCATE_RADIUS positions either side and
151
+ * resume just past it, reporting the shift. If it can't be found — it was
152
+ * itself removed, or the window moved further than that — fail loudly:
153
+ * guessing is how a message gets silently skipped.
154
+ */
155
+ private relocateWindowOffset;
156
+ /**
157
+ * The `n` messages of a time/channel range nearest one of its edges, in
158
+ * TIMESTAMP order walking away from that edge (newest-first for
159
+ * side:"newest", oldest-first for side:"oldest"), plus whether the range
160
+ * holds more than `n`.
161
+ *
162
+ * Why not just `queryMessagesByTimeAndChannel` + offset: (a) a time-only
163
+ * query's `matchedCount` is the returned PAGE size, not a total (see
164
+ * context-manager MessageStore.queryByTime), so it can't locate a tail;
165
+ * (b) channel-scoped results come back in APPEND (ordinal) order, and
166
+ * Discord catch-up appends old-timestamped messages late — an ordinal
167
+ * tail is not the timestamp tail.
168
+ *
169
+ * No channel: chronicle's timestamp index answers directly (`reverse`
170
+ * for the newest edge). With a channel: channel queries report an exact
171
+ * matchedCount, so grow a time window out from the edge (×4 per step)
172
+ * until it holds ≥ n channel messages or covers the whole range. If that
173
+ * window holds more than `fetchCap` (a density jump across one step, or a
174
+ * burst), bisect its far bound between the last step that held < n and
175
+ * this one — counts are exact, so it lands on a window of [n, fetchCap].
176
+ * Only when a single millisecond holds the overflow does bisection bottom
177
+ * out; then the window is everything strictly nearer the edge plus that
178
+ * millisecond's nearest messages by sequence, which within one millisecond
179
+ * IS the (timestamp, sequence) order — still exact. The newest side is
180
+ * left open when `toMs` is (clock-skewed future stamps stay visible).
181
+ */
182
+ private edgeWindow;
120
183
  start(ctx: ModuleContext): Promise<void>;
184
+ /** Pending edits/removals survive a restart through module state. Called from whichever of start()/bind() runs second. */
185
+ private wireIndexer;
121
186
  stop(): Promise<void>;
187
+ /**
188
+ * Background sync into the semantic index: every `syncIntervalMs` (default
189
+ * 60 s) push up to `maxSyncPerTick` new items. Idempotent to call — starts
190
+ * once we have both a context-manager (bind) and a config; `unref`'d so it
191
+ * never keeps a shutting-down process alive. A first tick runs after 5 s so
192
+ * a fresh store starts backfilling immediately rather than a minute later.
193
+ */
194
+ private startSyncTimer;
195
+ /** Exposed for hosts/tests: one sync pass now. */
196
+ syncSemanticIndex(maxItems?: number): Promise<SyncReport> | null;
122
197
  getTools(): ToolDefinition[];
198
+ private semanticSearchTool;
123
199
  handleToolCall(call: ToolCall): Promise<ToolResult>;
124
200
  onProcess(_event: ProcessEvent, _state: ProcessState): Promise<EventResponse>;
125
201
  private handleStats;
126
202
  private handleExtract;
203
+ /**
204
+ * `extract({aroundId})` — the conversation around one message, like
205
+ * Discord's fetch_around. Neighbours are by (timestamp, sequence): first
206
+ * the anchor's own millisecond in sequence order, then, for whatever a
207
+ * side still needs, the nearest messages strictly before/after it (both
208
+ * via edgeWindow, which is exact by timestamp).
209
+ */
210
+ private handleExtractAround;
127
211
  private handleSearch;
128
212
  /**
129
213
  * Run regex matching for `search` on a worker thread with a hard
@@ -140,6 +224,7 @@ export declare class HistoryModule implements Module {
140
224
  * must never be indistinguishable from a clean "no matches" result.
141
225
  */
142
226
  private searchWithRegexWorker;
227
+ private handleSemanticSearch;
143
228
  private handleOverview;
144
229
  }
145
230
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/history/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAyE,MAAM,4BAA4B,CAAC;AAExI,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AA6GtE,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,eAAe,CAAgC;IAEvD;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI;IAK7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,OAAO,CAAC,cAAc;IAatB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAKpB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,cAAc,EAAE;IA8GtB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAqCnD,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAQnF,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,aAAa;YA+BP,YAAY;IAuF1B;;;;;;;;;;;;;OAaG;YACW,qBAAqB;IA2DnC,OAAO,CAAC,cAAc;CAiXvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/history/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAyE,MAAM,4BAA4B,CAAC;AAExI,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAA0D,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAuB,MAAM,eAAe,CAAC;AA4EvJ,MAAM,WAAW,oBAAoB;IACnC,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAoID,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,cAAc,CAA8C;gBAExD,OAAO,GAAE,oBAAyB;IAK9C;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI;IAc7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,OAAO,CAAC,cAAc;IAatB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;qEAEiE;IACjE,OAAO,CAAC,SAAS;IAejB,mFAAmF;IACnF,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,UAAU;IAiFZ,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,0HAA0H;IAC1H,OAAO,CAAC,WAAW;IAUb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAWtB,kDAAkD;IAClD,iBAAiB,CAAC,QAAQ,SAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAI9D,QAAQ,IAAI,cAAc,EAAE;IAiJ5B,OAAO,CAAC,kBAAkB;IAmCpB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAuCnD,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAQnF,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,aAAa;IAiOrB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;YA2Fb,YAAY;IAyK1B;;;;;;;;;;;;;OAaG;YACW,qBAAqB;YA4DrB,oBAAoB;IA2HlC,OAAO,CAAC,cAAc;CAiXvB"}