@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
@@ -1 +1 @@
1
- {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAyI9E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA2jBhC"}
1
+ {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAyI9E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAskBhC"}
@@ -382,87 +382,96 @@ export function registerObservationTools(server, deps) {
382
382
  return handleToolError(error);
383
383
  }
384
384
  });
385
- // ─── charlotte_screenshot_manage ───
386
- tools["charlotte_screenshot_manage"] = server.registerTool("charlotte_screenshot_manage", {
387
- description: "Manage saved screenshot artifacts: list all, retrieve by ID (returns image data), or delete by ID.",
385
+ // ─── charlotte_screenshots ───
386
+ tools["charlotte_screenshots"] = server.registerTool("charlotte_screenshots", {
387
+ description: "List all saved screenshot artifacts. Returns metadata for each saved screenshot including ID, filename, page URL, and timestamp.",
388
+ inputSchema: {},
389
+ }, async () => {
390
+ try {
391
+ const artifacts = deps.artifactStore.list();
392
+ return {
393
+ content: [
394
+ {
395
+ type: "text",
396
+ text: JSON.stringify({
397
+ screenshots: artifacts.map((a) => ({
398
+ id: a.id,
399
+ filename: a.filename,
400
+ format: a.format,
401
+ size: a.size,
402
+ url: a.url,
403
+ title: a.title,
404
+ selector: a.selector,
405
+ timestamp: a.timestamp,
406
+ })),
407
+ count: artifacts.length,
408
+ directory: deps.artifactStore.screenshotDir,
409
+ }),
410
+ },
411
+ ],
412
+ };
413
+ }
414
+ catch (error) {
415
+ return handleToolError(error);
416
+ }
417
+ });
418
+ // ─── charlotte_screenshot_get ───
419
+ tools["charlotte_screenshot_get"] = server.registerTool("charlotte_screenshot_get", {
420
+ description: "Retrieve a previously saved screenshot artifact by its ID. Returns the image data and metadata.",
388
421
  inputSchema: {
389
- action: z
390
- .enum(["list", "get", "delete"])
391
- .describe("Action to perform on screenshot artifacts"),
392
- id: z
393
- .string()
394
- .optional()
395
- .describe("Screenshot artifact ID (required for get and delete)"),
422
+ id: z.string().describe("Screenshot artifact ID (e.g. ss-20260224103000-a1b2c3)"),
396
423
  },
397
- }, async ({ action, id }) => {
424
+ }, async ({ id }) => {
398
425
  try {
399
- if (action === "list") {
400
- const artifacts = deps.artifactStore.list();
401
- return {
402
- content: [
403
- {
404
- type: "text",
405
- text: JSON.stringify({
406
- screenshots: artifacts.map((a) => ({
407
- id: a.id,
408
- filename: a.filename,
409
- format: a.format,
410
- size: a.size,
411
- url: a.url,
412
- title: a.title,
413
- selector: a.selector,
414
- timestamp: a.timestamp,
415
- })),
416
- count: artifacts.length,
417
- directory: deps.artifactStore.screenshotDir,
418
- }),
419
- },
420
- ],
421
- };
426
+ const artifact = deps.artifactStore.get(id);
427
+ if (!artifact) {
428
+ return handleToolError(new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, `Screenshot artifact '${id}' not found.`, "Use charlotte_screenshots to list available artifacts."));
422
429
  }
423
- // get and delete both require an id
424
- if (!id) {
425
- return handleToolError(new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `The '${action}' action requires an 'id' parameter.`));
430
+ const fileData = await deps.artifactStore.readFile(id);
431
+ if (!fileData) {
432
+ return handleToolError(new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `Screenshot file for '${id}' is missing from disk.`, "The file may have been deleted externally. Use charlotte_screenshots to see current artifacts."));
426
433
  }
427
- if (action === "get") {
428
- const artifact = deps.artifactStore.get(id);
429
- if (!artifact) {
430
- return handleToolError(new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, `Screenshot artifact '${id}' not found.`, "Use charlotte_screenshot_manage({ action: 'list' }) to list available artifacts."));
431
- }
432
- const fileData = await deps.artifactStore.readFile(id);
433
- if (!fileData) {
434
- return handleToolError(new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `Screenshot file for '${id}' is missing from disk.`, "The file may have been deleted externally."));
435
- }
436
- return {
437
- content: [
438
- {
439
- type: "image",
440
- data: fileData.toString("base64"),
441
- mimeType: artifact.mimeType,
442
- },
443
- {
444
- type: "text",
445
- text: JSON.stringify({
446
- artifact: {
447
- id: artifact.id,
448
- filename: artifact.filename,
449
- path: artifact.path,
450
- format: artifact.format,
451
- size: artifact.size,
452
- url: artifact.url,
453
- title: artifact.title,
454
- selector: artifact.selector,
455
- timestamp: artifact.timestamp,
456
- },
457
- }),
458
- },
459
- ],
460
- };
461
- }
462
- // action === "delete"
434
+ return {
435
+ content: [
436
+ {
437
+ type: "image",
438
+ data: fileData.toString("base64"),
439
+ mimeType: artifact.mimeType,
440
+ },
441
+ {
442
+ type: "text",
443
+ text: JSON.stringify({
444
+ artifact: {
445
+ id: artifact.id,
446
+ filename: artifact.filename,
447
+ path: artifact.path,
448
+ format: artifact.format,
449
+ size: artifact.size,
450
+ url: artifact.url,
451
+ title: artifact.title,
452
+ selector: artifact.selector,
453
+ timestamp: artifact.timestamp,
454
+ },
455
+ }),
456
+ },
457
+ ],
458
+ };
459
+ }
460
+ catch (error) {
461
+ return handleToolError(error);
462
+ }
463
+ });
464
+ // ─── charlotte_screenshot_delete ───
465
+ tools["charlotte_screenshot_delete"] = server.registerTool("charlotte_screenshot_delete", {
466
+ description: "Delete a saved screenshot artifact by its ID. Removes the file from disk.",
467
+ inputSchema: {
468
+ id: z.string().describe("Screenshot artifact ID to delete"),
469
+ },
470
+ }, async ({ id }) => {
471
+ try {
463
472
  const deleted = await deps.artifactStore.delete(id);
464
473
  if (!deleted) {
465
- return handleToolError(new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, `Screenshot artifact '${id}' not found.`, "Use charlotte_screenshot_manage({ action: 'list' }) to list available artifacts."));
474
+ return handleToolError(new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, `Screenshot artifact '${id}' not found.`, "Use charlotte_screenshots to list available artifacts."));
466
475
  }
467
476
  return {
468
477
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAGA,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;AAmB1D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA+fhC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAmB1D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAulBhC"}
@@ -2,7 +2,6 @@ import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  import { z } from "zod";
4
4
  import { logger } from "../utils/logger.js";
5
- import { CharlotteError, CharlotteErrorCode } from "../types/errors.js";
6
5
  import { ensureReady, renderActivePage, formatPageResponse, handleToolError, coercedBoolean, } from "./tool-helpers.js";
7
6
  const CookieSchema = z.object({
8
7
  name: z.string().describe("Cookie name"),
@@ -15,87 +14,59 @@ const CookieSchema = z.object({
15
14
  });
16
15
  export function registerSessionTools(server, deps) {
17
16
  const tools = {};
18
- // ─── charlotte_cookies ───
19
- tools["charlotte_cookies"] = server.registerTool("charlotte_cookies", {
20
- description: "Manage browser cookies: get cookies for the page, set new cookies, or clear existing ones.",
17
+ // ─── charlotte_get_cookies ───
18
+ tools["charlotte_get_cookies"] = server.registerTool("charlotte_get_cookies", {
19
+ description: "Get cookies for the active page. Optionally filter by URL(s). Returns cookie name, value, domain, path, and flags.",
21
20
  inputSchema: {
22
- action: z
23
- .enum(["get", "set", "clear"])
24
- .describe("Cookie action to perform"),
25
21
  urls: z
26
22
  .array(z.string())
27
23
  .optional()
28
- .describe("(get) URLs to filter cookies by. If omitted, returns cookies for the current page URL."),
29
- cookies: z
30
- .array(CookieSchema)
31
- .optional()
32
- .describe("(set) Array of cookie objects to set"),
24
+ .describe("URLs to filter cookies by. If omitted, returns cookies for the current page URL."),
25
+ },
26
+ }, async ({ urls }) => {
27
+ try {
28
+ await ensureReady(deps);
29
+ const page = deps.pageManager.getActivePage();
30
+ logger.info("Getting cookies", { urls });
31
+ const cookies = urls?.length ? await page.cookies(...urls) : await page.cookies();
32
+ return {
33
+ content: [
34
+ {
35
+ type: "text",
36
+ text: JSON.stringify({
37
+ cookies: cookies.map((c) => ({
38
+ name: c.name,
39
+ value: c.value,
40
+ domain: c.domain,
41
+ path: c.path,
42
+ expires: c.expires,
43
+ httpOnly: c.httpOnly,
44
+ secure: c.secure,
45
+ sameSite: c.sameSite,
46
+ })),
47
+ count: cookies.length,
48
+ }),
49
+ },
50
+ ],
51
+ };
52
+ }
53
+ catch (error) {
54
+ return handleToolError(error);
55
+ }
56
+ });
57
+ // ─── charlotte_clear_cookies ───
58
+ tools["charlotte_clear_cookies"] = server.registerTool("charlotte_clear_cookies", {
59
+ description: "Clear cookies from the browser. Optionally filter by name(s) to remove specific cookies. Without a filter, clears all cookies for the current page.",
60
+ inputSchema: {
33
61
  names: z
34
62
  .array(z.string())
35
63
  .optional()
36
- .describe("(clear) Cookie names to delete. If omitted, clears all cookies for the current page."),
64
+ .describe("Cookie names to delete. If omitted, clears all cookies for the current page."),
37
65
  },
38
- }, async ({ action, urls, cookies, names }) => {
66
+ }, async ({ names }) => {
39
67
  try {
40
68
  await ensureReady(deps);
41
69
  const page = deps.pageManager.getActivePage();
42
- if (action === "get") {
43
- logger.info("Getting cookies", { urls });
44
- const result = urls?.length ? await page.cookies(...urls) : await page.cookies();
45
- return {
46
- content: [
47
- {
48
- type: "text",
49
- text: JSON.stringify({
50
- cookies: result.map((c) => ({
51
- name: c.name,
52
- value: c.value,
53
- domain: c.domain,
54
- path: c.path,
55
- expires: c.expires,
56
- httpOnly: c.httpOnly,
57
- secure: c.secure,
58
- sameSite: c.sameSite,
59
- })),
60
- count: result.length,
61
- }),
62
- },
63
- ],
64
- };
65
- }
66
- if (action === "set") {
67
- if (!cookies?.length) {
68
- return handleToolError(new CharlotteError(CharlotteErrorCode.SESSION_ERROR, "The 'set' action requires a 'cookies' array."));
69
- }
70
- logger.info("Setting cookies", { count: cookies.length });
71
- const puppeteerCookies = cookies.map((cookie) => ({
72
- name: cookie.name,
73
- value: cookie.value,
74
- domain: cookie.domain,
75
- path: cookie.path ?? "/",
76
- secure: cookie.secure,
77
- httpOnly: cookie.httpOnly,
78
- sameSite: cookie.sameSite,
79
- }));
80
- await page.setCookie(...puppeteerCookies);
81
- return {
82
- content: [
83
- {
84
- type: "text",
85
- text: JSON.stringify({
86
- success: true,
87
- cookies_set: cookies.length,
88
- details: cookies.map((c) => ({
89
- name: c.name,
90
- domain: c.domain,
91
- path: c.path ?? "/",
92
- })),
93
- }),
94
- },
95
- ],
96
- };
97
- }
98
- // action === "clear"
99
70
  logger.info("Clearing cookies", { names });
100
71
  const currentCookies = await page.cookies();
101
72
  const cookiesToDelete = names
@@ -119,6 +90,48 @@ export function registerSessionTools(server, deps) {
119
90
  return handleToolError(error);
120
91
  }
121
92
  });
93
+ // ─── charlotte_set_cookies ───
94
+ tools["charlotte_set_cookies"] = server.registerTool("charlotte_set_cookies", {
95
+ description: "Set cookies on the active page. Cookies persist for subsequent navigations within matching domains.",
96
+ inputSchema: {
97
+ cookies: z.array(CookieSchema).describe("Array of cookie objects to set"),
98
+ },
99
+ }, async ({ cookies }) => {
100
+ try {
101
+ await ensureReady(deps);
102
+ const page = deps.pageManager.getActivePage();
103
+ logger.info("Setting cookies", { count: cookies.length });
104
+ const puppeteerCookies = cookies.map((cookie) => ({
105
+ name: cookie.name,
106
+ value: cookie.value,
107
+ domain: cookie.domain,
108
+ path: cookie.path ?? "/",
109
+ secure: cookie.secure,
110
+ httpOnly: cookie.httpOnly,
111
+ sameSite: cookie.sameSite,
112
+ }));
113
+ await page.setCookie(...puppeteerCookies);
114
+ return {
115
+ content: [
116
+ {
117
+ type: "text",
118
+ text: JSON.stringify({
119
+ success: true,
120
+ cookies_set: cookies.length,
121
+ details: cookies.map((c) => ({
122
+ name: c.name,
123
+ domain: c.domain,
124
+ path: c.path ?? "/",
125
+ })),
126
+ }),
127
+ },
128
+ ],
129
+ };
130
+ }
131
+ catch (error) {
132
+ return handleToolError(error);
133
+ }
134
+ });
122
135
  // ─── charlotte_set_headers ───
123
136
  tools["charlotte_set_headers"] = server.registerTool("charlotte_set_headers", {
124
137
  description: "Set extra HTTP headers for subsequent requests. Headers persist for all navigations on the active page.",
@@ -183,7 +196,7 @@ export function registerSessionTools(server, deps) {
183
196
  .optional()
184
197
  .describe("Maximum iframe nesting depth to traverse (default: 3, min: 1, max: 10)"),
185
198
  },
186
- }, async ({ snapshot_depth, auto_snapshot, screenshot_dir, dialog_auto_dismiss, output_dir, include_iframes, iframe_depth }) => {
199
+ }, async ({ snapshot_depth, auto_snapshot, screenshot_dir, dialog_auto_dismiss, output_dir, include_iframes, iframe_depth, }) => {
187
200
  try {
188
201
  logger.info("Configuring Charlotte", { snapshot_depth, auto_snapshot, screenshot_dir });
189
202
  if (snapshot_depth !== undefined) {
@@ -235,54 +248,86 @@ export function registerSessionTools(server, deps) {
235
248
  return handleToolError(error);
236
249
  }
237
250
  });
238
- // ─── charlotte_tab ───
239
- tools["charlotte_tab"] = server.registerTool("charlotte_tab", {
240
- description: "Manage browser tabs: list all tabs, open a new tab, switch to a tab, or close a tab.",
251
+ // ─── charlotte_tabs ───
252
+ tools["charlotte_tabs"] = server.registerTool("charlotte_tabs", {
253
+ description: "List all open browser tabs with their URLs, titles, and active status.",
254
+ inputSchema: {},
255
+ }, async () => {
256
+ try {
257
+ await ensureReady(deps);
258
+ const tabs = await deps.pageManager.listTabs();
259
+ return {
260
+ content: [
261
+ {
262
+ type: "text",
263
+ text: JSON.stringify({ tabs }),
264
+ },
265
+ ],
266
+ };
267
+ }
268
+ catch (error) {
269
+ return handleToolError(error);
270
+ }
271
+ });
272
+ // ─── charlotte_tab_open ───
273
+ tools["charlotte_tab_open"] = server.registerTool("charlotte_tab_open", {
274
+ description: "Open a new browser tab. Optionally navigate to a URL. The new tab becomes the active tab.",
241
275
  inputSchema: {
242
- action: z
243
- .enum(["list", "open", "switch", "close"])
244
- .describe("Tab action to perform"),
245
- url: z.string().optional().describe("(open) URL to navigate to (default: blank page)"),
246
- tab_id: z.string().optional().describe("(switch, close) ID of the target tab"),
276
+ url: z.string().optional().describe("URL to navigate to (default: blank page)"),
247
277
  },
248
- }, async ({ action, url, tab_id }) => {
278
+ }, async ({ url }) => {
279
+ try {
280
+ await ensureReady(deps);
281
+ const tabId = await deps.pageManager.openTab(deps.browserManager, url);
282
+ logger.info("Opened new tab", { tabId, url });
283
+ const representation = await renderActivePage(deps, {
284
+ source: "action",
285
+ });
286
+ return {
287
+ content: [
288
+ {
289
+ type: "text",
290
+ text: JSON.stringify({
291
+ tab_id: tabId,
292
+ ...representation,
293
+ }, null, 2),
294
+ },
295
+ ],
296
+ };
297
+ }
298
+ catch (error) {
299
+ return handleToolError(error);
300
+ }
301
+ });
302
+ // ─── charlotte_tab_switch ───
303
+ tools["charlotte_tab_switch"] = server.registerTool("charlotte_tab_switch", {
304
+ description: "Switch to a different browser tab by its tab ID. Returns the page representation of the activated tab.",
305
+ inputSchema: {
306
+ tab_id: z.string().describe("ID of the tab to switch to"),
307
+ },
308
+ }, async ({ tab_id }) => {
309
+ try {
310
+ await ensureReady(deps);
311
+ await deps.pageManager.switchTab(tab_id);
312
+ logger.info("Switched to tab", { tab_id });
313
+ const representation = await renderActivePage(deps, {
314
+ source: "action",
315
+ });
316
+ return formatPageResponse(representation);
317
+ }
318
+ catch (error) {
319
+ return handleToolError(error);
320
+ }
321
+ });
322
+ // ─── charlotte_tab_close ───
323
+ tools["charlotte_tab_close"] = server.registerTool("charlotte_tab_close", {
324
+ description: "Close a browser tab by its ID. If the closed tab was active, switches to the first remaining tab.",
325
+ inputSchema: {
326
+ tab_id: z.string().describe("ID of the tab to close"),
327
+ },
328
+ }, async ({ tab_id }) => {
249
329
  try {
250
330
  await ensureReady(deps);
251
- if (action === "list") {
252
- const tabs = await deps.pageManager.listTabs();
253
- return {
254
- content: [
255
- {
256
- type: "text",
257
- text: JSON.stringify({ tabs }),
258
- },
259
- ],
260
- };
261
- }
262
- if (action === "open") {
263
- const newTabId = await deps.pageManager.openTab(deps.browserManager, url);
264
- logger.info("Opened new tab", { tabId: newTabId, url });
265
- const representation = await renderActivePage(deps, { source: "action" });
266
- return {
267
- content: [
268
- {
269
- type: "text",
270
- text: JSON.stringify({ tab_id: newTabId, ...representation }),
271
- },
272
- ],
273
- };
274
- }
275
- // switch and close require tab_id
276
- if (!tab_id) {
277
- return handleToolError(new CharlotteError(CharlotteErrorCode.SESSION_ERROR, `The '${action}' action requires a 'tab_id' parameter.`));
278
- }
279
- if (action === "switch") {
280
- await deps.pageManager.switchTab(tab_id);
281
- logger.info("Switched to tab", { tab_id });
282
- const representation = await renderActivePage(deps, { source: "action" });
283
- return formatPageResponse(representation);
284
- }
285
- // action === "close"
286
331
  await deps.pageManager.closeTab(tab_id);
287
332
  logger.info("Closed tab", { tab_id });
288
333
  const remainingTabs = await deps.pageManager.listTabs();