@adriangalilea/utils 10.5.0 → 10.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -795,7 +795,7 @@ Telegram's [Threaded Mode](https://telegram.org/blog/threaded-conversations) for
795
795
  | `@adriangalilea/utils/bot/updates` | The pending-update queue of a webhook-less bot token, treated as the destroy-on-read resource it is (`getUpdates` with an offset CONFIRMS — destroys — everything below it). `updateQueue({ token, fetch?, apiRoot? })` → `peek({ limit? })` (webhook state + pending count + the queue head, verbatim; sends NO offset so nothing is ever confirmed — repeatable, zero risk), `count()`, `webhookInfo()`, and `drain({ onBatch, limit?, timeoutS?, quietPolls? })` — the one-chance-safe sweep: each raw batch is handed to `onBatch` (persist it somewhere durable) and AWAITED before the offset advances, because the next call is the confirmation; a crash re-delivers the unconfirmed tail on re-run, and the drain ends only after several consecutive silent long-polls, never on the first empty response. A 409 (webhook registered / competing poller) is a typed `SourcedError`, never a silent retry. Plain `fetch`, injectable for tests; no framework. |
796
796
  | `@adriangalilea/utils/bot/inline-feedback` | Behavioral tripwire for BotFather's inline feedback probability (gates `chosen_inline_result`; defaults 0%, silently resets on bot transfer and inline-mode toggling, invisible to `getMe`): served-but-never-chosen crosses a threshold → throttled admin DM naming the exact BotFather switch. Storage injected as three ops; never throws into the answer path. |
797
797
  | `@adriangalilea/utils/bot/coalesce` | Joins client-split inbound messages back into one. When a user pastes >4096 chars, Telegram clients fragment it into separate `message` updates with no marker. Middleware detects the burst and emits one combined event. |
798
- | `@adriangalilea/utils/llm` | Multi-provider LLM caller on the Vercel AI SDK — the policy layer the SDK doesn't ship. `createLlm({ providers, health? })` → `.stream(req)` (typed events: `delta` / `reasoning` / `reset` / `tool-call` / `end`) and `.complete(req)`. **Failover:** priority-ordered across OpenAI-compatible, Anthropic-compatible, and OpenRouter endpoints; multiple keys per provider (health tracked per key fingerprint); per-key circuit breaker with exponential cool-down persisted in any KV-shaped `HealthStore`; an attempt that dies after emitting yields `reset` (discard, next candidate regenerates); empty completions count as failures. **Accounting:** tokens summed across billed attempts; `costUsd` is the ACTUAL charge (OpenRouter usage accounting via `providerMetadata`, or a `cost` field on the raw usage frame) — never a price-table estimate. **Knobs:** per-model temperature, maxTokens caps, `disableThinking` mapped to each dialect. **Tools:** AI SDK `tool()` + `toolChoice` pass through (re-exported). **Trace:** each call is a `chat` span (kind `inference`) under `log` (a logger or span you pass; the root logger otherwise), and each provider tried is an `attempt` span inside it with OpenTelemetry's gen_ai fields (provider, model, `server.address`, input, cached and output tokens), `cost_usd` when the gateway reports one, `ttft_ms` and `decode_ms`. **Structured output:** `schema` (zod, or `jsonSchema(…, { validate })`) returns the answer parsed and validated as `object`; an answer that fails it fails its provider and the next is tried. A provider with `structuredOutputs: true` enforces the schema while decoding; otherwise the schema is stated in the instructions. **Failures:** an `LlmError` carries `failures`, one per provider tried, typed: `off-schema` (the model answered, not in the schema's shape: its `text`, and `cut` when its token cap stopped it), `empty`, or `failed` (the call itself: its message and HTTP `status`), so a caller tells an answer it can send back to the model from a server that is down. Worker-safe; peers: `ai`, `@ai-sdk/openai-compatible`, `@ai-sdk/anthropic`, `@openrouter/ai-sdk-provider`. |
798
+ | `@adriangalilea/utils/llm` | Multi-provider LLM caller on the Vercel AI SDK — the policy layer the SDK doesn't ship. `createLlm({ providers, health? })` → `.stream(req)` (typed events: `delta` / `reasoning` / `reset` / `tool-call` / `end`) and `.complete(req)`. **Failover:** priority-ordered across OpenAI-compatible, Anthropic-compatible, and OpenRouter endpoints; multiple keys per provider (health tracked per key fingerprint); per-key circuit breaker with exponential cool-down persisted in any KV-shaped `HealthStore`; an attempt that dies after emitting yields `reset` (discard, next candidate regenerates); empty completions count as failures. **Accounting:** tokens summed across billed attempts; `costUsd` is the ACTUAL charge (OpenRouter usage accounting via `providerMetadata`, or a `cost` field on the raw usage frame) — never a price-table estimate. **Knobs:** per-model temperature, maxTokens caps, `disableThinking` mapped to each dialect. **Tools:** AI SDK `tool()` + `toolChoice` pass through (re-exported). **Tool loop:** tools with an `execute` run when called, and `stopWhen` (the AI SDK's stop conditions, re-exported: `stepCountIs`, `hasToolCall`, or any function of the steps) calls the model again with their results until one holds; the result's `messages` are every turn the call added (the model's and its tools' results), to append to the conversation; usage sums every step. `prepareStep` (the AI SDK's step hook) may replace what the model reads from a step on, which carries forward: a conversation kept inside its window; and it may say how much the model reasons on that step (`reasoning`, mapped to the provider's own option, openai-compatible and OpenRouter), over the request's `reasoning`: a loop that thinks only where its task gets hard. `requestTimeoutMs` times each request to a model, never the tools between them (a tool may wait on a person). Once a tool has run, a failure is the call's own: no other provider is tried, since its tools would act again. The AI SDK runs a turn's calls at once; tools that must run in order share a `SerialJobExecutor` (re-exported). **Trace:** each call is a `chat` span (kind `inference`) under `log` (a logger or span you pass; the root logger otherwise), and each provider tried is an `attempt` span inside it with OpenTelemetry's gen_ai fields (provider, model, `server.address`, input, cached and output tokens), `cost_usd` when the gateway reports one, `ttft_ms` and `decode_ms`; each model call of a tool loop is a `step` span inside the attempt, with its calls, its finish reason, its tokens and its own `ttft_ms`/`decode_ms` (a turn's tools run as their calls stream in, so a step's decode includes them). **Structured output:** `schema` (zod, or `jsonSchema(…, { validate })`) returns the answer parsed and validated as `object`; an answer that fails it fails its provider and the next is tried. A provider with `structuredOutputs: true` enforces the schema while decoding; otherwise the schema is stated in the instructions. **Failures:** an `LlmError` carries `failures`, one per provider tried, typed: `off-schema` (the model answered, not in the schema's shape: its `text`, and `cut` when its token cap stopped it), `empty`, or `failed` (the call itself: its message and HTTP `status`), so a caller tells an answer it can send back to the model from a server that is down. Worker-safe; peers: `ai`, `@ai-sdk/openai-compatible`, `@ai-sdk/anthropic`, `@openrouter/ai-sdk-provider`. |
799
799
  | `@adriangalilea/utils/bot/llm` | The Telegram side of an LLM chatbot; the model side is `@adriangalilea/utils/llm`. **Output:** `streamChatReply(ctx, events, opts?)` consumes an `AsyncIterable<LlmStreamEvent>` and paints it with Telegram's native message-draft streaming (`sendMessageDraft` full-frame repaints, throttled ~1/s, keepalive under the ~30s draft TTL), then persists the finished markdown via `ctx.send`, entity-split across 4096 by `@gramio/split`. Reasoning models get a thinking phase — streams into the ephemeral draft and evaporates (`reasoning: 'preview'`, default), persists as an expandable blockquote (`'message'`), or never renders at all (`'hidden'`). Upstream `reset` (provider failover) repaints the draft from scratch. Drafts are private-chat-only (+ BotFather forum-topic mode); elsewhere the preview phase is skipped and only the final send happens. Returns `{ content, reasoning, toolCalls, usage, messages }`. The painter underneath is `@adriangalilea/utils/bot/draft` (`createDraftPreview(ctx, { render, throttleMs? })`): dependency-light (no markdown machinery), for producers that push deltas or own their per-frame rendering (plain or rich-message frames) and persist path, with `streamForensics` (render-regression + reset warnings) built in and exported standalone. **History:** `llmHistory({...})` returns `.plugin` (decorates `ctx.llm` with `.add() / .get() / .clear() / .all() / .clearAll()`, per-(user, thread) OpenAI `ChatMessage` shape, persisted in the shared session record so the menu's 🗑 Forget wipes it automatically) AND `.menuItem` (drop-in "🗑 Delete this thread" for `botMenu` — wipes the LLM history AND calls `deleteForumTopic` so the Telegram thread + all its messages disappear from the chat; falls back to history-only clear when no `threadId` is present). |
