@effect/ai 0.26.0 → 0.27.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 (188) hide show
  1. package/Chat/package.json +6 -0
  2. package/EmbeddingModel/package.json +6 -0
  3. package/IdGenerator/package.json +6 -0
  4. package/LanguageModel/package.json +6 -0
  5. package/Model/package.json +6 -0
  6. package/Prompt/package.json +6 -0
  7. package/Response/package.json +6 -0
  8. package/Telemetry/package.json +6 -0
  9. package/Tool/package.json +6 -0
  10. package/Toolkit/package.json +6 -0
  11. package/dist/cjs/AiError.js +575 -11
  12. package/dist/cjs/AiError.js.map +1 -1
  13. package/dist/cjs/Chat.js +302 -0
  14. package/dist/cjs/Chat.js.map +1 -0
  15. package/dist/cjs/EmbeddingModel.js +184 -0
  16. package/dist/cjs/EmbeddingModel.js.map +1 -0
  17. package/dist/cjs/IdGenerator.js +255 -0
  18. package/dist/cjs/IdGenerator.js.map +1 -0
  19. package/dist/cjs/LanguageModel.js +584 -0
  20. package/dist/cjs/LanguageModel.js.map +1 -0
  21. package/dist/cjs/McpServer.js +12 -4
  22. package/dist/cjs/McpServer.js.map +1 -1
  23. package/dist/cjs/Model.js +118 -0
  24. package/dist/cjs/Model.js.map +1 -0
  25. package/dist/cjs/Prompt.js +649 -0
  26. package/dist/cjs/Prompt.js.map +1 -0
  27. package/dist/cjs/Response.js +635 -0
  28. package/dist/cjs/Response.js.map +1 -0
  29. package/dist/cjs/Telemetry.js +176 -0
  30. package/dist/cjs/Telemetry.js.map +1 -0
  31. package/dist/cjs/Tokenizer.js +87 -8
  32. package/dist/cjs/Tokenizer.js.map +1 -1
  33. package/dist/cjs/Tool.js +556 -0
  34. package/dist/cjs/Tool.js.map +1 -0
  35. package/dist/cjs/Toolkit.js +279 -0
  36. package/dist/cjs/Toolkit.js.map +1 -0
  37. package/dist/cjs/index.js +21 -19
  38. package/dist/dts/AiError.d.ts +577 -9
  39. package/dist/dts/AiError.d.ts.map +1 -1
  40. package/dist/dts/Chat.d.ts +356 -0
  41. package/dist/dts/Chat.d.ts.map +1 -0
  42. package/dist/dts/EmbeddingModel.d.ts +153 -0
  43. package/dist/dts/EmbeddingModel.d.ts.map +1 -0
  44. package/dist/dts/IdGenerator.d.ts +272 -0
  45. package/dist/dts/IdGenerator.d.ts.map +1 -0
  46. package/dist/dts/LanguageModel.d.ts +458 -0
  47. package/dist/dts/LanguageModel.d.ts.map +1 -0
  48. package/dist/dts/McpSchema.d.ts +25 -25
  49. package/dist/dts/McpServer.d.ts +6 -4
  50. package/dist/dts/McpServer.d.ts.map +1 -1
  51. package/dist/dts/Model.d.ts +124 -0
  52. package/dist/dts/Model.d.ts.map +1 -0
  53. package/dist/dts/Prompt.d.ts +1119 -0
  54. package/dist/dts/Prompt.d.ts.map +1 -0
  55. package/dist/dts/Response.d.ts +1519 -0
  56. package/dist/dts/Response.d.ts.map +1 -0
  57. package/dist/dts/Telemetry.d.ts +520 -0
  58. package/dist/dts/Telemetry.d.ts.map +1 -0
  59. package/dist/dts/Tokenizer.d.ts +131 -13
  60. package/dist/dts/Tokenizer.d.ts.map +1 -1
  61. package/dist/dts/Tool.d.ts +876 -0
  62. package/dist/dts/Tool.d.ts.map +1 -0
  63. package/dist/dts/Toolkit.d.ts +310 -0
  64. package/dist/dts/Toolkit.d.ts.map +1 -0
  65. package/dist/dts/index.d.ts +498 -13
  66. package/dist/dts/index.d.ts.map +1 -1
  67. package/dist/esm/AiError.js +570 -10
  68. package/dist/esm/AiError.js.map +1 -1
  69. package/dist/esm/Chat.js +291 -0
  70. package/dist/esm/Chat.js.map +1 -0
  71. package/dist/esm/EmbeddingModel.js +173 -0
  72. package/dist/esm/EmbeddingModel.js.map +1 -0
  73. package/dist/esm/IdGenerator.js +245 -0
  74. package/dist/esm/IdGenerator.js.map +1 -0
  75. package/dist/esm/LanguageModel.js +572 -0
  76. package/dist/esm/LanguageModel.js.map +1 -0
  77. package/dist/esm/McpServer.js +12 -4
  78. package/dist/esm/McpServer.js.map +1 -1
  79. package/dist/esm/Model.js +108 -0
  80. package/dist/esm/Model.js.map +1 -0
  81. package/dist/esm/Prompt.js +633 -0
  82. package/dist/esm/Prompt.js.map +1 -0
  83. package/dist/esm/Response.js +619 -0
  84. package/dist/esm/Response.js.map +1 -0
  85. package/dist/esm/Telemetry.js +166 -0
  86. package/dist/esm/Telemetry.js.map +1 -0
  87. package/dist/esm/Tokenizer.js +87 -8
  88. package/dist/esm/Tokenizer.js.map +1 -1
  89. package/dist/esm/Tool.js +534 -0
  90. package/dist/esm/Tool.js.map +1 -0
  91. package/dist/esm/Toolkit.js +269 -0
  92. package/dist/esm/Toolkit.js.map +1 -0
  93. package/dist/esm/index.js +498 -13
  94. package/dist/esm/index.js.map +1 -1
  95. package/package.json +76 -68
  96. package/src/AiError.ts +739 -9
  97. package/src/Chat.ts +546 -0
  98. package/src/EmbeddingModel.ts +311 -0
  99. package/src/IdGenerator.ts +320 -0
  100. package/src/LanguageModel.ts +1074 -0
  101. package/src/McpServer.ts +337 -194
  102. package/src/Model.ts +155 -0
  103. package/src/Prompt.ts +1616 -0
  104. package/src/Response.ts +2131 -0
  105. package/src/Telemetry.ts +655 -0
  106. package/src/Tokenizer.ts +145 -24
  107. package/src/Tool.ts +1267 -0
  108. package/src/Toolkit.ts +516 -0
  109. package/src/index.ts +499 -13
  110. package/AiChat/package.json +0 -6
  111. package/AiEmbeddingModel/package.json +0 -6
  112. package/AiInput/package.json +0 -6
  113. package/AiLanguageModel/package.json +0 -6
  114. package/AiModel/package.json +0 -6
  115. package/AiResponse/package.json +0 -6
  116. package/AiTelemetry/package.json +0 -6
  117. package/AiTool/package.json +0 -6
  118. package/AiToolkit/package.json +0 -6
  119. package/dist/cjs/AiChat.js +0 -122
  120. package/dist/cjs/AiChat.js.map +0 -1
  121. package/dist/cjs/AiEmbeddingModel.js +0 -109
  122. package/dist/cjs/AiEmbeddingModel.js.map +0 -1
  123. package/dist/cjs/AiInput.js +0 -458
  124. package/dist/cjs/AiInput.js.map +0 -1
  125. package/dist/cjs/AiLanguageModel.js +0 -351
  126. package/dist/cjs/AiLanguageModel.js.map +0 -1
  127. package/dist/cjs/AiModel.js +0 -37
  128. package/dist/cjs/AiModel.js.map +0 -1
  129. package/dist/cjs/AiResponse.js +0 -681
  130. package/dist/cjs/AiResponse.js.map +0 -1
  131. package/dist/cjs/AiTelemetry.js +0 -58
  132. package/dist/cjs/AiTelemetry.js.map +0 -1
  133. package/dist/cjs/AiTool.js +0 -150
  134. package/dist/cjs/AiTool.js.map +0 -1
  135. package/dist/cjs/AiToolkit.js +0 -157
  136. package/dist/cjs/AiToolkit.js.map +0 -1
  137. package/dist/cjs/internal/common.js +0 -21
  138. package/dist/cjs/internal/common.js.map +0 -1
  139. package/dist/dts/AiChat.d.ts +0 -101
  140. package/dist/dts/AiChat.d.ts.map +0 -1
  141. package/dist/dts/AiEmbeddingModel.d.ts +0 -65
  142. package/dist/dts/AiEmbeddingModel.d.ts.map +0 -1
  143. package/dist/dts/AiInput.d.ts +0 -590
  144. package/dist/dts/AiInput.d.ts.map +0 -1
  145. package/dist/dts/AiLanguageModel.d.ts +0 -302
  146. package/dist/dts/AiLanguageModel.d.ts.map +0 -1
  147. package/dist/dts/AiModel.d.ts +0 -25
  148. package/dist/dts/AiModel.d.ts.map +0 -1
  149. package/dist/dts/AiResponse.d.ts +0 -863
  150. package/dist/dts/AiResponse.d.ts.map +0 -1
  151. package/dist/dts/AiTelemetry.d.ts +0 -242
  152. package/dist/dts/AiTelemetry.d.ts.map +0 -1
  153. package/dist/dts/AiTool.d.ts +0 -334
  154. package/dist/dts/AiTool.d.ts.map +0 -1
  155. package/dist/dts/AiToolkit.d.ts +0 -96
  156. package/dist/dts/AiToolkit.d.ts.map +0 -1
  157. package/dist/dts/internal/common.d.ts +0 -2
  158. package/dist/dts/internal/common.d.ts.map +0 -1
  159. package/dist/esm/AiChat.js +0 -111
  160. package/dist/esm/AiChat.js.map +0 -1
  161. package/dist/esm/AiEmbeddingModel.js +0 -98
  162. package/dist/esm/AiEmbeddingModel.js.map +0 -1
  163. package/dist/esm/AiInput.js +0 -433
  164. package/dist/esm/AiInput.js.map +0 -1
  165. package/dist/esm/AiLanguageModel.js +0 -340
  166. package/dist/esm/AiLanguageModel.js.map +0 -1
  167. package/dist/esm/AiModel.js +0 -29
  168. package/dist/esm/AiModel.js.map +0 -1
  169. package/dist/esm/AiResponse.js +0 -657
  170. package/dist/esm/AiResponse.js.map +0 -1
  171. package/dist/esm/AiTelemetry.js +0 -48
  172. package/dist/esm/AiTelemetry.js.map +0 -1
  173. package/dist/esm/AiTool.js +0 -134
  174. package/dist/esm/AiTool.js.map +0 -1
  175. package/dist/esm/AiToolkit.js +0 -147
  176. package/dist/esm/AiToolkit.js.map +0 -1
  177. package/dist/esm/internal/common.js +0 -14
  178. package/dist/esm/internal/common.js.map +0 -1
  179. package/src/AiChat.ts +0 -251
  180. package/src/AiEmbeddingModel.ts +0 -169
  181. package/src/AiInput.ts +0 -602
  182. package/src/AiLanguageModel.ts +0 -685
  183. package/src/AiModel.ts +0 -53
  184. package/src/AiResponse.ts +0 -986
  185. package/src/AiTelemetry.ts +0 -333
  186. package/src/AiTool.ts +0 -579
  187. package/src/AiToolkit.ts +0 -265
  188. package/src/internal/common.ts +0 -12
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.make = exports.layer = exports.defaultIdGenerator = exports.IdGenerator = void 0;
7
+ var Cause = _interopRequireWildcard(require("effect/Cause"));
8
+ var Context = _interopRequireWildcard(require("effect/Context"));
9
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
+ var Layer = _interopRequireWildcard(require("effect/Layer"));
11
+ var Predicate = _interopRequireWildcard(require("effect/Predicate"));
12
+ var Random = _interopRequireWildcard(require("effect/Random"));
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
15
+ * The `IdGenerator` module provides a pluggable system for generating unique identifiers
16
+ * for tool calls and other items in the Effect AI SDKs.
17
+ *
18
+ * This module offers a flexible and configurable approach to ID generation, supporting
19
+ * custom alphabets, prefixes, separators, and sizes.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { IdGenerator } from "@effect/ai"
24
+ * import { Effect, Layer } from "effect"
25
+ *
26
+ * // Using the default ID generator
27
+ * const program = Effect.gen(function* () {
28
+ * const idGen = yield* IdGenerator.IdGenerator
29
+ * const toolCallId = yield* idGen.generateId()
30
+ * console.log(toolCallId) // "id_A7xK9mP2qR5tY8uV"
31
+ * return toolCallId
32
+ * }).pipe(
33
+ * Effect.provide(Layer.succeed(
34
+ * IdGenerator.IdGenerator,
35
+ * IdGenerator.defaultIdGenerator
36
+ * ))
37
+ * )
38
+ * ```
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * import { IdGenerator } from "@effect/ai"
43
+ * import { Effect, Layer } from "effect"
44
+ *
45
+ * // Creating a custom ID generator for AI tool calls
46
+ * const customLayer = IdGenerator.layer({
47
+ * alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
48
+ * prefix: "tool_call",
49
+ * separator: "-",
50
+ * size: 12
51
+ * })
52
+ *
53
+ * const program = Effect.gen(function* () {
54
+ * const idGen = yield* IdGenerator.IdGenerator
55
+ * const id = yield* idGen.generateId()
56
+ * console.log(id) // "tool_call-A7XK9MP2QR5T"
57
+ * return id
58
+ * }).pipe(
59
+ * Effect.provide(customLayer)
60
+ * )
61
+ * ```
62
+ *
63
+ * @since 1.0.0
64
+ */
65
+
66
+ /**
67
+ * The `IdGenerator` service tag for dependency injection.
68
+ *
69
+ * This tag is used to provide and access ID generation functionality throughout
70
+ * the application. It follows Effect's standard service pattern for type-safe
71
+ * dependency injection.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * import { IdGenerator } from "@effect/ai"
76
+ * import { Effect } from "effect"
77
+ *
78
+ * const useIdGenerator = Effect.gen(function* () {
79
+ * const idGenerator = yield* IdGenerator.IdGenerator
80
+ * const newId = yield* idGenerator.generateId()
81
+ * return newId
82
+ * })
83
+ * ```
84
+ *
85
+ * @since 1.0.0
86
+ * @category Models
87
+ */
88
+ class IdGenerator extends /*#__PURE__*/Context.Tag("@effect/ai/IdGenerator")() {}
89
+ exports.IdGenerator = IdGenerator;
90
+ const DEFAULT_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
91
+ const DEFAULT_SEPARATOR = "_";
92
+ const DEFAULT_SIZE = 16;
93
+ const makeGenerator = ({
94
+ alphabet = DEFAULT_ALPHABET,
95
+ prefix,
96
+ separator = DEFAULT_SEPARATOR,
97
+ size = DEFAULT_SIZE
98
+ }) => {
99
+ const alphabetLength = alphabet.length;
100
+ return Effect.fnUntraced(function* () {
101
+ const chars = new Array(size);
102
+ for (let i = 0; i < size; i++) {
103
+ chars[i] = alphabet[(yield* Random.next) * alphabetLength | 0];
104
+ }
105
+ const identifier = chars.join("");
106
+ if (Predicate.isUndefined(prefix)) {
107
+ return identifier;
108
+ }
109
+ return `${prefix}${separator}${identifier}`;
110
+ });
111
+ };
112
+ /**
113
+ * Default ID generator service implementation.
114
+ *
115
+ * Uses the standard configuration with "id" prefix and generates IDs in the
116
+ * format "id_XXXXXXXXXXXXXXXX" where X represents random alphanumeric
117
+ * characters.
118
+ *
119
+ * @example
120
+ * ```ts
121
+ * import { IdGenerator } from "@effect/ai"
122
+ * import { Effect, Layer } from "effect"
123
+ *
124
+ * const program = Effect.gen(function* () {
125
+ * const id = yield* IdGenerator.defaultIdGenerator.generateId()
126
+ * console.log(id) // "id_A7xK9mP2qR5tY8uV"
127
+ * return id
128
+ * })
129
+ *
130
+ * // Or provide it as a service
131
+ * const withDefault = program.pipe(
132
+ * Effect.provideService(
133
+ * IdGenerator.IdGenerator,
134
+ * IdGenerator.defaultIdGenerator
135
+ * )
136
+ * )
137
+ * ```
138
+ *
139
+ * @since 1.0.0
140
+ * @category Constructors
141
+ */
142
+ const defaultIdGenerator = exports.defaultIdGenerator = {
143
+ generateId: /*#__PURE__*/makeGenerator({
144
+ prefix: "id"
145
+ })
146
+ };
147
+ /**
148
+ * Creates a custom ID generator service with the specified options.
149
+ *
150
+ * Validates the configuration to ensure the separator is not part of the
151
+ * alphabet, which would cause ambiguity in parsing generated IDs.
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * import { IdGenerator } from "@effect/ai"
156
+ * import { Effect } from "effect"
157
+ *
158
+ * const program = Effect.gen(function* () {
159
+ * // Create a generator for AI assistant message IDs
160
+ * const messageIdGen = yield* IdGenerator.make({
161
+ * alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
162
+ * prefix: "msg",
163
+ * separator: "-",
164
+ * size: 10
165
+ * })
166
+ *
167
+ * const messageId = yield* messageIdGen.generateId()
168
+ * console.log(messageId) // "msg-A7X9K2M5P8"
169
+ * return messageId
170
+ * })
171
+ * ```
172
+ *
173
+ * @example
174
+ * ```ts
175
+ * import { IdGenerator } from "@effect/ai"
176
+ * import { Effect } from "effect"
177
+ *
178
+ * // This will fail with IllegalArgumentException
179
+ * const invalidConfig = IdGenerator.make({
180
+ * alphabet: "ABC123",
181
+ * prefix: "test",
182
+ * separator: "A", // Error: separator is part of alphabet
183
+ * size: 8
184
+ * })
185
+ *
186
+ * const program = Effect.gen(function* () {
187
+ * const generator = yield* invalidConfig
188
+ * return generator
189
+ * }).pipe(
190
+ * Effect.catchAll(error =>
191
+ * Effect.succeed(`Configuration error: ${error.message}`)
192
+ * )
193
+ * )
194
+ * ```
195
+ *
196
+ * @since 1.0.0
197
+ * @category Constructors
198
+ */
199
+ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* ({
200
+ alphabet = DEFAULT_ALPHABET,
201
+ prefix,
202
+ separator = DEFAULT_SEPARATOR,
203
+ size = DEFAULT_SIZE
204
+ }) {
205
+ if (alphabet.includes(separator)) {
206
+ const message = `The separator "${separator}" must not be part of the alphabet "${alphabet}".`;
207
+ return yield* new Cause.IllegalArgumentException(message);
208
+ }
209
+ const generateId = makeGenerator({
210
+ alphabet,
211
+ prefix,
212
+ separator,
213
+ size
214
+ });
215
+ return {
216
+ generateId
217
+ };
218
+ });
219
+ /**
220
+ * Creates a Layer that provides the IdGenerator service with custom
221
+ * configuration.
222
+ *
223
+ * This is the recommended way to provide ID generation capabilities to your
224
+ * application. The layer will fail during construction if the configuration is
225
+ * invalid.
226
+ *
227
+ * @example
228
+ * ```ts
229
+ * import { IdGenerator } from "@effect/ai"
230
+ * import { Effect, Layer } from "effect"
231
+ *
232
+ * // Create a layer for generating AI tool call IDs
233
+ * const toolCallIdLayer = IdGenerator.layer({
234
+ * alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
235
+ * prefix: "tool_call",
236
+ * separator: "_",
237
+ * size: 12
238
+ * })
239
+ *
240
+ * const program = Effect.gen(function* () {
241
+ * const idGen = yield* IdGenerator.IdGenerator
242
+ * const toolCallId = yield* idGen.generateId()
243
+ * console.log(toolCallId) // "tool_call_A7XK9MP2QR5T"
244
+ * return toolCallId
245
+ * }).pipe(
246
+ * Effect.provide(toolCallIdLayer)
247
+ * )
248
+ * ```
249
+ *
250
+ * @since 1.0.0
251
+ * @category Constructors
252
+ */
253
+ const layer = options => Layer.effect(IdGenerator, make(options));
254
+ exports.layer = layer;
255
+ //# sourceMappingURL=IdGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdGenerator.js","names":["Cause","_interopRequireWildcard","require","Context","Effect","Layer","Predicate","Random","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","IdGenerator","Tag","exports","DEFAULT_ALPHABET","DEFAULT_SEPARATOR","DEFAULT_SIZE","makeGenerator","alphabet","prefix","separator","size","alphabetLength","length","fnUntraced","chars","Array","next","identifier","join","isUndefined","defaultIdGenerator","generateId","make","includes","message","IllegalArgumentException","layer","options","effect"],"sources":["../../src/IdGenerator.ts"],"sourcesContent":[null],"mappings":";;;;;;AAmDA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,uBAAA,CAAAC,OAAA;AAAuC,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAxDvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA;;;;;;;;;;;;;;;;;;;;;;AAsBM,MAAOkB,WAAY,sBAAQxB,OAAO,CAACyB,GAAG,CAAC,wBAAwB,CAAC,EAGnE;AAAAC,OAAA,CAAAF,WAAA,GAAAA,WAAA;AAyEH,MAAMG,gBAAgB,GAAG,gEAAgE;AACzF,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,YAAY,GAAG,EAAE;AAEvB,MAAMC,aAAa,GAAGA,CAAC;EACrBC,QAAQ,GAAGJ,gBAAgB;EAC3BK,MAAM;EACNC,SAAS,GAAGL,iBAAiB;EAC7BM,IAAI,GAAGL;AAAY,CACE,KAAI;EACzB,MAAMM,cAAc,GAAGJ,QAAQ,CAACK,MAAM;EACtC,OAAOnC,MAAM,CAACoC,UAAU,CAAC,aAAS;IAChC,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAACL,IAAI,CAAC;IAC7B,KAAK,IAAItB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,IAAI,EAAEtB,CAAC,EAAE,EAAE;MAC7B0B,KAAK,CAAC1B,CAAC,CAAC,GAAGmB,QAAQ,CAAE,CAAC,OAAO3B,MAAM,CAACoC,IAAI,IAAIL,cAAc,GAAI,CAAC,CAAC;IAClE;IACA,MAAMM,UAAU,GAAGH,KAAK,CAACI,IAAI,CAAC,EAAE,CAAC;IACjC,IAAIvC,SAAS,CAACwC,WAAW,CAACX,MAAM,CAAC,EAAE;MACjC,OAAOS,UAAU;IACnB;IACA,OAAO,GAAGT,MAAM,GAAGC,SAAS,GAAGQ,UAAU,EAAE;EAC7C,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAMG,kBAAkB,GAAAlB,OAAA,CAAAkB,kBAAA,GAAY;EACzCC,UAAU,eAAEf,aAAa,CAAC;IAAEE,MAAM,EAAE;EAAI,CAAE;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDO,MAAMc,IAAI,GAAApB,OAAA,CAAAoB,IAAA,gBAAG7C,MAAM,CAACoC,UAAU,CAAC,WAAU;EAC9CN,QAAQ,GAAGJ,gBAAgB;EAC3BK,MAAM;EACNC,SAAS,GAAGL,iBAAiB;EAC7BM,IAAI,GAAGL;AAAY,CACP;EACZ,IAAIE,QAAQ,CAACgB,QAAQ,CAACd,SAAS,CAAC,EAAE;IAChC,MAAMe,OAAO,GAAG,kBAAkBf,SAAS,uCAAuCF,QAAQ,IAAI;IAC9F,OAAO,OAAO,IAAIlC,KAAK,CAACoD,wBAAwB,CAACD,OAAO,CAAC;EAC3D;EAEA,MAAMH,UAAU,GAAGf,aAAa,CAAC;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,SAAS;IAAEC;EAAI,CAAE,CAAC;EAEvE,OAAO;IACLW;GACQ;AACZ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,MAAMK,KAAK,GAAIC,OAAoB,IACxCjD,KAAK,CAACkD,MAAM,CAAC5B,WAAW,EAAEsB,IAAI,CAACK,OAAO,CAAC,CAAC;AAAAzB,OAAA,CAAAwB,KAAA,GAAAA,KAAA","ignoreList":[]}