@llumiverse/drivers 0.19.0 → 0.20.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 (49) hide show
  1. package/lib/cjs/bedrock/converse.js +181 -123
  2. package/lib/cjs/bedrock/converse.js.map +1 -1
  3. package/lib/cjs/bedrock/index.js +152 -70
  4. package/lib/cjs/bedrock/index.js.map +1 -1
  5. package/lib/cjs/vertexai/index.js +1 -0
  6. package/lib/cjs/vertexai/index.js.map +1 -1
  7. package/lib/cjs/vertexai/models/claude.js +227 -118
  8. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  9. package/lib/cjs/vertexai/models/gemini.js +110 -70
  10. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  11. package/lib/cjs/vertexai/models/imagen.js +2 -2
  12. package/lib/cjs/vertexai/models/imagen.js.map +1 -1
  13. package/lib/cjs/watsonx/index.js +10 -10
  14. package/lib/cjs/watsonx/index.js.map +1 -1
  15. package/lib/esm/bedrock/converse.js +180 -122
  16. package/lib/esm/bedrock/converse.js.map +1 -1
  17. package/lib/esm/bedrock/index.js +153 -71
  18. package/lib/esm/bedrock/index.js.map +1 -1
  19. package/lib/esm/vertexai/index.js +1 -0
  20. package/lib/esm/vertexai/index.js.map +1 -1
  21. package/lib/esm/vertexai/models/claude.js +228 -119
  22. package/lib/esm/vertexai/models/claude.js.map +1 -1
  23. package/lib/esm/vertexai/models/gemini.js +109 -70
  24. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  25. package/lib/esm/vertexai/models/imagen.js +2 -2
  26. package/lib/esm/vertexai/models/imagen.js.map +1 -1
  27. package/lib/esm/watsonx/index.js +10 -10
  28. package/lib/esm/watsonx/index.js.map +1 -1
  29. package/lib/types/bedrock/converse.d.ts +2 -2
  30. package/lib/types/bedrock/converse.d.ts.map +1 -1
  31. package/lib/types/bedrock/index.d.ts +5 -5
  32. package/lib/types/bedrock/index.d.ts.map +1 -1
  33. package/lib/types/vertexai/index.d.ts +2 -3
  34. package/lib/types/vertexai/index.d.ts.map +1 -1
  35. package/lib/types/vertexai/models/claude.d.ts +5 -7
  36. package/lib/types/vertexai/models/claude.d.ts.map +1 -1
  37. package/lib/types/vertexai/models/gemini.d.ts +4 -2
  38. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  39. package/lib/types/vertexai/models.d.ts +2 -2
  40. package/lib/types/vertexai/models.d.ts.map +1 -1
  41. package/package.json +12 -12
  42. package/src/bedrock/converse.ts +194 -129
  43. package/src/bedrock/index.ts +177 -82
  44. package/src/vertexai/index.ts +3 -3
  45. package/src/vertexai/models/claude.ts +268 -138
  46. package/src/vertexai/models/gemini.ts +120 -77
  47. package/src/vertexai/models/imagen.ts +3 -3
  48. package/src/vertexai/models.ts +2 -2
  49. package/src/watsonx/index.ts +12 -12
@@ -13,28 +13,59 @@ function claudeFinishReason(reason) {
13
13
  default: return reason; //stop_sequence
14
14
  }
15
15
  }
