@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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|