fastbrowser_cli 1.0.14 → 1.0.16

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 (154) hide show
  1. package/.playwright-mcp/.gitignore +3 -0
  2. package/README.md +29 -3
  3. package/dist/fastbrowser_cli/fastbrowser_cli.js +52 -35
  4. package/dist/fastbrowser_cli/fastbrowser_cli.js.map +1 -1
  5. package/dist/fastbrowser_cli/libs/http-client.js +3 -7
  6. package/dist/fastbrowser_cli/libs/http-client.js.map +1 -1
  7. package/dist/fastbrowser_cli/libs/server-manager.d.ts.map +1 -1
  8. package/dist/fastbrowser_cli/libs/server-manager.js +30 -28
  9. package/dist/fastbrowser_cli/libs/server-manager.js.map +1 -1
  10. package/dist/fastbrowser_httpd/fastbrowser_httpd.js +22 -18
  11. package/dist/fastbrowser_httpd/fastbrowser_httpd.js.map +1 -1
  12. package/dist/fastbrowser_httpd/libs/routes.d.ts +2 -2
  13. package/dist/fastbrowser_httpd/libs/routes.d.ts.map +1 -1
  14. package/dist/fastbrowser_httpd/libs/routes.js +4 -8
  15. package/dist/fastbrowser_httpd/libs/routes.js.map +1 -1
  16. package/dist/fastbrowser_httpd/libs/tool-schemas.js +39 -42
  17. package/dist/fastbrowser_httpd/libs/tool-schemas.js.map +1 -1
  18. package/dist/fastbrowser_mcp/fastbrowser_mcp.d.ts.map +1 -1
  19. package/dist/fastbrowser_mcp/fastbrowser_mcp.js +270 -187
  20. package/dist/fastbrowser_mcp/fastbrowser_mcp.js.map +1 -1
  21. package/dist/fastbrowser_mcp/fastbrowser_types.d.ts +5 -0
  22. package/dist/fastbrowser_mcp/fastbrowser_types.d.ts.map +1 -0
  23. package/dist/fastbrowser_mcp/fastbrowser_types.js +2 -0
  24. package/dist/fastbrowser_mcp/fastbrowser_types.js.map +1 -0
  25. package/dist/{fastweb_mcp/libs/mcp_client.d.ts → fastbrowser_mcp/libs/mcp_client_TOREMOVE.d.ts} +6 -2
  26. package/dist/fastbrowser_mcp/libs/mcp_client_TOREMOVE.d.ts.map +1 -0
  27. package/dist/{src/libs/mcp_client.js → fastbrowser_mcp/libs/mcp_client_TOREMOVE.js} +15 -12
  28. package/dist/fastbrowser_mcp/libs/mcp_client_TOREMOVE.js.map +1 -0
  29. package/dist/{src/libs/mcp_client.d.ts → fastbrowser_mcp/libs/mcp_my_client.d.ts} +6 -2
  30. package/dist/fastbrowser_mcp/libs/mcp_my_client.d.ts.map +1 -0
  31. package/dist/{fastweb_mcp/libs/mcp_client.js → fastbrowser_mcp/libs/mcp_my_client.js} +15 -12
  32. package/dist/fastbrowser_mcp/libs/mcp_my_client.js.map +1 -0
  33. package/dist/fastbrowser_mcp/libs/mcp_proxy.d.ts +2 -2
  34. package/dist/fastbrowser_mcp/libs/mcp_proxy.d.ts.map +1 -1
  35. package/dist/fastbrowser_mcp/libs/mcp_proxy.js +9 -16
  36. package/dist/fastbrowser_mcp/libs/mcp_proxy.js.map +1 -1
  37. package/dist/fastbrowser_mcp/libs/mcp_target_helper.d.ts +35 -0
  38. package/dist/fastbrowser_mcp/libs/mcp_target_helper.d.ts.map +1 -0
  39. package/dist/fastbrowser_mcp/libs/mcp_target_helper.js +161 -0
  40. package/dist/fastbrowser_mcp/libs/mcp_target_helper.js.map +1 -0
  41. package/dist/fastbrowser_mcp/libs/playwright_a11y_helper.d.ts +28 -0
  42. package/dist/fastbrowser_mcp/libs/playwright_a11y_helper.d.ts.map +1 -0
  43. package/dist/fastbrowser_mcp/libs/playwright_a11y_helper.js +210 -0
  44. package/dist/fastbrowser_mcp/libs/playwright_a11y_helper.js.map +1 -0
  45. package/dist/fastbrowser_mcp/libs/response_formatter.d.ts +10 -0
  46. package/dist/fastbrowser_mcp/libs/response_formatter.d.ts.map +1 -0
  47. package/dist/fastbrowser_mcp/libs/response_formatter.js +155 -0
  48. package/dist/fastbrowser_mcp/libs/response_formatter.js.map +1 -0
  49. package/dist/fastbrowser_mcp/libs/schemas.js +14 -17
  50. package/dist/fastbrowser_mcp/libs/schemas.js.map +1 -1
  51. package/examples/mcp_client_playwright.ts +34 -0
  52. package/examples/welcometothejungle/wttj-job.ts +180 -0
  53. package/examples/welcometothejungle/wttj-search.ts +105 -0
  54. package/outputs/.gitignore +3 -0
  55. package/package.json +12 -8
  56. package/src/fastbrowser_cli/fastbrowser_cli.ts +34 -11
  57. package/src/fastbrowser_cli/libs/server-manager.ts +12 -3
  58. package/src/fastbrowser_httpd/fastbrowser_httpd.ts +16 -5
  59. package/src/fastbrowser_httpd/libs/routes.ts +2 -2
  60. package/src/fastbrowser_mcp/fastbrowser_mcp.ts +324 -150
  61. package/src/fastbrowser_mcp/fastbrowser_types.ts +4 -0
  62. package/src/fastbrowser_mcp/libs/{mcp_client.ts → mcp_client_TOREMOVE.ts} +13 -1
  63. package/src/fastbrowser_mcp/libs/mcp_my_client.ts +128 -0
  64. package/src/fastbrowser_mcp/libs/mcp_proxy.ts +2 -2
  65. package/src/fastbrowser_mcp/libs/mcp_target_helper.ts +164 -0
  66. package/src/fastbrowser_mcp/libs/playwright_a11y_helper.ts +249 -0
  67. package/src/fastbrowser_mcp/libs/response_formatter.ts +162 -0
  68. package/src/fastbrowser_mcp/libs/schemas.ts +2 -2
  69. package/tsconfig.build.json +13 -0
  70. package/tsconfig.json +10 -22
  71. package/dist/contrib/fastweb-cli/fastweb-cli.d.ts +0 -3
  72. package/dist/contrib/fastweb-cli/fastweb-cli.d.ts.map +0 -1
  73. package/dist/contrib/fastweb-cli/fastweb-cli.js +0 -151
  74. package/dist/contrib/fastweb-cli/fastweb-cli.js.map +0 -1
  75. package/dist/contrib/fastweb-cli/http-client.d.ts +0 -7
  76. package/dist/contrib/fastweb-cli/http-client.d.ts.map +0 -1
  77. package/dist/contrib/fastweb-cli/http-client.js +0 -51
  78. package/dist/contrib/fastweb-cli/http-client.js.map +0 -1
  79. package/dist/contrib/fastweb-http-server/fastweb-http-server.d.ts +0 -3
  80. package/dist/contrib/fastweb-http-server/fastweb-http-server.d.ts.map +0 -1
  81. package/dist/contrib/fastweb-http-server/fastweb-http-server.js +0 -82
  82. package/dist/contrib/fastweb-http-server/fastweb-http-server.js.map +0 -1
  83. package/dist/contrib/fastweb-http-server/routes.d.ts +0 -6
  84. package/dist/contrib/fastweb-http-server/routes.d.ts.map +0 -1
  85. package/dist/contrib/fastweb-http-server/routes.js +0 -41
  86. package/dist/contrib/fastweb-http-server/routes.js.map +0 -1
  87. package/dist/contrib/fastweb-http-server/tool-schemas.d.ts +0 -63
  88. package/dist/contrib/fastweb-http-server/tool-schemas.d.ts.map +0 -1
  89. package/dist/contrib/fastweb-http-server/tool-schemas.js +0 -61
  90. package/dist/contrib/fastweb-http-server/tool-schemas.js.map +0 -1
  91. package/dist/fastbrowser_mcp/libs/mcp_client.d.ts +0 -120
  92. package/dist/fastbrowser_mcp/libs/mcp_client.d.ts.map +0 -1
  93. package/dist/fastbrowser_mcp/libs/mcp_client.js +0 -83
  94. package/dist/fastbrowser_mcp/libs/mcp_client.js.map +0 -1
  95. package/dist/fastweb_cli/fastweb_cli.d.ts +0 -3
  96. package/dist/fastweb_cli/fastweb_cli.d.ts.map +0 -1
  97. package/dist/fastweb_cli/fastweb_cli.js +0 -254
  98. package/dist/fastweb_cli/fastweb_cli.js.map +0 -1
  99. package/dist/fastweb_cli/http-client.d.ts +0 -7
  100. package/dist/fastweb_cli/http-client.d.ts.map +0 -1
  101. package/dist/fastweb_cli/http-client.js +0 -51
  102. package/dist/fastweb_cli/http-client.js.map +0 -1
  103. package/dist/fastweb_cli/libs/http-client.d.ts +0 -7
  104. package/dist/fastweb_cli/libs/http-client.d.ts.map +0 -1
  105. package/dist/fastweb_cli/libs/http-client.js +0 -51
  106. package/dist/fastweb_cli/libs/http-client.js.map +0 -1
  107. package/dist/fastweb_cli/libs/server-manager.d.ts +0 -12
  108. package/dist/fastweb_cli/libs/server-manager.d.ts.map +0 -1
  109. package/dist/fastweb_cli/libs/server-manager.js +0 -194
  110. package/dist/fastweb_cli/libs/server-manager.js.map +0 -1
  111. package/dist/fastweb_http_server/fastweb_http_server.d.ts +0 -3
  112. package/dist/fastweb_http_server/fastweb_http_server.d.ts.map +0 -1
  113. package/dist/fastweb_http_server/fastweb_http_server.js +0 -82
  114. package/dist/fastweb_http_server/fastweb_http_server.js.map +0 -1
  115. package/dist/fastweb_http_server/libs/routes.d.ts +0 -6
  116. package/dist/fastweb_http_server/libs/routes.d.ts.map +0 -1
  117. package/dist/fastweb_http_server/libs/routes.js +0 -41
  118. package/dist/fastweb_http_server/libs/routes.js.map +0 -1
  119. package/dist/fastweb_http_server/libs/tool-schemas.d.ts +0 -72
  120. package/dist/fastweb_http_server/libs/tool-schemas.d.ts.map +0 -1
  121. package/dist/fastweb_http_server/libs/tool-schemas.js +0 -65
  122. package/dist/fastweb_http_server/libs/tool-schemas.js.map +0 -1
  123. package/dist/fastweb_http_server/routes.d.ts +0 -6
  124. package/dist/fastweb_http_server/routes.d.ts.map +0 -1
  125. package/dist/fastweb_http_server/routes.js +0 -41
  126. package/dist/fastweb_http_server/routes.js.map +0 -1
  127. package/dist/fastweb_http_server/tool-schemas.d.ts +0 -63
  128. package/dist/fastweb_http_server/tool-schemas.d.ts.map +0 -1
  129. package/dist/fastweb_http_server/tool-schemas.js +0 -61
  130. package/dist/fastweb_http_server/tool-schemas.js.map +0 -1
  131. package/dist/fastweb_mcp/fastweb_mcp.d.ts +0 -4
  132. package/dist/fastweb_mcp/fastweb_mcp.d.ts.map +0 -1
  133. package/dist/fastweb_mcp/fastweb_mcp.js +0 -417
  134. package/dist/fastweb_mcp/fastweb_mcp.js.map +0 -1
  135. package/dist/fastweb_mcp/libs/mcp_client.d.ts.map +0 -1
  136. package/dist/fastweb_mcp/libs/mcp_client.js.map +0 -1
  137. package/dist/fastweb_mcp/libs/mcp_proxy.d.ts +0 -10
  138. package/dist/fastweb_mcp/libs/mcp_proxy.d.ts.map +0 -1
  139. package/dist/fastweb_mcp/libs/mcp_proxy.js +0 -45
  140. package/dist/fastweb_mcp/libs/mcp_proxy.js.map +0 -1
  141. package/dist/fastweb_mcp/libs/schemas.d.ts +0 -28
  142. package/dist/fastweb_mcp/libs/schemas.d.ts.map +0 -1
  143. package/dist/fastweb_mcp/libs/schemas.js +0 -38
  144. package/dist/fastweb_mcp/libs/schemas.js.map +0 -1
  145. package/dist/src/fastweb_mcp.d.ts +0 -17
  146. package/dist/src/fastweb_mcp.d.ts.map +0 -1
  147. package/dist/src/fastweb_mcp.js +0 -342
  148. package/dist/src/fastweb_mcp.js.map +0 -1
  149. package/dist/src/libs/mcp_client.d.ts.map +0 -1
  150. package/dist/src/libs/mcp_client.js.map +0 -1
  151. package/dist/src/libs/mcp_proxy.d.ts +0 -10
  152. package/dist/src/libs/mcp_proxy.d.ts.map +0 -1
  153. package/dist/src/libs/mcp_proxy.js +0 -45
  154. package/dist/src/libs/mcp_proxy.js.map +0 -1
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=fastweb_http_server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastweb_http_server.d.ts","sourceRoot":"","sources":["../../src/fastweb_http_server/fastweb_http_server.ts"],"names":[],"mappings":""}
@@ -1,82 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- // node imports
8
- const node_path_1 = __importDefault(require("node:path"));
9
- // npm imports
10
- const commander_1 = require("commander");
11
- const express_1 = __importDefault(require("express"));
12
- // local imports
13
- const mcp_client_js_1 = require("../fastweb_mcp/libs/mcp_client.js");
14
- const routes_js_1 = require("./libs/routes.js");
15
- ///////////////////////////////////////////////////////////////////////////////
16
- ///////////////////////////////////////////////////////////////////////////////
17
- //
18
- ///////////////////////////////////////////////////////////////////////////////
19
- ///////////////////////////////////////////////////////////////////////////////
20
- class MainHelper {
21
- static async commandStart({ port, verbose = false, }) {
22
- // Spawn fastweb-mcp as a subprocess and hold a persistent MCP client to it.
23
- const fastwebMcpEntry = node_path_1.default.resolve(__dirname, '..', 'fastweb_mcp', 'fastweb_mcp.ts');
24
- const mcpClient = new mcp_client_js_1.McpClient({
25
- name: 'fastweb-http-server',
26
- version: '1.0.0',
27
- transport: {
28
- type: 'stdio',
29
- command: 'npx',
30
- args: ['tsx', fastwebMcpEntry, 'mcp_server'],
31
- },
32
- });
33
- console.error('Connecting to fastweb-mcp ...');
34
- await mcpClient.connect();
35
- console.error('MCP client connected');
36
- if (verbose) {
37
- const tools = await mcpClient.listTools();
38
- console.error('Tools available in fastweb-mcp:');
39
- for (const tool of tools) {
40
- console.error(`- ${tool.name}`);
41
- }
42
- }
43
- const app = (0, express_1.default)();
44
- app.use(express_1.default.json({ limit: '2mb' }));
45
- routes_js_1.Routes.register(app, mcpClient);
46
- const server = app.listen(port, () => {
47
- console.error(`fastweb-http-server listening on http://localhost:${port}`);
48
- });
49
- const shutdown = async (signal) => {
50
- console.error(`Received ${signal}, shutting down ...`);
51
- server.close();
52
- await mcpClient.close();
53
- process.exit(0);
54
- };
55
- process.on('SIGINT', () => { void shutdown('SIGINT'); });
56
- process.on('SIGTERM', () => { void shutdown('SIGTERM'); });
57
- }
58
- }
59
- ///////////////////////////////////////////////////////////////////////////////
60
- ///////////////////////////////////////////////////////////////////////////////
61
- //
62
- ///////////////////////////////////////////////////////////////////////////////
63
- ///////////////////////////////////////////////////////////////////////////////
64
- async function main() {
65
- const program = new commander_1.Command();
66
- program
67
- .name('fastweb-http-server')
68
- .description('Persistent HTTP server fronting fastweb-mcp')
69
- .option('-p, --port <number>', 'Port to listen on', '8787')
70
- .option('-v, --verbose', 'Enable verbose logging')
71
- .action(async (opts) => {
72
- const port = Number.parseInt(opts.port, 10);
73
- if (Number.isNaN(port) === true) {
74
- console.error(`Invalid --port: ${opts.port}`);
75
- process.exit(1);
76
- }
77
- await MainHelper.commandStart({ port, verbose: opts.verbose });
78
- });
79
- await program.parseAsync(process.argv);
80
- }
81
- void main();
82
- //# sourceMappingURL=fastweb_http_server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastweb_http_server.js","sourceRoot":"","sources":["../../src/fastweb_http_server/fastweb_http_server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Express } from 'express';
2
- import { McpClient } from '../../fastweb_mcp/libs/mcp_client.js';
3
- export declare class Routes {
4
- static register(app: Express, mcpClient: McpClient): void;
5
- }
6
- //# sourceMappingURL=routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/fastweb_http_server/libs/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AASjE,qBAAa,MAAM;IAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;CA6BzD"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Routes = void 0;
4
- const tool_schemas_js_1 = require("./tool-schemas.js");
5
- ///////////////////////////////////////////////////////////////////////////////
6
- ///////////////////////////////////////////////////////////////////////////////
7
- //
8
- ///////////////////////////////////////////////////////////////////////////////
9
- ///////////////////////////////////////////////////////////////////////////////
10
- class Routes {
11
- static register(app, mcpClient) {
12
- app.get('/health', (_req, res) => {
13
- res.json({ ok: true });
14
- });
15
- for (const entry of tool_schemas_js_1.TOOL_SCHEMAS) {
16
- const path = `/tools/${entry.routeName}`;
17
- app.post(path, async (request, response) => {
18
- // Validate body against the tool's Zod schema
19
- const parsed = entry.requestSchema.safeParse(request.body ?? {});
20
- if (parsed.success === false) {
21
- response.status(400).json({ error: parsed.error.flatten() });
22
- return;
23
- }
24
- try {
25
- const mcpResult = await mcpClient.callTool(entry.mcpToolName, parsed.data);
26
- // Narrow the MCP result to our uniform response shape.
27
- const toolResponse = tool_schemas_js_1.ToolResponseSchema.parse({
28
- content: mcpResult.content,
29
- });
30
- response.json(toolResponse);
31
- }
32
- catch (err) {
33
- const message = err instanceof Error ? err.message : String(err);
34
- response.status(500).json({ error: message });
35
- }
36
- });
37
- }
38
- }
39
- }
40
- exports.Routes = Routes;
41
- //# sourceMappingURL=routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/fastweb_http_server/libs/routes.ts"],"names":[],"mappings":";;;AAKA,uDAAqE;AAErE,+EAA+E;AAC/E,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAa,MAAM;IAClB,MAAM,CAAC,QAAQ,CAAC,GAAY,EAAE,SAAoB;QACjD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;YACnD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,8BAAY,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAgB,EAAE,QAAkB,EAAE,EAAE;gBAC7D,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACjE,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC7D,OAAO;gBACR,CAAC;gBAED,IAAI,CAAC;oBACJ,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAA+B,CAAC,CAAC;oBACtG,uDAAuD;oBACvD,MAAM,YAAY,GAAG,oCAAkB,CAAC,KAAK,CAAC;wBAC7C,OAAO,EAAE,SAAS,CAAC,OAAO;qBAC1B,CAAC,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD;AA9BD,wBA8BC"}
@@ -1,72 +0,0 @@
1
- import { z } from 'zod';
2
- export type { QuerySelectorInput, QuerySelectorsInput, QuerySelectorFirstInput, QuerySelectorsFirstInput } from '../../fastweb_mcp/libs/schemas.js';
3
- export declare const ListPagesRequestSchema: z.ZodObject<{}, z.core.$strict>;
4
- export type ListPagesRequest = z.infer<typeof ListPagesRequestSchema>;
5
- export declare const NewPageRequestSchema: z.ZodObject<{
6
- url: z.ZodString;
7
- }, z.core.$strip>;
8
- export type NewPageRequest = z.infer<typeof NewPageRequestSchema>;
9
- export declare const ClosePageRequestSchema: z.ZodObject<{
10
- pageId: z.ZodNumber;
11
- }, z.core.$strip>;
12
- export type ClosePageRequest = z.infer<typeof ClosePageRequestSchema>;
13
- export declare const NavigatePageRequestSchema: z.ZodObject<{
14
- url: z.ZodString;
15
- }, z.core.$strip>;
16
- export type NavigatePageRequest = z.infer<typeof NavigatePageRequestSchema>;
17
- export declare const ClickRequestSchema: z.ZodObject<{
18
- selector: z.ZodString;
19
- }, z.core.$strip>;
20
- export type ClickRequest = z.infer<typeof ClickRequestSchema>;
21
- export declare const FillFormElementSchema: z.ZodObject<{
22
- selector: z.ZodString;
23
- value: z.ZodString;
24
- }, z.core.$strip>;
25
- export type FillFormElement = z.infer<typeof FillFormElementSchema>;
26
- export declare const FillFormRequestSchema: z.ZodObject<{
27
- elements: z.ZodArray<z.ZodObject<{
28
- selector: z.ZodString;
29
- value: z.ZodString;
30
- }, z.core.$strip>>;
31
- }, z.core.$strip>;
32
- export type FillFormRequest = z.infer<typeof FillFormRequestSchema>;
33
- export declare const QuerySelectorsAllRequestSchema: z.ZodObject<{
34
- selectors: z.ZodArray<z.ZodObject<{
35
- selector: z.ZodString;
36
- limit: z.ZodDefault<z.ZodNumber>;
37
- withAncestors: z.ZodDefault<z.ZodBoolean>;
38
- }, z.core.$strip>>;
39
- }, z.core.$strip>;
40
- export type QuerySelectorsAllRequest = z.infer<typeof QuerySelectorsAllRequestSchema>;
41
- export declare const QuerySelectorRequestSchema: z.ZodObject<{
42
- selectors: z.ZodArray<z.ZodObject<{
43
- selector: z.ZodString;
44
- withAncestors: z.ZodDefault<z.ZodBoolean>;
45
- }, z.core.$strip>>;
46
- }, z.core.$strip>;
47
- export type QuerySelectorRequest = z.infer<typeof QuerySelectorRequestSchema>;
48
- export declare const PressKeysRequestSchema: z.ZodObject<{
49
- keys: z.ZodString;
50
- }, z.core.$strip>;
51
- export type PressKeysRequest = z.infer<typeof PressKeysRequestSchema>;
52
- export declare const TakeSnapshotRequestSchema: z.ZodObject<{}, z.core.$strict>;
53
- export type TakeSnapshotRequest = z.infer<typeof TakeSnapshotRequestSchema>;
54
- export declare const TextContentSchema: z.ZodObject<{
55
- type: z.ZodLiteral<"text">;
56
- text: z.ZodString;
57
- }, z.core.$strip>;
58
- export type TextContent = z.infer<typeof TextContentSchema>;
59
- export declare const ToolResponseSchema: z.ZodObject<{
60
- content: z.ZodArray<z.ZodObject<{
61
- type: z.ZodLiteral<"text">;
62
- text: z.ZodString;
63
- }, z.core.$strip>>;
64
- }, z.core.$strip>;
65
- export type ToolResponse = z.infer<typeof ToolResponseSchema>;
66
- export type ToolSchemaEntry = {
67
- routeName: string;
68
- mcpToolName: string;
69
- requestSchema: z.ZodType;
70
- };
71
- export declare const TOOL_SCHEMAS: ToolSchemaEntry[];
72
- //# sourceMappingURL=tool-schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../../src/fastweb_http_server/libs/tool-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAUpJ,eAAO,MAAM,sBAAsB,iCAAwB,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB;;;;;iBAEhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,8BAA8B;;;;;;iBAA4B,CAAC;AACxE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,0BAA0B;;;;;iBAAiC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,yBAAyB,iCAAwB,CAAC;AAC/D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAQ5E,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB;;;;;iBAE7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAW9D,MAAM,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAAe,EAWzC,CAAC"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOOL_SCHEMAS = exports.ToolResponseSchema = exports.TextContentSchema = exports.TakeSnapshotRequestSchema = exports.PressKeysRequestSchema = exports.QuerySelectorRequestSchema = exports.QuerySelectorsAllRequestSchema = exports.FillFormRequestSchema = exports.FillFormElementSchema = exports.ClickRequestSchema = exports.NavigatePageRequestSchema = exports.ClosePageRequestSchema = exports.NewPageRequestSchema = exports.ListPagesRequestSchema = void 0;
4
- // npm imports
5
- const zod_1 = require("zod");
6
- // local imports - reuse the authoritative query selector schemas
7
- const schemas_js_1 = require("../../fastweb_mcp/libs/schemas.js");
8
- ///////////////////////////////////////////////////////////////////////////////
9
- ///////////////////////////////////////////////////////////////////////////////
10
- // Request schemas — one per tool. Shapes mirror what the underlying
11
- // fastweb-mcp tools accept. For the proxied chrome-devtools-mcp tools,
12
- // the shapes come from chrome-devtools-mcp's tool reference.
13
- ///////////////////////////////////////////////////////////////////////////////
14
- ///////////////////////////////////////////////////////////////////////////////
15
- exports.ListPagesRequestSchema = zod_1.z.object({}).strict();
16
- exports.NewPageRequestSchema = zod_1.z.object({
17
- url: zod_1.z.string().describe('URL to open in the new page'),
18
- });
19
- exports.ClosePageRequestSchema = zod_1.z.object({
20
- pageId: zod_1.z.number().describe('The id of the page to close'),
21
- });
22
- exports.NavigatePageRequestSchema = zod_1.z.object({
23
- url: zod_1.z.string().describe('URL to navigate to'),
24
- });
25
- exports.ClickRequestSchema = zod_1.z.object({
26
- selector: zod_1.z.string().describe('Accessibility selector (e.g. "#1_3" or \'button[name="Submit"]\')'),
27
- });
28
- exports.FillFormElementSchema = zod_1.z.object({
29
- selector: zod_1.z.string(),
30
- value: zod_1.z.string(),
31
- });
32
- exports.FillFormRequestSchema = zod_1.z.object({
33
- elements: zod_1.z.array(exports.FillFormElementSchema).describe('Elements to fill, each with a selector and a value'),
34
- });
35
- exports.QuerySelectorsAllRequestSchema = schemas_js_1.QuerySelectorsInputSchema;
36
- exports.QuerySelectorRequestSchema = schemas_js_1.QuerySelectorsFirstInputSchema;
37
- exports.PressKeysRequestSchema = zod_1.z.object({
38
- keys: zod_1.z.string().describe("Comma-separated sequence of keys. E.g. 'Hello, Tab, Enter'"),
39
- });
40
- exports.TakeSnapshotRequestSchema = zod_1.z.object({}).strict();
41
- ///////////////////////////////////////////////////////////////////////////////
42
- ///////////////////////////////////////////////////////////////////////////////
43
- // Uniform response — narrowed mirror of MCP's CallToolResult
44
- ///////////////////////////////////////////////////////////////////////////////
45
- ///////////////////////////////////////////////////////////////////////////////
46
- exports.TextContentSchema = zod_1.z.object({
47
- type: zod_1.z.literal('text'),
48
- text: zod_1.z.string(),
49
- });
50
- exports.ToolResponseSchema = zod_1.z.object({
51
- content: zod_1.z.array(exports.TextContentSchema),
52
- });
53
- exports.TOOL_SCHEMAS = [
54
- { routeName: 'list_pages', mcpToolName: 'list_pages', requestSchema: exports.ListPagesRequestSchema },
55
- { routeName: 'new_page', mcpToolName: 'new_page', requestSchema: exports.NewPageRequestSchema },
56
- { routeName: 'close_page', mcpToolName: 'close_page', requestSchema: exports.ClosePageRequestSchema },
57
- { routeName: 'navigate_page', mcpToolName: 'navigate_page', requestSchema: exports.NavigatePageRequestSchema },
58
- { routeName: 'click', mcpToolName: 'click', requestSchema: exports.ClickRequestSchema },
59
- { routeName: 'fill_form', mcpToolName: 'fill_form', requestSchema: exports.FillFormRequestSchema },
60
- { routeName: 'query_selectors_all', mcpToolName: 'querySelectorsAll', requestSchema: exports.QuerySelectorsAllRequestSchema },
61
- { routeName: 'query_selectors', mcpToolName: 'querySelectors', requestSchema: exports.QuerySelectorRequestSchema },
62
- { routeName: 'press_keys', mcpToolName: 'pressKeys', requestSchema: exports.PressKeysRequestSchema },
63
- { routeName: 'take_snapshot', mcpToolName: 'take_snapshot', requestSchema: exports.TakeSnapshotRequestSchema },
64
- ];
65
- //# sourceMappingURL=tool-schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../../src/fastweb_http_server/libs/tool-schemas.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Express } from 'express';
2
- import { McpClient } from '../fastweb_mcp/libs/mcp_client.js';
3
- export declare class Routes {
4
- static register(app: Express, mcpClient: McpClient): void;
5
- }
6
- //# sourceMappingURL=routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/fastweb_http_server/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAS9D,qBAAa,MAAM;IAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;CA6BzD"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Routes = void 0;
4
- const tool_schemas_js_1 = require("./tool-schemas.js");
5
- ///////////////////////////////////////////////////////////////////////////////
6
- ///////////////////////////////////////////////////////////////////////////////
7
- //
8
- ///////////////////////////////////////////////////////////////////////////////
9
- ///////////////////////////////////////////////////////////////////////////////
10
- class Routes {
11
- static register(app, mcpClient) {
12
- app.get('/health', (_req, res) => {
13
- res.json({ ok: true });
14
- });
15
- for (const entry of tool_schemas_js_1.TOOL_SCHEMAS) {
16
- const path = `/tools/${entry.routeName}`;
17
- app.post(path, async (req, res) => {
18
- // Validate body against the tool's Zod schema
19
- const parsed = entry.requestSchema.safeParse(req.body ?? {});
20
- if (parsed.success === false) {
21
- res.status(400).json({ error: parsed.error.flatten() });
22
- return;
23
- }
24
- try {
25
- const mcpResult = await mcpClient.callTool(entry.mcpToolName, parsed.data);
26
- // Narrow the MCP result to our uniform response shape.
27
- const response = tool_schemas_js_1.ToolResponseSchema.parse({
28
- content: mcpResult.content,
29
- });
30
- res.json(response);
31
- }
32
- catch (err) {
33
- const message = err instanceof Error ? err.message : String(err);
34
- res.status(500).json({ error: message });
35
- }
36
- });
37
- }
38
- }
39
- }
40
- exports.Routes = Routes;
41
- //# sourceMappingURL=routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/fastweb_http_server/routes.ts"],"names":[],"mappings":";;;AAKA,uDAAqE;AAErE,+EAA+E;AAC/E,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAa,MAAM;IAClB,MAAM,CAAC,QAAQ,CAAC,GAAY,EAAE,SAAoB;QACjD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;YACnD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,8BAAY,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;gBACpD,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACxD,OAAO;gBACR,CAAC;gBAED,IAAI,CAAC;oBACJ,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAA+B,CAAC,CAAC;oBACtG,uDAAuD;oBACvD,MAAM,QAAQ,GAAG,oCAAkB,CAAC,KAAK,CAAC;wBACzC,OAAO,EAAE,SAAS,CAAC,OAAO;qBAC1B,CAAC,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD;AA9BD,wBA8BC"}
@@ -1,63 +0,0 @@
1
- import { z } from 'zod';
2
- export type { QuerySelectorInput, QuerySelectorsInput } from '../fastweb_mcp/fastweb_mcp.js';
3
- export declare const ListPagesRequestSchema: z.ZodObject<{}, z.core.$strict>;
4
- export type ListPagesRequest = z.infer<typeof ListPagesRequestSchema>;
5
- export declare const NewPageRequestSchema: z.ZodObject<{
6
- url: z.ZodString;
7
- }, z.core.$strip>;
8
- export type NewPageRequest = z.infer<typeof NewPageRequestSchema>;
9
- export declare const ClosePageRequestSchema: z.ZodObject<{
10
- pageId: z.ZodNumber;
11
- }, z.core.$strip>;
12
- export type ClosePageRequest = z.infer<typeof ClosePageRequestSchema>;
13
- export declare const NavigatePageRequestSchema: z.ZodObject<{
14
- url: z.ZodString;
15
- }, z.core.$strip>;
16
- export type NavigatePageRequest = z.infer<typeof NavigatePageRequestSchema>;
17
- export declare const ClickRequestSchema: z.ZodObject<{
18
- uid: z.ZodString;
19
- }, z.core.$strip>;
20
- export type ClickRequest = z.infer<typeof ClickRequestSchema>;
21
- export declare const FillFormElementSchema: z.ZodObject<{
22
- uid: z.ZodString;
23
- value: z.ZodString;
24
- }, z.core.$strip>;
25
- export type FillFormElement = z.infer<typeof FillFormElementSchema>;
26
- export declare const FillFormRequestSchema: z.ZodObject<{
27
- elements: z.ZodArray<z.ZodObject<{
28
- uid: z.ZodString;
29
- value: z.ZodString;
30
- }, z.core.$strip>>;
31
- }, z.core.$strip>;
32
- export type FillFormRequest = z.infer<typeof FillFormRequestSchema>;
33
- export declare const QuerySelectorsAllRequestSchema: z.ZodObject<{
34
- selectors: z.ZodArray<z.ZodObject<{
35
- selector: z.ZodString;
36
- limit: z.ZodDefault<z.ZodNumber>;
37
- withAncestors: z.ZodDefault<z.ZodBoolean>;
38
- }, z.core.$strip>>;
39
- }, z.core.$strip>;
40
- export type QuerySelectorsAllRequest = z.infer<typeof QuerySelectorsAllRequestSchema>;
41
- export declare const PressKeysRequestSchema: z.ZodObject<{
42
- keys: z.ZodString;
43
- }, z.core.$strip>;
44
- export type PressKeysRequest = z.infer<typeof PressKeysRequestSchema>;
45
- export declare const TextContentSchema: z.ZodObject<{
46
- type: z.ZodLiteral<"text">;
47
- text: z.ZodString;
48
- }, z.core.$strip>;
49
- export type TextContent = z.infer<typeof TextContentSchema>;
50
- export declare const ToolResponseSchema: z.ZodObject<{
51
- content: z.ZodArray<z.ZodObject<{
52
- type: z.ZodLiteral<"text">;
53
- text: z.ZodString;
54
- }, z.core.$strip>>;
55
- }, z.core.$strip>;
56
- export type ToolResponse = z.infer<typeof ToolResponseSchema>;
57
- export type ToolSchemaEntry = {
58
- routeName: string;
59
- mcpToolName: string;
60
- requestSchema: z.ZodType;
61
- };
62
- export declare const TOOL_SCHEMAS: ToolSchemaEntry[];
63
- //# sourceMappingURL=tool-schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/fastweb_http_server/tool-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAU7F,eAAO,MAAM,sBAAsB,iCAAwB,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB;;;;;iBAEhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,8BAA8B;;;;;;iBAA4B,CAAC;AACxE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAQtE,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB;;;;;iBAE7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAW9D,MAAM,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAAe,EASzC,CAAC"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOOL_SCHEMAS = exports.ToolResponseSchema = exports.TextContentSchema = exports.PressKeysRequestSchema = exports.QuerySelectorsAllRequestSchema = exports.FillFormRequestSchema = exports.FillFormElementSchema = exports.ClickRequestSchema = exports.NavigatePageRequestSchema = exports.ClosePageRequestSchema = exports.NewPageRequestSchema = exports.ListPagesRequestSchema = void 0;
4
- // npm imports
5
- const zod_1 = require("zod");
6
- // local imports - reuse the authoritative query selector schemas from the main module
7
- const fastweb_mcp_js_1 = require("../fastweb_mcp/fastweb_mcp.js");
8
- ///////////////////////////////////////////////////////////////////////////////
9
- ///////////////////////////////////////////////////////////////////////////////
10
- // Request schemas — one per tool. Shapes mirror what the underlying
11
- // fastweb-mcp tools accept. For the proxied chrome-devtools-mcp tools,
12
- // the shapes come from chrome-devtools-mcp's tool reference.
13
- ///////////////////////////////////////////////////////////////////////////////
14
- ///////////////////////////////////////////////////////////////////////////////
15
- exports.ListPagesRequestSchema = zod_1.z.object({}).strict();
16
- exports.NewPageRequestSchema = zod_1.z.object({
17
- url: zod_1.z.string().describe('URL to open in the new page'),
18
- });
19
- exports.ClosePageRequestSchema = zod_1.z.object({
20
- pageId: zod_1.z.number().describe('The id of the page to close'),
21
- });
22
- exports.NavigatePageRequestSchema = zod_1.z.object({
23
- url: zod_1.z.string().describe('URL to navigate to'),
24
- });
25
- exports.ClickRequestSchema = zod_1.z.object({
26
- uid: zod_1.z.string().describe('Accessibility node uid to click'),
27
- });
28
- exports.FillFormElementSchema = zod_1.z.object({
29
- uid: zod_1.z.string(),
30
- value: zod_1.z.string(),
31
- });
32
- exports.FillFormRequestSchema = zod_1.z.object({
33
- elements: zod_1.z.array(exports.FillFormElementSchema).describe('Elements to fill, each with a uid and a value'),
34
- });
35
- exports.QuerySelectorsAllRequestSchema = fastweb_mcp_js_1.QuerySelectorsInputSchema;
36
- exports.PressKeysRequestSchema = zod_1.z.object({
37
- keys: zod_1.z.string().describe("Comma-separated sequence of keys. E.g. 'Hello, Tab, Enter'"),
38
- });
39
- ///////////////////////////////////////////////////////////////////////////////
40
- ///////////////////////////////////////////////////////////////////////////////
41
- // Uniform response — narrowed mirror of MCP's CallToolResult
42
- ///////////////////////////////////////////////////////////////////////////////
43
- ///////////////////////////////////////////////////////////////////////////////
44
- exports.TextContentSchema = zod_1.z.object({
45
- type: zod_1.z.literal('text'),
46
- text: zod_1.z.string(),
47
- });
48
- exports.ToolResponseSchema = zod_1.z.object({
49
- content: zod_1.z.array(exports.TextContentSchema),
50
- });
51
- exports.TOOL_SCHEMAS = [
52
- { routeName: 'list_pages', mcpToolName: 'list_pages', requestSchema: exports.ListPagesRequestSchema },
53
- { routeName: 'new_page', mcpToolName: 'new_page', requestSchema: exports.NewPageRequestSchema },
54
- { routeName: 'close_page', mcpToolName: 'close_page', requestSchema: exports.ClosePageRequestSchema },
55
- { routeName: 'navigate_page', mcpToolName: 'navigate_page', requestSchema: exports.NavigatePageRequestSchema },
56
- { routeName: 'click', mcpToolName: 'click', requestSchema: exports.ClickRequestSchema },
57
- { routeName: 'fill_form', mcpToolName: 'fill_form', requestSchema: exports.FillFormRequestSchema },
58
- { routeName: 'query_selectors_all', mcpToolName: 'querySelectorsAll', requestSchema: exports.QuerySelectorsAllRequestSchema },
59
- { routeName: 'press_keys', mcpToolName: 'pressKeys', requestSchema: exports.PressKeysRequestSchema },
60
- ];
61
- //# sourceMappingURL=tool-schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/fastweb_http_server/tool-schemas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { QuerySelectorInputSchema, QuerySelectorsInputSchema, QuerySelectorFirstInputSchema, QuerySelectorsFirstInputSchema, type QuerySelectorInput, type QuerySelectorsInput, type QuerySelectorFirstInput, type QuerySelectorsFirstInput } from "./libs/schemas.js";
3
- export { QuerySelectorInputSchema, QuerySelectorsInputSchema, QuerySelectorFirstInputSchema, QuerySelectorsFirstInputSchema, type QuerySelectorInput, type QuerySelectorsInput, type QuerySelectorFirstInput, type QuerySelectorsFirstInput, };
4
- //# sourceMappingURL=fastweb_mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastweb_mcp.d.ts","sourceRoot":"","sources":["../../src/fastweb_mcp/fastweb_mcp.ts"],"names":[],"mappings":";AAcA,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC7B,CAAC"}