@ticktockbent/charlotte 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/browser/browser-manager.d.ts +6 -1
  3. package/dist/browser/browser-manager.d.ts.map +1 -1
  4. package/dist/browser/browser-manager.js +69 -4
  5. package/dist/browser/browser-manager.js.map +1 -1
  6. package/dist/browser/cdp-session.d.ts +15 -0
  7. package/dist/browser/cdp-session.d.ts.map +1 -1
  8. package/dist/browser/cdp-session.js +62 -4
  9. package/dist/browser/cdp-session.js.map +1 -1
  10. package/dist/browser/page-manager.d.ts +9 -2
  11. package/dist/browser/page-manager.d.ts.map +1 -1
  12. package/dist/browser/page-manager.js +52 -1
  13. package/dist/browser/page-manager.js.map +1 -1
  14. package/dist/cli.d.ts +1 -0
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +16 -3
  17. package/dist/cli.js.map +1 -1
  18. package/dist/index.js +10 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/renderer/interactive-extractor.d.ts.map +1 -1
  21. package/dist/renderer/interactive-extractor.js.map +1 -1
  22. package/dist/renderer/structural-tree-extractor.d.ts.map +1 -1
  23. package/dist/renderer/structural-tree-extractor.js +5 -22
  24. package/dist/renderer/structural-tree-extractor.js.map +1 -1
  25. package/dist/server.d.ts.map +1 -1
  26. package/dist/server.js +9 -1
  27. package/dist/server.js.map +1 -1
  28. package/dist/tools/dialog.d.ts.map +1 -1
  29. package/dist/tools/dialog.js +1 -1
  30. package/dist/tools/dialog.js.map +1 -1
  31. package/dist/tools/interaction-helpers.d.ts +24 -9
  32. package/dist/tools/interaction-helpers.d.ts.map +1 -1
  33. package/dist/tools/interaction-helpers.js +79 -82
  34. package/dist/tools/interaction-helpers.js.map +1 -1
  35. package/dist/tools/interaction.d.ts.map +1 -1
  36. package/dist/tools/interaction.js +66 -46
  37. package/dist/tools/interaction.js.map +1 -1
  38. package/dist/tools/meta-tool.d.ts.map +1 -1
  39. package/dist/tools/meta-tool.js +12 -2
  40. package/dist/tools/meta-tool.js.map +1 -1
  41. package/dist/tools/monitoring.d.ts.map +1 -1
  42. package/dist/tools/monitoring.js +1 -1
  43. package/dist/tools/monitoring.js.map +1 -1
  44. package/dist/tools/navigation.d.ts.map +1 -1
  45. package/dist/tools/navigation.js +72 -32
  46. package/dist/tools/navigation.js.map +1 -1
  47. package/dist/tools/observation.d.ts.map +1 -1
  48. package/dist/tools/observation.js +83 -74
  49. package/dist/tools/observation.js.map +1 -1
  50. package/dist/tools/session.d.ts.map +1 -1
  51. package/dist/tools/session.js +161 -116
  52. package/dist/tools/session.js.map +1 -1
  53. package/dist/tools/tool-groups.d.ts +3 -3
  54. package/dist/tools/tool-groups.d.ts.map +1 -1
  55. package/dist/tools/tool-groups.js +51 -19
  56. package/dist/tools/tool-groups.js.map +1 -1
  57. package/dist/tools/tool-helpers.d.ts.map +1 -1
  58. package/dist/tools/tool-helpers.js +1 -3
  59. package/dist/tools/tool-helpers.js.map +1 -1
  60. package/dist/tools/wait-for.js.map +1 -1
  61. package/package.json +2 -1
@@ -2,7 +2,7 @@ import * as fs from "node:fs/promises";
2
2
  import { z } from "zod";
3
3
  import { CharlotteError, CharlotteErrorCode } from "../types/errors.js";
4
4
  import { logger } from "../utils/logger.js";
