@ticktockbent/charlotte 0.3.0 → 0.4.1

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 (82) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +45 -29
  3. package/dist/browser/page-manager.d.ts +21 -0
  4. package/dist/browser/page-manager.d.ts.map +1 -1
  5. package/dist/browser/page-manager.js +81 -24
  6. package/dist/browser/page-manager.js.map +1 -1
  7. package/dist/cli.d.ts +12 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +40 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/dev/dev-mode-state.d.ts +3 -0
  12. package/dist/dev/dev-mode-state.d.ts.map +1 -1
  13. package/dist/dev/dev-mode-state.js +5 -0
  14. package/dist/dev/dev-mode-state.js.map +1 -1
  15. package/dist/dev/static-server.d.ts +1 -0
  16. package/dist/dev/static-server.d.ts.map +1 -1
  17. package/dist/dev/static-server.js +9 -2
  18. package/dist/dev/static-server.js.map +1 -1
  19. package/dist/index.js +16 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/renderer/content-extractor.d.ts.map +1 -1
  22. package/dist/renderer/content-extractor.js +10 -4
  23. package/dist/renderer/content-extractor.js.map +1 -1
  24. package/dist/renderer/renderer-pipeline.d.ts.map +1 -1
  25. package/dist/renderer/renderer-pipeline.js +4 -1
  26. package/dist/renderer/renderer-pipeline.js.map +1 -1
  27. package/dist/server.d.ts +11 -1
  28. package/dist/server.d.ts.map +1 -1
  29. package/dist/server.js +51 -13
  30. package/dist/server.js.map +1 -1
  31. package/dist/tools/dev-mode.d.ts +2 -2
  32. package/dist/tools/dev-mode.d.ts.map +1 -1
  33. package/dist/tools/dev-mode.js +5 -3
  34. package/dist/tools/dev-mode.js.map +1 -1
  35. package/dist/tools/dialog.d.ts +2 -1
  36. package/dist/tools/dialog.d.ts.map +1 -1
  37. package/dist/tools/dialog.js +3 -1
  38. package/dist/tools/dialog.js.map +1 -1
  39. package/dist/tools/evaluate.d.ts +2 -2
  40. package/dist/tools/evaluate.d.ts.map +1 -1
  41. package/dist/tools/evaluate.js +53 -39
  42. package/dist/tools/evaluate.js.map +1 -1
  43. package/dist/tools/interaction.d.ts +2 -1
  44. package/dist/tools/interaction.d.ts.map +1 -1
  45. package/dist/tools/interaction.js +178 -26
  46. package/dist/tools/interaction.js.map +1 -1
  47. package/dist/tools/meta-tool.d.ts +14 -0
  48. package/dist/tools/meta-tool.d.ts.map +1 -0
  49. package/dist/tools/meta-tool.js +123 -0
  50. package/dist/tools/meta-tool.js.map +1 -0
  51. package/dist/tools/monitoring.d.ts +4 -0
  52. package/dist/tools/monitoring.d.ts.map +1 -0
  53. package/dist/tools/monitoring.js +129 -0
  54. package/dist/tools/monitoring.js.map +1 -0
  55. package/dist/tools/navigation.d.ts +2 -1
  56. package/dist/tools/navigation.d.ts.map +1 -1
  57. package/dist/tools/navigation.js +6 -4
  58. package/dist/tools/navigation.js.map +1 -1
  59. package/dist/tools/observation.d.ts +2 -1
  60. package/dist/tools/observation.d.ts.map +1 -1
  61. package/dist/tools/observation.js +102 -10
  62. package/dist/tools/observation.js.map +1 -1
  63. package/dist/tools/session.d.ts +2 -1
  64. package/dist/tools/session.d.ts.map +1 -1
  65. package/dist/tools/session.js +13 -11
  66. package/dist/tools/session.js.map +1 -1
  67. package/dist/tools/tool-groups.d.ts +42 -0
  68. package/dist/tools/tool-groups.d.ts.map +1 -0
  69. package/dist/tools/tool-groups.js +251 -0
  70. package/dist/tools/tool-groups.js.map +1 -0
  71. package/dist/types/config.d.ts +2 -0
  72. package/dist/types/config.d.ts.map +1 -1
  73. package/dist/types/config.js +1 -0
  74. package/dist/types/config.js.map +1 -1
  75. package/dist/types/element-id.d.ts.map +1 -1
  76. package/dist/types/element-id.js +1 -0
  77. package/dist/types/element-id.js.map +1 -1
  78. package/dist/types/page-representation.d.ts +1 -0
  79. package/dist/types/page-representation.d.ts.map +1 -1
  80. package/dist/utils/wait.js +1 -1
  81. package/dist/utils/wait.js.map +1 -1
  82. package/package.json +1 -1