16
- function collectTextParts(content) {
16
+ function collectTools(content) {
17
17
  const out = [];
18
18
  for (const block of content) {
19
- if (block?.text) {
20
- out.push(block.text);
19
+ if (block.type === "tool_use") {
20
+ out.push({
21
+ id: block.id,
22
+ tool_name: block.name,
23
+ tool_input: block.input,
24
+ });
21
25
  }
22
26
  }
23
- return out.join('\n');
27
+ return out.length > 0 ? out : undefined;
24
28
  }
25
- function maxToken(max_tokens, model) {
26
- const contains = (str, substr) => str.indexOf(substr) !== -1;
27
- if (max_tokens) {
28
- return max_tokens;
29
+ function collectAllTextContent(content, includeThoughts = false) {
30
+ const textParts = [];
31
+ // First pass: collect thinking blocks
32
+ if (includeThoughts) {
33
+ for (const block of content) {
34
+ if (block.type === 'thinking' && block.thinking) {
35
+ textParts.push(block.thinking);
36
+ }
37
+ else if (block.type === 'redacted_thinking' && block.data) {
38
+ textParts.push(`[Redacted thinking: ${block.data}]`);
39
+ }
40
+ }
41
+ if (textParts.length > 0) {
42
+ textParts.push(''); // Create a new line after thinking blocks
43
+ }
29
44
  }
30
- else if (contains(model, "claude-3-5")) {
31
- return 8192;
45
+ // Second pass: collect text blocks
46
+ for (const block of content) {
47
+ if (block.type === 'text' && block.text) {
48
+ textParts.push(block.text);
49
+ }
50
+ }
51
+ return textParts.join('\n');
52
+ }
53
+ //Used to get a max_token value when not specified in the model options. Claude requires it to be set.
54
+ function maxToken(option) {
55
+ const modelOptions = option.model_options;
56
+ if (modelOptions && typeof modelOptions.max_tokens === "number") {
57
+ return modelOptions.max_tokens;
32
58
  }
33
59
  else {
34
- return 4096;
60
+ // Fallback to the default max tokens limit for the model
61
+ if (option.model.includes('claude-3-7-sonnet') && (modelOptions?.thinking_budget_tokens ?? 0) < 64000) {
62
+ return 64000; // Claude 3.7 can go up to 128k with a beta header, but when no max tokens is specified, we default to 64k.
63
+ }
64
+ return (0, core_1.getMaxTokensLimitVertexAi)(option.model);
35
65
  }
36
66
  }
37
- async function collectImageBlocks(segment, contentBlocks) {
67
+ async function collectFileBlocks(segment, restrictedTypes = false) {
68
+ const contentBlocks = [];
38
69
  for (const file of segment.files || []) {
39
70
  if (file.mime_type?.startsWith("image/")) {
40
71
  const allowedTypes = ["image/png", "image/jpeg", "image/gif", "image/webp"];
@@ -51,17 +82,32 @@ async function collectImageBlocks(segment, contentBlocks) {
51
82
  }
52
83
  });
53
84
  }
54
- else if (file.mime_type?.startsWith("text/")) {
55
- contentBlocks.push({
56
- source: {
57
- type: 'text',
58
- data: await (0, core_1.readStreamAsBase64)(await file.getStream()),
59
- media_type: 'text/plain'
60
- },
61
- type: 'document'
62
- });
85
+ else if (!restrictedTypes) {
86
+ if (file.mime_type === "application/pdf") {
87
+ contentBlocks.push({
88
+ title: file.name,
89
+ type: 'document',
90
+ source: {
91
+ type: 'base64',
92
+ data: await (0, core_1.readStreamAsBase64)(await file.getStream()),
93
+ media_type: 'application/pdf'
94
+ }
95
+ });
96
+ }
97
+ else if (file.mime_type?.startsWith("text/")) {
98
+ contentBlocks.push({
99
+ title: file.name,
100
+ type: 'document',
101
+ source: {
102
+ type: 'text',
103
+ data: await (0, core_1.readStreamAsString)(await file.getStream()),
104
+ media_type: 'text/plain'
105
+ }
106
+ });
107
+ }
63
108
  }
64
109
  }
110
+ return contentBlocks;
65
111
  }
66
112
  class ClaudeModelDefinition {
67
113
  model;
@@ -76,64 +122,87 @@ class ClaudeModelDefinition {
76
122
  }
77
123
  async createPrompt(_driver, segments, options) {
78
124
  // Convert the prompt to the format expected by the Claude API
79
- const systemSegments = segments
125
+ let system = segments
80
126
  .filter(segment => segment.role === core_1.PromptRole.system)
81
127
  .map(segment => ({
82
128
  text: segment.content,
83
129
  type: 'text'
84
130
  }));
85
- const safetySegments = segments
86
- .filter(segment => segment.role === core_1.PromptRole.safety)
87
- .map(segment => ({
88
- text: segment.content,
89
- type: 'text'
90
- }));
91
131
  if (options.result_schema) {
132
+ let schemaText = '';
133
+ if (options.tools && options.tools.length > 0) {
134
+ schemaText = "When not calling tools, the answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema);
135
+ }
136
+ else {
137
+ schemaText = "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema);
138
+ }
92
139
  const schemaSegments = {
93
- text: "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema),
140
+ text: schemaText,
94
141
  type: 'text'
95
142
  };
96
- safetySegments.push(schemaSegments);
143
+ system.push(schemaSegments);
97
144
  }
98
- const messages = [];
145
+ let messages = [];
146
+ const safetyMessages = [];
99
147
  for (const segment of segments) {
100
- if (segment.role === core_1.PromptRole.system || segment.role === core_1.PromptRole.safety) {
148
+ if (segment.role === core_1.PromptRole.system) {
101
149
  continue;
102
150
  }
103
151
  if (segment.role === core_1.PromptRole.tool) {
104
152
  if (!segment.tool_use_id) {
105
- throw new Error("Tool prompt segment must have a tool_use_id");
153
+ throw new Error("Tool prompt segment must have a tool use ID");
106
154
  }
107
- const imageBlocks = [];
108
- await collectImageBlocks(segment, imageBlocks);
155
+ // Build content blocks for tool results (restricted types)
156
+ const contentBlocks = [];
157
+ if (segment.content) {
158
+ contentBlocks.push({
159
+ type: 'text',
160
+ text: segment.content
161
+ });
162
+ }
163
+ // Collect file blocks with type safety
164
+ const fileBlocks = await collectFileBlocks(segment, true);
165
+ contentBlocks.push(...fileBlocks);
109
166
  messages.push({
110
167
  role: 'user',
111
168
  content: [{
112
169
  type: 'tool_result',
113
170
  tool_use_id: segment.tool_use_id,
114
- content: [{
115
- type: 'text',
116
- text: segment.content || ''
117
- }, ...imageBlocks]
171
+ content: contentBlocks,
118
172
  }]
119
173
  });
120
174
  }
121
175
  else {
176
+ // Build content blocks for regular messages (all types allowed)
122
177
  const contentBlocks = [];
123
- collectImageBlocks(segment, contentBlocks);
124
178
  if (segment.content) {
125
179
  contentBlocks.push({
126
180
  type: 'text',
127
181
  text: segment.content
128
182
  });
129
183
  }
130
- messages.push({
184
+ // Collect file blocks without restrictions
185
+ const fileBlocks = await collectFileBlocks(segment, false);
186
+ contentBlocks.push(...fileBlocks);
187
+ if (contentBlocks.length === 0) {
188
+ continue; // skip empty segments
189
+ }
190
+ const messageParam = {
131
191
  role: segment.role === core_1.PromptRole.assistant ? 'assistant' : 'user',
132
192
  content: contentBlocks
133
- });
193
+ };
194
+ if (segment.role === core_1.PromptRole.safety) {
195
+ safetyMessages.push(messageParam);
196
+ }
197
+ else {
198
+ messages.push(messageParam);
199
+ }
134
200
  }
135
201
  }
136
- const system = systemSegments.concat(safetySegments);
202
+ messages = messages.concat(safetyMessages);
203
+ if (system && system.length === 0) {
204
+ system = undefined; // If system is empty, set to undefined
205
+ }
137
206
  return {
138
207
  messages: messages,
139
208
  system: system
@@ -141,42 +210,27 @@ class ClaudeModelDefinition {
141
210
  }
142
211
  async requestTextCompletion(driver, prompt, options) {
143
212
  const client = driver.getAnthropicClient();
144
- const splits = options.model.split("/");
145
- const modelName = splits[splits.length - 1];
146
- options = { ...options, model: modelName };
147
213
  options.model_options = options.model_options;
148
214
  if (options.model_options?._option_id !== "vertexai-claude") {
149
215
  driver.logger.warn("Invalid model options", { options: options.model_options });
150
216
  }
151
217
  let conversation = updateConversation(options.conversation, prompt);
152
- const result = await client.messages.create({
153
- ...conversation, // messages, system,
154
- tools: options.tools, // we are using the same shape as claude for tools
155
- temperature: options.model_options?.temperature,
156
- model: modelName,
157
- max_tokens: maxToken(options.model_options?.max_tokens, modelName),
158
- top_p: options.model_options?.top_p,
159
- top_k: options.model_options?.top_k,
160
- stop_sequences: options.model_options?.stop_sequence,
161
- thinking: options.model_options?.thinking_mode ?
162
- {
163
- budget_tokens: options.model_options?.thinking_budget_tokens ?? 1024,
164
- type: "enabled"
165
- } : {
166
- type: "disabled"
167
- }
168
- });
169
- const text = collectTextParts(result.content);
218
+ const { payload, requestOptions } = getClaudePayload(options, conversation);
219
+ // disable streaming, the create function is overloaded so payload type matters.
220
+ const nonStreamingPayload = { ...payload, stream: false };
221
+ const result = await client.messages.create(nonStreamingPayload, requestOptions);
222
+ // Use the new function to collect text content, including thinking if enabled
223
+ const includeThoughts = options.model_options?.include_thoughts ?? false;
224
+ const text = collectAllTextContent(result.content, includeThoughts);
170
225
  const tool_use = collectTools(result.content);
171
226
  conversation = updateConversation(conversation, createPromptFromResponse(result));
172
227
  return {
173
- chat: [prompt, { role: result.role, content: result.content }],
174
228
  result: text ?? '',
175
229
  tool_use,
176
230
  token_usage: {
177
- prompt: result?.usage.input_tokens,
178
- result: result?.usage.output_tokens,
179
- total: result?.usage.input_tokens + result?.usage.output_tokens
231
+ prompt: result.usage.input_tokens,
232
+ result: result.usage.output_tokens,
233
+ total: result.usage.input_tokens + result.usage.output_tokens
180
234
  },
181
235
  // make sure we set finish_reason to the correct value (claude is normally setting this by itself)
182
236
  finish_reason: tool_use ? "tool_use" : claudeFinishReason(result?.stop_reason ?? ''),
@@ -185,68 +239,88 @@ class ClaudeModelDefinition {
185
239
  }
186
240
  async requestTextCompletionStream(driver, prompt, options) {
187
241
  const client = driver.getAnthropicClient();
188
- const splits = options.model.split("/");
189
- const modelName = splits[splits.length - 1];
190
- options = { ...options, model: modelName };
191
- options.model_options = options.model_options;
192
- if (options.model_options?._option_id !== "vertexai-claude") {
242
+ const model_options = options.model_options;
243
+ if (model_options?._option_id !== "vertexai-claude") {
193
244
  driver.logger.warn("Invalid model options", { options: options.model_options });
194
245
  }
195
- const response_stream = await client.messages.stream({
196
- ...prompt, // messages, system,
197
- tools: options.tools, // we are using the same shape as claude for tools
198
- temperature: options.model_options?.temperature,
199
- model: modelName,
200
- max_tokens: maxToken(options.model_options?.max_tokens, modelName),
201
- top_p: options.model_options?.top_p,
202
- top_k: options.model_options?.top_k,
203
- stop_sequences: options.model_options?.stop_sequence,
204
- thinking: options.model_options?.thinking_mode ?
205
- {
206
- budget_tokens: options.model_options?.thinking_budget_tokens ?? 1024,
207
- type: "enabled"
208
- } : {
209
- type: "disabled"
210
- }
211
- });
212
- const stream = (0, async_1.asyncMap)(response_stream, async (item) => {
213
- if (item.type == "message_start") {
214
- return {
215
- result: '',
216
- token_usage: { prompt: item?.message?.usage?.input_tokens, result: item?.message?.usage?.output_tokens },
217
- finish_reason: undefined,
218
- };
246
+ const { payload, requestOptions } = getClaudePayload(options, prompt);
247
+ const streamingPayload = { ...payload, stream: true };
248
+ const response_stream = await client.messages.stream(streamingPayload, requestOptions);
249
+ const stream = (0, async_1.asyncMap)(response_stream, async (streamEvent) => {
250
+ switch (streamEvent.type) {
251
+ case "message_start":
252
+ return {
253
+ result: '',
254
+ token_usage: {
255
+ prompt: streamEvent.message.usage.input_tokens,
256
+ result: streamEvent.message.usage.output_tokens
257
+ }
258
+ };
259
+ case "message_delta":
260
+ return {
261
+ result: '',
262
+ token_usage: {
263
+ result: streamEvent.usage.output_tokens
264
+ },
265
+ finish_reason: claudeFinishReason(streamEvent.delta.stop_reason ?? undefined),
266
+ };
267
+ case "content_block_start":
268
+ // Handle redacted thinking blocks
269
+ if (streamEvent.content_block.type === "redacted_thinking" && model_options?.include_thoughts) {
270
+ return {
271
+ result: `[Redacted thinking: ${streamEvent.content_block.data}]`
272
+ };
273
+ }
274
+ break;
275
+ case "content_block_delta":
276
+ // Handle different delta types
277
+ switch (streamEvent.delta.type) {
278
+ case "text_delta":
279
+ return {
280
+ result: streamEvent.delta.text ?? ''
281
+ };
282
+ case "thinking_delta":
283
+ if (model_options?.include_thoughts) {
284
+ return {
285
+ result: streamEvent.delta.thinking ?? '',
286
+ };
287
+ }
288
+ break;
289
+ case "signature_delta":
290
+ // Signature deltas, signify the end of the thoughts.
291
+ if (model_options?.include_thoughts) {
292
+ return {
293
+ result: '\n\n', // Double newline for more spacing
294
+ };
295
+ }
296
+ break;
297
+ }
298
+ break;
299
+ case "content_block_stop":
300
+ // Handle the end of content blocks, for redacted thinking blocks
301
+ if (model_options?.include_thoughts) {
302
+ return {
303
+ result: '\n\n' // Add double newline for spacing
304
+ };
305
+ }
306
+ break;
219
307
  }
308
+ // Default case for all other event types
220
309
  return {
221
- result: item?.delta?.text ?? '',
222
- token_usage: { result: item?.usage?.output_tokens },
223
- finish_reason: claudeFinishReason(item?.delta?.stop_reason ?? ''),
310
+ result: ''
224
311
  };
225
312
  });
226
313
  return stream;
227
314
  }
228
315
  }
229
316
  exports.ClaudeModelDefinition = ClaudeModelDefinition;
230
- function collectTools(content) {
231
- const out = [];
232
- for (const block of content) {
233
- if (block?.type === "tool_use") {
234
- out.push({
235
- id: block.id,
236
- tool_name: block.name,
237
- tool_input: block.input,
238
- });
239
- }
240
- }
241
- return out.length > 0 ? out : undefined;
242
- }
243
317
  function createPromptFromResponse(response) {
244
318
  return {
245
319
  messages: [{
246
- role: core_1.PromptRole.assistant,
320
+ role: response.role,
247
321
  content: response.content,
248
322
  }],
249
- system: []
323
+ system: undefined
250
324
  };
251
325
  }
252
326
  /**
@@ -256,11 +330,46 @@ function createPromptFromResponse(response) {
256
330
  * @returns
257
331
  */
258
332
  function updateConversation(conversation, prompt) {
259
- const baseSystemMessages = conversation ? conversation.system : [];
260
- const baseMessages = conversation ? conversation.messages : [];
333
+ const baseSystemMessages = conversation?.system || [];
334
+ const baseMessages = conversation?.messages || [];
335
+ const system = baseSystemMessages.concat(prompt.system || []);
261
336
  return {
262
337
  messages: baseMessages.concat(prompt.messages || []),
263
- system: baseSystemMessages.concat(prompt.system || [])
338
+ system: system.length > 0 ? system : undefined // If system is empty, set to undefined
339
+ };
340
+ }
341
+ function getClaudePayload(options, prompt) {
342
+ const splits = options.model.split("/");
343
+ const modelName = splits[splits.length - 1];
344
+ const model_options = options.model_options;
345
+ // Add beta header for Claude 3.7 models to enable 128k output tokens
346
+ let requestOptions = undefined;
347
+ if (modelName.includes('claude-3-7-sonnet') &&
348
+ ((model_options?.max_tokens ?? 0) > 64000 || (model_options?.thinking_budget_tokens ?? 0) > 64000)) {
349
+ requestOptions = {
350
+ headers: {
351
+ 'anthropic-beta': 'output-128k-2025-02-19'
352
+ }
353
+ };
354
+ }
355
+ const payload = {
356
+ messages: prompt.messages,
357
+ system: prompt.system,
358
+ tools: options.tools, // we are using the same shape as claude for tools
359
+ temperature: model_options?.temperature,
360
+ model: modelName,
361
+ max_tokens: maxToken(options),
362
+ top_p: model_options?.top_p,
363
+ top_k: model_options?.top_k,
364
+ stop_sequences: model_options?.stop_sequence,
365
+ thinking: model_options?.thinking_mode ?
366
+ {
367
+ budget_tokens: model_options?.thinking_budget_tokens ?? 1024,
368
+ type: "enabled"
369
+ } : {
370
+ type: "disabled"
371
+ }
264
372
  };
373
+ return { payload, requestOptions };
265
374
  }
266
375
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/vertexai/models/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/vertexai/models/claude.ts"],"names":[],"mappings":";;;AAyBA,oCAcC;AAtCD,2CAG0B;AAC1B,kDAAkD;AAWlD,SAAS,kBAAkB,CAAC,MAA0B;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC;QAC/B,KAAK,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAC;QACnC,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,eAAe;IAC3C,CAAC;AACL,CAAC;AAED,SAAgB,YAAY,CAAC,OAAuB;IAChD,MAAM,GAAG,GAAc,EAAE,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC;gBACL,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,UAAU,EAAE,KAAK,CAAC,KAAmB;aACxC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAuB,EAAE,kBAA2B,KAAK;IACpF,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,sCAAsC;IACtC,IAAI,eAAe,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC1D,SAAS,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C;QAClE,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,sGAAsG;AACtG,SAAS,QAAQ,CAAC,MAAiC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,aAAkD,CAAC;IAC/E,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC9D,OAAO,YAAY,CAAC,UAAU,CAAC;IACnC,CAAC;SAAM,CAAC;QACJ,yDAAyD;QACzD,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;YACpG,OAAO,KAAK,CAAC,CAAC,2GAA2G;QAC7H,CAAC;QACD,OAAO,IAAA,gCAAyB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAKD,KAAK,UAAU,iBAAiB,CAAC,OAAsB,EAAE,kBAA2B,KAAK;IACrF,MAAM,aAAa,GAAwB,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YAC5E,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAA4D,CAAC;YAEnG,aAAa,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM,IAAA,yBAAkB,EAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;oBACtD,UAAU,EAAE,QAAQ;iBACvB;aACsB,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;gBACvC,aAAa,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,MAAM,IAAA,yBAAkB,EAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;wBACtD,UAAU,EAAE,iBAAiB;qBAChC;iBACyB,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,aAAa,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM,IAAA,yBAAkB,EAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;wBACtD,UAAU,EAAE,YAAY;qBAC3B;iBACyB,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,MAAa,qBAAqB;IAE9B,KAAK,CAAS;IAEd,YAAY,OAAe;QACvB,IAAI,CAAC,KAAK,GAAG;YACT,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,gBAAS,CAAC,IAAI;YACpB,UAAU,EAAE,IAAI;SACD,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAuB,EAAE,QAAyB,EAAE,OAAyB;QAC5F,8DAA8D;QAC9D,IAAI,MAAM,GAAiC,QAAQ;aAC9C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,iBAAU,CAAC,MAAM,CAAC;aACrD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,IAAI,EAAE,MAAM;SACf,CAAC,CAAC,CAAC;QAER,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,UAAU,GAAW,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,UAAU,GAAG,6FAA6F,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACvJ,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,qEAAqE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC/H,CAAC;YAED,MAAM,cAAc,GAAmB;gBACnC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,MAAM;aACf,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,QAAQ,GAAmB,EAAE,CAAC;QAClC,MAAM,cAAc,GAAmB,EAAE,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAU,CAAC,MAAM,EAAE,CAAC;gBACrC,SAAS;YACb,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAU,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACnE,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,aAAa,GAA4C,EAAE,CAAC;gBAElE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,aAAa,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO,CAAC,OAAO;qBACC,CAAC,CAAC;gBAChC,CAAC;gBAED,uCAAuC;gBACvC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC1D,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAElC,QAAQ,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,aAAa;4BACnB,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,OAAO,EAAE,aAAa;yBACM,CAAC;iBACpC,CAAC,CAAC;YAEP,CAAC;iBAAM,CAAC;gBACJ,gEAAgE;gBAChE,MAAM,aAAa,GAAwB,EAAE,CAAC;gBAE9C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,aAAa,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO,CAAC,OAAO;qBACC,CAAC,CAAC;gBAChC,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3D,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAElC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,SAAS,CAAC,sBAAsB;gBACpC,CAAC;gBAED,MAAM,YAAY,GAAiB;oBAC/B,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,iBAAU,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;oBAClE,OAAO,EAAE,aAAa;iBACzB,CAAC;gBAEF,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAU,CAAC,MAAM,EAAE,CAAC;oBACrC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACJ,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;QACL,CAAC;QAED,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE3C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,SAAS,CAAC,CAAC,uCAAuC;QAC/D,CAAC;QAED,OAAO;YACH,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,MAAM;SACjB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAsB,EAAE,MAAoB,EAAE,OAAyB;QAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAsC,CAAC;QAEvE,IAAI,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,iBAAiB,EAAE,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAA4B,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5E,gFAAgF;QAChF,MAAM,mBAAmB,GAAoC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAE3F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAmB,CAAC;QAEnG,8EAA8E;QAC9E,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,gBAAgB,IAAI,KAAK,CAAC;QACzE,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9C,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;QAElF,OAAO;YACH,MAAM,EAAE,IAAI,IAAI,EAAE;YAClB,QAAQ;YACR,WAAW,EAAE;gBACT,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;gBACjC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa;aAChE;YACD,kGAAkG;YAClG,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;YACpF,YAAY;SACM,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,MAAsB,EAAE,MAAoB,EAAE,OAAyB;QACrG,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAkD,CAAC;QAEjF,IAAI,aAAa,EAAE,UAAU,KAAK,iBAAiB,EAAE,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAwB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE3E,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,eAAe,EAAE,KAAK,EAAE,WAAkC,EAAE,EAAE;YAClF,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;gBACvB,KAAK,eAAe;oBAChB,OAAO;wBACH,MAAM,EAAE,EAAE;wBACV,WAAW,EAAE;4BACT,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;4BAC9C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa;yBAClD;qBAC4B,CAAC;gBACtC,KAAK,eAAe;oBAChB,OAAO;wBACH,MAAM,EAAE,EAAE;wBACV,WAAW,EAAE;4BACT,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa;yBAC1C;wBACD,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;qBAChD,CAAC;gBACtC,KAAK,qBAAqB;oBACtB,kCAAkC;oBAClC,IAAI,WAAW,CAAC,aAAa,CAAC,IAAI,KAAK,mBAAmB,IAAI,aAAa,EAAE,gBAAgB,EAAE,CAAC;wBAC5F,OAAO;4BACH,MAAM,EAAE,uBAAuB,WAAW,CAAC,aAAa,CAAC,IAAI,GAAG;yBACnC,CAAC;oBACtC,CAAC;oBACD,MAAM;gBACV,KAAK,qBAAqB;oBACtB,+BAA+B;oBAC/B,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC7B,KAAK,YAAY;4BACb,OAAO;gCACH,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;6BACP,CAAC;wBACtC,KAAK,gBAAgB;4BACjB,IAAI,aAAa,EAAE,gBAAgB,EAAE,CAAC;gCAClC,OAAO;oCACH,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE;iCACX,CAAC;4BACtC,CAAC;4BACD,MAAM;wBACV,KAAK,iBAAiB;4BAClB,qDAAqD;4BACrD,IAAI,aAAa,EAAE,gBAAgB,EAAE,CAAC;gCAClC,OAAO;oCACH,MAAM,EAAE,MAAM,EAAE,kCAAkC;iCACrB,CAAC;4BACtC,CAAC;4BACD,MAAM;oBACd,CAAC;oBACD,MAAM;gBACV,KAAK,oBAAoB;oBACrB,iEAAiE;oBACjE,IAAI,aAAa,EAAE,gBAAgB,EAAE,CAAC;wBAClC,OAAO;4BACH,MAAM,EAAE,MAAM,CAAC,iCAAiC;yBACnB,CAAC;oBACtC,CAAC;oBACD,MAAM;YACd,CAAC;YAED,yCAAyC;YACzC,OAAO;gBACH,MAAM,EAAE,EAAE;aACmB,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA3OD,sDA2OC;AAED,SAAS,wBAAwB,CAAC,QAAiB;IAC/C,OAAO;QACH,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC5B,CAAC;QACF,MAAM,EAAE,SAAS;KACpB,CAAA;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,YAA6C,EAAE,MAAoB;IAC3F,MAAM,kBAAkB,GAAG,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO;QACH,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,uCAAuC;KACzF,CAAC;AACN,CAAC;AAKD,SAAS,gBAAgB,CAAC,OAAyB,EAAE,MAAoB;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAsC,CAAC;IAErE,qEAAqE;IACrE,IAAI,cAAc,GAA+B,SAAS,CAAC;IAC3D,IAAI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACvC,CAAC,CAAC,aAAa,EAAE,UAAU,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,EAAE,sBAAsB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACrG,cAAc,GAAG;YACb,OAAO,EAAE;gBACL,gBAAgB,EAAE,wBAAwB;aAC7C;SACJ,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,kDAAkD;QACxE,WAAW,EAAE,aAAa,EAAE,WAAW;QACvC,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,aAAa,EAAE,KAAK;QAC3B,KAAK,EAAE,aAAa,EAAE,KAAK;QAC3B,cAAc,EAAE,aAAa,EAAE,aAAa;QAC5C,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YACpC;gBACI,aAAa,EAAE,aAAa,EAAE,sBAAsB,IAAI,IAAI;gBAC5D,IAAI,EAAE,SAAkB;aAC3B,CAAC,CAAC,CAAC;YACA,IAAI,EAAE,UAAmB;SAC5B;KACR,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AACvC,CAAC"}