@ticktockbent/charlotte 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +101 -27
  3. package/dist/browser/cdp-session.d.ts +9 -1
  4. package/dist/browser/cdp-session.d.ts.map +1 -1
  5. package/dist/browser/cdp-session.js +32 -10
  6. package/dist/browser/cdp-session.js.map +1 -1
  7. package/dist/browser/page-manager.d.ts.map +1 -1
  8. package/dist/browser/page-manager.js +2 -1
  9. package/dist/browser/page-manager.js.map +1 -1
  10. package/dist/cli.d.ts +1 -0
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +14 -8
  13. package/dist/cli.js.map +1 -1
  14. package/dist/dev/auditor.d.ts.map +1 -1
  15. package/dist/dev/auditor.js +15 -36
  16. package/dist/dev/auditor.js.map +1 -1
  17. package/dist/dev/dev-mode-state.d.ts.map +1 -1
  18. package/dist/dev/dev-mode-state.js.map +1 -1
  19. package/dist/dev/static-server.d.ts.map +1 -1
  20. package/dist/dev/static-server.js +6 -2
  21. package/dist/dev/static-server.js.map +1 -1
  22. package/dist/index.js +9 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/renderer/accessibility-extractor.d.ts +3 -1
  25. package/dist/renderer/accessibility-extractor.d.ts.map +1 -1
  26. package/dist/renderer/accessibility-extractor.js +6 -6
  27. package/dist/renderer/accessibility-extractor.js.map +1 -1
  28. package/dist/renderer/dom-path.d.ts.map +1 -1
  29. package/dist/renderer/dom-path.js.map +1 -1
  30. package/dist/renderer/element-id-generator.d.ts +4 -1
  31. package/dist/renderer/element-id-generator.d.ts.map +1 -1
  32. package/dist/renderer/element-id-generator.js +12 -1
  33. package/dist/renderer/element-id-generator.js.map +1 -1
  34. package/dist/renderer/frame-discovery.d.ts +23 -0
  35. package/dist/renderer/frame-discovery.d.ts.map +1 -0
  36. package/dist/renderer/frame-discovery.js +102 -0
  37. package/dist/renderer/frame-discovery.js.map +1 -0
  38. package/dist/renderer/interactive-extractor.d.ts +8 -1
  39. package/dist/renderer/interactive-extractor.d.ts.map +1 -1
  40. package/dist/renderer/interactive-extractor.js +36 -9
  41. package/dist/renderer/interactive-extractor.js.map +1 -1
  42. package/dist/renderer/layout-extractor.d.ts +4 -1
  43. package/dist/renderer/layout-extractor.d.ts.map +1 -1
  44. package/dist/renderer/layout-extractor.js +15 -2
  45. package/dist/renderer/layout-extractor.js.map +1 -1
  46. package/dist/renderer/renderer-pipeline.d.ts +26 -1
  47. package/dist/renderer/renderer-pipeline.d.ts.map +1 -1
  48. package/dist/renderer/renderer-pipeline.js +174 -18
  49. package/dist/renderer/renderer-pipeline.js.map +1 -1
  50. package/dist/renderer/structural-tree-extractor.d.ts +7 -0
  51. package/dist/renderer/structural-tree-extractor.d.ts.map +1 -0
  52. package/dist/renderer/structural-tree-extractor.js +245 -0
  53. package/dist/renderer/structural-tree-extractor.js.map +1 -0
  54. package/dist/server.d.ts +2 -0
  55. package/dist/server.d.ts.map +1 -1
  56. package/dist/server.js +3 -4
  57. package/dist/server.js.map +1 -1
  58. package/dist/state/artifact-store.d.ts.map +1 -1
  59. package/dist/state/artifact-store.js +1 -2
  60. package/dist/state/artifact-store.js.map +1 -1
  61. package/dist/state/differ.d.ts.map +1 -1
  62. package/dist/state/differ.js.map +1 -1
  63. package/dist/tools/dev-mode.d.ts.map +1 -1
  64. package/dist/tools/dev-mode.js +4 -16
  65. package/dist/tools/dev-mode.js.map +1 -1
  66. package/dist/tools/dialog.d.ts.map +1 -1
  67. package/dist/tools/dialog.js +2 -4
  68. package/dist/tools/dialog.js.map +1 -1
  69. package/dist/tools/evaluate.d.ts.map +1 -1
  70. package/dist/tools/evaluate.js +1 -4
  71. package/dist/tools/evaluate.js.map +1 -1
  72. package/dist/tools/interaction.d.ts +17 -0
  73. package/dist/tools/interaction.d.ts.map +1 -1
  74. package/dist/tools/interaction.js +127 -69
  75. package/dist/tools/interaction.js.map +1 -1
  76. package/dist/tools/meta-tool.d.ts.map +1 -1
  77. package/dist/tools/meta-tool.js.map +1 -1
  78. package/dist/tools/monitoring.d.ts.map +1 -1
  79. package/dist/tools/monitoring.js +35 -19
  80. package/dist/tools/monitoring.js.map +1 -1
  81. package/dist/tools/navigation.d.ts.map +1 -1
  82. package/dist/tools/navigation.js +20 -16
  83. package/dist/tools/navigation.js.map +1 -1
  84. package/dist/tools/observation.d.ts.map +1 -1
  85. package/dist/tools/observation.js +50 -13
  86. package/dist/tools/observation.js.map +1 -1
  87. package/dist/tools/session.d.ts.map +1 -1
  88. package/dist/tools/session.js +38 -27
  89. package/dist/tools/session.js.map +1 -1
  90. package/dist/tools/tool-groups.d.ts +1 -1
  91. package/dist/tools/tool-groups.d.ts.map +1 -1
  92. package/dist/tools/tool-groups.js +9 -22
  93. package/dist/tools/tool-groups.js.map +1 -1
  94. package/dist/tools/tool-helpers.d.ts +50 -5
  95. package/dist/tools/tool-helpers.d.ts.map +1 -1
  96. package/dist/tools/tool-helpers.js +102 -2
  97. package/dist/tools/tool-helpers.js.map +1 -1
  98. package/dist/types/config.d.ts +6 -0
  99. package/dist/types/config.d.ts.map +1 -1
  100. package/dist/types/config.js +2 -0
  101. package/dist/types/config.js.map +1 -1
  102. package/dist/types/page-representation.d.ts +14 -0
  103. package/dist/types/page-representation.d.ts.map +1 -1
  104. package/dist/utils/wait.js +1 -1
  105. package/dist/utils/wait.js.map +1 -1
  106. package/package.json +24 -8
