@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.
Files changed (44) hide show
  1. package/README.md +46 -0
  2. package/agent-loader.js +1 -1
  3. package/agent-loader.js.map +2 -2
  4. package/main.js +315 -22
  5. package/main.js.map +2 -2
  6. package/package.json +1 -1
  7. package/resources/browser-tools/browser-click.js +74 -0
  8. package/resources/browser-tools/browser-client.js +236 -0
  9. package/resources/browser-tools/browser-close.js +19 -0
  10. package/resources/browser-tools/browser-console.js +73 -0
  11. package/resources/browser-tools/browser-content.js +36 -75
  12. package/resources/browser-tools/browser-cookies.js +19 -14
  13. package/resources/browser-tools/browser-daemon.js +452 -0
  14. package/resources/browser-tools/browser-devtools.js +62 -0
  15. package/resources/browser-tools/browser-eval.js +16 -22
  16. package/resources/browser-tools/browser-fill.js +70 -0
  17. package/resources/browser-tools/browser-info.js +13 -0
  18. package/resources/browser-tools/browser-nav.js +21 -22
  19. package/resources/browser-tools/browser-network.js +91 -0
  20. package/resources/browser-tools/browser-run-script.js +12 -30
  21. package/resources/browser-tools/browser-screenshot.js +22 -22
  22. package/resources/browser-tools/browser-select.js +59 -0
  23. package/resources/browser-tools/browser-snapshot.js +100 -0
  24. package/resources/browser-tools/browser-start.js +101 -85
  25. package/resources/browser-tools/browser-tabs.js +38 -0
  26. package/resources/browser-tools/browser-wait.js +50 -0
  27. package/resources/pi-agent/skills/docyrus-chrome-devtools-cli/SKILL.md +157 -46
  28. package/server-loader.js +17 -229
  29. package/server-loader.js.map +4 -4
  30. package/resources/browser-tools/browser-connect.js +0 -172
  31. package/resources/browser-tools/browser-pick.js +0 -143
  32. package/resources/pi-agent/extensions/docyrus-web-browser.ts +0 -31
  33. package/resources/pi-agent/shared/docyrusWebBrowserProtocol.ts +0 -169
  34. package/resources/pi-agent/skills/agent-browser/SKILL.md +0 -779
  35. package/resources/pi-agent/skills/agent-browser/references/authentication.md +0 -303
  36. package/resources/pi-agent/skills/agent-browser/references/commands.md +0 -295
  37. package/resources/pi-agent/skills/agent-browser/references/profiling.md +0 -120
  38. package/resources/pi-agent/skills/agent-browser/references/proxy-support.md +0 -194
  39. package/resources/pi-agent/skills/agent-browser/references/session-management.md +0 -193
  40. package/resources/pi-agent/skills/agent-browser/references/snapshot-refs.md +0 -219
  41. package/resources/pi-agent/skills/agent-browser/references/video-recording.md +0 -173
  42. package/resources/pi-agent/skills/agent-browser/templates/authenticated-session.sh +0 -105
  43. package/resources/pi-agent/skills/agent-browser/templates/capture-workflow.sh +0 -69
  44. 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.59",
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: [context.args.code],
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
- run: async () => {
140923
- return executeBrowserTool({
140924
- scriptName: "browser-screenshot.js",
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-pick.js",
140942
- args: [context.args.message],
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
- run: async () => {
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