5
- import { ensureReady, renderActivePage, renderAfterAction, resolveElement, formatPageResponse, handleToolError, coercedBoolean, } from "./tool-helpers.js";
5
+ import { ensureReady, renderActivePage, renderAfterAction, resolveElement, getSessionForElement, formatPageResponse, handleToolError, coercedBoolean, } from "./tool-helpers.js";
6
6
  import { MODIFIER_KEY_MAP, clickElementByBackendNodeId, focusElementByBackendNodeId, hoverElementByBackendNodeId, dragElementToElement, typeIntoElement, selectOptionByBackendNodeId, submitFormByBackendNodeId, setFileInputFiles, waitForPossibleNavigation, } from "./interaction-helpers.js";
7
7
  import { registerWaitForTools } from "./wait-for.js";
8
8
  // Re-export for backward compatibility (used by dialog and popup integration tests)
@@ -26,7 +26,8 @@ export function registerInteractionTools(server, deps) {
26
26
  }, async ({ element_id, click_type, modifiers }) => {
27
27
  try {
28
28
  await ensureReady(deps);
29
- const { page, backendNodeId } = await resolveElement(deps, element_id);
29
+ const resolved = await resolveElement(deps, element_id);
30
+ const session = await getSessionForElement(deps, resolved);
30
31
  const clickVariant = click_type ?? "left";
31
32
  const activeModifiers = modifiers ?? [];
32
33
  logger.info("Clicking element", {
@@ -34,7 +35,7 @@ export function registerInteractionTools(server, deps) {
34
35
  clickType: clickVariant,
35
36
  modifiers: activeModifiers,
36
37
  });
37
- await waitForPossibleNavigation(page, () => clickElementByBackendNodeId(page, backendNodeId, clickVariant, activeModifiers));
38
+ await waitForPossibleNavigation(resolved.page, () => clickElementByBackendNodeId(resolved.page, resolved.backendNodeId, clickVariant, activeModifiers, session));
38
39
  const representation = await renderAfterAction(deps);
39
40
  return formatPageResponse(representation);
40
41
  }
@@ -130,7 +131,8 @@ export function registerInteractionTools(server, deps) {
130
131
  }, async ({ element_id, text, clear_first, press_enter, slowly, character_delay }) => {
131
132
  try {
132
133
  await ensureReady(deps);
133
- const { page, backendNodeId } = await resolveElement(deps, element_id);
134
+ const resolved = await resolveElement(deps, element_id);
135
+ const session = await getSessionForElement(deps, resolved);
134
136
  const shouldClearFirst = clear_first ?? true;
135
137
  const shouldPressEnter = press_enter ?? false;
136
138
  const delayMs = character_delay ?? (slowly ? 50 : undefined);
@@ -141,7 +143,7 @@ export function registerInteractionTools(server, deps) {
141
143
  pressEnter: shouldPressEnter,
142
144
  characterDelay: delayMs,
143
145
  });
144
- await typeIntoElement(page, backendNodeId, text, shouldClearFirst, shouldPressEnter, delayMs);
146
+ await typeIntoElement(resolved.page, resolved.backendNodeId, text, shouldClearFirst, shouldPressEnter, delayMs, session);
145
147
  const representation = await renderAfterAction(deps);
146
148
  return formatPageResponse(representation);
147
149
  }
@@ -159,9 +161,10 @@ export function registerInteractionTools(server, deps) {
159
161
  }, async ({ element_id, value }) => {
160
162
  try {
161
163
  await ensureReady(deps);
162
- const { page, backendNodeId } = await resolveElement(deps, element_id);
164
+ const resolved = await resolveElement(deps, element_id);
165
+ const session = await getSessionForElement(deps, resolved);
163
166
  logger.info("Selecting option", { element_id, value });
164
- await selectOptionByBackendNodeId(page, backendNodeId, value);
167
+ await selectOptionByBackendNodeId(resolved.page, resolved.backendNodeId, value, session);
165
168
  const representation = await renderAfterAction(deps);
166
169
  return formatPageResponse(representation);
167
170
  }
@@ -178,10 +181,11 @@ export function registerInteractionTools(server, deps) {
178
181
  }, async ({ element_id }) => {
179
182
  try {
180
183
  await ensureReady(deps);
181
- const { page, backendNodeId } = await resolveElement(deps, element_id);
184
+ const resolved = await resolveElement(deps, element_id);
185
+ const session = await getSessionForElement(deps, resolved);
182
186
  logger.info("Toggling element", { element_id });
183
187
  // Toggle by clicking the element
184
- await clickElementByBackendNodeId(page, backendNodeId, "left");
188
+ await clickElementByBackendNodeId(resolved.page, resolved.backendNodeId, "left", [], session);
185
189
  await new Promise((resolve) => setTimeout(resolve, 50));
186
190
  const representation = await renderAfterAction(deps);
187
191
  return formatPageResponse(representation);
@@ -209,20 +213,19 @@ export function registerInteractionTools(server, deps) {
209
213
  // If the form has a submit button, click it
210
214
  if (form.submit) {
211
215
  const submitResolved = await resolveElement(deps, form.submit);
216
+ const submitSession = await getSessionForElement(deps, submitResolved);
212
217
  logger.info("Submitting form via submit button", {
213
218
  form_id,
214
219
  submitButton: form.submit,
215
220
  });
216
- await waitForPossibleNavigation(page, () => clickElementByBackendNodeId(page, submitResolved.backendNodeId, "left"));
221
+ await waitForPossibleNavigation(page, () => clickElementByBackendNodeId(submitResolved.page, submitResolved.backendNodeId, "left", [], submitSession));
217
222
  }
218
223
  else {
219
224
  // Fall back to dispatching submit event on the form itself
220
- const formBackendNodeId = deps.elementIdGenerator.resolveId(form_id);
221
- if (formBackendNodeId === null) {
222
- throw new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, `Could not resolve form '${form_id}' to a DOM element.`);
223
- }
225
+ const formResolved = await resolveElement(deps, form_id);
226
+ const formSession = await getSessionForElement(deps, formResolved);
224
227
  logger.info("Submitting form via submit event", { form_id });
225
- await waitForPossibleNavigation(page, () => submitFormByBackendNodeId(page, formBackendNodeId));
228
+ await waitForPossibleNavigation(page, () => submitFormByBackendNodeId(formResolved.page, formResolved.backendNodeId, formSession));
226
229
  }
227
230
  const updatedRepresentation = await renderAfterAction(deps);
228
231
  return formatPageResponse(updatedRepresentation);
@@ -287,24 +290,19 @@ export function registerInteractionTools(server, deps) {
287
290
  }
288
291
  if (element_id) {
289
292
  // Scroll within a specific container
290
- const { backendNodeId } = await resolveElement(deps, element_id);
291
- const cdpSession = await page.createCDPSession();
292
- try {
293
- const { object } = await cdpSession.send("DOM.resolveNode", {
294
- backendNodeId,
293
+ const resolved = await resolveElement(deps, element_id);
294
+ const cdpSession = await getSessionForElement(deps, resolved);
295
+ const { object } = await cdpSession.send("DOM.resolveNode", {
296
+ backendNodeId: resolved.backendNodeId,
297
+ });
298
+ if (object?.objectId) {
299
+ await cdpSession.send("Runtime.callFunctionOn", {
300
+ objectId: object.objectId,
301
+ functionDeclaration: `function(dx, dy) {
302
+ this.scrollBy(dx, dy);
303
+ }`,
304
+ arguments: [{ value: deltaX }, { value: deltaY }],
295
305
  });
296
- if (object?.objectId) {
297
- await cdpSession.send("Runtime.callFunctionOn", {
298
- objectId: object.objectId,
299
- functionDeclaration: `function(dx, dy) {
300
- this.scrollBy(dx, dy);
301
- }`,
302
- arguments: [{ value: deltaX }, { value: deltaY }],
303
- });
304
- }
305
- }
306
- finally {
307
- await cdpSession.detach();
308
306
  }
309
307
  }
310
308
  else {
@@ -330,9 +328,10 @@ export function registerInteractionTools(server, deps) {
330
328
  }, async ({ element_id }) => {
331
329
  try {
332
330
  await ensureReady(deps);
333
- const { page, backendNodeId } = await resolveElement(deps, element_id);
331
+ const resolved = await resolveElement(deps, element_id);
332
+ const session = await getSessionForElement(deps, resolved);
334
333
  logger.info("Hovering element", { element_id });
335
- await hoverElementByBackendNodeId(page, backendNodeId);
334
+ await hoverElementByBackendNodeId(resolved.page, resolved.backendNodeId, session);
336
335
  const representation = await renderAfterAction(deps);
337
336
  return formatPageResponse(representation);
338
337
  }
@@ -350,10 +349,14 @@ export function registerInteractionTools(server, deps) {
350
349
  }, async ({ source_id, target_id }) => {
351
350
  try {
352
351
  await ensureReady(deps);
353
- const { page, backendNodeId: sourceNodeId } = await resolveElement(deps, source_id);
354
- const { backendNodeId: targetNodeId } = await resolveElement(deps, target_id);
352
+ const sourceResolved = await resolveElement(deps, source_id);
353
+ const targetResolved = await resolveElement(deps, target_id);
354
+ if (sourceResolved.frameId !== targetResolved.frameId) {
355
+ throw new CharlotteError(CharlotteErrorCode.SESSION_ERROR, "Cannot drag between different frames — source and target must be in the same frame.", "Use charlotte_find to locate elements within the same frame.");
356
+ }
357
+ const session = await getSessionForElement(deps, sourceResolved);
355
358
  logger.info("Dragging element", { source_id, target_id });
356
- await dragElementToElement(page, sourceNodeId, targetNodeId);
359
+ await dragElementToElement(sourceResolved.page, sourceResolved.backendNodeId, targetResolved.backendNodeId, session);
357
360
  // Brief settle for DOM updates after drop
358
361
  await new Promise((resolve) => setTimeout(resolve, 100));
359
362
  const representation = await renderAfterAction(deps);
@@ -402,8 +405,9 @@ export function registerInteractionTools(server, deps) {
402
405
  }
403
406
  // Focus target element if specified
404
407
  if (element_id) {
405
- const { page: resolvedPage, backendNodeId } = await resolveElement(deps, element_id);
406
- await focusElementByBackendNodeId(resolvedPage, backendNodeId);
408
+ const resolved = await resolveElement(deps, element_id);
409
+ const session = await getSessionForElement(deps, resolved);
410
+ await focusElementByBackendNodeId(resolved.page, resolved.backendNodeId, session);
407
411
  }
408
412
  if (key) {
409
413
  // Single key with optional modifiers
@@ -448,7 +452,8 @@ export function registerInteractionTools(server, deps) {
448
452
  }, async ({ element_id, paths }) => {
449
453
  try {
450
454
  await ensureReady(deps);
451
- const { page, backendNodeId } = await resolveElement(deps, element_id);
455
+ const resolved = await resolveElement(deps, element_id);
456
+ const session = await getSessionForElement(deps, resolved);
452
457
  // Validate all files exist before sending to CDP
453
458
  for (const filePath of paths) {
454
459
  try {
@@ -459,7 +464,7 @@ export function registerInteractionTools(server, deps) {
459
464
  }
460
465
  }
461
466
  logger.info("Uploading files", { element_id, fileCount: paths.length });
462
- await setFileInputFiles(page, backendNodeId, paths);
467
+ await setFileInputFiles(resolved.page, resolved.backendNodeId, paths, session);
463
468
  const representation = await renderAfterAction(deps);
464
469
  return formatPageResponse(representation);
465
470
  }
@@ -469,7 +474,14 @@ export function registerInteractionTools(server, deps) {
469
474
  });
470
475
  // ─── charlotte_fill_form ───
471
476
  const FILLABLE_TYPES = new Set([
472
- "text_input", "textarea", "select", "checkbox", "radio", "toggle", "date_input", "color_input",
477
+ "text_input",
478
+ "textarea",
479
+ "select",
480
+ "checkbox",
481
+ "radio",
482
+ "toggle",
483
+ "date_input",
484
+ "color_input",
473
485
  ]);
474
486
  tools["charlotte_fill_form"] = server.registerTool("charlotte_fill_form", {
475
487
  description: "Fill multiple form fields in a single call. Auto-detects element types (text input, select, checkbox, etc.) and applies the appropriate action. Returns a single page representation with delta covering all changes. Validates all fields before mutating any — if one field is invalid, no fields are changed.",
@@ -477,7 +489,9 @@ export function registerInteractionTools(server, deps) {
477
489
  fields: z
478
490
  .array(z.object({
479
491
  element_id: z.string().describe("Element ID of the form field"),
480
- value: z.string().describe("Value to set: text for inputs/textareas, option value or text for selects. For checkbox/radio/toggle the element is clicked (toggling its state) and value is ignored."),
492
+ value: z
493
+ .string()
494
+ .describe("Value to set: text for inputs/textareas, option value or text for selects. For checkbox/radio/toggle the element is clicked (toggling its state) and value is ignored."),
481
495
  }))
482
496
  .min(1)
483
497
  .describe("Array of {element_id, value} pairs to fill"),
@@ -507,6 +521,7 @@ export function registerInteractionTools(server, deps) {
507
521
  const resolved = await resolveElement(deps, field.element_id);
508
522
  resolvedFields.push({
509
523
  backendNodeId: resolved.backendNodeId,
524
+ frameId: resolved.frameId,
510
525
  type: element.type,
511
526
  value: field.value,
512
527
  page: resolved.page,
@@ -515,20 +530,25 @@ export function registerInteractionTools(server, deps) {
515
530
  logger.info("Filling form fields", { fieldCount: resolvedFields.length });
516
531
  // Fill each field using the appropriate action
517
532
  for (const field of resolvedFields) {
533
+ const fieldSession = await getSessionForElement(deps, {
534
+ page: field.page,
535
+ backendNodeId: field.backendNodeId,
536
+ frameId: field.frameId,
537
+ });
518
538
  switch (field.type) {
519
539
  case "text_input":
520
540
  case "textarea":
521
541
  case "date_input":
522
542
  case "color_input":
523
- await typeIntoElement(field.page, field.backendNodeId, field.value, true, false);
543
+ await typeIntoElement(field.page, field.backendNodeId, field.value, true, false, undefined, fieldSession);
524
544
  break;
525
545
  case "select":
526
- await selectOptionByBackendNodeId(field.page, field.backendNodeId, field.value);
546
+ await selectOptionByBackendNodeId(field.page, field.backendNodeId, field.value, fieldSession);
527
547
  break;
528
548
  case "checkbox":
529
549
  case "radio":
530
550
  case "toggle":
531
- await clickElementByBackendNodeId(field.page, field.backendNodeId, "left");
551
+ await clickElementByBackendNodeId(field.page, field.backendNodeId, "left", [], fieldSession);
532
552
  break;
533
553
  }
534
554
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/tools/interaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/tools/interaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meta-tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAQ9E,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AA+B1D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,cAAc,CA0G1F"}
1
+ {"version":3,"file":"meta-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meta-tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAQ9E,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AA+B1D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,cAAc,CAoH1F"}
@@ -63,13 +63,19 @@ export function registerMetaTool(server, registry) {
63
63
  if (effectiveAction === "enable" && group) {
64
64
  const toolNames = TOOL_GROUPS[group];
65
65
  let enabled = 0;
66
+ // Set .enabled directly to batch state changes before a single
67
+ // sendToolListChanged(). Do not call tool.enable() here — each
68
+ // call fires an independent notification via the SDK's update().
66
69
  for (const name of toolNames) {
67
70
  const tool = registry[name];
68
71
  if (tool && !tool.enabled) {
69
- tool.enable();
72
+ tool.enabled = true;
70
73
  enabled++;
71
74
  }
72
75
  }
76
+ if (enabled > 0) {
77
+ server.sendToolListChanged();
78
+ }
73
79
  return {
74
80
  content: [
75
81
  {
@@ -87,13 +93,17 @@ export function registerMetaTool(server, registry) {
87
93
  if (effectiveAction === "disable" && group) {
88
94
  const toolNames = TOOL_GROUPS[group];
89
95
  let disabled = 0;
96
+ // Set .enabled directly — see comment in enable block above.
90
97
  for (const name of toolNames) {
91
98
  const tool = registry[name];
92
99
  if (tool?.enabled) {
93
- tool.disable();
100
+ tool.enabled = false;
94
101
  disabled++;
95
102
  }
96
103
  }
104
+ if (disabled > 0) {
105
+ server.sendToolListChanged();
106
+ }
97
107
  return {
98
108
  content: [
99
109
  {
@@ -1 +1 @@
1
- {"version":3,"file":"meta-tool.js","sourceRoot":"","sources":["../../src/tools/meta-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-tool.js","sourceRoot":"","sources":["../../src/tools/meta-tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAe1B,SAAS,cAAc,CAAC,QAAsB;IAC5C,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;QACzF,MAAM,CAAC,SAAS,CAAC,GAAG;YAClB,OAAO,EAAE,YAAY,KAAK,SAAS,CAAC,MAAM;YAC1C,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,SAAS,CAAC,MAAM;YAC7B,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;YACrB,WAAW,EAAE,kBAAkB,CAAC,SAAS,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,QAAsB;IACxE,OAAO,MAAM,CAAC,YAAY,CACxB,iBAAiB,EACjB;QACE,WAAW,EACT,0EAA0E;YAC1E,uEAAuE;YACvE,qFAAqF;YACrF,uEAAuE;YACvE,8EAA8E;YAC9E,uDAAuD;YACvD,uCAAuC;YACvC,qDAAqD;YACrD,0CAA0C;QAC5C,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CACP,qFAAqF,CACtF;YACH,KAAK,EAAE,CAAC;iBACL,IAAI,CAAC,eAAsD,CAAC;iBAC5D,QAAQ,EAAE;iBACV,QAAQ,CAAC,iCAAiC,CAAC;SAC/C;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC1B,MAAM,eAAe,GAAG,MAAM,IAAI,MAAM,CAAC;QAEzC,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,8CAA8C;yBACtD,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAsB,CAAC,CAAC;YACtD,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,+DAA+D;YAC/D,+DAA+D;YAC/D,iEAAiE;YACjE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,QAAQ;4BAChB,KAAK;4BACL,aAAa,EAAE,OAAO;4BACtB,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;yBACtB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAsB,CAAC,CAAC;YACtD,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,6DAA6D;YAC7D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,QAAQ,EAAE,CAAC;gBACb,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,SAAS;4BACjB,KAAK;4BACL,cAAc,EAAE,QAAQ;4BACxB,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;yBACtB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;iBACzC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA0KhC"}
1
+ {"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAS1D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA0KhC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { logger } from "../utils/logger.js";
3
- import { ensureReady, handleToolError, coercedBoolean, resolveOutputPath, writeOutputFile } from "./tool-helpers.js";
3
+ import { ensureReady, handleToolError, coercedBoolean, resolveOutputPath, writeOutputFile, } from "./tool-helpers.js";
4
4
  export function registerMonitoringTools(server, deps) {
5
5
  const tools = {};
6
6
  // ─── charlotte_console ───
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAU1D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA2IhC"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAe1D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAuMhC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { CharlotteError, CharlotteErrorCode } from "../types/errors.js";
3
3
  import { logger } from "../utils/logger.js";
4
- import { ensureReady, renderActivePage, formatPageResponse, handleToolError } from "./tool-helpers.js";
4
+ import { ensureReady, renderActivePage, formatPageResponse, handleToolError, } from "./tool-helpers.js";
5
5
  const detailSchema = z
6
6
  .enum(["minimal", "summary", "full"])
7
7
  .optional()
@@ -59,46 +59,86 @@ export function registerNavigationTools(server, deps) {
59
59
  return handleToolError(error);
60
60
  }
61
61
  });
62
- // ─── charlotte_history ───
63
- tools["charlotte_history"] = server.registerTool("charlotte_history", {
64
- description: "Navigate browser history or reload. Returns page representation after the action.",
62
+ tools["charlotte_back"] = server.registerTool("charlotte_back", {
63
+ description: "Navigate back in browser history. Returns page representation after navigation.",
65
64
  inputSchema: {
66
- action: z
67
- .enum(["back", "forward", "reload"])
68
- .describe("History action to perform"),
69
- hard: z.boolean().optional().describe("Bypass cache on reload (default: false)"),
70
65
  detail: detailSchema,
71
66
  },
72
- }, async ({ action, hard, detail }) => {
67
+ }, async ({ detail }) => {
73
68
  try {
74
69
  await ensureReady(deps);
75
70
  const page = deps.pageManager.getActivePage();
71
+ logger.info("Navigating back");
76
72
  deps.pageManager.clearErrors();
77
- if (action === "reload") {
78
- const bypassCache = hard ?? false;
79
- logger.info("Reloading page", { hard: bypassCache });
80
- if (bypassCache) {
81
- const client = await page.createCDPSession();
82
- await client.send("Page.reload", { ignoreCache: true });
83
- await page.waitForNavigation({ waitUntil: "load" });
84
- await client.detach();
85
- }
86
- else {
87
- await page.reload({ waitUntil: "load" });
88
- }
73
+ const urlBeforeNavigation = page.url();
74
+ await page.goBack({ waitUntil: "load" });
75
+ const urlAfterNavigation = page.url();
76
+ if (urlAfterNavigation === urlBeforeNavigation) {
77
+ throw new CharlotteError(CharlotteErrorCode.NAVIGATION_FAILED, "No previous page in history.");
78
+ }
79
+ const detailLevel = detail ?? "minimal";
80
+ const representation = await renderActivePage(deps, {
81
+ detail: detailLevel,
82
+ source: "action",
83
+ });
84
+ return formatPageResponse(representation);
85
+ }
86
+ catch (error) {
87
+ return handleToolError(error);
88
+ }
89
+ });
90
+ tools["charlotte_forward"] = server.registerTool("charlotte_forward", {
91
+ description: "Navigate forward in browser history. Returns page representation after navigation.",
92
+ inputSchema: {
93
+ detail: detailSchema,
94
+ },
95
+ }, async ({ detail }) => {
96
+ try {
97
+ await ensureReady(deps);
98
+ const page = deps.pageManager.getActivePage();
99
+ logger.info("Navigating forward");
100
+ deps.pageManager.clearErrors();
101
+ const urlBeforeNavigation = page.url();
102
+ await page.goForward({ waitUntil: "load" });
103
+ const urlAfterNavigation = page.url();
104
+ if (urlAfterNavigation === urlBeforeNavigation) {
105
+ throw new CharlotteError(CharlotteErrorCode.NAVIGATION_FAILED, "No forward page in history.");
106
+ }
107
+ const detailLevel = detail ?? "minimal";
108
+ const representation = await renderActivePage(deps, {
109
+ detail: detailLevel,
110
+ source: "action",
111
+ });
112
+ return formatPageResponse(representation);
113
+ }
114
+ catch (error) {
115
+ return handleToolError(error);
116
+ }
117
+ });
118
+ tools["charlotte_reload"] = server.registerTool("charlotte_reload", {
119
+ description: "Reload the current page. Returns page representation after reload.",
120
+ inputSchema: {
121
+ hard: z.boolean().optional().describe("Bypass cache (default: false)"),
122
+ detail: detailSchema,
123
+ },
124
+ }, async ({ hard, detail }) => {
125
+ try {
126
+ await ensureReady(deps);
127
+ const page = deps.pageManager.getActivePage();
128
+ const bypassCache = hard ?? false;
129
+ logger.info("Reloading page", { hard: bypassCache });
130
+ deps.pageManager.clearErrors();
131
+ if (bypassCache) {
132
+ // Use CDP to reload with cache bypass
133
+ const client = await page.createCDPSession();
134
+ await client.send("Page.reload", {
135
+ ignoreCache: true,
136
+ });
137
+ await page.waitForNavigation({ waitUntil: "load" });
138
+ await client.detach();
89
139
  }
90
140
  else {
91
- logger.info(`Navigating ${action}`);
92
- const urlBefore = page.url();
93
- if (action === "back") {
94
- await page.goBack({ waitUntil: "load" });
95
- }
96
- else {
97
- await page.goForward({ waitUntil: "load" });
98
- }
99
- if (page.url() === urlBefore) {
100
- throw new CharlotteError(CharlotteErrorCode.NAVIGATION_FAILED, action === "back" ? "No previous page in history." : "No forward page in history.");
101
- }
141
+ await page.reload({ waitUntil: "load" });
102
142
  }
103
143
  const detailLevel = detail ?? "minimal";
104
144
  const representation = await renderActivePage(deps, {
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,YAAY,GAAG,CAAC;KACnB,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACpC,QAAQ,EAAE;KACV,QAAQ,CACP,+FAA+F,CAChG,CAAC;AAEJ,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,IAAsB;IAEtB,MAAM,KAAK,GAAmC,EAAE,CAAC;IAEjD,KAAK,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,YAAY,CAC/C,oBAAoB,EACpB;QACE,WAAW,EACT,4QAA4Q;QAC9Q,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC9C,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;iBACjD,QAAQ,EAAE;iBACV,QAAQ,CACP,uJAAuJ,CACxJ;YACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC1E,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAE9C,MAAM,cAAc,GAAG,QAAQ,IAAI,MAAM,CAAC;YAC1C,MAAM,iBAAiB,GAAG,OAAO,IAAI,KAAK,CAAC;YAE3C,iEAAiE;YACjE,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,MAAe;gBACrB,gBAAgB,EAAE,kBAA2B;gBAC7C,WAAW,EAAE,cAAuB;aACrC,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;YAE9D,iCAAiC;YACjC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAE/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;oBACnB,SAAS,EAAE,YAAY,CAAC,cAAc,CAAC;oBACvC,OAAO,EAAE,iBAAiB;iBAC3B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,eAAwB,EAAE,CAAC;gBAClC,MAAM,YAAY,GAChB,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAEvF,iCAAiC;gBACjC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzE,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,OAAO,EAC1B,kBAAkB,GAAG,qBAAqB,iBAAiB,KAAK,EAChE,+EAA+E,CAChF,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,iBAAiB,EACpC,kBAAkB,GAAG,aAAa,YAAY,EAAE,CACjD,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAgB,MAAM,IAAI,SAAS,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;gBAClD,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,YAAY,CAC3C,gBAAgB,EAChB;QACE,WAAW,EACT,iFAAiF;QACnF,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAE/B,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEtC,IAAI,kBAAkB,KAAK,mBAAmB,EAAE,CAAC;gBAC/C,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,iBAAiB,EACpC,8BAA8B,CAC/B,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAgB,MAAM,IAAI,SAAS,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;gBAClD,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,KAAK,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,YAAY,CAC9C,mBAAmB,EACnB;QACE,WAAW,EACT,oFAAoF;QACtF,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAE9C,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAE/B,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEtC,IAAI,kBAAkB,KAAK,mBAAmB,EAAE,CAAC;gBAC/C,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,iBAAiB,EACpC,6BAA6B,CAC9B,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAgB,MAAM,IAAI,SAAS,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;gBAClD,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,YAAY,CAC7C,kBAAkB,EAClB;QACE,WAAW,EAAE,oEAAoE;QACjF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACtE,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAE9C,MAAM,WAAW,GAAG,IAAI,IAAI,KAAK,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAE/B,IAAI,WAAW,EAAE,CAAC;gBAChB,sCAAsC;gBACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;oBAC/B,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBACpD,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,WAAW,GAAgB,MAAM,IAAI,SAAS,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;gBAClD,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}