@intelligo-dev/chat 1.0.0-beta.13 → 1.0.0-beta.14

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
@@ -75,8 +75,20 @@ A tool reaches the client mid-turn through the turn: `turn.write()` sends a
75
75
  `data-chat-*` part (a status line, a plan), and `createArtifactWriter(turn,
76
76
  { kind, title })` streams a document into the chat's canvas — `append`
77
77
  deltas, `finish({ documentId })`. A tool that calls a model itself — a
78
- grounded search, a sub-agent on the same model — hands its tokens to
79
- `turn.addUsage()`, and the turn settles them with its own. `sanitizeForShare` strips a transcript
78
+ grounded search, a sub-agent, an embedding for retrieval — hands its tokens
79
+ to `turn.addUsage(usage, { model })`. Tokens on the turn's own model (or
80
+ with no `model`) settle with the turn's; tokens on another registered model
81
+ are summed per model and recorded as that model's own execution
82
+ (`capability` `"chat.embedding"` for an embedding model, `parentExecutionId`
83
+ in its metadata) when the turn settles. An unregistered `model` throws
84
+ `UnknownModelError` at the call rather than bill at another model's price.
85
+
86
+ `turn.state` is a `Map` that lives for one request and is shared by every
87
+ seam that receives the turn — `resolveAgent`, `prepareMessages`, tools,
88
+ `streamTurn`, `persist`, the `onTurn` events — so what one of them reads
89
+ (a profile, a retrieval result) the next can use without a second query.
90
+
91
+ `sanitizeForShare` strips a transcript
80
92
  for a public page; `recordChatFeedback` records a vote and tells the hook.
81
93
  Stored attachments mount two more handlers, `createChatUploadHandler` and
82
94
  `createChatAttachmentHandler`.
package/dist/config.d.ts CHANGED
@@ -55,14 +55,41 @@ export interface ChatTurnContext extends ChatActor {
55
55
  * are replaced, other keys kept. Rejects before the row exists.
56
56
  */
57
57
  updateMetadata: (patch: Record<string, unknown>) => Promise<void>;
58
+ /**
59
+ * Scratch space living for one turn, shared by every seam that
60
+ * receives the turn — `resolveAgent`, `prepareMessages`, tools,
61
+ * `streamTurn`, `persist`, the `onTurn` events. One `Map` per request,
62
+ * created before `resolveAgent` runs and dropped with the request:
63
+ * what one seam computes (a profile read, a retrieval result) another
64
+ * reads without a second query. Nothing in it is persisted.
65
+ */
66
+ state: Map<string, unknown>;
58
67
  /**
59
68
  * Add the tokens a tool spent on its own model call — a search that
60
- * asks a model, a sub-agent — to what this turn settles. They are
61
- * priced as the turn's model, so a call on another model is its own
62
- * execution rather than usage added here. Usage added after the run
63
- * settles is not charged.
69
+ * asks a model, a sub-agent, an embedding — to what this turn settles.
70
+ *
71
+ * Without `model`, or with the turn's own model, the tokens are summed
72
+ * into the turn's execution and priced as its model. With another
73
+ * model they are that model's usage: summed per model (and
74
+ * `capability`), each total is recorded as its own execution — same
75
+ * workspace, user and conversation, `parentExecutionId` in its
76
+ * metadata — when the turn settles, or when it fails, since the
77
+ * tokens were spent either way. `capability` defaults to
78
+ * `"chat.embedding"` for a model registered with `kind: "embedding"`
79
+ * and to the turn's capability otherwise.
80
+ *
81
+ * Throws `UnknownModelError` at the call when `model` has no
82
+ * registered price, rather than bill the tokens at another model's.
83
+ * Usage added after the turn settles is not charged.
64
84
  */
65
- addUsage: (usage: TokenUsage) => void;
85
+ addUsage: (usage: TokenUsage, options?: ChatUsageOptions) => void;
86
+ }
87
+ /** Where `turn.addUsage` bills the tokens it is handed. */
88
+ export interface ChatUsageOptions {
89
+ /** The registered model the tokens were spent on. Default: the turn's. */
90
+ model?: string;
91
+ /** Capability recorded on that model's execution. See `addUsage`. */
92
+ capability?: string;
66
93
  }
67
94
  /** The agent this turn runs as. */
68
95
  export interface ResolvedAgent {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAiDH,OAAO,KAAK,EAEV,gBAAgB,EAMjB,MAAM,UAAU,CAAC;AAgJlB,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,8EAA8E;IAC9E,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,oEAAoE;IACpE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAu6BvE"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAsDH,OAAO,KAAK,EAEV,gBAAgB,EAMjB,MAAM,UAAU,CAAC;AAkJlB,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,8EAA8E;IAC9E,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,oEAAoE;IACpE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAqhCvE"}
package/dist/handler.js CHANGED
@@ -24,7 +24,7 @@ import { attachToConversation, getAttachments, } from "@intelligo-dev/core/attac
24
24
  import { createConversation, deleteConversation, deleteTrailingMessages, getConversation, getMessages, isConversationServiceError, renameConversation, updateConversationMetadata, upsertMessages, } from "@intelligo-dev/core/conversations";
25
25
  import { createLogger } from "@intelligo-dev/core/logger";
26
26
  import { getStorageAdapter } from "@intelligo-dev/core/storage";
27
- import { getModelPricing } from "@intelligo-dev/executions/pricing";
27
+ import { UnknownModelError, getModelPricing, isModelRegistered, registeredModelIds, } from "@intelligo-dev/executions/pricing";
28
28
  import { attachmentIdFromUrl, parseChatBody } from "./body.js";
29
29
  import { CHAT_ERROR_STATUS, DEFAULT_CHAT_MESSAGES, refuse } from "./errors.js";