800
800
  | `@adriangalilea/utils/metrics` | Declared counters and timings, bounded dimensions, optional actor IDs, and a schema for generic reporting. Inject a store (`store: metricsStore(driver, project)`); measurement failures are reported without rejecting calls. See Product metrics below. |
801
801
  | `@adriangalilea/utils/metrics/sqlite` | Atomic SQLite driver, explicit provisioning schema, and inclusive UTC daily reports; libSQL is its own module (`metrics/libsql`) over the same driver shape. Connections and credentials belong to the application. |
@@ -26,6 +26,10 @@
26
26
  * OpenRouter's usage accounting (`providerMetadata.openrouter.usage.cost`)
27
27
  * or a `cost` field on the provider's raw usage frame — never a price
28
28
  * table estimate.
29
+ * - **A tool loop that never acts twice.** `stopWhen` runs the AI SDK's
30
+ * loop (tools with `execute`, called again with their results); once a
31
+ * tool has run, a failure ends the call instead of failing over, since
32
+ * another provider would replay the tools from scratch.
29
33
  *
30
34
  * Worker-safe: fetch/WebStreams only, no `node:*`. Peer deps: `ai`,
31
35
  * `@ai-sdk/openai-compatible`, `@ai-sdk/anthropic`,
@@ -58,9 +62,21 @@
58
62
  * else if (e.kind === 'tool-call') handle(e.toolName, e.input)
59
63
  * }
60
64
  */
61
- import { type FlexibleSchema, type ModelMessage, type ToolChoice, type ToolSet } from "ai";
65
+ import { type FlexibleSchema, type ModelMessage, type PrepareStepFunction, type PrepareStepResult, type StopCondition, streamText, type ToolChoice, type ToolSet } from "ai";
62
66
  import { type Logger } from "../universal/log.js";
63
- export { jsonSchema, type ModelMessage, type Tool, type ToolSet, tool, } from "ai";
67
+ export { hasToolCall, jsonSchema, type ModelMessage, SerialJobExecutor, type StopCondition, stepCountIs, type Tool, type ToolSet, tool, } from "ai";
68
+ /** How much a model reasons before it answers: the AI SDK's level ("none" turns it
69
+ * off, where the provider can). */
70
+ export type Reasoning = NonNullable<Parameters<typeof streamText>[0]["reasoning"]>;
71
+ /**
72
+ * The tool loop's step hook: the AI SDK's, whose result may also say how much the
73
+ * model reasons on that step (`reasoning`), mapped to the provider's own option.
74
+ */
75
+ export type PrepareStep = (options: Parameters<PrepareStepFunction<ToolSet>>[0]) => (PrepareStepResult<ToolSet> & {
76
+ reasoning?: Reasoning;
77
+ }) | undefined | PromiseLike<(PrepareStepResult<ToolSet> & {
78
+ reasoning?: Reasoning;
79
+ }) | undefined>;
64
80
  /**
65
81
  * One provider declaration. Multiple declarations MAY share an `id` to
66
82
  * register several API keys for the same provider; key health is tracked per
@@ -132,7 +148,8 @@ export interface HealthStore {
132
148
  export interface LlmOptions {
133
149
  providers: ProviderConfig[];
134
150
  health?: HealthStore;
135
- /** Per-attempt hard timeout in ms. Default 120_000. */
151
+ /** Hard timeout of each request to a model, in ms. Default 120_000. A tool
152
+ * loop's tools run between requests and are not timed by it. */
136
153
  requestTimeoutMs?: number;
