@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.
Files changed (124) hide show
  1. package/README.md +80 -0
  2. package/dist/BrowserService.js +9 -45
  3. package/dist/BrowserService.js.map +1 -1
  4. package/dist/attach/AttachController.js +44 -41
  5. package/dist/attach/AttachController.js.map +1 -1
  6. package/dist/attach/backends/jxa.js +29 -62
  7. package/dist/attach/backends/jxa.js.map +1 -1
  8. package/dist/attach/backends/raw-cdp.js +32 -35
  9. package/dist/attach/backends/raw-cdp.js.map +1 -1
  10. package/dist/attach/daemon/client.js +23 -23
  11. package/dist/attach/daemon/client.js.map +1 -1
  12. package/dist/attach/daemon/daemon-lock.js +14 -17
  13. package/dist/attach/daemon/daemon-lock.js.map +1 -1
  14. package/dist/attach/daemon/daemon-main.d.ts +11 -0
  15. package/dist/attach/daemon/daemon-main.d.ts.map +1 -1
  16. package/dist/attach/daemon/daemon-main.js +37 -18
  17. package/dist/attach/daemon/daemon-main.js.map +1 -1
  18. package/dist/attach/daemon/daemon.d.ts.map +1 -1
  19. package/dist/attach/daemon/daemon.js +41 -32
  20. package/dist/attach/daemon/daemon.js.map +1 -1
  21. package/dist/attach/daemon/index.js +7 -25
  22. package/dist/attach/daemon/index.js.map +1 -1
  23. package/dist/attach/daemon/protocol.js +33 -45
  24. package/dist/attach/daemon/protocol.js.map +1 -1
  25. package/dist/attach/daemon/runner.js +1 -4
  26. package/dist/attach/daemon/runner.js.map +1 -1
  27. package/dist/attach/daemon/surface.js +12 -14
  28. package/dist/attach/daemon/surface.js.map +1 -1
  29. package/dist/attach/devtools-port.js +1 -4
  30. package/dist/attach/devtools-port.js.map +1 -1
  31. package/dist/attach/errors.js +4 -9
  32. package/dist/attach/errors.js.map +1 -1
  33. package/dist/attach/lease.js +18 -23
  34. package/dist/attach/lease.js.map +1 -1
  35. package/dist/attach/singleton-lock.js +1 -4
  36. package/dist/attach/singleton-lock.js.map +1 -1
  37. package/dist/attach/state.js +6 -13
  38. package/dist/attach/state.js.map +1 -1
  39. package/dist/attach/tools.js +84 -88
  40. package/dist/attach/tools.js.map +1 -1
  41. package/dist/attach/url-policy.js +2 -6
  42. package/dist/attach/url-policy.js.map +1 -1
  43. package/dist/attach.js +7 -23
  44. package/dist/attach.js.map +1 -1
  45. package/dist/captcha/CaptchaSolver.js +4 -7
  46. package/dist/captcha/CaptchaSolver.js.map +1 -1
  47. package/dist/captcha/ICaptchaProvider.js +1 -2
  48. package/dist/captcha/ICaptchaProvider.js.map +1 -1
  49. package/dist/index.js +55 -75
  50. package/dist/index.js.map +1 -1
  51. package/dist/proxy/IProxyProvider.js +1 -2
  52. package/dist/proxy/IProxyProvider.js.map +1 -1
  53. package/dist/proxy/ProxyManager.js +7 -10
  54. package/dist/proxy/ProxyManager.js.map +1 -1
  55. package/dist/tools/ClickTool.js +17 -20
  56. package/dist/tools/ClickTool.js.map +1 -1
  57. package/dist/tools/EvaluateTool.js +16 -19
  58. package/dist/tools/EvaluateTool.js.map +1 -1
  59. package/dist/tools/ExtractTool.js +23 -26
  60. package/dist/tools/ExtractTool.js.map +1 -1
  61. package/dist/tools/FillTool.js +17 -20
  62. package/dist/tools/FillTool.js.map +1 -1
  63. package/dist/tools/NavigateTool.js +31 -34
  64. package/dist/tools/NavigateTool.js.map +1 -1
  65. package/dist/tools/PageSnapshotTool.js +13 -16
  66. package/dist/tools/PageSnapshotTool.js.map +1 -1
  67. package/dist/tools/ScreenshotTool.js +16 -19
  68. package/dist/tools/ScreenshotTool.js.map +1 -1
  69. package/dist/tools/ScrollTool.js +17 -20
  70. package/dist/tools/ScrollTool.js.map +1 -1
  71. package/dist/tools/SessionTool.js +24 -27
  72. package/dist/tools/SessionTool.js.map +1 -1
  73. package/dist/tools/WaitTool.js +22 -25
  74. package/dist/tools/WaitTool.js.map +1 -1
  75. package/manifest.json +1 -1
  76. package/package.json +5 -4
  77. package/dist/attach/__tests__/AttachController.test.d.ts +0 -2
  78. package/dist/attach/__tests__/AttachController.test.d.ts.map +0 -1
  79. package/dist/attach/__tests__/AttachController.test.js +0 -278
  80. package/dist/attach/__tests__/AttachController.test.js.map +0 -1
  81. package/dist/attach/__tests__/attach-primitives.test.d.ts +0 -2
  82. package/dist/attach/__tests__/attach-primitives.test.d.ts.map +0 -1
  83. package/dist/attach/__tests__/attach-primitives.test.js +0 -158
  84. package/dist/attach/__tests__/attach-primitives.test.js.map +0 -1
  85. package/dist/attach/__tests__/jxa-args.test.d.ts +0 -2
  86. package/dist/attach/__tests__/jxa-args.test.d.ts.map +0 -1
  87. package/dist/attach/__tests__/jxa-args.test.js +0 -37
  88. package/dist/attach/__tests__/jxa-args.test.js.map +0 -1
  89. package/dist/attach/__tests__/pack-registration.test.d.ts +0 -2
  90. package/dist/attach/__tests__/pack-registration.test.d.ts.map +0 -1
  91. package/dist/attach/__tests__/pack-registration.test.js +0 -34
  92. package/dist/attach/__tests__/pack-registration.test.js.map +0 -1
  93. package/dist/attach/__tests__/tools.test.d.ts +0 -2
  94. package/dist/attach/__tests__/tools.test.d.ts.map +0 -1
  95. package/dist/attach/__tests__/tools.test.js +0 -155
  96. package/dist/attach/__tests__/tools.test.js.map +0 -1
  97. package/dist/attach/backends/__tests__/raw-cdp.test.d.ts +0 -2
  98. package/dist/attach/backends/__tests__/raw-cdp.test.d.ts.map +0 -1
  99. package/dist/attach/backends/__tests__/raw-cdp.test.js +0 -133
  100. package/dist/attach/backends/__tests__/raw-cdp.test.js.map +0 -1
  101. package/dist/attach/daemon/__tests__/client.test.d.ts +0 -2
  102. package/dist/attach/daemon/__tests__/client.test.d.ts.map +0 -1
  103. package/dist/attach/daemon/__tests__/client.test.js +0 -58
  104. package/dist/attach/daemon/__tests__/client.test.js.map +0 -1
  105. package/dist/attach/daemon/__tests__/daemon-lock.test.d.ts +0 -2
  106. package/dist/attach/daemon/__tests__/daemon-lock.test.d.ts.map +0 -1
  107. package/dist/attach/daemon/__tests__/daemon-lock.test.js +0 -72
  108. package/dist/attach/daemon/__tests__/daemon-lock.test.js.map +0 -1
  109. package/dist/attach/daemon/__tests__/daemon-loop.integration.test.d.ts +0 -2
  110. package/dist/attach/daemon/__tests__/daemon-loop.integration.test.d.ts.map +0 -1
  111. package/dist/attach/daemon/__tests__/daemon-loop.integration.test.js +0 -102
  112. package/dist/attach/daemon/__tests__/daemon-loop.integration.test.js.map +0 -1
  113. package/dist/attach/daemon/__tests__/harness.d.ts +0 -44
  114. package/dist/attach/daemon/__tests__/harness.d.ts.map +0 -1
  115. package/dist/attach/daemon/__tests__/harness.js +0 -96
  116. package/dist/attach/daemon/__tests__/harness.js.map +0 -1
  117. package/dist/attach/daemon/__tests__/protocol.test.d.ts +0 -2
  118. package/dist/attach/daemon/__tests__/protocol.test.d.ts.map +0 -1
  119. package/dist/attach/daemon/__tests__/protocol.test.js +0 -71
  120. package/dist/attach/daemon/__tests__/protocol.test.js.map +0 -1
  121. package/dist/attach/daemon/__tests__/runner.test.d.ts +0 -2
  122. package/dist/attach/daemon/__tests__/runner.test.d.ts.map +0 -1
  123. package/dist/attach/daemon/__tests__/runner.test.js +0 -67
  124. 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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=runner.test.d.ts.map
@@ -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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"}