ScuttleBot

scuttlebot / tests / e2e / node_modules / playwright / lib / mcp / browser / browserServerBackend.js
Blame History Raw 85 lines
1
"use strict";
2
var __defProp = Object.defineProperty;
3
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
var __getOwnPropNames = Object.getOwnPropertyNames;
5
var __hasOwnProp = Object.prototype.hasOwnProperty;
6
var __export = (target, all) => {
7
for (var name in all)
8
__defProp(target, name, { get: all[name], enumerable: true });
9
};
10
var __copyProps = (to, from, except, desc) => {
11
if (from && typeof from === "object" || typeof from === "function") {
12
for (let key of __getOwnPropNames(from))
13
if (!__hasOwnProp.call(to, key) && key !== except)
14
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
}
16
return to;
17
};
18
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
var browserServerBackend_exports = {};
20
__export(browserServerBackend_exports, {
21
BrowserServerBackend: () => BrowserServerBackend
22
});
23
module.exports = __toCommonJS(browserServerBackend_exports);
24
var import_context = require("./context");
25
var import_log = require("../log");
26
var import_response = require("./response");
27
var import_sessionLog = require("./sessionLog");
28
var import_tools = require("./tools");
29
var import_tool = require("../sdk/tool");
30
class BrowserServerBackend {
31
constructor(config, factory) {
32
this._config = config;
33
this._browserContextFactory = factory;
34
this._tools = (0, import_tools.filteredTools)(config);
35
}
36
async initialize(clientInfo) {
37
this._sessionLog = this._config.saveSession ? await import_sessionLog.SessionLog.create(this._config, clientInfo) : void 0;
38
this._context = new import_context.Context({
39
config: this._config,
40
browserContextFactory: this._browserContextFactory,
41
sessionLog: this._sessionLog,
42
clientInfo
43
});
44
}
45
async listTools() {
46
return this._tools.map((tool) => (0, import_tool.toMcpTool)(tool.schema));
47
}
48
async callTool(name, rawArguments) {
49
const tool = this._tools.find((tool2) => tool2.schema.name === name);
50
if (!tool) {
51
return {
52
content: [{ type: "text", text: `### Error
53
Tool "${name}" not found` }],
54
isError: true
55
};
56
}
57
const parsedArguments = tool.schema.inputSchema.parse(rawArguments || {});
58
const context = this._context;
59
const response = import_response.Response.create(context, name, parsedArguments);
60
context.setRunningTool(name);
61
let responseObject;
62
try {
63
await tool.handle(context, parsedArguments, response);
64
responseObject = await response.build();
65
this._sessionLog?.logResponse(name, parsedArguments, responseObject);
66
} catch (error) {
67
return {
68
content: [{ type: "text", text: `### Error
69
${String(error)}` }],
70
isError: true
71
};
72
} finally {
73
context.setRunningTool(void 0);
74
}
75
return responseObject;
76
}
77
serverClosed() {
78
void this._context?.dispose().catch(import_log.logUnhandledError);
79
}
80
}
81
// Annotate the CommonJS export names for ESM import in node:
82
0 && (module.exports = {
83
BrowserServerBackend
84
});
85

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button