openchrome-mcp 1.0.4 → 1.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/README.md +48 -11
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/dom/dom-serializer.d.ts +35 -0
- package/dist/dom/dom-serializer.d.ts.map +1 -0
- package/dist/dom/dom-serializer.js +197 -0
- package/dist/dom/dom-serializer.js.map +1 -0
- package/dist/dom/index.d.ts +2 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +6 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/hints/rules/dom-mode-suggestion.d.ts +6 -0
- package/dist/hints/rules/dom-mode-suggestion.d.ts.map +1 -0
- package/dist/hints/rules/dom-mode-suggestion.js +24 -0
- package/dist/hints/rules/dom-mode-suggestion.js.map +1 -0
- package/dist/session-manager.d.ts +9 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +62 -0
- package/dist/session-manager.js.map +1 -1
- package/dist/storage-state/index.d.ts +2 -0
- package/dist/storage-state/index.d.ts.map +1 -0
- package/dist/storage-state/index.js +6 -0
- package/dist/storage-state/index.js.map +1 -0
- package/dist/storage-state/storage-state-manager.d.ts +52 -0
- package/dist/storage-state/storage-state-manager.d.ts.map +1 -0
- package/dist/storage-state/storage-state-manager.js +127 -0
- package/dist/storage-state/storage-state-manager.js.map +1 -0
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +124 -225
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/form-input.js +6 -6
- package/dist/tools/form-input.js.map +1 -1
- package/dist/tools/read-page.d.ts.map +1 -1
- package/dist/tools/read-page.js +53 -101
- package/dist/tools/read-page.js.map +1 -1
- package/dist/utils/ref-id-manager.d.ts +5 -0
- package/dist/utils/ref-id-manager.d.ts.map +1 -1
- package/dist/utils/ref-id-manager.js +22 -0
- package/dist/utils/ref-id-manager.js.map +1 -1
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-input.js","sourceRoot":"","sources":["../../src/tools/form-input.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAsMH,sDAEC;AApMD,wDAAuD;AACvD,4DAA0D;AAE1D,MAAM,UAAU,GAAsB;IACpC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,sFAAsF;IACnG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"form-input.js","sourceRoot":"","sources":["../../src/tools/form-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-page.d.ts","sourceRoot":"","sources":["../../src/tools/read-page.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"read-page.d.ts","sourceRoot":"","sources":["../../src/tools/read-page.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAuR1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5D"}
|
package/dist/tools/read-page.js
CHANGED
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.registerReadPageTool = registerReadPageTool;
|
|
7
7
|
const session_manager_1 = require("../session-manager");
|
|
8
8
|
const ref_id_manager_1 = require("../utils/ref-id-manager");
|
|
9
|
+
const dom_1 = require("../dom");
|
|
9
10
|
const definition = {
|
|
10
11
|
name: 'read_page',
|
|
11
|
-
description: 'Get
|
|
12
|
+
description: 'Get page content. Default mode "ax" returns accessibility tree with ref_N identifiers. Mode "dom" returns compact DOM with backendNodeId identifiers (~5-10x fewer tokens).',
|
|
12
13
|
inputSchema: {
|
|
13
14
|
type: 'object',
|
|
14
15
|
properties: {
|
|
@@ -27,19 +28,12 @@ const definition = {
|
|
|
27
28
|
},
|
|
28
29
|
ref_id: {
|
|
29
30
|
type: 'string',
|
|
30
|
-
description: 'Reference ID of a parent element to read from
|
|
31
|
+
description: 'Reference ID of a parent element to read from',
|
|
31
32
|
},
|
|
32
|
-
|
|
33
|
+
mode: {
|
|
33
34
|
type: 'string',
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
selectorAll: {
|
|
37
|
-
type: 'string',
|
|
38
|
-
description: 'CSS selector to extract multiple matching elements. Returns array of {tag, text, attributes} objects. Use for lists, tables, repeated elements.',
|
|
39
|
-
},
|
|
40
|
-
selectorLimit: {
|
|
41
|
-
type: 'number',
|
|
42
|
-
description: 'Maximum number of elements to return when using selectorAll (default: 50)',
|
|
35
|
+
enum: ['ax', 'dom'],
|
|
36
|
+
description: 'Output mode: "ax" for accessibility tree (default), "dom" for compact DOM representation with ~5-10x fewer tokens',
|
|
43
37
|
},
|
|
44
38
|
},
|
|
45
39
|
required: ['tabId'],
|
|
@@ -48,7 +42,9 @@ const definition = {
|
|
|
48
42
|
const handler = async (sessionId, args) => {
|
|
49
43
|
const tabId = args.tabId;
|
|
50
44
|
const filter = args.filter || 'all';
|
|
51
|
-
const
|
|
45
|
+
const defaultDepth = filter === 'interactive' ? 5 : 8;
|
|
46
|
+
const maxDepth = args.depth || defaultDepth;
|
|
47
|
+
const fetchDepth = filter === 'interactive' ? Math.min(maxDepth, 5) : maxDepth;
|
|
52
48
|
const sessionManager = (0, session_manager_1.getSessionManager)();
|
|
53
49
|
const refIdManager = (0, ref_id_manager_1.getRefIdManager)();
|
|
54
50
|
if (!tabId) {
|
|
@@ -58,7 +54,7 @@ const handler = async (sessionId, args) => {
|
|
|
58
54
|
};
|
|
59
55
|
}
|
|
60
56
|
try {
|
|
61
|
-
const page = await sessionManager.getPage(sessionId, tabId
|
|
57
|
+
const page = await sessionManager.getPage(sessionId, tabId);
|
|
62
58
|
if (!page) {
|
|
63
59
|
return {
|
|
64
60
|
content: [{ type: 'text', text: `Error: Tab ${tabId} not found` }],
|
|
@@ -66,93 +62,44 @@ const handler = async (sessionId, args) => {
|
|
|
66
62
|
};
|
|
67
63
|
}
|
|
68
64
|
const cdpClient = sessionManager.getCDPClient();
|
|
69
|
-
//
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
if (selectorParam || selectorAllParam) {
|
|
73
|
-
const cssSelector = (selectorParam || selectorAllParam);
|
|
74
|
-
const isAll = !!selectorAllParam;
|
|
75
|
-
const limit = args.selectorLimit || 50;
|
|
76
|
-
const extractResult = await page.evaluate((sel, all, max) => {
|
|
77
|
-
function extractElement(el) {
|
|
78
|
-
const attrs = {};
|
|
79
|
-
for (const attr of el.attributes) {
|
|
80
|
-
// Skip very long attributes (e.g. inline styles, data URIs)
|
|
81
|
-
if (attr.value.length <= 200) {
|
|
82
|
-
attrs[attr.name] = attr.value;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
tag: el.tagName.toLowerCase(),
|
|
87
|
-
text: (el.textContent || '').trim().slice(0, 500),
|
|
88
|
-
attributes: attrs,
|
|
89
|
-
childCount: el.children.length,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
if (all) {
|
|
93
|
-
const elements = document.querySelectorAll(sel);
|
|
94
|
-
const results = [];
|
|
95
|
-
for (let i = 0; i < Math.min(elements.length, max); i++) {
|
|
96
|
-
results.push(extractElement(elements[i]));
|
|
97
|
-
}
|
|
98
|
-
return { count: elements.length, elements: results };
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
const el = document.querySelector(sel);
|
|
102
|
-
if (!el)
|
|
103
|
-
return { count: 0, elements: [] };
|
|
104
|
-
return { count: 1, elements: [extractElement(el)] };
|
|
105
|
-
}
|
|
106
|
-
}, cssSelector, isAll, limit);
|
|
65
|
+
// DOM serialization mode
|
|
66
|
+
const mode = args.mode || 'ax';
|
|
67
|
+
if (mode !== 'ax' && mode !== 'dom') {
|
|
107
68
|
return {
|
|
108
|
-
content: [
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
69
|
+
content: [{ type: 'text', text: `Error: Invalid mode "${mode}". Must be "ax" or "dom".` }],
|
|
70
|
+
isError: true,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (mode === 'dom') {
|
|
74
|
+
const refId = args.ref_id;
|
|
75
|
+
const depth = args.depth;
|
|
76
|
+
const result = await (0, dom_1.serializeDOM)(page, cdpClient, {
|
|
77
|
+
maxDepth: depth ?? -1,
|
|
78
|
+
filter: filter,
|
|
79
|
+
interactiveOnly: filter === 'interactive',
|
|
80
|
+
});
|
|
81
|
+
let outputText = result.content;
|
|
82
|
+
if (refId) {
|
|
83
|
+
outputText = '[Note: ref_id is ignored in DOM mode. Use mode "ax" for subtree scoping.]\n\n' + outputText;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
content: [{ type: 'text', text: outputText }],
|
|
114
87
|
};
|
|
115
88
|
}
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const maxDepth = args.depth || defaultDepth;
|
|
120
|
-
const fetchDepth = filter === 'interactive' ? Math.min(maxDepth, 5) : maxDepth;
|
|
121
|
-
let nodes;
|
|
122
|
-
// When ref_id is provided, use getPartialAXTree to scope the fetch to a subtree.
|
|
123
|
-
// This is significantly faster than getFullAXTree on complex pages (e.g. Twitter).
|
|
89
|
+
// Resolve ref_id to backendDOMNodeId if provided (AX mode subtree scoping)
|
|
90
|
+
const refIdParam = args.ref_id;
|
|
91
|
+
let scopedBackendNodeId;
|
|
124
92
|
if (refIdParam) {
|
|
125
|
-
|
|
126
|
-
if (
|
|
93
|
+
scopedBackendNodeId = refIdManager.resolveToBackendNodeId(sessionId, tabId, refIdParam);
|
|
94
|
+
if (scopedBackendNodeId === undefined) {
|
|
127
95
|
return {
|
|
128
|
-
content: [{ type: 'text', text: `Error: ref_id "${refIdParam}" not found or expired` }],
|
|
96
|
+
content: [{ type: 'text', text: `Error: ref_id or node ID "${refIdParam}" not found or expired` }],
|
|
129
97
|
isError: true,
|
|
130
98
|
};
|
|
131
99
|
}
|
|
132
|
-
// Resolve backendDOMNodeId → DOM nodeId via DOM.describeNode
|
|
133
|
-
let domNodeId;
|
|
134
|
-
try {
|
|
135
|
-
const { node: domNode } = await cdpClient.send(page, 'DOM.describeNode', { backendNodeId: backendDOMNodeId });
|
|
136
|
-
domNodeId = domNode.nodeId;
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
// DOM.describeNode may return nodeId=0 for non-document nodes if DOM hasn't been enabled.
|
|
140
|
-
// Fall back to getFullAXTree in that case.
|
|
141
|
-
}
|
|
142
|
-
if (domNodeId && domNodeId !== 0) {
|
|
143
|
-
const result = await cdpClient.send(page, 'Accessibility.getPartialAXTree', { nodeId: domNodeId, fetchRelatives: true });
|
|
144
|
-
nodes = result.nodes;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
// Fallback: full tree
|
|
148
|
-
const result = await cdpClient.send(page, 'Accessibility.getFullAXTree', { depth: fetchDepth });
|
|
149
|
-
nodes = result.nodes;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
const result = await cdpClient.send(page, 'Accessibility.getFullAXTree', { depth: fetchDepth });
|
|
154
|
-
nodes = result.nodes;
|
|
155
100
|
}
|
|
101
|
+
// Get the accessibility tree
|
|
102
|
+
const { nodes } = await cdpClient.send(page, 'Accessibility.getFullAXTree', { depth: fetchDepth });
|
|
156
103
|
// Clear previous refs for this target
|
|
157
104
|
refIdManager.clearTargetRefs(sessionId, tabId);
|
|
158
105
|
// Build the tree structure
|
|
@@ -240,17 +187,22 @@ const handler = async (sessionId, args) => {
|
|
|
240
187
|
}
|
|
241
188
|
}
|
|
242
189
|
}
|
|
243
|
-
// Start from root nodes
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
190
|
+
// Start from root nodes (or scoped subtree if ref_id provided)
|
|
191
|
+
let startNodes;
|
|
192
|
+
if (scopedBackendNodeId !== undefined) {
|
|
193
|
+
const scopedNode = nodes.find((n) => n.backendDOMNodeId === scopedBackendNodeId);
|
|
194
|
+
if (!scopedNode) {
|
|
195
|
+
return {
|
|
196
|
+
content: [{ type: 'text', text: `Error: ref_id or node ID "${refIdParam}" not found or expired` }],
|
|
197
|
+
isError: true,
|
|
198
|
+
};
|
|
250
199
|
}
|
|
200
|
+
startNodes = [scopedNode];
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
startNodes = nodes.filter((n) => !nodes.some((other) => other.childIds?.includes(n.nodeId)));
|
|
251
204
|
}
|
|
252
|
-
const
|
|
253
|
-
for (const root of rootNodes) {
|
|
205
|
+
for (const root of startNodes) {
|
|
254
206
|
formatNode(root, 0);
|
|
255
207
|
}
|
|
256
208
|
const output = lines.join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-page.js","sourceRoot":"","sources":["../../src/tools/read-page.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"read-page.js","sourceRoot":"","sources":["../../src/tools/read-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,11 @@ export declare class RefIdManager {
|
|
|
21
21
|
clearTargetRefs(sessionId: string, targetId: string): void;
|
|
22
22
|
clearSessionRefs(sessionId: string): void;
|
|
23
23
|
getTargetRefs(sessionId: string, targetId: string): RefEntry[];
|
|
24
|
+
/**
|
|
25
|
+
* Unified resolver: accepts "ref_N", raw integer string "142", or "node_142"
|
|
26
|
+
* Returns the backendDOMNodeId for use with CDP DOM.resolveNode
|
|
27
|
+
*/
|
|
28
|
+
resolveToBackendNodeId(sessionId: string, targetId: string, refOrNodeId: string): number | undefined;
|
|
24
29
|
}
|
|
25
30
|
export declare function getRefIdManager(): RefIdManager;
|
|
26
31
|
//# sourceMappingURL=ref-id-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref-id-manager.d.ts","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAA8D;IAC1E,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM;IAoCT,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIhF,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3F,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAY1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"ref-id-manager.d.ts","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAA8D;IAC1E,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM;IAoCT,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIhF,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3F,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAY1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQ9D;;;OAGG;IACH,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS;CAkBtB;AAID,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
|
|
@@ -69,6 +69,28 @@ class RefIdManager {
|
|
|
69
69
|
}
|
|
70
70
|
return Array.from(targetRefs.values());
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Unified resolver: accepts "ref_N", raw integer string "142", or "node_142"
|
|
74
|
+
* Returns the backendDOMNodeId for use with CDP DOM.resolveNode
|
|
75
|
+
*/
|
|
76
|
+
resolveToBackendNodeId(sessionId, targetId, refOrNodeId) {
|
|
77
|
+
// 1. Try as ref_N (existing lookup — preserves backward compat)
|
|
78
|
+
const entry = this.getRef(sessionId, targetId, refOrNodeId);
|
|
79
|
+
if (entry)
|
|
80
|
+
return entry.backendDOMNodeId;
|
|
81
|
+
// 2. Try as raw integer (from DOM serialization output)
|
|
82
|
+
const asNum = parseInt(refOrNodeId, 10);
|
|
83
|
+
if (!isNaN(asNum) && asNum > 0 && String(asNum) === refOrNodeId && asNum <= 2147483647)
|
|
84
|
+
return asNum;
|
|
85
|
+
// 3. Try as "node_N" format (explicit prefix for clarity)
|
|
86
|
+
if (refOrNodeId.startsWith('node_')) {
|
|
87
|
+
const suffix = refOrNodeId.slice(5);
|
|
88
|
+
const n = parseInt(suffix, 10);
|
|
89
|
+
if (!isNaN(n) && n > 0 && String(n) === suffix && n <= 2147483647)
|
|
90
|
+
return n;
|
|
91
|
+
}
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
72
94
|
}
|
|
73
95
|
exports.RefIdManager = RefIdManager;
|
|
74
96
|
let refIdManagerInstance = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref-id-manager.js","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"ref-id-manager.js","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openchrome-mcp",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Open-source browser automation MCP server. Control your real Chrome from any AI agent.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
"dev": "tsc -p tsconfig.cli.json --watch",
|
|
15
15
|
"start": "node dist/cli/index.js serve",
|
|
16
16
|
"check": "node dist/cli/index.js check",
|
|
17
|
+
"benchmark": "ts-node tests/benchmark/run.ts",
|
|
18
|
+
"benchmark:ci": "ts-node tests/benchmark/run.ts --ci",
|
|
17
19
|
"test": "jest",
|
|
18
20
|
"test:coverage": "jest --coverage",
|
|
19
21
|
"lint": "eslint src --ext .ts",
|