@docyrus/docyrus 0.0.59 → 0.0.60
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 +46 -0
- package/agent-loader.js +1 -1
- package/agent-loader.js.map +2 -2
- package/main.js +315 -22
- package/main.js.map +2 -2
- package/package.json +1 -1
- package/resources/browser-tools/browser-click.js +74 -0
- package/resources/browser-tools/browser-client.js +236 -0
- package/resources/browser-tools/browser-close.js +19 -0
- package/resources/browser-tools/browser-console.js +73 -0
- package/resources/browser-tools/browser-content.js +36 -75
- package/resources/browser-tools/browser-cookies.js +19 -14
- package/resources/browser-tools/browser-daemon.js +452 -0
- package/resources/browser-tools/browser-devtools.js +62 -0
- package/resources/browser-tools/browser-eval.js +16 -22
- package/resources/browser-tools/browser-fill.js +70 -0
- package/resources/browser-tools/browser-info.js +13 -0
- package/resources/browser-tools/browser-nav.js +21 -22
- package/resources/browser-tools/browser-network.js +91 -0
- package/resources/browser-tools/browser-run-script.js +12 -30
- package/resources/browser-tools/browser-screenshot.js +22 -22
- package/resources/browser-tools/browser-select.js +59 -0
- package/resources/browser-tools/browser-snapshot.js +100 -0
- package/resources/browser-tools/browser-start.js +101 -85
- package/resources/browser-tools/browser-tabs.js +38 -0
- package/resources/browser-tools/browser-wait.js +50 -0
- package/resources/pi-agent/skills/docyrus-chrome-devtools-cli/SKILL.md +157 -46
- package/server-loader.js +17 -229
- package/server-loader.js.map +4 -4
- package/resources/browser-tools/browser-connect.js +0 -172
- package/resources/browser-tools/browser-pick.js +0 -143
- package/resources/pi-agent/extensions/docyrus-web-browser.ts +0 -31
- package/resources/pi-agent/shared/docyrusWebBrowserProtocol.ts +0 -169
- package/resources/pi-agent/skills/agent-browser/SKILL.md +0 -779
- package/resources/pi-agent/skills/agent-browser/references/authentication.md +0 -303
- package/resources/pi-agent/skills/agent-browser/references/commands.md +0 -295
- package/resources/pi-agent/skills/agent-browser/references/profiling.md +0 -120
- package/resources/pi-agent/skills/agent-browser/references/proxy-support.md +0 -194
- package/resources/pi-agent/skills/agent-browser/references/session-management.md +0 -193
- package/resources/pi-agent/skills/agent-browser/references/snapshot-refs.md +0 -219
- package/resources/pi-agent/skills/agent-browser/references/video-recording.md +0 -173
- package/resources/pi-agent/skills/agent-browser/templates/authenticated-session.sh +0 -105
- package/resources/pi-agent/skills/agent-browser/templates/capture-workflow.sh +0 -69
- package/resources/pi-agent/skills/agent-browser/templates/form-automation.sh +0 -62
package/main.js
CHANGED
|
@@ -139349,7 +139349,7 @@ function buildInputSchema(args2, env2, options2) {
|
|
|
139349
139349
|
// package.json
|
|
139350
139350
|
var package_default = {
|
|
139351
139351
|
name: "@docyrus/docyrus",
|
|
139352
|
-
version: "0.0.
|
|
139352
|
+
version: "0.0.60",
|
|
139353
139353
|
private: false,
|
|
139354
139354
|
description: "Docyrus API CLI",
|
|
139355
139355
|
main: "./main.js",
|
|
@@ -140905,10 +140905,17 @@ function createBrowserCli(options2 = {}) {
|
|
|
140905
140905
|
args: external_exports.object({
|
|
140906
140906
|
code: external_exports.string().min(1)
|
|
140907
140907
|
}),
|
|
140908
|
+
options: external_exports.object({
|
|
140909
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 30000)")
|
|
140910
|
+
}),
|
|
140908
140911
|
run: async (context) => {
|
|
140912
|
+
const args2 = [context.args.code];
|
|
140913
|
+
if (context.options.timeout !== void 0) {
|
|
140914
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
140915
|
+
}
|
|
140909
140916
|
return executeBrowserTool({
|
|
140910
140917
|
scriptName: "browser-eval.js",
|
|
140911
|
-
args:
|
|
140918
|
+
args: args2,
|
|
140912
140919
|
outputMode: "json",
|
|
140913
140920
|
cwd: options2.cwd,
|
|
140914
140921
|
processExecPath: options2.processExecPath,
|
|
@@ -140919,27 +140926,21 @@ function createBrowserCli(options2 = {}) {
|
|
|
140919
140926
|
});
|
|
140920
140927
|
browserCli.command("screenshot", {
|
|
140921
140928
|
description: "Capture a screenshot of the active browser tab",
|
|
140922
|
-
|
|
140923
|
-
|
|
140924
|
-
|
|
140925
|
-
args: [],
|
|
140926
|
-
outputMode: "json",
|
|
140927
|
-
cwd: options2.cwd,
|
|
140928
|
-
processExecPath: options2.processExecPath,
|
|
140929
|
-
spawnSyncFn: options2.spawnSyncFn,
|
|
140930
|
-
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
140931
|
-
});
|
|
140932
|
-
}
|
|
140933
|
-
});
|
|
140934
|
-
browserCli.command("pick", {
|
|
140935
|
-
description: "Interactively pick DOM elements in the active browser tab",
|
|
140936
|
-
args: external_exports.object({
|
|
140937
|
-
message: external_exports.string().min(1)
|
|
140929
|
+
options: external_exports.object({
|
|
140930
|
+
full: external_exports.boolean().optional().describe("Capture full page instead of just the viewport"),
|
|
140931
|
+
base64: external_exports.boolean().optional().describe("Return base64-encoded image data instead of a file path")
|
|
140938
140932
|
}),
|
|
140939
140933
|
run: async (context) => {
|
|
140934
|
+
const args2 = [];
|
|
140935
|
+
if (context.options.full) {
|
|
140936
|
+
args2.push("--full");
|
|
140937
|
+
}
|
|
140938
|
+
if (context.options.base64) {
|
|
140939
|
+
args2.push("--base64");
|
|
140940
|
+
}
|
|
140940
140941
|
return executeBrowserTool({
|
|
140941
|
-
scriptName: "browser-
|
|
140942
|
-
args:
|
|
140942
|
+
scriptName: "browser-screenshot.js",
|
|
140943
|
+
args: args2,
|
|
140943
140944
|
outputMode: "json",
|
|
140944
140945
|
cwd: options2.cwd,
|
|
140945
140946
|
processExecPath: options2.processExecPath,
|
|
@@ -140950,10 +140951,21 @@ function createBrowserCli(options2 = {}) {
|
|
|
140950
140951
|
});
|
|
140951
140952
|
browserCli.command("cookies", {
|
|
140952
140953
|
description: "Show cookies for the active browser tab",
|
|
140953
|
-
|
|
140954
|
+
options: external_exports.object({
|
|
140955
|
+
name: external_exports.string().optional().describe("Filter cookies by exact name"),
|
|
140956
|
+
domain: external_exports.string().optional().describe("Filter cookies by domain (substring match)")
|
|
140957
|
+
}),
|
|
140958
|
+
run: async (context) => {
|
|
140959
|
+
const args2 = [];
|
|
140960
|
+
if (context.options.name) {
|
|
140961
|
+
args2.push("--name", context.options.name);
|
|
140962
|
+
}
|
|
140963
|
+
if (context.options.domain) {
|
|
140964
|
+
args2.push("--domain", context.options.domain);
|
|
140965
|
+
}
|
|
140954
140966
|
return executeBrowserTool({
|
|
140955
140967
|
scriptName: "browser-cookies.js",
|
|
140956
|
-
args:
|
|
140968
|
+
args: args2,
|
|
140957
140969
|
outputMode: "json",
|
|
140958
140970
|
cwd: options2.cwd,
|
|
140959
140971
|
processExecPath: options2.processExecPath,
|
|
@@ -140971,6 +140983,7 @@ function createBrowserCli(options2 = {}) {
|
|
|
140971
140983
|
return executeBrowserTool({
|
|
140972
140984
|
scriptName: "browser-content.js",
|
|
140973
140985
|
args: [context.args.url],
|
|
140986
|
+
outputMode: "json",
|
|
140974
140987
|
cwd: options2.cwd,
|
|
140975
140988
|
processExecPath: options2.processExecPath,
|
|
140976
140989
|
spawnSyncFn: options2.spawnSyncFn,
|
|
@@ -141010,6 +141023,286 @@ function createBrowserCli(options2 = {}) {
|
|
|
141010
141023
|
});
|
|
141011
141024
|
}
|
|
141012
141025
|
});
|
|
141026
|
+
browserCli.command("wait", {
|
|
141027
|
+
description: "Wait for a condition before proceeding",
|
|
141028
|
+
options: external_exports.object({
|
|
141029
|
+
idle: external_exports.boolean().optional().describe("Wait for network idle"),
|
|
141030
|
+
selector: external_exports.string().optional().describe("Wait for CSS selector to appear"),
|
|
141031
|
+
url: external_exports.string().optional().describe("Wait for URL to match glob pattern"),
|
|
141032
|
+
timeout: external_exports.number().int().positive().optional().describe("Maximum wait time in ms (default: 15000)")
|
|
141033
|
+
}),
|
|
141034
|
+
args: external_exports.object({
|
|
141035
|
+
ms: external_exports.string().optional().describe("Fixed delay in milliseconds")
|
|
141036
|
+
}),
|
|
141037
|
+
run: async (context) => {
|
|
141038
|
+
const args2 = [];
|
|
141039
|
+
if (context.options.idle) {
|
|
141040
|
+
args2.push("--idle");
|
|
141041
|
+
}
|
|
141042
|
+
if (context.options.selector) {
|
|
141043
|
+
args2.push("--selector", context.options.selector);
|
|
141044
|
+
}
|
|
141045
|
+
if (context.options.url) {
|
|
141046
|
+
args2.push("--url", context.options.url);
|
|
141047
|
+
}
|
|
141048
|
+
if (context.options.timeout !== void 0) {
|
|
141049
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141050
|
+
}
|
|
141051
|
+
if (context.args.ms) {
|
|
141052
|
+
args2.push(context.args.ms);
|
|
141053
|
+
}
|
|
141054
|
+
return executeBrowserTool({
|
|
141055
|
+
scriptName: "browser-wait.js",
|
|
141056
|
+
args: args2,
|
|
141057
|
+
outputMode: "json",
|
|
141058
|
+
cwd: options2.cwd,
|
|
141059
|
+
processExecPath: options2.processExecPath,
|
|
141060
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141061
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141062
|
+
});
|
|
141063
|
+
}
|
|
141064
|
+
});
|
|
141065
|
+
browserCli.command("snapshot", {
|
|
141066
|
+
description: "Get a compact snapshot of page elements with refs for interaction",
|
|
141067
|
+
options: external_exports.object({
|
|
141068
|
+
all: external_exports.boolean().optional().describe("Include all elements, not just interactive ones"),
|
|
141069
|
+
selector: external_exports.string().optional().describe("Scope snapshot to a CSS selector subtree")
|
|
141070
|
+
}),
|
|
141071
|
+
run: async (context) => {
|
|
141072
|
+
const args2 = [];
|
|
141073
|
+
if (context.options.all) {
|
|
141074
|
+
args2.push("--all");
|
|
141075
|
+
}
|
|
141076
|
+
if (context.options.selector) {
|
|
141077
|
+
args2.push("--selector", context.options.selector);
|
|
141078
|
+
}
|
|
141079
|
+
return executeBrowserTool({
|
|
141080
|
+
scriptName: "browser-snapshot.js",
|
|
141081
|
+
args: args2,
|
|
141082
|
+
outputMode: "json",
|
|
141083
|
+
cwd: options2.cwd,
|
|
141084
|
+
processExecPath: options2.processExecPath,
|
|
141085
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141086
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141087
|
+
});
|
|
141088
|
+
}
|
|
141089
|
+
});
|
|
141090
|
+
browserCli.command("click", {
|
|
141091
|
+
description: "Click an element by snapshot ref, CSS selector, or x,y coordinates",
|
|
141092
|
+
args: external_exports.object({
|
|
141093
|
+
target: external_exports.string().min(1).describe("Snapshot ref (@e1), CSS selector, or x coordinate"),
|
|
141094
|
+
y: external_exports.string().optional().describe("y coordinate (when using coordinate mode)")
|
|
141095
|
+
}),
|
|
141096
|
+
options: external_exports.object({
|
|
141097
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 5000)")
|
|
141098
|
+
}),
|
|
141099
|
+
run: async (context) => {
|
|
141100
|
+
const args2 = [context.args.target];
|
|
141101
|
+
if (context.args.y) {
|
|
141102
|
+
args2.push(context.args.y);
|
|
141103
|
+
}
|
|
141104
|
+
if (context.options.timeout !== void 0) {
|
|
141105
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141106
|
+
}
|
|
141107
|
+
return executeBrowserTool({
|
|
141108
|
+
scriptName: "browser-click.js",
|
|
141109
|
+
args: args2,
|
|
141110
|
+
outputMode: "json",
|
|
141111
|
+
cwd: options2.cwd,
|
|
141112
|
+
processExecPath: options2.processExecPath,
|
|
141113
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141114
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141115
|
+
});
|
|
141116
|
+
}
|
|
141117
|
+
});
|
|
141118
|
+
browserCli.command("fill", {
|
|
141119
|
+
description: "Fill a value into an input/textarea by snapshot ref or CSS selector",
|
|
141120
|
+
args: external_exports.object({
|
|
141121
|
+
target: external_exports.string().min(1).describe("Snapshot ref (@e1) or CSS selector"),
|
|
141122
|
+
value: external_exports.string().describe("Value to type into the element")
|
|
141123
|
+
}),
|
|
141124
|
+
options: external_exports.object({
|
|
141125
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 5000)")
|
|
141126
|
+
}),
|
|
141127
|
+
run: async (context) => {
|
|
141128
|
+
const args2 = [context.args.target, context.args.value];
|
|
141129
|
+
if (context.options.timeout !== void 0) {
|
|
141130
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141131
|
+
}
|
|
141132
|
+
return executeBrowserTool({
|
|
141133
|
+
scriptName: "browser-fill.js",
|
|
141134
|
+
args: args2,
|
|
141135
|
+
outputMode: "json",
|
|
141136
|
+
cwd: options2.cwd,
|
|
141137
|
+
processExecPath: options2.processExecPath,
|
|
141138
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141139
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141140
|
+
});
|
|
141141
|
+
}
|
|
141142
|
+
});
|
|
141143
|
+
browserCli.command("select", {
|
|
141144
|
+
description: "Select a dropdown option by snapshot ref or CSS selector",
|
|
141145
|
+
args: external_exports.object({
|
|
141146
|
+
target: external_exports.string().min(1).describe("Snapshot ref (@e1) or CSS selector"),
|
|
141147
|
+
value: external_exports.string().min(1).describe("Option text or value to select")
|
|
141148
|
+
}),
|
|
141149
|
+
options: external_exports.object({
|
|
141150
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 5000)")
|
|
141151
|
+
}),
|
|
141152
|
+
run: async (context) => {
|
|
141153
|
+
const args2 = [context.args.target, context.args.value];
|
|
141154
|
+
if (context.options.timeout !== void 0) {
|
|
141155
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141156
|
+
}
|
|
141157
|
+
return executeBrowserTool({
|
|
141158
|
+
scriptName: "browser-select.js",
|
|
141159
|
+
args: args2,
|
|
141160
|
+
outputMode: "json",
|
|
141161
|
+
cwd: options2.cwd,
|
|
141162
|
+
processExecPath: options2.processExecPath,
|
|
141163
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141164
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141165
|
+
});
|
|
141166
|
+
}
|
|
141167
|
+
});
|
|
141168
|
+
browserCli.command("console", {
|
|
141169
|
+
description: "Capture console messages from the active page",
|
|
141170
|
+
options: external_exports.object({
|
|
141171
|
+
level: external_exports.string().optional().describe("Filter by level: log, warn, error, info, debug"),
|
|
141172
|
+
listen: external_exports.number().int().positive().optional().describe("Listen for new messages for N milliseconds")
|
|
141173
|
+
}),
|
|
141174
|
+
run: async (context) => {
|
|
141175
|
+
const args2 = [];
|
|
141176
|
+
if (context.options.level) {
|
|
141177
|
+
args2.push("--level", context.options.level);
|
|
141178
|
+
}
|
|
141179
|
+
if (context.options.listen !== void 0) {
|
|
141180
|
+
args2.push("--listen", String(context.options.listen));
|
|
141181
|
+
}
|
|
141182
|
+
return executeBrowserTool({
|
|
141183
|
+
scriptName: "browser-console.js",
|
|
141184
|
+
args: args2,
|
|
141185
|
+
outputMode: "json",
|
|
141186
|
+
cwd: options2.cwd,
|
|
141187
|
+
processExecPath: options2.processExecPath,
|
|
141188
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141189
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141190
|
+
});
|
|
141191
|
+
}
|
|
141192
|
+
});
|
|
141193
|
+
browserCli.command("network", {
|
|
141194
|
+
description: "Inspect captured network requests",
|
|
141195
|
+
options: external_exports.object({
|
|
141196
|
+
method: external_exports.string().optional().describe("Filter by HTTP method (GET, POST, etc.)"),
|
|
141197
|
+
status: external_exports.string().optional().describe("Filter by status code or pattern (200, 4xx, 5xx)"),
|
|
141198
|
+
url: external_exports.string().optional().describe("Filter by URL substring"),
|
|
141199
|
+
listen: external_exports.number().int().positive().optional().describe("Listen for new requests for N milliseconds")
|
|
141200
|
+
}),
|
|
141201
|
+
run: async (context) => {
|
|
141202
|
+
const args2 = [];
|
|
141203
|
+
if (context.options.method) {
|
|
141204
|
+
args2.push("--method", context.options.method);
|
|
141205
|
+
}
|
|
141206
|
+
if (context.options.status) {
|
|
141207
|
+
args2.push("--status", context.options.status);
|
|
141208
|
+
}
|
|
141209
|
+
if (context.options.url) {
|
|
141210
|
+
args2.push("--url", context.options.url);
|
|
141211
|
+
}
|
|
141212
|
+
if (context.options.listen !== void 0) {
|
|
141213
|
+
args2.push("--listen", String(context.options.listen));
|
|
141214
|
+
}
|
|
141215
|
+
return executeBrowserTool({
|
|
141216
|
+
scriptName: "browser-network.js",
|
|
141217
|
+
args: args2,
|
|
141218
|
+
outputMode: "json",
|
|
141219
|
+
cwd: options2.cwd,
|
|
141220
|
+
processExecPath: options2.processExecPath,
|
|
141221
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141222
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141223
|
+
});
|
|
141224
|
+
}
|
|
141225
|
+
});
|
|
141226
|
+
browserCli.command("devtools", {
|
|
141227
|
+
description: "Read @docyrus/devtools state, errors, issues, or console entries from the active page",
|
|
141228
|
+
args: external_exports.object({
|
|
141229
|
+
subcommand: external_exports.enum(["state", "errors", "issues", "console"]).describe("What to read: state, errors, issues, or console")
|
|
141230
|
+
}),
|
|
141231
|
+
options: external_exports.object({
|
|
141232
|
+
level: external_exports.string().optional().describe("Filter console entries by level (for console subcommand)")
|
|
141233
|
+
}),
|
|
141234
|
+
run: async (context) => {
|
|
141235
|
+
const args2 = [context.args.subcommand];
|
|
141236
|
+
if (context.options.level) {
|
|
141237
|
+
args2.push("--level", context.options.level);
|
|
141238
|
+
}
|
|
141239
|
+
return executeBrowserTool({
|
|
141240
|
+
scriptName: "browser-devtools.js",
|
|
141241
|
+
args: args2,
|
|
141242
|
+
outputMode: "json",
|
|
141243
|
+
cwd: options2.cwd,
|
|
141244
|
+
processExecPath: options2.processExecPath,
|
|
141245
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141246
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141247
|
+
});
|
|
141248
|
+
}
|
|
141249
|
+
});
|
|
141250
|
+
browserCli.command("info", {
|
|
141251
|
+
description: "Get current page info: URL, title, viewport size, scroll position",
|
|
141252
|
+
run: async () => {
|
|
141253
|
+
return executeBrowserTool({
|
|
141254
|
+
scriptName: "browser-info.js",
|
|
141255
|
+
args: [],
|
|
141256
|
+
outputMode: "json",
|
|
141257
|
+
cwd: options2.cwd,
|
|
141258
|
+
processExecPath: options2.processExecPath,
|
|
141259
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141260
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141261
|
+
});
|
|
141262
|
+
}
|
|
141263
|
+
});
|
|
141264
|
+
browserCli.command("tabs", {
|
|
141265
|
+
description: "List open tabs or switch to a specific tab",
|
|
141266
|
+
options: external_exports.object({
|
|
141267
|
+
switch: external_exports.number().int().optional().describe("Switch to tab by index (0-based)")
|
|
141268
|
+
}),
|
|
141269
|
+
run: async (context) => {
|
|
141270
|
+
const args2 = [];
|
|
141271
|
+
if (context.options.switch !== void 0) {
|
|
141272
|
+
args2.push("--switch", String(context.options.switch));
|
|
141273
|
+
}
|
|
141274
|
+
return executeBrowserTool({
|
|
141275
|
+
scriptName: "browser-tabs.js",
|
|
141276
|
+
args: args2,
|
|
141277
|
+
outputMode: "json",
|
|
141278
|
+
cwd: options2.cwd,
|
|
141279
|
+
processExecPath: options2.processExecPath,
|
|
141280
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141281
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141282
|
+
});
|
|
141283
|
+
}
|
|
141284
|
+
});
|
|
141285
|
+
browserCli.command("close", {
|
|
141286
|
+
description: "Close the browser session",
|
|
141287
|
+
options: external_exports.object({
|
|
141288
|
+
kill: external_exports.boolean().optional().describe("Kill the local Chrome process (local mode only)")
|
|
141289
|
+
}),
|
|
141290
|
+
run: async (context) => {
|
|
141291
|
+
const args2 = [];
|
|
141292
|
+
if (context.options.kill) {
|
|
141293
|
+
args2.push("--kill");
|
|
141294
|
+
}
|
|
141295
|
+
return executeBrowserTool({
|
|
141296
|
+
scriptName: "browser-close.js",
|
|
141297
|
+
args: args2,
|
|
141298
|
+
outputMode: "json",
|
|
141299
|
+
cwd: options2.cwd,
|
|
141300
|
+
processExecPath: options2.processExecPath,
|
|
141301
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141302
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141303
|
+
});
|
|
141304
|
+
}
|
|
141305
|
+
});
|
|
141013
141306
|
return browserCli;
|
|
141014
141307
|
}
|
|
141015
141308
|
|