@@ -1,5 +1,15 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { z } from "zod";
1
4
  import { CharlotteError, CharlotteErrorCode } from "../types/errors.js";
2
5
  import { diffRepresentations } from "../state/differ.js";
6
+ import { logger } from "../utils/logger.js";
7
+ /**
8
+ * Boolean schema that accepts both native booleans and string representations
9
+ * ("true"/"false"). Some MCP clients send boolean parameters as strings,
10
+ * causing Zod validation to reject them. This handles the coercion.
11
+ */
12
+ export const coercedBoolean = z.preprocess((val) => (val === "true" ? true : val === "false" ? false : val), z.boolean());
3
13
  /**
4
14
  * Render the active page, attach console/network errors, and optionally
5
15
  * push a snapshot to the store.
@@ -68,13 +78,15 @@ export async function resolveElement(deps, elementId) {
68
78
  // Step 1: Check current map
69
79
  let backendNodeId = deps.elementIdGenerator.resolveId(elementId);
70
80
  if (backendNodeId !== null) {
71
- return { page, backendNodeId };
81
+ const frameId = deps.elementIdGenerator.resolveFrame(elementId);
82
+ return { page, backendNodeId, frameId };
72
83
  }
73
84
  // Step 2: Re-render and check again (map was invalidated)
74
85
  const freshRepresentation = await renderActivePage(deps, { detail: "minimal" });
75
86
  backendNodeId = deps.elementIdGenerator.resolveId(elementId);
76
87
  if (backendNodeId !== null) {
77
- return { page, backendNodeId };
88
+ const frameId = deps.elementIdGenerator.resolveFrame(elementId);
89
+ return { page, backendNodeId, frameId };
78
90
  }
79
91
  // Step 3: Element is genuinely gone — suggest similar
80
92
  const similar = deps.elementIdGenerator.findSimilar(elementId, freshRepresentation.interactive);
@@ -83,6 +95,23 @@ export async function resolveElement(deps, elementId) {
83
95
  : `Element '${elementId}' not found. Call charlotte:observe to get current page state.`;
84
96
  throw new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, `Element '${elementId}' not found on page.`, suggestion);
85
97
  }
98
+ /**
99
+ * Get the appropriate CDP session for an element.
100
+ * Returns the frame-specific session for iframe elements, or the main page session.
101
+ */
102
+ export async function getSessionForElement(deps, resolved) {
103
+ if (resolved.frameId) {
104
+ // Find the frame by ID and get its session
105
+ const allFrames = resolved.page.frames();
106
+ const targetFrame = allFrames.find((f) => deps.cdpSessionManager.getFrameId(f) === resolved.frameId);
107
+ if (targetFrame) {
108
+ return deps.cdpSessionManager.getFrameSession(targetFrame);
109
+ }
110
+ // Fallback to main session if frame not found (frame may have navigated away)
111
+ logger.warn(`Frame ${resolved.frameId} not found, falling back to main session`);
112
+ }
113
+ return deps.cdpSessionManager.getSession(resolved.page);
114
+ }
86
115
  /**
87
116
  * Render after an interaction action and attach a delta diff.
88
117
  * Captures the pre-action snapshot (latest in store), renders post-action
@@ -142,6 +171,10 @@ export function stripEmptyFields(representation) {
142
171
  }
143
172
  cleaned.structure = structure;
144
173
  }
174
+ // Strip empty iframes
175
+ if (!representation.iframes || representation.iframes.length === 0) {
176
+ delete cleaned.iframes;
177
+ }
145
178
  // Strip absent pending_dialog
146
179
  if (!cleaned.pending_dialog) {
147
180
  delete cleaned.pending_dialog;
@@ -201,4 +234,71 @@ export function handleToolError(error) {
201
234
  const sessionError = new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `Unexpected error: ${error instanceof Error ? error.message : String(error)}`);
202
235
  return formatErrorResponse(sessionError);
203
236
  }
237
+ /**
238
+ * Resolve an output file path from the `output_file` parameter.
239
+ * If the path is relative, it is resolved against `config.outputDir`
240
+ * (or cwd if outputDir is not set). Ensures the parent directory exists.
241
+ *
242
+ * Security: the resolved path must fall within `outputDir` (or
243
+ * `allowedWorkspaceRoot` when outputDir is unset). Symlinks are
244
+ * resolved after mkdir to catch traversal via symlinked parents.
245
+ */
246
+ export async function resolveOutputPath(outputFile, config) {
247
+ const baseDir = config.outputDir ?? config.allowedWorkspaceRoot ?? process.cwd();
248
+ const resolved = path.isAbsolute(outputFile)
249
+ ? outputFile
250
+ : path.resolve(baseDir, outputFile);
251
+ // Normalize the path (resolve . and .. segments) without touching the filesystem.
252
+ // This catches obvious traversal attempts before any side effects (mkdir).
253
+ const normalized = path.resolve(resolved);
254
+ if (!normalized.startsWith(baseDir + path.sep) && normalized !== baseDir) {
255
+ throw new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `Output path '${outputFile}' resolves outside the allowed directory '${baseDir}'.`, "Use a relative path or configure output_dir to an appropriate directory.");
256
+ }
257
+ // Ensure baseDir exists (may not have been created yet when set via --output-dir)
258
+ await fs.mkdir(baseDir, { recursive: true });
259
+ // Ensure parent directory exists (safe — we validated it's within baseDir)
260
+ await fs.mkdir(path.dirname(resolved), { recursive: true });
261
+ // Resolve symlinks to get the real path and catch symlink-based traversal
262
+ const realParent = await fs.realpath(path.dirname(resolved));
263
+ const realResolved = path.join(realParent, path.basename(resolved));
264
+ const realBase = await fs.realpath(baseDir);
265
+ if (!realResolved.startsWith(realBase + path.sep) && realResolved !== realBase) {
266
+ throw new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `Output path '${outputFile}' resolves outside the allowed directory '${baseDir}'.`, "Use a relative path or configure output_dir to an appropriate directory.");
267
+ }
268
+ return realResolved;
269
+ }
270
+ /**
271
+ * Write text content to a file and return a brief confirmation response.
272
+ */
273
+ export async function writeOutputFile(filePath, content) {
274
+ await fs.writeFile(filePath, content, "utf-8");
275
+ return {
276
+ content: [
277
+ {
278
+ type: "text",
279
+ text: JSON.stringify({
280
+ output_file: filePath,
281
+ size: Buffer.byteLength(content, "utf-8"),
282
+ }),
283
+ },
284
+ ],
285
+ };
286
+ }
287
+ /**
288
+ * Write binary content to a file and return a brief confirmation response.
289
+ */
290
+ export async function writeBinaryOutputFile(filePath, data) {
291
+ await fs.writeFile(filePath, data);
292
+ return {
293
+ content: [
294
+ {
295
+ type: "text",
296
+ text: JSON.stringify({
297
+ output_file: filePath,
298
+ size: data.length,
299
+ }),
300
+ },
301
+ ],
302
+ };
303
+ }
204
304
  //# sourceMappingURL=tool-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/tools/tool-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/tools/tool-helpers.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,12 @@ export interface CharlotteConfig {
