orbitx 0.3.5 → 0.3.7

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.
@@ -2,16 +2,30 @@ import { resolveAgentProviders } from "./agent-providers.js";
2
2
  /** Built-in tool, always available alongside whatever MCP tools are allowed — lets the model trigger memory compaction itself instead of only having it happen as a hidden side-effect. */
3
3
  const COMPACT_MEMORY_TOOL_NAME = "compact_memory";
4
4
  const COMPACT_CONFIRMATION_MESSAGE = "Memory compacted. Continue where you left off, using MEMORY above for context.";
5
+ /** The user's latest message is carried across a compaction verbatim up to this many characters; past it, the head and tail are kept. */
6
+ const CARRIED_USER_MESSAGE_CHARS = 6000;
5
7
  const COMPACT_MEMORY_TOOL = {
6
8
  name: COMPACT_MEMORY_TOOL_NAME,
7
- description: "Compact the conversation so far into a persistent memory note and reset the active working context. Nothing is lost — the summary is shown in every future system prompt's MEMORY section. Call this proactively when the conversation has grown long, or whenever asked to free up context.",
9
+ description: "Compact the conversation so far into a persistent memory note and reset the active working context. The note is shown in every future system prompt's MEMORY section and the user's latest message is carried over verbatim, but everything else in the working context (tool results, file contents, your own replies) is dropped — write the note so you can carry on from it alone. Call this proactively when the conversation has grown long, or whenever asked to free up context.",
8
10
  inputs: [
9
11
  {
10
12
  name: "new_memory",
11
13
  type: "string",
12
- description: "A compact summary capturing every important fact, decision, and pending task from the conversation so far. Replaces the current MEMORY note.",
14
+ description: "The note that replaces the current MEMORY, written as a hand-over to yourself: (1) the user's goal and every request they made, with their exact constraints and preferences; (2) what is done so far, with concrete names (files, commands, ids, results); (3) decisions made and why; (4) what is in progress and the exact next steps; (5) open questions and anything the user is waiting for. Refer to files by path instead of copying their contents — list the ones to read again in files_to_reread. Complete about state, brief about prose.",
13
15
  required: true,
14
16
  },
17
+ {
18
+ name: "language",
19
+ type: "string",
20
+ description: "The language the user writes in and you reply in (e.g. \"Persian\", \"English\"). You keep replying in it after the compaction.",
21
+ required: false,
22
+ },
23
+ {
24
+ name: "files_to_reread",
25
+ type: "array",
26
+ description: "Files you need to read again to carry on, as {path: string, reason: string}[] — e.g. the file you were editing, a spec or plan the user gave. Cheaper than copying their contents into new_memory. Omit when none.",
27
+ required: false,
28
+ },
15
29
  {
16
30
  name: "continue_iterating",
17
31
  type: "boolean",
@@ -21,16 +35,52 @@ const COMPACT_MEMORY_TOOL = {
21
35
  },
22
36
  ],
23
37
  };
38
+ /** files_to_reread as the model sent it: objects, or bare paths. */
39
+ function rereadFiles(value) {
40
+ const files = [];
41
+ for (const entry of Array.isArray(value) ? value : []) {
42
+ if (typeof entry === "string") {
43
+ if (entry.trim())
44
+ files.push({ path: entry.trim() });
45
+ continue;
46
+ }
47
+ const path = typeof entry?.path === "string" ? entry.path.trim() : "";
48
+ const reason = typeof entry?.reason === "string" ? entry.reason.trim() : "";
49
+ if (path)
50
+ files.push({ path, ...(reason ? { reason } : {}) });
51
+ }
52
+ return files.slice(0, 30);
53
+ }
54
+ /** The memory note as stored: the model's note, then the language and the files to read again, so both survive with it (and with a restore from AgentState). */
55
+ function composeMemory(note, language, files) {
56
+ const parts = [note.trim()];
57
+ if (language)
58
+ parts.push(`Conversation language: ${language} — keep replying to the user in ${language}.`);
59
+ if (files.length) {
60
+ parts.push(["Files to read again before continuing (their contents were not kept):", ...files.map((file) => `- ${file.path}${file.reason ? ` — ${file.reason}` : ""}`)].join("\n"));
61
+ }
62
+ return parts.join("\n\n");
63
+ }
64
+ function clip(text, max) {
65
+ if (text.length <= max)
66
+ return text;
67
+ const half = Math.floor((max - 40) / 2);
68
+ return `${text.slice(0, half)}\n[… ${text.length - 2 * half} characters left out …]\n${text.slice(-half)}`;
69
+ }
24
70
  ;
25
71
  export class BaseAgent {
26
72
  #maxMemorizeToken;
27
73
  #safetyPolicies = "";
28
74
  #instruction = "";
75
+ #compactInstructions = "";
29
76
  #allSkills = [];
30
77
  #allowedTools = [];
31
78
  /** Built once, lazily, from all skills/tools — never changes after that, so it's identical (and cache-friendly) across every turn and every iteration of the run loop. */
32
79
  #systemPrompt;
33
80
  #compactMemory = "";
81
+ /** From the latest `compact_memory` call, for the message the model reads right after it. */
82
+ #compactLanguage = "";
83
+ #compactFiles = [];
34
84
  /** Retired messages only — whatever a `compact_memory` call has already folded out of #messagesCompact. Disjoint from #messagesCompact, not a superset of it: a message lives in exactly one of the two at any time. The complete history is the concatenation of this and #messagesCompact, not this array alone. */
35
85
  #retiredMessages = [];
36
86
  #runningProcess = false;
@@ -51,11 +101,12 @@ export class BaseAgent {
51
101
  compactMemory: "",
52
102
  retiredMessages: [],
53
103
  messagesCompact: [],
54
- }, skills = [], maxMemorizeToken, features: { executeProviderFromMCPTool = false } = {
104
+ }, skills = [], compactInstructions = "", maxMemorizeToken, features: { executeProviderFromMCPTool = false } = {
55
105
  executeProviderFromMCPTool: false
56
106
  } }) {
57
107
  this.#safetyPolicies = safetyPolicies;
58
108
  this.#instruction = instruction;
109
+ this.#compactInstructions = compactInstructions;
59
110
  this.#allowedTools = allowedTools;
60
111
  this.#mcpClient = mcpClient;
61
112
  this.#compactMemory = initData.compactMemory;
@@ -106,8 +157,17 @@ export class BaseAgent {
106
157
  return Math.floor(caps.contextWindow * ratio);
107
158
  }
108
159
  async #getAllToolSchemas() {
160
+ const allowed = new Map(this.#allowedTools.map(t => [t.getOptions().name, t.getOptions()]));
109
161
  const mcpTools = (await this.#mcpClient.getTools())
110
- .filter(t => this.#allowedTools.map(t => t.getOptions().name).includes(t.name));
162
+ .filter(t => allowed.has(t.name))
163
+ // A remote tool that publishes no inputs (a bare proxy that only forwards calls) takes the
164
+ // schema this agent was given for it, so the model still sees its parameters.
165
+ .map(t => {
166
+ const own = allowed.get(t.name);
167
+ return (!t.inputs || t.inputs.length === 0) && own.inputs?.length
168
+ ? { name: t.name, description: own.description || t.description, inputs: own.inputs }
169
+ : t;
170
+ });
111
171
  return [...mcpTools, COMPACT_MEMORY_TOOL];
112
172
  }
113
173
  #buildSkillsAndMemoryBlock(skills) {
@@ -121,6 +181,9 @@ ${skill.getSkill().instructions}
121
181
  COMPACT SESSION MEMORY:
122
182
  ${this.#compactMemory || "(empty)"}
123
183
 
184
+ COMPACTION RULES:
185
+ When you call ${COMPACT_MEMORY_TOOL_NAME}, only your note, the language, the files to read again and the user's latest message survive; every tool result and file content is dropped. Keep the user's requests and constraints, what is done, the decisions, and the exact next steps; name files by path and list the ones you'll need in files_to_reread instead of copying them. After a compaction, read those files first, then carry on with the next step without asking the user to repeat themselves, and keep replying in the user's language.${this.#compactInstructions ? `\n${this.#compactInstructions}` : ""}
186
+
124
187
  INSTRUCTIONS:
125
188
  ${this.#instruction}
126
189
  `;
@@ -139,13 +202,35 @@ ${this.#buildSkillsAndMemoryBlock(skills)}`;
139
202
  }
140
203
  /** Injected as a normal user turn once the running context crosses `#maxMemorizeToken`, so the model calls `compact_memory` itself on its next turn instead of the reset happening as a hidden side-effect. Explicitly tells the model how to set `continue_iterating` on that call: `run()` trusts whatever the model decides here — including `true`, if the model still has unfinished work from before this nudge fired (e.g. mid-way through a multi-step task) — it doesn't force `continue_iterating` to `false` just because this is a response to a nudge rather than the user. */
141
204
  #buildForceCompactPrompt() {
142
- return `You're nearing the safe context limit for this conversation. Before doing anything else, call the "${COMPACT_MEMORY_TOOL_NAME}" tool with a "new_memory" summary capturing every important fact, decision, and pending task so far. This is routine housekeeping, not a new request from the user — set "continue_iterating" to true only if you still have unfinished work left from their last message (e.g. more steps of a task they asked for), false if you'd already given them everything they needed before this nudge fired.`;
205
+ return `You're nearing the safe context limit for this conversation. Before doing anything else, call the "${COMPACT_MEMORY_TOOL_NAME}" tool with a "new_memory" hand-over note (the user's requests and constraints, what's done, decisions, the exact next steps), the user's "language", and "files_to_reread" for the files you'll need again (paths and why — don't copy their contents). This is routine housekeeping, not a new request from the user — set "continue_iterating" to true only if you still have unfinished work left from their last message (e.g. more steps of a task they asked for), false if you'd already given them everything they needed before this nudge fired.`;
143
206
  }
144
207
  /** Stores the new running summary from a successful `compact_memory` call and invalidates the cached system prompt, so the very next turn's system prompt is rebuilt with it rather than replaying the stale one. Deliberately does not touch `messagesCompact` — see #archiveWorkingContext(), which run() calls separately once the whole turn's tool calls have all been dispatched. */
145
- #applyCompactMemory(newMemory) {
146
- this.#compactMemory = newMemory;
208
+ #applyCompactMemory(newMemory, language, files) {
209
+ this.#compactMemory = composeMemory(newMemory, language, files);
210
+ this.#compactLanguage = language;
211
+ this.#compactFiles = files;
147
212
  this.#systemPrompt = undefined;
148
213
  }
214
+ /** The newest message the user wrote (not one this agent injected), carried across a compaction. */
215
+ #latestUserMessage() {
216
+ for (let i = this.#messagesCompact.length - 1; i >= 0; i--) {
217
+ const message = this.#messagesCompact[i];
218
+ if (message.role === "user" && !message.hidden && typeof message.content === "string" && message.content.trim())
219
+ return message.content;
220
+ }
221
+ return undefined;
222
+ }
223
+ /** What the model reads right after a compaction: the user's latest message verbatim, the files to read again, and the language to answer in. */
224
+ #buildCompactConfirmation(latestUserMessage) {
225
+ const parts = [COMPACT_CONFIRMATION_MESSAGE];
226
+ if (latestUserMessage)
227
+ parts.push(`The user's latest message, verbatim:\n<<<\n${clip(latestUserMessage, CARRIED_USER_MESSAGE_CHARS)}\n>>>`);
228
+ if (this.#compactFiles.length)
229
+ parts.push(`Before the next step, read again: ${this.#compactFiles.map((file) => file.path).join(", ")}.`);
230
+ if (this.#compactLanguage)
231
+ parts.push(`Reply to the user in ${this.#compactLanguage}.`);
232
+ return parts.join("\n\n");
233
+ }
149
234
  #archiveWorkingContext() {
150
235
  this.#retiredMessages.push(...this.#messagesCompact);
151
236
  this.#messagesCompact = [];
@@ -213,7 +298,8 @@ ${this.#buildSkillsAndMemoryBlock(skills)}`;
213
298
  async #dispatchTool(id, toolName, inputs) {
214
299
  if (toolName === COMPACT_MEMORY_TOOL_NAME) {
215
300
  if (typeof inputs?.new_memory === "string") {
216
- this.#applyCompactMemory(inputs.new_memory);
301
+ const language = typeof inputs?.language === "string" ? inputs.language.trim().slice(0, 60) : "";
302
+ this.#applyCompactMemory(inputs.new_memory, language, rereadFiles(inputs?.files_to_reread));
217
303
  const continueAfterCompact = typeof inputs?.continue_iterating === "boolean" ? inputs.continue_iterating : true;
218
304
  return { id, name: toolName, resultText: COMPACT_CONFIRMATION_MESSAGE, compacted: true, continueAfterCompact };
219
305
  }
@@ -358,9 +444,10 @@ ${this.#buildSkillsAndMemoryBlock(skills)}`;
358
444
  }
359
445
  const compactKeepsGoing = compactedThisTurn && compactRequestsContinue;
360
446
  if (compactedThisTurn) {
447
+ const latestUserMessage = this.#latestUserMessage();
361
448
  this.#archiveWorkingContext();
362
449
  if (compactKeepsGoing || calledAnyNonCompactTool) {
363
- const compactedMessage = { role: "user", content: COMPACT_CONFIRMATION_MESSAGE, timestamp: Date.now(), hidden: true };
450
+ const compactedMessage = { role: "user", content: this.#buildCompactConfirmation(latestUserMessage), timestamp: Date.now(), hidden: true };
364
451
  this.#messagesCompact.push(compactedMessage);
365
452
  await streamCallback?.({ role: "user", content: compactedMessage.content, done: true, hidden: true });
366
453
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAmD,MAAM,sBAAsB,CAAC;AA6B9G,2LAA2L;AAC3L,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAElD,MAAM,4BAA4B,GAAG,gFAAgF,CAAC;AAEtH,yIAAyI;AACzI,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,MAAM,mBAAmB,GAAe;IACpC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,0dAA0d;IACve,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,whBAAwhB;YACriB,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iIAAiI;YAC9I,QAAQ,EAAE,KAAK;SAClB;QACD;YACI,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,oNAAoN;YACjO,QAAQ,EAAE,KAAK;SAClB;QACD;YACI,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,oYAAoY;YACjZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SAChB;KACJ;CACJ,CAAC;AAOF,oEAAoE;AACpE,SAAS,WAAW,CAAC,KAAc;IAC/B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrD,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,gKAAgK;AAChK,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB,EAAE,KAAmB;IACtE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,mCAAmC,QAAQ,GAAG,CAAC,CAAC;IAC3G,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,CAAC,uEAAuE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW;IACnC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,4BAA4B,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/G,CAAC;AAyBA,CAAC;AAEF,MAAM,OAAO,SAAS;IAClB,iBAAiB,CAAS;IAC1B,eAAe,GAAW,EAAE,CAAC;IAC7B,YAAY,GAAW,EAAE,CAAC;IAC1B,oBAAoB,GAAW,EAAE,CAAC;IAElC,UAAU,GAAY,EAAE,CAAC;IACzB,aAAa,GAAc,EAAE,CAAC;IAE9B,0KAA0K;IAC1K,aAAa,CAAU;IAEvB,cAAc,GAAW,EAAE,CAAC;IAC5B,6FAA6F;IAC7F,gBAAgB,GAAW,EAAE,CAAC;IAC9B,aAAa,GAAiB,EAAE,CAAC;IAEjC,sTAAsT;IACtT,gBAAgB,GAAc,EAAE,CAAC;IAEjC,eAAe,GAAY,KAAK,CAAC;IACjC,YAAY,GAAQ,EAAE,CAAC;IAEvB,uKAAuK;IACvK,gBAAgB,GAAc,EAAE,CAAC;IAEjC,WAAW,GAAG,KAAK,CAAC;IACpB,4OAA4O;IAC5O,uBAAuB,CAAmB;IAE1C,UAAU,CAAY;IAEtB,iOAAiO;IACjO,UAAU,CAAmB;IAC7B,aAAa,CAAa;IAE1B,kBAAkB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE5D,yFAAyF;IACzF,2BAA2B,GAAY,KAAK,CAAC;IAE7C,YAAY,EACR,cAAc,GAAG,EAAE,EACnB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,GAAG;QACP,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;KACtB,EACD,MAAM,GAAG,EAAE,EACX,mBAAmB,GAAG,EAAE,EACxB,gBAAgB,EAChB,QAAQ,EAAE,EACN,0BAA0B,GAAG,KAAK,EACrC,GAAG;QACA,0BAA0B,EAAE,KAAK;KACpC,EACY;QACb,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,2BAA2B,GAAG,0BAA0B,CAAC;QAE9D,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5E,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChF,CAAC;IAED,cAAc,CAAC,QAAmB;QAC9B,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;oBAC7B,IAAI,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC3D,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1C,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,CAAC,GAAG,CAAC,CAAC;oBACN,CAAC,EAAE,CAAC;gBACR,CAAC;gBAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACjC,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;oBACpE,QAAQ,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE,SAAS;wBACrB,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS;wBACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;4BACpB,KAAK,EAAE,wEAAwE;yBAClF,CAAC;qBACL,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,uBAAuB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;aAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,2FAA2F;YAC3F,8EAA8E;aAC7E,GAAG,CAAC,CAAC,CAAC,EAAE;YACL,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;YACjC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM;gBAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;gBACrF,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B,CAAC,MAAe;QACtC,OAAO,GAAG,MAAM,IAAI;;EAE1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW;EAC/E,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY;GAC5B,CAAC,CAAC;CACJ;;;EAGC,IAAI,CAAC,cAAc,IAAI,SAAS;;;gBAGlB,wBAAwB,mfAAmf,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE;;;EAG1lB,IAAI,CAAC,YAAY;CAClB,CAAC;IACE,CAAC;IAED,wBAAwB,CAAC,MAAe;QACpC,OAAO;EACb,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,uOAAuO;IACvO,uBAAuB;QACnB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,4jBAA4jB;IAC5jB,wBAAwB;QACpB,OAAO,sGAAsG,wBAAwB,6hBAA6hB,CAAC;IACvqB,CAAC;IAED,2XAA2X;IAC3X,mBAAmB,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAmB;QACxE,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,oGAAoG;IACpG,kBAAkB;QACd,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC;QAC5I,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,iJAAiJ;IACjJ,yBAAyB,CAAC,iBAAqC;QAC3D,MAAM,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC7C,IAAI,iBAAiB;YAAE,KAAK,CAAC,IAAI,CAAC,8CAA8C,IAAI,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC5I,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1I,IAAI,IAAI,CAAC,gBAAgB;YAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACxF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,IAAkB,EAAE,KAA0B;QACrF,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC,CAAC;QAC7I,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,wCAAwC,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8DAA8D,IAAI,IAAI,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;YAC/B,6IAA6I;YAC7I,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;SAC7B,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC;gBACP,IAAI;gBACJ,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC/E,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;aACzC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,UAAkB,EAAE,KAAqB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,QAAgB,EAAE,MAA2B;QACzE,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YACxC,IAAI,OAAO,MAAM,EAAE,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;gBAC5F,MAAM,oBAAoB,GAAG,OAAO,MAAM,EAAE,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;YACnH,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,wBAAwB,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAC9I,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,QAAQ,6BAA6B,EAAE,CAAC;QACrG,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACrH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACvF,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,OAAO,GAAQ,SAAS,CAAC;YAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC;oBAC5B,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,OAAO;wBACP,YAAY,CAAC,OAAO,CAAC,CAAC;oBAC1B,GAAG,EAAE,CAAC;gBACV,CAAC;YACL,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,GAAG,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACnE,CAAC,EAAE,MAAM,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,cAA+B;QACrD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC1C,IAAI,OAAO,GAAQ,IAAI,CAAC;gBACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,EAAE,CAAC;wBAChC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAI,OAAO;4BACP,YAAY,CAAC,OAAO,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC7B,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,IAAI,MAAM;gBACN,OAAO,KAAK,CAAC;iBACZ,CAAC;gBACF,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACX,gHAAgH;gBAChH,uFAAuF,CAC1F,CAAC;QACN,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEjD,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,cAAc,GAAG,IAAI,CAAC;QAE1B,GAAG,CAAC;YACA,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,MAAM;YACV,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAEpD,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACtF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,uBAAuB,GAAG,eAAe,CAAC;YAE/C,IAAI,IAAkB,CAAC;YACvB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;oBACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;oBACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,GAAG,IAAI,CAAC,gBAAgB;iBAC3B,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;gBACzC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,MAAM;gBACV,CAAC;gBACD,MAAM,GAAG,CAAC;YACd,CAAC;YACD,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;YAEzC,cAAc,GAAG,KAAK,CAAC;YAEvB,MAAM,gBAAgB,GAAY;gBAC9B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;gBAC/M,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE7C,IAAI,uBAAuB,GAAG,KAAK,CAAC;YACpC,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,uBAAuB,GAAG,IAAI,CAAC;YAEnC,MAAM,WAAW,GAAsB,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzE,MAAM,WAAW,GAAY;oBACzB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,MAAM,CAAC,UAAU;oBAC1B,UAAU,EAAE,MAAM,CAAC,EAAE;oBACrB,QAAQ,EAAE,MAAM,CAAC,IAAI;oBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;iBAC5B,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACnB,iBAAiB,GAAG,IAAI,CAAC;oBACzB,uBAAuB,GAAG,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACJ,uBAAuB,GAAG,IAAI,CAAC;gBACnC,CAAC;YACL,CAAC;YAED,MAAM,iBAAiB,GAAG,iBAAiB,IAAI,uBAAuB,CAAC;YAEvE,IAAI,iBAAiB,EAAE,CAAC;gBACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACpD,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,iBAAiB,IAAI,uBAAuB,EAAE,CAAC;oBAC/C,MAAM,gBAAgB,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBACpJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC7C,MAAM,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3G,CAAC;YACL,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAElH,IAAI,gBAAgB,EAAE,CAAC;gBACnB,MAAM,WAAW,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAC7H,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,+BAA+B,CAAC,CAAA;YAEhL,MAAM,aAAa,GAAG,uBAAuB,IAAI,iBAAiB,CAAC;YAEnE,SAAS,GAAG,CAAC,CAAC,iBAAiB,IAAI,aAAa,CAAC,IAAI,gBAAgB,CAAC;QAC1E,CAAC,QAAQ,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;QACrD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,aAAa,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC5F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,MAAM,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1E,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACL,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC;YAC7B,OAAO,IAAI,CAAC;;YAEZ,OAAO,KAAK,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,IAAkB,EAAE,QAAmB;QACrD,IAAI,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACzC,SAAS,IAAI,CAAC,CAAC,eAAe,CAAC;oBAC/B,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAAC;oBACjC,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC;gBAC7B,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,IAAkB,EAAE,QAAmB;QACnD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;gBACnB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qBAAqB;QACjB,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACzC,CAAC;IACN,CAAC;IAED,qBAAqB,CAAC,IAAkB;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9D,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9H,CAAC;IAED,iBAAiB,CAAC,IAAkB;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7F,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9H,CAAC;IAED,mBAAmB,CAAC,IAAkB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,gBAAgB,CAAC,IAAkB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5F,CAAC;CACJ;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type Listener = (...args: any[]) => void;
2
+ /**
3
+ * Minimal, dependency-free event emitter.
4
+ */
5
+ export declare class EventEmitter {
6
+ #private;
7
+ on(event: string | symbol, listener: Listener): this;
8
+ addListener(event: string | symbol, listener: Listener): this;
9
+ once(event: string | symbol, listener: Listener): this;
10
+ off(event: string | symbol, listener: Listener): this;
11
+ removeListener(event: string | symbol, listener: Listener): this;
12
+ removeAllListeners(event?: string | symbol): this;
13
+ emit(event: string | symbol, ...args: any[]): boolean;
14
+ listenerCount(event: string | symbol): number;
15
+ listeners(event: string | symbol): Listener[];
16
+ eventNames(): (string | symbol)[];
17
+ }
18
+ export default EventEmitter;
19
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/core/event-emitter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAIhD;;GAEG;AACH,qBAAa,YAAY;;IAGrB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOpD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI7D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAStD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAerD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIhE,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMjD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;IAiBrD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAE;IAI7C,UAAU,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;CAGpC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Minimal, dependency-free event emitter.
3
+ */
4
+ export class EventEmitter {
5
+ #events = new Map();
6
+ on(event, listener) {
7
+ const list = this.#events.get(event);
8
+ if (list)
9
+ list.push(listener);
10
+ else
11
+ this.#events.set(event, [listener]);
12
+ return this;
13
+ }
14
+ addListener(event, listener) {
15
+ return this.on(event, listener);
16
+ }
17
+ once(event, listener) {
18
+ const wrapper = (...args) => {
19
+ this.off(event, wrapper);
20
+ listener.apply(this, args);
21
+ };
22
+ wrapper.listener = listener;
23
+ return this.on(event, wrapper);
24
+ }
25
+ off(event, listener) {
26
+ const list = this.#events.get(event);
27
+ if (!list)
28
+ return this;
29
+ // Remove the most recently added match, same as Node.
30
+ for (let i = list.length - 1; i >= 0; i--) {
31
+ if (list[i] === listener || list[i].listener === listener) {
32
+ list.splice(i, 1);
33
+ break;
34
+ }
35
+ }
36
+ if (list.length === 0)
37
+ this.#events.delete(event);
38
+ return this;
39
+ }
40
+ removeListener(event, listener) {
41
+ return this.off(event, listener);
42
+ }
43
+ removeAllListeners(event) {
44
+ if (event === undefined)
45
+ this.#events.clear();
46
+ else
47
+ this.#events.delete(event);
48
+ return this;
49
+ }
50
+ emit(event, ...args) {
51
+ const list = this.#events.get(event);
52
+ if (!list || list.length === 0) {
53
+ if (event === "error") {
54
+ const err = args[0];
55
+ throw err instanceof Error ? err : new Error(`Unhandled error. (${String(err)})`);
56
+ }
57
+ return false;
58
+ }
59
+ for (const listener of [...list]) {
60
+ listener.apply(this, args);
61
+ }
62
+ return true;
63
+ }
64
+ listenerCount(event) {
65
+ return this.#events.get(event)?.length ?? 0;
66
+ }
67
+ listeners(event) {
68
+ return (this.#events.get(event) ?? []).map((l) => l.listener ?? l);
69
+ }
70
+ eventNames() {
71
+ return [...this.#events.keys()];
72
+ }
73
+ }
74
+ export default EventEmitter;
75
+ //# sourceMappingURL=event-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../src/core/event-emitter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import EventEmitter from "events";
1
+ import EventEmitter from "./event-emitter.js";
2
2
  /**
3
3
  * Base class for all MCP connections.
4
4
  *
@@ -15,6 +15,9 @@ import EventEmitter from "events";
15
15
  * "write_to_server"/"write_to_client" over the wire, and emit
16
16
  * "server_read"/"client_read" locally depending on which role the transport
17
17
  * is currently playing.
18
+ *
19
+ * Built on the library's own `EventEmitter` (not Node's `events`), so the
20
+ * base class and the in-process loopback work in browsers too.
18
21
  */
19
22
  export declare class MCPConnection extends EventEmitter {
20
23
  constructor(overrided?: boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-connection.d.ts","sourceRoot":"","sources":["../../src/core/mcp-connection.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBAC/B,SAAS,GAAE,OAAe;IAYtC;;;;;;;;;OASG;IACH,KAAK,IAAI,IAAI;CAGhB;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"mcp-connection.d.ts","sourceRoot":"","sources":["../../src/core/mcp-connection.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBAC/B,SAAS,GAAE,OAAe;IAYtC;;;;;;;;;OASG;IACH,KAAK,IAAI,IAAI;CAGhB;AAED,eAAe,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import EventEmitter from "events";
1
+ import EventEmitter from "./event-emitter.js";
2
2
  /**
3
3
  * Base class for all MCP connections.
4
4
  *
@@ -15,6 +15,9 @@ import EventEmitter from "events";
15
15
  * "write_to_server"/"write_to_client" over the wire, and emit
16
16
  * "server_read"/"client_read" locally depending on which role the transport
17
17
  * is currently playing.
18
+ *
19
+ * Built on the library's own `EventEmitter` (not Node's `events`), so the
20
+ * base class and the in-process loopback work in browsers too.
18
21
  */
19
22
  export class MCPConnection extends EventEmitter {
20
23
  constructor(overrided = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-connection.js","sourceRoot":"","sources":["../../src/core/mcp-connection.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC3C,YAAY,YAAqB,KAAK;QAClC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,+DAA+D;YAC/D,8DAA8D;YAC9D,8DAA8D;YAC9D,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;CACJ;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"mcp-connection.js","sourceRoot":"","sources":["../../src/core/mcp-connection.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC3C,YAAY,YAAqB,KAAK;QAClC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,+DAA+D;YAC/D,8DAA8D;YAC9D,8DAA8D;YAC9D,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;CACJ;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base-agent-compact.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-agent-compact.test.d.ts","sourceRoot":"","sources":["../../../src/tests/core/base-agent-compact.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,95 @@
1
+ import { test, describe } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { BaseAgent, MCPClient, MCPConnection, MCPServer, MCPTool } from "../../index.js";
4
+ import { ScriptedProvider } from "./scripted-provider.js";
5
+ function agentWith(provider, compactInstructions = "") {
6
+ const connection = new MCPConnection();
7
+ new MCPServer(connection);
8
+ const mcpClient = new MCPClient("compact-test", connection);
9
+ return new BaseAgent({ instruction: "test", allowedTools: [], aiProvider: provider, mcpClient, compactInstructions });
10
+ }
11
+ const systemPrompt = (messages) => messages.filter((message) => message.role === "system").map((message) => message.content).join("\n");
12
+ describe("core/base-agent compaction", () => {
13
+ test("keeps the language, the files to read again and the user's latest message", async () => {
14
+ const seen = [];
15
+ const provider = new ScriptedProvider("compact", [
16
+ ({ messages }) => {
17
+ seen.push(messages);
18
+ return {
19
+ toolCalls: [{
20
+ name: "compact_memory",
21
+ inputs: {
22
+ new_memory: "Building a landing page; hero done, footer next.",
23
+ language: "Persian",
24
+ files_to_reread: [{ path: "src/App.tsx", reason: "the page being edited" }, "PLAN.md"],
25
+ continue_iterating: true,
26
+ },
27
+ }],
28
+ };
29
+ },
30
+ ({ messages }) => {
31
+ seen.push(messages);
32
+ return { content: "ادامه می‌دهم." };
33
+ },
34
+ ]);
35
+ const agent = agentWith(provider, "Keep the todo list's state.");
36
+ await agent.run("یک صفحه فرود بساز");
37
+ const after = seen[1];
38
+ const carried = after.filter((message) => message.role !== "system");
39
+ assert.equal(carried[0].role, "user");
40
+ assert.equal(carried[0].hidden, true);
41
+ assert.match(carried[0].content, /یک صفحه فرود بساز/);
42
+ assert.match(carried[0].content, /src\/App\.tsx, PLAN\.md/);
43
+ assert.match(carried[0].content, /Reply to the user in Persian/);
44
+ const prompt = systemPrompt(after);
45
+ assert.match(prompt, /Building a landing page/);
46
+ assert.match(prompt, /Conversation language: Persian/);
47
+ assert.match(prompt, /- src\/App\.tsx — the page being edited/);
48
+ assert.match(prompt, /Keep the todo list's state\./);
49
+ const state = agent.getCurrentAgentStates();
50
+ assert.match(state.compactMemory, /Files to read again/);
51
+ assert.equal(state.messagesCompact.length, 2);
52
+ });
53
+ test("a note with only new_memory still works and carries the user's message", async () => {
54
+ const seen = [];
55
+ const provider = new ScriptedProvider("plain", [
56
+ () => ({ toolCalls: [{ name: "compact_memory", inputs: { new_memory: "note" } }] }),
57
+ ({ messages }) => {
58
+ seen.push(messages);
59
+ return { content: "ok" };
60
+ },
61
+ ]);
62
+ const agent = agentWith(provider);
63
+ await agent.run("hello there");
64
+ const first = seen[0].find((message) => message.role === "user");
65
+ assert.match(first.content, /^Memory compacted\./);
66
+ assert.match(first.content, /hello there/);
67
+ assert.doesNotMatch(first.content, /Reply to the user in/);
68
+ assert.equal(agent.getCurrentAgentStates().compactMemory, "note");
69
+ });
70
+ test("a remote tool that publishes no inputs takes the agent's own schema", async () => {
71
+ const connection = new MCPConnection();
72
+ const server = new MCPServer(connection);
73
+ const execute = async () => ({ ok: true });
74
+ server.registerTool(new MCPTool({ name: "proxy-tool", description: "forwards", inputs: [], execute }));
75
+ server.registerTool(new MCPTool({ name: "own-tool", description: "remote", inputs: [{ name: "a", type: "string", description: "remote a" }], execute }));
76
+ const allowed = [
77
+ new MCPTool({ name: "proxy-tool", description: "Opens a page.", inputs: [{ name: "url", type: "string", description: "the address", required: true }], execute }),
78
+ new MCPTool({ name: "own-tool", description: "local", inputs: [{ name: "b", type: "string", description: "local b" }], execute }),
79
+ ];
80
+ let sent = [];
81
+ const provider = new ScriptedProvider("schemas", [() => ({ content: "done" })]);
82
+ const chat = provider.chat.bind(provider);
83
+ provider.chat = (messages, stream, tools, signal) => {
84
+ sent = tools ?? [];
85
+ return chat(messages, stream, tools, signal);
86
+ };
87
+ const agent = new BaseAgent({ instruction: "test", allowedTools: allowed, aiProvider: provider, mcpClient: new MCPClient("schema-test", connection) });
88
+ await agent.run("go");
89
+ const proxy = sent.find((tool) => tool.name === "proxy-tool");
90
+ assert.equal(proxy.description, "Opens a page.");
91
+ assert.deepEqual(proxy.inputs.map((input) => input.name), ["url"]);
92
+ assert.deepEqual(sent.find((tool) => tool.name === "own-tool").inputs.map((input) => input.name), ["a"]);
93
+ });
94
+ });
95
+ //# sourceMappingURL=base-agent-compact.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-agent-compact.test.js","sourceRoot":"","sources":["../../../src/tests/core/base-agent-compact.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,SAAS,SAAS,CAAC,QAA0B,EAAE,mBAAmB,GAAG,EAAE;IACnE,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC5D,OAAO,IAAI,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC1H,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,QAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEnJ,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAgB,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE;YAC7C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO;oBACH,SAAS,EAAE,CAAC;4BACR,IAAI,EAAE,gBAAgB;4BACtB,MAAM,EAAE;gCACJ,UAAU,EAAE,kDAAkD;gCAC9D,QAAQ,EAAE,SAAS;gCACnB,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,SAAS,CAAC;gCACtF,kBAAkB,EAAE,IAAI;6BAC3B;yBACJ,CAAC;iBACL,CAAC;YACN,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YACxC,CAAC;SACJ,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QAEjE,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,OAAQ,EAAE,mBAAmB,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,OAAQ,EAAE,yBAAyB,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,OAAQ,EAAE,8BAA8B,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yCAAyC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,IAAI,GAAgB,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE;YAC3C,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACnF,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC7B,CAAC;SACJ,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAElC,MAAM,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAE,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAQ,EAAE,qBAAqB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAQ,EAAE,aAAa,CAAC,CAAC;QAC5C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACvG,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACzJ,MAAM,OAAO,GAAG;YACZ,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YACjK,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;SACpI,CAAC;QACF,IAAI,IAAI,GAAiB,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QAEvJ,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAE,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -37,6 +37,7 @@ import "./tools/agent/agent-tools.test.js";
37
37
  import "./core/agent-definition.test.js";
38
38
  import "./core/swarm-base.test.js";
39
39
  import "./core/stateless-agent.test.js";
40
+ import "./core/base-agent-compact.test.js";
40
41
  import "./core/ai-ask.test.js";
41
42
  import "./core/mcp-auto-execution-policy.test.js";
42
43
  import "./agents/default-agents.test.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAG7C,OAAO,6BAA6B,CAAC;AACrC,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,iCAAiC,CAAC;AAEzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC,OAAO,iDAAiD,CAAC;AAEzD,OAAO,uCAAuC,CAAC;AAE/C,OAAO,mCAAmC,CAAC;AAE3C,OAAO,iCAAiC,CAAC;AACzC,OAAO,2BAA2B,CAAC;AACnC,OAAO,gCAAgC,CAAC;AACxC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0CAA0C,CAAC;AAElD,OAAO,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAG7C,OAAO,6BAA6B,CAAC;AACrC,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,iCAAiC,CAAC;AAEzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC,OAAO,iDAAiD,CAAC;AAEzD,OAAO,uCAAuC,CAAC;AAE/C,OAAO,mCAAmC,CAAC;AAE3C,OAAO,iCAAiC,CAAC;AACzC,OAAO,2BAA2B,CAAC;AACnC,OAAO,gCAAgC,CAAC;AACxC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0CAA0C,CAAC;AAElD,OAAO,iCAAiC,CAAC"}
@@ -37,6 +37,7 @@ import "./tools/agent/agent-tools.test.js";
37
37
  import "./core/agent-definition.test.js";
38
38
  import "./core/swarm-base.test.js";
39
39
  import "./core/stateless-agent.test.js";
40
+ import "./core/base-agent-compact.test.js";
40
41
  import "./core/ai-ask.test.js";
41
42
  import "./core/mcp-auto-execution-policy.test.js";
42
43
  import "./agents/default-agents.test.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAG7C,OAAO,6BAA6B,CAAC;AACrC,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,iCAAiC,CAAC;AAEzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC,OAAO,iDAAiD,CAAC;AAEzD,OAAO,uCAAuC,CAAC;AAE/C,OAAO,mCAAmC,CAAC;AAE3C,OAAO,iCAAiC,CAAC;AACzC,OAAO,2BAA2B,CAAC;AACnC,OAAO,gCAAgC,CAAC;AACxC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0CAA0C,CAAC;AAElD,OAAO,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAG7C,OAAO,6BAA6B,CAAC;AACrC,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,iCAAiC,CAAC;AAEzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC,OAAO,iDAAiD,CAAC;AAEzD,OAAO,uCAAuC,CAAC;AAE/C,OAAO,mCAAmC,CAAC;AAE3C,OAAO,iCAAiC,CAAC;AACzC,OAAO,2BAA2B,CAAC;AACnC,OAAO,gCAAgC,CAAC;AACxC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0CAA0C,CAAC;AAElD,OAAO,iCAAiC,CAAC"}