@mercuryo-ai/agentbrowse-cli 0.1.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.
Files changed (94) hide show
  1. package/README.md +48 -0
  2. package/dist/agentbrowse-assistive.d.ts +2 -0
  3. package/dist/agentbrowse-assistive.d.ts.map +1 -0
  4. package/dist/agentbrowse-assistive.js +67 -0
  5. package/dist/agentbrowse-assistive.js.map +1 -0
  6. package/dist/assistive-llm-client.d.ts +13 -0
  7. package/dist/assistive-llm-client.d.ts.map +1 -0
  8. package/dist/assistive-llm-client.js +153 -0
  9. package/dist/assistive-llm-client.js.map +1 -0
  10. package/dist/browser-home.d.ts +7 -0
  11. package/dist/browser-home.d.ts.map +1 -0
  12. package/dist/browser-home.js +35 -0
  13. package/dist/browser-home.js.map +1 -0
  14. package/dist/commands/act.d.ts +6 -0
  15. package/dist/commands/act.d.ts.map +1 -0
  16. package/dist/commands/act.js +9 -0
  17. package/dist/commands/act.js.map +1 -0
  18. package/dist/commands/attach.d.ts +4 -0
  19. package/dist/commands/attach.d.ts.map +1 -0
  20. package/dist/commands/attach.js +11 -0
  21. package/dist/commands/attach.js.map +1 -0
  22. package/dist/commands/browser-status.d.ts +5 -0
  23. package/dist/commands/browser-status.d.ts.map +1 -0
  24. package/dist/commands/browser-status.js +6 -0
  25. package/dist/commands/browser-status.js.map +1 -0
  26. package/dist/commands/close.d.ts +4 -0
  27. package/dist/commands/close.d.ts.map +1 -0
  28. package/dist/commands/close.js +12 -0
  29. package/dist/commands/close.js.map +1 -0
  30. package/dist/commands/extract.d.ts +5 -0
  31. package/dist/commands/extract.d.ts.map +1 -0
  32. package/dist/commands/extract.js +15 -0
  33. package/dist/commands/extract.js.map +1 -0
  34. package/dist/commands/init.d.ts +10 -0
  35. package/dist/commands/init.d.ts.map +1 -0
  36. package/dist/commands/init.js +29 -0
  37. package/dist/commands/init.js.map +1 -0
  38. package/dist/commands/launch.d.ts +4 -0
  39. package/dist/commands/launch.d.ts.map +1 -0
  40. package/dist/commands/launch.js +11 -0
  41. package/dist/commands/launch.js.map +1 -0
  42. package/dist/commands/navigate.d.ts +5 -0
  43. package/dist/commands/navigate.d.ts.map +1 -0
  44. package/dist/commands/navigate.js +10 -0
  45. package/dist/commands/navigate.js.map +1 -0
  46. package/dist/commands/observe.d.ts +5 -0
  47. package/dist/commands/observe.d.ts.map +1 -0
  48. package/dist/commands/observe.js +15 -0
  49. package/dist/commands/observe.js.map +1 -0
  50. package/dist/commands/screenshot.d.ts +5 -0
  51. package/dist/commands/screenshot.d.ts.map +1 -0
  52. package/dist/commands/screenshot.js +12 -0
  53. package/dist/commands/screenshot.js.map +1 -0
  54. package/dist/config.d.ts +2 -0
  55. package/dist/config.d.ts.map +1 -0
  56. package/dist/config.js +2 -0
  57. package/dist/config.js.map +1 -0
  58. package/dist/gateway.d.ts +5 -0
  59. package/dist/gateway.d.ts.map +1 -0
  60. package/dist/gateway.js +38 -0
  61. package/dist/gateway.js.map +1 -0
  62. package/dist/generated/build-config.d.ts +2 -0
  63. package/dist/generated/build-config.d.ts.map +1 -0
  64. package/dist/generated/build-config.js +3 -0
  65. package/dist/generated/build-config.js.map +1 -0
  66. package/dist/index.d.ts +4 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +370 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/otel-exporter.d.ts +58 -0
  71. package/dist/otel-exporter.d.ts.map +1 -0
  72. package/dist/otel-exporter.js +242 -0
  73. package/dist/otel-exporter.js.map +1 -0
  74. package/dist/otel-projector.d.ts +59 -0
  75. package/dist/otel-projector.d.ts.map +1 -0
  76. package/dist/otel-projector.js +326 -0
  77. package/dist/otel-projector.js.map +1 -0
  78. package/dist/output.d.ts +9 -0
  79. package/dist/output.d.ts.map +1 -0
  80. package/dist/output.js +27 -0
  81. package/dist/output.js.map +1 -0
  82. package/dist/package-version.d.ts +2 -0
  83. package/dist/package-version.d.ts.map +1 -0
  84. package/dist/package-version.js +15 -0
  85. package/dist/package-version.js.map +1 -0
  86. package/dist/run-store.d.ts +130 -0
  87. package/dist/run-store.d.ts.map +1 -0
  88. package/dist/run-store.js +246 -0
  89. package/dist/run-store.js.map +1 -0
  90. package/dist/workflow-state.d.ts +2 -0
  91. package/dist/workflow-state.d.ts.map +1 -0
  92. package/dist/workflow-state.js +2 -0
  93. package/dist/workflow-state.js.map +1 -0
  94. package/package.json +62 -0