@@ -2,13 +2,20 @@ import { z } from "zod";
2
2
  import { CharlotteError, CharlotteErrorCode } from "../types/errors.js";
3
3
  import { logger } from "../utils/logger.js";
4
4
  import { renderActivePage, renderAfterAction, resolveElement, formatPageResponse, handleToolError, } from "./tool-helpers.js";
5
+ /** Maps short modifier names to Puppeteer KeyInput values. */
6
+ const MODIFIER_KEY_MAP = {
7
+ ctrl: "Control",
8
+ shift: "Shift",
9
+ alt: "Alt",
10
+ meta: "Meta",
11
+ };
5
12
  /**
6
13
  * Click an element by backend node ID using CDP to get coordinates,
7
14
  * or more simply by resolving to an XPath/selector and using page.click.
8
15
  *
9
16
  * The most reliable approach: use CDP to get the element's coordinates, then click at those coords.
10
17
  */
11
- async function clickElementByBackendNodeId(page, backendNodeId, clickType = "left") {
18
+ async function clickElementByBackendNodeId(page, backendNodeId, clickType = "left", modifiers = []) {
12
19
  // Get the element's box model to find clickable coordinates
13
20
  const cdpSession = await page.createCDPSession();
14
21
  try {
@@ -25,14 +32,28 @@ async function clickElementByBackendNodeId(page, backendNodeId, clickType = "lef
25
32
  const contentQuad = model.content;
26
33
  const centerX = (contentQuad[0] + contentQuad[2] + contentQuad[4] + contentQuad[6]) / 4;
27
34
  const centerY = (contentQuad[1] + contentQuad[3] + contentQuad[5] + contentQuad[7]) / 4;
28
- if (clickType === "right") {
29
- await page.mouse.click(centerX, centerY, { button: "right" });
35
+ // Hold down modifier keys before the click
36
+ for (const modifier of modifiers) {
37
+ const modifierKey = MODIFIER_KEY_MAP[modifier];
38
+ await page.keyboard.down(modifierKey);
30
39
  }
31
- else if (clickType === "double") {
32
- await page.mouse.click(centerX, centerY, { clickCount: 2 });
40
+ try {
41
+ if (clickType === "right") {
42
+ await page.mouse.click(centerX, centerY, { button: "right" });
43
+ }
44
+ else if (clickType === "double") {
45
+ await page.mouse.click(centerX, centerY, { clickCount: 2 });
46
+ }
47
+ else {
48
+ await page.mouse.click(centerX, centerY);
49
+ }
33
50
  }
34
- else {
35
- await page.mouse.click(centerX, centerY);
51
+ finally {
52
+ // Release modifier keys in reverse order (always release even if click fails)
53
+ for (const modifier of [...modifiers].reverse()) {
54
+ const modifierKey = MODIFIER_KEY_MAP[modifier];
55
+ await page.keyboard.up(modifierKey);
56
+ }
36
57
  }
37
58
  }
38
59
  finally {
@@ -157,6 +178,50 @@ async function hoverElementByBackendNodeId(page, backendNodeId) {
157
178
  await cdpSession.detach();
158
179
  }
159
180
  }
181
+ /**
182
+ * Get the center coordinates of an element by backend node ID.
183
+ * Scrolls the element into view first.
184
+ */
185
+ async function getElementCenter(page, backendNodeId) {
186
+ const cdpSession = await page.createCDPSession();
187
+ try {
188
+ await cdpSession.send("DOM.scrollIntoViewIfNeeded", { backendNodeId });
189
+ const { model } = await cdpSession.send("DOM.getBoxModel", {
190
+ backendNodeId,
191
+ });
192
+ if (!model) {
193
+ throw new CharlotteError(CharlotteErrorCode.ELEMENT_NOT_FOUND, "Element has no visible box model — it may be hidden or zero-sized.", "Call charlotte:observe to check the element's state.");
194
+ }
195
+ const contentQuad = model.content;
196
+ return {
197
+ x: (contentQuad[0] + contentQuad[2] + contentQuad[4] + contentQuad[6]) / 4,
198
+ y: (contentQuad[1] + contentQuad[3] + contentQuad[5] + contentQuad[7]) / 4,
199
+ };
200
+ }
201
+ finally {
202
+ await cdpSession.detach();
203
+ }
204
+ }
205
+ /**
206
+ * Drag one element to another using mouse primitives.
207
+ * Sequence: move to source → mousedown → move to target → mouseup
208
+ * Includes intermediate move steps and delays to ensure drag events fire reliably.
209
+ */
210
+ async function dragElementToElement(page, sourceBackendNodeId, targetBackendNodeId) {
211
+ const sourceCenter = await getElementCenter(page, sourceBackendNodeId);
212
+ const targetCenter = await getElementCenter(page, targetBackendNodeId);
213
+ // Move to source and press down
214
+ await page.mouse.move(sourceCenter.x, sourceCenter.y);
215
+ await page.mouse.down();
216
+ // Intermediate move to trigger dragstart (some browsers need movement to begin a drag)
217
+ await page.mouse.move(sourceCenter.x + (targetCenter.x - sourceCenter.x) * 0.25, sourceCenter.y + (targetCenter.y - sourceCenter.y) * 0.25, { steps: 5 });
218
+ await new Promise((resolve) => setTimeout(resolve, 50));
219
+ // Move to target
220
+ await page.mouse.move(targetCenter.x, targetCenter.y, { steps: 10 });
221
+ await new Promise((resolve) => setTimeout(resolve, 50));
222
+ // Release
223
+ await page.mouse.up();
224
+ }
160
225
  /**
161
226
  * Type text into an input element. Uses CDP to focus, optionally clears, then types via keyboard.
162
227
  */
@@ -236,8 +301,9 @@ async function submitFormByBackendNodeId(page, backendNodeId) {
236
301
  }
237
302
  }
238
303
  export function registerInteractionTools(server, deps) {
304
+ const tools = {};
239
305
  // ─── charlotte:click ───
240
- server.registerTool("charlotte:click", {
306
+ tools["charlotte:click"] = server.registerTool("charlotte:click", {
241
307
  description: "Click an interactive element on the page. Returns full page representation after the click.",
242
308
  inputSchema: {
243
309
  element_id: z.string().describe("Target element ID from page representation"),
@@ -245,14 +311,82 @@ export function registerInteractionTools(server, deps) {
245
311
  .enum(["left", "right", "double"])
246
312
  .optional()
247
313
  .describe('Click type: "left" (default), "right", "double"'),
314
+ modifiers: z
315
+ .array(z.enum(["ctrl", "shift", "alt", "meta"]))
316
+ .optional()
317
+ .describe('Modifier keys to hold during click: ["ctrl"], ["shift"], ["alt"], ["meta"], or combinations like ["ctrl", "shift"]'),
248
318
  },
249
- }, async ({ element_id, click_type }) => {
319
+ }, async ({ element_id, click_type, modifiers }) => {
250
320
  try {
251
321
  await deps.browserManager.ensureConnected();
252
322
  const { page, backendNodeId } = await resolveElement(deps, element_id);
253
323
  const clickVariant = click_type ?? "left";
254
- logger.info("Clicking element", { element_id, clickType: clickVariant });
255
- await waitForPossibleNavigation(page, () => clickElementByBackendNodeId(page, backendNodeId, clickVariant));
324
+ const activeModifiers = modifiers ?? [];
325
+ logger.info("Clicking element", {
326
+ element_id,
327
+ clickType: clickVariant,
328
+ modifiers: activeModifiers,
329
+ });
330
+ await waitForPossibleNavigation(page, () => clickElementByBackendNodeId(page, backendNodeId, clickVariant, activeModifiers));
331
+ const representation = await renderAfterAction(deps);
332
+ return formatPageResponse(representation);
333
+ }
334
+ catch (error) {
335
+ return handleToolError(error);
336
+ }
337
+ });
338
+ // ─── charlotte:click_at ───
339
+ tools["charlotte:click_at"] = server.registerTool("charlotte:click_at", {
340
+ description: "Click at specific page coordinates. Use when target elements are not in the accessibility tree (custom widgets, canvas, non-semantic interactive divs). Dispatches real CDP-level mouse events. Returns full page representation after the click.",
341
+ inputSchema: {
342
+ x: z.number().describe("X coordinate in page pixels"),
343
+ y: z.number().describe("Y coordinate in page pixels"),
344
+ click_type: z
345
+ .enum(["left", "right", "double"])
346
+ .optional()
347
+ .describe('Click type: "left" (default), "right", "double"'),
348
+ modifiers: z
349
+ .array(z.enum(["ctrl", "shift", "alt", "meta"]))
350
+ .optional()
351
+ .describe('Modifier keys to hold during click: ["ctrl"], ["shift"], ["alt"], ["meta"], or combinations'),
352
+ },
353
+ }, async ({ x, y, click_type, modifiers }) => {
354
+ try {
355
+ await deps.browserManager.ensureConnected();
356
+ const page = deps.pageManager.getActivePage();
357
+ const clickVariant = click_type ?? "left";
358
+ const activeModifiers = modifiers ?? [];
359
+ logger.info("Clicking at coordinates", {
360
+ x,
361
+ y,
362
+ clickType: clickVariant,
363
+ modifiers: activeModifiers,
364
+ });
365
+ await waitForPossibleNavigation(page, async () => {
366
+ // Hold down modifier keys
367
+ for (const modifier of activeModifiers) {
368
+ const modifierKey = MODIFIER_KEY_MAP[modifier];
369
+ await page.keyboard.down(modifierKey);
370
+ }
371
+ try {
372
+ if (clickVariant === "right") {
373
+ await page.mouse.click(x, y, { button: "right" });
374
+ }
375
+ else if (clickVariant === "double") {
376
+ await page.mouse.click(x, y, { clickCount: 2 });
377
+ }
378
+ else {
379
+ await page.mouse.click(x, y);
380
+ }
381
+ }
382
+ finally {
383
+ // Release modifier keys in reverse order
384
+ for (const modifier of [...activeModifiers].reverse()) {
385
+ const modifierKey = MODIFIER_KEY_MAP[modifier];
386
+ await page.keyboard.up(modifierKey);
387
+ }
388
+ }
389
+ });
256
390
  const representation = await renderAfterAction(deps);
257
391
  return formatPageResponse(representation);
258
392
  }
@@ -261,7 +395,7 @@ export function registerInteractionTools(server, deps) {
261
395
  }
262
396
  });
263
397
  // ─── charlotte:type ───
264
- server.registerTool("charlotte:type", {
398
+ tools["charlotte:type"] = server.registerTool("charlotte:type", {
265
399
  description: "Type text into an input element. Returns full page representation after typing.",
266
400
  inputSchema: {
267
401
  element_id: z.string().describe("Target input element ID"),
@@ -296,7 +430,7 @@ export function registerInteractionTools(server, deps) {
296
430
  }
297
431
  });
298
432
  // ─── charlotte:select ───
299
- server.registerTool("charlotte:select", {
433
+ tools["charlotte:select"] = server.registerTool("charlotte:select", {
300
434
  description: "Select an option in a select/dropdown element. Returns full page representation after selection.",
301
435
  inputSchema: {
302
436
  element_id: z.string().describe("Target select element ID"),
@@ -316,7 +450,7 @@ export function registerInteractionTools(server, deps) {
316
450
  }
317
451
  });
318
452
  // ─── charlotte:toggle ───
319
- server.registerTool("charlotte:toggle", {
453
+ tools["charlotte:toggle"] = server.registerTool("charlotte:toggle", {
320
454
  description: "Toggle a checkbox or switch element. Returns full page representation after toggle.",
321
455
  inputSchema: {
322
456
  element_id: z.string().describe("Target checkbox or switch element ID"),
@@ -337,7 +471,7 @@ export function registerInteractionTools(server, deps) {
337
471
  }
338
472
  });
339
473
  // ─── charlotte:submit ───
340
- server.registerTool("charlotte:submit", {
474
+ tools["charlotte:submit"] = server.registerTool("charlotte:submit", {
341
475
  description: "Submit a form. Can submit by form ID or by clicking its submit button. Returns full page representation after submission.",
342
476
  inputSchema: {
343
477
  form_id: z.string().describe("Form ID from page representation"),
@@ -378,7 +512,7 @@ export function registerInteractionTools(server, deps) {
378
512
  }
379
513
  });
380
514
  // ─── charlotte:scroll ───
381
- server.registerTool("charlotte:scroll", {
515
+ tools["charlotte:scroll"] = server.registerTool("charlotte:scroll", {
382
516
  description: "Scroll the page or a specific container. Returns full page representation after scrolling.",
383
517
  inputSchema: {
384
518
  direction: z
@@ -476,7 +610,7 @@ export function registerInteractionTools(server, deps) {
476
610
  }
477
611
  });
478
612
  // ─── charlotte:hover ───
479
- server.registerTool("charlotte:hover", {
613
+ tools["charlotte:hover"] = server.registerTool("charlotte:hover", {
480
614
  description: "Hover over an element to trigger hover states. Returns full page representation after hover.",
481
615
  inputSchema: {
482
616
  element_id: z.string().describe("Target element ID"),
@@ -494,8 +628,31 @@ export function registerInteractionTools(server, deps) {
494
628
  return handleToolError(error);
495
629
  }
496
630
  });
631
+ // ─── charlotte:drag ───
632
+ tools["charlotte:drag"] = server.registerTool("charlotte:drag", {
633
+ description: "Drag an element to another element. Uses mouse primitives to simulate drag-and-drop. Returns full page representation after the drag.",
634
+ inputSchema: {
635
+ source_id: z.string().describe("Element ID of the drag source"),
636
+ target_id: z.string().describe("Element ID of the drop target"),
637
+ },
638
+ }, async ({ source_id, target_id }) => {
639
+ try {
640
+ await deps.browserManager.ensureConnected();
641
+ const { page, backendNodeId: sourceNodeId } = await resolveElement(deps, source_id);
642
+ const { backendNodeId: targetNodeId } = await resolveElement(deps, target_id);
643
+ logger.info("Dragging element", { source_id, target_id });
644
+ await dragElementToElement(page, sourceNodeId, targetNodeId);
645
+ // Brief settle for DOM updates after drop
646
+ await new Promise((resolve) => setTimeout(resolve, 100));
647
+ const representation = await renderAfterAction(deps);
648
+ return formatPageResponse(representation);
649
+ }
650
+ catch (error) {
651
+ return handleToolError(error);
652
+ }
653
+ });
497
654
  // ─── charlotte:key ───
498
- server.registerTool("charlotte:key", {
655
+ tools["charlotte:key"] = server.registerTool("charlotte:key", {
499
656
  description: 'Press a keyboard key, optionally with modifiers. Returns full page representation after keypress.',
500
657
  inputSchema: {
501
658
  key: z
@@ -533,7 +690,7 @@ export function registerInteractionTools(server, deps) {
533
690
  }
534
691
  });
535
692
  // ─── charlotte:wait_for ───
536
- server.registerTool("charlotte:wait_for", {
693
+ tools["charlotte:wait_for"] = server.registerTool("charlotte:wait_for", {
537
694
  description: "Wait for a condition to be met on the page. Returns page representation when the condition is satisfied, or a TIMEOUT error.",
538
695
  inputSchema: {
539
696
  element_id: z
@@ -603,13 +760,8 @@ export function registerInteractionTools(server, deps) {
603
760
  return handleToolError(error);
604
761
  }
605
762
  });
763
+ return tools;
606
764
  }
607
- const MODIFIER_KEY_MAP = {
608
- ctrl: "Control",
609
- shift: "Shift",
610
- alt: "Alt",
611
- meta: "Meta",
612
- };
613
765
  /**
614
766
  * Poll for complex wait_for conditions that may involve element state checks.
615
767
  */
@@ -643,7 +795,7 @@ async function pollWaitForCondition(deps, page, condition, timeoutMs) {
643
795
  if (allSatisfied && condition.js) {
644
796
  try {
645
797
  const jsResult = await page.evaluate((expression) => {
646
- return !!eval(expression);
798
+ return !!new Function('return ' + expression)();
647
799
  }, condition.js);
648
800
  if (!jsResult)
649
801
  allSatisfied = false;
@@ -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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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The charlotte:tools meta-tool for runtime tool group management.
3
+ *
4
+ * Always registered regardless of profile. Allows agents to discover
5
+ * available groups and enable/disable them at runtime.
6
+ */
7
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import type { RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js";
9
+ export type ToolRegistry = Record<string, RegisteredTool>;
10
+ /**
11
+ * Register the charlotte:tools meta-tool.
12
+ */
13
+ export declare function registerMetaTool(server: McpServer, registry: ToolRegistry): RegisteredTool;
14
+ //# sourceMappingURL=meta-tool.d.ts.map
@@ -0,0 +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;AAiC1D;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,YAAY,GACrB,cAAc,CAwGhB"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * The charlotte:tools meta-tool for runtime tool group management.
3
+ *
4
+ * Always registered regardless of profile. Allows agents to discover
5
+ * available groups and enable/disable them at runtime.
6
+ */
7
+ import { z } from "zod";
8
+ import { TOOL_GROUPS, ALL_GROUP_NAMES, GROUP_DESCRIPTIONS, } from "./tool-groups.js";
9
+ function getGroupStatus(registry) {
10
+ const status = {};
11
+ for (const groupName of ALL_GROUP_NAMES) {
12
+ const toolNames = TOOL_GROUPS[groupName];
13
+ const enabledCount = toolNames.filter((name) => registry[name]?.enabled === true).length;
14
+ status[groupName] = {
15
+ enabled: enabledCount === toolNames.length,
16
+ enabled_count: enabledCount,
17
+ total_count: toolNames.length,
18
+ tools: [...toolNames],
19
+ description: GROUP_DESCRIPTIONS[groupName],
20
+ };
21
+ }
22
+ return status;
23
+ }
24
+ /**
25
+ * Register the charlotte:tools meta-tool.
26
+ */
27
+ export function registerMetaTool(server, registry) {
28
+ return server.registerTool("charlotte:tools", {
29
+ description: "Manage Charlotte tool visibility. Lists available tool groups and their " +
30
+ "status. Use 'enable' or 'disable' to control which tools are loaded. " +
31
+ "Disabled tools don't appear in the tool list — enable a group to access its tools. " +
32
+ "Groups: 'interaction' for form filling, clicking, and drag-and-drop. " +
33
+ "'session' for cookie/auth management, tab switching, viewport, and network. " +
34
+ "'dev_mode' for local development serving and audits. " +
35
+ "'evaluate' for JavaScript execution. " +
36
+ "'monitoring' for console and network request logs. " +
37
+ "'dialog' for JavaScript dialog handling.",
38
+ inputSchema: {
39
+ action: z
40
+ .enum(["list", "enable", "disable"])
41
+ .optional()
42
+ .describe('"list" (default) — show all groups and status. "enable"/"disable" — toggle a group.'),
43
+ group: z
44
+ .enum(ALL_GROUP_NAMES)
45
+ .optional()
46
+ .describe("Tool group to enable or disable"),
47
+ },
48
+ }, async ({ action, group }) => {
49
+ const effectiveAction = action ?? "list";
50
+ if ((effectiveAction === "enable" || effectiveAction === "disable") && !group) {
51
+ return {
52
+ content: [
53
+ {
54
+ type: "text",
55
+ text: JSON.stringify({
56
+ error: "group is required for enable/disable actions",
57
+ }),
58
+ },
59
+ ],
60
+ isError: true,
61
+ };
62
+ }
63
+ if (effectiveAction === "enable" && group) {
64
+ const toolNames = TOOL_GROUPS[group];
65
+ let enabled = 0;
66
+ for (const name of toolNames) {
67
+ const tool = registry[name];
68
+ if (tool && !tool.enabled) {
69
+ tool.enable();
70
+ enabled++;
71
+ }
72
+ }
73
+ return {
74
+ content: [
75
+ {
76
+ type: "text",
77
+ text: JSON.stringify({
78
+ action: "enable",
79
+ group,
80
+ tools_enabled: enabled,
81
+ tools: [...toolNames],
82
+ }),
83
+ },
84
+ ],
85
+ };
86
+ }
87
+ if (effectiveAction === "disable" && group) {
88
+ const toolNames = TOOL_GROUPS[group];
89
+ let disabled = 0;
90
+ for (const name of toolNames) {
91
+ const tool = registry[name];
92
+ if (tool?.enabled) {
93
+ tool.disable();
94
+ disabled++;
95
+ }
96
+ }
97
+ return {
98
+ content: [
99
+ {
100
+ type: "text",
101
+ text: JSON.stringify({
102
+ action: "disable",
103
+ group,
104
+ tools_disabled: disabled,
105
+ tools: [...toolNames],
106
+ }),
107
+ },
108
+ ],
109
+ };
110
+ }
111
+ // Default: list
112
+ const status = getGroupStatus(registry);
113
+ return {
114
+ content: [
115
+ {
116
+ type: "text",
117
+ text: JSON.stringify({ groups: status }),
118
+ },
119
+ ],
120
+ };
121
+ });
122
+ }
123
+ //# sourceMappingURL=meta-tool.js.map
@@ -0,0 +1 @@
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,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAC3C,CAAC,MAAM,CAAC;QACT,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,CAC9B,MAAiB,EACjB,QAAsB;IAEtB,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,CAAC,qFAAqF,CAAC;YAClG,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,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,MAAM,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,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,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,EAAE,CAAC;oBACf,QAAQ,EAAE,CAAC;gBACb,CAAC;YACH,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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer, RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolDependencies } from "./tool-helpers.js";
3
+ export declare function registerMonitoringTools(server: McpServer, deps: ToolDependencies): Record<string, RegisteredTool>;
4
+ //# sourceMappingURL=monitoring.d.ts.map
@@ -0,0 +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,CAgKhC"}