browser-devtools-mcp 0.1.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +93 -21
- package/README.md +98 -18
- package/dist/cli.js +53 -1721
- package/dist/core.js +764 -0
- package/dist/daemon-server.js +1 -338
- package/dist/index.d.ts +2 -0
- package/dist/index.js +210 -80
- package/dist/otel/otel-initializer.bundle.js +0 -1
- package/dist/tools/a11y/index.d.ts +2 -0
- package/dist/tools/content/index.d.ts +2 -0
- package/dist/tools/debug/index.d.ts +2 -0
- package/dist/tools/figma/compare/index.d.ts +56 -0
- package/dist/tools/figma/compare/types.d.ts +15 -0
- package/dist/tools/figma/index.d.ts +2 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/interaction/index.d.ts +2 -0
- package/dist/tools/navigation/index.d.ts +2 -0
- package/dist/tools/o11y/index.d.ts +2 -0
- package/dist/tools/react/index.d.ts +2 -0
- package/dist/tools/run/index.d.ts +2 -0
- package/dist/tools/stub/index.d.ts +2 -0
- package/dist/tools/sync/index.d.ts +2 -0
- package/dist/tools/types.d.ts +21 -0
- package/dist/types.d.ts +78 -0
- package/package.json +11 -11
- package/dist/browser.js +0 -213
- package/dist/browser.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/config.js +0 -96
- package/dist/config.js.map +0 -1
- package/dist/context.js +0 -298
- package/dist/context.js.map +0 -1
- package/dist/daemon-server.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.js +0 -97
- package/dist/logger.js.map +0 -1
- package/dist/mcp-server.js +0 -401
- package/dist/mcp-server.js.map +0 -1
- package/dist/otel/otel-controller.js +0 -323
- package/dist/otel/otel-controller.js.map +0 -1
- package/dist/otel/otel-initializer.bundle.js.map +0 -7
- package/dist/otel/otel-proxy.js +0 -407
- package/dist/otel/otel-proxy.js.map +0 -1
- package/dist/server-info.js +0 -186
- package/dist/server-info.js.map +0 -1
- package/dist/tools/a11y/index.js +0 -7
- package/dist/tools/a11y/index.js.map +0 -1
- package/dist/tools/a11y/take-aria-snapshot.js +0 -54
- package/dist/tools/a11y/take-aria-snapshot.js.map +0 -1
- package/dist/tools/a11y/take-ax-tree-snapshot.js +0 -850
- package/dist/tools/a11y/take-ax-tree-snapshot.js.map +0 -1
- package/dist/tools/content/get-as-html.js +0 -164
- package/dist/tools/content/get-as-html.js.map +0 -1
- package/dist/tools/content/get-as-text.js +0 -76
- package/dist/tools/content/get-as-text.js.map +0 -1
- package/dist/tools/content/index.js +0 -14
- package/dist/tools/content/index.js.map +0 -1
- package/dist/tools/content/save-as-pdf.js +0 -119
- package/dist/tools/content/save-as-pdf.js.map +0 -1
- package/dist/tools/content/take-screenshot.js +0 -272
- package/dist/tools/content/take-screenshot.js.map +0 -1
- package/dist/tools/figma/compare/compare-image-embedding.js +0 -159
- package/dist/tools/figma/compare/compare-image-embedding.js.map +0 -1
- package/dist/tools/figma/compare/compare-mssim.js +0 -98
- package/dist/tools/figma/compare/compare-mssim.js.map +0 -1
- package/dist/tools/figma/compare/compare-text-embedding.js +0 -291
- package/dist/tools/figma/compare/compare-text-embedding.js.map +0 -1
- package/dist/tools/figma/compare/index.js +0 -139
- package/dist/tools/figma/compare/index.js.map +0 -1
- package/dist/tools/figma/compare/types.js +0 -3
- package/dist/tools/figma/compare/types.js.map +0 -1
- package/dist/tools/figma/compare/vector.js +0 -46
- package/dist/tools/figma/compare/vector.js.map +0 -1
- package/dist/tools/figma/compare-page-with-design.js +0 -240
- package/dist/tools/figma/compare-page-with-design.js.map +0 -1
- package/dist/tools/figma/figma-service.js +0 -134
- package/dist/tools/figma/figma-service.js.map +0 -1
- package/dist/tools/figma/index.js +0 -6
- package/dist/tools/figma/index.js.map +0 -1
- package/dist/tools/index.js +0 -41
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/interaction/click.js +0 -29
- package/dist/tools/interaction/click.js.map +0 -1
- package/dist/tools/interaction/drag.js +0 -41
- package/dist/tools/interaction/drag.js.map +0 -1
- package/dist/tools/interaction/fill.js +0 -28
- package/dist/tools/interaction/fill.js.map +0 -1
- package/dist/tools/interaction/hover.js +0 -29
- package/dist/tools/interaction/hover.js.map +0 -1
- package/dist/tools/interaction/index.js +0 -24
- package/dist/tools/interaction/index.js.map +0 -1
- package/dist/tools/interaction/press-key.js +0 -99
- package/dist/tools/interaction/press-key.js.map +0 -1
- package/dist/tools/interaction/resize-viewport.js +0 -110
- package/dist/tools/interaction/resize-viewport.js.map +0 -1
- package/dist/tools/interaction/resize-window.js +0 -261
- package/dist/tools/interaction/resize-window.js.map +0 -1
- package/dist/tools/interaction/scroll.js +0 -304
- package/dist/tools/interaction/scroll.js.map +0 -1
- package/dist/tools/interaction/select.js +0 -30
- package/dist/tools/interaction/select.js.map +0 -1
- package/dist/tools/navigation/go-back.js +0 -76
- package/dist/tools/navigation/go-back.js.map +0 -1
- package/dist/tools/navigation/go-forward.js +0 -76
- package/dist/tools/navigation/go-forward.js.map +0 -1
- package/dist/tools/navigation/go-to.js +0 -80
- package/dist/tools/navigation/go-to.js.map +0 -1
- package/dist/tools/navigation/index.js +0 -14
- package/dist/tools/navigation/index.js.map +0 -1
- package/dist/tools/navigation/reload.js +0 -76
- package/dist/tools/navigation/reload.js.map +0 -1
- package/dist/tools/o11y/get-console-messages.js +0 -151
- package/dist/tools/o11y/get-console-messages.js.map +0 -1
- package/dist/tools/o11y/get-http-requests.js +0 -216
- package/dist/tools/o11y/get-http-requests.js.map +0 -1
- package/dist/tools/o11y/get-trace-id.js +0 -30
- package/dist/tools/o11y/get-trace-id.js.map +0 -1
- package/dist/tools/o11y/get-web-vitals.js +0 -595
- package/dist/tools/o11y/get-web-vitals.js.map +0 -1
- package/dist/tools/o11y/index.js +0 -18
- package/dist/tools/o11y/index.js.map +0 -1
- package/dist/tools/o11y/new-trace-id.js +0 -32
- package/dist/tools/o11y/new-trace-id.js.map +0 -1
- package/dist/tools/o11y/set-trace-id.js +0 -28
- package/dist/tools/o11y/set-trace-id.js.map +0 -1
- package/dist/tools/react/get-component-for-element.js +0 -941
- package/dist/tools/react/get-component-for-element.js.map +0 -1
- package/dist/tools/react/get-element-for-component.js +0 -1190
- package/dist/tools/react/get-element-for-component.js.map +0 -1
- package/dist/tools/react/index.js +0 -10
- package/dist/tools/react/index.js.map +0 -1
- package/dist/tools/run/index.js +0 -7
- package/dist/tools/run/index.js.map +0 -1
- package/dist/tools/run/js-in-browser.js +0 -51
- package/dist/tools/run/js-in-browser.js.map +0 -1
- package/dist/tools/run/js-in-sandbox.js +0 -175
- package/dist/tools/run/js-in-sandbox.js.map +0 -1
- package/dist/tools/stub/clear.js +0 -41
- package/dist/tools/stub/clear.js.map +0 -1
- package/dist/tools/stub/index.js +0 -14
- package/dist/tools/stub/index.js.map +0 -1
- package/dist/tools/stub/intercept-http-request.js +0 -112
- package/dist/tools/stub/intercept-http-request.js.map +0 -1
- package/dist/tools/stub/list.js +0 -75
- package/dist/tools/stub/list.js.map +0 -1
- package/dist/tools/stub/mock-http-response.js +0 -152
- package/dist/tools/stub/mock-http-response.js.map +0 -1
- package/dist/tools/stub/stub-controller.js +0 -284
- package/dist/tools/stub/stub-controller.js.map +0 -1
- package/dist/tools/sync/index.js +0 -6
- package/dist/tools/sync/index.js.map +0 -1
- package/dist/tools/sync/wait-for-network-idle.js +0 -152
- package/dist/tools/sync/wait-for-network-idle.js.map +0 -1
- package/dist/tools/tool-executor.js +0 -79
- package/dist/tools/tool-executor.js.map +0 -1
- package/dist/tools/types.js +0 -3
- package/dist/tools/types.js.map +0 -1
- package/dist/types.js +0 -55
- package/dist/types.js.map +0 -1
- package/dist/utils/cli-utils.js +0 -253
- package/dist/utils/cli-utils.js.map +0 -1
- package/dist/utils.js +0 -85
- package/dist/utils.js.map +0 -1
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ToolExecutor = void 0;
|
|
37
|
-
const browser_1 = require("../browser");
|
|
38
|
-
const config_1 = require("../config");
|
|
39
|
-
const context_1 = require("../context");
|
|
40
|
-
const logger = __importStar(require("../logger"));
|
|
41
|
-
class ToolExecutor {
|
|
42
|
-
sessionIdProvider;
|
|
43
|
-
sessionContext;
|
|
44
|
-
constructor(sessionIdProvider) {
|
|
45
|
-
this.sessionIdProvider = sessionIdProvider;
|
|
46
|
-
}
|
|
47
|
-
async _createSessionContext() {
|
|
48
|
-
const browserContextInfo = await (0, browser_1.newBrowserContext)();
|
|
49
|
-
const page = await (0, browser_1.newPage)(browserContextInfo.browserContext);
|
|
50
|
-
const sessionId = this.sessionIdProvider();
|
|
51
|
-
const context = new context_1.ToolSessionContext(sessionId, browserContextInfo.browserContext, page, {
|
|
52
|
-
otelEnable: config_1.OTEL_ENABLE,
|
|
53
|
-
});
|
|
54
|
-
await context.init();
|
|
55
|
-
return context;
|
|
56
|
-
}
|
|
57
|
-
async _sessionContext() {
|
|
58
|
-
if (!this.sessionContext) {
|
|
59
|
-
this.sessionContext = await this._createSessionContext();
|
|
60
|
-
logger.debug(`Created session context on the first tool call for the session with id ${this.sessionContext.sessionId()}`);
|
|
61
|
-
}
|
|
62
|
-
return this.sessionContext;
|
|
63
|
-
}
|
|
64
|
-
async executeTool(tool, args) {
|
|
65
|
-
logger.debug(`Executing tool ${tool.name()} with input: ${logger.toJson(args)}`);
|
|
66
|
-
try {
|
|
67
|
-
const sessionContext = await this._sessionContext();
|
|
68
|
-
const result = await tool.handle(sessionContext, args);
|
|
69
|
-
logger.debug(`Executed tool ${tool.name()} and got output: ${logger.toJson(result)}`);
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
|
-
catch (err) {
|
|
73
|
-
logger.debug(`Error occurred while executing ${tool.name()}: ${err}`);
|
|
74
|
-
throw err;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.ToolExecutor = ToolExecutor;
|
|
79
|
-
//# sourceMappingURL=tool-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/tools/tool-executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA4E;AAC5E,sCAAwC;AACxC,wCAAgD;AAChD,kDAAoC;AAKpC,MAAa,YAAY;IACJ,iBAAiB,CAAe;IACzC,cAAc,CAAsB;IAE5C,YAAY,iBAA+B;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAC/B,MAAM,kBAAkB,GACpB,MAAM,IAAA,2BAAiB,GAAE,CAAC;QAC9B,MAAM,IAAI,GAAS,MAAM,IAAA,iBAAO,EAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,SAAS,GAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEnD,MAAM,OAAO,GAAuB,IAAI,4BAAkB,CACtD,SAAS,EACT,kBAAkB,CAAC,cAAc,EACjC,IAAI,EACJ;YACI,UAAU,EAAE,oBAAW;SAC1B,CACJ,CAAC;QAEF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAErB,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzD,MAAM,CAAC,KAAK,CACR,0EAA0E,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,CAC9G,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,IAAe;QACzC,MAAM,CAAC,KAAK,CACR,kBAAkB,IAAI,CAAC,IAAI,EAAE,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;QACF,IAAI,CAAC;YACD,MAAM,cAAc,GAChB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACjC,MAAM,MAAM,GAAe,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CACR,iBAAiB,IAAI,CAAC,IAAI,EAAE,oBAAoB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC1E,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CACR,kCAAkC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAC1D,CAAC;YACF,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;CACJ;AAzDD,oCAyDC"}
|
package/dist/tools/types.js
DELETED
package/dist/tools/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":""}
|
package/dist/types.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HttpResourceType = exports.HttpMethod = exports.ConsoleMessageLevel = exports.ConsoleMessageLevelCode = exports.ConsoleMessageLevelName = void 0;
|
|
4
|
-
var ConsoleMessageLevelName;
|
|
5
|
-
(function (ConsoleMessageLevelName) {
|
|
6
|
-
ConsoleMessageLevelName["ALL"] = "all";
|
|
7
|
-
ConsoleMessageLevelName["DEBUG"] = "debug";
|
|
8
|
-
ConsoleMessageLevelName["INFO"] = "info";
|
|
9
|
-
ConsoleMessageLevelName["WARNING"] = "warning";
|
|
10
|
-
ConsoleMessageLevelName["ERROR"] = "error";
|
|
11
|
-
})(ConsoleMessageLevelName || (exports.ConsoleMessageLevelName = ConsoleMessageLevelName = {}));
|
|
12
|
-
var ConsoleMessageLevelCode;
|
|
13
|
-
(function (ConsoleMessageLevelCode) {
|
|
14
|
-
ConsoleMessageLevelCode[ConsoleMessageLevelCode["ALL"] = -1] = "ALL";
|
|
15
|
-
ConsoleMessageLevelCode[ConsoleMessageLevelCode["DEBUG"] = 0] = "DEBUG";
|
|
16
|
-
ConsoleMessageLevelCode[ConsoleMessageLevelCode["INFO"] = 1] = "INFO";
|
|
17
|
-
ConsoleMessageLevelCode[ConsoleMessageLevelCode["WARNING"] = 2] = "WARNING";
|
|
18
|
-
ConsoleMessageLevelCode[ConsoleMessageLevelCode["ERROR"] = 3] = "ERROR";
|
|
19
|
-
})(ConsoleMessageLevelCode || (exports.ConsoleMessageLevelCode = ConsoleMessageLevelCode = {}));
|
|
20
|
-
exports.ConsoleMessageLevel = {
|
|
21
|
-
[ConsoleMessageLevelName.ALL]: { code: ConsoleMessageLevelCode.ALL },
|
|
22
|
-
[ConsoleMessageLevelName.DEBUG]: { code: ConsoleMessageLevelCode.DEBUG },
|
|
23
|
-
[ConsoleMessageLevelName.INFO]: { code: ConsoleMessageLevelCode.INFO },
|
|
24
|
-
[ConsoleMessageLevelName.WARNING]: {
|
|
25
|
-
code: ConsoleMessageLevelCode.WARNING,
|
|
26
|
-
},
|
|
27
|
-
[ConsoleMessageLevelName.ERROR]: { code: ConsoleMessageLevelCode.ERROR },
|
|
28
|
-
};
|
|
29
|
-
var HttpMethod;
|
|
30
|
-
(function (HttpMethod) {
|
|
31
|
-
HttpMethod["GET"] = "GET";
|
|
32
|
-
HttpMethod["POST"] = "POST";
|
|
33
|
-
HttpMethod["PUT"] = "PUT";
|
|
34
|
-
HttpMethod["PATCH"] = "PATCH";
|
|
35
|
-
HttpMethod["DELETE"] = "DELETE";
|
|
36
|
-
HttpMethod["HEAD"] = "HEAD";
|
|
37
|
-
HttpMethod["OPTIONS"] = "OPTIONS";
|
|
38
|
-
})(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
|
|
39
|
-
var HttpResourceType;
|
|
40
|
-
(function (HttpResourceType) {
|
|
41
|
-
HttpResourceType["DOCUMENT"] = "document";
|
|
42
|
-
HttpResourceType["STYLESHEET"] = "stylesheet";
|
|
43
|
-
HttpResourceType["IMAGE"] = "image";
|
|
44
|
-
HttpResourceType["MEDIA"] = "media";
|
|
45
|
-
HttpResourceType["FONT"] = "font";
|
|
46
|
-
HttpResourceType["SCRIPT"] = "script";
|
|
47
|
-
HttpResourceType["TEXTTRACK"] = "texttrack";
|
|
48
|
-
HttpResourceType["XHR"] = "xhr";
|
|
49
|
-
HttpResourceType["FETCH"] = "fetch";
|
|
50
|
-
HttpResourceType["EVENTSOURCE"] = "eventsource";
|
|
51
|
-
HttpResourceType["WEBSOCKET"] = "websocket";
|
|
52
|
-
HttpResourceType["MANIFEST"] = "manifest";
|
|
53
|
-
HttpResourceType["OTHER"] = "other";
|
|
54
|
-
})(HttpResourceType || (exports.HttpResourceType = HttpResourceType = {}));
|
|
55
|
-
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,uBAMX;AAND,WAAY,uBAAuB;IAC/B,sCAAW,CAAA;IACX,0CAAe,CAAA;IACf,wCAAa,CAAA;IACb,8CAAmB,CAAA;IACnB,0CAAe,CAAA;AACnB,CAAC,EANW,uBAAuB,uCAAvB,uBAAuB,QAMlC;AAED,IAAY,uBAMX;AAND,WAAY,uBAAuB;IAC/B,oEAAQ,CAAA;IACR,uEAAS,CAAA;IACT,qEAAQ,CAAA;IACR,2EAAW,CAAA;IACX,uEAAS,CAAA;AACb,CAAC,EANW,uBAAuB,uCAAvB,uBAAuB,QAMlC;AAEY,QAAA,mBAAmB,GAG5B;IACA,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,GAAG,EAAE;IACpE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,KAAK,EAAE;IACxE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,EAAE;IACtE,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE;QAC/B,IAAI,EAAE,uBAAuB,CAAC,OAAO;KACxC;IACD,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,KAAK,EAAE;CAClE,CAAC;AAkBX,IAAY,UAQX;AARD,WAAY,UAAU;IAClB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,iCAAmB,CAAA;AACvB,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,IAAY,gBAcX;AAdD,WAAY,gBAAgB;IACxB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;IACzB,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,+BAAW,CAAA;IACX,mCAAe,CAAA;IACf,+CAA2B,CAAA;IAC3B,2CAAuB,CAAA;IACvB,yCAAqB,CAAA;IACrB,mCAAe,CAAA;AACnB,CAAC,EAdW,gBAAgB,gCAAhB,gBAAgB,QAc3B"}
|
package/dist/utils/cli-utils.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerToolCommands = registerToolCommands;
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const zod_1 = require("zod");
|
|
6
|
-
/**
|
|
7
|
-
* Extracts the inner type from optional/default/nullable wrappers
|
|
8
|
-
*/
|
|
9
|
-
function _unwrapZodType(zodType) {
|
|
10
|
-
let current = zodType;
|
|
11
|
-
let isOptional = false;
|
|
12
|
-
let defaultValue = undefined;
|
|
13
|
-
while (true) {
|
|
14
|
-
const typeName = current._def.typeName;
|
|
15
|
-
if (typeName === zod_1.ZodFirstPartyTypeKind.ZodOptional) {
|
|
16
|
-
isOptional = true;
|
|
17
|
-
current = current._def.innerType;
|
|
18
|
-
}
|
|
19
|
-
else if (typeName === zod_1.ZodFirstPartyTypeKind.ZodDefault) {
|
|
20
|
-
isOptional = true;
|
|
21
|
-
defaultValue = current._def.defaultValue();
|
|
22
|
-
current = current._def.innerType;
|
|
23
|
-
}
|
|
24
|
-
else if (typeName === zod_1.ZodFirstPartyTypeKind.ZodNullable) {
|
|
25
|
-
isOptional = true;
|
|
26
|
-
current = current._def.innerType;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return { innerType: current, isOptional, defaultValue };
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Gets description from a Zod type
|
|
36
|
-
*/
|
|
37
|
-
function _getDescription(zodType) {
|
|
38
|
-
return zodType._def.description;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Converts kebab-case or snake_case to camelCase for option names
|
|
42
|
-
*/
|
|
43
|
-
function _toCamelCase(str) {
|
|
44
|
-
return str.replace(/[-_]([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Converts camelCase to kebab-case for CLI flags
|
|
48
|
-
*/
|
|
49
|
-
function _toKebabCase(str) {
|
|
50
|
-
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Creates a Commander Option from a Zod type
|
|
54
|
-
*/
|
|
55
|
-
function _createOption(name, zodType) {
|
|
56
|
-
const { innerType, isOptional, defaultValue } = _unwrapZodType(zodType);
|
|
57
|
-
const description = _getDescription(zodType) || `The ${name} value`;
|
|
58
|
-
const flagName = _toKebabCase(name);
|
|
59
|
-
const typeName = innerType._def.typeName;
|
|
60
|
-
let option;
|
|
61
|
-
switch (typeName) {
|
|
62
|
-
case zod_1.ZodFirstPartyTypeKind.ZodString:
|
|
63
|
-
option = new commander_1.Option(`--${flagName} <string>`, description);
|
|
64
|
-
break;
|
|
65
|
-
case zod_1.ZodFirstPartyTypeKind.ZodNumber:
|
|
66
|
-
option = new commander_1.Option(`--${flagName} <number>`, description);
|
|
67
|
-
option.argParser((value) => {
|
|
68
|
-
const n = Number(value);
|
|
69
|
-
if (!Number.isFinite(n)) {
|
|
70
|
-
throw new Error(`Invalid number: ${value}`);
|
|
71
|
-
}
|
|
72
|
-
return n;
|
|
73
|
-
});
|
|
74
|
-
break;
|
|
75
|
-
case zod_1.ZodFirstPartyTypeKind.ZodBoolean:
|
|
76
|
-
// Boolean flags don't take a value
|
|
77
|
-
option = new commander_1.Option(`--${flagName}`, description);
|
|
78
|
-
break;
|
|
79
|
-
case zod_1.ZodFirstPartyTypeKind.ZodEnum:
|
|
80
|
-
const enumValues = innerType._def.values;
|
|
81
|
-
option = new commander_1.Option(`--${flagName} <choice>`, description).choices(enumValues);
|
|
82
|
-
break;
|
|
83
|
-
case zod_1.ZodFirstPartyTypeKind.ZodArray:
|
|
84
|
-
// Array options can be specified multiple times
|
|
85
|
-
option = new commander_1.Option(`--${flagName} <value...>`, description);
|
|
86
|
-
break;
|
|
87
|
-
case zod_1.ZodFirstPartyTypeKind.ZodObject:
|
|
88
|
-
case zod_1.ZodFirstPartyTypeKind.ZodRecord:
|
|
89
|
-
// Objects and records are passed as JSON strings
|
|
90
|
-
option = new commander_1.Option(`--${flagName} <json>`, description);
|
|
91
|
-
option.argParser((value) => {
|
|
92
|
-
try {
|
|
93
|
-
return JSON.parse(value);
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
throw new Error(`Invalid JSON: ${value}`);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
break;
|
|
100
|
-
case zod_1.ZodFirstPartyTypeKind.ZodAny:
|
|
101
|
-
case zod_1.ZodFirstPartyTypeKind.ZodUnknown:
|
|
102
|
-
// Any/unknown types: try JSON parse, fallback to string
|
|
103
|
-
option = new commander_1.Option(`--${flagName} <value>`, description);
|
|
104
|
-
option.argParser((value) => {
|
|
105
|
-
try {
|
|
106
|
-
return JSON.parse(value);
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
return value;
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
break;
|
|
113
|
-
case zod_1.ZodFirstPartyTypeKind.ZodLiteral:
|
|
114
|
-
// Literal types have a fixed value, treat as optional flag
|
|
115
|
-
const literalValue = innerType._def.value;
|
|
116
|
-
if (typeof literalValue === 'boolean') {
|
|
117
|
-
option = new commander_1.Option(`--${flagName}`, description);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
option = new commander_1.Option(`--${flagName} <value>`, description);
|
|
121
|
-
option.default(literalValue);
|
|
122
|
-
}
|
|
123
|
-
break;
|
|
124
|
-
case zod_1.ZodFirstPartyTypeKind.ZodUnion:
|
|
125
|
-
// Union types: check if it's a union of literals (like enum)
|
|
126
|
-
const unionOptions = innerType._def.options;
|
|
127
|
-
const allLiterals = unionOptions.every((opt) => opt._def.typeName === zod_1.ZodFirstPartyTypeKind.ZodLiteral);
|
|
128
|
-
if (allLiterals) {
|
|
129
|
-
const choices = unionOptions.map((opt) => String(opt._def.value));
|
|
130
|
-
option = new commander_1.Option(`--${flagName} <choice>`, description).choices(choices);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
// Mixed union, treat as JSON
|
|
134
|
-
option = new commander_1.Option(`--${flagName} <value>`, description);
|
|
135
|
-
option.argParser((value) => {
|
|
136
|
-
try {
|
|
137
|
-
return JSON.parse(value);
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
return value;
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
break;
|
|
145
|
-
default:
|
|
146
|
-
// For unsupported types, treat as string
|
|
147
|
-
option = new commander_1.Option(`--${flagName} <value>`, description);
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
// Set default value if exists
|
|
151
|
-
if (defaultValue !== undefined) {
|
|
152
|
-
option.default(defaultValue);
|
|
153
|
-
}
|
|
154
|
-
// Mark as required if not optional and no default
|
|
155
|
-
if (!isOptional && defaultValue === undefined) {
|
|
156
|
-
option.makeOptionMandatory(true);
|
|
157
|
-
}
|
|
158
|
-
return option;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Generates Commander Options from a Tool's input schema
|
|
162
|
-
*/
|
|
163
|
-
function _generateOptionsFromSchema(schema) {
|
|
164
|
-
const options = [];
|
|
165
|
-
for (const [name, zodType] of Object.entries(schema)) {
|
|
166
|
-
const option = _createOption(name, zodType);
|
|
167
|
-
if (option) {
|
|
168
|
-
options.push(option);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return options;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Parses command line options back to tool input format
|
|
175
|
-
* Handles camelCase conversion from kebab-case flags
|
|
176
|
-
*/
|
|
177
|
-
function _parseOptionsToToolInput(options) {
|
|
178
|
-
const result = {};
|
|
179
|
-
for (const [key, value] of Object.entries(options)) {
|
|
180
|
-
// Commander already converts kebab-case to camelCase
|
|
181
|
-
// but we need to handle any edge cases
|
|
182
|
-
const camelKey = _toCamelCase(key);
|
|
183
|
-
if (value !== undefined) {
|
|
184
|
-
result[camelKey] = value;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return result;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Parses a tool name into domain and command parts
|
|
191
|
-
* e.g., "navigation_go-to" -> { domain: "navigation", commandName: "go-to" }
|
|
192
|
-
*/
|
|
193
|
-
function _parseToolName(toolName) {
|
|
194
|
-
const underscoreIndex = toolName.indexOf('_');
|
|
195
|
-
if (underscoreIndex === -1) {
|
|
196
|
-
return { domain: 'default', commandName: toolName };
|
|
197
|
-
}
|
|
198
|
-
return {
|
|
199
|
-
domain: toolName.substring(0, underscoreIndex),
|
|
200
|
-
commandName: toolName.substring(underscoreIndex + 1),
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Registers all tools as nested subcommands on the given program
|
|
205
|
-
* Tool names like "navigation_go-to" become "navigation go-to"
|
|
206
|
-
*
|
|
207
|
-
* @example
|
|
208
|
-
* ```typescript
|
|
209
|
-
* import { Command } from 'commander';
|
|
210
|
-
* import { tools } from './tools';
|
|
211
|
-
* import { registerToolCommands } from './utils/cli-utils';
|
|
212
|
-
*
|
|
213
|
-
* const program = new Command('browser-devtools');
|
|
214
|
-
*
|
|
215
|
-
* registerToolCommands(program, tools, async (toolName, toolInput, globalOpts) => {
|
|
216
|
-
* // Call daemon server with toolName and toolInput
|
|
217
|
-
* // Use globalOpts.sessionId for session management
|
|
218
|
-
* });
|
|
219
|
-
*
|
|
220
|
-
* program.parse();
|
|
221
|
-
*
|
|
222
|
-
* // Usage: browser-devtools navigation go-to --url "https://example.com"
|
|
223
|
-
* ```
|
|
224
|
-
*/
|
|
225
|
-
function registerToolCommands(program, tools, handler) {
|
|
226
|
-
// Group tools by domain
|
|
227
|
-
const domainCommands = new Map();
|
|
228
|
-
for (const tool of tools) {
|
|
229
|
-
const { domain, commandName } = _parseToolName(tool.name());
|
|
230
|
-
// Get or create domain command
|
|
231
|
-
let domainCommand = domainCommands.get(domain);
|
|
232
|
-
if (!domainCommand) {
|
|
233
|
-
domainCommand = new commander_1.Command(domain).description(`${domain.charAt(0).toUpperCase() + domain.slice(1)} commands`);
|
|
234
|
-
domainCommands.set(domain, domainCommand);
|
|
235
|
-
program.addCommand(domainCommand);
|
|
236
|
-
}
|
|
237
|
-
// Create tool command with just the command name (without domain prefix)
|
|
238
|
-
const toolCommand = new commander_1.Command(commandName).description(tool.description().trim());
|
|
239
|
-
// Add options from schema
|
|
240
|
-
const options = _generateOptionsFromSchema(tool.inputSchema());
|
|
241
|
-
for (const option of options) {
|
|
242
|
-
toolCommand.addOption(option);
|
|
243
|
-
}
|
|
244
|
-
// Set action handler
|
|
245
|
-
toolCommand.action(async (opts) => {
|
|
246
|
-
const toolInput = _parseOptionsToToolInput(opts);
|
|
247
|
-
const globalOptions = program.opts();
|
|
248
|
-
await handler(tool.name(), toolInput, globalOptions);
|
|
249
|
-
});
|
|
250
|
-
domainCommand.addCommand(toolCommand);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
//# sourceMappingURL=cli-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../../src/utils/cli-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.sleep = sleep;
|
|
7
|
-
exports.getEnumKeyTuples = getEnumKeyTuples;
|
|
8
|
-
exports.createEnumTransformer = createEnumTransformer;
|
|
9
|
-
exports.formattedTimeForFilename = formattedTimeForFilename;
|
|
10
|
-
exports.newTraceId = newTraceId;
|
|
11
|
-
exports.newSpanId = newSpanId;
|
|
12
|
-
exports.normalizeSpanId = normalizeSpanId;
|
|
13
|
-
exports.normalizeTraceId = normalizeTraceId;
|
|
14
|
-
exports.makeTraceparent = makeTraceparent;
|
|
15
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
16
|
-
function sleep(ms) {
|
|
17
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
18
|
-
}
|
|
19
|
-
function getEnumKeyTuples(enumObj) {
|
|
20
|
-
const values = Object.keys(enumObj)
|
|
21
|
-
.filter((key) => isNaN(Number(key))) // numeric enum reverse-mapping guard
|
|
22
|
-
.map((key) => enumObj[key]);
|
|
23
|
-
if (values.length === 0) {
|
|
24
|
-
throw new Error('Enum has no values');
|
|
25
|
-
}
|
|
26
|
-
return values;
|
|
27
|
-
}
|
|
28
|
-
function createEnumTransformer(enumObj, opts) {
|
|
29
|
-
const values = Object.keys(enumObj)
|
|
30
|
-
.filter((k) => isNaN(Number(k)))
|
|
31
|
-
.map((k) => enumObj[k]);
|
|
32
|
-
const caseInsensitive = opts?.caseInsensitive ?? true;
|
|
33
|
-
const lookup = new Map(values.map((v) => [
|
|
34
|
-
caseInsensitive ? v.toLowerCase() : v,
|
|
35
|
-
v,
|
|
36
|
-
]));
|
|
37
|
-
return (value) => {
|
|
38
|
-
const key = caseInsensitive ? value.toLowerCase() : value;
|
|
39
|
-
const found = lookup.get(key);
|
|
40
|
-
if (found === undefined) {
|
|
41
|
-
throw new Error(`Invalid enum value: "${value}"`);
|
|
42
|
-
}
|
|
43
|
-
return found;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function formattedTimeForFilename(date = new Date()) {
|
|
47
|
-
const pad = (n) => String(n).padStart(2, '0');
|
|
48
|
-
return (date.getFullYear() +
|
|
49
|
-
pad(date.getMonth() + 1) +
|
|
50
|
-
pad(date.getDate()) +
|
|
51
|
-
'-' +
|
|
52
|
-
pad(date.getHours()) +
|
|
53
|
-
pad(date.getMinutes()) +
|
|
54
|
-
pad(date.getSeconds()));
|
|
55
|
-
}
|
|
56
|
-
function newTraceId() {
|
|
57
|
-
return crypto_1.default.randomBytes(16).toString('hex');
|
|
58
|
-
}
|
|
59
|
-
function newSpanId() {
|
|
60
|
-
return crypto_1.default.randomBytes(8).toString('hex');
|
|
61
|
-
}
|
|
62
|
-
function normalizeSpanId(traceId) {
|
|
63
|
-
const cleaned = traceId.trim().toLowerCase();
|
|
64
|
-
const ok = /^[0-9a-f]{16}$/.test(cleaned) && cleaned !== '0'.repeat(16);
|
|
65
|
-
if (!ok) {
|
|
66
|
-
throw new Error('span id must be 16 lowercase hex chars (not all zeros)');
|
|
67
|
-
}
|
|
68
|
-
return cleaned;
|
|
69
|
-
}
|
|
70
|
-
function normalizeTraceId(traceId) {
|
|
71
|
-
const cleaned = traceId.trim().toLowerCase();
|
|
72
|
-
const ok = /^[0-9a-f]{32}$/.test(cleaned) && cleaned !== '0'.repeat(32);
|
|
73
|
-
if (!ok) {
|
|
74
|
-
throw new Error('trace id must be 32 lowercase hex chars (not all zeros)');
|
|
75
|
-
}
|
|
76
|
-
return cleaned;
|
|
77
|
-
}
|
|
78
|
-
function makeTraceparent(traceId, spanId, sampled = true) {
|
|
79
|
-
const v = '00';
|
|
80
|
-
const tid = normalizeTraceId(traceId);
|
|
81
|
-
const sid = normalizeSpanId(spanId);
|
|
82
|
-
const f = sampled ? '01' : '00';
|
|
83
|
-
return `${v}-${tid}-${sid}-${f}`;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|