n8n-nodes-test-node 1.0.11 → 1.0.13

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.
@@ -0,0 +1,2564 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CamofoxBrowserToolNode = void 0;
4
+ class CamofoxBrowserToolNode {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: 'camofox-browser Tool',
8
+ name: 'camofoxBrowserTool',
9
+ icon: 'file:icon.png',
10
+ group: ['transform'],
11
+ version: 1,
12
+ subtitle: '={{$parameter["operation"] + ($parameter["resource"] ? " " + $parameter["resource"] : "")}}',
13
+ description: 'Anti-detection browser automation server for AI agents. Accessibility snapshots, element refs, session isolation, cookie import, proxy rotation, and structured logs.',
14
+ usableAsTool: true,
15
+ defaults: {
16
+ name: 'camofox-browser Tool',
17
+ },
18
+ inputs: ['main'],
19
+ outputs: ['main'],
20
+ credentials: [
21
+ {
22
+ name: 'camofoxBrowserApi',
23
+ required: true,
24
+ },
25
+ ],
26
+ requestDefaults: {
27
+ baseURL: '={{$credentials.baseUrl}}',
28
+ headers: {
29
+ Accept: 'application/json',
30
+ },
31
+ },
32
+ properties: [
33
+ {
34
+ displayName: 'Resource',
35
+ name: 'resource',
36
+ type: 'options',
37
+ noDataExpression: true,
38
+ options: [
39
+ { name: 'Sessions', value: 'sessions' },
40
+ { name: 'System', value: 'system' },
41
+ { name: 'Tabs', value: 'tabs' },
42
+ { name: 'Navigation', value: 'navigation' },
43
+ { name: 'Content', value: 'content' },
44
+ { name: 'Interaction', value: 'interaction' },
45
+ { name: 'Legacy', value: 'legacy' },
46
+ { name: 'Browser', value: 'browser' },
47
+ ],
48
+ default: 'sessions',
49
+ },
50
+ {
51
+ displayName: 'Operation',
52
+ name: 'operation',
53
+ type: 'options',
54
+ noDataExpression: true,
55
+ options: [
56
+ {
57
+ name: 'Import Cookies Into A User Session',
58
+ value: 'postsessionsUserIdCookies',
59
+ action: 'Import cookies into a user session',
60
+ description: 'Import cookies for authenticated browsing. Requires BearerAuth in production.',
61
+ routing: {
62
+ request: {
63
+ method: 'POST',
64
+ url: '=/sessions/{{$parameter["userId"]}}/cookies',
65
+ },
66
+ },
67
+ },
68
+ {
69
+ name: 'List Trace Files',
70
+ value: 'getsessionsUserIdTraces',
71
+ action: 'List trace files',
72
+ description: 'Returns all Playwright trace zip files for the given user session, sorted newest first.',
73
+ routing: {
74
+ request: {
75
+ method: 'GET',
76
+ url: '=/sessions/{{$parameter["userId"]}}/traces',
77
+ },
78
+ },
79
+ },
80
+ {
81
+ name: 'Download A Trace File',
82
+ value: 'getsessionsUserIdTracesFilename',
83
+ action: 'Download a trace file',
84
+ description: 'Streams a Playwright trace zip for viewing in trace.playwright.dev.',
85
+ routing: {
86
+ request: {
87
+ method: 'GET',
88
+ url: '=/sessions/{{$parameter["userId"]}}/traces/{{$parameter["filename"]}}',
89
+ },
90
+ },
91
+ },
92
+ {
93
+ name: 'Delete A Trace File',
94
+ value: 'deletesessionsUserIdTracesFilename',
95
+ action: 'Delete a trace file',
96
+ description: 'Removes a specific Playwright trace zip from the server.',
97
+ routing: {
98
+ request: {
99
+ method: 'DELETE',
100
+ url: '=/sessions/{{$parameter["userId"]}}/traces/{{$parameter["filename"]}}',
101
+ },
102
+ },
103
+ },
104
+ {
105
+ name: 'Destroy A User Session',
106
+ value: 'deletesessionsUserId',
107
+ action: 'Destroy a user session',
108
+ description: 'Closes all tabs and cleans up state for the given userId.',
109
+ routing: {
110
+ request: {
111
+ method: 'DELETE',
112
+ url: '=/sessions/{{$parameter["userId"]}}',
113
+ },
114
+ },
115
+ },
116
+ ],
117
+ displayOptions: {
118
+ show: {
119
+ resource: ['sessions'],
120
+ },
121
+ },
122
+ default: 'postsessionsUserIdCookies',
123
+ },
124
+ {
125
+ displayName: 'Operation',
126
+ name: 'operation',
127
+ type: 'options',
128
+ noDataExpression: true,
129
+ options: [
130
+ {
131
+ name: 'Health Check',
132
+ value: 'gethealth',
133
+ action: 'Health check',
134
+ description: 'Detailed health with tab/session counts and failure tracking.',
135
+ routing: {
136
+ request: {
137
+ method: 'GET',
138
+ url: '=/health',
139
+ },
140
+ },
141
+ },
142
+ {
143
+ name: 'Prometheus Metrics',
144
+ value: 'getmetrics',
145
+ action: 'Prometheus metrics',
146
+ description: 'Returns Prometheus text exposition format. Requires PROMETHEUS_ENABLED=1.',
147
+ routing: {
148
+ request: {
149
+ method: 'GET',
150
+ url: '=/metrics',
151
+ },
152
+ },
153
+ },
154
+ {
155
+ name: 'Proactive Memory Pressure Cleanup',
156
+ value: 'postpressureCleanup',
157
+ action: 'Proactive memory-pressure cleanup',
158
+ description: 'Closes tabs observed idle across multiple checks while preserving tabs\nwith active/queued operations. Never returns URLs, titles, cookies,\npage text, or user IDs. Defaults to dry-run mode.\n',
159
+ routing: {
160
+ request: {
161
+ method: 'POST',
162
+ url: '=/pressure/cleanup',
163
+ },
164
+ },
165
+ },
166
+ {
167
+ name: 'Server Status',
168
+ value: 'get',
169
+ action: 'Server status',
170
+ description: 'Returns basic server liveness and browser state.',
171
+ routing: {
172
+ request: {
173
+ method: 'GET',
174
+ url: '=/',
175
+ },
176
+ },
177
+ },
178
+ ],
179
+ displayOptions: {
180
+ show: {
181
+ resource: ['system'],
182
+ },
183
+ },
184
+ default: 'gethealth',
185
+ },
186
+ {
187
+ displayName: 'Operation',
188
+ name: 'operation',
189
+ type: 'options',
190
+ noDataExpression: true,
191
+ options: [
192
+ {
193
+ name: 'List Open Tabs',
194
+ value: 'gettabs',
195
+ action: 'List open tabs',
196
+ description: 'Returns all tabs for a given userId.',
197
+ routing: {
198
+ request: {
199
+ method: 'GET',
200
+ url: '=/tabs',
201
+ },
202
+ },
203
+ },
204
+ {
205
+ name: 'Create A New Tab',
206
+ value: 'posttabs',
207
+ action: 'Create a new tab',
208
+ description: 'Creates a tab in the given session. Optionally navigates to an initial URL.',
209
+ routing: {
210
+ request: {
211
+ method: 'POST',
212
+ url: '=/tabs',
213
+ },
214
+ },
215
+ },
216
+ {
217
+ name: 'Tab Statistics',
218
+ value: 'gettabsTabIdStats',
219
+ action: 'Tab statistics',
220
+ description: 'Returns tab metadata including URL, tool call count, visited URLs, download/failure counts.',
221
+ routing: {
222
+ request: {
223
+ method: 'GET',
224
+ url: '=/tabs/{{$parameter["tabId"]}}/stats',
225
+ },
226
+ },
227
+ },
228
+ {
229
+ name: 'Close A Tab',
230
+ value: 'deletetabsTabId',
231
+ action: 'Close a tab',
232
+ description: 'Close a tab',
233
+ routing: {
234
+ request: {
235
+ method: 'DELETE',
236
+ url: '=/tabs/{{$parameter["tabId"]}}',
237
+ },
238
+ },
239
+ },
240
+ {
241
+ name: 'Close All Tabs In A Group',
242
+ value: 'deletetabsGroupListItemId',
243
+ action: 'Close all tabs in a group',
244
+ description: 'Close all tabs in a group',
245
+ routing: {
246
+ request: {
247
+ method: 'DELETE',
248
+ url: '=/tabs/group/{{$parameter["listItemId"]}}',
249
+ },
250
+ },
251
+ },
252
+ ],
253
+ displayOptions: {
254
+ show: {
255
+ resource: ['tabs'],
256
+ },
257
+ },
258
+ default: 'gettabs',
259
+ },
260
+ {
261
+ displayName: 'Operation',
262
+ name: 'operation',
263
+ type: 'options',
264
+ noDataExpression: true,
265
+ options: [
266
+ {
267
+ name: 'Navigate A Tab To A URL Or Macro',
268
+ value: 'posttabsTabIdNavigate',
269
+ action: 'Navigate a tab to a URL or macro',
270
+ description: 'Navigate to a URL or expand a search macro. Auto-creates tab if not found.',
271
+ routing: {
272
+ request: {
273
+ method: 'POST',
274
+ url: '=/tabs/{{$parameter["tabId"]}}/navigate',
275
+ },
276
+ },
277
+ },
278
+ {
279
+ name: 'Go Back',
280
+ value: 'posttabsTabIdBack',
281
+ action: 'Go back',
282
+ description: 'Go back',
283
+ routing: {
284
+ request: {
285
+ method: 'POST',
286
+ url: '=/tabs/{{$parameter["tabId"]}}/back',
287
+ },
288
+ },
289
+ },
290
+ {
291
+ name: 'Go Forward',
292
+ value: 'posttabsTabIdForward',
293
+ action: 'Go forward',
294
+ description: 'Go forward',
295
+ routing: {
296
+ request: {
297
+ method: 'POST',
298
+ url: '=/tabs/{{$parameter["tabId"]}}/forward',
299
+ },
300
+ },
301
+ },
302
+ {
303
+ name: 'Refresh Page',
304
+ value: 'posttabsTabIdRefresh',
305
+ action: 'Refresh page',
306
+ description: 'Refresh page',
307
+ routing: {
308
+ request: {
309
+ method: 'POST',
310
+ url: '=/tabs/{{$parameter["tabId"]}}/refresh',
311
+ },
312
+ },
313
+ },
314
+ ],
315
+ displayOptions: {
316
+ show: {
317
+ resource: ['navigation'],
318
+ },
319
+ },
320
+ default: 'posttabsTabIdNavigate',
321
+ },
322
+ {
323
+ displayName: 'Operation',
324
+ name: 'operation',
325
+ type: 'options',
326
+ noDataExpression: true,
327
+ options: [
328
+ {
329
+ name: 'Accessibility Snapshot',
330
+ value: 'gettabsTabIdSnapshot',
331
+ action: 'Accessibility snapshot',
332
+ description: 'Returns accessibility tree with element refs. Supports pagination via offset.',
333
+ routing: {
334
+ request: {
335
+ method: 'GET',
336
+ url: '=/tabs/{{$parameter["tabId"]}}/snapshot',
337
+ },
338
+ },
339
+ },
340
+ {
341
+ name: 'Extract Page Links',
342
+ value: 'gettabsTabIdLinks',
343
+ action: 'Extract page links',
344
+ description: 'Extract page links',
345
+ routing: {
346
+ request: {
347
+ method: 'GET',
348
+ url: '=/tabs/{{$parameter["tabId"]}}/links',
349
+ },
350
+ },
351
+ },
352
+ {
353
+ name: "Save The Current Tab's PDF As A Download Artifact",
354
+ value: 'posttabsTabIdFetchCurrentResource',
355
+ action: "Save the current tab's PDF as a download artifact",
356
+ description: "Save the current tab's PDF as a download artifact",
357
+ routing: {
358
+ request: {
359
+ method: 'POST',
360
+ url: '=/tabs/{{$parameter["tabId"]}}/fetch-current-resource',
361
+ },
362
+ },
363
+ },
364
+ {
365
+ name: 'List Tab Downloads',
366
+ value: 'gettabsTabIdDownloads',
367
+ action: 'List tab downloads',
368
+ description: 'List tab downloads',
369
+ routing: {
370
+ request: {
371
+ method: 'GET',
372
+ url: '=/tabs/{{$parameter["tabId"]}}/downloads',
373
+ },
374
+ },
375
+ },
376
+ {
377
+ name: 'Extract Page Images',
378
+ value: 'gettabsTabIdImages',
379
+ action: 'Extract page images',
380
+ description: 'Extract page images',
381
+ routing: {
382
+ request: {
383
+ method: 'GET',
384
+ url: '=/tabs/{{$parameter["tabId"]}}/images',
385
+ },
386
+ },
387
+ },
388
+ {
389
+ name: 'Take A Screenshot',
390
+ value: 'gettabsTabIdScreenshot',
391
+ action: 'Take a screenshot',
392
+ description: 'Returns a base64-encoded PNG screenshot.',
393
+ routing: {
394
+ request: {
395
+ method: 'GET',
396
+ url: '=/tabs/{{$parameter["tabId"]}}/screenshot',
397
+ },
398
+ },
399
+ },
400
+ {
401
+ name: 'Structured Data Extraction Via JSON Schema',
402
+ value: 'posttabsTabIdExtract',
403
+ action: 'Structured data extraction via JSON Schema',
404
+ description: 'Extracts structured data from the current page using a JSON Schema whose properties\ncarry `x-ref` hints pointing at snapshot element refs (e.g. `e1`, `e2`). \nCall `GET /tabs/{tabId}/snapshot` first to populate the ref table.\n',
405
+ routing: {
406
+ request: {
407
+ method: 'POST',
408
+ url: '=/tabs/{{$parameter["tabId"]}}/extract',
409
+ },
410
+ },
411
+ },
412
+ ],
413
+ displayOptions: {
414
+ show: {
415
+ resource: ['content'],
416
+ },
417
+ },
418
+ default: 'gettabsTabIdSnapshot',
419
+ },
420
+ {
421
+ displayName: 'Operation',
422
+ name: 'operation',
423
+ type: 'options',
424
+ noDataExpression: true,
425
+ options: [
426
+ {
427
+ name: 'Wait For A Selector Or Timeout',
428
+ value: 'posttabsTabIdWait',
429
+ action: 'Wait for a selector or timeout',
430
+ description: 'Wait for a selector or timeout',
431
+ routing: {
432
+ request: {
433
+ method: 'POST',
434
+ url: '=/tabs/{{$parameter["tabId"]}}/wait',
435
+ },
436
+ },
437
+ },
438
+ {
439
+ name: 'Click An Element',
440
+ value: 'posttabsTabIdClick',
441
+ action: 'Click an element',
442
+ description: 'Click by element ref, CSS selector, or coordinates.',
443
+ routing: {
444
+ request: {
445
+ method: 'POST',
446
+ url: '=/tabs/{{$parameter["tabId"]}}/click',
447
+ },
448
+ },
449
+ },
450
+ {
451
+ name: 'Attach A File To An Upload Control',
452
+ value: 'posttabsTabIdUpload',
453
+ action: 'Attach a file to an upload control',
454
+ description: 'Attaches files from the configured upload directory without going through the native OS file dialog. Set CAMOFOX_UPLOADS_DIR to a directory that contains the files (default: ~/.camofox/uploads). Two strategies are tried in order: (1) if an <input type="file"> is already present, call Playwright setInputFiles on it directly (works for hidden inputs); (2) otherwise arm a filechooser listener, activate the trigger element (ref or selector) via keyboard (focus + Enter) then a forced click as fallback, and call setFiles on the resulting chooser. Each path must be an absolute path that resolves inside the configured upload directory.\n',
455
+ routing: {
456
+ request: {
457
+ method: 'POST',
458
+ url: '=/tabs/{{$parameter["tabId"]}}/upload',
459
+ },
460
+ },
461
+ },
462
+ {
463
+ name: 'Type Text Into An Element',
464
+ value: 'posttabsTabIdType',
465
+ action: 'Type text into an element',
466
+ description: 'Types text into a focused element or a specific ref/selector.',
467
+ routing: {
468
+ request: {
469
+ method: 'POST',
470
+ url: '=/tabs/{{$parameter["tabId"]}}/type',
471
+ },
472
+ },
473
+ },
474
+ {
475
+ name: 'Select A Native Form Option',
476
+ value: 'posttabsTabIdSelect',
477
+ action: 'Select a native form option',
478
+ description: 'Select a native form option',
479
+ routing: {
480
+ request: {
481
+ method: 'POST',
482
+ url: '=/tabs/{{$parameter["tabId"]}}/select',
483
+ },
484
+ },
485
+ },
486
+ {
487
+ name: 'Press A Keyboard Key',
488
+ value: 'posttabsTabIdPress',
489
+ action: 'Press a keyboard key',
490
+ description: 'Press a keyboard key',
491
+ routing: {
492
+ request: {
493
+ method: 'POST',
494
+ url: '=/tabs/{{$parameter["tabId"]}}/press',
495
+ },
496
+ },
497
+ },
498
+ {
499
+ name: 'Scroll The Page',
500
+ value: 'posttabsTabIdScroll',
501
+ action: 'Scroll the page',
502
+ description: 'Scroll the page',
503
+ routing: {
504
+ request: {
505
+ method: 'POST',
506
+ url: '=/tabs/{{$parameter["tabId"]}}/scroll',
507
+ },
508
+ },
509
+ },
510
+ {
511
+ name: 'Set The Page Viewport Size',
512
+ value: 'posttabsTabIdViewport',
513
+ action: 'Set the page viewport size',
514
+ description: "Physically resizes the page via Playwright's `page.setViewportSize`, triggering a real layout reflow. Use for responsive testing — `window.resizeTo()` is a no-op on non-popup windows.\n",
515
+ routing: {
516
+ request: {
517
+ method: 'POST',
518
+ url: '=/tabs/{{$parameter["tabId"]}}/viewport',
519
+ },
520
+ },
521
+ },
522
+ {
523
+ name: 'Evaluate Java Script In Tab',
524
+ value: 'posttabsTabIdEvaluate',
525
+ action: 'Evaluate JavaScript in tab',
526
+ description: 'Runs arbitrary JS in the page context and returns the result.',
527
+ routing: {
528
+ request: {
529
+ method: 'POST',
530
+ url: '=/tabs/{{$parameter["tabId"]}}/evaluate',
531
+ },
532
+ },
533
+ },
534
+ ],
535
+ displayOptions: {
536
+ show: {
537
+ resource: ['interaction'],
538
+ },
539
+ },
540
+ default: 'posttabsTabIdWait',
541
+ },
542
+ {
543
+ displayName: 'Operation',
544
+ name: 'operation',
545
+ type: 'options',
546
+ noDataExpression: true,
547
+ options: [
548
+ {
549
+ name: 'Open Tab (Open Claw Format)',
550
+ value: 'posttabsOpen',
551
+ action: 'Open tab (OpenClaw format)',
552
+ description: 'Open tab (OpenClaw format)',
553
+ routing: {
554
+ request: {
555
+ method: 'POST',
556
+ url: '=/tabs/open',
557
+ },
558
+ },
559
+ },
560
+ {
561
+ name: 'Navigate (Open Claw Format)',
562
+ value: 'postnavigate',
563
+ action: 'Navigate (OpenClaw format)',
564
+ description: 'Navigate with targetId in body instead of path param.',
565
+ routing: {
566
+ request: {
567
+ method: 'POST',
568
+ url: '=/navigate',
569
+ },
570
+ },
571
+ },
572
+ {
573
+ name: 'Snapshot (Open Claw Format)',
574
+ value: 'getsnapshot',
575
+ action: 'Snapshot (OpenClaw format)',
576
+ description: 'Snapshot with targetId/userId as query params.',
577
+ routing: {
578
+ request: {
579
+ method: 'GET',
580
+ url: '=/snapshot',
581
+ },
582
+ },
583
+ },
584
+ {
585
+ name: 'Combined Action (Open Claw Format)',
586
+ value: 'postact',
587
+ action: 'Combined action (OpenClaw format)',
588
+ description: 'Routes to click/type/scroll/press/etc based on "kind" parameter.',
589
+ routing: {
590
+ request: {
591
+ method: 'POST',
592
+ url: '=/act',
593
+ },
594
+ },
595
+ },
596
+ ],
597
+ displayOptions: {
598
+ show: {
599
+ resource: ['legacy'],
600
+ },
601
+ },
602
+ default: 'posttabsOpen',
603
+ },
604
+ {
605
+ displayName: 'Operation',
606
+ name: 'operation',
607
+ type: 'options',
608
+ noDataExpression: true,
609
+ options: [
610
+ {
611
+ name: 'Start Browser',
612
+ value: 'poststart',
613
+ action: 'Start browser',
614
+ description: 'Ensures the browser process is running. Idempotent.',
615
+ routing: {
616
+ request: {
617
+ method: 'POST',
618
+ url: '=/start',
619
+ },
620
+ },
621
+ },
622
+ {
623
+ name: 'Stop Browser',
624
+ value: 'poststop',
625
+ action: 'Stop browser',
626
+ description: 'Stops the browser and closes all sessions. Requires x-admin-key header.',
627
+ routing: {
628
+ request: {
629
+ method: 'POST',
630
+ url: '=/stop',
631
+ },
632
+ },
633
+ },
634
+ ],
635
+ displayOptions: {
636
+ show: {
637
+ resource: ['browser'],
638
+ },
639
+ },
640
+ default: 'poststart',
641
+ },
642
+ {
643
+ displayName: 'User Id',
644
+ name: 'userId',
645
+ type: 'string',
646
+ default: '',
647
+ required: true,
648
+ description: 'Session owner identifier.',
649
+ displayOptions: {
650
+ show: {
651
+ resource: ['sessions'],
652
+ operation: ['postsessionsUserIdCookies'],
653
+ },
654
+ },
655
+ },
656
+ {
657
+ displayName: 'Body (JSON)',
658
+ name: 'bodyJson',
659
+ type: 'json',
660
+ default: '{}',
661
+ required: true,
662
+ description: "Raw JSON request body. The spec's body schema is too complex to expose as individual fields, so provide the full JSON payload here.",
663
+ displayOptions: {
664
+ show: {
665
+ resource: ['sessions'],
666
+ operation: ['postsessionsUserIdCookies'],
667
+ },
668
+ },
669
+ routing: {
670
+ request: {
671
+ body: '={{JSON.parse($value)}}',
672
+ },
673
+ },
674
+ },
675
+ {
676
+ displayName: 'User Id',
677
+ name: 'userId',
678
+ type: 'string',
679
+ default: '',
680
+ required: true,
681
+ description: 'Session owner identifier.',
682
+ displayOptions: {
683
+ show: {
684
+ resource: ['sessions'],
685
+ operation: ['getsessionsUserIdTraces'],
686
+ },
687
+ },
688
+ },
689
+ {
690
+ displayName: 'User Id',
691
+ name: 'userId',
692
+ type: 'string',
693
+ default: '',
694
+ required: true,
695
+ description: 'Session owner identifier.',
696
+ displayOptions: {
697
+ show: {
698
+ resource: ['sessions'],
699
+ operation: ['getsessionsUserIdTracesFilename'],
700
+ },
701
+ },
702
+ },
703
+ {
704
+ displayName: 'Filename',
705
+ name: 'filename',
706
+ type: 'string',
707
+ default: '',
708
+ required: true,
709
+ description: 'Trace zip filename.',
710
+ displayOptions: {
711
+ show: {
712
+ resource: ['sessions'],
713
+ operation: ['getsessionsUserIdTracesFilename'],
714
+ },
715
+ },
716
+ },
717
+ {
718
+ displayName: 'User Id',
719
+ name: 'userId',
720
+ type: 'string',
721
+ default: '',
722
+ required: true,
723
+ description: 'Session owner identifier.',
724
+ displayOptions: {
725
+ show: {
726
+ resource: ['sessions'],
727
+ operation: ['deletesessionsUserIdTracesFilename'],
728
+ },
729
+ },
730
+ },
731
+ {
732
+ displayName: 'Filename',
733
+ name: 'filename',
734
+ type: 'string',
735
+ default: '',
736
+ required: true,
737
+ description: 'Trace zip filename.',
738
+ displayOptions: {
739
+ show: {
740
+ resource: ['sessions'],
741
+ operation: ['deletesessionsUserIdTracesFilename'],
742
+ },
743
+ },
744
+ },
745
+ {
746
+ displayName: 'User Id',
747
+ name: 'userId',
748
+ type: 'string',
749
+ default: '',
750
+ required: true,
751
+ description: '',
752
+ displayOptions: {
753
+ show: {
754
+ resource: ['sessions'],
755
+ operation: ['deletesessionsUserId'],
756
+ },
757
+ },
758
+ },
759
+ {
760
+ displayName: 'Additional Fields',
761
+ name: 'additionalFields',
762
+ type: 'collection',
763
+ placeholder: 'Add Field',
764
+ default: {},
765
+ displayOptions: {
766
+ show: {
767
+ resource: ['system'],
768
+ operation: ['postpressureCleanup'],
769
+ },
770
+ },
771
+ options: [
772
+ {
773
+ displayName: 'Dry Run',
774
+ name: 'dryRun',
775
+ type: 'boolean',
776
+ default: false,
777
+ description: 'When true, returns candidates without closing them.',
778
+ routing: {
779
+ send: {
780
+ type: 'body',
781
+ property: 'dryRun',
782
+ },
783
+ },
784
+ },
785
+ {
786
+ displayName: 'Min Idle Ms',
787
+ name: 'minIdleMs',
788
+ type: 'number',
789
+ default: 0,
790
+ description: 'Minimum idle time (ms) before a tab is eligible.',
791
+ routing: {
792
+ send: {
793
+ type: 'body',
794
+ property: 'minIdleMs',
795
+ },
796
+ },
797
+ },
798
+ {
799
+ displayName: 'Max Tabs To Close',
800
+ name: 'maxTabsToClose',
801
+ type: 'number',
802
+ default: 0,
803
+ description: 'Maximum tabs to close per invocation.',
804
+ routing: {
805
+ send: {
806
+ type: 'body',
807
+ property: 'maxTabsToClose',
808
+ },
809
+ },
810
+ },
811
+ {
812
+ displayName: 'Min Tabs Per Session',
813
+ name: 'minTabsPerSession',
814
+ type: 'number',
815
+ default: 0,
816
+ description: 'Preserve at least this many tabs per session.',
817
+ routing: {
818
+ send: {
819
+ type: 'body',
820
+ property: 'minTabsPerSession',
821
+ },
822
+ },
823
+ },
824
+ {
825
+ displayName: 'Close Empty Sessions',
826
+ name: 'closeEmptySessions',
827
+ type: 'boolean',
828
+ default: false,
829
+ description: 'Close sessions left with zero tabs after cleanup.',
830
+ routing: {
831
+ send: {
832
+ type: 'body',
833
+ property: 'closeEmptySessions',
834
+ },
835
+ },
836
+ },
837
+ ],
838
+ },
839
+ {
840
+ displayName: 'Additional Fields',
841
+ name: 'additionalFields',
842
+ type: 'collection',
843
+ placeholder: 'Add Field',
844
+ default: {},
845
+ displayOptions: {
846
+ show: {
847
+ resource: ['tabs'],
848
+ operation: ['gettabs'],
849
+ },
850
+ },
851
+ options: [
852
+ {
853
+ displayName: 'User Id',
854
+ name: 'userId',
855
+ type: 'string',
856
+ default: '',
857
+ description: 'Filter by session owner.',
858
+ routing: {
859
+ send: {
860
+ type: 'query',
861
+ property: 'userId',
862
+ },
863
+ },
864
+ },
865
+ ],
866
+ },
867
+ {
868
+ displayName: 'User Id',
869
+ name: 'userId',
870
+ type: 'string',
871
+ default: '',
872
+ required: true,
873
+ description: 'Session owner.',
874
+ displayOptions: {
875
+ show: {
876
+ resource: ['tabs'],
877
+ operation: ['posttabs'],
878
+ },
879
+ },
880
+ routing: {
881
+ send: {
882
+ type: 'body',
883
+ property: 'userId',
884
+ },
885
+ },
886
+ },
887
+ {
888
+ displayName: 'Session Key',
889
+ name: 'sessionKey',
890
+ type: 'string',
891
+ default: '',
892
+ required: true,
893
+ description: 'Tab group identifier.',
894
+ displayOptions: {
895
+ show: {
896
+ resource: ['tabs'],
897
+ operation: ['posttabs'],
898
+ },
899
+ },
900
+ routing: {
901
+ send: {
902
+ type: 'body',
903
+ property: 'sessionKey',
904
+ },
905
+ },
906
+ },
907
+ {
908
+ displayName: 'Additional Fields',
909
+ name: 'additionalFields',
910
+ type: 'collection',
911
+ placeholder: 'Add Field',
912
+ default: {},
913
+ displayOptions: {
914
+ show: {
915
+ resource: ['tabs'],
916
+ operation: ['posttabs'],
917
+ },
918
+ },
919
+ options: [
920
+ {
921
+ displayName: 'List Item Id',
922
+ name: 'listItemId',
923
+ type: 'string',
924
+ default: '',
925
+ description: 'Legacy alias for sessionKey.',
926
+ routing: {
927
+ send: {
928
+ type: 'body',
929
+ property: 'listItemId',
930
+ },
931
+ },
932
+ },
933
+ {
934
+ displayName: 'Url',
935
+ name: 'url',
936
+ type: 'string',
937
+ default: '',
938
+ description: 'Optional initial URL.',
939
+ routing: {
940
+ send: {
941
+ type: 'body',
942
+ property: 'url',
943
+ },
944
+ },
945
+ },
946
+ {
947
+ displayName: 'Trace',
948
+ name: 'trace',
949
+ type: 'boolean',
950
+ default: false,
951
+ description: 'Enable Playwright tracing for this session (screenshots, DOM snapshots, network). Must be set on first tab creation; cannot be added to an existing session.',
952
+ routing: {
953
+ send: {
954
+ type: 'body',
955
+ property: 'trace',
956
+ },
957
+ },
958
+ },
959
+ ],
960
+ },
961
+ {
962
+ displayName: 'Tab Id',
963
+ name: 'tabId',
964
+ type: 'string',
965
+ default: '',
966
+ required: true,
967
+ description: '',
968
+ displayOptions: {
969
+ show: {
970
+ resource: ['tabs'],
971
+ operation: ['gettabsTabIdStats'],
972
+ },
973
+ },
974
+ },
975
+ {
976
+ displayName: 'User Id',
977
+ name: 'userId',
978
+ type: 'string',
979
+ default: '',
980
+ required: true,
981
+ description: '',
982
+ displayOptions: {
983
+ show: {
984
+ resource: ['tabs'],
985
+ operation: ['gettabsTabIdStats'],
986
+ },
987
+ },
988
+ routing: {
989
+ send: {
990
+ type: 'query',
991
+ property: 'userId',
992
+ },
993
+ },
994
+ },
995
+ {
996
+ displayName: 'Tab Id',
997
+ name: 'tabId',
998
+ type: 'string',
999
+ default: '',
1000
+ required: true,
1001
+ description: '',
1002
+ displayOptions: {
1003
+ show: {
1004
+ resource: ['tabs'],
1005
+ operation: ['deletetabsTabId'],
1006
+ },
1007
+ },
1008
+ },
1009
+ {
1010
+ displayName: 'User Id',
1011
+ name: 'userId',
1012
+ type: 'string',
1013
+ default: '',
1014
+ required: true,
1015
+ description: '',
1016
+ displayOptions: {
1017
+ show: {
1018
+ resource: ['tabs'],
1019
+ operation: ['deletetabsTabId'],
1020
+ },
1021
+ },
1022
+ routing: {
1023
+ send: {
1024
+ type: 'query',
1025
+ property: 'userId',
1026
+ },
1027
+ },
1028
+ },
1029
+ {
1030
+ displayName: 'List Item Id',
1031
+ name: 'listItemId',
1032
+ type: 'string',
1033
+ default: '',
1034
+ required: true,
1035
+ description: '',
1036
+ displayOptions: {
1037
+ show: {
1038
+ resource: ['tabs'],
1039
+ operation: ['deletetabsGroupListItemId'],
1040
+ },
1041
+ },
1042
+ },
1043
+ {
1044
+ displayName: 'User Id',
1045
+ name: 'userId',
1046
+ type: 'string',
1047
+ default: '',
1048
+ required: true,
1049
+ description: '',
1050
+ displayOptions: {
1051
+ show: {
1052
+ resource: ['tabs'],
1053
+ operation: ['deletetabsGroupListItemId'],
1054
+ },
1055
+ },
1056
+ routing: {
1057
+ send: {
1058
+ type: 'query',
1059
+ property: 'userId',
1060
+ },
1061
+ },
1062
+ },
1063
+ {
1064
+ displayName: 'Tab Id',
1065
+ name: 'tabId',
1066
+ type: 'string',
1067
+ default: '',
1068
+ required: true,
1069
+ description: '',
1070
+ displayOptions: {
1071
+ show: {
1072
+ resource: ['navigation'],
1073
+ operation: ['posttabsTabIdNavigate'],
1074
+ },
1075
+ },
1076
+ },
1077
+ {
1078
+ displayName: 'User Id',
1079
+ name: 'userId',
1080
+ type: 'string',
1081
+ default: '',
1082
+ required: true,
1083
+ description: '',
1084
+ displayOptions: {
1085
+ show: {
1086
+ resource: ['navigation'],
1087
+ operation: ['posttabsTabIdNavigate'],
1088
+ },
1089
+ },
1090
+ routing: {
1091
+ send: {
1092
+ type: 'body',
1093
+ property: 'userId',
1094
+ },
1095
+ },
1096
+ },
1097
+ {
1098
+ displayName: 'Additional Fields',
1099
+ name: 'additionalFields',
1100
+ type: 'collection',
1101
+ placeholder: 'Add Field',
1102
+ default: {},
1103
+ displayOptions: {
1104
+ show: {
1105
+ resource: ['navigation'],
1106
+ operation: ['posttabsTabIdNavigate'],
1107
+ },
1108
+ },
1109
+ options: [
1110
+ {
1111
+ displayName: 'Url',
1112
+ name: 'url',
1113
+ type: 'string',
1114
+ default: '',
1115
+ description: '',
1116
+ routing: {
1117
+ send: {
1118
+ type: 'body',
1119
+ property: 'url',
1120
+ },
1121
+ },
1122
+ },
1123
+ {
1124
+ displayName: 'Macro',
1125
+ name: 'macro',
1126
+ type: 'string',
1127
+ default: '',
1128
+ description: 'Search macro (e.g. @google_search).',
1129
+ routing: {
1130
+ send: {
1131
+ type: 'body',
1132
+ property: 'macro',
1133
+ },
1134
+ },
1135
+ },
1136
+ {
1137
+ displayName: 'Query',
1138
+ name: 'query',
1139
+ type: 'string',
1140
+ default: '',
1141
+ description: 'Search query for macro.',
1142
+ routing: {
1143
+ send: {
1144
+ type: 'body',
1145
+ property: 'query',
1146
+ },
1147
+ },
1148
+ },
1149
+ {
1150
+ displayName: 'Session Key',
1151
+ name: 'sessionKey',
1152
+ type: 'string',
1153
+ default: '',
1154
+ description: '',
1155
+ routing: {
1156
+ send: {
1157
+ type: 'body',
1158
+ property: 'sessionKey',
1159
+ },
1160
+ },
1161
+ },
1162
+ {
1163
+ displayName: 'List Item Id',
1164
+ name: 'listItemId',
1165
+ type: 'string',
1166
+ default: '',
1167
+ description: '',
1168
+ routing: {
1169
+ send: {
1170
+ type: 'body',
1171
+ property: 'listItemId',
1172
+ },
1173
+ },
1174
+ },
1175
+ ],
1176
+ },
1177
+ {
1178
+ displayName: 'Tab Id',
1179
+ name: 'tabId',
1180
+ type: 'string',
1181
+ default: '',
1182
+ required: true,
1183
+ description: '',
1184
+ displayOptions: {
1185
+ show: {
1186
+ resource: ['navigation'],
1187
+ operation: ['posttabsTabIdBack'],
1188
+ },
1189
+ },
1190
+ },
1191
+ {
1192
+ displayName: 'User Id',
1193
+ name: 'userId',
1194
+ type: 'string',
1195
+ default: '',
1196
+ required: true,
1197
+ description: '',
1198
+ displayOptions: {
1199
+ show: {
1200
+ resource: ['navigation'],
1201
+ operation: ['posttabsTabIdBack'],
1202
+ },
1203
+ },
1204
+ routing: {
1205
+ send: {
1206
+ type: 'body',
1207
+ property: 'userId',
1208
+ },
1209
+ },
1210
+ },
1211
+ {
1212
+ displayName: 'Tab Id',
1213
+ name: 'tabId',
1214
+ type: 'string',
1215
+ default: '',
1216
+ required: true,
1217
+ description: '',
1218
+ displayOptions: {
1219
+ show: {
1220
+ resource: ['navigation'],
1221
+ operation: ['posttabsTabIdForward'],
1222
+ },
1223
+ },
1224
+ },
1225
+ {
1226
+ displayName: 'User Id',
1227
+ name: 'userId',
1228
+ type: 'string',
1229
+ default: '',
1230
+ required: true,
1231
+ description: '',
1232
+ displayOptions: {
1233
+ show: {
1234
+ resource: ['navigation'],
1235
+ operation: ['posttabsTabIdForward'],
1236
+ },
1237
+ },
1238
+ routing: {
1239
+ send: {
1240
+ type: 'body',
1241
+ property: 'userId',
1242
+ },
1243
+ },
1244
+ },
1245
+ {
1246
+ displayName: 'Tab Id',
1247
+ name: 'tabId',
1248
+ type: 'string',
1249
+ default: '',
1250
+ required: true,
1251
+ description: '',
1252
+ displayOptions: {
1253
+ show: {
1254
+ resource: ['navigation'],
1255
+ operation: ['posttabsTabIdRefresh'],
1256
+ },
1257
+ },
1258
+ },
1259
+ {
1260
+ displayName: 'User Id',
1261
+ name: 'userId',
1262
+ type: 'string',
1263
+ default: '',
1264
+ required: true,
1265
+ description: '',
1266
+ displayOptions: {
1267
+ show: {
1268
+ resource: ['navigation'],
1269
+ operation: ['posttabsTabIdRefresh'],
1270
+ },
1271
+ },
1272
+ routing: {
1273
+ send: {
1274
+ type: 'body',
1275
+ property: 'userId',
1276
+ },
1277
+ },
1278
+ },
1279
+ {
1280
+ displayName: 'Tab Id',
1281
+ name: 'tabId',
1282
+ type: 'string',
1283
+ default: '',
1284
+ required: true,
1285
+ description: '',
1286
+ displayOptions: {
1287
+ show: {
1288
+ resource: ['content'],
1289
+ operation: ['gettabsTabIdSnapshot'],
1290
+ },
1291
+ },
1292
+ },
1293
+ {
1294
+ displayName: 'User Id',
1295
+ name: 'userId',
1296
+ type: 'string',
1297
+ default: '',
1298
+ required: true,
1299
+ description: '',
1300
+ displayOptions: {
1301
+ show: {
1302
+ resource: ['content'],
1303
+ operation: ['gettabsTabIdSnapshot'],
1304
+ },
1305
+ },
1306
+ routing: {
1307
+ send: {
1308
+ type: 'query',
1309
+ property: 'userId',
1310
+ },
1311
+ },
1312
+ },
1313
+ {
1314
+ displayName: 'Additional Fields',
1315
+ name: 'additionalFields',
1316
+ type: 'collection',
1317
+ placeholder: 'Add Field',
1318
+ default: {},
1319
+ displayOptions: {
1320
+ show: {
1321
+ resource: ['content'],
1322
+ operation: ['gettabsTabIdSnapshot'],
1323
+ },
1324
+ },
1325
+ options: [
1326
+ {
1327
+ displayName: 'Format',
1328
+ name: 'format',
1329
+ type: 'string',
1330
+ default: '',
1331
+ description: '',
1332
+ routing: {
1333
+ send: {
1334
+ type: 'query',
1335
+ property: 'format',
1336
+ },
1337
+ },
1338
+ },
1339
+ {
1340
+ displayName: 'Offset',
1341
+ name: 'offset',
1342
+ type: 'number',
1343
+ default: 0,
1344
+ description: 'Character offset for paginated retrieval.',
1345
+ routing: {
1346
+ send: {
1347
+ type: 'query',
1348
+ property: 'offset',
1349
+ },
1350
+ },
1351
+ },
1352
+ {
1353
+ displayName: 'Include Screenshot',
1354
+ name: 'includeScreenshot',
1355
+ type: 'string',
1356
+ default: '',
1357
+ description: '',
1358
+ routing: {
1359
+ send: {
1360
+ type: 'query',
1361
+ property: 'includeScreenshot',
1362
+ },
1363
+ },
1364
+ },
1365
+ ],
1366
+ },
1367
+ {
1368
+ displayName: 'Tab Id',
1369
+ name: 'tabId',
1370
+ type: 'string',
1371
+ default: '',
1372
+ required: true,
1373
+ description: '',
1374
+ displayOptions: {
1375
+ show: {
1376
+ resource: ['content'],
1377
+ operation: ['gettabsTabIdLinks'],
1378
+ },
1379
+ },
1380
+ },
1381
+ {
1382
+ displayName: 'User Id',
1383
+ name: 'userId',
1384
+ type: 'string',
1385
+ default: '',
1386
+ required: true,
1387
+ description: '',
1388
+ displayOptions: {
1389
+ show: {
1390
+ resource: ['content'],
1391
+ operation: ['gettabsTabIdLinks'],
1392
+ },
1393
+ },
1394
+ routing: {
1395
+ send: {
1396
+ type: 'query',
1397
+ property: 'userId',
1398
+ },
1399
+ },
1400
+ },
1401
+ {
1402
+ displayName: 'Tab Id',
1403
+ name: 'tabId',
1404
+ type: 'string',
1405
+ default: '',
1406
+ required: true,
1407
+ description: '',
1408
+ displayOptions: {
1409
+ show: {
1410
+ resource: ['content'],
1411
+ operation: ['posttabsTabIdFetchCurrentResource'],
1412
+ },
1413
+ },
1414
+ },
1415
+ {
1416
+ displayName: 'User Id',
1417
+ name: 'userId',
1418
+ type: 'string',
1419
+ default: '',
1420
+ required: true,
1421
+ description: '',
1422
+ displayOptions: {
1423
+ show: {
1424
+ resource: ['content'],
1425
+ operation: ['posttabsTabIdFetchCurrentResource'],
1426
+ },
1427
+ },
1428
+ routing: {
1429
+ send: {
1430
+ type: 'body',
1431
+ property: 'userId',
1432
+ },
1433
+ },
1434
+ },
1435
+ {
1436
+ displayName: 'Tab Id',
1437
+ name: 'tabId',
1438
+ type: 'string',
1439
+ default: '',
1440
+ required: true,
1441
+ description: '',
1442
+ displayOptions: {
1443
+ show: {
1444
+ resource: ['content'],
1445
+ operation: ['gettabsTabIdDownloads'],
1446
+ },
1447
+ },
1448
+ },
1449
+ {
1450
+ displayName: 'User Id',
1451
+ name: 'userId',
1452
+ type: 'string',
1453
+ default: '',
1454
+ required: true,
1455
+ description: '',
1456
+ displayOptions: {
1457
+ show: {
1458
+ resource: ['content'],
1459
+ operation: ['gettabsTabIdDownloads'],
1460
+ },
1461
+ },
1462
+ routing: {
1463
+ send: {
1464
+ type: 'query',
1465
+ property: 'userId',
1466
+ },
1467
+ },
1468
+ },
1469
+ {
1470
+ displayName: 'Tab Id',
1471
+ name: 'tabId',
1472
+ type: 'string',
1473
+ default: '',
1474
+ required: true,
1475
+ description: '',
1476
+ displayOptions: {
1477
+ show: {
1478
+ resource: ['content'],
1479
+ operation: ['gettabsTabIdImages'],
1480
+ },
1481
+ },
1482
+ },
1483
+ {
1484
+ displayName: 'User Id',
1485
+ name: 'userId',
1486
+ type: 'string',
1487
+ default: '',
1488
+ required: true,
1489
+ description: '',
1490
+ displayOptions: {
1491
+ show: {
1492
+ resource: ['content'],
1493
+ operation: ['gettabsTabIdImages'],
1494
+ },
1495
+ },
1496
+ routing: {
1497
+ send: {
1498
+ type: 'query',
1499
+ property: 'userId',
1500
+ },
1501
+ },
1502
+ },
1503
+ {
1504
+ displayName: 'Tab Id',
1505
+ name: 'tabId',
1506
+ type: 'string',
1507
+ default: '',
1508
+ required: true,
1509
+ description: '',
1510
+ displayOptions: {
1511
+ show: {
1512
+ resource: ['content'],
1513
+ operation: ['gettabsTabIdScreenshot'],
1514
+ },
1515
+ },
1516
+ },
1517
+ {
1518
+ displayName: 'User Id',
1519
+ name: 'userId',
1520
+ type: 'string',
1521
+ default: '',
1522
+ required: true,
1523
+ description: '',
1524
+ displayOptions: {
1525
+ show: {
1526
+ resource: ['content'],
1527
+ operation: ['gettabsTabIdScreenshot'],
1528
+ },
1529
+ },
1530
+ routing: {
1531
+ send: {
1532
+ type: 'query',
1533
+ property: 'userId',
1534
+ },
1535
+ },
1536
+ },
1537
+ {
1538
+ displayName: 'Tab Id',
1539
+ name: 'tabId',
1540
+ type: 'string',
1541
+ default: '',
1542
+ required: true,
1543
+ description: '',
1544
+ displayOptions: {
1545
+ show: {
1546
+ resource: ['content'],
1547
+ operation: ['posttabsTabIdExtract'],
1548
+ },
1549
+ },
1550
+ },
1551
+ {
1552
+ displayName: 'Body (JSON)',
1553
+ name: 'bodyJson',
1554
+ type: 'json',
1555
+ default: '{}',
1556
+ required: true,
1557
+ description: "Raw JSON request body. The spec's body schema is too complex to expose as individual fields, so provide the full JSON payload here.",
1558
+ displayOptions: {
1559
+ show: {
1560
+ resource: ['content'],
1561
+ operation: ['posttabsTabIdExtract'],
1562
+ },
1563
+ },
1564
+ routing: {
1565
+ request: {
1566
+ body: '={{JSON.parse($value)}}',
1567
+ },
1568
+ },
1569
+ },
1570
+ {
1571
+ displayName: 'Tab Id',
1572
+ name: 'tabId',
1573
+ type: 'string',
1574
+ default: '',
1575
+ required: true,
1576
+ description: '',
1577
+ displayOptions: {
1578
+ show: {
1579
+ resource: ['interaction'],
1580
+ operation: ['posttabsTabIdWait'],
1581
+ },
1582
+ },
1583
+ },
1584
+ {
1585
+ displayName: 'User Id',
1586
+ name: 'userId',
1587
+ type: 'string',
1588
+ default: '',
1589
+ required: true,
1590
+ description: '',
1591
+ displayOptions: {
1592
+ show: {
1593
+ resource: ['interaction'],
1594
+ operation: ['posttabsTabIdWait'],
1595
+ },
1596
+ },
1597
+ routing: {
1598
+ send: {
1599
+ type: 'body',
1600
+ property: 'userId',
1601
+ },
1602
+ },
1603
+ },
1604
+ {
1605
+ displayName: 'Additional Fields',
1606
+ name: 'additionalFields',
1607
+ type: 'collection',
1608
+ placeholder: 'Add Field',
1609
+ default: {},
1610
+ displayOptions: {
1611
+ show: {
1612
+ resource: ['interaction'],
1613
+ operation: ['posttabsTabIdWait'],
1614
+ },
1615
+ },
1616
+ options: [
1617
+ {
1618
+ displayName: 'Selector',
1619
+ name: 'selector',
1620
+ type: 'string',
1621
+ default: '',
1622
+ description: '',
1623
+ routing: {
1624
+ send: {
1625
+ type: 'body',
1626
+ property: 'selector',
1627
+ },
1628
+ },
1629
+ },
1630
+ {
1631
+ displayName: 'Timeout',
1632
+ name: 'timeout',
1633
+ type: 'number',
1634
+ default: 0,
1635
+ description: 'Max wait in ms.',
1636
+ routing: {
1637
+ send: {
1638
+ type: 'body',
1639
+ property: 'timeout',
1640
+ },
1641
+ },
1642
+ },
1643
+ ],
1644
+ },
1645
+ {
1646
+ displayName: 'Tab Id',
1647
+ name: 'tabId',
1648
+ type: 'string',
1649
+ default: '',
1650
+ required: true,
1651
+ description: '',
1652
+ displayOptions: {
1653
+ show: {
1654
+ resource: ['interaction'],
1655
+ operation: ['posttabsTabIdClick'],
1656
+ },
1657
+ },
1658
+ },
1659
+ {
1660
+ displayName: 'Body (JSON)',
1661
+ name: 'bodyJson',
1662
+ type: 'json',
1663
+ default: '{}',
1664
+ required: true,
1665
+ description: "Raw JSON request body. The spec's body schema is too complex to expose as individual fields, so provide the full JSON payload here.",
1666
+ displayOptions: {
1667
+ show: {
1668
+ resource: ['interaction'],
1669
+ operation: ['posttabsTabIdClick'],
1670
+ },
1671
+ },
1672
+ routing: {
1673
+ request: {
1674
+ body: '={{JSON.parse($value)}}',
1675
+ },
1676
+ },
1677
+ },
1678
+ {
1679
+ displayName: 'Tab Id',
1680
+ name: 'tabId',
1681
+ type: 'string',
1682
+ default: '',
1683
+ required: true,
1684
+ description: '',
1685
+ displayOptions: {
1686
+ show: {
1687
+ resource: ['interaction'],
1688
+ operation: ['posttabsTabIdUpload'],
1689
+ },
1690
+ },
1691
+ },
1692
+ {
1693
+ displayName: 'Body (JSON)',
1694
+ name: 'bodyJson',
1695
+ type: 'json',
1696
+ default: '{}',
1697
+ required: true,
1698
+ description: "Raw JSON request body. The spec's body schema is too complex to expose as individual fields, so provide the full JSON payload here.",
1699
+ displayOptions: {
1700
+ show: {
1701
+ resource: ['interaction'],
1702
+ operation: ['posttabsTabIdUpload'],
1703
+ },
1704
+ },
1705
+ routing: {
1706
+ request: {
1707
+ body: '={{JSON.parse($value)}}',
1708
+ },
1709
+ },
1710
+ },
1711
+ {
1712
+ displayName: 'Tab Id',
1713
+ name: 'tabId',
1714
+ type: 'string',
1715
+ default: '',
1716
+ required: true,
1717
+ description: '',
1718
+ displayOptions: {
1719
+ show: {
1720
+ resource: ['interaction'],
1721
+ operation: ['posttabsTabIdType'],
1722
+ },
1723
+ },
1724
+ },
1725
+ {
1726
+ displayName: 'User Id',
1727
+ name: 'userId',
1728
+ type: 'string',
1729
+ default: '',
1730
+ required: true,
1731
+ description: '',
1732
+ displayOptions: {
1733
+ show: {
1734
+ resource: ['interaction'],
1735
+ operation: ['posttabsTabIdType'],
1736
+ },
1737
+ },
1738
+ routing: {
1739
+ send: {
1740
+ type: 'body',
1741
+ property: 'userId',
1742
+ },
1743
+ },
1744
+ },
1745
+ {
1746
+ displayName: 'Text',
1747
+ name: 'text',
1748
+ type: 'string',
1749
+ default: '',
1750
+ required: true,
1751
+ description: '',
1752
+ displayOptions: {
1753
+ show: {
1754
+ resource: ['interaction'],
1755
+ operation: ['posttabsTabIdType'],
1756
+ },
1757
+ },
1758
+ routing: {
1759
+ send: {
1760
+ type: 'body',
1761
+ property: 'text',
1762
+ },
1763
+ },
1764
+ },
1765
+ {
1766
+ displayName: 'Additional Fields',
1767
+ name: 'additionalFields',
1768
+ type: 'collection',
1769
+ placeholder: 'Add Field',
1770
+ default: {},
1771
+ displayOptions: {
1772
+ show: {
1773
+ resource: ['interaction'],
1774
+ operation: ['posttabsTabIdType'],
1775
+ },
1776
+ },
1777
+ options: [
1778
+ {
1779
+ displayName: 'Ref',
1780
+ name: 'ref',
1781
+ type: 'string',
1782
+ default: '',
1783
+ description: '',
1784
+ routing: {
1785
+ send: {
1786
+ type: 'body',
1787
+ property: 'ref',
1788
+ },
1789
+ },
1790
+ },
1791
+ {
1792
+ displayName: 'Selector',
1793
+ name: 'selector',
1794
+ type: 'string',
1795
+ default: '',
1796
+ description: '',
1797
+ routing: {
1798
+ send: {
1799
+ type: 'body',
1800
+ property: 'selector',
1801
+ },
1802
+ },
1803
+ },
1804
+ {
1805
+ displayName: 'Clear',
1806
+ name: 'clear',
1807
+ type: 'boolean',
1808
+ default: false,
1809
+ description: 'Clear field before typing.',
1810
+ routing: {
1811
+ send: {
1812
+ type: 'body',
1813
+ property: 'clear',
1814
+ },
1815
+ },
1816
+ },
1817
+ {
1818
+ displayName: 'Submit',
1819
+ name: 'submit',
1820
+ type: 'boolean',
1821
+ default: false,
1822
+ description: 'Press Enter after typing.',
1823
+ routing: {
1824
+ send: {
1825
+ type: 'body',
1826
+ property: 'submit',
1827
+ },
1828
+ },
1829
+ },
1830
+ ],
1831
+ },
1832
+ {
1833
+ displayName: 'Tab Id',
1834
+ name: 'tabId',
1835
+ type: 'string',
1836
+ default: '',
1837
+ required: true,
1838
+ description: '',
1839
+ displayOptions: {
1840
+ show: {
1841
+ resource: ['interaction'],
1842
+ operation: ['posttabsTabIdSelect'],
1843
+ },
1844
+ },
1845
+ },
1846
+ {
1847
+ displayName: 'User Id',
1848
+ name: 'userId',
1849
+ type: 'string',
1850
+ default: '',
1851
+ required: true,
1852
+ description: '',
1853
+ displayOptions: {
1854
+ show: {
1855
+ resource: ['interaction'],
1856
+ operation: ['posttabsTabIdSelect'],
1857
+ },
1858
+ },
1859
+ routing: {
1860
+ send: {
1861
+ type: 'body',
1862
+ property: 'userId',
1863
+ },
1864
+ },
1865
+ },
1866
+ {
1867
+ displayName: 'Option',
1868
+ name: 'option',
1869
+ type: 'string',
1870
+ default: '',
1871
+ required: true,
1872
+ description: 'Visible option label or HTML value.',
1873
+ displayOptions: {
1874
+ show: {
1875
+ resource: ['interaction'],
1876
+ operation: ['posttabsTabIdSelect'],
1877
+ },
1878
+ },
1879
+ routing: {
1880
+ send: {
1881
+ type: 'body',
1882
+ property: 'option',
1883
+ },
1884
+ },
1885
+ },
1886
+ {
1887
+ displayName: 'Additional Fields',
1888
+ name: 'additionalFields',
1889
+ type: 'collection',
1890
+ placeholder: 'Add Field',
1891
+ default: {},
1892
+ displayOptions: {
1893
+ show: {
1894
+ resource: ['interaction'],
1895
+ operation: ['posttabsTabIdSelect'],
1896
+ },
1897
+ },
1898
+ options: [
1899
+ {
1900
+ displayName: 'Ref',
1901
+ name: 'ref',
1902
+ type: 'string',
1903
+ default: '',
1904
+ description: '',
1905
+ routing: {
1906
+ send: {
1907
+ type: 'body',
1908
+ property: 'ref',
1909
+ },
1910
+ },
1911
+ },
1912
+ {
1913
+ displayName: 'Selector',
1914
+ name: 'selector',
1915
+ type: 'string',
1916
+ default: '',
1917
+ description: '',
1918
+ routing: {
1919
+ send: {
1920
+ type: 'body',
1921
+ property: 'selector',
1922
+ },
1923
+ },
1924
+ },
1925
+ ],
1926
+ },
1927
+ {
1928
+ displayName: 'Tab Id',
1929
+ name: 'tabId',
1930
+ type: 'string',
1931
+ default: '',
1932
+ required: true,
1933
+ description: '',
1934
+ displayOptions: {
1935
+ show: {
1936
+ resource: ['interaction'],
1937
+ operation: ['posttabsTabIdPress'],
1938
+ },
1939
+ },
1940
+ },
1941
+ {
1942
+ displayName: 'User Id',
1943
+ name: 'userId',
1944
+ type: 'string',
1945
+ default: '',
1946
+ required: true,
1947
+ description: '',
1948
+ displayOptions: {
1949
+ show: {
1950
+ resource: ['interaction'],
1951
+ operation: ['posttabsTabIdPress'],
1952
+ },
1953
+ },
1954
+ routing: {
1955
+ send: {
1956
+ type: 'body',
1957
+ property: 'userId',
1958
+ },
1959
+ },
1960
+ },
1961
+ {
1962
+ displayName: 'Key',
1963
+ name: 'key',
1964
+ type: 'string',
1965
+ default: '',
1966
+ required: true,
1967
+ description: 'Key name (e.g. "Enter", "Escape", "Tab").',
1968
+ displayOptions: {
1969
+ show: {
1970
+ resource: ['interaction'],
1971
+ operation: ['posttabsTabIdPress'],
1972
+ },
1973
+ },
1974
+ routing: {
1975
+ send: {
1976
+ type: 'body',
1977
+ property: 'key',
1978
+ },
1979
+ },
1980
+ },
1981
+ {
1982
+ displayName: 'Tab Id',
1983
+ name: 'tabId',
1984
+ type: 'string',
1985
+ default: '',
1986
+ required: true,
1987
+ description: '',
1988
+ displayOptions: {
1989
+ show: {
1990
+ resource: ['interaction'],
1991
+ operation: ['posttabsTabIdScroll'],
1992
+ },
1993
+ },
1994
+ },
1995
+ {
1996
+ displayName: 'User Id',
1997
+ name: 'userId',
1998
+ type: 'string',
1999
+ default: '',
2000
+ required: true,
2001
+ description: '',
2002
+ displayOptions: {
2003
+ show: {
2004
+ resource: ['interaction'],
2005
+ operation: ['posttabsTabIdScroll'],
2006
+ },
2007
+ },
2008
+ routing: {
2009
+ send: {
2010
+ type: 'body',
2011
+ property: 'userId',
2012
+ },
2013
+ },
2014
+ },
2015
+ {
2016
+ displayName: 'Additional Fields',
2017
+ name: 'additionalFields',
2018
+ type: 'collection',
2019
+ placeholder: 'Add Field',
2020
+ default: {},
2021
+ displayOptions: {
2022
+ show: {
2023
+ resource: ['interaction'],
2024
+ operation: ['posttabsTabIdScroll'],
2025
+ },
2026
+ },
2027
+ options: [
2028
+ {
2029
+ displayName: 'Direction',
2030
+ name: 'direction',
2031
+ type: 'string',
2032
+ default: '',
2033
+ description: '"up" or "down" (default "down").',
2034
+ routing: {
2035
+ send: {
2036
+ type: 'body',
2037
+ property: 'direction',
2038
+ },
2039
+ },
2040
+ },
2041
+ {
2042
+ displayName: 'Amount',
2043
+ name: 'amount',
2044
+ type: 'number',
2045
+ default: 0,
2046
+ description: 'Pixels to scroll.',
2047
+ routing: {
2048
+ send: {
2049
+ type: 'body',
2050
+ property: 'amount',
2051
+ },
2052
+ },
2053
+ },
2054
+ ],
2055
+ },
2056
+ {
2057
+ displayName: 'Tab Id',
2058
+ name: 'tabId',
2059
+ type: 'string',
2060
+ default: '',
2061
+ required: true,
2062
+ description: '',
2063
+ displayOptions: {
2064
+ show: {
2065
+ resource: ['interaction'],
2066
+ operation: ['posttabsTabIdViewport'],
2067
+ },
2068
+ },
2069
+ },
2070
+ {
2071
+ displayName: 'User Id',
2072
+ name: 'userId',
2073
+ type: 'string',
2074
+ default: '',
2075
+ required: true,
2076
+ description: '',
2077
+ displayOptions: {
2078
+ show: {
2079
+ resource: ['interaction'],
2080
+ operation: ['posttabsTabIdViewport'],
2081
+ },
2082
+ },
2083
+ routing: {
2084
+ send: {
2085
+ type: 'body',
2086
+ property: 'userId',
2087
+ },
2088
+ },
2089
+ },
2090
+ {
2091
+ displayName: 'Width',
2092
+ name: 'width',
2093
+ type: 'number',
2094
+ default: 0,
2095
+ required: true,
2096
+ description: '',
2097
+ displayOptions: {
2098
+ show: {
2099
+ resource: ['interaction'],
2100
+ operation: ['posttabsTabIdViewport'],
2101
+ },
2102
+ },
2103
+ routing: {
2104
+ send: {
2105
+ type: 'body',
2106
+ property: 'width',
2107
+ },
2108
+ },
2109
+ },
2110
+ {
2111
+ displayName: 'Height',
2112
+ name: 'height',
2113
+ type: 'number',
2114
+ default: 0,
2115
+ required: true,
2116
+ description: '',
2117
+ displayOptions: {
2118
+ show: {
2119
+ resource: ['interaction'],
2120
+ operation: ['posttabsTabIdViewport'],
2121
+ },
2122
+ },
2123
+ routing: {
2124
+ send: {
2125
+ type: 'body',
2126
+ property: 'height',
2127
+ },
2128
+ },
2129
+ },
2130
+ {
2131
+ displayName: 'Tab Id',
2132
+ name: 'tabId',
2133
+ type: 'string',
2134
+ default: '',
2135
+ required: true,
2136
+ description: '',
2137
+ displayOptions: {
2138
+ show: {
2139
+ resource: ['interaction'],
2140
+ operation: ['posttabsTabIdEvaluate'],
2141
+ },
2142
+ },
2143
+ },
2144
+ {
2145
+ displayName: 'User Id',
2146
+ name: 'userId',
2147
+ type: 'string',
2148
+ default: '',
2149
+ required: true,
2150
+ description: '',
2151
+ displayOptions: {
2152
+ show: {
2153
+ resource: ['interaction'],
2154
+ operation: ['posttabsTabIdEvaluate'],
2155
+ },
2156
+ },
2157
+ routing: {
2158
+ send: {
2159
+ type: 'body',
2160
+ property: 'userId',
2161
+ },
2162
+ },
2163
+ },
2164
+ {
2165
+ displayName: 'Expression',
2166
+ name: 'expression',
2167
+ type: 'string',
2168
+ default: '',
2169
+ required: true,
2170
+ description: 'JavaScript expression to evaluate.',
2171
+ displayOptions: {
2172
+ show: {
2173
+ resource: ['interaction'],
2174
+ operation: ['posttabsTabIdEvaluate'],
2175
+ },
2176
+ },
2177
+ routing: {
2178
+ send: {
2179
+ type: 'body',
2180
+ property: 'expression',
2181
+ },
2182
+ },
2183
+ },
2184
+ {
2185
+ displayName: 'User Id',
2186
+ name: 'userId',
2187
+ type: 'string',
2188
+ default: '',
2189
+ required: true,
2190
+ description: '',
2191
+ displayOptions: {
2192
+ show: {
2193
+ resource: ['legacy'],
2194
+ operation: ['posttabsOpen'],
2195
+ },
2196
+ },
2197
+ routing: {
2198
+ send: {
2199
+ type: 'body',
2200
+ property: 'userId',
2201
+ },
2202
+ },
2203
+ },
2204
+ {
2205
+ displayName: 'Url',
2206
+ name: 'url',
2207
+ type: 'string',
2208
+ default: '',
2209
+ required: true,
2210
+ description: '',
2211
+ displayOptions: {
2212
+ show: {
2213
+ resource: ['legacy'],
2214
+ operation: ['posttabsOpen'],
2215
+ },
2216
+ },
2217
+ routing: {
2218
+ send: {
2219
+ type: 'body',
2220
+ property: 'url',
2221
+ },
2222
+ },
2223
+ },
2224
+ {
2225
+ displayName: 'Additional Fields',
2226
+ name: 'additionalFields',
2227
+ type: 'collection',
2228
+ placeholder: 'Add Field',
2229
+ default: {},
2230
+ displayOptions: {
2231
+ show: {
2232
+ resource: ['legacy'],
2233
+ operation: ['posttabsOpen'],
2234
+ },
2235
+ },
2236
+ options: [
2237
+ {
2238
+ displayName: 'List Item Id',
2239
+ name: 'listItemId',
2240
+ type: 'string',
2241
+ default: '',
2242
+ description: '',
2243
+ routing: {
2244
+ send: {
2245
+ type: 'body',
2246
+ property: 'listItemId',
2247
+ },
2248
+ },
2249
+ },
2250
+ ],
2251
+ },
2252
+ {
2253
+ displayName: 'User Id',
2254
+ name: 'userId',
2255
+ type: 'string',
2256
+ default: '',
2257
+ required: true,
2258
+ description: '',
2259
+ displayOptions: {
2260
+ show: {
2261
+ resource: ['legacy'],
2262
+ operation: ['postnavigate'],
2263
+ },
2264
+ },
2265
+ routing: {
2266
+ send: {
2267
+ type: 'body',
2268
+ property: 'userId',
2269
+ },
2270
+ },
2271
+ },
2272
+ {
2273
+ displayName: 'Url',
2274
+ name: 'url',
2275
+ type: 'string',
2276
+ default: '',
2277
+ required: true,
2278
+ description: '',
2279
+ displayOptions: {
2280
+ show: {
2281
+ resource: ['legacy'],
2282
+ operation: ['postnavigate'],
2283
+ },
2284
+ },
2285
+ routing: {
2286
+ send: {
2287
+ type: 'body',
2288
+ property: 'url',
2289
+ },
2290
+ },
2291
+ },
2292
+ {
2293
+ displayName: 'Additional Fields',
2294
+ name: 'additionalFields',
2295
+ type: 'collection',
2296
+ placeholder: 'Add Field',
2297
+ default: {},
2298
+ displayOptions: {
2299
+ show: {
2300
+ resource: ['legacy'],
2301
+ operation: ['postnavigate'],
2302
+ },
2303
+ },
2304
+ options: [
2305
+ {
2306
+ displayName: 'Target Id',
2307
+ name: 'targetId',
2308
+ type: 'string',
2309
+ default: '',
2310
+ description: '',
2311
+ routing: {
2312
+ send: {
2313
+ type: 'body',
2314
+ property: 'targetId',
2315
+ },
2316
+ },
2317
+ },
2318
+ ],
2319
+ },
2320
+ {
2321
+ displayName: 'Target Id',
2322
+ name: 'targetId',
2323
+ type: 'string',
2324
+ default: '',
2325
+ required: true,
2326
+ description: '',
2327
+ displayOptions: {
2328
+ show: {
2329
+ resource: ['legacy'],
2330
+ operation: ['getsnapshot'],
2331
+ },
2332
+ },
2333
+ routing: {
2334
+ send: {
2335
+ type: 'query',
2336
+ property: 'targetId',
2337
+ },
2338
+ },
2339
+ },
2340
+ {
2341
+ displayName: 'User Id',
2342
+ name: 'userId',
2343
+ type: 'string',
2344
+ default: '',
2345
+ required: true,
2346
+ description: '',
2347
+ displayOptions: {
2348
+ show: {
2349
+ resource: ['legacy'],
2350
+ operation: ['getsnapshot'],
2351
+ },
2352
+ },
2353
+ routing: {
2354
+ send: {
2355
+ type: 'query',
2356
+ property: 'userId',
2357
+ },
2358
+ },
2359
+ },
2360
+ {
2361
+ displayName: 'Additional Fields',
2362
+ name: 'additionalFields',
2363
+ type: 'collection',
2364
+ placeholder: 'Add Field',
2365
+ default: {},
2366
+ displayOptions: {
2367
+ show: {
2368
+ resource: ['legacy'],
2369
+ operation: ['getsnapshot'],
2370
+ },
2371
+ },
2372
+ options: [
2373
+ {
2374
+ displayName: 'Format',
2375
+ name: 'format',
2376
+ type: 'string',
2377
+ default: '',
2378
+ description: '',
2379
+ routing: {
2380
+ send: {
2381
+ type: 'query',
2382
+ property: 'format',
2383
+ },
2384
+ },
2385
+ },
2386
+ {
2387
+ displayName: 'Offset',
2388
+ name: 'offset',
2389
+ type: 'number',
2390
+ default: 0,
2391
+ description: '',
2392
+ routing: {
2393
+ send: {
2394
+ type: 'query',
2395
+ property: 'offset',
2396
+ },
2397
+ },
2398
+ },
2399
+ {
2400
+ displayName: 'Include Screenshot',
2401
+ name: 'includeScreenshot',
2402
+ type: 'string',
2403
+ default: '',
2404
+ description: '',
2405
+ routing: {
2406
+ send: {
2407
+ type: 'query',
2408
+ property: 'includeScreenshot',
2409
+ },
2410
+ },
2411
+ },
2412
+ ],
2413
+ },
2414
+ {
2415
+ displayName: 'User Id',
2416
+ name: 'userId',
2417
+ type: 'string',
2418
+ default: '',
2419
+ required: true,
2420
+ description: '',
2421
+ displayOptions: {
2422
+ show: {
2423
+ resource: ['legacy'],
2424
+ operation: ['postact'],
2425
+ },
2426
+ },
2427
+ routing: {
2428
+ send: {
2429
+ type: 'body',
2430
+ property: 'userId',
2431
+ },
2432
+ },
2433
+ },
2434
+ {
2435
+ displayName: 'Kind',
2436
+ name: 'kind',
2437
+ type: 'string',
2438
+ default: '',
2439
+ required: true,
2440
+ description: 'Action kind: click, type, scroll, press, key, select_option, drag, hover, screenshot, wait, back, forward.',
2441
+ displayOptions: {
2442
+ show: {
2443
+ resource: ['legacy'],
2444
+ operation: ['postact'],
2445
+ },
2446
+ },
2447
+ routing: {
2448
+ send: {
2449
+ type: 'body',
2450
+ property: 'kind',
2451
+ },
2452
+ },
2453
+ },
2454
+ {
2455
+ displayName: 'Additional Fields',
2456
+ name: 'additionalFields',
2457
+ type: 'collection',
2458
+ placeholder: 'Add Field',
2459
+ default: {},
2460
+ displayOptions: {
2461
+ show: {
2462
+ resource: ['legacy'],
2463
+ operation: ['postact'],
2464
+ },
2465
+ },
2466
+ options: [
2467
+ {
2468
+ displayName: 'Target Id',
2469
+ name: 'targetId',
2470
+ type: 'string',
2471
+ default: '',
2472
+ description: '',
2473
+ routing: {
2474
+ send: {
2475
+ type: 'body',
2476
+ property: 'targetId',
2477
+ },
2478
+ },
2479
+ },
2480
+ {
2481
+ displayName: 'Ref',
2482
+ name: 'ref',
2483
+ type: 'string',
2484
+ default: '',
2485
+ description: '',
2486
+ routing: {
2487
+ send: {
2488
+ type: 'body',
2489
+ property: 'ref',
2490
+ },
2491
+ },
2492
+ },
2493
+ {
2494
+ displayName: 'Selector',
2495
+ name: 'selector',
2496
+ type: 'string',
2497
+ default: '',
2498
+ description: '',
2499
+ routing: {
2500
+ send: {
2501
+ type: 'body',
2502
+ property: 'selector',
2503
+ },
2504
+ },
2505
+ },
2506
+ {
2507
+ displayName: 'Text',
2508
+ name: 'text',
2509
+ type: 'string',
2510
+ default: '',
2511
+ description: '',
2512
+ routing: {
2513
+ send: {
2514
+ type: 'body',
2515
+ property: 'text',
2516
+ },
2517
+ },
2518
+ },
2519
+ {
2520
+ displayName: 'Key',
2521
+ name: 'key',
2522
+ type: 'string',
2523
+ default: '',
2524
+ description: '',
2525
+ routing: {
2526
+ send: {
2527
+ type: 'body',
2528
+ property: 'key',
2529
+ },
2530
+ },
2531
+ },
2532
+ {
2533
+ displayName: 'Direction',
2534
+ name: 'direction',
2535
+ type: 'string',
2536
+ default: '',
2537
+ description: '',
2538
+ routing: {
2539
+ send: {
2540
+ type: 'body',
2541
+ property: 'direction',
2542
+ },
2543
+ },
2544
+ },
2545
+ {
2546
+ displayName: 'Url',
2547
+ name: 'url',
2548
+ type: 'string',
2549
+ default: '',
2550
+ description: '',
2551
+ routing: {
2552
+ send: {
2553
+ type: 'body',
2554
+ property: 'url',
2555
+ },
2556
+ },
2557
+ },
2558
+ ],
2559
+ },
2560
+ ],
2561
+ };
2562
+ }
2563
+ }
2564
+ exports.CamofoxBrowserToolNode = CamofoxBrowserToolNode;