@framers/agentos-ext-browser-automation 0.2.0 → 0.2.1
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 +80 -0
- package/dist/BrowserService.js +9 -45
- package/dist/BrowserService.js.map +1 -1
- package/dist/attach/AttachController.js +44 -41
- package/dist/attach/AttachController.js.map +1 -1
- package/dist/attach/backends/jxa.js +29 -62
- package/dist/attach/backends/jxa.js.map +1 -1
- package/dist/attach/backends/raw-cdp.js +32 -35
- package/dist/attach/backends/raw-cdp.js.map +1 -1
- package/dist/attach/daemon/client.js +23 -23
- package/dist/attach/daemon/client.js.map +1 -1
- package/dist/attach/daemon/daemon-lock.js +14 -17
- package/dist/attach/daemon/daemon-lock.js.map +1 -1
- package/dist/attach/daemon/daemon-main.d.ts +11 -0
- package/dist/attach/daemon/daemon-main.d.ts.map +1 -1
- package/dist/attach/daemon/daemon-main.js +37 -18
- package/dist/attach/daemon/daemon-main.js.map +1 -1
- package/dist/attach/daemon/daemon.d.ts.map +1 -1
- package/dist/attach/daemon/daemon.js +41 -32
- package/dist/attach/daemon/daemon.js.map +1 -1
- package/dist/attach/daemon/index.js +7 -25
- package/dist/attach/daemon/index.js.map +1 -1
- package/dist/attach/daemon/protocol.js +33 -45
- package/dist/attach/daemon/protocol.js.map +1 -1
- package/dist/attach/daemon/runner.js +1 -4
- package/dist/attach/daemon/runner.js.map +1 -1
- package/dist/attach/daemon/surface.js +12 -14
- package/dist/attach/daemon/surface.js.map +1 -1
- package/dist/attach/devtools-port.js +1 -4
- package/dist/attach/devtools-port.js.map +1 -1
- package/dist/attach/errors.js +4 -9
- package/dist/attach/errors.js.map +1 -1
- package/dist/attach/lease.js +18 -23
- package/dist/attach/lease.js.map +1 -1
- package/dist/attach/singleton-lock.js +1 -4
- package/dist/attach/singleton-lock.js.map +1 -1
- package/dist/attach/state.js +6 -13
- package/dist/attach/state.js.map +1 -1
- package/dist/attach/tools.js +84 -88
- package/dist/attach/tools.js.map +1 -1
- package/dist/attach/url-policy.js +2 -6
- package/dist/attach/url-policy.js.map +1 -1
- package/dist/attach.js +7 -23
- package/dist/attach.js.map +1 -1
- package/dist/captcha/CaptchaSolver.js +4 -7
- package/dist/captcha/CaptchaSolver.js.map +1 -1
- package/dist/captcha/ICaptchaProvider.js +1 -2
- package/dist/captcha/ICaptchaProvider.js.map +1 -1
- package/dist/index.js +55 -75
- package/dist/index.js.map +1 -1
- package/dist/proxy/IProxyProvider.js +1 -2
- package/dist/proxy/IProxyProvider.js.map +1 -1
- package/dist/proxy/ProxyManager.js +7 -10
- package/dist/proxy/ProxyManager.js.map +1 -1
- package/dist/tools/ClickTool.js +17 -20
- package/dist/tools/ClickTool.js.map +1 -1
- package/dist/tools/EvaluateTool.js +16 -19
- package/dist/tools/EvaluateTool.js.map +1 -1
- package/dist/tools/ExtractTool.js +23 -26
- package/dist/tools/ExtractTool.js.map +1 -1
- package/dist/tools/FillTool.js +17 -20
- package/dist/tools/FillTool.js.map +1 -1
- package/dist/tools/NavigateTool.js +31 -34
- package/dist/tools/NavigateTool.js.map +1 -1
- package/dist/tools/PageSnapshotTool.js +13 -16
- package/dist/tools/PageSnapshotTool.js.map +1 -1
- package/dist/tools/ScreenshotTool.js +16 -19
- package/dist/tools/ScreenshotTool.js.map +1 -1
- package/dist/tools/ScrollTool.js +17 -20
- package/dist/tools/ScrollTool.js.map +1 -1
- package/dist/tools/SessionTool.js +24 -27
- package/dist/tools/SessionTool.js.map +1 -1
- package/dist/tools/WaitTool.js +22 -25
- package/dist/tools/WaitTool.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +5 -4
- package/dist/attach/__tests__/AttachController.test.d.ts +0 -2
- package/dist/attach/__tests__/AttachController.test.d.ts.map +0 -1
- package/dist/attach/__tests__/AttachController.test.js +0 -278
- package/dist/attach/__tests__/AttachController.test.js.map +0 -1
- package/dist/attach/__tests__/attach-primitives.test.d.ts +0 -2
- package/dist/attach/__tests__/attach-primitives.test.d.ts.map +0 -1
- package/dist/attach/__tests__/attach-primitives.test.js +0 -158
- package/dist/attach/__tests__/attach-primitives.test.js.map +0 -1
- package/dist/attach/__tests__/jxa-args.test.d.ts +0 -2
- package/dist/attach/__tests__/jxa-args.test.d.ts.map +0 -1
- package/dist/attach/__tests__/jxa-args.test.js +0 -37
- package/dist/attach/__tests__/jxa-args.test.js.map +0 -1
- package/dist/attach/__tests__/pack-registration.test.d.ts +0 -2
- package/dist/attach/__tests__/pack-registration.test.d.ts.map +0 -1
- package/dist/attach/__tests__/pack-registration.test.js +0 -34
- package/dist/attach/__tests__/pack-registration.test.js.map +0 -1
- package/dist/attach/__tests__/tools.test.d.ts +0 -2
- package/dist/attach/__tests__/tools.test.d.ts.map +0 -1
- package/dist/attach/__tests__/tools.test.js +0 -155
- package/dist/attach/__tests__/tools.test.js.map +0 -1
- package/dist/attach/backends/__tests__/raw-cdp.test.d.ts +0 -2
- package/dist/attach/backends/__tests__/raw-cdp.test.d.ts.map +0 -1
- package/dist/attach/backends/__tests__/raw-cdp.test.js +0 -133
- package/dist/attach/backends/__tests__/raw-cdp.test.js.map +0 -1
- package/dist/attach/daemon/__tests__/client.test.d.ts +0 -2
- package/dist/attach/daemon/__tests__/client.test.d.ts.map +0 -1
- package/dist/attach/daemon/__tests__/client.test.js +0 -58
- package/dist/attach/daemon/__tests__/client.test.js.map +0 -1
- package/dist/attach/daemon/__tests__/daemon-lock.test.d.ts +0 -2
- package/dist/attach/daemon/__tests__/daemon-lock.test.d.ts.map +0 -1
- package/dist/attach/daemon/__tests__/daemon-lock.test.js +0 -72
- package/dist/attach/daemon/__tests__/daemon-lock.test.js.map +0 -1
- package/dist/attach/daemon/__tests__/daemon-loop.integration.test.d.ts +0 -2
- package/dist/attach/daemon/__tests__/daemon-loop.integration.test.d.ts.map +0 -1
- package/dist/attach/daemon/__tests__/daemon-loop.integration.test.js +0 -102
- package/dist/attach/daemon/__tests__/daemon-loop.integration.test.js.map +0 -1
- package/dist/attach/daemon/__tests__/harness.d.ts +0 -44
- package/dist/attach/daemon/__tests__/harness.d.ts.map +0 -1
- package/dist/attach/daemon/__tests__/harness.js +0 -96
- package/dist/attach/daemon/__tests__/harness.js.map +0 -1
- package/dist/attach/daemon/__tests__/protocol.test.d.ts +0 -2
- package/dist/attach/daemon/__tests__/protocol.test.d.ts.map +0 -1
- package/dist/attach/daemon/__tests__/protocol.test.js +0 -71
- package/dist/attach/daemon/__tests__/protocol.test.js.map +0 -1
- package/dist/attach/daemon/__tests__/runner.test.d.ts +0 -2
- package/dist/attach/daemon/__tests__/runner.test.d.ts.map +0 -1
- package/dist/attach/daemon/__tests__/runner.test.js +0 -67
- package/dist/attach/daemon/__tests__/runner.test.js.map +0 -1
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_os_1 = require("node:os");
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
7
|
-
const protocol_js_1 = require("../protocol.js");
|
|
8
|
-
const dirs = [];
|
|
9
|
-
const tdir = () => {
|
|
10
|
-
const d = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'attach-ipc-'));
|
|
11
|
-
dirs.push(d);
|
|
12
|
-
return d;
|
|
13
|
-
};
|
|
14
|
-
(0, vitest_1.afterEach)(() => {
|
|
15
|
-
for (const d of dirs.splice(0))
|
|
16
|
-
(0, node_fs_1.rmSync)(d, { recursive: true, force: true });
|
|
17
|
-
});
|
|
18
|
-
(0, vitest_1.describe)('protocol', () => {
|
|
19
|
-
(0, vitest_1.it)('ids are strings and survive a JSON round trip at time_ns scale', () => {
|
|
20
|
-
const id = (0, protocol_js_1.newCmdId)('cli');
|
|
21
|
-
(0, vitest_1.expect)(typeof id).toBe('string');
|
|
22
|
-
(0, vitest_1.expect)(id.startsWith('cli-')).toBe(true);
|
|
23
|
-
// the historical bug: 1753112793123456789 > 2^53 rounds as a JS number
|
|
24
|
-
const echoed = JSON.parse(JSON.stringify({ id: 'cli-1753112793123456789-x' }));
|
|
25
|
-
(0, vitest_1.expect)(echoed.id).toBe('cli-1753112793123456789-x');
|
|
26
|
-
});
|
|
27
|
-
(0, vitest_1.it)('writeAtomicJson leaves no .tmp behind and readJson round-trips', () => {
|
|
28
|
-
const d = tdir();
|
|
29
|
-
const f = (0, node_path_1.join)(d, 'x.json');
|
|
30
|
-
(0, protocol_js_1.writeAtomicJson)(f, { a: 1 });
|
|
31
|
-
(0, vitest_1.expect)((0, protocol_js_1.readJson)(f)).toEqual({ a: 1 });
|
|
32
|
-
(0, vitest_1.expect)((0, node_fs_1.readdirSync)(d).filter((n) => n.includes('.tmp'))).toEqual([]);
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.it)('readJson returns undefined for missing or torn files', () => {
|
|
35
|
-
const d = tdir();
|
|
36
|
-
(0, vitest_1.expect)((0, protocol_js_1.readJson)((0, node_path_1.join)(d, 'missing.json'))).toBeUndefined();
|
|
37
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(d, 'torn.json'), '{not json');
|
|
38
|
-
(0, vitest_1.expect)((0, protocol_js_1.readJson)((0, node_path_1.join)(d, 'torn.json'))).toBeUndefined();
|
|
39
|
-
});
|
|
40
|
-
(0, vitest_1.it)('listPendingCmds returns cmd-* files oldest-first and ignores responses and temp files', () => {
|
|
41
|
-
const d = tdir();
|
|
42
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.cmdPath)(d, 'b'), { id: 'b' });
|
|
43
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.cmdPath)(d, 'a'), { id: 'a' });
|
|
44
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.respPath)(d, 'zzz'), { id: 'zzz' });
|
|
45
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(d, 'cmd-torn.json.tmp'), '{');
|
|
46
|
-
const past = new Date(Date.now() - 5000);
|
|
47
|
-
(0, node_fs_1.utimesSync)((0, protocol_js_1.cmdPath)(d, 'b'), past, past);
|
|
48
|
-
(0, vitest_1.expect)((0, protocol_js_1.listPendingCmds)(d).map((c) => c.id)).toEqual(['b', 'a']);
|
|
49
|
-
});
|
|
50
|
-
(0, vitest_1.it)('gcStale removes cmd/resp files older than STALE_FILE_MS and keeps fresh ones', () => {
|
|
51
|
-
const d = tdir();
|
|
52
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.cmdPath)(d, 'old'), { id: 'old' });
|
|
53
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.respPath)(d, 'old'), { id: 'old' });
|
|
54
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.cmdPath)(d, 'new'), { id: 'new' });
|
|
55
|
-
const past = new Date(Date.now() - protocol_js_1.STALE_FILE_MS - 1000);
|
|
56
|
-
(0, node_fs_1.utimesSync)((0, protocol_js_1.cmdPath)(d, 'old'), past, past);
|
|
57
|
-
(0, node_fs_1.utimesSync)((0, protocol_js_1.respPath)(d, 'old'), past, past);
|
|
58
|
-
(0, protocol_js_1.gcStale)(d);
|
|
59
|
-
(0, vitest_1.expect)((0, node_fs_1.existsSync)((0, protocol_js_1.cmdPath)(d, 'old'))).toBe(false);
|
|
60
|
-
(0, vitest_1.expect)((0, node_fs_1.existsSync)((0, protocol_js_1.respPath)(d, 'old'))).toBe(false);
|
|
61
|
-
(0, vitest_1.expect)((0, node_fs_1.existsSync)((0, protocol_js_1.cmdPath)(d, 'new'))).toBe(true);
|
|
62
|
-
});
|
|
63
|
-
(0, vitest_1.it)('gcStale with now=Infinity sweeps every queue file regardless of age', () => {
|
|
64
|
-
const d = tdir();
|
|
65
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.cmdPath)(d, 'x'), { id: 'x' });
|
|
66
|
-
(0, protocol_js_1.writeAtomicJson)((0, protocol_js_1.respPath)(d, 'y'), { id: 'y' });
|
|
67
|
-
(0, protocol_js_1.gcStale)(d, Number.POSITIVE_INFINITY);
|
|
68
|
-
(0, vitest_1.expect)((0, node_fs_1.readdirSync)(d).filter((n) => n.startsWith('cmd-') || n.startsWith('resp-'))).toEqual([]);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
//# sourceMappingURL=protocol.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.test.js","sourceRoot":"","sources":["../../../../src/attach/daemon/__tests__/protocol.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.test.d.ts","sourceRoot":"","sources":["../../../../src/attach/daemon/__tests__/runner.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
const runner_js_1 = require("../runner.js");
|
|
7
|
-
const client_js_1 = require("../client.js");
|
|
8
|
-
const harness_js_1 = require("./harness.js");
|
|
9
|
-
const cleanups = [];
|
|
10
|
-
(0, vitest_1.afterEach)(() => {
|
|
11
|
-
for (const f of cleanups.splice(0))
|
|
12
|
-
f();
|
|
13
|
-
});
|
|
14
|
-
(0, vitest_1.describe)('runAttachScript', () => {
|
|
15
|
-
(0, vitest_1.it)('runs goto/read/extract/wait steps, captures out keys untrusted-labeled, releases the claim', async () => {
|
|
16
|
-
const { dir, run } = (0, harness_js_1.daemonUnderTest)();
|
|
17
|
-
cleanups.push(() => (0, node_fs_1.rmSync)(dir, { recursive: true, force: true }));
|
|
18
|
-
const client = new client_js_1.AttachDaemonClient({ ipcDir: (0, node_path_1.join)(dir, 'ipc'), client: 'runner', pollMs: 25 });
|
|
19
|
-
const result = await (0, runner_js_1.runAttachScript)({
|
|
20
|
-
name: 'demo',
|
|
21
|
-
steps: [
|
|
22
|
-
{ op: 'goto', url: 'https://example.com/', settle: 0 },
|
|
23
|
-
{ op: 'read', out: 'page' },
|
|
24
|
-
{ op: 'extract', fields: { perks: 'li' }, out: 'perks' },
|
|
25
|
-
{ op: 'wait', ms: 10 },
|
|
26
|
-
],
|
|
27
|
-
}, client);
|
|
28
|
-
(0, vitest_1.expect)(result.ok).toBe(true);
|
|
29
|
-
(0, vitest_1.expect)(result.results.page).toMatchObject({ untrusted: true });
|
|
30
|
-
(0, vitest_1.expect)(result.results.perks).toMatchObject({ untrusted: true });
|
|
31
|
-
(0, vitest_1.expect)(result.steps).toHaveLength(4);
|
|
32
|
-
(0, vitest_1.expect)(result.steps.every((s) => s.ok)).toBe(true);
|
|
33
|
-
// The claim was released: a different client can claim immediately.
|
|
34
|
-
const other = new client_js_1.AttachDaemonClient({ ipcDir: (0, node_path_1.join)(dir, 'ipc'), client: 'other', pollMs: 25 });
|
|
35
|
-
await (0, vitest_1.expect)(other.claim()).resolves.toBeTruthy();
|
|
36
|
-
await other.quit();
|
|
37
|
-
await run;
|
|
38
|
-
}, 60000);
|
|
39
|
-
(0, vitest_1.it)('rejects eval steps up front', async () => {
|
|
40
|
-
const { dir, run } = (0, harness_js_1.daemonUnderTest)();
|
|
41
|
-
cleanups.push(() => (0, node_fs_1.rmSync)(dir, { recursive: true, force: true }));
|
|
42
|
-
const client = new client_js_1.AttachDaemonClient({ ipcDir: (0, node_path_1.join)(dir, 'ipc'), client: 'runner', pollMs: 25 });
|
|
43
|
-
await (0, vitest_1.expect)((0, runner_js_1.runAttachScript)({ name: 'bad', steps: [{ op: 'eval', expression: '1' }] }, client)).rejects.toThrowError(/eval is not a declarative op/);
|
|
44
|
-
await client.quit();
|
|
45
|
-
await run;
|
|
46
|
-
}, 60000);
|
|
47
|
-
(0, vitest_1.it)('aborts on the first failing step with the step index and skips later steps', async () => {
|
|
48
|
-
const { dir, run } = (0, harness_js_1.daemonUnderTest)();
|
|
49
|
-
cleanups.push(() => (0, node_fs_1.rmSync)(dir, { recursive: true, force: true }));
|
|
50
|
-
const client = new client_js_1.AttachDaemonClient({ ipcDir: (0, node_path_1.join)(dir, 'ipc'), client: 'runner', pollMs: 25 });
|
|
51
|
-
const failed = await (0, runner_js_1.runAttachScript)({
|
|
52
|
-
name: 'abort',
|
|
53
|
-
steps: [
|
|
54
|
-
{ op: 'goto', url: 'http://insecure.example/' },
|
|
55
|
-
{ op: 'read', out: 'never' },
|
|
56
|
-
],
|
|
57
|
-
}, client);
|
|
58
|
-
(0, vitest_1.expect)(failed.ok).toBe(false);
|
|
59
|
-
(0, vitest_1.expect)(failed.failedStep).toBe(0);
|
|
60
|
-
(0, vitest_1.expect)(failed.error?.code).toBe('POLICY_BLOCKED');
|
|
61
|
-
(0, vitest_1.expect)(failed.results.never).toBeUndefined();
|
|
62
|
-
(0, vitest_1.expect)(failed.steps).toHaveLength(1);
|
|
63
|
-
await client.quit();
|
|
64
|
-
await run;
|
|
65
|
-
}, 60000);
|
|
66
|
-
});
|
|
67
|
-
//# sourceMappingURL=runner.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../../../src/attach/daemon/__tests__/runner.test.ts"],"names":[],"mappings":"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"}
|