@docyrus/docyrus 0.0.59 → 0.0.62
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 +321 -25
- 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/extensions/browser-tools.ts +229 -0
- package/resources/pi-agent/skills/docyrus-chrome-devtools-cli/SKILL.md +157 -46
- package/server-loader.js +580 -232
- 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.62",
|
|
139353
139353
|
private: false,
|
|
139354
139354
|
description: "Docyrus API CLI",
|
|
139355
139355
|
main: "./main.js",
|
|
@@ -139867,7 +139867,8 @@ function createServerCli(dependencies) {
|
|
|
139867
139867
|
apiKey: external_exports.string().optional().describe("Temporary provider API key override for this run"),
|
|
139868
139868
|
auth: external_exports.string().optional().describe("Require this bearer token for all HTTP requests"),
|
|
139869
139869
|
verbose: external_exports.boolean().optional().describe("Enable verbose pi startup output"),
|
|
139870
|
-
sandbox: external_exports.boolean().optional().describe("Enable sandbox browser mode (remote Cloudflare Browser Rendering)")
|
|
139870
|
+
sandbox: external_exports.boolean().optional().describe("Enable sandbox browser mode (remote Cloudflare Browser Rendering)"),
|
|
139871
|
+
desktop: external_exports.boolean().optional().describe("Enable desktop browser automation tools (docyrus_browser_*)")
|
|
139871
139872
|
}),
|
|
139872
139873
|
run: async (context) => {
|
|
139873
139874
|
await dependencies.launchPiAgentServer({
|
|
@@ -139880,7 +139881,8 @@ function createServerCli(dependencies) {
|
|
|
139880
139881
|
apiKey: context.options.apiKey,
|
|
139881
139882
|
auth: context.options.auth,
|
|
139882
139883
|
verbose: context.options.verbose || hasRawVerboseFlag2() ? true : void 0,
|
|
139883
|
-
sandbox: context.options.sandbox
|
|
139884
|
+
sandbox: context.options.sandbox,
|
|
139885
|
+
desktop: context.options.desktop
|
|
139884
139886
|
});
|
|
139885
139887
|
}
|
|
139886
139888
|
});
|
|
@@ -140905,10 +140907,17 @@ function createBrowserCli(options2 = {}) {
|
|
|
140905
140907
|
args: external_exports.object({
|
|
140906
140908
|
code: external_exports.string().min(1)
|
|
140907
140909
|
}),
|
|
140910
|
+
options: external_exports.object({
|
|
140911
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 30000)")
|
|
140912
|
+
}),
|
|
140908
140913
|
run: async (context) => {
|
|
140914
|
+
const args2 = [context.args.code];
|
|
140915
|
+
if (context.options.timeout !== void 0) {
|
|
140916
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
140917
|
+
}
|
|
140909
140918
|
return executeBrowserTool({
|
|
140910
140919
|
scriptName: "browser-eval.js",
|
|
140911
|
-
args:
|
|
140920
|
+
args: args2,
|
|
140912
140921
|
outputMode: "json",
|
|
140913
140922
|
cwd: options2.cwd,
|
|
140914
140923
|
processExecPath: options2.processExecPath,
|
|
@@ -140919,27 +140928,21 @@ function createBrowserCli(options2 = {}) {
|
|
|
140919
140928
|
});
|
|
140920
140929
|
browserCli.command("screenshot", {
|
|
140921
140930
|
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)
|
|
140931
|
+
options: external_exports.object({
|
|
140932
|
+
full: external_exports.boolean().optional().describe("Capture full page instead of just the viewport"),
|
|
140933
|
+
base64: external_exports.boolean().optional().describe("Return base64-encoded image data instead of a file path")
|
|
140938
140934
|
}),
|
|
140939
140935
|
run: async (context) => {
|
|
140936
|
+
const args2 = [];
|
|
140937
|
+
if (context.options.full) {
|
|
140938
|
+
args2.push("--full");
|
|
140939
|
+
}
|
|
140940
|
+
if (context.options.base64) {
|
|
140941
|
+
args2.push("--base64");
|
|
140942
|
+
}
|
|
140940
140943
|
return executeBrowserTool({
|
|
140941
|
-
scriptName: "browser-
|
|
140942
|
-
args:
|
|
140944
|
+
scriptName: "browser-screenshot.js",
|
|
140945
|
+
args: args2,
|
|
140943
140946
|
outputMode: "json",
|
|
140944
140947
|
cwd: options2.cwd,
|
|
140945
140948
|
processExecPath: options2.processExecPath,
|
|
@@ -140950,10 +140953,21 @@ function createBrowserCli(options2 = {}) {
|
|
|
140950
140953
|
});
|
|
140951
140954
|
browserCli.command("cookies", {
|
|
140952
140955
|
description: "Show cookies for the active browser tab",
|
|
140953
|
-
|
|
140956
|
+
options: external_exports.object({
|
|
140957
|
+
name: external_exports.string().optional().describe("Filter cookies by exact name"),
|
|
140958
|
+
domain: external_exports.string().optional().describe("Filter cookies by domain (substring match)")
|
|
140959
|
+
}),
|
|
140960
|
+
run: async (context) => {
|
|
140961
|
+
const args2 = [];
|
|
140962
|
+
if (context.options.name) {
|
|
140963
|
+
args2.push("--name", context.options.name);
|
|
140964
|
+
}
|
|
140965
|
+
if (context.options.domain) {
|
|
140966
|
+
args2.push("--domain", context.options.domain);
|
|
140967
|
+
}
|
|
140954
140968
|
return executeBrowserTool({
|
|
140955
140969
|
scriptName: "browser-cookies.js",
|
|
140956
|
-
args:
|
|
140970
|
+
args: args2,
|
|
140957
140971
|
outputMode: "json",
|
|
140958
140972
|
cwd: options2.cwd,
|
|
140959
140973
|
processExecPath: options2.processExecPath,
|
|
@@ -140971,6 +140985,7 @@ function createBrowserCli(options2 = {}) {
|
|
|
140971
140985
|
return executeBrowserTool({
|
|
140972
140986
|
scriptName: "browser-content.js",
|
|
140973
140987
|
args: [context.args.url],
|
|
140988
|
+
outputMode: "json",
|
|
140974
140989
|
cwd: options2.cwd,
|
|
140975
140990
|
processExecPath: options2.processExecPath,
|
|
140976
140991
|
spawnSyncFn: options2.spawnSyncFn,
|
|
@@ -141010,6 +141025,286 @@ function createBrowserCli(options2 = {}) {
|
|
|
141010
141025
|
});
|
|
141011
141026
|
}
|
|
141012
141027
|
});
|
|
141028
|
+
browserCli.command("wait", {
|
|
141029
|
+
description: "Wait for a condition before proceeding",
|
|
141030
|
+
options: external_exports.object({
|
|
141031
|
+
idle: external_exports.boolean().optional().describe("Wait for network idle"),
|
|
141032
|
+
selector: external_exports.string().optional().describe("Wait for CSS selector to appear"),
|
|
141033
|
+
url: external_exports.string().optional().describe("Wait for URL to match glob pattern"),
|
|
141034
|
+
timeout: external_exports.number().int().positive().optional().describe("Maximum wait time in ms (default: 15000)")
|
|
141035
|
+
}),
|
|
141036
|
+
args: external_exports.object({
|
|
141037
|
+
ms: external_exports.string().optional().describe("Fixed delay in milliseconds")
|
|
141038
|
+
}),
|
|
141039
|
+
run: async (context) => {
|
|
141040
|
+
const args2 = [];
|
|
141041
|
+
if (context.options.idle) {
|
|
141042
|
+
args2.push("--idle");
|
|
141043
|
+
}
|
|
141044
|
+
if (context.options.selector) {
|
|
141045
|
+
args2.push("--selector", context.options.selector);
|
|
141046
|
+
}
|
|
141047
|
+
if (context.options.url) {
|
|
141048
|
+
args2.push("--url", context.options.url);
|
|
141049
|
+
}
|
|
141050
|
+
if (context.options.timeout !== void 0) {
|
|
141051
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141052
|
+
}
|
|
141053
|
+
if (context.args.ms) {
|
|
141054
|
+
args2.push(context.args.ms);
|
|
141055
|
+
}
|
|
141056
|
+
return executeBrowserTool({
|
|
141057
|
+
scriptName: "browser-wait.js",
|
|
141058
|
+
args: args2,
|
|
141059
|
+
outputMode: "json",
|
|
141060
|
+
cwd: options2.cwd,
|
|
141061
|
+
processExecPath: options2.processExecPath,
|
|
141062
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141063
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141064
|
+
});
|
|
141065
|
+
}
|
|
141066
|
+
});
|
|
141067
|
+
browserCli.command("snapshot", {
|
|
141068
|
+
description: "Get a compact snapshot of page elements with refs for interaction",
|
|
141069
|
+
options: external_exports.object({
|
|
141070
|
+
all: external_exports.boolean().optional().describe("Include all elements, not just interactive ones"),
|
|
141071
|
+
selector: external_exports.string().optional().describe("Scope snapshot to a CSS selector subtree")
|
|
141072
|
+
}),
|
|
141073
|
+
run: async (context) => {
|
|
141074
|
+
const args2 = [];
|
|
141075
|
+
if (context.options.all) {
|
|
141076
|
+
args2.push("--all");
|
|
141077
|
+
}
|
|
141078
|
+
if (context.options.selector) {
|
|
141079
|
+
args2.push("--selector", context.options.selector);
|
|
141080
|
+
}
|
|
141081
|
+
return executeBrowserTool({
|
|
141082
|
+
scriptName: "browser-snapshot.js",
|
|
141083
|
+
args: args2,
|
|
141084
|
+
outputMode: "json",
|
|
141085
|
+
cwd: options2.cwd,
|
|
141086
|
+
processExecPath: options2.processExecPath,
|
|
141087
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141088
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141089
|
+
});
|
|
141090
|
+
}
|
|
141091
|
+
});
|
|
141092
|
+
browserCli.command("click", {
|
|
141093
|
+
description: "Click an element by snapshot ref, CSS selector, or x,y coordinates",
|
|
141094
|
+
args: external_exports.object({
|
|
141095
|
+
target: external_exports.string().min(1).describe("Snapshot ref (@e1), CSS selector, or x coordinate"),
|
|
141096
|
+
y: external_exports.string().optional().describe("y coordinate (when using coordinate mode)")
|
|
141097
|
+
}),
|
|
141098
|
+
options: external_exports.object({
|
|
141099
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 5000)")
|
|
141100
|
+
}),
|
|
141101
|
+
run: async (context) => {
|
|
141102
|
+
const args2 = [context.args.target];
|
|
141103
|
+
if (context.args.y) {
|
|
141104
|
+
args2.push(context.args.y);
|
|
141105
|
+
}
|
|
141106
|
+
if (context.options.timeout !== void 0) {
|
|
141107
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141108
|
+
}
|
|
141109
|
+
return executeBrowserTool({
|
|
141110
|
+
scriptName: "browser-click.js",
|
|
141111
|
+
args: args2,
|
|
141112
|
+
outputMode: "json",
|
|
141113
|
+
cwd: options2.cwd,
|
|
141114
|
+
processExecPath: options2.processExecPath,
|
|
141115
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141116
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141117
|
+
});
|
|
141118
|
+
}
|
|
141119
|
+
});
|
|
141120
|
+
browserCli.command("fill", {
|
|
141121
|
+
description: "Fill a value into an input/textarea by snapshot ref or CSS selector",
|
|
141122
|
+
args: external_exports.object({
|
|
141123
|
+
target: external_exports.string().min(1).describe("Snapshot ref (@e1) or CSS selector"),
|
|
141124
|
+
value: external_exports.string().describe("Value to type into the element")
|
|
141125
|
+
}),
|
|
141126
|
+
options: external_exports.object({
|
|
141127
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 5000)")
|
|
141128
|
+
}),
|
|
141129
|
+
run: async (context) => {
|
|
141130
|
+
const args2 = [context.args.target, context.args.value];
|
|
141131
|
+
if (context.options.timeout !== void 0) {
|
|
141132
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141133
|
+
}
|
|
141134
|
+
return executeBrowserTool({
|
|
141135
|
+
scriptName: "browser-fill.js",
|
|
141136
|
+
args: args2,
|
|
141137
|
+
outputMode: "json",
|
|
141138
|
+
cwd: options2.cwd,
|
|
141139
|
+
processExecPath: options2.processExecPath,
|
|
141140
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141141
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141142
|
+
});
|
|
141143
|
+
}
|
|
141144
|
+
});
|
|
141145
|
+
browserCli.command("select", {
|
|
141146
|
+
description: "Select a dropdown option by snapshot ref or CSS selector",
|
|
141147
|
+
args: external_exports.object({
|
|
141148
|
+
target: external_exports.string().min(1).describe("Snapshot ref (@e1) or CSS selector"),
|
|
141149
|
+
value: external_exports.string().min(1).describe("Option text or value to select")
|
|
141150
|
+
}),
|
|
141151
|
+
options: external_exports.object({
|
|
141152
|
+
timeout: external_exports.number().int().positive().optional().describe("Timeout in milliseconds (default: 5000)")
|
|
141153
|
+
}),
|
|
141154
|
+
run: async (context) => {
|
|
141155
|
+
const args2 = [context.args.target, context.args.value];
|
|
141156
|
+
if (context.options.timeout !== void 0) {
|
|
141157
|
+
args2.push("--timeout", String(context.options.timeout));
|
|
141158
|
+
}
|
|
141159
|
+
return executeBrowserTool({
|
|
141160
|
+
scriptName: "browser-select.js",
|
|
141161
|
+
args: args2,
|
|
141162
|
+
outputMode: "json",
|
|
141163
|
+
cwd: options2.cwd,
|
|
141164
|
+
processExecPath: options2.processExecPath,
|
|
141165
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141166
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141167
|
+
});
|
|
141168
|
+
}
|
|
141169
|
+
});
|
|
141170
|
+
browserCli.command("console", {
|
|
141171
|
+
description: "Capture console messages from the active page",
|
|
141172
|
+
options: external_exports.object({
|
|
141173
|
+
level: external_exports.string().optional().describe("Filter by level: log, warn, error, info, debug"),
|
|
141174
|
+
listen: external_exports.number().int().positive().optional().describe("Listen for new messages for N milliseconds")
|
|
141175
|
+
}),
|
|
141176
|
+
run: async (context) => {
|
|
141177
|
+
const args2 = [];
|
|
141178
|
+
if (context.options.level) {
|
|
141179
|
+
args2.push("--level", context.options.level);
|
|
141180
|
+
}
|
|
141181
|
+
if (context.options.listen !== void 0) {
|
|
141182
|
+
args2.push("--listen", String(context.options.listen));
|
|
141183
|
+
}
|
|
141184
|
+
return executeBrowserTool({
|
|
141185
|
+
scriptName: "browser-console.js",
|
|
141186
|
+
args: args2,
|
|
141187
|
+
outputMode: "json",
|
|
141188
|
+
cwd: options2.cwd,
|
|
141189
|
+
processExecPath: options2.processExecPath,
|
|
141190
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141191
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141192
|
+
});
|
|
141193
|
+
}
|
|
141194
|
+
});
|
|
141195
|
+
browserCli.command("network", {
|
|
141196
|
+
description: "Inspect captured network requests",
|
|
141197
|
+
options: external_exports.object({
|
|
141198
|
+
method: external_exports.string().optional().describe("Filter by HTTP method (GET, POST, etc.)"),
|
|
141199
|
+
status: external_exports.string().optional().describe("Filter by status code or pattern (200, 4xx, 5xx)"),
|
|
141200
|
+
url: external_exports.string().optional().describe("Filter by URL substring"),
|
|
141201
|
+
listen: external_exports.number().int().positive().optional().describe("Listen for new requests for N milliseconds")
|
|
141202
|
+
}),
|
|
141203
|
+
run: async (context) => {
|
|
141204
|
+
const args2 = [];
|
|
141205
|
+
if (context.options.method) {
|
|
141206
|
+
args2.push("--method", context.options.method);
|
|
141207
|
+
}
|
|
141208
|
+
if (context.options.status) {
|
|
141209
|
+
args2.push("--status", context.options.status);
|
|
141210
|
+
}
|
|
141211
|
+
if (context.options.url) {
|
|
141212
|
+
args2.push("--url", context.options.url);
|
|
141213
|
+
}
|
|
141214
|
+
if (context.options.listen !== void 0) {
|
|
141215
|
+
args2.push("--listen", String(context.options.listen));
|
|
141216
|
+
}
|
|
141217
|
+
return executeBrowserTool({
|
|
141218
|
+
scriptName: "browser-network.js",
|
|
141219
|
+
args: args2,
|
|
141220
|
+
outputMode: "json",
|
|
141221
|
+
cwd: options2.cwd,
|
|
141222
|
+
processExecPath: options2.processExecPath,
|
|
141223
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141224
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141225
|
+
});
|
|
141226
|
+
}
|
|
141227
|
+
});
|
|
141228
|
+
browserCli.command("devtools", {
|
|
141229
|
+
description: "Read @docyrus/devtools state, errors, issues, or console entries from the active page",
|
|
141230
|
+
args: external_exports.object({
|
|
141231
|
+
subcommand: external_exports.enum(["state", "errors", "issues", "console"]).describe("What to read: state, errors, issues, or console")
|
|
141232
|
+
}),
|
|
141233
|
+
options: external_exports.object({
|
|
141234
|
+
level: external_exports.string().optional().describe("Filter console entries by level (for console subcommand)")
|
|
141235
|
+
}),
|
|
141236
|
+
run: async (context) => {
|
|
141237
|
+
const args2 = [context.args.subcommand];
|
|
141238
|
+
if (context.options.level) {
|
|
141239
|
+
args2.push("--level", context.options.level);
|
|
141240
|
+
}
|
|
141241
|
+
return executeBrowserTool({
|
|
141242
|
+
scriptName: "browser-devtools.js",
|
|
141243
|
+
args: args2,
|
|
141244
|
+
outputMode: "json",
|
|
141245
|
+
cwd: options2.cwd,
|
|
141246
|
+
processExecPath: options2.processExecPath,
|
|
141247
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141248
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141249
|
+
});
|
|
141250
|
+
}
|
|
141251
|
+
});
|
|
141252
|
+
browserCli.command("info", {
|
|
141253
|
+
description: "Get current page info: URL, title, viewport size, scroll position",
|
|
141254
|
+
run: async () => {
|
|
141255
|
+
return executeBrowserTool({
|
|
141256
|
+
scriptName: "browser-info.js",
|
|
141257
|
+
args: [],
|
|
141258
|
+
outputMode: "json",
|
|
141259
|
+
cwd: options2.cwd,
|
|
141260
|
+
processExecPath: options2.processExecPath,
|
|
141261
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141262
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141263
|
+
});
|
|
141264
|
+
}
|
|
141265
|
+
});
|
|
141266
|
+
browserCli.command("tabs", {
|
|
141267
|
+
description: "List open tabs or switch to a specific tab",
|
|
141268
|
+
options: external_exports.object({
|
|
141269
|
+
switch: external_exports.number().int().optional().describe("Switch to tab by index (0-based)")
|
|
141270
|
+
}),
|
|
141271
|
+
run: async (context) => {
|
|
141272
|
+
const args2 = [];
|
|
141273
|
+
if (context.options.switch !== void 0) {
|
|
141274
|
+
args2.push("--switch", String(context.options.switch));
|
|
141275
|
+
}
|
|
141276
|
+
return executeBrowserTool({
|
|
141277
|
+
scriptName: "browser-tabs.js",
|
|
141278
|
+
args: args2,
|
|
141279
|
+
outputMode: "json",
|
|
141280
|
+
cwd: options2.cwd,
|
|
141281
|
+
processExecPath: options2.processExecPath,
|
|
141282
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141283
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141284
|
+
});
|
|
141285
|
+
}
|
|
141286
|
+
});
|
|
141287
|
+
browserCli.command("close", {
|
|
141288
|
+
description: "Close the browser session",
|
|
141289
|
+
options: external_exports.object({
|
|
141290
|
+
kill: external_exports.boolean().optional().describe("Kill the local Chrome process (local mode only)")
|
|
141291
|
+
}),
|
|
141292
|
+
run: async (context) => {
|
|
141293
|
+
const args2 = [];
|
|
141294
|
+
if (context.options.kill) {
|
|
141295
|
+
args2.push("--kill");
|
|
141296
|
+
}
|
|
141297
|
+
return executeBrowserTool({
|
|
141298
|
+
scriptName: "browser-close.js",
|
|
141299
|
+
args: args2,
|
|
141300
|
+
outputMode: "json",
|
|
141301
|
+
cwd: options2.cwd,
|
|
141302
|
+
processExecPath: options2.processExecPath,
|
|
141303
|
+
spawnSyncFn: options2.spawnSyncFn,
|
|
141304
|
+
resolveBrowserToolsResourceRootFn: options2.resolveBrowserToolsResourceRootFn
|
|
141305
|
+
});
|
|
141306
|
+
}
|
|
141307
|
+
});
|
|
141013
141308
|
return browserCli;
|
|
141014
141309
|
}
|
|
141015
141310
|
|
|
@@ -154396,7 +154691,8 @@ function createPiAgentServerLauncher(options2) {
|
|
|
154396
154691
|
DOCYRUS_CLI_ENTRY: cliEntryPath,
|
|
154397
154692
|
DOCYRUS_CLI_SCOPE: options2.settingsPaths.scope,
|
|
154398
154693
|
OFFICECLI_SKIP_UPDATE: "1",
|
|
154399
|
-
...request.sandbox ? { DOCYRUS_BROWSER_SANDBOX: "1" } : {}
|
|
154694
|
+
...request.sandbox ? { DOCYRUS_BROWSER_SANDBOX: "1" } : {},
|
|
154695
|
+
...request.desktop ? { DOCYRUS_DESKTOP_TOOLS: "1" } : {}
|
|
154400
154696
|
}
|
|
154401
154697
|
});
|
|
154402
154698
|
await new Promise((resolve2, reject) => {
|