8
8
  dialogAutoDismiss: DialogAutoDismiss;
9
9
  /** Directory for persistent screenshot artifacts. Defaults to OS temp dir. */
10
10
  screenshotDir?: string;
11
+ /** Directory for large tool output files. When set, tools with output_file support write here. */
12
+ outputDir?: string;
13
+ /** Whether to include iframe content in page representations. Default: false. */
14
+ includeIframes: boolean;
15
+ /** Maximum iframe nesting depth to traverse. Default: 3. */
16
+ iframeDepth: number;
11
17
  }
12
18
  export declare function createDefaultConfig(): CharlotteConfig;
13
19
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,aAAa,CAAC;AAExF,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,mBAAmB,IAAI,eAAe,CAOrD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,aAAa,CAAC;AAExF,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,cAAc,EAAE,OAAO,CAAC;IACxB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,mBAAmB,IAAI,eAAe,CASrD"}
@@ -4,6 +4,8 @@ export function createDefaultConfig() {
4
4
  autoSnapshot: "every_action",
5
5
  dialogAutoDismiss: "none",
6
6
  allowedWorkspaceRoot: process.cwd(), // Default to cwd for universal safety
7
+ includeIframes: false,
8
+ iframeDepth: 3,
7
9
  };
8
10
  }
9
11
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,cAAc;QAC5B,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,sCAAsC;KAC5E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,cAAc;QAC5B,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,sCAAsC;QAC3E,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC"}
@@ -9,11 +9,15 @@ export interface Landmark {
9
9
  role: string;
10
10
  label: string;
11
11
  bounds: Bounds;
12
+ /** Source frame URL. Omitted for main frame. */
13
+ frame?: string;
12
14
  }
