@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 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAMhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAG3C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAG5C"}
package/dist/output.js ADDED
@@ -0,0 +1,27 @@
1
+ const DEFAULT_COMMAND_NAME = 'agentbrowse';
2
+ function serializeResult(result) {
3
+ return `${JSON.stringify(result, null, 2)}\n`;
4
+ }
5
+ function commandName() {
6
+ const normalized = process.env.AGENTBROWSE_COMMAND?.trim();
7
+ return normalized && normalized.length > 0 ? normalized : DEFAULT_COMMAND_NAME;
8
+ }
9
+ export function outputJSON(result) {
10
+ const normalizedResult = result.success
11
+ ? result
12
+ : { ...result, error: result.error ?? 'Unknown error' };
13
+ process.stdout.write(serializeResult(normalizedResult));
14
+ process.exit(result.success ? 0 : 1);
15
+ }
16
+ export function outputError(error) {
17
+ outputJSON({ success: false, error });
18
+ }
19
+ export function info(message) {
20
+ process.stdout.write(`${message}\n`);
21
+ process.exit(0);
22
+ }
23
+ export function fatal(message) {
24
+ process.stderr.write(`[${commandName()}] Fatal: ${message}\n`);
25
+ process.exit(1);
26
+ }
27
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAO3C,SAAS,eAAe,CAAC,MAA+B;IACtD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC3D,OAAO,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,UAAU,CAAsB,MAAS;IACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO;QACrC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,gBAA2C,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,YAAY,OAAO,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function readCurrentPackageVersion(): string;
2
+ //# sourceMappingURL=package-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.d.ts","sourceRoot":"","sources":["../src/package-version.ts"],"names":[],"mappings":"AAMA,wBAAgB,yBAAyB,IAAI,MAAM,CAYlD"}
@@ -0,0 +1,15 @@
1
+ import { readFileSync } from 'node:fs';
2
+ const PACKAGE_JSON_URL = new URL('../package.json', import.meta.url);
3
+ let cachedPackageVersion = null;
4
+ export function readCurrentPackageVersion() {
5
+ if (cachedPackageVersion) {
6
+ return cachedPackageVersion;
7
+ }
8
+ const raw = JSON.parse(readFileSync(PACKAGE_JSON_URL, 'utf-8'));
9
+ if (!raw.version || typeof raw.version !== 'string') {
10
+ throw new Error('Package version is missing from package.json.');
11
+ }
12
+ cachedPackageVersion = raw.version;
13
+ return cachedPackageVersion;
14
+ }
15
+ //# sourceMappingURL=package-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.js","sourceRoot":"","sources":["../src/package-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAErE,IAAI,oBAAoB,GAAkB,IAAI,CAAC;AAE/C,MAAM,UAAU,yBAAyB;IACvC,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAyB,CAAC;IACxF,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,130 @@
1
+ export type RunStatus = 'running' | 'completed' | 'failed' | 'aborted';
2
+ export type RunTerminalStatus = Extract<RunStatus, 'completed' | 'failed' | 'aborted'>;
3
+ export type StepCommand = 'launch' | 'start-session' | 'end-session' | 'navigate' | 'observe' | 'act' | 'extract' | 'screenshot' | 'get-secrets-catalog' | 'request-secret' | 'poll-secret' | 'fill-secret' | 'browser-status' | 'status' | 'close';
4
+ export type RunRecord = {
5
+ runId: string;
6
+ sessionId: string;
7
+ startedAt: string;
8
+ endedAt?: string;
9
+ status: RunStatus;
10
+ source: 'cli' | 'test' | 'replay';
11
+ entryCommand?: string;
12
+ displayName?: string;
13
+ profile?: string;
14
+ runtimeVersion: string;
15
+ cliVersion: string;
16
+ cwd?: string;
17
+ hostHints?: string[];
18
+ traceContext: {
19
+ traceId: string;
20
+ rootSpanId: string;
21
+ propagationMode: 'single-trace-across-cli-steps';
22
+ };
23
+ resource: {
24
+ serviceName: string;
25
+ serviceVersion: string;
26
+ serviceInstanceId?: string;
27
+ telemetrySdkLanguage?: string;
28
+ };
29
+ stepIds: string[];
30
+ finalOutcome?: {
31
+ success: boolean;
32
+ outcomeType?: string;
33
+ message?: string;
34
+ reason?: string;
35
+ };
36
+ protectedRun: boolean;
37
+ ingestState: 'local_only' | 'queued' | 'exported' | 'export_failed';
38
+ };
39
+ export type StepChildSpanRecord = {
40
+ spanId: string;
41
+ parentSpanId: string;
42
+ name: string;
43
+ kind: 'client';
44
+ startedAt: string;
45
+ endedAt: string;
46
+ statusCode: 'unset' | 'ok' | 'error';
47
+ statusMessage?: string;
48
+ attributes: Record<string, unknown>;
49
+ };
50
+ export type StepRecord = {
51
+ stepId: string;
52
+ runId: string;
53
+ ordinal: number;
54
+ command: StepCommand;
55
+ startedAt: string;
56
+ endedAt?: string;
57
+ otel: {
58
+ traceId: string;
59
+ spanId: string;
60
+ parentSpanId?: string;
61
+ spanName: string;
62
+ spanKind: 'internal';
63
+ statusCode: 'unset' | 'ok' | 'error';
64
+ statusMessage?: string;
65
+ instrumentationScope: string;
66
+ };
67
+ input: Record<string, unknown>;
68
+ outputSummary?: {
69
+ success: boolean;
70
+ outcomeType?: string;
71
+ message?: string;
72
+ reason?: string;
73
+ };
74
+ refs?: {
75
+ pageRef?: string;
76
+ targetRef?: string;
77
+ surfaceRef?: string;
78
+ fillRef?: string;
79
+ requestId?: string;
80
+ };
81
+ eventIds: string[];
82
+ childSpanIds: string[];
83
+ childSpans: StepChildSpanRecord[];
84
+ protectedStep: boolean;
85
+ };
86
+ export declare function loadRunRecord(runId: string): RunRecord | null;
87
+ export declare function loadStepRecord(runId: string, stepId: string): StepRecord | null;
88
+ export declare function startCliRun(options: {
89
+ sessionId: string;
90
+ entryCommand: string;
91
+ displayName?: string;
92
+ profile?: string;
93
+ url?: string;
94
+ now?: Date;
95
+ }): RunRecord;
96
+ export declare function startRunStep(options: {
97
+ runId: string;
98
+ command: StepCommand;
99
+ input?: Record<string, unknown>;
100
+ refs?: StepRecord['refs'];
101
+ protectedStep?: boolean;
102
+ now?: Date;
103
+ }): StepRecord | null;
104
+ export declare function finishRunStep(options: {
105
+ runId: string;
106
+ stepId: string;
107
+ success: boolean;
108
+ outcomeType?: string;
109
+ message?: string;
110
+ reason?: string;
111
+ now?: Date;
112
+ }): StepRecord | null;
113
+ export declare function finishRunRecord(runId: string, options: {
114
+ status: RunTerminalStatus;
115
+ now?: Date;
116
+ finalOutcome?: RunRecord['finalOutcome'];
117
+ }): RunRecord | null;
118
+ export declare function appendStepChildSpan(options: {
119
+ runId: string;
120
+ stepId: string;
121
+ name: string;
122
+ kind?: StepChildSpanRecord['kind'];
123
+ startedAt: string;
124
+ endedAt: string;
125
+ statusCode: StepChildSpanRecord['statusCode'];
126
+ statusMessage?: string;
127
+ attributes?: Record<string, unknown>;
128
+ }): StepChildSpanRecord | null;
129
+ export declare function setRunIngestState(runId: string, ingestState: RunRecord['ingestState']): RunRecord | null;
130
+ //# sourceMappingURL=run-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../src/run-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,246 @@
1
+ import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { randomBytes, randomUUID } from 'node:crypto';
3
+ import { join } from 'node:path';
4
+ import { getMagicPayRunsDir } from '@mercuryo-ai/magicpay-home';
5
+ import { readCurrentPackageVersion } from './package-version.js';
6
+ const SERVICE_NAME = '@mercuryo-ai/agentbrowse-cli';
7
+ function getRunsDir() {
8
+ return getMagicPayRunsDir();
9
+ }
10
+ function getRunDir(runId) {
11
+ return join(getRunsDir(), runId);
12
+ }
13
+ function getRunRecordPath(runId) {
14
+ return join(getRunDir(runId), 'run.json');
15
+ }
16
+ function getRunStepsDir(runId) {
17
+ return join(getRunDir(runId), 'steps');
18
+ }
19
+ function getStepRecordPath(runId, stepId) {
20
+ return join(getRunStepsDir(runId), `${stepId}.json`);
21
+ }
22
+ function ensureRunDir(runId) {
23
+ mkdirSync(getRunStepsDir(runId), { recursive: true });
24
+ }
25
+ function randomHex(bytes) {
26
+ return randomBytes(bytes).toString('hex');
27
+ }
28
+ function atomicWriteUtf8(filePath, contents) {
29
+ const tempPath = `${filePath}.${process.pid}.${randomHex(4)}.tmp`;
30
+ try {
31
+ writeFileSync(tempPath, contents, 'utf-8');
32
+ renameSync(tempPath, filePath);
33
+ }
34
+ catch (error) {
35
+ rmSync(tempPath, { force: true });
36
+ throw error;
37
+ }
38
+ }
39
+ function parseHostHints(url) {
40
+ if (!url) {
41
+ return undefined;
42
+ }
43
+ try {
44
+ return [new URL(url).host];
45
+ }
46
+ catch {
47
+ return undefined;
48
+ }
49
+ }
50
+ function saveRunRecord(record) {
51
+ ensureRunDir(record.runId);
52
+ atomicWriteUtf8(getRunRecordPath(record.runId), `${JSON.stringify(record, null, 2)}\n`);
53
+ }
54
+ function saveStepRecord(record) {
55
+ ensureRunDir(record.runId);
56
+ atomicWriteUtf8(getStepRecordPath(record.runId, record.stepId), `${JSON.stringify(record, null, 2)}\n`);
57
+ }
58
+ export function loadRunRecord(runId) {
59
+ const recordPath = getRunRecordPath(runId);
60
+ if (!existsSync(recordPath)) {
61
+ return null;
62
+ }
63
+ try {
64
+ const parsed = JSON.parse(readFileSync(recordPath, 'utf-8'));
65
+ if (!parsed.runId || !parsed.sessionId || !parsed.startedAt || !parsed.status) {
66
+ return null;
67
+ }
68
+ return {
69
+ ...parsed,
70
+ stepIds: Array.isArray(parsed.stepIds) ? parsed.stepIds : [],
71
+ };
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ export function loadStepRecord(runId, stepId) {
78
+ const recordPath = getStepRecordPath(runId, stepId);
79
+ if (!existsSync(recordPath)) {
80
+ return null;
81
+ }
82
+ try {
83
+ const parsed = JSON.parse(readFileSync(recordPath, 'utf-8'));
84
+ if (!parsed.stepId || !parsed.runId || !parsed.command || !parsed.startedAt) {
85
+ return null;
86
+ }
87
+ return {
88
+ ...parsed,
89
+ eventIds: Array.isArray(parsed.eventIds) ? parsed.eventIds : [],
90
+ childSpanIds: Array.isArray(parsed.childSpanIds) ? parsed.childSpanIds : [],
91
+ childSpans: Array.isArray(parsed.childSpans) ? parsed.childSpans : [],
92
+ protectedStep: parsed.protectedStep === true,
93
+ };
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ export function startCliRun(options) {
100
+ const version = readCurrentPackageVersion();
101
+ const startedAt = (options.now ?? new Date()).toISOString();
102
+ const run = {
103
+ runId: randomUUID(),
104
+ sessionId: options.sessionId,
105
+ startedAt,
106
+ status: 'running',
107
+ source: 'cli',
108
+ entryCommand: options.entryCommand,
109
+ ...(options.displayName ? { displayName: options.displayName } : {}),
110
+ ...(options.profile ? { profile: options.profile } : {}),
111
+ runtimeVersion: process.version,
112
+ cliVersion: version,
113
+ cwd: process.cwd(),
114
+ ...(parseHostHints(options.url) ? { hostHints: parseHostHints(options.url) } : {}),
115
+ traceContext: {
116
+ traceId: randomHex(16),
117
+ rootSpanId: randomHex(8),
118
+ propagationMode: 'single-trace-across-cli-steps',
119
+ },
120
+ resource: {
121
+ serviceName: SERVICE_NAME,
122
+ serviceVersion: version,
123
+ serviceInstanceId: randomHex(6),
124
+ telemetrySdkLanguage: 'nodejs',
125
+ },
126
+ stepIds: [],
127
+ protectedRun: false,
128
+ ingestState: 'local_only',
129
+ };
130
+ saveRunRecord(run);
131
+ return run;
132
+ }
133
+ export function startRunStep(options) {
134
+ const run = loadRunRecord(options.runId);
135
+ if (!run) {
136
+ return null;
137
+ }
138
+ const step = {
139
+ stepId: randomUUID(),
140
+ runId: run.runId,
141
+ ordinal: run.stepIds.length + 1,
142
+ command: options.command,
143
+ startedAt: (options.now ?? new Date()).toISOString(),
144
+ otel: {
145
+ traceId: run.traceContext.traceId,
146
+ spanId: randomHex(8),
147
+ parentSpanId: run.traceContext.rootSpanId,
148
+ spanName: `agentbrowse.${options.command}`,
149
+ spanKind: 'internal',
150
+ statusCode: 'unset',
151
+ instrumentationScope: 'agentbrowse.local-run-store',
152
+ },
153
+ input: { ...(options.input ?? {}) },
154
+ ...(options.refs ? { refs: options.refs } : {}),
155
+ eventIds: [],
156
+ childSpanIds: [],
157
+ childSpans: [],
158
+ protectedStep: options.protectedStep === true,
159
+ };
160
+ saveStepRecord(step);
161
+ saveRunRecord({
162
+ ...run,
163
+ stepIds: [...run.stepIds, step.stepId],
164
+ });
165
+ return step;
166
+ }
167
+ export function finishRunStep(options) {
168
+ const step = loadStepRecord(options.runId, options.stepId);
169
+ if (!step) {
170
+ return null;
171
+ }
172
+ const nextStep = {
173
+ ...step,
174
+ endedAt: step.endedAt ?? (options.now ?? new Date()).toISOString(),
175
+ otel: {
176
+ ...step.otel,
177
+ statusCode: step.otel.statusCode === 'unset' ? (options.success ? 'ok' : 'error') : step.otel.statusCode,
178
+ ...(step.otel.statusMessage
179
+ ? { statusMessage: step.otel.statusMessage }
180
+ : options.reason
181
+ ? { statusMessage: options.reason }
182
+ : {}),
183
+ },
184
+ outputSummary: step.outputSummary ?? {
185
+ success: options.success,
186
+ ...(options.outcomeType ? { outcomeType: options.outcomeType } : {}),
187
+ ...(options.message ? { message: options.message } : {}),
188
+ ...(options.reason ? { reason: options.reason } : {}),
189
+ },
190
+ };
191
+ saveStepRecord(nextStep);
192
+ return nextStep;
193
+ }
194
+ export function finishRunRecord(runId, options) {
195
+ const run = loadRunRecord(runId);
196
+ if (!run) {
197
+ return null;
198
+ }
199
+ const nextRun = {
200
+ ...run,
201
+ status: run.endedAt ? run.status : options.status,
202
+ endedAt: run.endedAt ?? (options.now ?? new Date()).toISOString(),
203
+ finalOutcome: run.finalOutcome ?? options.finalOutcome,
204
+ };
205
+ saveRunRecord(nextRun);
206
+ return nextRun;
207
+ }
208
+ export function appendStepChildSpan(options) {
209
+ const step = loadStepRecord(options.runId, options.stepId);
210
+ if (!step) {
211
+ return null;
212
+ }
213
+ const childSpan = {
214
+ spanId: randomHex(8),
215
+ parentSpanId: step.otel.spanId,
216
+ name: options.name,
217
+ kind: options.kind ?? 'client',
218
+ startedAt: options.startedAt,
219
+ endedAt: options.endedAt,
220
+ statusCode: options.statusCode,
221
+ ...(options.statusMessage ? { statusMessage: options.statusMessage } : {}),
222
+ attributes: { ...(options.attributes ?? {}) },
223
+ };
224
+ saveStepRecord({
225
+ ...step,
226
+ childSpanIds: [...step.childSpanIds, childSpan.spanId],
227
+ childSpans: [...step.childSpans, childSpan],
228
+ });
229
+ return childSpan;
230
+ }
231
+ export function setRunIngestState(runId, ingestState) {
232
+ const run = loadRunRecord(runId);
233
+ if (!run) {
234
+ return null;
235
+ }
236
+ if (run.ingestState === ingestState) {
237
+ return run;
238
+ }
239
+ const nextRun = {
240
+ ...run,
241
+ ingestState,
242
+ };
243
+ saveRunRecord(nextRun);
244
+ return nextRun;
245
+ }
246
+ //# sourceMappingURL=run-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-store.js","sourceRoot":"","sources":["../src/run-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { deleteMagicPayBrowserSession, deleteWorkflowContext, loadMagicPayBrowserSession, loadMagicPaySession, saveMagicPayBrowserSession, saveMagicPaySession, type MagicPaySession, } from '@mercuryo-ai/magicpay-home';
2
+ //# sourceMappingURL=workflow-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../src/workflow-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { deleteMagicPayBrowserSession, deleteWorkflowContext, loadMagicPayBrowserSession, loadMagicPaySession, saveMagicPayBrowserSession, saveMagicPaySession, } from '@mercuryo-ai/magicpay-home';
2
+ //# sourceMappingURL=workflow-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../src/workflow-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,4BAA4B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@mercuryo-ai/agentbrowse-cli",
3
+ "version": "0.1.0",
4
+ "description": "AgentBrowse CLI — browser-only operator shell on the shared MagicPay home",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "bin": {
8
+ "agentbrowse": "./dist/index.js"
9
+ },
10
+ "main": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/nuanu-ai/mercuryo-agent-pay.git",
15
+ "directory": "packages/agentbrowse-cli"
16
+ },
17
+ "bugs": {
18
+ "url": "https://github.com/nuanu-ai/mercuryo-agent-pay/issues"
19
+ },
20
+ "homepage": "https://github.com/nuanu-ai/mercuryo-agent-pay/tree/main/packages/agentbrowse-cli",
21
+ "keywords": [
22
+ "agentbrowse",
23
+ "cli",
24
+ "browser",
25
+ "automation",
26
+ "agents"
27
+ ],
28
+ "files": [
29
+ "dist",
30
+ "README.md"
31
+ ],
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "engines": {
36
+ "node": ">=18.0.0"
37
+ },
38
+ "dependencies": {
39
+ "@browserbasehq/stagehand": "^3.0.0",
40
+ "dotenv": "^16.4.0",
41
+ "@mercuryo-ai/agentbrowse": "0.2.50",
42
+ "@mercuryo-ai/magicpay-home": "0.1.0",
43
+ "@mercuryo-ai/magicpay-sdk": "0.1.0-test.2"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^22.0.0",
47
+ "tsx": "^4.19.0",
48
+ "typescript": "5.9.2",
49
+ "vitest": "^4.0.18"
50
+ },
51
+ "scripts": {
52
+ "build": "pnpm --dir ../.. --filter @mercuryo-ai/agentbrowse build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-sdk build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-home build && node -e \"require('node:fs').rmSync('dist',{ recursive: true, force: true })\" && tsc -p tsconfig.build.json",
53
+ "check-types": "pnpm --dir ../.. --filter @mercuryo-ai/agentbrowse build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-sdk build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-home build && pnpm exec tsc -p tsconfig.json --noEmit",
54
+ "dev": "tsx src/index.ts",
55
+ "pack:verify": "node scripts/verify-pack-artifact.mjs",
56
+ "smoke:pack-install": "node scripts/verify-pack-install-smoke.mjs",
57
+ "test": "npm run test:deps && npm run test:unit:bare",
58
+ "test:deps": "pnpm --dir ../.. --filter @mercuryo-ai/agentbrowse build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-sdk build && pnpm --dir ../.. --filter @mercuryo-ai/magicpay-home build",
59
+ "test:unit": "npm run test:deps && npm run test:unit:bare",
60
+ "test:unit:bare": "vitest run"
61
+ }
62
+ }