30
30
  import { pickGenerationOptions } from "./generation.js";
@@ -38,6 +38,8 @@ function errorMessage(error) {
38
38
  }
39
39
  const DEFAULT_FEATURE_KEY = "chat";
40
40
  const DEFAULT_CAPABILITY = "chat.message";
41
+ /** Capability of the execution recording a turn's embedding-model usage. */
42
+ const EMBEDDING_CAPABILITY = "chat.embedding";
41
43
  const DEFAULT_AGENT_ID = "assistant";
42
44
  const DEFAULT_SYSTEM_PROMPT = "You are a helpful assistant embedded in a SaaS product. Be concise and direct.";
43
45
  const DEFAULT_MAX_MESSAGE_LENGTH = 8000;
@@ -401,6 +403,10 @@ export function createChatHandler(config) {
401
403
  let writerSlot = null;
402
404
  // Tokens tools spent on their own model calls, settled with the run's.
403
405
  let nestedUsage = null;
406
+ // Tokens spent on a named model, by model and capability. Which of
407
+ // them are the turn's own model is known only once the agent is
408
+ // resolved, so the split happens at settlement.
409
+ const namedUsage = new Map();
404
410
  const context = {
405
411
  ...actor,
406
412
  request,
@@ -414,8 +420,25 @@ export function createChatHandler(config) {
414
420
  updateMetadata: async (patch) => {
415
421
  await updateConversationMetadata(actor, body.id, patch);
416
422
  },
417
- addUsage: (usage) => {
418
- nestedUsage = sumUsage(nestedUsage ?? {}, pickUsage(usage));
423
+ state: new Map(),
424
+ addUsage: (usage, options) => {
425
+ const model = options?.model;
426
+ if (model === undefined) {
427
+ nestedUsage = sumUsage(nestedUsage ?? {}, pickUsage(usage));
428
+ return;
429
+ }
430
+ // A price is needed to bill these tokens at all; failing here
431
+ // names the id in the tool that spent them.
432
+ if (!isModelRegistered(model)) {
433
+ throw new UnknownModelError(model, registeredModelIds());
434
+ }
435
+ const key = `${model}\u0000${options?.capability ?? ""}`;
436
+ const entry = namedUsage.get(key);
437
+ namedUsage.set(key, {
438
+ model,
439
+ ...(options?.capability ? { capability: options.capability } : {}),
440
+ usage: sumUsage(entry?.usage ?? {}, pickUsage(usage)),
441
+ });
419
442
  },
420
443
  };
421
444
  let agent;
@@ -602,7 +625,76 @@ export function createChatHandler(config) {
602
625
  // tools bound, `usage` is the LAST step only and a five-step turn
603
626
  // would be billed for one.
604
627
  let captured;
628
+ /**
629
+ * Take the usage tools named a model for: the turn's own model
630
+ * folds into `nestedUsage`, every other model is returned for its
631
+ * own execution. Drains the map, so a second call finds nothing and
632
+ * no model's tokens are recorded twice.
633
+ */
634
+ const takeOtherModelUsage = () => {
635
+ const others = [];
636
+ for (const entry of namedUsage.values()) {
637
+ if (entry.model === modelId) {
638
+ nestedUsage = sumUsage(nestedUsage ?? {}, entry.usage);
639
+ continue;
640
+ }
641
+ others.push({
642
+ model: entry.model,
643
+ capability: entry.capability ??
644
+ (getModelPricing(entry.model)?.kind === "embedding"
645
+ ? EMBEDDING_CAPABILITY
646
+ : capability),
647
+ usage: entry.usage,
648
+ });
649
+ }
650
+ namedUsage.clear();
651
+ return others;
652
+ };
653
+ /**
654
+ * Record another model's tokens as that model's execution. Begun
655
+ * and completed at settlement rather than when the tool reports
656
+ * them: `addUsage` is synchronous inside a tool, and one execution
657
+ * per model per turn keeps a retrieval loop of twenty embedding
658
+ * calls one row. The tokens are already spent, so a refusal here
659
+ * (the workspace ran dry mid-turn) cannot stop them; it is logged
660
+ * and reported as a settlement failure.
661
+ */
662
+ const settleOtherModels = async (others, aborted) => {
663
+ for (const other of others) {
664
+ try {
665
+ const child = await config.executions.begin({
666
+ workspaceId: actor.workspaceId,
667
+ userId: actor.userId,
668
+ capability: other.capability,
669
+ model: other.model,
670
+ metadata: {
671
+ ...metadata,
672
+ parentExecutionId: run.id,
673
+ parentRequestId: run.requestId,
674
+ },
675
+ });
676
+ if (!child.allowed) {
677
+ throw new Error(`Usage on ${other.model} was refused: ${child.reason ?? child.code ?? "refused"}`);
678
+ }
679
+ await child.complete({
680
+ usage: other.usage,
681
+ model: other.model,
682
+ metadata: { ...metadata, aborted },
683
+ });
684
+ }
685
+ catch (error) {
686
+ log.error("Nested model settlement failed", {
687
+ conversationId: body.id,
688
+ executionId: run.id,
689
+ modelId: other.model,
690
+ error: errorMessage(error),
691
+ });
692
+ await emit(() => events.fail?.({ turn, error, phase: "settlement" }));
693
+ }
694
+ }
695
+ };
605
696
  const settle = async (usage, detail) => {
697
+ const others = takeOtherModelUsage();
606
698
  const whole = nestedUsage ? sumUsage(usage, nestedUsage) : usage;
607
699
  const normalized = config.normalizeUsage
608
700
  ? config.normalizeUsage(whole)
@@ -627,8 +719,10 @@ export function createChatHandler(config) {
627
719
  error: errorMessage(error),
628
720
  });
629
721
  await emit(() => events.fail?.({ turn, error, phase: "settlement" }));
722
+ await settleOtherModels(others, detail.aborted);
630
723
  return;
631
724
  }
725
+ await settleOtherModels(others, detail.aborted);
632
726
  await emit(() => events.complete?.({
633
727
  turn,
634
728
  executionId: run.id,
@@ -800,6 +894,7 @@ export function createChatHandler(config) {
800
894
  // abandons it if neither does.
801
895
  if (!captured && !request.signal.aborted) {
802
896
  void run.fail({ error: new Error("stream ended without usage") });
897
+ void settleOtherModels(takeOtherModelUsage(), false);
803
898
  }
804
899
  if (config.persist === false)
805
900
  return;
@@ -844,6 +939,9 @@ export function createChatHandler(config) {
844
939
  // does not await this callback, so nothing here is.
845
940
  writerSlot = null;
846
941
  void run.fail({ error });
942
+ // Another model's tokens were spent whether or not the turn
943
+ // finished; they are that model's execution, not this one's.
944
+ void settleOtherModels(takeOtherModelUsage(), false);
847
945
  void emit(() => events.fail?.({ turn, error, phase: "stream" }));
848
946
  return t("streamError");
849
947
  },
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,IAAI,CAAC;AAWZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,GACf,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAY5D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM3D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEjC,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAC1C,4EAA4E;AAC5E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAC9C,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,qBAAqB,GACzB,gFAAgF,CAAC;AACnF,MAAM,0BAA0B,GAAG,IAAI,CAAC;AACxC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B;;;GAGG;AACH,MAAM,cAAc,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,KAAM,EAAW,CAAC;AACvE,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,KAAK,UAAU,mBAAmB;IAChC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrD,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAgB;IAC9C,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,QAA2B;IACnD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,mBAAmB,CAAC,GAAG,MAAM,CACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAC7C,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,MAA6B;IAE7B,OAAO,MAAM,CAAC,WAAW,CACvB,IAAI,eAAe,CAAe;QAChC,SAAS,CAAC,KAAK,EAAE,UAAU;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAUD,oFAAoF;AACpF,SAAS,eAAe,CAAC,QAAkC;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAyC,CAAC;QACvD,IAAI,IAAI,CAAC,KAAK,KAAK,oBAAoB;YAAE,SAAS;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAC8C,CAAC;QACrE,IACE,CAAC,QAAQ;YACT,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ;YAC/B,OAAO,QAAQ,CAAC,QAAQ,KAAK,SAAS,EACtC,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC/D,CAAC,CAAC,IAAI,CAAC,QAAQ;YACf,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACjC,CAAC,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ;YACR,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACtE,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;gBACrC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;gBAC7B,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gEAAgE;AAChE,SAAS,mBAAmB,CAC1B,QAAkC,EAClC,MAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACnC,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,EAAE;gBAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAWD,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,wIAAwI,CACzI,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GACpB,MAAM,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAChE,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACvE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,aAAa,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAE3D,wCAAwC;IACxC,KAAK,UAAU,IAAI,CAAC,GAA6C;QAC/D,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,OAAgB;QACzC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACH,SAAS,WAAW,CAAC,OAAgB;QACnC,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtD,OAAO;YACL,6BAA6B,EAAE,MAAM;YACrC,kCAAkC,EAAE,MAAM;YAC1C,8BAA8B,EAAE,4BAA4B;YAC5D,8BAA8B,EAAE,6BAA6B;YAC7D,+BAA+B,EAC7B,0EAA0E;YAC5E,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,SAAS,OAAO,CACd,IAAmB,EACnB,KAAa,EACb,KAAiE,EACjE,QAA6D,EAAE,EAC/D,UAAkC,EAAE;QAEpC,KAAK,IAAI,CAAC,GAAG,EAAE,CACb,MAAM,CAAC,MAAM,EAAE,CAAC;YACd,GAAG,KAAK;YACR,IAAI;YACJ,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CACH,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,IAAqB;QAC/C,IAAI,MAAM,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,KAAK,GACT,OAAO,SAAS,CAAC,KAAK,KAAK,UAAU;YACnC,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QACtB,+DAA+D;QAC/D,+DAA+D;QAC/D,kEAAkE;QAClE,kEAAkE;QAClE,6DAA6D;QAC7D,wCAAwC;QACxC,MAAM,EACJ,EAAE,EAAE,GAAG,EACP,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EACR,GAAG,SAAS,CAAC;QACd,OAAO;YACL,GAAG,IAAI;YACP,sDAAsD;YACtD,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,SAAS,CAAC,EAAE,IAAI,gBAAgB;YAClE,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,qBAAqB;YAC7D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,cAAc,CAC3B,KAAgB,EAChB,IAA6B;QAE7B,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU;YACzC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,IAAc,EACd,QAAqB;QAErB,IAAI,MAAM,CAAC,eAAe;YAAE,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1E,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACrE,IAAI,SAAS,KAAK,KAAK;YAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,kBAAkB,CAC/B,KAAgB,EAChB,QAAqB;QAErB,IAAI,WAAW,KAAK,KAAK,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACvD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAU,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CACR,GAAG,CAAC,EAAE,EACN,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE;gBACzC,gBAAgB,EAAE,iBAAiB;aACpC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAuB,EAAE,CAAC;YACrC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,SAAS;gBACX,CAAC;gBACD,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1C,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,4DAA4D;oBAC5D,kDAAkD;oBAClD,SAAS;gBACX,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,IAAI;oBACP,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE;iBACrB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7D,SAAS,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,KAAgB,EAChB,EAAU;QAIV,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,UAAU,oBAAoB,CACjC,KAAgB,EAChB,IAA2C;QAE3C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QACtD,IAAI,MAA6B,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CACpC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,GAAyC,CAAC;YACvD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACxC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,GAAyC,CAAC;YACvD,IAAI,IAAI,CAAC,KAAK,KAAK,oBAAoB;gBAAE,OAAO,IAAI,CAAC;YACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACvD,OAAO,CACL,QAAQ,KAAK,SAAS;gBACtB,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;IAExB,KAAK,UAAU,IAAI,CAAC,OAAgB;QAClC,MAAM,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QAEtD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;YACzC,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,IAAwB,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAE3E,IAAI,KAAgB,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAEpB,IAAI,YAAY,GAA2B,EAAE,GAAG,IAAI,EAAE,CAAC;QACvD,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACxC,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBACjD,OAAO,OAAO,CACZ,cAAc,EACd,CAAC,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAC7B,KAAK,EACL,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAC9B,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,8DAA8D;YAC9D,0CAA0C;YAC1C,IACE,0BAA0B,CAAC,MAAM,CAAC,KAAK,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EACjC,CAAC;gBACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9D,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE;gBACvC,cAAc,EAAE,IAAI,CAAC,EAAE;gBACvB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;aAClC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,+DAA+D;QAC/D,6DAA6D;QAC7D,IAAI,UAAU,GAAgD,IAAI,CAAC;QACnE,uEAAuE;QACvE,IAAI,WAAW,GAAsB,IAAI,CAAC;QAC1C,mEAAmE;QACnE,gEAAgE;QAChE,gDAAgD;QAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAGvB,CAAC;QAEJ,MAAM,OAAO,GAAoB;YAC/B,GAAG,KAAK;YACR,OAAO;YACP,cAAc,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,MAAM,CAAC,GAAG;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,CAAC,KAAoB,EAAE,EAAE;gBAC9B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,MAAM,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,EAAE,IAAI,GAAG,EAAmB;YACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;gBAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5D,OAAO;gBACT,CAAC;gBACD,8DAA8D;gBAC9D,4CAA4C;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;oBAClB,KAAK;oBACL,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;iBACtD,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QAEF,IAAI,KAAoB,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBAC/B,cAAc,EAAE,IAAI,CAAC,EAAE;gBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAC5D,CAAC;YACF,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,SAAS;YAC5B,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,MAAM,CAAC,UAAU;YACrB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QACvB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,OAAO,CACZ,eAAe,EACf,CAAC,CAAC,cAAc,CAAC,EACjB,KAAK,EACL,EAAE,UAAU,EAAE,mBAAmB,EAAE,EACnC,IAAI,CACL,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QACtE,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,kBAAkB,CAAC;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QAExE,8DAA8D;QAC9D,sDAAsD;QACtD,IAAI,YAAY,GAAkC,IAAI,CAAC;QAEvD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EACzC,OAAO,CACR,CAAC;YACF,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,IAAI,MAAM,YAAY,OAAO;gBAAE,YAAY,GAAG,MAAM,CAAC;;gBAChD,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,CAAC,YAAY,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE;oBACrD,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,OAAO;oBACP,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qDAAqD;gBACrD,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACpE,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC9D,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE;oBACzC,cAAc,EAAE,IAAI,CAAC,EAAE;oBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;iBAC3B,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,0CAA0C;QAC5C,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;YACjD,iEAAiE;YACjE,8DAA8D;YAC9D,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;QACzD,CAAC;aAAM,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,+DAA+D;YAC/D,iEAAiE;YACjE,iEAAiE;YACjE,6DAA6D;YAC7D,mBAAmB;YACnB,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,GAAa;YACrB,GAAG,OAAO;YACV,KAAK;YACL,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SACrE,CAAC;QAEF,+DAA+D;QAC/D,6CAA6C;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBAClC,cAAc,EAAE,IAAI,CAAC,EAAE;gBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,cAAc,EAAE,IAAI,CAAC,EAAE;YACvB,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;QAEF,+DAA+D;QAC/D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;YACxC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU;YACV,KAAK,EAAE,OAAO;YACd,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,iEAAiE;YACjE,kEAAkE;YAClE,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE;oBACzC,cAAc,EAAE,IAAI,CAAC,EAAE;oBACvB,OAAO;oBACP,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;gBACH,6DAA6D;gBAC7D,6DAA6D;gBAC7D,sDAAsD;gBACtD,OAAO,OAAO,CACZ,mBAAmB,EACnB,CAAC,CAAC,kBAAkB,CAAC,EACrB,KAAK,EACL,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EACxB,YAAY,CACb,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,KAAK,wBAAwB,CAAC;YAC5D,IAAI,aAAa,EAAE,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBACrC,cAAc,EAAE,IAAI,CAAC,EAAE;oBACvB,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,+DAA+D;YAC/D,gEAAgE;YAChE,OAAO,OAAO,CACZ,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,EAC3D,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,EAC3D,KAAK,EACL,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EACjD,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,sBAAsB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAA4D;gBAC5D,wCAAwC;gBACxC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE;oBAClD,cAAc,EAAE,IAAI,CAAC,EAAE;oBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,QAAQ,GAA6B;YACzC,WAAW,CAAC,QAAQ,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC/B,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAChB,CAAC,CAAC,KAAK,CAAC,QAAQ;oBACd,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAClB,CAAC,CAAC,EAAE,CAAC;SACV,CAAC;QAEF,MAAM,IAAI,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,KAAK,EAAE,CAAC;YACb,IAAI;YACJ,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO;SACR,CAAC,CACH,CAAC;QAEF,mEAAmE;QACnE,iEAAiE;QACjE,gEAAgE;QAChE,kEAAkE;QAClE,2BAA2B;QAC3B,IAAI,QASS,CAAC;QAEd;;;;;WAKG;QACH,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,MAAM,MAAM,GAIP,EAAE,CAAC;YACR,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC5B,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvD,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,UAAU,EACR,KAAK,CAAC,UAAU;wBAChB,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,WAAW;4BACjD,CAAC,CAAC,oBAAoB;4BACtB,CAAC,CAAC,UAAU,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF;;;;;;;;WAQG;QACH,MAAM,iBAAiB,GAAG,KAAK,EAC7B,MAA8C,EAC9C,OAAgB,EAChB,EAAE;YACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;wBAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,QAAQ,EAAE;4BACR,GAAG,QAAQ;4BACX,iBAAiB,EAAE,GAAG,CAAC,EAAE;4BACzB,eAAe,EAAE,GAAG,CAAC,SAAS;yBAC/B;qBACF,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,IAAI,KAAK,CACb,YAAY,KAAK,CAAC,KAAK,iBAAiB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAClF,CAAC;oBACJ,CAAC;oBACD,MAAM,KAAK,CAAC,QAAQ,CAAC;wBACnB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE;qBACnC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE;wBAC1C,cAAc,EAAE,IAAI,CAAC,EAAE;wBACvB,WAAW,EAAE,GAAG,CAAC,EAAE;wBACnB,OAAO,EAAE,KAAK,CAAC,KAAK;wBACpB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;qBAC3B,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,EAClB,KAAiB,EACjB,MAAsD,EACtD,EAAE;YACF,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACjE,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc;gBACtC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC9B,CAAC,CAAC,KAAK,CAAC;YACV,+DAA+D;YAC/D,8DAA8D;YAC9D,4CAA4C;YAC5C,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,QAAQ,CAAC;oBACjB,KAAK,EAAE,UAAU;oBACjB,qDAAqD;oBACrD,sDAAsD;oBACtD,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE;oBACvC,cAAc,EAAE,IAAI,CAAC,EAAE;oBACvB,WAAW,EAAE,GAAG,CAAC,EAAE;oBACnB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;iBAC3B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gBACtE,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI;gBACJ,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,OAAO;gBACrC,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,QAAQ,EAAE,YAAY;gBACpC,eAAe,EAAE,QAAQ,EAAE,eAAe;gBAC1C,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB;gBAC5C,QAAQ,EAAE,QAAQ,EAAE,QAAQ;aAC7B,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;gBACjC,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,6DAA6D;gBAC7D,gCAAgC;gBAChC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;oBAAE,OAAO,OAAO,CAAC,KAAK,CAAC;gBACjD,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAChC,cAAc,EAAE,IAAI,CAAC,EAAE;oBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;iBAC3B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAuB,EAAE,CAAC,CAAC;YAClE,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,OAAO;YACrC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;YACvB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,qBAAqB,CAAgB;YAClD,mEAAmE;YACnE,2DAA2D;YAC3D,sDAAsD;YACtD,gBAAgB,EAAE,QAAQ,CAAC,QAA2B;YACtD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC5B,UAAU,GAAG,MAAM,CAAC;gBACpB,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAC5C,KAAK,EACL,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,2DAA2D;oBAC3D,sDAAsD;oBACtD,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAChC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE;wBACvD,OAAO;wBACP,WAAW,EAAE,OAAO,CAAC,MAAM;wBAC3B,MAAM;qBACP,CAAC,CAAC;oBACH,MAAM,CAAC,KAAK,CACV,aAAa,CACX,QAAQ,CAAC,MAAwC,CACI,CACxD,CAAC;oBACF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;oBACnC,QAAQ,GAAG;wBACT,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;wBACvB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpE,CAAC;oBACF,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClE,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;oBACjC,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,KAAK,CAAC;4BACX,IAAI,EAAE,iBAAiB;4BACvB,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,IAAI;yBAChB,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC;wBACX,IAAI,EAAE,QAAQ;wBACd,GAAG,CAAC,YAAY;4BACd,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;4BACrD,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;gBAChE,MAAM,MAAM,GAAG,UAAU,CAAC;oBACxB,2DAA2D;oBAC3D,wDAAwD;oBACxD,iDAAiD;oBACjD,GAAG,CAAC,aAAa,KAAK,SAAS;wBAC7B,CAAC,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACP,yDAAyD;oBACzD,4DAA4D;oBAC5D,0DAA0D;oBAC1D,wDAAwD;oBACxD,yCAAyC;oBACzC,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC;oBAC1C,KAAK;oBACL,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY;oBAC7C,GAAG,CAAC,KAAK,CAAC,eAAe;wBACvB,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE;wBAC5C,CAAC,CAAC,EAAE,CAAC;oBACP,QAAQ,EAAE,MAAM,sBAAsB,CAAC,aAAa,EAAE;wBACpD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,KAAK;wBACP,CAAC,CAAC;4BACE,KAAK;4BACL,QAAQ;4BACR,qDAAqD;4BACrD,uDAAuD;4BACvD,uDAAuD;4BACvD,sDAAsD;4BACtD,cAAc;4BACd,GAAG,CAAC,KAAK,CAAC,WAAW;gCACnB,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAmC,EAAE;gCAC5D,CAAC,CAAC,EAAE,CAAC;yBACR;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,6DAA6D;oBAC7D,2DAA2D;oBAC3D,2DAA2D;oBAC3D,WAAW,EAAE,OAAO,CAAC,MAAM;oBAC3B,QAAQ,EAAE,KAAK,EAAE,EACf,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,EAAE,EAAE;wBACH,QAAQ,GAAG;4BACT,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC;4BAC5B,YAAY;4BACZ,eAAe;4BACf,gBAAgB;4BAChB,QAAQ,EAAE,QAAiC;yBAC5C,CAAC;wBACF,2DAA2D;wBAC3D,4DAA4D;wBAC5D,4CAA4C;wBAC5C,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;wBAC3B,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvD,CAAC;iBACF,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,iBAAiB,CAAC;oBACvB,aAAa,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;oBACxC,WAAW,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;oBACpC,GAAG,CAAC,YAAY;wBACd,CAAC,CAAC;4BACE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5B,IAAI,CAAC,IAAI,KAAK,QAAQ;gCACpB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;gCACjC,CAAC,CAAC,SAAS;yBAChB;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR,CAAuD,CACzD,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;gBACjC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC;wBACX,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,KAAK;wBACX,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,UAAU;YACV,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE;gBACtD,UAAU,GAAG,IAAI,CAAC;gBAClB,gEAAgE;gBAChE,6DAA6D;gBAC7D,+DAA+D;gBAC/D,iEAAiE;gBACjE,iEAAiE;gBACjE,+BAA+B;gBAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;oBAClE,KAAK,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;gBAED,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBAAE,OAAO;gBACrC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC;oBACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;4BACzB,WAAW;4BACX,eAAe;4BACf,cAAc;yBACf,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE;4BAC5B,GAAG,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACxD,eAAe;yBAChB,CAAC,CAAC;oBACL,CAAC;oBACD,IACE,WAAW;wBACX,WAAW,KAAK,KAAK;wBACrB,WAAW,CAAC,IAAI,KAAK,QAAQ,EAC7B,CAAC;wBACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;wBAC5D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACnB,MAAM,oBAAoB,CAAC,KAAK,EAAE;gCAChC,GAAG;gCACH,cAAc,EAAE,IAAI,CAAC,EAAE;6BACxB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE;wBACtC,cAAc,EAAE,IAAI,CAAC,EAAE;wBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;qBAC3B,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,+DAA+D;gBAC/D,4DAA4D;gBAC5D,oDAAoD;gBACpD,UAAU,GAAG,IAAI,CAAC;gBAClB,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzB,4DAA4D;gBAC5D,6DAA6D;gBAC7D,KAAK,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACrD,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACjE,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;YAC1B,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,6BAA6B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,iCAAiC;IAEjC,KAAK,UAAU,MAAM,CAAC,OAAgB;QACpC,MAAM,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAqB,CAAC;gBACxD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;oBAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,wDAAwD;YAC1D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,OAAO,CACZ,aAAa,EACb,CAAC,CAAC,aAAa,CAAC,EAChB,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EACrC,EAAE,EACF,IAAI,CACL,CAAC;QACJ,CAAC;QAED,IAAI,KAAgB,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CACZ,cAAc,EACd,CAAC,CAAC,cAAc,CAAC,EACjB,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,EACnC,EAAE,EACF,IAAI,CACL,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,0BAA0B,CAAC,KAAK,CAAC;gBACjC,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,EAC1D,CAAC;gBACD,OAAO,OAAO,CACZ,WAAW,EACX,CAAC,CAAC,UAAU,CAAC,EACb,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,EAC7B,EAAE,EACF,IAAI,CACL,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBACzC,cAAc,EAAE,EAAE;gBAClB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC;YACH,OAAO,OAAO,CACZ,UAAU,EACV,CAAC,CAAC,eAAe,CAAC,EAClB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,EAC7B,EAAE,EACF,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,mDAAmD;IAEnD;;;;OAIG;IACH,KAAK,UAAU,GAAG,CAAC,OAAgB;QACjC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,OAAgB;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  export { createChatHandler } from "./handler.js";
8
8
  export { truncateTitle } from "./title.js";
9
9
  export type { ChatHandler } from "./handler.js";
10
- export type { ChatActor, ChatAgentConfig, ChatAttachmentPolicy, ChatGenerationOptions, ChatMessageKey, ChatMessageParams, ChatMessages, ChatModelsConfig, ChatServerConfig, ChatTurn, ChatTurnContext, ChatTurnEvents, PreparedTurn, ProviderOptions, RateLimitDecision, ResolvedAgent, StreamTurn, TurnStream, } from "./config.js";
10
+ export type { ChatActor, ChatAgentConfig, ChatAttachmentPolicy, ChatGenerationOptions, ChatMessageKey, ChatMessageParams, ChatMessages, ChatModelsConfig, ChatServerConfig, ChatTurn, ChatTurnContext, ChatTurnEvents, ChatUsageOptions, PreparedTurn, ProviderOptions, RateLimitDecision, ResolvedAgent, StreamTurn, TurnStream, } from "./config.js";
11
11
  export { CHAT_ERROR_STATUS, DEFAULT_CHAT_MESSAGES } from "./errors.js";
12
12
  export { parseChatBody } from "./body.js";
13
13
  export type { ChatBody, ParsedChatBody } from "./body.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5E,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5E,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAwBxC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyBxC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,GACZ,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intelligo-dev/chat",
3
- "version": "1.0.0-beta.13",
3
+ "version": "1.0.0-beta.14",
4
4
  "description": "The AI-SDK-native chat transport: one Route Handler with auth, rate limits, feature gates, credits and persistence.",
5
5
  "keywords": [
6
6
  "intelligo",
@@ -39,10 +39,10 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "@intelligo-dev/auth": "1.0.0-beta.13",
43
- "@intelligo-dev/billing": "1.0.0-beta.13",
44
- "@intelligo-dev/core": "1.0.0-beta.13",
45
- "@intelligo-dev/executions": "1.0.0-beta.13"
42
+ "@intelligo-dev/auth": "1.0.0-beta.14",
43
+ "@intelligo-dev/billing": "1.0.0-beta.14",
44
+ "@intelligo-dev/executions": "1.0.0-beta.14",
45
+ "@intelligo-dev/core": "1.0.0-beta.14"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "ai": "^7.0.0"
package/src/config.ts CHANGED
@@ -71,14 +71,42 @@ export interface ChatTurnContext extends ChatActor {
71
71
  * are replaced, other keys kept. Rejects before the row exists.
72
72
  */
73
73
  updateMetadata: (patch: Record<string, unknown>) => Promise<void>;
74
+ /**
75
+ * Scratch space living for one turn, shared by every seam that
76
+ * receives the turn — `resolveAgent`, `prepareMessages`, tools,
77
+ * `streamTurn`, `persist`, the `onTurn` events. One `Map` per request,
78
+ * created before `resolveAgent` runs and dropped with the request:
79
+ * what one seam computes (a profile read, a retrieval result) another
80
+ * reads without a second query. Nothing in it is persisted.
81
+ */
82
+ state: Map<string, unknown>;
74
83
  /**
75
84
  * Add the tokens a tool spent on its own model call — a search that
76
- * asks a model, a sub-agent — to what this turn settles. They are
77
- * priced as the turn's model, so a call on another model is its own
78
- * execution rather than usage added here. Usage added after the run
79
- * settles is not charged.
85
+ * asks a model, a sub-agent, an embedding — to what this turn settles.
86
+ *
87
+ * Without `model`, or with the turn's own model, the tokens are summed
88
+ * into the turn's execution and priced as its model. With another
89
+ * model they are that model's usage: summed per model (and
90
+ * `capability`), each total is recorded as its own execution — same
91
+ * workspace, user and conversation, `parentExecutionId` in its
92
+ * metadata — when the turn settles, or when it fails, since the
93
+ * tokens were spent either way. `capability` defaults to
94
+ * `"chat.embedding"` for a model registered with `kind: "embedding"`
95
+ * and to the turn's capability otherwise.
96
+ *
97
+ * Throws `UnknownModelError` at the call when `model` has no
98
+ * registered price, rather than bill the tokens at another model's.
99
+ * Usage added after the turn settles is not charged.
80
100
  */
81
- addUsage: (usage: TokenUsage) => void;
101
+ addUsage: (usage: TokenUsage, options?: ChatUsageOptions) => void;
102
+ }
103
+
104
+ /** Where `turn.addUsage` bills the tokens it is handed. */
105
+ export interface ChatUsageOptions {
106
+ /** The registered model the tokens were spent on. Default: the turn's. */
107
+ model?: string;
108
+ /** Capability recorded on that model's execution. See `addUsage`. */
109
+ capability?: string;
82
110
  }
83
111
 
84
112
  /** The agent this turn runs as. */
package/src/handler.ts CHANGED
@@ -60,7 +60,12 @@ import {
60
60
  import type { Conversation } from "@intelligo-dev/core/conversations";
61
61
  import { createLogger } from "@intelligo-dev/core/logger";
62
62
  import { getStorageAdapter } from "@intelligo-dev/core/storage";
63
- import { getModelPricing } from "@intelligo-dev/executions/pricing";
63
+ import {
64
+ UnknownModelError,
65
+ getModelPricing,
66
+ isModelRegistered,
67
+ registeredModelIds,
68
+ } from "@intelligo-dev/executions/pricing";
64
69
 
65
70
  import { attachmentIdFromUrl, parseChatBody } from "./body";
66
71
  import type { ChatAttachmentPolicy } from "./body";
@@ -96,6 +101,8 @@ function errorMessage(error: unknown): string {
96
101
 
97
102
  const DEFAULT_FEATURE_KEY = "chat";
98
103
  const DEFAULT_CAPABILITY = "chat.message";
104
+ /** Capability of the execution recording a turn's embedding-model usage. */
105
+ const EMBEDDING_CAPABILITY = "chat.embedding";
99
106
  const DEFAULT_AGENT_ID = "assistant";
100
107
  const DEFAULT_SYSTEM_PROMPT =
101
108
  "You are a helpful assistant embedded in a SaaS product. Be concise and direct.";
@@ -548,6 +555,13 @@ export function createChatHandler(config: ChatServerConfig): ChatHandler {
548
555
  let writerSlot: UIMessageStreamWriter<ChatUIMessage> | null = null;
549
556
  // Tokens tools spent on their own model calls, settled with the run's.
550
557
  let nestedUsage: TokenUsage | null = null;
558
+ // Tokens spent on a named model, by model and capability. Which of
559
+ // them are the turn's own model is known only once the agent is
560
+ // resolved, so the split happens at settlement.
561
+ const namedUsage = new Map<
562
+ string,
563
+ { model: string; capability?: string; usage: TokenUsage }
564
+ >();
551
565
 
552
566
  const context: ChatTurnContext = {
553
567
  ...actor,
@@ -562,8 +576,25 @@ export function createChatHandler(config: ChatServerConfig): ChatHandler {
562
576
  updateMetadata: async (patch) => {
563
577
  await updateConversationMetadata(actor, body.id, patch);
564
578
  },
565
- addUsage: (usage) => {
566
- nestedUsage = sumUsage(nestedUsage ?? {}, pickUsage(usage));
579
+ state: new Map<string, unknown>(),
580
+ addUsage: (usage, options) => {
581
+ const model = options?.model;
582
+ if (model === undefined) {
583
+ nestedUsage = sumUsage(nestedUsage ?? {}, pickUsage(usage));
584
+ return;
585
+ }
586
+ // A price is needed to bill these tokens at all; failing here
587
+ // names the id in the tool that spent them.
588
+ if (!isModelRegistered(model)) {
589
+ throw new UnknownModelError(model, registeredModelIds());
590
+ }
591
+ const key = `${model}\u0000${options?.capability ?? ""}`;
592
+ const entry = namedUsage.get(key);
593
+ namedUsage.set(key, {
594
+ model,
595
+ ...(options?.capability ? { capability: options.capability } : {}),
596
+ usage: sumUsage(entry?.usage ?? {}, pickUsage(usage)),
597
+ });
567
598
  },
568
599
  };
569
600
 
@@ -797,10 +828,90 @@ export function createChatHandler(config: ChatServerConfig): ChatHandler {
797
828
  }
798
829
  | undefined;
799
830
 
831
+ /**
832
+ * Take the usage tools named a model for: the turn's own model
833
+ * folds into `nestedUsage`, every other model is returned for its
834
+ * own execution. Drains the map, so a second call finds nothing and
835
+ * no model's tokens are recorded twice.
836
+ */
837
+ const takeOtherModelUsage = () => {
838
+ const others: Array<{
839
+ model: string;
840
+ capability: string;
841
+ usage: TokenUsage;
842
+ }> = [];
843
+ for (const entry of namedUsage.values()) {
844
+ if (entry.model === modelId) {
845
+ nestedUsage = sumUsage(nestedUsage ?? {}, entry.usage);
846
+ continue;
847
+ }
848
+ others.push({
849
+ model: entry.model,
850
+ capability:
851
+ entry.capability ??
852
+ (getModelPricing(entry.model)?.kind === "embedding"
853
+ ? EMBEDDING_CAPABILITY
854
+ : capability),
855
+ usage: entry.usage,
856
+ });
857
+ }
858
+ namedUsage.clear();
859
+ return others;
860
+ };
861
+
862
+ /**
863
+ * Record another model's tokens as that model's execution. Begun
864
+ * and completed at settlement rather than when the tool reports
865
+ * them: `addUsage` is synchronous inside a tool, and one execution
866
+ * per model per turn keeps a retrieval loop of twenty embedding
867
+ * calls one row. The tokens are already spent, so a refusal here
868
+ * (the workspace ran dry mid-turn) cannot stop them; it is logged
869
+ * and reported as a settlement failure.
870
+ */
871
+ const settleOtherModels = async (
872
+ others: ReturnType<typeof takeOtherModelUsage>,
873
+ aborted: boolean
874
+ ) => {
875
+ for (const other of others) {
876
+ try {
877
+ const child = await config.executions.begin({
878
+ workspaceId: actor.workspaceId,
879
+ userId: actor.userId,
880
+ capability: other.capability,
881
+ model: other.model,
882
+ metadata: {
883
+ ...metadata,
884
+ parentExecutionId: run.id,
885
+ parentRequestId: run.requestId,
886
+ },
887
+ });
888
+ if (!child.allowed) {
889
+ throw new Error(
890
+ `Usage on ${other.model} was refused: ${child.reason ?? child.code ?? "refused"}`
891
+ );
892
+ }
893
+ await child.complete({
894
+ usage: other.usage,
895
+ model: other.model,
896
+ metadata: { ...metadata, aborted },
897
+ });
898
+ } catch (error) {
899
+ log.error("Nested model settlement failed", {
900
+ conversationId: body.id,
901
+ executionId: run.id,
902
+ modelId: other.model,
903
+ error: errorMessage(error),
904
+ });
905
+ await emit(() => events.fail?.({ turn, error, phase: "settlement" }));
906
+ }
907
+ }
908
+ };
909
+
800
910
  const settle = async (
801
911
  usage: TokenUsage,
802
912
  detail: { aborted: boolean } & Record<string, unknown>
803
913
  ) => {
914
+ const others = takeOtherModelUsage();
804
915
  const whole = nestedUsage ? sumUsage(usage, nestedUsage) : usage;
805
916
  const normalized = config.normalizeUsage
806
917
  ? config.normalizeUsage(whole)
@@ -824,8 +935,10 @@ export function createChatHandler(config: ChatServerConfig): ChatHandler {
824
935
  error: errorMessage(error),
825
936
  });
826
937
  await emit(() => events.fail?.({ turn, error, phase: "settlement" }));
938
+ await settleOtherModels(others, detail.aborted);
827
939
  return;
828
940
  }
941
+ await settleOtherModels(others, detail.aborted);
829
942
  await emit(() =>
830
943
  events.complete?.({
831
944
  turn,
@@ -1018,6 +1131,7 @@ export function createChatHandler(config: ChatServerConfig): ChatHandler {
1018
1131
  // abandons it if neither does.
1019
1132
  if (!captured && !request.signal.aborted) {
1020
1133
  void run.fail({ error: new Error("stream ended without usage") });
1134
+ void settleOtherModels(takeOtherModelUsage(), false);
1021
1135
  }
1022
1136
 
1023
1137
  if (config.persist === false) return;
@@ -1064,6 +1178,9 @@ export function createChatHandler(config: ChatServerConfig): ChatHandler {
1064
1178
  // does not await this callback, so nothing here is.
1065
1179
  writerSlot = null;
1066
1180
  void run.fail({ error });
1181
+ // Another model's tokens were spent whether or not the turn
1182
+ // finished; they are that model's execution, not this one's.
1183
+ void settleOtherModels(takeOtherModelUsage(), false);
1067
1184
  void emit(() => events.fail?.({ turn, error, phase: "stream" }));
1068
1185
  return t("streamError");
1069
1186
  },
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ export type {
22
22
  ChatTurn,
23
23
  ChatTurnContext,
24
24
  ChatTurnEvents,
25
+ ChatUsageOptions,
25
26
  PreparedTurn,
26
27
  ProviderOptions,
27
28
  RateLimitDecision,