imperium-crawl 1.5.2 → 2.0.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 (81) hide show
  1. package/README.md +370 -257
  2. package/dist/constants.d.ts +2 -1
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +3 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/network/interceptor.d.ts +19 -0
  7. package/dist/network/interceptor.d.ts.map +1 -0
  8. package/dist/network/interceptor.js +82 -0
  9. package/dist/network/interceptor.js.map +1 -0
  10. package/dist/network/types.d.ts +27 -0
  11. package/dist/network/types.d.ts.map +1 -0
  12. package/dist/network/types.js +2 -0
  13. package/dist/network/types.js.map +1 -0
  14. package/dist/security/action-policy.d.ts +26 -0
  15. package/dist/security/action-policy.d.ts.map +1 -0
  16. package/dist/security/action-policy.js +136 -0
  17. package/dist/security/action-policy.js.map +1 -0
  18. package/dist/security/auth-vault.d.ts +49 -0
  19. package/dist/security/auth-vault.d.ts.map +1 -0
  20. package/dist/security/auth-vault.js +133 -0
  21. package/dist/security/auth-vault.js.map +1 -0
  22. package/dist/security/domain-filter.d.ts +19 -0
  23. package/dist/security/domain-filter.d.ts.map +1 -0
  24. package/dist/security/domain-filter.js +114 -0
  25. package/dist/security/domain-filter.js.map +1 -0
  26. package/dist/security/types.d.ts +19 -0
  27. package/dist/security/types.d.ts.map +1 -0
  28. package/dist/security/types.js +2 -0
  29. package/dist/security/types.js.map +1 -0
  30. package/dist/sessions/encryption.d.ts +37 -0
  31. package/dist/sessions/encryption.d.ts.map +1 -0
  32. package/dist/sessions/encryption.js +108 -0
  33. package/dist/sessions/encryption.js.map +1 -0
  34. package/dist/sessions/index.d.ts +1 -0
  35. package/dist/sessions/index.d.ts.map +1 -1
  36. package/dist/sessions/index.js +1 -0
  37. package/dist/sessions/index.js.map +1 -1
  38. package/dist/sessions/manager.d.ts +3 -0
  39. package/dist/sessions/manager.d.ts.map +1 -1
  40. package/dist/sessions/manager.js +28 -2
  41. package/dist/sessions/manager.js.map +1 -1
  42. package/dist/snapshot/annotator.d.ts +21 -0
  43. package/dist/snapshot/annotator.d.ts.map +1 -0
  44. package/dist/snapshot/annotator.js +152 -0
  45. package/dist/snapshot/annotator.js.map +1 -0
  46. package/dist/snapshot/boundary.d.ts +7 -0
  47. package/dist/snapshot/boundary.d.ts.map +1 -0
  48. package/dist/snapshot/boundary.js +12 -0
  49. package/dist/snapshot/boundary.js.map +1 -0
  50. package/dist/snapshot/differ.d.ts +40 -0
  51. package/dist/snapshot/differ.d.ts.map +1 -0
  52. package/dist/snapshot/differ.js +194 -0
  53. package/dist/snapshot/differ.js.map +1 -0
  54. package/dist/snapshot/extractor.d.ts +27 -0
  55. package/dist/snapshot/extractor.d.ts.map +1 -0
  56. package/dist/snapshot/extractor.js +265 -0
  57. package/dist/snapshot/extractor.js.map +1 -0
  58. package/dist/snapshot/index.d.ts +8 -0
  59. package/dist/snapshot/index.d.ts.map +1 -0
  60. package/dist/snapshot/index.js +6 -0
  61. package/dist/snapshot/index.js.map +1 -0
  62. package/dist/snapshot/store.d.ts +28 -0
  63. package/dist/snapshot/store.d.ts.map +1 -0
  64. package/dist/snapshot/store.js +65 -0
  65. package/dist/snapshot/store.js.map +1 -0
  66. package/dist/snapshot/types.d.ts +42 -0
  67. package/dist/snapshot/types.d.ts.map +1 -0
  68. package/dist/snapshot/types.js +2 -0
  69. package/dist/snapshot/types.js.map +1 -0
  70. package/dist/tools/index.d.ts.map +1 -1
  71. package/dist/tools/index.js +2 -0
  72. package/dist/tools/index.js.map +1 -1
  73. package/dist/tools/interact.d.ts +194 -5
  74. package/dist/tools/interact.d.ts.map +1 -1
  75. package/dist/tools/interact.js +355 -20
  76. package/dist/tools/interact.js.map +1 -1
  77. package/dist/tools/snapshot.d.ts +53 -0
  78. package/dist/tools/snapshot.d.ts.map +1 -0
  79. package/dist/tools/snapshot.js +160 -0
  80. package/dist/tools/snapshot.js.map +1 -0
  81. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ /**
2
+ * SnapshotStore — In-memory ref storage with LRU eviction.
3
+ *
4
+ * Stores RefMaps keyed by session_id (or auto-generated snapshot IDs).
5
+ * Refs are ephemeral — they exist only in memory and are invalidated
6
+ * when a new snapshot is taken for the same session.
7
+ */
8
+ import { MAX_STORED_SNAPSHOTS } from "../constants.js";
9
+ class SnapshotStore {
10
+ store = new Map();
11
+ /** Save a snapshot's refs, evicting oldest if at capacity */
12
+ save(id, refs, url) {
13
+ // Evict oldest if at capacity (LRU)
14
+ if (this.store.size >= MAX_STORED_SNAPSHOTS && !this.store.has(id)) {
15
+ let oldestKey;
16
+ let oldestTime = Infinity;
17
+ for (const [key, val] of this.store) {
18
+ if (val.timestamp < oldestTime) {
19
+ oldestTime = val.timestamp;
20
+ oldestKey = key;
21
+ }
22
+ }
23
+ if (oldestKey)
24
+ this.store.delete(oldestKey);
25
+ }
26
+ this.store.set(id, { refs, timestamp: Date.now(), url });
27
+ }
28
+ /** Resolve a ref string (e.g. "e5" or "@e5") to its locator info */
29
+ resolveRef(id, refString) {
30
+ const snapshot = this.store.get(id);
31
+ if (!snapshot)
32
+ return null;
33
+ // Strip leading @ if present
34
+ const ref = refString.startsWith("@") ? refString.slice(1) : refString;
35
+ return snapshot.refs[ref] ?? null;
36
+ }
37
+ /** Get all refs for a snapshot */
38
+ getRefs(id) {
39
+ return this.store.get(id)?.refs ?? null;
40
+ }
41
+ /** Invalidate a specific snapshot */
42
+ invalidate(id) {
43
+ this.store.delete(id);
44
+ }
45
+ /** Clear all stored snapshots */
46
+ clear() {
47
+ this.store.clear();
48
+ }
49
+ /** Number of stored snapshots */
50
+ get size() {
51
+ return this.store.size;
52
+ }
53
+ }
54
+ // ── Singleton ──
55
+ let instance = null;
56
+ export function getSnapshotStore() {
57
+ if (!instance)
58
+ instance = new SnapshotStore();
59
+ return instance;
60
+ }
61
+ /** Reset singleton (for testing) */
62
+ export function resetSnapshotStore() {
63
+ instance = null;
64
+ }
65
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/snapshot/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAQvD,MAAM,aAAa;IACT,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,6DAA6D;IAC7D,IAAI,CAAC,EAAU,EAAE,IAAY,EAAE,GAAW;QACxC,oCAAoC;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,oBAAoB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnE,IAAI,SAA6B,CAAC;YAClC,IAAI,UAAU,GAAG,QAAQ,CAAC;YAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,GAAG,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;oBAC/B,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC;oBAC3B,SAAS,GAAG,GAAG,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,IAAI,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,oEAAoE;IACpE,UAAU,CAAC,EAAU,EAAE,SAAiB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,6BAA6B;QAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,kCAAkC;IAClC,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED,qCAAqC;IACrC,UAAU,CAAC,EAAU;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,iCAAiC;IACjC,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAED,kBAAkB;AAElB,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAE1C,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,QAAQ;QAAE,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAC9C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,kBAAkB;IAChC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /** Semantic locator info resolved from a ref */
2
+ export interface RefEntry {
3
+ /** Playwright semantic locator string, e.g. getByRole('button', { name: 'Submit', exact: true }) */
4
+ selector: string;
5
+ /** ARIA role */
6
+ role: string;
7
+ /** Accessible name */
8
+ name: string;
9
+ /** nth index when multiple elements share same role+name */
10
+ nth?: number;
11
+ }
12
+ /** Map of ref IDs (e.g. "e1", "e2") to their locator info */
13
+ export interface RefMap {
14
+ [ref: string]: RefEntry;
15
+ }
16
+ /** Result from getEnhancedSnapshot */
17
+ export interface EnhancedSnapshot {
18
+ /** ARIA tree with [ref=eN] annotations */
19
+ tree: string;
20
+ /** Ref-to-locator mapping */
21
+ refs: RefMap;
22
+ /** Stats about the snapshot */
23
+ stats: {
24
+ totalElements: number;
25
+ interactiveElements: number;
26
+ contentElements: number;
27
+ };
28
+ }
29
+ /** Options for snapshot extraction */
30
+ export interface SnapshotOptions {
31
+ /** Only include interactive elements (default: true) */
32
+ interactive?: boolean;
33
+ /** Also detect cursor:pointer/onclick elements without ARIA roles (default: false) */
34
+ cursor?: boolean;
35
+ /** Maximum depth of ARIA tree to include */
36
+ maxDepth?: number;
37
+ /** Filter out structural elements without refs (default: true) */
38
+ compact?: boolean;
39
+ /** CSS selector to scope the snapshot to a subtree */
40
+ selector?: string;
41
+ }
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/snapshot/types.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,WAAW,QAAQ;IACvB,oGAAoG;IACpG,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,6DAA6D;AAC7D,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB;AAED,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/snapshot/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;IAElB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACzH;AAED,eAAO,MAAM,QAAQ,EAAE,cAAc,EA8BpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0BxB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;IAElB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACzH;AAED,eAAO,MAAM,QAAQ,EAAE,cAAc,EA+BpC,CAAC"}
@@ -16,6 +16,7 @@ import * as queryApi from "./query-api.js";
16
16
  import * as monitorWebsocket from "./monitor-websocket.js";