@@ -0,0 +1,15 @@
1
+ import { observe as observePrimitive, } from '@mercuryo-ai/agentbrowse';
2
+ import { saveMagicPaySession } from '../workflow-state.js';
3
+ async function ensureAssistiveRuntime() {
4
+ const { ensureMagicPayAgentbrowseAssistiveRuntime } = await import('../agentbrowse-assistive.js');
5
+ ensureMagicPayAgentbrowseAssistiveRuntime();
6
+ }
7
+ export async function observe(session, instruction) {
8
+ await ensureAssistiveRuntime();
9
+ const result = await observePrimitive(session, instruction);
10
+ if (result.success) {
11
+ saveMagicPaySession(session);
12
+ }
13
+ return result;
14
+ }
15
+ //# sourceMappingURL=observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/commands/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,gBAAgB,GAG5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAC;AAIjF,KAAK,UAAU,sBAAsB;IACnC,MAAM,EAAE,yCAAyC,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAClG,yCAAyC,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAA8C,EAC9C,WAAoB;IAEpB,MAAM,sBAAsB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,mBAAmB,CAAC,OAA0B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type BrowserSessionState, type ScreenshotResult } from '@mercuryo-ai/agentbrowse';
2
+ import { type MagicPaySession } from '../workflow-state.js';
3
+ export type { ScreenshotResult };
4
+ export declare function screenshot(session: BrowserSessionState | MagicPaySession, filePath?: string): Promise<ScreenshotResult>;
5
+ //# sourceMappingURL=screenshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/commands/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,wBAAsB,UAAU,CAC9B,OAAO,EAAE,mBAAmB,GAAG,eAAe,EAC9C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
@@ -0,0 +1,12 @@
1
+ import { screenshot as screenshotPrimitive, } from '@mercuryo-ai/agentbrowse';
2
+ import { saveMagicPaySession } from '../workflow-state.js';
3
+ export async function screenshot(session, filePath) {
4
+ const initialPageRef = session.runtime?.currentPageRef;
5
+ const result = await screenshotPrimitive(session, filePath);
6
+ const currentPageRef = session.runtime?.currentPageRef;
7
+ if (result.success || currentPageRef !== initialPageRef) {
8
+ saveMagicPaySession(session);
9
+ }
10
+ return result;
11
+ }
12
+ //# sourceMappingURL=screenshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/commands/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,mBAAmB,GAGlC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAC;AAIjF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAA8C,EAC9C,QAAiB;IAEjB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;IACvD,IAAI,MAAM,CAAC,OAAO,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;QACxD,mBAAmB,CAAC,OAA0B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getMagicPayConfigPath as getConfigPath, readMagicPayConfig as readConfig, writeMagicPayConfig as writeConfig, type MagicPaySharedConfig as AgentbrowseCliConfig, } from '@mercuryo-ai/magicpay-home';
2
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,aAAa,EACtC,kBAAkB,IAAI,UAAU,EAChC,mBAAmB,IAAI,WAAW,EAClC,KAAK,oBAAoB,IAAI,oBAAoB,GAClD,MAAM,4BAA4B,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,2 @@
1
+ export { getMagicPayConfigPath as getConfigPath, readMagicPayConfig as readConfig, writeMagicPayConfig as writeConfig, } from '@mercuryo-ai/magicpay-home';
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,aAAa,EACtC,kBAAkB,IAAI,UAAU,EAChC,mBAAmB,IAAI,WAAW,GAEnC,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { MagicPayGatewayConfig } from '@mercuryo-ai/magicpay-sdk/gateway';
2
+ export declare function tryResolveMagicPayGatewayConfig(): MagicPayGatewayConfig | null;
3
+ export declare function buildMagicPayTelemetryTracesUrl(apiUrl: string): string;
4
+ export type { MagicPayGatewayConfig };
5
+ //# sourceMappingURL=gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AA6B/E,wBAAgB,+BAA+B,IAAI,qBAAqB,GAAG,IAAI,CAiB9E;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { readConfig } from './config.js';
2
+ import { DEFAULT_MAGICPAY_API_URL } from './generated/build-config.js';
3
+ function trimOrUndefined(value) {
4
+ if (!value) {
5
+ return undefined;
6
+ }
7
+ const trimmed = value.trim();
8
+ if (trimmed.length === 0 ||
9
+ trimmed.toLowerCase() === 'undefined' ||
10
+ trimmed.toLowerCase() === 'null') {
11
+ return undefined;
12
+ }
13
+ return trimmed;
14
+ }
15
+ function normalizeApiUrl(value) {
16
+ return value.replace(/\/$/, '');
17
+ }
18
+ function appendApiPath(apiUrl, suffix) {
19
+ return `${normalizeApiUrl(apiUrl)}${suffix.startsWith('/') ? suffix : `/${suffix}`}`;
20
+ }
21
+ export function tryResolveMagicPayGatewayConfig() {
22
+ const config = readConfig();
23
+ const apiKey = trimOrUndefined(process.env.MAGICPAY_API_KEY) || trimOrUndefined(config.gateway?.apiKey);
24
+ const apiUrl = trimOrUndefined(process.env.MAGICPAY_API_URL) ||
25
+ trimOrUndefined(config.gateway?.apiUrl) ||
26
+ DEFAULT_MAGICPAY_API_URL;
27
+ if (!apiKey) {
28
+ return null;
29
+ }
30
+ return {
31
+ apiKey,
32
+ apiUrl: normalizeApiUrl(apiUrl),
33
+ };
34
+ }
35
+ export function buildMagicPayTelemetryTracesUrl(apiUrl) {
36
+ return appendApiPath(apiUrl, '/observability/telemetry/traces');
37
+ }
38
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,SAAS,eAAe,CAAC,KAAyB;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IACE,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW;QACrC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,EAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc;IACnD,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GACV,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3F,MAAM,MAAM,GACV,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC7C,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;QACvC,wBAAwB,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM;QACN,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,OAAO,aAAa,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_MAGICPAY_API_URL = "https://durcottggsiesxxqzvbb.supabase.co/functions/v1/api";
2
+ //# sourceMappingURL=build-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-config.d.ts","sourceRoot":"","sources":["../../src/generated/build-config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,wBAAwB,8DACwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Generated build config. Local development keeps the dev API by default.
2
+ export const DEFAULT_MAGICPAY_API_URL = 'https://durcottggsiesxxqzvbb.supabase.co/functions/v1/api';
3
+ //# sourceMappingURL=build-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-config.js","sourceRoot":"","sources":["../../src/generated/build-config.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GACnC,2DAA2D,CAAC"}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ export declare function main(argv?: string[]): Promise<void>;
3
+ export declare function isDirectExecution(metaUrl: string, argv?: string[]): boolean;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAkVA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHvE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAWzF"}
package/dist/index.js ADDED
@@ -0,0 +1,370 @@
1
+ #!/usr/bin/env node
2
+ import { config as loadEnv } from 'dotenv';
3
+ import { realpathSync } from 'node:fs';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { act, isBrowseAction } from './commands/act.js';
6
+ import { attach } from './commands/attach.js';
7
+ import { browserStatus } from './commands/browser-status.js';
8
+ import { close } from './commands/close.js';
9
+ import { extract } from './commands/extract.js';
10
+ import { init } from './commands/init.js';
11
+ import { launch } from './commands/launch.js';
12
+ import { navigate } from './commands/navigate.js';
13
+ import { observe } from './commands/observe.js';
14
+ import { screenshot } from './commands/screenshot.js';
15
+ import { fatal, info, outputError, outputJSON } from './output.js';
16
+ import { readCurrentPackageVersion } from './package-version.js';
17
+ import { loadMagicPayBrowserSession, loadMagicPaySession, } from './workflow-state.js';
18
+ loadEnv();
19
+ const DEFAULT_COMMAND_NAME = 'agentbrowse';
20
+ const KNOWN_COMMANDS = new Set([
21
+ 'init',
22
+ 'launch',
23
+ 'attach',
24
+ 'browser-status',
25
+ 'navigate',
26
+ 'act',
27
+ 'extract',
28
+ 'observe',
29
+ 'screenshot',
30
+ 'close',
31
+ ]);
32
+ function usageText() {
33
+ return `Usage: ${DEFAULT_COMMAND_NAME} <command> [args] [options]
34
+
35
+ Commands:
36
+ init <apiKey> [--api-url <url>] Configure MagicPay gateway access for goal observe/extract
37
+ launch [url] [options] Launch browser, optionally navigate to URL
38
+ attach <cdp-url> [options] Attach to an existing browser over CDP
39
+ browser-status Check live browser/page/runtime state
40
+ navigate <url> Navigate current tab to URL
41
+ act <targetRef> <action> [value] Perform action on a previously observed target
42
+ extract '<schema-json>' [scopeRef] Extract structured data from the page or a stored scope
43
+ observe ["<goal>"] Discover available targets/elements
44
+ screenshot [--path <file>] Capture a screenshot
45
+ close Close browser and clean up
46
+
47
+ Options:
48
+ --api-url <url> Override persisted MagicPay API base URL for init
49
+ --compact Launch browser in compact window size (1280x900, default)
50
+ --full Launch browser in full-size window
51
+ --profile <name> Solver profile name for launch (default: shared config)
52
+ --proxy [url] Launch through configured proxy, or use one-off override URL
53
+ --provider <name> Optional provider label for attach (for example "browserbase")
54
+ --headful Explicit alias for headful browser mode (default)
55
+ --headless Launch browser in headless mode
56
+ --path <file> Output path for screenshot
57
+ --help Show this help message
58
+ --version Show installed CLI version
59
+
60
+ Environment:
61
+ AGENTBROWSE_COMMAND Override displayed command name
62
+ MAGICPAY_API_KEY Optional runtime override; use init for persisted config
63
+ MAGICPAY_API_URL Optional API base URL override
64
+
65
+ Persistence:
66
+ This CLI uses the shared MagicPay home under ~/.magicpay.`;
67
+ }
68
+ function ensureAgentbrowseCommandName() {
69
+ process.env.AGENTBROWSE_COMMAND =
70
+ process.env.AGENTBROWSE_COMMAND?.trim() || DEFAULT_COMMAND_NAME;
71
+ }
72
+ function getCommand(argv = process.argv) {
73
+ const rawArgs = argv.slice(2);
74
+ if (rawArgs.length === 0 || rawArgs[0] === '--help') {
75
+ info(usageText());
76
+ }
77
+ if (rawArgs[0] === '--version') {
78
+ info(readCurrentPackageVersion());
79
+ }
80
+ const command = rawArgs[0];
81
+ return {
82
+ command,
83
+ args: rawArgs.slice(1),
84
+ };
85
+ }
86
+ function getFlag(args, flag) {
87
+ const idx = args.indexOf(flag);
88
+ if (idx === -1 || idx + 1 >= args.length) {
89
+ return undefined;
90
+ }
91
+ return args[idx + 1];
92
+ }
93
+ function hasFlag(args, flag) {
94
+ return args.includes(flag);
95
+ }
96
+ function parseInitArgs(args) {
97
+ const apiKey = getPositional(args, ['--api-url']);
98
+ if (!apiKey) {
99
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} init <apiKey> [--api-url <url>]`);
100
+ }
101
+ const apiUrl = getFlag(args, '--api-url');
102
+ const allowedFlags = new Set(['--api-url']);
103
+ for (let i = 0; i < args.length; i += 1) {
104
+ const arg = args[i];
105
+ if (!arg.startsWith('--')) {
106
+ continue;
107
+ }
108
+ if (!allowedFlags.has(arg)) {
109
+ outputError(`Unknown init option: ${arg}`);
110
+ }
111
+ i += 1;
112
+ }
113
+ return {
114
+ apiKey: apiKey,
115
+ apiUrl,
116
+ };
117
+ }
118
+ function getPositional(args, valueFlags = []) {
119
+ const valueFlagSet = new Set(valueFlags);
120
+ for (let i = 0; i < args.length; i += 1) {
121
+ const arg = args[i];
122
+ if (arg.startsWith('--')) {
123
+ if (valueFlagSet.has(arg)) {
124
+ i += 1;
125
+ }
126
+ continue;
127
+ }
128
+ return arg;
129
+ }
130
+ return undefined;
131
+ }
132
+ function getPositionals(args, valueFlags = []) {
133
+ const valueFlagSet = new Set(valueFlags);
134
+ const values = [];
135
+ for (let i = 0; i < args.length; i += 1) {
136
+ const arg = args[i];
137
+ if (arg.startsWith('--')) {
138
+ if (valueFlagSet.has(arg)) {
139
+ i += 1;
140
+ }
141
+ continue;
142
+ }
143
+ values.push(arg);
144
+ }
145
+ return values;
146
+ }
147
+ function assertSemanticObserveRuntimeSupport() {
148
+ if (typeof Intl === 'undefined' || typeof Intl.Segmenter !== 'function') {
149
+ outputError('AgentBrowse requires Intl.Segmenter. Use a modern Node runtime with standard Intl support.');
150
+ }
151
+ }
152
+ function parseLaunchArgs(args) {
153
+ let url;
154
+ let compact;
155
+ let profile;
156
+ let headless;
157
+ let useProxy;
158
+ let proxy;
159
+ for (let i = 0; i < args.length; i += 1) {
160
+ const arg = args[i];
161
+ if (arg === '--headless') {
162
+ headless = true;
163
+ continue;
164
+ }
165
+ if (arg === '--headful') {
166
+ headless = false;
167
+ continue;
168
+ }
169
+ if (arg === '--compact') {
170
+ compact = true;
171
+ continue;
172
+ }
173
+ if (arg === '--full') {
174
+ compact = false;
175
+ continue;
176
+ }
177
+ if (arg === '--profile') {
178
+ const value = args[i + 1];
179
+ if (!value || value.startsWith('--')) {
180
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} launch [url] [--profile <name>] [--proxy [url]] [--headful|--headless]`);
181
+ }
182
+ profile = value;
183
+ i += 1;
184
+ continue;
185
+ }
186
+ if (arg.startsWith('--proxy=')) {
187
+ const value = arg.slice('--proxy='.length).trim();
188
+ if (!value) {
189
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} launch [url] [--profile <name>] [--proxy [url]] [--headful|--headless]`);
190
+ }
191
+ useProxy = true;
192
+ proxy = value;
193
+ continue;
194
+ }
195
+ if (arg === '--proxy') {
196
+ useProxy = true;
197
+ const value = args[i + 1];
198
+ const trailingPositionals = args.slice(i + 1).filter((entry) => !entry.startsWith('--'));
199
+ if (value && !value.startsWith('--') && (url || trailingPositionals.length > 1)) {
200
+ proxy = value;
201
+ i += 1;
202
+ }
203
+ continue;
204
+ }
205
+ if (arg.startsWith('--')) {
206
+ outputError(`Unknown launch option: ${arg}`);
207
+ }
208
+ if (url) {
209
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} launch [url] [--profile <name>] [--proxy [url]] [--headful|--headless]`);
210
+ }
211
+ url = arg;
212
+ }
213
+ return { url, compact, profile, headless, useProxy, proxy };
214
+ }
215
+ function parseAttachArgs(args) {
216
+ let cdpUrl;
217
+ let provider;
218
+ for (let i = 0; i < args.length; i += 1) {
219
+ const arg = args[i];
220
+ if (arg === '--provider') {
221
+ const value = args[i + 1];
222
+ if (!value || value.startsWith('--')) {
223
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} attach <cdp-url> [--provider <name>]`);
224
+ }
225
+ provider = value;
226
+ i += 1;
227
+ continue;
228
+ }
229
+ if (arg.startsWith('--')) {
230
+ outputError(`Unknown attach option: ${arg}`);
231
+ }
232
+ if (cdpUrl) {
233
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} attach <cdp-url> [--provider <name>]`);
234
+ }
235
+ cdpUrl = arg;
236
+ }
237
+ if (!cdpUrl) {
238
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} attach <cdp-url> [--provider <name>]`);
239
+ }
240
+ return {
241
+ cdpUrl: cdpUrl,
242
+ ...(provider ? { provider } : {}),
243
+ };
244
+ }
245
+ function requireLaunchedBrowserSessionRecord(command) {
246
+ const session = loadMagicPaySession() ?? loadMagicPayBrowserSession();
247
+ if (session) {
248
+ return session;
249
+ }
250
+ return outputJSON({
251
+ success: false,
252
+ error: 'browser_session_required',
253
+ outcomeType: 'blocked',
254
+ message: `The \`${command}\` command requires an active browser session.`,
255
+ reason: `No persisted browser session was found. Run \`${DEFAULT_COMMAND_NAME} launch [url]\` or \`${DEFAULT_COMMAND_NAME} attach <cdp-url>\` first.`,
256
+ });
257
+ }
258
+ async function resolveLaunchOptionsWithSharedHome(options) {
259
+ const { configureMagicPayAgentbrowseHome, resolveLaunchOptions } = await import('./browser-home.js');
260
+ configureMagicPayAgentbrowseHome();
261
+ return resolveLaunchOptions(options);
262
+ }
263
+ export async function main(argv = process.argv) {
264
+ ensureAgentbrowseCommandName();
265
+ const parsed = getCommand(argv);
266
+ if (!parsed) {
267
+ process.exit(1);
268
+ }
269
+ const { command, args } = parsed;
270
+ if (!KNOWN_COMMANDS.has(command)) {
271
+ outputError(`Unknown command: ${command}\n\n${usageText()}`);
272
+ }
273
+ assertSemanticObserveRuntimeSupport();
274
+ switch (command) {
275
+ case 'init': {
276
+ const initArgs = parseInitArgs(args);
277
+ outputJSON(init(initArgs.apiKey, initArgs.apiUrl));
278
+ return;
279
+ }
280
+ case 'launch': {
281
+ const launchArgs = parseLaunchArgs(args);
282
+ outputJSON(await launch(launchArgs.url, await resolveLaunchOptionsWithSharedHome(launchArgs)));
283
+ return;
284
+ }
285
+ case 'attach': {
286
+ const attachArgs = parseAttachArgs(args);
287
+ outputJSON(await attach(attachArgs.cdpUrl, {
288
+ ...(attachArgs.provider ? { provider: attachArgs.provider } : {}),
289
+ }));
290
+ return;
291
+ }
292
+ case 'browser-status': {
293
+ outputJSON(await browserStatus());
294
+ return;
295
+ }
296
+ case 'navigate': {
297
+ const url = getPositional(args);
298
+ if (!url) {
299
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} navigate <url>`);
300
+ }
301
+ outputJSON(await navigate(requireLaunchedBrowserSessionRecord(command), url));
302
+ return;
303
+ }
304
+ case 'act': {
305
+ const positionals = getPositionals(args);
306
+ const [targetRef, action, ...valueParts] = positionals;
307
+ if (!targetRef || !action) {
308
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} act <targetRef> <action> [value]`);
309
+ }
310
+ if (!isBrowseAction(action)) {
311
+ outputError(`Unsupported act action: ${action}. Expected one of: click, fill, type, select, press.`);
312
+ }
313
+ outputJSON(await act(requireLaunchedBrowserSessionRecord(command), targetRef, action, valueParts.length > 0 ? valueParts.join(' ') : undefined));
314
+ return;
315
+ }
316
+ case 'extract': {
317
+ const positionals = getPositionals(args);
318
+ const [schemaJson, scopeRef] = positionals;
319
+ if (!schemaJson) {
320
+ outputError(`Usage: ${DEFAULT_COMMAND_NAME} extract '<schema-json>' [scopeRef]`);
321
+ }
322
+ let parsedSchema;
323
+ try {
324
+ parsedSchema = JSON.parse(schemaJson);
325
+ }
326
+ catch {
327
+ outputError('The extract schema must be valid JSON.');
328
+ }
329
+ outputJSON(await extract(requireLaunchedBrowserSessionRecord(command), parsedSchema, scopeRef));
330
+ return;
331
+ }
332
+ case 'observe': {
333
+ outputJSON(await observe(requireLaunchedBrowserSessionRecord(command), getPositional(args)));
334
+ return;
335
+ }
336
+ case 'screenshot': {
337
+ if (hasFlag(args, '--help')) {
338
+ info(`Usage: ${DEFAULT_COMMAND_NAME} screenshot [--path <file>]`);
339
+ }
340
+ outputJSON(await screenshot(requireLaunchedBrowserSessionRecord(command), getFlag(args, '--path')));
341
+ return;
342
+ }
343
+ case 'close': {
344
+ outputJSON(await close());
345
+ return;
346
+ }
347
+ }
348
+ }
349
+ export function isDirectExecution(metaUrl, argv = process.argv) {
350
+ const entry = argv[1];
351
+ if (!entry) {
352
+ return false;
353
+ }
354
+ try {
355
+ return realpathSync(entry) === realpathSync(fileURLToPath(metaUrl));
356
+ }
357
+ catch {
358
+ return false;
359
+ }
360
+ }
361
+ if (isDirectExecution(import.meta.url)) {
362
+ main()
363
+ .then(() => {
364
+ process.exit(0);
365
+ })
366
+ .catch((err) => {
367
+ fatal(err instanceof Error ? err.message : String(err));
368
+ });
369
+ }
370
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { type OtlpTraceRequest } from './otel-projector.js';
2
+ export type OtlpHttpJsonExporterConfig = {
3
+ tracesEndpoint: string;
4
+ headers: Record<string, string>;
5
+ timeoutMs: number;
6
+ protocol: 'http/json';
7
+ };
8
+ export type ExportStepTraceResult = {
9
+ attempted: false;
10
+ reason: 'config_missing' | 'run_missing' | 'step_missing' | 'unsupported_protocol';
11
+ } | {
12
+ attempted: true;
13
+ success: true;
14
+ status: number;
15
+ payload: OtlpTraceRequest;
16
+ } | {
17
+ attempted: true;
18
+ success: false;
19
+ status?: number;
20
+ reason: string;
21
+ payload: OtlpTraceRequest;
22
+ };
23
+ export type ExportRunRootTraceResult = {
24
+ attempted: false;
25
+ reason: 'config_missing' | 'run_missing';
26
+ } | {
27
+ attempted: true;
28
+ success: true;
29
+ status: number;
30
+ payload: OtlpTraceRequest;
31
+ } | {
32
+ attempted: true;
33
+ success: false;
34
+ status?: number;
35
+ reason: string;
36
+ payload: OtlpTraceRequest;
37
+ };
38
+ export declare function loadOtlpHttpJsonExporterConfig(env?: NodeJS.ProcessEnv): OtlpHttpJsonExporterConfig | null;
39
+ export declare function buildRunStepOtlpTraceRequest(runId: string, stepId: string): OtlpTraceRequest | null;
40
+ export declare function exportRunStepToOtlpHttpJson(params?: {
41
+ runId: string;
42
+ stepId: string;
43
+ config?: OtlpHttpJsonExporterConfig | null;
44
+ fetchImpl?: typeof fetch;
45
+ }): Promise<ExportStepTraceResult>;
46
+ export declare function buildRunRootOtlpTraceRequest(runId: string): OtlpTraceRequest | null;
47
+ export declare function exportRunRootToOtlpHttpJson(params?: {
48
+ runId: string;
49
+ config?: OtlpHttpJsonExporterConfig | null;
50
+ fetchImpl?: typeof fetch;
51
+ }): Promise<ExportRunRootTraceResult>;
52
+ export declare function exportRunStepToOtlpHttpJsonBestEffort(runId: string | undefined, stepId: string | undefined, options?: {
53
+ fetchImpl?: typeof fetch;
54
+ }): Promise<ExportStepTraceResult>;
55
+ export declare function exportRunRootToOtlpHttpJsonBestEffort(runId: string | undefined, options?: {
56
+ fetchImpl?: typeof fetch;
57
+ }): Promise<ExportRunRootTraceResult>;
58
+ //# sourceMappingURL=otel-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-exporter.d.ts","sourceRoot":"","sources":["../src/otel-exporter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM7H,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IACE,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,cAAc,GAAG,sBAAsB,CAAC;CACpF,GACD;IACE,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B,GACD;IACE,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAChC;IACE,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAC;CAC1C,GACD;IACE,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B,GACD;IACE,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAsEN,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,0BAA0B,GAAG,IAAI,CA0CnC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAenG;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,GAAE;IACN,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAI1B,GACA,OAAO,CAAC,qBAAqB,CAAC,CAuDhC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOnF;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,GAAE;IACN,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAG1B,GACA,OAAO,CAAC,wBAAwB,CAAC,CAkDnC;AAED,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACrB,GACL,OAAO,CAAC,qBAAqB,CAAC,CAUhC;AAED,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACrB,GACL,OAAO,CAAC,wBAAwB,CAAC,CASnC"}