@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.
- package/README.md +48 -0
- package/dist/agentbrowse-assistive.d.ts +2 -0
- package/dist/agentbrowse-assistive.d.ts.map +1 -0
- package/dist/agentbrowse-assistive.js +67 -0
- package/dist/agentbrowse-assistive.js.map +1 -0
- package/dist/assistive-llm-client.d.ts +13 -0
- package/dist/assistive-llm-client.d.ts.map +1 -0
- package/dist/assistive-llm-client.js +153 -0
- package/dist/assistive-llm-client.js.map +1 -0
- package/dist/browser-home.d.ts +7 -0
- package/dist/browser-home.d.ts.map +1 -0
- package/dist/browser-home.js +35 -0
- package/dist/browser-home.js.map +1 -0
- package/dist/commands/act.d.ts +6 -0
- package/dist/commands/act.d.ts.map +1 -0
- package/dist/commands/act.js +9 -0
- package/dist/commands/act.js.map +1 -0
- package/dist/commands/attach.d.ts +4 -0
- package/dist/commands/attach.d.ts.map +1 -0
- package/dist/commands/attach.js +11 -0
- package/dist/commands/attach.js.map +1 -0
- package/dist/commands/browser-status.d.ts +5 -0
- package/dist/commands/browser-status.d.ts.map +1 -0
- package/dist/commands/browser-status.js +6 -0
- package/dist/commands/browser-status.js.map +1 -0
- package/dist/commands/close.d.ts +4 -0
- package/dist/commands/close.d.ts.map +1 -0
- package/dist/commands/close.js +12 -0
- package/dist/commands/close.js.map +1 -0
- package/dist/commands/extract.d.ts +5 -0
- package/dist/commands/extract.d.ts.map +1 -0
- package/dist/commands/extract.js +15 -0
- package/dist/commands/extract.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +29 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/launch.d.ts +4 -0
- package/dist/commands/launch.d.ts.map +1 -0
- package/dist/commands/launch.js +11 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/navigate.d.ts +5 -0
- package/dist/commands/navigate.d.ts.map +1 -0
- package/dist/commands/navigate.js +10 -0
- package/dist/commands/navigate.js.map +1 -0
- package/dist/commands/observe.d.ts +5 -0
- package/dist/commands/observe.d.ts.map +1 -0
- package/dist/commands/observe.js +15 -0
- package/dist/commands/observe.js.map +1 -0
- package/dist/commands/screenshot.d.ts +5 -0
- package/dist/commands/screenshot.d.ts.map +1 -0
- package/dist/commands/screenshot.js +12 -0
- package/dist/commands/screenshot.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/gateway.d.ts +5 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +38 -0
- package/dist/gateway.js.map +1 -0
- package/dist/generated/build-config.d.ts +2 -0
- package/dist/generated/build-config.d.ts.map +1 -0
- package/dist/generated/build-config.js +3 -0
- package/dist/generated/build-config.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +370 -0
- package/dist/index.js.map +1 -0
- package/dist/otel-exporter.d.ts +58 -0
- package/dist/otel-exporter.d.ts.map +1 -0
- package/dist/otel-exporter.js +242 -0
- package/dist/otel-exporter.js.map +1 -0
- package/dist/otel-projector.d.ts +59 -0
- package/dist/otel-projector.d.ts.map +1 -0
- package/dist/otel-projector.js +326 -0
- package/dist/otel-projector.js.map +1 -0
- package/dist/output.d.ts +9 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +27 -0
- package/dist/output.js.map +1 -0
- package/dist/package-version.d.ts +2 -0
- package/dist/package-version.d.ts.map +1 -0
- package/dist/package-version.js +15 -0
- package/dist/package-version.js.map +1 -0
- package/dist/run-store.d.ts +130 -0
- package/dist/run-store.d.ts.map +1 -0
- package/dist/run-store.js +246 -0
- package/dist/run-store.js.map +1 -0
- package/dist/workflow-state.d.ts +2 -0
- package/dist/workflow-state.d.ts.map +1 -0
- package/dist/workflow-state.js +2 -0
- package/dist/workflow-state.js.map +1 -0
- 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"}
|
package/dist/config.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/dist/gateway.js
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|