137
154
  }
138
155
  /**
@@ -178,6 +195,8 @@ export type LlmStreamEvent = {
178
195
  kind: "end";
179
196
  usage: LlmUsage | null;
180
197
  object?: unknown;
198
+ /** The turns this call added: the model's, and its tools' results. */
199
+ messages: ModelMessage[];
181
200
  };
182
201
  export interface LlmToolCall {
183
202
  /** The provider's id for this call: what a later turn must echo back to replay it (ds4 keys its exact-DSML replay on it). */
@@ -192,6 +211,9 @@ export interface LlmResult {
192
211
  usage: LlmUsage | null;
193
212
  /** The answer parsed and validated against `schema`, when the request gave one. */
194
213
  object?: unknown;
214
+ /** The turns this call added, every step's: the model's, and its tools' results.
215
+ * Appended to the request's `messages`, the conversation goes on from here. */
216
+ messages: ModelMessage[];
195
217
  }
196
218
  /**
197
219
  * Why one provider's attempt failed, typed for a caller to act on:
@@ -231,6 +253,26 @@ export interface ChatRequest {
231
253
  maxTokens?: number;
232
254
  tools?: ToolSet;
233
255
  toolChoice?: ToolChoice<ToolSet>;
256
+ /**
257
+ * The tool loop: the tools the model calls that have an `execute` run, and the
258
+ * model is called again with their results until one of these holds (the AI SDK's
259
+ * stop conditions: `stepCountIs(n)`, `hasToolCall(name)`, or any function of the
260
+ * steps so far). Default: one step. Each step is a `step` span in its attempt.
261
+ * Once a tool has run, a failure is the call's: no other provider is tried, since
262
+ * its tools would run again.
263
+ */
264
+ stopWhen?: StopCondition<ToolSet> | StopCondition<ToolSet>[];
265
+ /**
266
+ * Before each step of the tool loop: settings for it (the AI SDK's step hook),
267
+ * among them `messages`, which replace what the model reads from that step on
268
+ * (a conversation kept inside its window), and `reasoning`, how much the model
269
+ * reasons on that step alone. The result's `messages` stay the turns the call
270
+ * added, never the replaced ones.
271
+ */
272
+ prepareStep?: PrepareStep;
273
+ /** How much the model reasons before each answer, unless a step says otherwise.
274
+ * A `reasoning_effort` in `extraBody` would override any step's: use this. */
275
+ reasoning?: Reasoning;
234
276
  abortSignal?: AbortSignal;
235
277
  /**
236
278
  * OpenAI-dialect only: raw request-body fields spread into the JSON body
@@ -275,6 +317,7 @@ export declare class Llm {
275
317
  private timedAttempt;
276
318
  private runAttempt;
277
319
  private modelFor;
320
+ private stepping;
278
321
  private providerOptionsFor;
279
322
  private buildQueue;
280
323
  private getHealth;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
package/dist/llm/index.js CHANGED
@@ -26,6 +26,10 @@
26
26
  * OpenRouter's usage accounting (`providerMetadata.openrouter.usage.cost`)
27
27
  * or a `cost` field on the provider's raw usage frame — never a price
28
28
  * table estimate.
29
+ * - **A tool loop that never acts twice.** `stopWhen` runs the AI SDK's
30
+ * loop (tools with `execute`, called again with their results); once a
31
+ * tool has run, a failure ends the call instead of failing over, since
32
+ * another provider would replay the tools from scratch.
29
33
  *
30
34
  * Worker-safe: fetch/WebStreams only, no `node:*`. Peer deps: `ai`,
31
35
  * `@ai-sdk/openai-compatible`, `@ai-sdk/anthropic`,
@@ -64,8 +68,9 @@ import { createOpenRouter } from "@openrouter/ai-sdk-provider";
64
68
  import { APICallError, asSchema, NoObjectGeneratedError, Output, streamText, } from "ai";
65
69
  import { log as root } from "../universal/log.js";
66
70
  const log = root.scope("llm").scope("health");
67
- // One import surface for consumers: the tool helper and its types ride along.
68
- export { jsonSchema, tool, } from "ai";
71
+ // One import surface for consumers: the tool helper, the tool loop's stop
72
+ // conditions, the serial executor a loop's ordered tools share, and their types.
73
+ export { hasToolCall, jsonSchema, SerialJobExecutor, stepCountIs, tool, } from "ai";
69
74
  export class LlmError extends Error {
70
75
  status;
71
76
  /** Each provider's failure in the order tried: empty for an error before any attempt. */
@@ -163,6 +168,7 @@ export class Llm {
163
168
  const toolCalls = [];
164
169
  let usage = null;
165
170
  let object;
171
+ let messages = [];
166
172
  for await (const event of this.stream(req)) {
167
173
  if (event.kind === "delta")
168
174
  text += event.text;
@@ -182,6 +188,7 @@ export class Llm {
182
188
  else if (event.kind === "end") {
183
189
  usage = event.usage;
184
190
  object = event.object;
191
+ messages = event.messages;
185
192
  }
186
193
  }
187
194
  return {
@@ -190,6 +197,7 @@ export class Llm {
190
197
  toolCalls,
191
198
  usage,
192
199
  ...(req.schema ? { object } : {}),
200
+ messages,
193
201
  };
194
202
  }
195
203
  /**
@@ -275,6 +283,7 @@ export class Llm {
275
283
  }
276
284
  : null,
277
285
  ...(req.schema ? { object: attempt.object } : {}),
286
+ messages: attempt.messages,
278
287
  };
279
288
  return;
280
289
  }
@@ -289,6 +298,9 @@ export class Llm {
289
298
  errors.push(`${provider.id}: ${msg}`);
290
299
  failures.push(failureOf(provider.id, attempt.error));
291
300
  await this.recordFailure(keyId(provider), provider.id, health, classifyError(attempt.error), attempt.error);
301
+ // A tool that ran has acted on the world: another provider would act again
302
+ if (attempt.acted)
303
+ throw new LlmError(`llm: ${provider.id} failed after its tools ran: ${msg}`, undefined, failures);
292
304
  // Whatever this attempt painted is now stale; order a repaint before
293
305
  // the next attempt streams a fresh response.
294
306
  if (attempt.emitted)
@@ -313,7 +325,7 @@ export class Llm {
313
325
  let first;
314
326
  let ended = false;
315
327
  try {
316
- const run = this.runAttempt(provider, req);
328
+ const run = this.runAttempt(provider, req, span);
317
329
  for (let step = await run.next();; step = await run.next()) {
318
330
  if (step.done) {
319
331
  const done = performance.now();
@@ -339,11 +351,16 @@ export class Llm {
339
351
  span.end();
340
352
  }
341
353
  }
342
- // Stream one provider attempt, translating AI SDK parts to LlmStreamEvents.
343
- async *runAttempt(provider, req) {
354
+ // Stream one provider attempt, translating AI SDK parts to LlmStreamEvents;
355
+ // each step of a tool loop a `step` span under the attempt's.
356
+ async *runAttempt(provider, req, parent) {
344
357
  let emitted = false;
345
358
  let sawContent = false;
359
+ let acted = false;
346
360
  let usage = null;
361
+ /** The step being decoded: its span, when it began, its first token, its calls. */
362
+ let step;
363
+ let steps = 0;
347
364
  /** The answer parsed against the request's schema, settled once the stream ends. */
348
365
  let parsed;
349
366
  try {
@@ -374,13 +391,34 @@ export class Llm {
374
391
  // The failover loop consumes error parts and reports once per attempt;
375
392
  // without this no-op the SDK ALSO dumps the full APICallError to console.
376
393
  onError: () => { },
377
- abortSignal: withTimeout(req.abortSignal, this.opts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS),
394
+ ...(req.abortSignal ? { abortSignal: req.abortSignal } : {}),
378
395
  ...(req.tools ? { tools: req.tools } : {}),
379
396
  ...(req.toolChoice ? { toolChoice: req.toolChoice } : {}),
397
+ ...(req.stopWhen ? { stopWhen: req.stopWhen } : {}),
398
+ ...(req.reasoning ? { reasoning: req.reasoning } : {}),
399
+ ...(req.prepareStep
400
+ ? { prepareStep: this.stepping(provider, req.prepareStep) }
401
+ : {}),
380
402
  ...this.providerOptionsFor(provider),
381
403
  });
382
404
  for await (const part of result.stream) {
383
- if (part.type === "text-delta") {
405
+ // A step's first token is the first thing it decodes: words, thinking, a call
406
+ if (step &&
407
+ step.first === undefined &&
408
+ (part.type === "text-delta" ||
409
+ part.type === "reasoning-delta" ||
410
+ part.type === "tool-input-start" ||
411
+ part.type === "tool-call"))
412
+ step.first = performance.now();
413
+ if (part.type === "start-step") {
414
+ steps += 1;
415
+ step = {
416
+ span: parent.begin("step", { step: steps }),
417
+ t0: performance.now(),
418
+ calls: [],
419
+ };
420
+ }
421
+ else if (part.type === "text-delta") {
384
422
  emitted = true;
385
423
  sawContent = true;
386
424
  yield { kind: "delta", text: part.text };
@@ -400,6 +438,7 @@ export class Llm {
400
438
  else if (part.type === "tool-call") {
401
439
  emitted = true;
402
440
  sawContent = true;
441
+ step?.calls.push(`${part.toolName} ${JSON.stringify(part.input)}`);
403
442
  yield {
404
443
  kind: "tool-call",
405
444
  toolCallId: part.toolCallId,
@@ -407,53 +446,108 @@ export class Llm {
407
446
  input: part.input,
408
447
  };
409
448
  }
449
+ else if (part.type === "tool-result" || part.type === "tool-error") {
450
+ acted = true;
451
+ }
410
452
  else if (part.type === "finish-step") {
411
- usage = {
453
+ // A loop's usage is every step's: each is a request billed on its own
454
+ const cost = extractCost(part.providerMetadata, part.usage.raw);
455
+ const cached = part.usage.inputTokenDetails?.cacheReadTokens;
456
+ const these = {
412
457
  promptTokens: part.usage.inputTokens ?? 0,
413
- ...(part.usage.inputTokenDetails?.cacheReadTokens !== undefined
414
- ? { cachedTokens: part.usage.inputTokenDetails.cacheReadTokens }
415
- : {}),
458
+ ...(cached !== undefined ? { cachedTokens: cached } : {}),
416
459
  completionTokens: part.usage.outputTokens ?? 0,
417
- ...(extractCost(part.providerMetadata, part.usage.raw) !== undefined
418
- ? { costUsd: extractCost(part.providerMetadata, part.usage.raw) }
419
- : {}),
460
+ ...(cost !== undefined ? { costUsd: cost } : {}),
420
461
  };
462
+ usage = usage
463
+ ? {
464
+ promptTokens: usage.promptTokens + these.promptTokens,
465
+ ...(usage.cachedTokens !== undefined || cached !== undefined
466
+ ? { cachedTokens: (usage.cachedTokens ?? 0) + (cached ?? 0) }
467
+ : {}),
468
+ completionTokens: usage.completionTokens + these.completionTokens,
469
+ ...(usage.costUsd !== undefined || cost !== undefined
470
+ ? { costUsd: (usage.costUsd ?? 0) + (cost ?? 0) }
471
+ : {}),
472
+ }
473
+ : these;
474
+ if (step) {
475
+ const done = performance.now();
476
+ step.span.set({
477
+ finish_reason: part.finishReason,
478
+ ...(step.calls.length > 0
479
+ ? { calls: step.calls.join("\n") }
480
+ : {}),
481
+ ...(step.first !== undefined
482
+ ? {
483
+ ttft_ms: Math.round(step.first - step.t0),
484
+ decode_ms: Math.round(done - step.first),
485
+ }
486
+ : {}),
487
+ ...usageFields(these),
488
+ });
489
+ step.span.end();
490
+ step = undefined;
491
+ }
421
492
  }
422
493
  else if (part.type === "error") {
423
494
  // The AI SDK stream never throws; failures arrive as parts.
424
- return { ok: false, emitted, error: part.error, usage };
495
+ step?.span.end(part.error);
496
+ return {
497
+ ok: false,
498
+ emitted,
499
+ acted,
500
+ error: part.error,
501
+ usage,
502
+ messages: [],
503
+ };
425
504
  }
426
505
  else if (part.type === "abort") {
506
+ step?.span.end(new LlmError("llm: aborted"));
427
507
  return {
428
508
  ok: false,
429
509
  emitted,
510
+ acted,
430
511
  error: new LlmError("llm: aborted"),
431
512
  usage,
513
+ messages: [],
432
514
  };
433
515
  }
434
516
  }
435
517
  if (req.schema)
436
518
  parsed = result.output;
519
+ if (!sawContent)
520
+ return {
521
+ ok: false,
522
+ emitted,
523
+ acted,
524
+ error: new LlmError(EMPTY),
525
+ usage,
526
+ messages: [],
527
+ };
528
+ // Every step's turns (the last response alone holds only the last step's)
529
+ const messages = await result.responseMessages;
530
+ if (!req.schema)
531
+ return { ok: true, emitted, acted, usage, messages };
532
+ // The answer parsed and checked against the schema; one that does not match
533
+ // fails the attempt like any provider failure, and the next one is tried
534
+ try {
535
+ return {
536
+ ok: true,
537
+ emitted,
538
+ acted,
539
+ usage,
540
+ object: await parsed,
541
+ messages,
542
+ };
543
+ }
544
+ catch (e) {
545
+ return { ok: false, emitted, acted, error: e, usage, messages: [] };
546
+ }
437
547
  }
438
548
  catch (e) {
439
- return { ok: false, emitted, error: e, usage };
440
- }
441
- if (!sawContent)
442
- return {
443
- ok: false,
444
- emitted,
445
- error: new LlmError(EMPTY),
446
- usage,
447
- };
448
- if (!req.schema)
449
- return { ok: true, emitted, usage };
450
- // The answer parsed and checked against the schema; one that does not match
451
- // fails the attempt like any provider failure, and the next one is tried
452
- try {
453
- return { ok: true, emitted, usage, object: await parsed };
454
- }
455
- catch (e) {
456
- return { ok: false, emitted, error: e, usage };
549
+ step?.span.end(e);
550
+ return { ok: false, emitted, acted, error: e, usage, messages: [] };
457
551
  }
458
552
  }
459
553
  // One AI SDK model instance per attempt, by wire dialect. An `openai`
@@ -461,11 +555,12 @@ export class Llm {
461
555
  // which is what reports a billed cost per request.
462
556
  modelFor(provider, req) {
463
557
  const type = dialectOf(provider);
558
+ const fetch = timed(provider.fetch ?? globalThis.fetch, this.opts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS);
464
559
  if (type === "openrouter") {
465
560
  const openrouter = createOpenRouter({
466
561
  ...(provider.apiKey ? { apiKey: provider.apiKey } : {}),
467
562
  ...(provider.baseUrl ? { baseURL: provider.baseUrl } : {}),
468
- ...(provider.fetch ? { fetch: provider.fetch } : {}),
563
+ fetch,
469
564
  });
470
565
  return openrouter.chat(provider.defaultModel, {
471
566
  usage: { include: true }, // OpenRouter usage accounting: actual billed cost on the final chunk
@@ -481,7 +576,7 @@ export class Llm {
481
576
  ...(provider.baseUrl
482
577
  ? { baseURL: normalizeAnthropicBase(provider.baseUrl) }
483
578
  : {}),
484
- ...(provider.fetch ? { fetch: provider.fetch } : {}),
579
+ fetch,
485
580
  });
486
581
  return anthropic(provider.defaultModel);
487
582
  }
@@ -498,7 +593,7 @@ export class Llm {
498
593
  name: provider.id,
499
594
  baseURL: normalizeOpenAiBase(provider.baseUrl),
500
595
  ...(provider.apiKey ? { apiKey: provider.apiKey } : {}),
501
- ...(provider.fetch ? { fetch: provider.fetch } : {}),
596
+ fetch,
502
597
  includeUsage: true, // stream_options usage frame
503
598
  supportsStructuredOutputs: provider.structuredOutputs === true,
504
599
  ...(Object.keys(body).length > 0
@@ -514,6 +609,28 @@ export class Llm {
514
609
  }
515
610
  // The anthropic dialect's thinking switch, the one knob that travels as a typed
516
611
  // provider option; the other dialects carry theirs on the model instance.
612
+ // The caller's step hook as the AI SDK takes it: a step's `reasoning` becomes the
613
+ // provider's own option, since the SDK's step settings have no reasoning level.
614
+ stepping(provider, prepare) {
615
+ return async (options) => {
616
+ const step = await prepare(options);
617
+ if (!step?.reasoning)
618
+ return step;
619
+ const { reasoning, ...rest } = step;
620
+ const type = dialectOf(provider);
621
+ if (type === "anthropic")
622
+ throw new LlmError(`llm: a step's reasoning is mapped for the openai and openrouter dialects; ${provider.id} is anthropic`);
623
+ // openai-compatible reads its options under the provider's name, OpenRouter
624
+ // under its own
625
+ const own = type === "openrouter"
626
+ ? { openrouter: { reasoning: { effort: reasoning } } }
627
+ : { [provider.id]: { reasoningEffort: reasoning } };
628
+ return {
629
+ ...rest,
630
+ providerOptions: { ...rest.providerOptions, ...own },
631
+ };
632
+ };
633
+ }
517
634
  providerOptionsFor(provider) {
518
635
  const type = dialectOf(provider);
519
636
  if (type === "anthropic")
@@ -664,11 +781,17 @@ function resolveMaxTokens(provider, requested) {
664
781
  const ask = requested ?? DEFAULT_MAX_TOKENS;
665
782
  return provider.maxTokens ? Math.min(ask, provider.maxTokens) : ask;
666
783
  }
667
- // Combine the caller's abort signal (client disconnect) with a hard per-attempt
668
- // timeout so a stalled upstream can't wedge the request forever.
669
- function withTimeout(external, ms) {
670
- const timeout = AbortSignal.timeout(ms);
671
- return external ? AbortSignal.any([external, timeout]) : timeout;
784
+ // The provider's transport with a hard timeout on each request, so a stalled
785
+ // upstream can't wedge a call forever. Per request, never per call: a tool loop's
786
+ // call spans its tools too, and a tool may wait on a person for minutes.
787
+ function timed(fetcher, ms) {
788
+ return (input, init) => {
789
+ const timeout = AbortSignal.timeout(ms);
790
+ return fetcher(input, {
791
+ ...init,
792
+ signal: init?.signal ? AbortSignal.any([init.signal, timeout]) : timeout,
793
+ });
794
+ };
672
795
  }
673
796
  // The Anthropic provider appends /v1/messages relative to its base; tolerate a
674
797
  // pasted base that already carries /v1 or trailing slashes.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EACN,YAAY,EACZ,QAAQ,EAIR,sBAAsB,EACtB,MAAM,EACN,UAAU,GAGV,MAAM,IAAI,CAAC;AACZ,OAAO,EAAe,GAAG,IAAI,IAAI,EAAa,MAAM,qBAAqB,CAAC;AAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAE9C,8EAA8E;AAC9E,OAAO,EACN,UAAU,EAIV,IAAI,GACJ,MAAM,IAAI,CAAC;AA+IZ,MAAM,OAAO,QAAS,SAAQ,KAAK;IAKxB;IAJV,yFAAyF;IAChF,QAAQ,CAAe;IAChC,YACC,OAAe,EACN,MAAe,EACxB,WAAyB,EAAE;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAS;QAIxB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;CACD;AAED;2EAC2E;AAC3E,SAAS,SAAS,CAAC,QAAgB,EAAE,KAAc;IAClD,IAAI,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C,OAAO;YACN,IAAI,EAAE,YAAY;YAClB,QAAQ;YACR,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,GAAG,EAAE,KAAK,CAAC,YAAY,KAAK,QAAQ;SACpC,CAAC;IACH,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;QACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,UAAU;QAClB,CAAC,CAAC,KAAK,YAAY,QAAQ;YAC1B,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,QAAQ;QACR,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,KAAK,GAAG,uBAAuB,CAAC;AAyCtC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,sEAAsE;AACtE,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,gDAAgD;AAEhD,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,6CAA6C;AAChF,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,kDAAkD;AACpF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,yDAAyD;AACvF,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAWlC,2EAA2E;AAC3E,wDAAwD;AACxD,SAAS,aAAa,CAAC,CAAU;IAChC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC,CAAC,UAAU;QACd,CAAC,CAAC,CAAC,YAAY,QAAQ;YACtB,CAAC,CAAC,CAAC,CAAC,MAAM;YACV,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,CAAC,0BAA0B;IACxE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC1C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IACrE,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,SAAS,cAAc,CAAC,MAAc;IACrC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,CAAiB,EAAU,EAAE,CAC3C,GAAG,CAAC,CAAC,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;AAE7C,sEAAsE;AAEtE,MAAM,UAAU,SAAS,CAAC,IAAgB;IACzC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAsBD,MAAM,OAAO,GAAG;IACc;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC9B,MAAM,IAAI,QAAQ,CAAC,8BAA8B,CAAC,CAAC;IACrD,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,QAAQ,CAAC,GAAgB;QAC9B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,IAAI,KAAK,GAAoB,IAAI,CAAC;QAClC,IAAI,MAAe,CAAC;QACpB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;iBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;iBACxD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,GAAG,EAAE,CAAC;gBACV,SAAS,GAAG,EAAE,CAAC;gBACf,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBACpC,SAAS,CAAC,IAAI,CAAC;oBACd,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;iBAClB,CAAC,CAAC;iBACC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC/B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACpB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACvB,CAAC;QACF,CAAC;QACD,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;YAC3B,SAAS;YACT,KAAK;YACL,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,GAAgB;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;YAC9D,MAAM,IAAI,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;YACzD,IAAI,EAAE,WAAW;YACjB,uBAAuB,EAAE,MAAM;SAC/B,CAAC,CAAC;QACH,2EAA2E;QAC3E,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK;oBACtC,IAAI,CAAC,GAAG,CAAC;wBACR,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;wBAC5C,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;wBACzC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;qBAC3B,CAAC,CAAC;gBACJ,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,GAAG,CAAC;QACX,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,CAAC,QAAQ,CACtB,GAAgB,EAChB,IAAU;QAEV,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,QAA4B,CAAC;QACjC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,WAA+B,CAAC;QACpC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,SAA6B,CAAC;QAElC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;gBACnE,IAAI,OAAO,KAAK,CAAC,CAAC;oBAAE,GAAG,GAAG,OAAO,CAAC;YACnC,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;oBAC3C,WAAW,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/D,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAClD,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS;oBACtC,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACvD,CAAC;YAED,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBAChB,sFAAsF;gBACtF,IAAI,MAAM;oBAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpD,MAAM;oBACL,IAAI,EAAE,KAAK;oBACX,KAAK,EACJ,WAAW,IAAI,eAAe,IAAI,SAAS,KAAK,SAAS;wBACxD,CAAC,CAAC;4BACA,YAAY,EAAE,WAAW;4BACzB,GAAG,CAAC,WAAW,KAAK,SAAS;gCAC5B,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE;gCAC/B,CAAC,CAAC,EAAE,CAAC;4BACN,gBAAgB,EAAE,eAAe;4BACjC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC1D,QAAQ,EAAE,QAAQ,CAAC,EAAE;4BACrB,KAAK,EAAE,QAAQ,CAAC,YAAY;yBAC5B;wBACF,CAAC,CAAC,IAAI;oBACR,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjD,CAAC;gBACF,OAAO;YACR,CAAC;YAED,oEAAoE;YACpE,iEAAiE;YACjE,uBAAuB;YACvB,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO;gBAAE,MAAM,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;YAEjE,MAAM,GAAG,GACR,OAAO,CAAC,KAAK,YAAY,KAAK;gBAC7B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;gBACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,QAAQ,CAAC,EACf,QAAQ,CAAC,EAAE,EACX,MAAM,EACN,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAC5B,OAAO,CAAC,KAAK,CACb,CAAC;YAEF,qEAAqE;YACrE,6CAA6C;YAC7C,IAAI,OAAO,CAAC,OAAO;gBAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACtB,MAAM,IAAI,QAAQ,CACjB,0EAA0E,CAC1E,CAAC;QACH,MAAM,IAAI,QAAQ,CACjB,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACjD,SAAS,EACT,QAAQ,CACR,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,iFAAiF;IACjF,sBAAsB;IACd,KAAK,CAAC,CAAC,YAAY,CAC1B,QAAwB,EACxB,GAAgB,EAChB,MAAY;QAEZ,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;YACpC,sBAAsB,EAAE,QAAQ,CAAC,EAAE;YACnC,sBAAsB,EAAE,QAAQ,CAAC,YAAY;YAC7C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,KAAyB,CAAC;QAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,GAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC;wBACR,GAAG,CAAC,KAAK,KAAK,SAAS;4BACtB,CAAC,CAAC;gCACA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gCAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;6BACnC;4BACF,CAAC,CAAC,EAAE,CAAC;wBACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC1D,CAAC,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvD,OAAO,IAAI,CAAC,KAAK,CAAC;gBACnB,CAAC;gBACD,KAAK,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,KAAK,CAAC;YAClB,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;IACF,CAAC;IAED,4EAA4E;IACpE,KAAK,CAAC,CAAC,UAAU,CACxB,QAAwB,EACxB,GAAgB;QAEhB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,KAAK,GAAqB,IAAI,CAAC;QACnC,oFAAoF;QACpF,IAAI,MAAwC,CAAC;QAC7C,IAAI,CAAC;YACJ,8EAA8E;YAC9E,8EAA8E;YAC9E,MAAM,MAAM,GACX,GAAG,CAAC,MAAM;gBACV,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,CAAC;gBAChE,CAAC,CAAC,iEAAiE,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE;gBAC1H,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;iBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBAChB,IAAI,CAAC,MAAM,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,UAAU,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;gBACnC,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS;oBAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;oBACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAA0B,EAAE,CAAC;gBAChD,0EAA0E;gBAC1E,mDAAmD;gBACnD,qBAAqB,EAAE,IAAI;gBAC3B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,GAAG,CAAC,MAAM;oBACb,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;oBACnD,CAAC,CAAC,EAAE,CAAC;gBACN,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC;gBACzC,eAAe,EAAE,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC;gBAC1D,UAAU,EAAE,CAAC,EAAE,6DAA6D;gBAC5E,uEAAuE;gBACvE,0EAA0E;gBAC1E,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,WAAW,EAAE,WAAW,CACvB,GAAG,CAAC,WAAW,EACf,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,kBAAkB,CAChD;gBACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;aACpC,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,OAAO,GAAG,IAAI,CAAC;oBACf,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1C,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAC5C,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC9C,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBAC7C,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;wBACL,IAAI,EAAE,kBAAkB;wBACxB,UAAU,EAAE,IAAI,CAAC,EAAE;wBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;qBACjB,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACtC,OAAO,GAAG,IAAI,CAAC;oBACf,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM;wBACL,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;qBACjB,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,KAAK,GAAG;wBACP,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;wBACzC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAe,KAAK,SAAS;4BAC9D,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE;4BAChE,CAAC,CAAC,EAAE,CAAC;wBACN,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;wBAC9C,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS;4BACnE,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BACjE,CAAC,CAAC,EAAE,CAAC;qBACN,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,4DAA4D;oBAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;gBACzD,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,OAAO;wBACN,EAAE,EAAE,KAAK;wBACT,OAAO;wBACP,KAAK,EAAE,IAAI,QAAQ,CAAC,cAAc,CAAC;wBACnC,KAAK;qBACL,CAAC;gBACH,CAAC;YACF,CAAC;YACD,IAAI,GAAG,CAAC,MAAM;gBAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,UAAU;YACd,OAAO;gBACN,EAAE,EAAE,KAAK;gBACT,OAAO;gBACP,KAAK,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC;gBAC1B,KAAK;aACL,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACrD,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,CAAC;YACJ,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,EAAE,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAChD,CAAC;IACF,CAAC;IAED,sEAAsE;IACtE,sEAAsE;IACtE,mDAAmD;IAC3C,QAAQ,CAAC,QAAwB,EAAE,GAAgB;QAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,gBAAgB,CAAC;gBACnC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;gBAC7C,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,qEAAqE;gBAC/F,GAAG,CAAC,QAAQ,CAAC,eAAe;oBAC3B,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;oBACnD,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,eAAe,CAAC;gBACjC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,QAAQ,CAAC,OAAO;oBACnB,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACvD,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAC;YACH,OAAO,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO;YACpB,MAAM,IAAI,QAAQ,CACjB,iBAAiB,QAAQ,CAAC,EAAE,4BAA4B,CACxD,CAAC;QACH,gFAAgF;QAChF,iFAAiF;QACjF,mEAAmE;QACnE,MAAM,IAAI,GAAG;YACZ,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,GAAG,CAAC,SAAS;SAChB,CAAC;QACF,MAAM,MAAM,GAAG,sBAAsB,CAAC;YACrC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACjB,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9C,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,YAAY,EAAE,IAAI,EAAE,6BAA6B;YACjD,yBAAyB,EAAE,QAAQ,CAAC,iBAAiB,KAAK,IAAI;YAC9D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC/B,CAAC,CAAC;oBACA,oBAAoB,EAAE,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC;wBACzD,GAAG,IAAI;wBACP,GAAG,IAAI;qBACP,CAAC;iBACF;gBACF,CAAC,CAAC,EAAE,CAAC;SACN,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,gFAAgF;IAChF,0EAA0E;IAClE,kBAAkB,CACzB,QAAwB;QAExB,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,WAAW;YACvB,OAAO,QAAQ,CAAC,eAAe;gBAC9B,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;gBACxE,CAAC,CAAC,EAAE,CAAC;QACP,8EAA8E;QAC9E,8EAA8E;QAC9E,OAAO,EAAE,CAAC;IACX,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,iEAAiE;IACzD,KAAK,CAAC,UAAU,CAAC,MAAgB;QACxC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CACjD,CAAC;QACF,MAAM,SAAS,GAAgB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,QAAQ,CAAC,QAAQ;gBAAE,SAAS;YAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,SAAS,8BAA8B,CAAC,CAAC;gBACvE,SAAS;YACV,CAAC;YACD,IACC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC/C,CAAC;gBACF,MAAM,CAAC,IAAI,CACV,GAAG,QAAQ,CAAC,EAAE,mBAAmB,QAAQ,CAAC,YAAY,oBAAoB,CAC1E,CAAC;gBACF,SAAS;YACV,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,MAAM;gBAAE,SAAS;YAC/B,IAAI,KAAK,KAAK,gBAAgB;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;;gBAC/D,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,2EAA2E;IAC3E,wCAAwC;IAChC,KAAK,CAAC,SAAS,CAAC,QAAgB;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;YAC7D,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,aAAa,CAC1B,QAAgB,EAChB,KAAa,EACb,IAAsB,EACtB,GAAiB,EACjB,GAAY;QAEZ,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE;gBAChD,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,QAAQ;gBACb,GAAG;aACH,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,IAAI,GACT,GAAG,KAAK,cAAc;YACrB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,GAAG,KAAK,MAAM;gBACf,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,iBAAiB,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACrE,MAAM,MAAM,GAAc;YACzB,MAAM,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ;YAC1D,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,GAAG,GAAG,OAAO;YACzB,QAAQ;SACR,CAAC;QACF,yEAAyE;QACzE,uEAAuE;QACvE,4BAA4B;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,kBAAkB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACzB,UAAU,QAAQ,EAAE,EACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EACtB,EAAE,aAAa,EAAE,GAAG,EAAE,CACtB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,cAAc;YACf,CAAC;QACF,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClC,QAAQ;YACR,GAAG;SACH,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAC9B,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACR,cAAc;QACf,CAAC;IACF,CAAC;CACD;AAED,8EAA8E;AAC9E,+EAA+E;AAC/E,2DAA2D;AAC3D,SAAS,SAAS,CAAC,QAAwB;IAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;IAC1E,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QAChD,OAAO,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjE,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,QAAQ,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,QAAQ,CAAC,CAAC,4DAA4D;IAC9E,CAAC;AACF,CAAC;AAED,2EAA2E;AAC3E,yEAAyE;AACzE,SAAS,WAAW,CACnB,MAAwB;IAExB,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAC;IAClD,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAwB;IACnD,MAAM,SAAS,GAAG;QACjB,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9C,QAAQ,CAAC,WAAW;KACpB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,SAAS,IAAI,mBAAmB,CAAC;IAC9C,qEAAqE;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CACxB,QAAwB,EACxB,SAAkB;IAElB,MAAM,GAAG,GAAG,SAAS,IAAI,kBAAkB,CAAC;IAC5C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACrE,CAAC;AAED,gFAAgF;AAChF,iEAAiE;AACjE,SAAS,WAAW,CACnB,QAAiC,EACjC,EAAU;IAEV,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAClE,CAAC;AAED,+EAA+E;AAC/E,4DAA4D;AAC5D,SAAS,sBAAsB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,SAAS,mBAAmB,CAAC,OAAe;IAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,wEAAwE;AACxE,SAAS,MAAM,CAAC,OAAe;IAC9B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED;yCACyC;AACzC,SAAS,WAAW,CACnB,KAAoC;IAEpC,OAAO;QACN,2BAA2B,EAAE,KAAK,CAAC,YAAY;QAC/C,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,sCAAsC,EAAE,KAAK,CAAC,YAAY,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;QACN,4BAA4B,EAAE,KAAK,CAAC,gBAAgB;QACpD,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CACnB,gBAAyB,EACzB,QAAiB;IAEjB,MAAM,EAAE,GACP,gBAGA,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;IAC3B,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAI,QAA2C,EAAE,IAAI,CAAC;IAC/D,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adriangalilea/utils",
3
- "version": "10.5.0",
3
+ "version": "10.6.0",
4
4
  "description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",