@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
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # @mercuryo-ai/agentbrowse-cli
2
+
3
+ Browser-only CLI wrapper for `@mercuryo-ai/agentbrowse` on the shared
4
+ `~/.magicpay` home.
5
+
6
+ `agentbrowse` is the browser operator surface for:
7
+
8
+ - bootstrapping shared MagicPay backend config for goal-based browser reasoning;
9
+ - launching or attaching to a browser over CDP;
10
+ - reading browser/page/runtime diagnostics;
11
+ - navigating, observing, acting, extracting, and taking screenshots;
12
+ - closing the shared browser session without owning payment/session/secrets
13
+ flows.
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ npm i -g @mercuryo-ai/agentbrowse-cli
19
+ agentbrowse init <magicpay-api-key>
20
+ agentbrowse --help
21
+ ```
22
+
23
+ `observe` and `extract` use the shared MagicPay assistive backend. Configure it
24
+ once with `agentbrowse init <apiKey>` or provide `MAGICPAY_API_KEY` and
25
+ `MAGICPAY_API_URL` at runtime.
26
+
27
+ ## Current surface
28
+
29
+ - `init`
30
+ - `launch`
31
+ - `attach`
32
+ - `browser-status`
33
+ - `navigate`
34
+ - `observe`
35
+ - `act`
36
+ - `extract`
37
+ - `screenshot`
38
+ - `close`
39
+
40
+ ## Architecture boundary
41
+
42
+ - `agentbrowse` is the operator CLI for browser-only workflows.
43
+ - `@mercuryo-ai/agentbrowse` owns browser primitives and the reusable runtime.
44
+ - `@mercuryo-ai/magicpay-home` owns the shared `~/.magicpay` local-home contract.
45
+ - `@mercuryo-ai/magicpay-sdk` provides the shared MagicPay gateway contract used by
46
+ browser goal-observe/extract assistive flows.
47
+ - `@mercuryo-ai/agentbrowse-cli` owns only the branded browser CLI UX and shared
48
+ home wiring, including shared gateway bootstrap for assistive browser goals.
@@ -0,0 +1,2 @@
1
+ export declare function ensureMagicPayAgentbrowseAssistiveRuntime(): void;
2
+ //# sourceMappingURL=agentbrowse-assistive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentbrowse-assistive.d.ts","sourceRoot":"","sources":["../src/agentbrowse-assistive.ts"],"names":[],"mappings":"AAqEA,wBAAgB,yCAAyC,IAAI,IAAI,CAWhE"}
@@ -0,0 +1,67 @@
1
+ import { configureAgentbrowseAssistiveRuntime, configureAgentbrowseDiagnostics, } from '@mercuryo-ai/agentbrowse';
2
+ import { tryResolveMagicPayGatewayConfig } from './gateway.js';
3
+ import { exportRunStepToOtlpHttpJsonBestEffort } from './otel-exporter.js';
4
+ import { appendStepChildSpan, finishRunStep, startRunStep } from './run-store.js';
5
+ import { MagicPayAssistiveLlmClient } from './assistive-llm-client.js';
6
+ const agentbrowseDiagnostics = {
7
+ startStep(input) {
8
+ if (!input.runId) {
9
+ return null;
10
+ }
11
+ const step = startRunStep({
12
+ runId: input.runId,
13
+ command: input.command,
14
+ ...(input.input ? { input: input.input } : {}),
15
+ ...(input.refs ? { refs: input.refs } : {}),
16
+ ...(input.protectedStep ? { protectedStep: true } : {}),
17
+ });
18
+ if (!step) {
19
+ return null;
20
+ }
21
+ return {
22
+ runId: step.runId,
23
+ stepId: step.stepId,
24
+ command: input.command,
25
+ };
26
+ },
27
+ async finishStep(input) {
28
+ if (!input.step) {
29
+ return;
30
+ }
31
+ finishRunStep({
32
+ runId: input.step.runId,
33
+ stepId: input.step.stepId,
34
+ success: input.success,
35
+ ...(input.outcomeType ? { outcomeType: input.outcomeType } : {}),
36
+ ...(input.message ? { message: input.message } : {}),
37
+ ...(input.reason ? { reason: input.reason } : {}),
38
+ });
39
+ await exportRunStepToOtlpHttpJsonBestEffort(input.step.runId, input.step.stepId);
40
+ },
41
+ recordChildSpan(input) {
42
+ if (!input.step) {
43
+ return;
44
+ }
45
+ appendStepChildSpan({
46
+ runId: input.step.runId,
47
+ stepId: input.step.stepId,
48
+ name: input.name,
49
+ startedAt: input.startedAt,
50
+ endedAt: input.endedAt,
51
+ statusCode: input.statusCode,
52
+ ...(input.kind ? { kind: input.kind } : {}),
53
+ ...(input.statusMessage ? { statusMessage: input.statusMessage } : {}),
54
+ ...(input.attributes ? { attributes: input.attributes } : {}),
55
+ });
56
+ },
57
+ };
58
+ export function ensureMagicPayAgentbrowseAssistiveRuntime() {
59
+ const gateway = tryResolveMagicPayGatewayConfig();
60
+ configureAgentbrowseAssistiveRuntime(gateway
61
+ ? {
62
+ createLlmClient: () => new MagicPayAssistiveLlmClient(gateway),
63
+ }
64
+ : null);
65
+ configureAgentbrowseDiagnostics(agentbrowseDiagnostics);
66
+ }
67
+ //# sourceMappingURL=agentbrowse-assistive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentbrowse-assistive.js","sourceRoot":"","sources":["../src/agentbrowse-assistive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { LLMClient } from '@browserbasehq/stagehand';
2
+ import { type AgentbrowseAssistiveChatCompletionRequest, type AgentbrowseAssistiveChatCompletionResult } from '@mercuryo-ai/agentbrowse';
3
+ import type { MagicPayGatewayConfig } from './gateway.js';
4
+ export declare class MagicPayAssistiveLlmClient extends LLMClient {
5
+ private readonly gateway;
6
+ type: "magicpay";
7
+ hasVision: boolean;
8
+ clientOptions: {};
9
+ constructor(gateway: MagicPayGatewayConfig);
10
+ createChatCompletion<T = unknown>(args: unknown): Promise<any>;
11
+ createAssistiveChatCompletion<T = unknown>(args: AgentbrowseAssistiveChatCompletionRequest): Promise<AgentbrowseAssistiveChatCompletionResult<T>>;
12
+ }
13
+ //# sourceMappingURL=assistive-llm-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistive-llm-client.d.ts","sourceRoot":"","sources":["../src/assistive-llm-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAGL,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,EAE9C,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAmG1D,qBAAa,0BAA2B,SAAQ,SAAS;IAK3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ3B,IAAI,EAAG,UAAU,CAAU;IAC3B,SAAS,UAAQ;IACjB,aAAa,KAAM;gBAEC,OAAO,EAAE,qBAAqB;IAIrD,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAmG9D,6BAA6B,CAAC,CAAC,GAAG,OAAO,EAC7C,IAAI,EAAE,yCAAyC,GAC9C,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC;CASxD"}
@@ -0,0 +1,153 @@
1
+ import { LLMClient, toJsonSchema } from '@browserbasehq/stagehand';
2
+ import { AssistiveStructuredOutputTruncatedError, } from '@mercuryo-ai/agentbrowse';
3
+ function readString(value) {
4
+ return typeof value === 'string' && value.trim().length > 0 ? value : undefined;
5
+ }
6
+ function readNumber(value) {
7
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
8
+ }
9
+ function gatewayBaseUrl(gateway) {
10
+ return gateway.apiUrl.replace(/\/$/, '');
11
+ }
12
+ function isRetryableStatus(status) {
13
+ return status === 429 || status === 502 || status === 503 || status === 504 || status >= 500;
14
+ }
15
+ function buildMessages(options) {
16
+ const messages = [...options.messages];
17
+ if (!options.image) {
18
+ return messages;
19
+ }
20
+ const content = [];
21
+ if (options.image.description?.trim()) {
22
+ content.push({ type: 'text', text: options.image.description.trim() });
23
+ }
24
+ content.push({
25
+ type: 'image_url',
26
+ image_url: {
27
+ url: `data:image/jpeg;base64,${options.image.buffer.toString('base64')}`,
28
+ detail: 'auto',
29
+ },
30
+ });
31
+ messages.push({
32
+ role: 'user',
33
+ content,
34
+ });
35
+ return messages;
36
+ }
37
+ async function withRetry(fn, retries = 1) {
38
+ for (let attempt = 0;; attempt += 1) {
39
+ try {
40
+ return await fn();
41
+ }
42
+ catch (err) {
43
+ const retryable = err instanceof Error &&
44
+ (err.name === 'RetryableHttpError' || err.name === 'RetryableNetworkError');
45
+ if (!retryable || attempt >= retries) {
46
+ throw err;
47
+ }
48
+ await new Promise((resolve) => setTimeout(resolve, 2_000 * (attempt + 1)));
49
+ }
50
+ }
51
+ }
52
+ export class MagicPayAssistiveLlmClient extends LLMClient {
53
+ gateway;
54
+ type = 'magicpay';
55
+ hasVision = true;
56
+ clientOptions = {};
57
+ constructor(gateway) {
58
+ super('magicpay/backend');
59
+ this.gateway = gateway;
60
+ }
61
+ async createChatCompletion(args) {
62
+ const request = args;
63
+ const { options } = request;
64
+ if (!options?.response_model) {
65
+ throw new Error('MagicPay assistive client currently requires response_model');
66
+ }
67
+ const url = `${gatewayBaseUrl(this.gateway)}/v1/chat/completions`;
68
+ const body = {
69
+ model: 'magicpay',
70
+ messages: buildMessages(options),
71
+ response_format: {
72
+ type: 'json_schema',
73
+ json_schema: {
74
+ name: options.response_model.name,
75
+ strict: true,
76
+ schema: toJsonSchema(options.response_model.schema),
77
+ },
78
+ },
79
+ temperature: options.temperature,
80
+ max_completion_tokens: options.maxOutputTokens,
81
+ };
82
+ const result = await withRetry(async () => {
83
+ let response;
84
+ try {
85
+ response = await fetch(url, {
86
+ method: 'POST',
87
+ headers: {
88
+ Authorization: `Bearer ${this.gateway.apiKey}`,
89
+ Accept: 'application/json',
90
+ 'Content-Type': 'application/json',
91
+ },
92
+ body: JSON.stringify(body),
93
+ signal: AbortSignal.timeout(45_000),
94
+ });
95
+ }
96
+ catch (err) {
97
+ const error = new Error(`MagicPay assistive runtime network error: ${err instanceof Error ? err.message : String(err)}`);
98
+ error.name = 'RetryableNetworkError';
99
+ throw error;
100
+ }
101
+ let json;
102
+ try {
103
+ json = (await response.json());
104
+ }
105
+ catch {
106
+ const parseError = new Error(`MagicPay assistive runtime returned non-JSON response (${response.status})`);
107
+ parseError.name = isRetryableStatus(response.status) ? 'RetryableHttpError' : 'HttpError';
108
+ throw parseError;
109
+ }
110
+ if (!response.ok) {
111
+ const message = typeof json.error === 'string' ? json.error : `HTTP ${response.status}`;
112
+ const structuredError = json;
113
+ if (structuredError.error_code === 'structured_output_truncated') {
114
+ throw new AssistiveStructuredOutputTruncatedError(`MagicPay assistive runtime error (${response.status}): ${message}`, {
115
+ status: response.status,
116
+ provider: readString(structuredError.provider),
117
+ model: readString(structuredError.model),
118
+ finishReason: readString(structuredError.finish_reason),
119
+ maxOutputTokens: readNumber(structuredError.max_output_tokens),
120
+ completionTokens: readNumber(structuredError.completion_tokens),
121
+ });
122
+ }
123
+ const error = new Error(`MagicPay assistive runtime error (${response.status}): ${message}`);
124
+ error.name = isRetryableStatus(response.status) ? 'RetryableHttpError' : 'HttpError';
125
+ throw error;
126
+ }
127
+ return json;
128
+ });
129
+ const structuredResult = result;
130
+ const content = structuredResult.choices?.[0]?.message?.content;
131
+ if (typeof content !== 'string' || content.trim().length === 0) {
132
+ throw new Error('MagicPay assistive runtime response missing assistant content');
133
+ }
134
+ let data;
135
+ try {
136
+ data = JSON.parse(content);
137
+ }
138
+ catch {
139
+ throw new Error('MagicPay assistive runtime returned invalid JSON assistant content');
140
+ }
141
+ return {
142
+ data,
143
+ usage: structuredResult.usage,
144
+ };
145
+ }
146
+ async createAssistiveChatCompletion(args) {
147
+ if (!args.options.response_model) {
148
+ throw new Error('MagicPay assistive client currently requires response_model');
149
+ }
150
+ return (await this.createChatCompletion(args));
151
+ }
152
+ }
153
+ //# sourceMappingURL=assistive-llm-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistive-llm-client.js","sourceRoot":"","sources":["../src/assistive-llm-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type LaunchOptions } from '@mercuryo-ai/agentbrowse';
2
+ export declare function configureMagicPayAgentbrowseHome(): void;
3
+ export declare function resolveLaunchOptions(options?: Omit<LaunchOptions, 'compact' | 'profile'> & {
4
+ compact?: boolean;
5
+ profile?: string;
6
+ }): LaunchOptions;
7
+ //# sourceMappingURL=browser-home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-home.d.ts","sourceRoot":"","sources":["../src/browser-home.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,gCAAgC,IAAI,IAAI,CAiBvD;AAED,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,aAAa,CAUf"}
@@ -0,0 +1,35 @@
1
+ import { getMagicPayBrowserDefaults, getMagicPayHomeDir, } from '@mercuryo-ai/magicpay-home';
2
+ import { setSolverConfigStoreOverride, } from '@mercuryo-ai/agentbrowse';
3
+ function toProxySetting(value) {
4
+ if (value === null || value === undefined) {
5
+ return undefined;
6
+ }
7
+ return value;
8
+ }
9
+ export function configureMagicPayAgentbrowseHome() {
10
+ const override = {
11
+ rootDir: getMagicPayHomeDir(),
12
+ readConfig: () => {
13
+ const defaults = getMagicPayBrowserDefaults();
14
+ const proxy = toProxySetting(defaults.proxy);
15
+ return {
16
+ defaults: {
17
+ ...(typeof defaults.headless === 'boolean' ? { headless: defaults.headless } : {}),
18
+ ...(proxy ? { proxy } : {}),
19
+ },
20
+ };
21
+ },
22
+ };
23
+ setSolverConfigStoreOverride(override);
24
+ }
25
+ export function resolveLaunchOptions(options = {}) {
26
+ const defaults = getMagicPayBrowserDefaults();
27
+ return {
28
+ compact: options.compact ?? (defaults.windowMode === 'full' ? false : true),
29
+ profile: options.profile ?? defaults.profile,
30
+ ...(typeof options.headless === 'boolean' ? { headless: options.headless } : {}),
31
+ ...(typeof options.useProxy === 'boolean' ? { useProxy: options.useProxy } : {}),
32
+ ...(options.proxy ? { proxy: options.proxy } : {}),
33
+ };
34
+ }
35
+ //# sourceMappingURL=browser-home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-home.js","sourceRoot":"","sources":["../src/browser-home.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GAGnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,4BAA4B,GAG7B,MAAM,0BAA0B,CAAC;AAElC,SAAS,cAAc,CACrB,KAA8C;IAE9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,MAAM,QAAQ,GAA8B;QAC1C,OAAO,EAAE,kBAAkB,EAAE;QAC7B,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE7C,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,CAAC,OAAO,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClF,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5B;aACF,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAGI,EAAE;IAEN,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAE9C,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QAC5C,GAAG,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { isBrowseAction, type ActResult, type BrowserSessionState, type BrowseAction } from '@mercuryo-ai/agentbrowse';
2
+ import { type MagicPaySession } from '../workflow-state.js';
3
+ export { isBrowseAction };
4
+ export type { ActResult, BrowseAction };
5
+ export declare function act(session: BrowserSessionState | MagicPaySession, targetRef: string, action: BrowseAction, value?: string): Promise<ActResult>;
6
+ //# sourceMappingURL=act.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../src/commands/act.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAExC,wBAAsB,GAAG,CACvB,OAAO,EAAE,mBAAmB,GAAG,eAAe,EAC9C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAIpB"}
@@ -0,0 +1,9 @@
1
+ import { act as actPrimitive, isBrowseAction, } from '@mercuryo-ai/agentbrowse';
2
+ import { saveMagicPaySession } from '../workflow-state.js';
3
+ export { isBrowseAction };
4
+ export async function act(session, targetRef, action, value) {
5
+ const result = await actPrimitive(session, targetRef, action, value);
6
+ saveMagicPaySession(session);
7
+ return result;
8
+ }
9
+ //# sourceMappingURL=act.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act.js","sourceRoot":"","sources":["../../src/commands/act.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,IAAI,YAAY,EACnB,cAAc,GAIf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,OAA8C,EAC9C,SAAiB,EACjB,MAAoB,EACpB,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrE,mBAAmB,CAAC,OAA0B,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type AttachOptions, type AttachResult } from '@mercuryo-ai/agentbrowse';
2
+ export type { AttachOptions, AttachResult };
3
+ export declare function attach(cdpUrl: string, options?: AttachOptions): Promise<AttachResult>;
4
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../src/commands/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAQlC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAE5C,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAO3F"}
@@ -0,0 +1,11 @@
1
+ import { attach as attachBrowser, close as closeBrowser, } from '@mercuryo-ai/agentbrowse';
2
+ import { loadMagicPayBrowserSession, loadMagicPaySession, saveMagicPaySession, } from '../workflow-state.js';
3
+ export async function attach(cdpUrl, options) {
4
+ await closeBrowser(loadMagicPaySession() ?? loadMagicPayBrowserSession());
5
+ const result = await attachBrowser(cdpUrl, options);
6
+ if (result.success) {
7
+ saveMagicPaySession(result.session);
8
+ }
9
+ return result;
10
+ }
11
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/commands/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,aAAa,EACvB,KAAK,IAAI,YAAY,GAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAc,EAAE,OAAuB;IAClE,MAAM,YAAY,CAAC,mBAAmB,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,mBAAmB,CAAC,MAAM,CAAC,OAA0B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { status as readStatus, type BrowserCommandSession } from '@mercuryo-ai/agentbrowse';
2
+ export type BrowserStatusResult = Awaited<ReturnType<typeof readStatus>>;
3
+ export type { BrowserCommandSession };
4
+ export declare function browserStatus(): Promise<BrowserStatusResult>;
5
+ //# sourceMappingURL=browser-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-status.d.ts","sourceRoot":"","sources":["../../src/commands/browser-status.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,UAAU,EACpB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAElE"}
@@ -0,0 +1,6 @@
1
+ import { status as readStatus, } from '@mercuryo-ai/agentbrowse';
2
+ import { loadMagicPayBrowserSession, loadMagicPaySession } from '../workflow-state.js';
3
+ export async function browserStatus() {
4
+ return readStatus(loadMagicPaySession() ?? loadMagicPayBrowserSession());
5
+ }
6
+ //# sourceMappingURL=browser-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-status.js","sourceRoot":"","sources":["../../src/commands/browser-status.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,UAAU,GAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAKvF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,UAAU,CAAC,mBAAmB,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type CloseResult } from '@mercuryo-ai/agentbrowse';
2
+ export type { CloseResult };
3
+ export declare function close(): Promise<CloseResult>;
4
+ //# sourceMappingURL=close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AASlC,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAWlD"}
@@ -0,0 +1,12 @@
1
+ import { close as closeBrowser, } from '@mercuryo-ai/agentbrowse';
2
+ import { deleteMagicPayBrowserSession, deleteWorkflowContext, loadMagicPayBrowserSession, loadMagicPaySession, } from '../workflow-state.js';
3
+ export async function close() {
4
+ const session = (loadMagicPaySession() ?? loadMagicPayBrowserSession());
5
+ const result = await closeBrowser(session);
6
+ if (result.success) {
7
+ deleteMagicPayBrowserSession();
8
+ deleteWorkflowContext();
9
+ }
10
+ return result;
11
+ }
12
+ //# sourceMappingURL=close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,YAAY,GAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,IAAI,0BAA0B,EAAE,CAG9D,CAAC;IACT,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,4BAA4B,EAAE,CAAC;QAC/B,qBAAqB,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type BrowserSessionState, type ExtractResult, type ExtractSchemaInput } from '@mercuryo-ai/agentbrowse';
2
+ import { type MagicPaySession } from '../workflow-state.js';
3
+ export type { ExtractResult };
4
+ export declare function extract(session: BrowserSessionState | MagicPaySession, schema: ExtractSchemaInput, scopeRef?: string): Promise<ExtractResult>;
5
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,YAAY,EAAE,aAAa,EAAE,CAAC;AAO9B,wBAAsB,OAAO,CAC3B,OAAO,EAAE,mBAAmB,GAAG,eAAe,EAC9C,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAOxB"}
@@ -0,0 +1,15 @@
1
+ import { extract as extractPrimitive, } 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 extract(session, schema, scopeRef) {
8
+ await ensureAssistiveRuntime();
9
+ const result = await extractPrimitive(session, schema, scopeRef);
10
+ if (result.success || result.staleScope === true) {
11
+ saveMagicPaySession(session);
12
+ }
13
+ return result;
14
+ }
15
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,gBAAgB,GAI5B,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,MAA0B,EAC1B,QAAiB;IAEjB,MAAM,sBAAsB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACjD,mBAAmB,CAAC,OAA0B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface InitResult {
2
+ success: true;
3
+ configPath: string;
4
+ gateway: {
5
+ apiKeyConfigured: true;
6
+ apiUrl: string;
7
+ };
8
+ }
9
+ export declare function init(apiKey: string, apiUrl?: string): InitResult;
10
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,gBAAgB,EAAE,IAAI,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAMD,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAwBhE"}
@@ -0,0 +1,29 @@
1
+ import { getConfigPath, readConfig, writeConfig } from '../config.js';
2
+ import { DEFAULT_MAGICPAY_API_URL } from '../generated/build-config.js';
3
+ function normalizeApiUrl(value) {
4
+ return value.replace(/\/$/, '');
5
+ }
6
+ export function init(apiKey, apiUrl) {
7
+ const config = readConfig();
8
+ const normalizedApiKey = apiKey.trim();
9
+ const normalizedApiUrl = apiUrl?.trim()
10
+ ? normalizeApiUrl(apiUrl.trim())
11
+ : DEFAULT_MAGICPAY_API_URL;
12
+ writeConfig({
13
+ ...config,
14
+ gateway: {
15
+ ...(config.gateway ?? {}),
16
+ apiKey: normalizedApiKey,
17
+ apiUrl: normalizedApiUrl,
18
+ },
19
+ });
20
+ return {
21
+ success: true,
22
+ configPath: getConfigPath(),
23
+ gateway: {
24
+ apiKeyConfigured: true,
25
+ apiUrl: normalizedApiUrl,
26
+ },
27
+ };
28
+ }
29
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAWxE,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,MAAc,EAAE,MAAe;IAClD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,MAAM,EAAE,IAAI,EAAE;QACrC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC,CAAC,wBAAwB,CAAC;IAE7B,WAAW,CAAC;QACV,GAAG,MAAM;QACT,OAAO,EAAE;YACP,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACzB,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,gBAAgB;SACzB;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,aAAa,EAAE;QAC3B,OAAO,EAAE;YACP,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,gBAAgB;SACzB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type LaunchOptions, type LaunchResult } from '@mercuryo-ai/agentbrowse';
2
+ export type { LaunchOptions, LaunchResult };
3
+ export declare function launch(url?: string, options?: LaunchOptions): Promise<LaunchResult>;
4
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAQlC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAE5C,wBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAOzF"}
@@ -0,0 +1,11 @@
1
+ import { close as closeBrowser, launch as launchBrowser, } from '@mercuryo-ai/agentbrowse';
2
+ import { loadMagicPayBrowserSession, loadMagicPaySession, saveMagicPaySession, } from '../workflow-state.js';
3
+ export async function launch(url, options) {
4
+ await closeBrowser(loadMagicPaySession() ?? loadMagicPayBrowserSession());
5
+ const result = await launchBrowser(url, options);
6
+ if (result.success) {
7
+ saveMagicPaySession(result.session);
8
+ }
9
+ return result;
10
+ }
11
+ //# sourceMappingURL=launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,YAAY,EACrB,MAAM,IAAI,aAAa,GAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAY,EAAE,OAAuB;IAChE,MAAM,YAAY,CAAC,mBAAmB,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,mBAAmB,CAAC,MAAM,CAAC,OAA0B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type BrowserSessionState, type NavigateResult } from '@mercuryo-ai/agentbrowse';
2
+ import { type MagicPaySession } from '../workflow-state.js';
3
+ export type { NavigateResult };
4
+ export declare function navigate(session: BrowserSessionState | MagicPaySession, url: string): Promise<NavigateResult>;
5
+ //# sourceMappingURL=navigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../src/commands/navigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,mBAAmB,GAAG,eAAe,EAC9C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,CAMzB"}
@@ -0,0 +1,10 @@
1
+ import { navigate as navigatePrimitive, } from '@mercuryo-ai/agentbrowse';
2
+ import { saveMagicPaySession } from '../workflow-state.js';
3
+ export async function navigate(session, url) {
4
+ const result = await navigatePrimitive(session, url);
5
+ if (result.success) {
6
+ saveMagicPaySession(session);
7
+ }
8
+ return result;
9
+ }
10
+ //# sourceMappingURL=navigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/commands/navigate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,GAG9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,sBAAsB,CAAC;AAIjF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAA8C,EAC9C,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrD,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 ObserveResult } from '@mercuryo-ai/agentbrowse';
2
+ import { type MagicPaySession } from '../workflow-state.js';
3
+ export type { ObserveResult };
4
+ export declare function observe(session: BrowserSessionState | MagicPaySession, instruction?: string): Promise<ObserveResult>;
5
+ //# sourceMappingURL=observe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/commands/observe.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,YAAY,EAAE,aAAa,EAAE,CAAC;AAO9B,wBAAsB,OAAO,CAC3B,OAAO,EAAE,mBAAmB,GAAG,eAAe,EAC9C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAOxB"}