17
17
  import * as aiExtract from "./ai-extract.js";
18
18
  import * as interact from "./interact.js";
19
+ import * as snapshot from "./snapshot.js";
19
20
  import * as batchScrape from "./batch-scrape.js";
20
21
  import * as listJobs from "./list-jobs.js";
21
22
  import * as jobStatus from "./job-status.js";
@@ -45,6 +46,7 @@ export const allTools = [
45
46
  aiExtract,
46
47
  // Interaction & session tools (Playwright needed)
47
48
  interact,
49
+ snapshot,
48
50
  // Batch processing
49
51
  batchScrape,
50
52
  listJobs,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAU7C,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,qCAAqC;IACrC,MAAwB;IACxB,KAAuB;IACvB,GAAqB;IACrB,OAAyB;IACzB,WAA6B;IAC7B,UAA4B;IAC5B,sCAAsC;IACtC,MAAwB;IACxB,UAA4B;IAC5B,WAA6B;IAC7B,WAA6B;IAC7B,eAAe;IACf,WAA6B;IAC7B,QAA0B;IAC1B,UAA4B;IAC5B,sDAAsD;IACtD,YAA8B;IAC9B,QAA0B;IAC1B,gBAAkC;IAClC,oCAAoC;IACpC,SAA2B;IAC3B,kDAAkD;IAClD,QAA0B;IAC1B,mBAAmB;IACnB,WAA6B;IAC7B,QAA0B;IAC1B,SAA2B;IAC3B,SAA2B;CAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAU7C,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,qCAAqC;IACrC,MAAwB;IACxB,KAAuB;IACvB,GAAqB;IACrB,OAAyB;IACzB,WAA6B;IAC7B,UAA4B;IAC5B,sCAAsC;IACtC,MAAwB;IACxB,UAA4B;IAC5B,WAA6B;IAC7B,WAA6B;IAC7B,eAAe;IACf,WAA6B;IAC7B,QAA0B;IAC1B,UAA4B;IAC5B,sDAAsD;IACtD,YAA8B;IAC9B,QAA0B;IAC1B,gBAAkC;IAClC,oCAAoC;IACpC,SAA2B;IAC3B,kDAAkD;IAClD,QAA0B;IAC1B,QAA0B;IAC1B,mBAAmB;IACnB,WAA6B;IAC7B,QAA0B;IAC1B,SAA2B;IAC3B,SAA2B;CAC5B,CAAC"}
@@ -4,8 +4,9 @@ export declare const description = "Open a browser, execute a sequence of action
4
4
  export declare const schema: z.ZodObject<{
5
5
  url: z.ZodString;
6
6
  actions: z.ZodArray<z.ZodObject<{
7
- type: z.ZodEnum<["click", "type", "scroll", "wait", "screenshot", "evaluate", "select", "hover", "press", "navigate"]>;
7
+ type: z.ZodEnum<["click", "type", "scroll", "wait", "screenshot", "evaluate", "select", "hover", "press", "navigate", "drag", "upload", "storage_get", "storage_set", "cookie_get", "cookie_set", "pdf", "auth_login"]>;
8
8
  selector: z.ZodOptional<z.ZodString>;
9
+ ref: z.ZodOptional<z.ZodString>;
9
10
  text: z.ZodOptional<z.ZodString>;
10
11
  value: z.ZodOptional<z.ZodString>;
11
12
  script: z.ZodOptional<z.ZodString>;
@@ -14,28 +15,93 @@ export declare const schema: z.ZodObject<{
14
15
  duration: z.ZodOptional<z.ZodNumber>;
15
16
  x: z.ZodOptional<z.ZodNumber>;
16
17
  y: z.ZodOptional<z.ZodNumber>;
18
+ target_selector: z.ZodOptional<z.ZodString>;
19
+ target_ref: z.ZodOptional<z.ZodString>;
20
+ file_paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
21
+ storage: z.ZodOptional<z.ZodEnum<["local", "session"]>>;
22
+ auth_profile: z.ZodOptional<z.ZodString>;
23
+ cookies: z.ZodOptional<z.ZodArray<z.ZodObject<{
24
+ name: z.ZodString;
25
+ value: z.ZodString;
26
+ domain: z.ZodOptional<z.ZodString>;
27
+ path: z.ZodOptional<z.ZodString>;
28
+ expires: z.ZodOptional<z.ZodNumber>;
29
+ httpOnly: z.ZodOptional<z.ZodBoolean>;
30
+ secure: z.ZodOptional<z.ZodBoolean>;
31
+ sameSite: z.ZodOptional<z.ZodEnum<["Strict", "Lax", "None"]>>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ value: string;
34
+ name: string;
35
+ path?: string | undefined;
36
+ domain?: string | undefined;
37
+ expires?: number | undefined;
38
+ httpOnly?: boolean | undefined;
39
+ secure?: boolean | undefined;
40
+ sameSite?: "Strict" | "Lax" | "None" | undefined;
41
+ }, {
42
+ value: string;
43
+ name: string;
44
+ path?: string | undefined;
45
+ domain?: string | undefined;
46
+ expires?: number | undefined;
47
+ httpOnly?: boolean | undefined;
48
+ secure?: boolean | undefined;
49
+ sameSite?: "Strict" | "Lax" | "None" | undefined;
50
+ }>, "many">>;
17
51
  }, "strip", z.ZodTypeAny, {
18
- type: "type" | "select" | "screenshot" | "click" | "scroll" | "wait" | "evaluate" | "hover" | "press" | "navigate";
52
+ type: "type" | "select" | "screenshot" | "navigate" | "click" | "hover" | "drag" | "upload" | "evaluate" | "pdf" | "cookie_get" | "storage_get" | "cookie_set" | "storage_set" | "scroll" | "wait" | "press" | "auth_login";
19
53
  key?: string | undefined;
20
54
  value?: string | undefined;
21
55
  text?: string | undefined;
22
56
  url?: string | undefined;
23
57
  script?: string | undefined;
58
+ ref?: string | undefined;
24
59
  x?: number | undefined;
25
60
  y?: number | undefined;
26
61
  selector?: string | undefined;
27
62
  duration?: number | undefined;
63
+ target_selector?: string | undefined;
64
+ target_ref?: string | undefined;
65
+ file_paths?: string[] | undefined;
66
+ storage?: "local" | "session" | undefined;
67
+ auth_profile?: string | undefined;
68
+ cookies?: {
69
+ value: string;
70
+ name: string;
71
+ path?: string | undefined;
72
+ domain?: string | undefined;
73
+ expires?: number | undefined;
74
+ httpOnly?: boolean | undefined;
75
+ secure?: boolean | undefined;
76
+ sameSite?: "Strict" | "Lax" | "None" | undefined;
77
+ }[] | undefined;
28
78
  }, {
29
- type: "type" | "select" | "screenshot" | "click" | "scroll" | "wait" | "evaluate" | "hover" | "press" | "navigate";
79
+ type: "type" | "select" | "screenshot" | "navigate" | "click" | "hover" | "drag" | "upload" | "evaluate" | "pdf" | "cookie_get" | "storage_get" | "cookie_set" | "storage_set" | "scroll" | "wait" | "press" | "auth_login";
30
80
  key?: string | undefined;
31
81
  value?: string | undefined;
32
82
  text?: string | undefined;
33
83
  url?: string | undefined;
34
84
  script?: string | undefined;
85
+ ref?: string | undefined;
35
86
  x?: number | undefined;
36
87
  y?: number | undefined;
37
88
  selector?: string | undefined;
38
89
  duration?: number | undefined;
90
+ target_selector?: string | undefined;
91
+ target_ref?: string | undefined;
92
+ file_paths?: string[] | undefined;
93
+ storage?: "local" | "session" | undefined;
94
+ auth_profile?: string | undefined;
95
+ cookies?: {
96
+ value: string;
97
+ name: string;
98
+ path?: string | undefined;
99
+ domain?: string | undefined;
100
+ expires?: number | undefined;
101
+ httpOnly?: boolean | undefined;
102
+ secure?: boolean | undefined;
103
+ sameSite?: "Strict" | "Lax" | "None" | undefined;
104
+ }[] | undefined;
39
105
  }>, "many">;
40
106
  return_content: z.ZodDefault<z.ZodBoolean>;
41
107
  return_screenshot: z.ZodDefault<z.ZodBoolean>;
@@ -43,46 +109,169 @@ export declare const schema: z.ZodObject<{
43
109
  timeout: z.ZodDefault<z.ZodNumber>;
44
110
  proxy: z.ZodOptional<z.ZodString>;
45
111
  chrome_profile: z.ZodOptional<z.ZodString>;
112
+ return_snapshot: z.ZodDefault<z.ZodBoolean>;
113
+ action_policy_path: z.ZodOptional<z.ZodString>;
114
+ allowed_domains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
115
+ intercept_rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
116
+ url_pattern: z.ZodString;
117
+ action: z.ZodEnum<["block", "mock", "modify", "log"]>;
118
+ response: z.ZodOptional<z.ZodObject<{
119
+ status: z.ZodOptional<z.ZodNumber>;
120
+ body: z.ZodOptional<z.ZodString>;
121
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
122
+ contentType: z.ZodOptional<z.ZodString>;
123
+ }, "strip", z.ZodTypeAny, {
124
+ headers?: Record<string, string> | undefined;
125
+ status?: number | undefined;
126
+ body?: string | undefined;
127
+ contentType?: string | undefined;
128
+ }, {
129
+ headers?: Record<string, string> | undefined;
130
+ status?: number | undefined;
131
+ body?: string | undefined;
132
+ contentType?: string | undefined;
133
+ }>>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ action: "block" | "mock" | "modify" | "log";
136
+ url_pattern: string;
137
+ response?: {
138
+ headers?: Record<string, string> | undefined;
139
+ status?: number | undefined;
140
+ body?: string | undefined;
141
+ contentType?: string | undefined;
142
+ } | undefined;
143
+ }, {
144
+ action: "block" | "mock" | "modify" | "log";
145
+ url_pattern: string;
146
+ response?: {
147
+ headers?: Record<string, string> | undefined;
148
+ status?: number | undefined;
149
+ body?: string | undefined;
150
+ contentType?: string | undefined;
151
+ } | undefined;
152
+ }>, "many">>;
153
+ return_network_log: z.ZodDefault<z.ZodBoolean>;
154
+ device: z.ZodOptional<z.ZodString>;
155
+ geolocation: z.ZodOptional<z.ZodObject<{
156
+ latitude: z.ZodNumber;
157
+ longitude: z.ZodNumber;
158
+ }, "strip", z.ZodTypeAny, {
159
+ latitude: number;
160
+ longitude: number;
161
+ }, {
162
+ latitude: number;
163
+ longitude: number;
164
+ }>>;
46
165
  }, "strip", z.ZodTypeAny, {
47
166
  url: string;
48
167
  timeout: number;
49
168
  actions: {
50
- type: "type" | "select" | "screenshot" | "click" | "scroll" | "wait" | "evaluate" | "hover" | "press" | "navigate";
169
+ type: "type" | "select" | "screenshot" | "navigate" | "click" | "hover" | "drag" | "upload" | "evaluate" | "pdf" | "cookie_get" | "storage_get" | "cookie_set" | "storage_set" | "scroll" | "wait" | "press" | "auth_login";
51
170
  key?: string | undefined;
52
171
  value?: string | undefined;
53
172
  text?: string | undefined;
54
173
  url?: string | undefined;
55
174
  script?: string | undefined;
175
+ ref?: string | undefined;
56
176
  x?: number | undefined;
57
177
  y?: number | undefined;
58
178
  selector?: string | undefined;
59
179
  duration?: number | undefined;
180
+ target_selector?: string | undefined;
181
+ target_ref?: string | undefined;
182
+ file_paths?: string[] | undefined;
183
+ storage?: "local" | "session" | undefined;
184
+ auth_profile?: string | undefined;
185
+ cookies?: {
186
+ value: string;
187
+ name: string;
188
+ path?: string | undefined;
189
+ domain?: string | undefined;
190
+ expires?: number | undefined;
191
+ httpOnly?: boolean | undefined;
192
+ secure?: boolean | undefined;
193
+ sameSite?: "Strict" | "Lax" | "None" | undefined;
194
+ }[] | undefined;
60
195
  }[];
61
196
  return_content: boolean;
62
197
  return_screenshot: boolean;
198
+ return_snapshot: boolean;
199
+ return_network_log: boolean;
63
200
  proxy?: string | undefined;
201
+ geolocation?: {
202
+ latitude: number;
203
+ longitude: number;
204
+ } | undefined;
64
205
  chrome_profile?: string | undefined;
65
206
  session_id?: string | undefined;
207
+ action_policy_path?: string | undefined;
208
+ allowed_domains?: string[] | undefined;
209
+ intercept_rules?: {
210
+ action: "block" | "mock" | "modify" | "log";
211
+ url_pattern: string;
212
+ response?: {
213
+ headers?: Record<string, string> | undefined;
214
+ status?: number | undefined;
215
+ body?: string | undefined;
216
+ contentType?: string | undefined;
217
+ } | undefined;
218
+ }[] | undefined;
219
+ device?: string | undefined;
66
220
  }, {
67
221
  url: string;
68
222
  actions: {
69
- type: "type" | "select" | "screenshot" | "click" | "scroll" | "wait" | "evaluate" | "hover" | "press" | "navigate";
223
+ type: "type" | "select" | "screenshot" | "navigate" | "click" | "hover" | "drag" | "upload" | "evaluate" | "pdf" | "cookie_get" | "storage_get" | "cookie_set" | "storage_set" | "scroll" | "wait" | "press" | "auth_login";
70
224
  key?: string | undefined;
71
225
  value?: string | undefined;
72
226
  text?: string | undefined;
73
227
  url?: string | undefined;
74
228
  script?: string | undefined;
229
+ ref?: string | undefined;
75
230
  x?: number | undefined;
76
231
  y?: number | undefined;
77
232
  selector?: string | undefined;
78
233
  duration?: number | undefined;
234
+ target_selector?: string | undefined;
235
+ target_ref?: string | undefined;
236
+ file_paths?: string[] | undefined;
237
+ storage?: "local" | "session" | undefined;
238
+ auth_profile?: string | undefined;
239
+ cookies?: {
240
+ value: string;
241
+ name: string;
242
+ path?: string | undefined;
243
+ domain?: string | undefined;
244
+ expires?: number | undefined;
245
+ httpOnly?: boolean | undefined;
246
+ secure?: boolean | undefined;
247
+ sameSite?: "Strict" | "Lax" | "None" | undefined;
248
+ }[] | undefined;
79
249
  }[];
80
250
  proxy?: string | undefined;
251
+ geolocation?: {
252
+ latitude: number;
253
+ longitude: number;
254
+ } | undefined;
81
255
  timeout?: number | undefined;
82
256
  chrome_profile?: string | undefined;
83
257
  return_content?: boolean | undefined;
84
258
  return_screenshot?: boolean | undefined;
85
259
  session_id?: string | undefined;
260
+ return_snapshot?: boolean | undefined;
261
+ action_policy_path?: string | undefined;
262
+ allowed_domains?: string[] | undefined;
263
+ intercept_rules?: {
264
+ action: "block" | "mock" | "modify" | "log";
265
+ url_pattern: string;
266
+ response?: {
267
+ headers?: Record<string, string> | undefined;
268
+ status?: number | undefined;
269
+ body?: string | undefined;
270
+ contentType?: string | undefined;
271
+ } | undefined;
272
+ }[] | undefined;
273
+ return_network_log?: boolean | undefined;
274
+ device?: string | undefined;
86
275
  }>;
87
276
  export type InteractInput = z.infer<typeof schema>;
88
277
  export declare function execute(input: InteractInput): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"interact.d.ts","sourceRoot":"","sources":["../../src/tools/interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,IAAI,aAAa,CAAC;AAE/B,eAAO,MAAM,WAAW,wPAC+N,CAAC;AA0BxP,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCjB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AA+GnD,wBAAsB,OAAO,CAAC,KAAK,EAAE,aAAa;;cAiGjB,MAAM;eAAS,MAAM;eAAS,MAAM;mBAAa,MAAM;;GAiBvF"}
1
+ {"version":3,"file":"interact.d.ts","sourceRoot":"","sources":["../../src/tools/interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,IAAI,aAAa,CAAC;AAE/B,eAAO,MAAM,WAAW,wPAC+N,CAAC;AAkDxP,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+EjB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AA6TnD,wBAAsB,OAAO,CAAC,KAAK,EAAE,aAAa;;cA+JjB,MAAM;eAAS,MAAM;eAAS,MAAM;mBAAa,MAAM;;GAiBvF"}