13
15
  export interface Heading {
14
16
  level: 1 | 2 | 3 | 4 | 5 | 6;
15
17
  text: string;
16
18
  id: string;
19
+ /** Source frame URL. Omitted for main frame. */
20
+ frame?: string;
17
21
  }
18
22
  export interface ElementState {
19
23
  enabled?: boolean;
@@ -36,6 +40,8 @@ export interface InteractiveElement {
36
40
  placeholder?: string;
37
41
  value?: string;
38
42
  options?: string[];
43
+ /** Source frame URL. Omitted for main frame. */
44
+ frame?: string;
39
45
  }
40
46
  export interface FormRepresentation {
41
47
  id: string;
@@ -43,6 +49,8 @@ export interface FormRepresentation {
43
49
  method?: string;
44
50
  fields: string[];
45
51
  submit: string | null;
52
+ /** Source frame URL. Omitted for main frame. */
53
+ frame?: string;
46
54
  }
47
55
  export interface PageStructure {
48
56
  landmarks: Landmark[];
@@ -68,6 +76,11 @@ export interface PendingDialog {
68
76
  default_value?: string;
69
77
  timestamp: string;
70
78
  }
79
+ export interface IframeInfo {
80
+ frame_id: string;
81
+ url: string;
82
+ bounds: Bounds | null;
83
+ }
71
84
  export interface PageRepresentation {
72
85
  url: string;
73
86
  title: string;
@@ -92,6 +105,7 @@ export interface PageRepresentation {
92
105
  }>;
93
106
  };
94
107
  interactive_summary?: InteractiveSummary;
108
+ iframes?: IframeInfo[];
95
109
  reload_event?: ReloadEvent;
96
110
  pending_dialog?: PendingDialog;
97
111
  delta?: import("./snapshot.js").SnapshotDiff;
@@ -1 +1 @@
1
- {"version":3,"file":"page-representation.d.ts","sourceRoot":"","sources":["../../src/types/page-representation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-representation.d.ts","sourceRoot":"","sources":["../../src/types/page-representation.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ async function evaluateCondition(page, condition) {
38
38
  const jsExpression = condition.js;
39
39
  try {
40
40
  const result = await page.evaluate((expression) => {
41
- return !!new Function('return ' + expression)();
41
+ return !!new Function("return " + expression)();
42
42
  }, jsExpression);
43
43
  if (!result)
44
44
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/utils/wait.ts"],"names":[],"mappings":"AAkBA,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,SAAwB,EACxB,OAAoB;IAEpB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,aAAa,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,aAAa,IAAI,CAAC;YAAE,MAAM;QAE9B,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAU,EACV,SAAwB;IAExB,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QACjE,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;YAClD,CAAC,EAAE,YAAY,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/utils/wait.ts"],"names":[],"mappings":"AAkBA,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,SAAwB,EACxB,OAAoB;IAEpB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,aAAa,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,aAAa,IAAI,CAAC;YAAE,MAAM;QAE9B,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,SAAwB;IACnE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QACjE,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;YAClD,CAAC,EAAE,YAAY,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ticktockbent/charlotte",
3
- "version": "0.4.1",
4
- "description": "MCP server that renders web pages into structured, agent-readable representations",
3
+ "version": "0.5.0",
4
+ "description": "Token-efficient browser MCP server structured web pages for AI agents, not raw accessibility dumps",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -20,14 +20,19 @@
20
20
  "homepage": "https://github.com/ticktockbent/charlotte#readme",
21
21
  "keywords": [
22
22
  "mcp",
23
+ "mcp-server",
24
+ "browser-mcp",
23
25
  "model-context-protocol",
24
- "web",
25
- "accessibility",
26
+ "browser-automation",
27
+ "web-scraping",
28
+ "ai-agent",
29
+ "token-efficient",
30
+ "structured-browsing",
31
+ "playwright-alternative",
32
+ "accessibility-tree",
26
33
  "headless-browser",
27
34
  "puppeteer",
28
- "ai-agent",
29
- "web-scraping",
30
- "browser-automation"
35
+ "web-testing"
31
36
  ],
32
37
  "scripts": {
33
38
  "dev": "tsx watch src/index.ts",
@@ -36,7 +41,12 @@
36
41
  "test": "vitest run",
37
42
  "test:watch": "vitest",
38
43
  "test:unit": "vitest run tests/unit/",
39
- "test:integration": "vitest run tests/integration/"
44
+ "test:integration": "vitest run tests/integration/",
45
+ "test:coverage": "vitest run --coverage",
46
+ "lint": "eslint src/ tests/",
47
+ "lint:fix": "eslint src/ tests/ --fix",
48
+ "format": "prettier --write 'src/**/*.ts' 'tests/**/*.ts'",
49
+ "format:check": "prettier --check 'src/**/*.ts' 'tests/**/*.ts'"
40
50
  },
41
51
  "dependencies": {
42
52
  "@modelcontextprotocol/sdk": "^1.12.0",
@@ -46,10 +56,16 @@
46
56
  "zod": "^3.25.0"
47
57
  },
48
58
  "devDependencies": {
59
+ "@eslint/js": "^9.39.4",
49
60
  "@types/express": "^4.17.0",
50
61
  "@types/node": "^22.0.0",
62
+ "@vitest/coverage-v8": "^3.2.4",
63
+ "eslint": "^9.39.4",
64
+ "eslint-config-prettier": "^10.1.8",
65
+ "prettier": "^3.8.1",
51
66
  "tsx": "^4.19.0",
52
67
  "typescript": "^5.7.0",
68
+ "typescript-eslint": "^8.56.1",
53
69
  "vitest": "^3.0.0"
54
70
  },
55
71
  "files": [