@actions-json/bridge 0.1.119 → 0.1.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -26
- package/bin/cli.js +32 -2
- package/dictionary/overlay.actions.json +3303 -0
- package/lib/install.js +5 -2
- package/lib/storage.js +55 -0
- package/package.json +5 -2
- package/scaffold/README.md +76 -0
- package/scaffold/scopes/private/scope.json +17 -0
- package/scaffold/scopes/private/sites/.gitkeep +0 -0
- package/scaffold/scopes/public/scope.json +17 -0
- package/scaffold/scopes/public/sites/.gitkeep +0 -0
- package/scaffold/scopes/shared/.gitkeep +0 -0
- package/scaffold/storage.json +33 -0
|
@@ -0,0 +1,3303 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol": "actions.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"surface": {
|
|
5
|
+
"kind": "browser_overlay_runtime",
|
|
6
|
+
"description": "Authorized Chrome extension runtime for rendering agent-created HTML overlays on the active website."
|
|
7
|
+
},
|
|
8
|
+
"primitive_dictionary": {
|
|
9
|
+
"version": 1,
|
|
10
|
+
"stage": 1,
|
|
11
|
+
"host": "extension",
|
|
12
|
+
"primitives": [
|
|
13
|
+
{
|
|
14
|
+
"name": "browser.screenshot",
|
|
15
|
+
"support": "supported",
|
|
16
|
+
"reason": null,
|
|
17
|
+
"capability_class": "privileged",
|
|
18
|
+
"portable": false,
|
|
19
|
+
"summary": "Capture a true rendered screenshot where the host has browser-level authority.",
|
|
20
|
+
"input_schema": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"format": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": [
|
|
26
|
+
"png",
|
|
27
|
+
"jpeg"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"quality": {
|
|
31
|
+
"type": "integer",
|
|
32
|
+
"minimum": 1,
|
|
33
|
+
"maximum": 100
|
|
34
|
+
},
|
|
35
|
+
"max_width": {
|
|
36
|
+
"type": "integer",
|
|
37
|
+
"minimum": 1
|
|
38
|
+
},
|
|
39
|
+
"max_height": {
|
|
40
|
+
"type": "integer",
|
|
41
|
+
"minimum": 1
|
|
42
|
+
},
|
|
43
|
+
"max_kilobytes": {
|
|
44
|
+
"type": "integer",
|
|
45
|
+
"minimum": 1
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"additionalProperties": false
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "browser.claimed_tabs.list",
|
|
53
|
+
"support": "supported",
|
|
54
|
+
"reason": null,
|
|
55
|
+
"capability_class": "privileged",
|
|
56
|
+
"portable": false,
|
|
57
|
+
"summary": "List browser tabs already claimed by the actions.json extension.",
|
|
58
|
+
"input_schema": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {},
|
|
61
|
+
"additionalProperties": false
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "browser.claimed_tabs.activate",
|
|
66
|
+
"support": "supported",
|
|
67
|
+
"reason": null,
|
|
68
|
+
"capability_class": "privileged",
|
|
69
|
+
"portable": false,
|
|
70
|
+
"summary": "Focus an already-claimed browser tab and reconnect its actions.json runtime.",
|
|
71
|
+
"input_schema": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"required": [
|
|
74
|
+
"tab_id"
|
|
75
|
+
],
|
|
76
|
+
"properties": {
|
|
77
|
+
"tab_id": {
|
|
78
|
+
"type": "integer",
|
|
79
|
+
"description": "Chrome tab id from browser.claimed_tabs.list."
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"additionalProperties": false
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "runtime.agent.start",
|
|
87
|
+
"support": "supported",
|
|
88
|
+
"reason": null,
|
|
89
|
+
"capability_class": "privileged",
|
|
90
|
+
"portable": false,
|
|
91
|
+
"summary": "Start the extension-owned hosted GPT Realtime session, defaulting to text-only mode without microphone capture.",
|
|
92
|
+
"input_schema": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"properties": {
|
|
95
|
+
"text_only": {
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"default": true,
|
|
98
|
+
"description": "When true or omitted, start without microphone capture and request text output."
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"additionalProperties": false
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "runtime.agent.stop",
|
|
106
|
+
"support": "supported",
|
|
107
|
+
"reason": null,
|
|
108
|
+
"capability_class": "privileged",
|
|
109
|
+
"portable": false,
|
|
110
|
+
"summary": "Stop the extension-owned hosted GPT Realtime session.",
|
|
111
|
+
"input_schema": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"properties": {},
|
|
114
|
+
"additionalProperties": false
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "runtime.agent.user_message",
|
|
119
|
+
"support": "supported",
|
|
120
|
+
"reason": null,
|
|
121
|
+
"capability_class": "privileged",
|
|
122
|
+
"portable": false,
|
|
123
|
+
"summary": "Inject a developer test prompt into the active hosted GPT Realtime session and request a text-only response surfaced as a browser toast.",
|
|
124
|
+
"input_schema": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"required": [
|
|
127
|
+
"text"
|
|
128
|
+
],
|
|
129
|
+
"properties": {
|
|
130
|
+
"text": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"description": "User-style instruction to send into the active hosted Realtime session for testing."
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"additionalProperties": false
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "pointer.move",
|
|
140
|
+
"support": "supported",
|
|
141
|
+
"reason": null,
|
|
142
|
+
"capability_class": "portable",
|
|
143
|
+
"portable": true,
|
|
144
|
+
"summary": "Move a visible pointer affordance to viewport coordinates.",
|
|
145
|
+
"input_schema": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"required": [
|
|
148
|
+
"x",
|
|
149
|
+
"y"
|
|
150
|
+
],
|
|
151
|
+
"properties": {
|
|
152
|
+
"x": {
|
|
153
|
+
"type": "number"
|
|
154
|
+
},
|
|
155
|
+
"y": {
|
|
156
|
+
"type": "number"
|
|
157
|
+
},
|
|
158
|
+
"duration_ms": {
|
|
159
|
+
"type": "integer",
|
|
160
|
+
"minimum": 0
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"additionalProperties": false
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "pointer.click",
|
|
168
|
+
"support": "supported",
|
|
169
|
+
"reason": null,
|
|
170
|
+
"capability_class": "portable",
|
|
171
|
+
"portable": true,
|
|
172
|
+
"summary": "Move visibly to viewport coordinates and perform a click.",
|
|
173
|
+
"input_schema": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"required": [
|
|
176
|
+
"x",
|
|
177
|
+
"y"
|
|
178
|
+
],
|
|
179
|
+
"properties": {
|
|
180
|
+
"x": {
|
|
181
|
+
"type": "number"
|
|
182
|
+
},
|
|
183
|
+
"y": {
|
|
184
|
+
"type": "number"
|
|
185
|
+
},
|
|
186
|
+
"button": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"enum": [
|
|
189
|
+
"left",
|
|
190
|
+
"middle",
|
|
191
|
+
"right"
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"additionalProperties": false
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "pointer.double_click",
|
|
200
|
+
"support": "supported",
|
|
201
|
+
"reason": null,
|
|
202
|
+
"capability_class": "portable",
|
|
203
|
+
"portable": true,
|
|
204
|
+
"summary": "Move visibly to viewport coordinates and perform a double click.",
|
|
205
|
+
"input_schema": {
|
|
206
|
+
"type": "object",
|
|
207
|
+
"required": [
|
|
208
|
+
"x",
|
|
209
|
+
"y"
|
|
210
|
+
],
|
|
211
|
+
"properties": {
|
|
212
|
+
"x": {
|
|
213
|
+
"type": "number"
|
|
214
|
+
},
|
|
215
|
+
"y": {
|
|
216
|
+
"type": "number"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"additionalProperties": false
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "pointer.drag",
|
|
224
|
+
"support": "supported",
|
|
225
|
+
"reason": null,
|
|
226
|
+
"capability_class": "portable",
|
|
227
|
+
"portable": true,
|
|
228
|
+
"summary": "Move visibly from one viewport point or locator to another while dragging.",
|
|
229
|
+
"input_schema": {
|
|
230
|
+
"type": "object",
|
|
231
|
+
"required": [
|
|
232
|
+
"from",
|
|
233
|
+
"to"
|
|
234
|
+
],
|
|
235
|
+
"properties": {
|
|
236
|
+
"from": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"properties": {
|
|
239
|
+
"x": {
|
|
240
|
+
"type": "number"
|
|
241
|
+
},
|
|
242
|
+
"y": {
|
|
243
|
+
"type": "number"
|
|
244
|
+
},
|
|
245
|
+
"selector": {
|
|
246
|
+
"type": "string"
|
|
247
|
+
},
|
|
248
|
+
"text": {
|
|
249
|
+
"type": "string"
|
|
250
|
+
},
|
|
251
|
+
"text_contains": {
|
|
252
|
+
"type": "string"
|
|
253
|
+
},
|
|
254
|
+
"text_equals": {
|
|
255
|
+
"type": "string"
|
|
256
|
+
},
|
|
257
|
+
"locator": {
|
|
258
|
+
"type": "object"
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
"additionalProperties": true
|
|
262
|
+
},
|
|
263
|
+
"to": {
|
|
264
|
+
"type": "object",
|
|
265
|
+
"properties": {
|
|
266
|
+
"x": {
|
|
267
|
+
"type": "number"
|
|
268
|
+
},
|
|
269
|
+
"y": {
|
|
270
|
+
"type": "number"
|
|
271
|
+
},
|
|
272
|
+
"selector": {
|
|
273
|
+
"type": "string"
|
|
274
|
+
},
|
|
275
|
+
"text": {
|
|
276
|
+
"type": "string"
|
|
277
|
+
},
|
|
278
|
+
"text_contains": {
|
|
279
|
+
"type": "string"
|
|
280
|
+
},
|
|
281
|
+
"text_equals": {
|
|
282
|
+
"type": "string"
|
|
283
|
+
},
|
|
284
|
+
"locator": {
|
|
285
|
+
"type": "object"
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
"additionalProperties": true
|
|
289
|
+
},
|
|
290
|
+
"duration_ms": {
|
|
291
|
+
"type": "integer",
|
|
292
|
+
"minimum": 0
|
|
293
|
+
},
|
|
294
|
+
"steps": {
|
|
295
|
+
"type": "integer",
|
|
296
|
+
"minimum": 1,
|
|
297
|
+
"maximum": 40
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"additionalProperties": false
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "viewport.scroll",
|
|
305
|
+
"support": "supported",
|
|
306
|
+
"reason": null,
|
|
307
|
+
"capability_class": "portable",
|
|
308
|
+
"portable": true,
|
|
309
|
+
"summary": "Scroll the current viewport by a visible delta.",
|
|
310
|
+
"input_schema": {
|
|
311
|
+
"type": "object",
|
|
312
|
+
"properties": {
|
|
313
|
+
"delta_x": {
|
|
314
|
+
"type": "number"
|
|
315
|
+
},
|
|
316
|
+
"delta_y": {
|
|
317
|
+
"type": "number"
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"additionalProperties": false
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"name": "storage.read_file",
|
|
325
|
+
"support": "supported",
|
|
326
|
+
"reason": null,
|
|
327
|
+
"capability_class": "privileged",
|
|
328
|
+
"portable": false,
|
|
329
|
+
"summary": "Read a declared text file from the loaded actions.json storage bundle by path or file id.",
|
|
330
|
+
"input_schema": {
|
|
331
|
+
"type": "object",
|
|
332
|
+
"properties": {
|
|
333
|
+
"path": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"description": "Canonical storage path, such as scopes/shared/name/sites/example.com/path/SKILL.md."
|
|
336
|
+
},
|
|
337
|
+
"id": {
|
|
338
|
+
"type": "string",
|
|
339
|
+
"description": "Declared file id from actions.site mode=list files."
|
|
340
|
+
},
|
|
341
|
+
"max_bytes": {
|
|
342
|
+
"type": "integer",
|
|
343
|
+
"minimum": 1,
|
|
344
|
+
"maximum": 256000,
|
|
345
|
+
"default": 64000
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
"additionalProperties": false
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"name": "text.insert",
|
|
353
|
+
"support": "supported",
|
|
354
|
+
"reason": null,
|
|
355
|
+
"capability_class": "portable",
|
|
356
|
+
"portable": true,
|
|
357
|
+
"summary": "Insert text into the focused editable target or a requested editable locator.",
|
|
358
|
+
"input_schema": {
|
|
359
|
+
"type": "object",
|
|
360
|
+
"required": [
|
|
361
|
+
"text"
|
|
362
|
+
],
|
|
363
|
+
"properties": {
|
|
364
|
+
"text": {
|
|
365
|
+
"type": "string"
|
|
366
|
+
},
|
|
367
|
+
"target": {
|
|
368
|
+
"type": "object",
|
|
369
|
+
"description": "Optional editable target locator. Omit to use the focused editable element."
|
|
370
|
+
},
|
|
371
|
+
"mode": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"enum": [
|
|
374
|
+
"append",
|
|
375
|
+
"replace"
|
|
376
|
+
],
|
|
377
|
+
"default": "append"
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
"additionalProperties": false
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"name": "keyboard.press",
|
|
385
|
+
"support": "supported",
|
|
386
|
+
"reason": null,
|
|
387
|
+
"capability_class": "mixed",
|
|
388
|
+
"portable": false,
|
|
389
|
+
"summary": "Dispatch a page-level keyboard key or modifier chord to the focused element.",
|
|
390
|
+
"input_schema": {
|
|
391
|
+
"type": "object",
|
|
392
|
+
"required": [
|
|
393
|
+
"key"
|
|
394
|
+
],
|
|
395
|
+
"properties": {
|
|
396
|
+
"key": {
|
|
397
|
+
"type": "string",
|
|
398
|
+
"description": "Key name, or a compact chord such as Meta+A, Control+A, or Shift+Enter."
|
|
399
|
+
},
|
|
400
|
+
"modifiers": {
|
|
401
|
+
"type": "array",
|
|
402
|
+
"items": {
|
|
403
|
+
"type": "string",
|
|
404
|
+
"enum": [
|
|
405
|
+
"Alt",
|
|
406
|
+
"Control",
|
|
407
|
+
"Ctrl",
|
|
408
|
+
"Meta",
|
|
409
|
+
"Cmd",
|
|
410
|
+
"Command",
|
|
411
|
+
"Shift",
|
|
412
|
+
"Option"
|
|
413
|
+
]
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
"additionalProperties": false
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"name": "transfer.insert",
|
|
422
|
+
"support": "supported",
|
|
423
|
+
"reason": null,
|
|
424
|
+
"capability_class": "privileged",
|
|
425
|
+
"portable": false,
|
|
426
|
+
"summary": "Render a stored transfer item and insert it into a target editable element without resending the full payload through the model.",
|
|
427
|
+
"input_schema": {
|
|
428
|
+
"type": "object",
|
|
429
|
+
"properties": {
|
|
430
|
+
"label": {
|
|
431
|
+
"type": "string"
|
|
432
|
+
},
|
|
433
|
+
"id": {
|
|
434
|
+
"type": "string"
|
|
435
|
+
},
|
|
436
|
+
"target": {
|
|
437
|
+
"type": "object"
|
|
438
|
+
},
|
|
439
|
+
"item_selector": {
|
|
440
|
+
"type": "object"
|
|
441
|
+
},
|
|
442
|
+
"render": {
|
|
443
|
+
"type": "object"
|
|
444
|
+
},
|
|
445
|
+
"mode": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"enum": [
|
|
448
|
+
"replace",
|
|
449
|
+
"append"
|
|
450
|
+
]
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
"additionalProperties": false
|
|
454
|
+
}
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"name": "transfer.clear",
|
|
458
|
+
"support": "supported",
|
|
459
|
+
"reason": null,
|
|
460
|
+
"capability_class": "privileged",
|
|
461
|
+
"portable": false,
|
|
462
|
+
"summary": "Clear one transfer item or all transfer items in the current session.",
|
|
463
|
+
"input_schema": {
|
|
464
|
+
"type": "object",
|
|
465
|
+
"properties": {
|
|
466
|
+
"label": {
|
|
467
|
+
"type": "string"
|
|
468
|
+
},
|
|
469
|
+
"id": {
|
|
470
|
+
"type": "string"
|
|
471
|
+
},
|
|
472
|
+
"scope": {
|
|
473
|
+
"type": "string",
|
|
474
|
+
"enum": [
|
|
475
|
+
"session"
|
|
476
|
+
]
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"additionalProperties": false
|
|
480
|
+
}
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"name": "transfer.read",
|
|
484
|
+
"support": "supported",
|
|
485
|
+
"reason": null,
|
|
486
|
+
"capability_class": "privileged",
|
|
487
|
+
"portable": false,
|
|
488
|
+
"summary": "Read transfer-buffer metadata or payload by label or id.",
|
|
489
|
+
"input_schema": {
|
|
490
|
+
"type": "object",
|
|
491
|
+
"properties": {
|
|
492
|
+
"label": {
|
|
493
|
+
"type": "string"
|
|
494
|
+
},
|
|
495
|
+
"id": {
|
|
496
|
+
"type": "string"
|
|
497
|
+
},
|
|
498
|
+
"include_value": {
|
|
499
|
+
"type": "boolean"
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
"additionalProperties": false
|
|
503
|
+
}
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"name": "transfer.write",
|
|
507
|
+
"support": "supported",
|
|
508
|
+
"reason": null,
|
|
509
|
+
"capability_class": "privileged",
|
|
510
|
+
"portable": false,
|
|
511
|
+
"summary": "Store text or structured JSON in the extension-local transfer buffer for cross-tab workflows.",
|
|
512
|
+
"input_schema": {
|
|
513
|
+
"type": "object",
|
|
514
|
+
"required": [
|
|
515
|
+
"label",
|
|
516
|
+
"format",
|
|
517
|
+
"value"
|
|
518
|
+
],
|
|
519
|
+
"properties": {
|
|
520
|
+
"label": {
|
|
521
|
+
"type": "string"
|
|
522
|
+
},
|
|
523
|
+
"format": {
|
|
524
|
+
"type": "string",
|
|
525
|
+
"enum": [
|
|
526
|
+
"text/plain",
|
|
527
|
+
"application/json",
|
|
528
|
+
"text/uri-list"
|
|
529
|
+
]
|
|
530
|
+
},
|
|
531
|
+
"value": {},
|
|
532
|
+
"metadata": {
|
|
533
|
+
"type": "object"
|
|
534
|
+
},
|
|
535
|
+
"ttl_seconds": {
|
|
536
|
+
"type": "integer",
|
|
537
|
+
"minimum": 0
|
|
538
|
+
},
|
|
539
|
+
"mode": {
|
|
540
|
+
"type": "string",
|
|
541
|
+
"enum": [
|
|
542
|
+
"replace",
|
|
543
|
+
"append"
|
|
544
|
+
]
|
|
545
|
+
},
|
|
546
|
+
"redaction": {
|
|
547
|
+
"type": "object"
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
"additionalProperties": false
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "clipboard.write",
|
|
555
|
+
"support": "unsupported",
|
|
556
|
+
"reason": "transfer_buffer_preferred",
|
|
557
|
+
"capability_class": "privileged",
|
|
558
|
+
"portable": false,
|
|
559
|
+
"summary": "Write text to the extension-approved clipboard or transfer surface when permission is available.",
|
|
560
|
+
"input_schema": {
|
|
561
|
+
"type": "object",
|
|
562
|
+
"required": [
|
|
563
|
+
"text"
|
|
564
|
+
],
|
|
565
|
+
"properties": {
|
|
566
|
+
"text": {
|
|
567
|
+
"type": "string"
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"additionalProperties": false
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"name": "clipboard.read",
|
|
575
|
+
"support": "unsupported",
|
|
576
|
+
"reason": "transfer_buffer_preferred",
|
|
577
|
+
"capability_class": "privileged",
|
|
578
|
+
"portable": false,
|
|
579
|
+
"summary": "Read text from the extension-approved clipboard or transfer surface when permission is available.",
|
|
580
|
+
"input_schema": {
|
|
581
|
+
"type": "object",
|
|
582
|
+
"properties": {},
|
|
583
|
+
"additionalProperties": false
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"name": "runtime.session.name",
|
|
588
|
+
"support": "unsupported",
|
|
589
|
+
"reason": "handler_unavailable",
|
|
590
|
+
"capability_class": "privileged",
|
|
591
|
+
"portable": false,
|
|
592
|
+
"summary": "Name the current browser-control session for user-visible transparency.",
|
|
593
|
+
"input_schema": {
|
|
594
|
+
"type": "object",
|
|
595
|
+
"required": [
|
|
596
|
+
"name"
|
|
597
|
+
],
|
|
598
|
+
"properties": {
|
|
599
|
+
"name": {
|
|
600
|
+
"type": "string"
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
"additionalProperties": false
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"name": "runtime.session.finalize_tabs",
|
|
608
|
+
"support": "unsupported",
|
|
609
|
+
"reason": "handler_unavailable",
|
|
610
|
+
"capability_class": "privileged",
|
|
611
|
+
"portable": false,
|
|
612
|
+
"summary": "Finalize browser tabs controlled during an authoring session.",
|
|
613
|
+
"input_schema": {
|
|
614
|
+
"type": "object",
|
|
615
|
+
"properties": {},
|
|
616
|
+
"additionalProperties": false
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"name": "page.info",
|
|
621
|
+
"support": "supported",
|
|
622
|
+
"reason": null,
|
|
623
|
+
"capability_class": "portable",
|
|
624
|
+
"portable": true,
|
|
625
|
+
"summary": "Return basic information about the current page.",
|
|
626
|
+
"input_schema": {
|
|
627
|
+
"type": "object",
|
|
628
|
+
"properties": {},
|
|
629
|
+
"additionalProperties": false
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"name": "dom.observe.visible",
|
|
634
|
+
"support": "supported",
|
|
635
|
+
"reason": null,
|
|
636
|
+
"capability_class": "portable",
|
|
637
|
+
"portable": true,
|
|
638
|
+
"summary": "Observe visible DOM candidates that match a selector or text query.",
|
|
639
|
+
"input_schema": {
|
|
640
|
+
"type": "object",
|
|
641
|
+
"properties": {
|
|
642
|
+
"selector": {
|
|
643
|
+
"type": "string"
|
|
644
|
+
},
|
|
645
|
+
"text_contains": {
|
|
646
|
+
"type": "string"
|
|
647
|
+
}
|
|
648
|
+
},
|
|
649
|
+
"additionalProperties": false
|
|
650
|
+
}
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"name": "dom.snapshot_text",
|
|
654
|
+
"support": "supported",
|
|
655
|
+
"reason": null,
|
|
656
|
+
"capability_class": "portable",
|
|
657
|
+
"portable": true,
|
|
658
|
+
"summary": "Return a text snapshot of visible page content.",
|
|
659
|
+
"input_schema": {
|
|
660
|
+
"type": "object",
|
|
661
|
+
"properties": {
|
|
662
|
+
"selector": {
|
|
663
|
+
"type": "string"
|
|
664
|
+
},
|
|
665
|
+
"max_chars": {
|
|
666
|
+
"type": "integer",
|
|
667
|
+
"minimum": 1
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
"additionalProperties": false
|
|
671
|
+
}
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"name": "dom.list_sections",
|
|
675
|
+
"support": "supported",
|
|
676
|
+
"reason": null,
|
|
677
|
+
"capability_class": "portable",
|
|
678
|
+
"portable": true,
|
|
679
|
+
"summary": "List rendered page sections with inferred headings, document offsets, viewport visibility, and optional item counts.",
|
|
680
|
+
"input_schema": {
|
|
681
|
+
"type": "object",
|
|
682
|
+
"properties": {
|
|
683
|
+
"selector": {
|
|
684
|
+
"type": "string"
|
|
685
|
+
},
|
|
686
|
+
"heading_selector": {
|
|
687
|
+
"type": "string"
|
|
688
|
+
},
|
|
689
|
+
"item_selector": {
|
|
690
|
+
"type": "string"
|
|
691
|
+
},
|
|
692
|
+
"text_contains": {
|
|
693
|
+
"type": "string"
|
|
694
|
+
},
|
|
695
|
+
"max_sections": {
|
|
696
|
+
"type": "integer",
|
|
697
|
+
"minimum": 1
|
|
698
|
+
},
|
|
699
|
+
"max_heading_length": {
|
|
700
|
+
"type": "integer",
|
|
701
|
+
"minimum": 12
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
"additionalProperties": false
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"name": "locator.element_info",
|
|
709
|
+
"support": "supported",
|
|
710
|
+
"reason": null,
|
|
711
|
+
"capability_class": "portable",
|
|
712
|
+
"portable": true,
|
|
713
|
+
"summary": "Resolve a locator to visible element geometry and a recommended clickable center. When multiple visible elements match, return all candidates and mark the result ambiguous instead of making an arbitrary choice.",
|
|
714
|
+
"input_schema": {
|
|
715
|
+
"type": "object",
|
|
716
|
+
"required": [
|
|
717
|
+
"locator"
|
|
718
|
+
],
|
|
719
|
+
"properties": {
|
|
720
|
+
"locator": {
|
|
721
|
+
"type": "object"
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"additionalProperties": false
|
|
725
|
+
}
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"name": "locator.text_content",
|
|
729
|
+
"support": "supported",
|
|
730
|
+
"reason": null,
|
|
731
|
+
"capability_class": "portable",
|
|
732
|
+
"portable": true,
|
|
733
|
+
"summary": "Resolve a locator and return its visible text content.",
|
|
734
|
+
"input_schema": {
|
|
735
|
+
"type": "object",
|
|
736
|
+
"required": [
|
|
737
|
+
"locator"
|
|
738
|
+
],
|
|
739
|
+
"properties": {
|
|
740
|
+
"locator": {
|
|
741
|
+
"type": "object"
|
|
742
|
+
}
|
|
743
|
+
},
|
|
744
|
+
"additionalProperties": false
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"name": "locator.wait_for",
|
|
749
|
+
"support": "supported",
|
|
750
|
+
"reason": null,
|
|
751
|
+
"capability_class": "portable",
|
|
752
|
+
"portable": true,
|
|
753
|
+
"summary": "Wait for a locator to satisfy a visible or attached state.",
|
|
754
|
+
"input_schema": {
|
|
755
|
+
"type": "object",
|
|
756
|
+
"required": [
|
|
757
|
+
"locator"
|
|
758
|
+
],
|
|
759
|
+
"properties": {
|
|
760
|
+
"locator": {
|
|
761
|
+
"type": "object"
|
|
762
|
+
},
|
|
763
|
+
"state": {
|
|
764
|
+
"type": "string",
|
|
765
|
+
"enum": [
|
|
766
|
+
"attached",
|
|
767
|
+
"visible"
|
|
768
|
+
]
|
|
769
|
+
},
|
|
770
|
+
"timeout_ms": {
|
|
771
|
+
"type": "integer",
|
|
772
|
+
"minimum": 0
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
"additionalProperties": false
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
"name": "overlay.open",
|
|
780
|
+
"support": "supported",
|
|
781
|
+
"reason": null,
|
|
782
|
+
"capability_class": "privileged",
|
|
783
|
+
"portable": false,
|
|
784
|
+
"summary": "Render an agent-created HTML document in the authorized page overlay.",
|
|
785
|
+
"input_schema": {
|
|
786
|
+
"type": "object",
|
|
787
|
+
"properties": {
|
|
788
|
+
"html": {
|
|
789
|
+
"type": "string",
|
|
790
|
+
"description": "Inline HTML body or document markup to render inside the overlay. Use either html or template, not both."
|
|
791
|
+
},
|
|
792
|
+
"template": {
|
|
793
|
+
"type": "object",
|
|
794
|
+
"description": "Storage reference for a reusable overlay template. The runtime resolves it from the uploaded actions.json.storage bundle.",
|
|
795
|
+
"required": [
|
|
796
|
+
"scope",
|
|
797
|
+
"path"
|
|
798
|
+
],
|
|
799
|
+
"properties": {
|
|
800
|
+
"scope": {
|
|
801
|
+
"type": "string",
|
|
802
|
+
"description": "Storage scope, such as public, private, or shared/name."
|
|
803
|
+
},
|
|
804
|
+
"path": {
|
|
805
|
+
"type": "string",
|
|
806
|
+
"description": "Path inside the scope, such as sites/example.com/overlays/report/template.html."
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
"additionalProperties": false
|
|
810
|
+
},
|
|
811
|
+
"data": {
|
|
812
|
+
"type": "object",
|
|
813
|
+
"description": "Optional storage reference for JSON data injected into a template as [data-actions-json-overlay-data]. Commonly private data with a public template.",
|
|
814
|
+
"required": [
|
|
815
|
+
"scope",
|
|
816
|
+
"path"
|
|
817
|
+
],
|
|
818
|
+
"properties": {
|
|
819
|
+
"scope": {
|
|
820
|
+
"type": "string"
|
|
821
|
+
},
|
|
822
|
+
"path": {
|
|
823
|
+
"type": "string"
|
|
824
|
+
}
|
|
825
|
+
},
|
|
826
|
+
"additionalProperties": false
|
|
827
|
+
},
|
|
828
|
+
"title": {
|
|
829
|
+
"type": "string",
|
|
830
|
+
"description": "Overlay title shown in the drag handle."
|
|
831
|
+
},
|
|
832
|
+
"width": {
|
|
833
|
+
"type": "integer",
|
|
834
|
+
"minimum": 420,
|
|
835
|
+
"maximum": 1400
|
|
836
|
+
},
|
|
837
|
+
"height": {
|
|
838
|
+
"type": "integer",
|
|
839
|
+
"minimum": 320,
|
|
840
|
+
"maximum": 1000
|
|
841
|
+
},
|
|
842
|
+
"launchers": {
|
|
843
|
+
"type": "array",
|
|
844
|
+
"description": "Optional visible-page buttons that reopen this overlay from a relevant DOM anchor.",
|
|
845
|
+
"items": {
|
|
846
|
+
"type": "object",
|
|
847
|
+
"properties": {
|
|
848
|
+
"id": {
|
|
849
|
+
"type": "string",
|
|
850
|
+
"description": "Stable launcher id used to replace older buttons for the same overlay affordance."
|
|
851
|
+
},
|
|
852
|
+
"label": {
|
|
853
|
+
"type": "string",
|
|
854
|
+
"description": "Button text shown in the original page DOM."
|
|
855
|
+
},
|
|
856
|
+
"title": {
|
|
857
|
+
"type": "string",
|
|
858
|
+
"description": "Tooltip/title for the launcher button."
|
|
859
|
+
},
|
|
860
|
+
"selector": {
|
|
861
|
+
"type": "string",
|
|
862
|
+
"description": "Single CSS selector hint for the element to place the button near."
|
|
863
|
+
},
|
|
864
|
+
"selectors": {
|
|
865
|
+
"type": "array",
|
|
866
|
+
"items": {
|
|
867
|
+
"type": "string"
|
|
868
|
+
},
|
|
869
|
+
"description": "Ordered CSS selector hints for the element to place the button near."
|
|
870
|
+
},
|
|
871
|
+
"text_contains": {
|
|
872
|
+
"type": "string",
|
|
873
|
+
"description": "Optional visible text filter for selected anchor candidates."
|
|
874
|
+
},
|
|
875
|
+
"text_equals": {
|
|
876
|
+
"type": "string",
|
|
877
|
+
"description": "Optional exact visible text filter for selected anchor candidates."
|
|
878
|
+
},
|
|
879
|
+
"url_contains": {
|
|
880
|
+
"type": "string",
|
|
881
|
+
"description": "Only install this launcher when the current page URL contains this string."
|
|
882
|
+
},
|
|
883
|
+
"url_matches": {
|
|
884
|
+
"type": "string",
|
|
885
|
+
"description": "Only install this launcher when the current page URL matches this regular expression."
|
|
886
|
+
},
|
|
887
|
+
"placement": {
|
|
888
|
+
"type": "string",
|
|
889
|
+
"enum": [
|
|
890
|
+
"beforebegin",
|
|
891
|
+
"afterbegin",
|
|
892
|
+
"beforeend",
|
|
893
|
+
"afterend"
|
|
894
|
+
],
|
|
895
|
+
"default": "afterend"
|
|
896
|
+
},
|
|
897
|
+
"max_instances": {
|
|
898
|
+
"type": "integer",
|
|
899
|
+
"minimum": 1,
|
|
900
|
+
"maximum": 10,
|
|
901
|
+
"default": 3
|
|
902
|
+
}
|
|
903
|
+
},
|
|
904
|
+
"additionalProperties": false
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
},
|
|
908
|
+
"additionalProperties": false
|
|
909
|
+
}
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"name": "overlay.register_launcher",
|
|
913
|
+
"support": "supported",
|
|
914
|
+
"reason": null,
|
|
915
|
+
"capability_class": "privileged",
|
|
916
|
+
"portable": false,
|
|
917
|
+
"summary": "Register visible-page launcher buttons that can reopen an overlay later.",
|
|
918
|
+
"input_schema": {
|
|
919
|
+
"type": "object",
|
|
920
|
+
"properties": {
|
|
921
|
+
"html": {
|
|
922
|
+
"type": "string",
|
|
923
|
+
"description": "Inline HTML body or document markup to render later when a registered launcher is clicked. Use either html or template, not both."
|
|
924
|
+
},
|
|
925
|
+
"template": {
|
|
926
|
+
"type": "object",
|
|
927
|
+
"description": "Storage reference for a reusable overlay template. The runtime resolves it when the launcher opens.",
|
|
928
|
+
"required": [
|
|
929
|
+
"scope",
|
|
930
|
+
"path"
|
|
931
|
+
],
|
|
932
|
+
"properties": {
|
|
933
|
+
"scope": {
|
|
934
|
+
"type": "string",
|
|
935
|
+
"description": "Storage scope, such as public, private, or shared/name."
|
|
936
|
+
},
|
|
937
|
+
"path": {
|
|
938
|
+
"type": "string",
|
|
939
|
+
"description": "Path inside the scope, such as sites/example.com/overlays/report/template.html."
|
|
940
|
+
}
|
|
941
|
+
},
|
|
942
|
+
"additionalProperties": false
|
|
943
|
+
},
|
|
944
|
+
"data": {
|
|
945
|
+
"type": "object",
|
|
946
|
+
"description": "Optional storage reference for JSON data injected into a template as [data-actions-json-overlay-data].",
|
|
947
|
+
"required": [
|
|
948
|
+
"scope",
|
|
949
|
+
"path"
|
|
950
|
+
],
|
|
951
|
+
"properties": {
|
|
952
|
+
"scope": {
|
|
953
|
+
"type": "string"
|
|
954
|
+
},
|
|
955
|
+
"path": {
|
|
956
|
+
"type": "string"
|
|
957
|
+
}
|
|
958
|
+
},
|
|
959
|
+
"additionalProperties": false
|
|
960
|
+
},
|
|
961
|
+
"title": {
|
|
962
|
+
"type": "string",
|
|
963
|
+
"description": "Overlay title shown when the launcher opens the overlay."
|
|
964
|
+
},
|
|
965
|
+
"width": {
|
|
966
|
+
"type": "integer",
|
|
967
|
+
"minimum": 420,
|
|
968
|
+
"maximum": 1400
|
|
969
|
+
},
|
|
970
|
+
"height": {
|
|
971
|
+
"type": "integer",
|
|
972
|
+
"minimum": 320,
|
|
973
|
+
"maximum": 1000
|
|
974
|
+
},
|
|
975
|
+
"launchers": {
|
|
976
|
+
"type": "array",
|
|
977
|
+
"description": "Visible-page buttons that reopen this overlay from a relevant DOM anchor.",
|
|
978
|
+
"items": {
|
|
979
|
+
"type": "object",
|
|
980
|
+
"properties": {
|
|
981
|
+
"id": {
|
|
982
|
+
"type": "string",
|
|
983
|
+
"description": "Stable launcher id used to replace older buttons for the same overlay affordance."
|
|
984
|
+
},
|
|
985
|
+
"label": {
|
|
986
|
+
"type": "string",
|
|
987
|
+
"description": "Button text shown in the original page DOM."
|
|
988
|
+
},
|
|
989
|
+
"title": {
|
|
990
|
+
"type": "string",
|
|
991
|
+
"description": "Tooltip/title for the launcher button."
|
|
992
|
+
},
|
|
993
|
+
"selector": {
|
|
994
|
+
"type": "string",
|
|
995
|
+
"description": "Single CSS selector hint for the element to place the button near."
|
|
996
|
+
},
|
|
997
|
+
"selectors": {
|
|
998
|
+
"type": "array",
|
|
999
|
+
"items": {
|
|
1000
|
+
"type": "string"
|
|
1001
|
+
},
|
|
1002
|
+
"description": "Ordered CSS selector hints for the element to place the button near."
|
|
1003
|
+
},
|
|
1004
|
+
"text_contains": {
|
|
1005
|
+
"type": "string",
|
|
1006
|
+
"description": "Optional visible text filter for selected anchor candidates."
|
|
1007
|
+
},
|
|
1008
|
+
"text_equals": {
|
|
1009
|
+
"type": "string",
|
|
1010
|
+
"description": "Optional exact visible text filter for selected anchor candidates."
|
|
1011
|
+
},
|
|
1012
|
+
"url_contains": {
|
|
1013
|
+
"type": "string",
|
|
1014
|
+
"description": "Only install this launcher when the current page URL contains this string."
|
|
1015
|
+
},
|
|
1016
|
+
"url_matches": {
|
|
1017
|
+
"type": "string",
|
|
1018
|
+
"description": "Only install this launcher when the current page URL matches this regular expression."
|
|
1019
|
+
},
|
|
1020
|
+
"placement": {
|
|
1021
|
+
"type": "string",
|
|
1022
|
+
"enum": [
|
|
1023
|
+
"beforebegin",
|
|
1024
|
+
"afterbegin",
|
|
1025
|
+
"beforeend",
|
|
1026
|
+
"afterend"
|
|
1027
|
+
],
|
|
1028
|
+
"default": "afterend"
|
|
1029
|
+
},
|
|
1030
|
+
"max_instances": {
|
|
1031
|
+
"type": "integer",
|
|
1032
|
+
"minimum": 1,
|
|
1033
|
+
"maximum": 10,
|
|
1034
|
+
"default": 3
|
|
1035
|
+
}
|
|
1036
|
+
},
|
|
1037
|
+
"additionalProperties": false
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
},
|
|
1041
|
+
"required": [
|
|
1042
|
+
"launchers"
|
|
1043
|
+
],
|
|
1044
|
+
"additionalProperties": false
|
|
1045
|
+
}
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"name": "overlay.close",
|
|
1049
|
+
"support": "supported",
|
|
1050
|
+
"reason": null,
|
|
1051
|
+
"capability_class": "privileged",
|
|
1052
|
+
"portable": false,
|
|
1053
|
+
"summary": "Close the current actions.json overlay if one exists.",
|
|
1054
|
+
"input_schema": {
|
|
1055
|
+
"type": "object",
|
|
1056
|
+
"properties": {},
|
|
1057
|
+
"additionalProperties": false
|
|
1058
|
+
}
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
"name": "overlay.menu.hide",
|
|
1062
|
+
"summary": "Hide the actions.json menu overlay so it cannot intercept page clicks; pair with overlay.menu.show.",
|
|
1063
|
+
"description": "Hide the actions.json menu overlay so it cannot intercept clicks on page controls underneath. The overlay's open/collapsed state and position are preserved; call overlay.menu.show to restore it. Use the pattern hide -> perform the click sequence -> show to make clicks reliable when the overlay would otherwise sit over the target.",
|
|
1064
|
+
"support": "supported",
|
|
1065
|
+
"input_schema": {
|
|
1066
|
+
"type": "object",
|
|
1067
|
+
"properties": {},
|
|
1068
|
+
"additionalProperties": false
|
|
1069
|
+
},
|
|
1070
|
+
"x_actions": {
|
|
1071
|
+
"direction": "agent_to_html",
|
|
1072
|
+
"handler": "overlay.menu.hide",
|
|
1073
|
+
"scope": "active_surface",
|
|
1074
|
+
"source": {
|
|
1075
|
+
"files": [
|
|
1076
|
+
"src/content.js"
|
|
1077
|
+
],
|
|
1078
|
+
"symbols": [
|
|
1079
|
+
"overlay.menu.hide"
|
|
1080
|
+
],
|
|
1081
|
+
"selectors": [
|
|
1082
|
+
"#__actions_json_menu_overlay_host"
|
|
1083
|
+
],
|
|
1084
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"name": "overlay.menu.show",
|
|
1090
|
+
"summary": "Restore a hidden actions.json menu overlay to its prior position and state.",
|
|
1091
|
+
"description": "Restore a previously hidden actions.json menu overlay to exactly its prior position and state. Pairs with overlay.menu.hide.",
|
|
1092
|
+
"support": "supported",
|
|
1093
|
+
"input_schema": {
|
|
1094
|
+
"type": "object",
|
|
1095
|
+
"properties": {},
|
|
1096
|
+
"additionalProperties": false
|
|
1097
|
+
},
|
|
1098
|
+
"x_actions": {
|
|
1099
|
+
"direction": "agent_to_html",
|
|
1100
|
+
"handler": "overlay.menu.show",
|
|
1101
|
+
"scope": "active_surface",
|
|
1102
|
+
"source": {
|
|
1103
|
+
"files": [
|
|
1104
|
+
"src/content.js"
|
|
1105
|
+
],
|
|
1106
|
+
"symbols": [
|
|
1107
|
+
"overlay.menu.show"
|
|
1108
|
+
],
|
|
1109
|
+
"selectors": [
|
|
1110
|
+
"#__actions_json_menu_overlay_host"
|
|
1111
|
+
],
|
|
1112
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"name": "overlay.menu.collapse",
|
|
1118
|
+
"summary": "Collapse the actions.json menu overlay to a small handle.",
|
|
1119
|
+
"description": "Collapse the actions.json menu overlay to a small 42x42 handle so it occupies minimal space while remaining visible. Reversible with overlay.menu.expand.",
|
|
1120
|
+
"support": "supported",
|
|
1121
|
+
"input_schema": {
|
|
1122
|
+
"type": "object",
|
|
1123
|
+
"properties": {},
|
|
1124
|
+
"additionalProperties": false
|
|
1125
|
+
},
|
|
1126
|
+
"x_actions": {
|
|
1127
|
+
"direction": "agent_to_html",
|
|
1128
|
+
"handler": "overlay.menu.collapse",
|
|
1129
|
+
"scope": "active_surface",
|
|
1130
|
+
"source": {
|
|
1131
|
+
"files": [
|
|
1132
|
+
"src/content.js"
|
|
1133
|
+
],
|
|
1134
|
+
"symbols": [
|
|
1135
|
+
"overlay.menu.collapse"
|
|
1136
|
+
],
|
|
1137
|
+
"selectors": [
|
|
1138
|
+
"#__actions_json_menu_overlay_host"
|
|
1139
|
+
],
|
|
1140
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
},
|
|
1144
|
+
{
|
|
1145
|
+
"name": "overlay.menu.expand",
|
|
1146
|
+
"summary": "Expand the actions.json menu overlay from its collapsed handle.",
|
|
1147
|
+
"description": "Expand the actions.json menu overlay back to its full size from the collapsed handle.",
|
|
1148
|
+
"support": "supported",
|
|
1149
|
+
"input_schema": {
|
|
1150
|
+
"type": "object",
|
|
1151
|
+
"properties": {},
|
|
1152
|
+
"additionalProperties": false
|
|
1153
|
+
},
|
|
1154
|
+
"x_actions": {
|
|
1155
|
+
"direction": "agent_to_html",
|
|
1156
|
+
"handler": "overlay.menu.expand",
|
|
1157
|
+
"scope": "active_surface",
|
|
1158
|
+
"source": {
|
|
1159
|
+
"files": [
|
|
1160
|
+
"src/content.js"
|
|
1161
|
+
],
|
|
1162
|
+
"symbols": [
|
|
1163
|
+
"overlay.menu.expand"
|
|
1164
|
+
],
|
|
1165
|
+
"selectors": [
|
|
1166
|
+
"#__actions_json_menu_overlay_host"
|
|
1167
|
+
],
|
|
1168
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1169
|
+
}
|
|
1170
|
+
}
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
"name": "overlay.menu.move",
|
|
1174
|
+
"summary": "Move the actions.json menu overlay to a corner or explicit coordinates.",
|
|
1175
|
+
"description": "Move the actions.json menu overlay out of the way. Pass corner as one of top-left, top-right, bottom-left, bottom-right, or pass explicit numeric left and top viewport coordinates.",
|
|
1176
|
+
"support": "supported",
|
|
1177
|
+
"input_schema": {
|
|
1178
|
+
"type": "object",
|
|
1179
|
+
"properties": {
|
|
1180
|
+
"corner": {
|
|
1181
|
+
"type": "string",
|
|
1182
|
+
"enum": [
|
|
1183
|
+
"top-left",
|
|
1184
|
+
"top-right",
|
|
1185
|
+
"bottom-left",
|
|
1186
|
+
"bottom-right"
|
|
1187
|
+
]
|
|
1188
|
+
},
|
|
1189
|
+
"left": {
|
|
1190
|
+
"type": "number"
|
|
1191
|
+
},
|
|
1192
|
+
"top": {
|
|
1193
|
+
"type": "number"
|
|
1194
|
+
}
|
|
1195
|
+
},
|
|
1196
|
+
"additionalProperties": false
|
|
1197
|
+
},
|
|
1198
|
+
"x_actions": {
|
|
1199
|
+
"direction": "agent_to_html",
|
|
1200
|
+
"handler": "overlay.menu.move",
|
|
1201
|
+
"scope": "active_surface",
|
|
1202
|
+
"source": {
|
|
1203
|
+
"files": [
|
|
1204
|
+
"src/content.js"
|
|
1205
|
+
],
|
|
1206
|
+
"symbols": [
|
|
1207
|
+
"overlay.menu.move"
|
|
1208
|
+
],
|
|
1209
|
+
"selectors": [
|
|
1210
|
+
"#__actions_json_menu_overlay_host"
|
|
1211
|
+
],
|
|
1212
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
"name": "task.add",
|
|
1218
|
+
"summary": "Add task(s) to the agent task queue.",
|
|
1219
|
+
"support": "supported",
|
|
1220
|
+
"description": "Add one or more tasks to the in-session task queue. Pass a single task as text, or many as a tasks array of strings. Use this to externalize a multi-step plan so you do not have to hold the whole loop in memory: enqueue every step first, then pull them one at a time with task.next.",
|
|
1221
|
+
"input_schema": {
|
|
1222
|
+
"type": "object",
|
|
1223
|
+
"properties": {
|
|
1224
|
+
"text": {
|
|
1225
|
+
"type": "string",
|
|
1226
|
+
"description": "A single task description."
|
|
1227
|
+
},
|
|
1228
|
+
"tasks": {
|
|
1229
|
+
"type": "array",
|
|
1230
|
+
"items": {
|
|
1231
|
+
"type": "string"
|
|
1232
|
+
},
|
|
1233
|
+
"description": "Multiple task descriptions to enqueue in order."
|
|
1234
|
+
}
|
|
1235
|
+
},
|
|
1236
|
+
"additionalProperties": false
|
|
1237
|
+
},
|
|
1238
|
+
"x_actions": {
|
|
1239
|
+
"direction": "agent_to_html",
|
|
1240
|
+
"handler": "task.add",
|
|
1241
|
+
"scope": "active_surface",
|
|
1242
|
+
"source": {
|
|
1243
|
+
"files": [
|
|
1244
|
+
"src/content.js"
|
|
1245
|
+
],
|
|
1246
|
+
"symbols": [
|
|
1247
|
+
"task.add"
|
|
1248
|
+
],
|
|
1249
|
+
"component": "ActionsJsonTaskQueue"
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"name": "task.next",
|
|
1255
|
+
"summary": "Get the next task from the queue.",
|
|
1256
|
+
"support": "supported",
|
|
1257
|
+
"description": "Pull the next pending task from the queue and mark it in progress. Returns {done:false, task, remaining} while work remains, or {done:true, remaining:0, ...summary} when the queue is empty (including a summary of every completed and failed task to ground your final report). After finishing a task, call task.complete, then task.next again.",
|
|
1258
|
+
"input_schema": {
|
|
1259
|
+
"type": "object",
|
|
1260
|
+
"properties": {},
|
|
1261
|
+
"additionalProperties": false
|
|
1262
|
+
},
|
|
1263
|
+
"x_actions": {
|
|
1264
|
+
"direction": "agent_to_html",
|
|
1265
|
+
"handler": "task.next",
|
|
1266
|
+
"scope": "active_surface",
|
|
1267
|
+
"source": {
|
|
1268
|
+
"files": [
|
|
1269
|
+
"src/content.js"
|
|
1270
|
+
],
|
|
1271
|
+
"symbols": [
|
|
1272
|
+
"task.next"
|
|
1273
|
+
],
|
|
1274
|
+
"component": "ActionsJsonTaskQueue"
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
},
|
|
1278
|
+
{
|
|
1279
|
+
"name": "task.complete",
|
|
1280
|
+
"summary": "Mark the current task complete (or failed).",
|
|
1281
|
+
"support": "supported",
|
|
1282
|
+
"description": "Report the in-progress task as finished. Optionally pass id to target a specific task, status \"failed\" if it could not be done, and result with a short outcome note. Then call task.next for the following task.",
|
|
1283
|
+
"input_schema": {
|
|
1284
|
+
"type": "object",
|
|
1285
|
+
"properties": {
|
|
1286
|
+
"id": {
|
|
1287
|
+
"type": "string",
|
|
1288
|
+
"description": "Task id to complete; defaults to the in-progress task."
|
|
1289
|
+
},
|
|
1290
|
+
"status": {
|
|
1291
|
+
"type": "string",
|
|
1292
|
+
"enum": [
|
|
1293
|
+
"done",
|
|
1294
|
+
"failed"
|
|
1295
|
+
],
|
|
1296
|
+
"description": "Outcome; defaults to done."
|
|
1297
|
+
},
|
|
1298
|
+
"result": {
|
|
1299
|
+
"type": "string",
|
|
1300
|
+
"description": "Short note on the outcome."
|
|
1301
|
+
}
|
|
1302
|
+
},
|
|
1303
|
+
"additionalProperties": false
|
|
1304
|
+
},
|
|
1305
|
+
"x_actions": {
|
|
1306
|
+
"direction": "agent_to_html",
|
|
1307
|
+
"handler": "task.complete",
|
|
1308
|
+
"scope": "active_surface",
|
|
1309
|
+
"source": {
|
|
1310
|
+
"files": [
|
|
1311
|
+
"src/content.js"
|
|
1312
|
+
],
|
|
1313
|
+
"symbols": [
|
|
1314
|
+
"task.complete"
|
|
1315
|
+
],
|
|
1316
|
+
"component": "ActionsJsonTaskQueue"
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"name": "task.list",
|
|
1322
|
+
"summary": "List all tasks and their status.",
|
|
1323
|
+
"support": "supported",
|
|
1324
|
+
"description": "Return the full task queue with each task id, text, status, and result, plus counts of completed/failed/pending. Use to review progress without changing state.",
|
|
1325
|
+
"input_schema": {
|
|
1326
|
+
"type": "object",
|
|
1327
|
+
"properties": {},
|
|
1328
|
+
"additionalProperties": false
|
|
1329
|
+
},
|
|
1330
|
+
"x_actions": {
|
|
1331
|
+
"direction": "agent_to_html",
|
|
1332
|
+
"handler": "task.list",
|
|
1333
|
+
"scope": "active_surface",
|
|
1334
|
+
"source": {
|
|
1335
|
+
"files": [
|
|
1336
|
+
"src/content.js"
|
|
1337
|
+
],
|
|
1338
|
+
"symbols": [
|
|
1339
|
+
"task.list"
|
|
1340
|
+
],
|
|
1341
|
+
"component": "ActionsJsonTaskQueue"
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
},
|
|
1345
|
+
{
|
|
1346
|
+
"name": "task.clear",
|
|
1347
|
+
"summary": "Clear the task queue.",
|
|
1348
|
+
"support": "supported",
|
|
1349
|
+
"description": "Remove all tasks from the queue and reset it. Use before seeding a fresh plan.",
|
|
1350
|
+
"input_schema": {
|
|
1351
|
+
"type": "object",
|
|
1352
|
+
"properties": {},
|
|
1353
|
+
"additionalProperties": false
|
|
1354
|
+
},
|
|
1355
|
+
"x_actions": {
|
|
1356
|
+
"direction": "agent_to_html",
|
|
1357
|
+
"handler": "task.clear",
|
|
1358
|
+
"scope": "active_surface",
|
|
1359
|
+
"source": {
|
|
1360
|
+
"files": [
|
|
1361
|
+
"src/content.js"
|
|
1362
|
+
],
|
|
1363
|
+
"symbols": [
|
|
1364
|
+
"task.clear"
|
|
1365
|
+
],
|
|
1366
|
+
"component": "ActionsJsonTaskQueue"
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
]
|
|
1371
|
+
},
|
|
1372
|
+
"prompt": {
|
|
1373
|
+
"title": "Browser overlay runtime",
|
|
1374
|
+
"instructions": "Use overlay.open to present an agent-created HTML document as a temporary draggable, resizable, minimizable overlay on the current page. For reusable overlays, prefer a storage-backed template reference plus a JSON data reference so shared template code can stay separate from private user data. The template receives the parsed data through a script tag marked data-actions-json-overlay-data. Prefer supplying launchers that integrate visible reopen buttons into the relevant original DOM context. Launchers are conditional registrations: they may be declared before their target DOM is visible, then installed when URL and DOM predicates match. Do not use this action for credential capture, deceptive UI, or persistent page modification.",
|
|
1375
|
+
"source": {
|
|
1376
|
+
"files": [
|
|
1377
|
+
"src/content.js"
|
|
1378
|
+
],
|
|
1379
|
+
"symbols": [
|
|
1380
|
+
"actionsJsonOverlay.openHtml"
|
|
1381
|
+
],
|
|
1382
|
+
"selectors": [
|
|
1383
|
+
"#__actions_json_overlay_runtime_host"
|
|
1384
|
+
]
|
|
1385
|
+
}
|
|
1386
|
+
},
|
|
1387
|
+
"tools": [
|
|
1388
|
+
{
|
|
1389
|
+
"name": "overlay.open",
|
|
1390
|
+
"description": "Render an inline HTML document or a storage-backed template/data overlay in a draggable, resizable, and minimizable popup on the authorized browser tab. Use template plus data when the visual template should be reusable and the user data should remain in a separate private JSON file. Registered launchers can coexist and reattach independently when SPA navigation brings their matching context into view.",
|
|
1391
|
+
"input_schema": {
|
|
1392
|
+
"type": "object",
|
|
1393
|
+
"properties": {
|
|
1394
|
+
"html": {
|
|
1395
|
+
"type": "string",
|
|
1396
|
+
"description": "Inline HTML body or document markup to render inside the overlay. Use either html or template, not both."
|
|
1397
|
+
},
|
|
1398
|
+
"template": {
|
|
1399
|
+
"type": "object",
|
|
1400
|
+
"description": "Storage reference for a reusable overlay template. The runtime resolves it from the uploaded actions.json.storage bundle.",
|
|
1401
|
+
"required": [
|
|
1402
|
+
"scope",
|
|
1403
|
+
"path"
|
|
1404
|
+
],
|
|
1405
|
+
"properties": {
|
|
1406
|
+
"scope": {
|
|
1407
|
+
"type": "string",
|
|
1408
|
+
"description": "Storage scope, such as public, private, or shared/name."
|
|
1409
|
+
},
|
|
1410
|
+
"path": {
|
|
1411
|
+
"type": "string",
|
|
1412
|
+
"description": "Path inside the scope, such as sites/example.com/overlays/report/template.html."
|
|
1413
|
+
}
|
|
1414
|
+
},
|
|
1415
|
+
"additionalProperties": false
|
|
1416
|
+
},
|
|
1417
|
+
"data": {
|
|
1418
|
+
"type": "object",
|
|
1419
|
+
"description": "Optional storage reference for JSON data injected into a template as [data-actions-json-overlay-data]. Commonly private data with a public template.",
|
|
1420
|
+
"required": [
|
|
1421
|
+
"scope",
|
|
1422
|
+
"path"
|
|
1423
|
+
],
|
|
1424
|
+
"properties": {
|
|
1425
|
+
"scope": {
|
|
1426
|
+
"type": "string"
|
|
1427
|
+
},
|
|
1428
|
+
"path": {
|
|
1429
|
+
"type": "string"
|
|
1430
|
+
}
|
|
1431
|
+
},
|
|
1432
|
+
"additionalProperties": false
|
|
1433
|
+
},
|
|
1434
|
+
"title": {
|
|
1435
|
+
"type": "string",
|
|
1436
|
+
"description": "Overlay title shown in the drag handle."
|
|
1437
|
+
},
|
|
1438
|
+
"width": {
|
|
1439
|
+
"type": "integer",
|
|
1440
|
+
"minimum": 420,
|
|
1441
|
+
"maximum": 1400
|
|
1442
|
+
},
|
|
1443
|
+
"height": {
|
|
1444
|
+
"type": "integer",
|
|
1445
|
+
"minimum": 320,
|
|
1446
|
+
"maximum": 1000
|
|
1447
|
+
},
|
|
1448
|
+
"launchers": {
|
|
1449
|
+
"type": "array",
|
|
1450
|
+
"description": "Optional visible-page buttons that reopen this overlay from a relevant DOM anchor.",
|
|
1451
|
+
"items": {
|
|
1452
|
+
"type": "object",
|
|
1453
|
+
"properties": {
|
|
1454
|
+
"id": {
|
|
1455
|
+
"type": "string",
|
|
1456
|
+
"description": "Stable launcher id used to replace older buttons for the same overlay affordance."
|
|
1457
|
+
},
|
|
1458
|
+
"label": {
|
|
1459
|
+
"type": "string",
|
|
1460
|
+
"description": "Button text shown in the original page DOM."
|
|
1461
|
+
},
|
|
1462
|
+
"title": {
|
|
1463
|
+
"type": "string",
|
|
1464
|
+
"description": "Tooltip/title for the launcher button."
|
|
1465
|
+
},
|
|
1466
|
+
"selector": {
|
|
1467
|
+
"type": "string",
|
|
1468
|
+
"description": "Single CSS selector hint for the element to place the button near."
|
|
1469
|
+
},
|
|
1470
|
+
"selectors": {
|
|
1471
|
+
"type": "array",
|
|
1472
|
+
"items": {
|
|
1473
|
+
"type": "string"
|
|
1474
|
+
},
|
|
1475
|
+
"description": "Ordered CSS selector hints for the element to place the button near."
|
|
1476
|
+
},
|
|
1477
|
+
"text_contains": {
|
|
1478
|
+
"type": "string",
|
|
1479
|
+
"description": "Optional visible text filter for selected anchor candidates, such as ACT-5 or Continue Watching."
|
|
1480
|
+
},
|
|
1481
|
+
"text_equals": {
|
|
1482
|
+
"type": "string",
|
|
1483
|
+
"description": "Optional exact visible text filter for selected anchor candidates."
|
|
1484
|
+
},
|
|
1485
|
+
"url_contains": {
|
|
1486
|
+
"type": "string",
|
|
1487
|
+
"description": "Only install this launcher when the current page URL contains this string."
|
|
1488
|
+
},
|
|
1489
|
+
"url_matches": {
|
|
1490
|
+
"type": "string",
|
|
1491
|
+
"description": "Only install this launcher when the current page URL matches this regular expression."
|
|
1492
|
+
},
|
|
1493
|
+
"placement": {
|
|
1494
|
+
"type": "string",
|
|
1495
|
+
"enum": [
|
|
1496
|
+
"beforebegin",
|
|
1497
|
+
"afterbegin",
|
|
1498
|
+
"beforeend",
|
|
1499
|
+
"afterend"
|
|
1500
|
+
],
|
|
1501
|
+
"default": "afterend"
|
|
1502
|
+
},
|
|
1503
|
+
"max_instances": {
|
|
1504
|
+
"type": "integer",
|
|
1505
|
+
"minimum": 1,
|
|
1506
|
+
"maximum": 10,
|
|
1507
|
+
"default": 3
|
|
1508
|
+
}
|
|
1509
|
+
},
|
|
1510
|
+
"additionalProperties": false
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
},
|
|
1514
|
+
"additionalProperties": false
|
|
1515
|
+
},
|
|
1516
|
+
"x_actions": {
|
|
1517
|
+
"direction": "agent_to_html",
|
|
1518
|
+
"handler": "actionsJsonOverlay.openHtml",
|
|
1519
|
+
"scope": "active_surface",
|
|
1520
|
+
"source": {
|
|
1521
|
+
"files": [
|
|
1522
|
+
"src/content.js"
|
|
1523
|
+
],
|
|
1524
|
+
"symbols": [
|
|
1525
|
+
"actionsJsonOverlay.openHtml"
|
|
1526
|
+
],
|
|
1527
|
+
"selectors": [
|
|
1528
|
+
"#__actions_json_overlay_runtime_host"
|
|
1529
|
+
],
|
|
1530
|
+
"component": "ActionsJsonOverlay"
|
|
1531
|
+
},
|
|
1532
|
+
"result_schema": {
|
|
1533
|
+
"type": "object",
|
|
1534
|
+
"properties": {
|
|
1535
|
+
"ok": {
|
|
1536
|
+
"type": "boolean"
|
|
1537
|
+
},
|
|
1538
|
+
"overlay_id": {
|
|
1539
|
+
"type": "string"
|
|
1540
|
+
},
|
|
1541
|
+
"launchers": {
|
|
1542
|
+
"type": "array",
|
|
1543
|
+
"items": {
|
|
1544
|
+
"type": "object",
|
|
1545
|
+
"properties": {
|
|
1546
|
+
"launcher_id": {
|
|
1547
|
+
"type": "string"
|
|
1548
|
+
},
|
|
1549
|
+
"placement": {
|
|
1550
|
+
"type": "string"
|
|
1551
|
+
},
|
|
1552
|
+
"target_text": {
|
|
1553
|
+
"type": "string"
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
},
|
|
1559
|
+
"required": [
|
|
1560
|
+
"ok"
|
|
1561
|
+
]
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
},
|
|
1565
|
+
{
|
|
1566
|
+
"name": "overlay.register_launcher",
|
|
1567
|
+
"description": "Register visible-page launcher buttons that can reopen an overlay later without opening the overlay immediately. Use this when the page should gain a contextual affordance, such as a Categories button beside a carousel heading, while leaving the overlay closed until the user clicks it.",
|
|
1568
|
+
"input_schema": {
|
|
1569
|
+
"type": "object",
|
|
1570
|
+
"properties": {
|
|
1571
|
+
"html": {
|
|
1572
|
+
"type": "string",
|
|
1573
|
+
"description": "Inline HTML body or document markup to render later when a registered launcher is clicked. Use either html or template, not both."
|
|
1574
|
+
},
|
|
1575
|
+
"template": {
|
|
1576
|
+
"type": "object",
|
|
1577
|
+
"description": "Storage reference for a reusable overlay template. The runtime resolves it when the launcher opens.",
|
|
1578
|
+
"required": [
|
|
1579
|
+
"scope",
|
|
1580
|
+
"path"
|
|
1581
|
+
],
|
|
1582
|
+
"properties": {
|
|
1583
|
+
"scope": {
|
|
1584
|
+
"type": "string",
|
|
1585
|
+
"description": "Storage scope, such as public, private, or shared/name."
|
|
1586
|
+
},
|
|
1587
|
+
"path": {
|
|
1588
|
+
"type": "string",
|
|
1589
|
+
"description": "Path inside the scope, such as sites/example.com/overlays/report/template.html."
|
|
1590
|
+
}
|
|
1591
|
+
},
|
|
1592
|
+
"additionalProperties": false
|
|
1593
|
+
},
|
|
1594
|
+
"data": {
|
|
1595
|
+
"type": "object",
|
|
1596
|
+
"description": "Optional storage reference for JSON data injected into a template as [data-actions-json-overlay-data].",
|
|
1597
|
+
"required": [
|
|
1598
|
+
"scope",
|
|
1599
|
+
"path"
|
|
1600
|
+
],
|
|
1601
|
+
"properties": {
|
|
1602
|
+
"scope": {
|
|
1603
|
+
"type": "string"
|
|
1604
|
+
},
|
|
1605
|
+
"path": {
|
|
1606
|
+
"type": "string"
|
|
1607
|
+
}
|
|
1608
|
+
},
|
|
1609
|
+
"additionalProperties": false
|
|
1610
|
+
},
|
|
1611
|
+
"title": {
|
|
1612
|
+
"type": "string",
|
|
1613
|
+
"description": "Overlay title shown when the launcher opens the overlay."
|
|
1614
|
+
},
|
|
1615
|
+
"width": {
|
|
1616
|
+
"type": "integer",
|
|
1617
|
+
"minimum": 420,
|
|
1618
|
+
"maximum": 1400
|
|
1619
|
+
},
|
|
1620
|
+
"height": {
|
|
1621
|
+
"type": "integer",
|
|
1622
|
+
"minimum": 320,
|
|
1623
|
+
"maximum": 1000
|
|
1624
|
+
},
|
|
1625
|
+
"launchers": {
|
|
1626
|
+
"type": "array",
|
|
1627
|
+
"description": "Visible-page buttons that reopen this overlay from a relevant DOM anchor.",
|
|
1628
|
+
"items": {
|
|
1629
|
+
"type": "object",
|
|
1630
|
+
"properties": {
|
|
1631
|
+
"id": {
|
|
1632
|
+
"type": "string",
|
|
1633
|
+
"description": "Stable launcher id used to replace older buttons for the same overlay affordance."
|
|
1634
|
+
},
|
|
1635
|
+
"label": {
|
|
1636
|
+
"type": "string",
|
|
1637
|
+
"description": "Button text shown in the original page DOM."
|
|
1638
|
+
},
|
|
1639
|
+
"title": {
|
|
1640
|
+
"type": "string",
|
|
1641
|
+
"description": "Tooltip/title for the launcher button."
|
|
1642
|
+
},
|
|
1643
|
+
"selector": {
|
|
1644
|
+
"type": "string",
|
|
1645
|
+
"description": "Single CSS selector hint for the element to place the button near."
|
|
1646
|
+
},
|
|
1647
|
+
"selectors": {
|
|
1648
|
+
"type": "array",
|
|
1649
|
+
"items": {
|
|
1650
|
+
"type": "string"
|
|
1651
|
+
},
|
|
1652
|
+
"description": "Ordered CSS selector hints for the element to place the button near."
|
|
1653
|
+
},
|
|
1654
|
+
"text_contains": {
|
|
1655
|
+
"type": "string",
|
|
1656
|
+
"description": "Optional visible text filter for selected anchor candidates, such as ACT-5 or Continue Watching."
|
|
1657
|
+
},
|
|
1658
|
+
"text_equals": {
|
|
1659
|
+
"type": "string",
|
|
1660
|
+
"description": "Optional exact visible text filter for selected anchor candidates."
|
|
1661
|
+
},
|
|
1662
|
+
"url_contains": {
|
|
1663
|
+
"type": "string",
|
|
1664
|
+
"description": "Only install this launcher when the current page URL contains this string."
|
|
1665
|
+
},
|
|
1666
|
+
"url_matches": {
|
|
1667
|
+
"type": "string",
|
|
1668
|
+
"description": "Only install this launcher when the current page URL matches this regular expression."
|
|
1669
|
+
},
|
|
1670
|
+
"placement": {
|
|
1671
|
+
"type": "string",
|
|
1672
|
+
"enum": [
|
|
1673
|
+
"beforebegin",
|
|
1674
|
+
"afterbegin",
|
|
1675
|
+
"beforeend",
|
|
1676
|
+
"afterend"
|
|
1677
|
+
],
|
|
1678
|
+
"default": "afterend"
|
|
1679
|
+
},
|
|
1680
|
+
"max_instances": {
|
|
1681
|
+
"type": "integer",
|
|
1682
|
+
"minimum": 1,
|
|
1683
|
+
"maximum": 10,
|
|
1684
|
+
"default": 3
|
|
1685
|
+
}
|
|
1686
|
+
},
|
|
1687
|
+
"additionalProperties": false
|
|
1688
|
+
}
|
|
1689
|
+
}
|
|
1690
|
+
},
|
|
1691
|
+
"required": [
|
|
1692
|
+
"launchers"
|
|
1693
|
+
],
|
|
1694
|
+
"additionalProperties": false
|
|
1695
|
+
},
|
|
1696
|
+
"x_actions": {
|
|
1697
|
+
"direction": "agent_to_html",
|
|
1698
|
+
"handler": "actionsJsonOverlay.registerLauncher",
|
|
1699
|
+
"scope": "active_surface",
|
|
1700
|
+
"source": {
|
|
1701
|
+
"files": [
|
|
1702
|
+
"src/content.js"
|
|
1703
|
+
],
|
|
1704
|
+
"symbols": [
|
|
1705
|
+
"actionsJsonOverlay.registerLauncher"
|
|
1706
|
+
],
|
|
1707
|
+
"selectors": [
|
|
1708
|
+
"[data-actions-json-overlay-launcher]"
|
|
1709
|
+
],
|
|
1710
|
+
"component": "ActionsJsonOverlay"
|
|
1711
|
+
},
|
|
1712
|
+
"result_schema": {
|
|
1713
|
+
"type": "object",
|
|
1714
|
+
"properties": {
|
|
1715
|
+
"ok": {
|
|
1716
|
+
"type": "boolean"
|
|
1717
|
+
},
|
|
1718
|
+
"overlay_id": {
|
|
1719
|
+
"type": "string"
|
|
1720
|
+
},
|
|
1721
|
+
"launchers": {
|
|
1722
|
+
"type": "array",
|
|
1723
|
+
"items": {
|
|
1724
|
+
"type": "object",
|
|
1725
|
+
"properties": {
|
|
1726
|
+
"launcher_id": {
|
|
1727
|
+
"type": "string"
|
|
1728
|
+
},
|
|
1729
|
+
"placement": {
|
|
1730
|
+
"type": "string"
|
|
1731
|
+
},
|
|
1732
|
+
"target_text": {
|
|
1733
|
+
"type": "string"
|
|
1734
|
+
}
|
|
1735
|
+
}
|
|
1736
|
+
}
|
|
1737
|
+
}
|
|
1738
|
+
},
|
|
1739
|
+
"required": [
|
|
1740
|
+
"ok"
|
|
1741
|
+
]
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
},
|
|
1745
|
+
{
|
|
1746
|
+
"name": "overlay.close",
|
|
1747
|
+
"description": "Close the current actions.json overlay if one exists.",
|
|
1748
|
+
"input_schema": {
|
|
1749
|
+
"type": "object",
|
|
1750
|
+
"properties": {},
|
|
1751
|
+
"additionalProperties": false
|
|
1752
|
+
},
|
|
1753
|
+
"x_actions": {
|
|
1754
|
+
"direction": "agent_to_html",
|
|
1755
|
+
"handler": "actionsJsonOverlay.close",
|
|
1756
|
+
"scope": "active_surface",
|
|
1757
|
+
"source": {
|
|
1758
|
+
"files": [
|
|
1759
|
+
"src/content.js"
|
|
1760
|
+
],
|
|
1761
|
+
"symbols": [
|
|
1762
|
+
"actionsJsonOverlay.close"
|
|
1763
|
+
],
|
|
1764
|
+
"selectors": [
|
|
1765
|
+
"#__actions_json_overlay_runtime_host"
|
|
1766
|
+
],
|
|
1767
|
+
"component": "ActionsJsonOverlay"
|
|
1768
|
+
}
|
|
1769
|
+
}
|
|
1770
|
+
},
|
|
1771
|
+
{
|
|
1772
|
+
"name": "overlay.menu.hide",
|
|
1773
|
+
"description": "Hide the actions.json menu overlay so it cannot intercept clicks on page controls underneath. The overlay's open/collapsed state and position are preserved; call overlay.menu.show to restore it. Use the pattern hide -> perform the click sequence -> show to make clicks reliable when the overlay would otherwise sit over the target.",
|
|
1774
|
+
"input_schema": {
|
|
1775
|
+
"type": "object",
|
|
1776
|
+
"properties": {},
|
|
1777
|
+
"additionalProperties": false
|
|
1778
|
+
},
|
|
1779
|
+
"x_actions": {
|
|
1780
|
+
"direction": "agent_to_html",
|
|
1781
|
+
"handler": "overlay.menu.hide",
|
|
1782
|
+
"scope": "active_surface",
|
|
1783
|
+
"source": {
|
|
1784
|
+
"files": [
|
|
1785
|
+
"src/content.js"
|
|
1786
|
+
],
|
|
1787
|
+
"symbols": [
|
|
1788
|
+
"overlay.menu.hide"
|
|
1789
|
+
],
|
|
1790
|
+
"selectors": [
|
|
1791
|
+
"#__actions_json_menu_overlay_host"
|
|
1792
|
+
],
|
|
1793
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
"name": "overlay.menu.show",
|
|
1799
|
+
"description": "Restore a previously hidden actions.json menu overlay to exactly its prior position and state. Pairs with overlay.menu.hide.",
|
|
1800
|
+
"input_schema": {
|
|
1801
|
+
"type": "object",
|
|
1802
|
+
"properties": {},
|
|
1803
|
+
"additionalProperties": false
|
|
1804
|
+
},
|
|
1805
|
+
"x_actions": {
|
|
1806
|
+
"direction": "agent_to_html",
|
|
1807
|
+
"handler": "overlay.menu.show",
|
|
1808
|
+
"scope": "active_surface",
|
|
1809
|
+
"source": {
|
|
1810
|
+
"files": [
|
|
1811
|
+
"src/content.js"
|
|
1812
|
+
],
|
|
1813
|
+
"symbols": [
|
|
1814
|
+
"overlay.menu.show"
|
|
1815
|
+
],
|
|
1816
|
+
"selectors": [
|
|
1817
|
+
"#__actions_json_menu_overlay_host"
|
|
1818
|
+
],
|
|
1819
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
},
|
|
1823
|
+
{
|
|
1824
|
+
"name": "overlay.menu.collapse",
|
|
1825
|
+
"description": "Collapse the actions.json menu overlay to a small 42x42 handle so it occupies minimal space while remaining visible. Reversible with overlay.menu.expand.",
|
|
1826
|
+
"input_schema": {
|
|
1827
|
+
"type": "object",
|
|
1828
|
+
"properties": {},
|
|
1829
|
+
"additionalProperties": false
|
|
1830
|
+
},
|
|
1831
|
+
"x_actions": {
|
|
1832
|
+
"direction": "agent_to_html",
|
|
1833
|
+
"handler": "overlay.menu.collapse",
|
|
1834
|
+
"scope": "active_surface",
|
|
1835
|
+
"source": {
|
|
1836
|
+
"files": [
|
|
1837
|
+
"src/content.js"
|
|
1838
|
+
],
|
|
1839
|
+
"symbols": [
|
|
1840
|
+
"overlay.menu.collapse"
|
|
1841
|
+
],
|
|
1842
|
+
"selectors": [
|
|
1843
|
+
"#__actions_json_menu_overlay_host"
|
|
1844
|
+
],
|
|
1845
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1846
|
+
}
|
|
1847
|
+
}
|
|
1848
|
+
},
|
|
1849
|
+
{
|
|
1850
|
+
"name": "overlay.menu.expand",
|
|
1851
|
+
"description": "Expand the actions.json menu overlay back to its full size from the collapsed handle.",
|
|
1852
|
+
"input_schema": {
|
|
1853
|
+
"type": "object",
|
|
1854
|
+
"properties": {},
|
|
1855
|
+
"additionalProperties": false
|
|
1856
|
+
},
|
|
1857
|
+
"x_actions": {
|
|
1858
|
+
"direction": "agent_to_html",
|
|
1859
|
+
"handler": "overlay.menu.expand",
|
|
1860
|
+
"scope": "active_surface",
|
|
1861
|
+
"source": {
|
|
1862
|
+
"files": [
|
|
1863
|
+
"src/content.js"
|
|
1864
|
+
],
|
|
1865
|
+
"symbols": [
|
|
1866
|
+
"overlay.menu.expand"
|
|
1867
|
+
],
|
|
1868
|
+
"selectors": [
|
|
1869
|
+
"#__actions_json_menu_overlay_host"
|
|
1870
|
+
],
|
|
1871
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1872
|
+
}
|
|
1873
|
+
}
|
|
1874
|
+
},
|
|
1875
|
+
{
|
|
1876
|
+
"name": "overlay.menu.move",
|
|
1877
|
+
"description": "Move the actions.json menu overlay out of the way. Pass corner as one of top-left, top-right, bottom-left, bottom-right, or pass explicit numeric left and top viewport coordinates.",
|
|
1878
|
+
"input_schema": {
|
|
1879
|
+
"type": "object",
|
|
1880
|
+
"properties": {
|
|
1881
|
+
"corner": {
|
|
1882
|
+
"type": "string",
|
|
1883
|
+
"enum": [
|
|
1884
|
+
"top-left",
|
|
1885
|
+
"top-right",
|
|
1886
|
+
"bottom-left",
|
|
1887
|
+
"bottom-right"
|
|
1888
|
+
]
|
|
1889
|
+
},
|
|
1890
|
+
"left": {
|
|
1891
|
+
"type": "number"
|
|
1892
|
+
},
|
|
1893
|
+
"top": {
|
|
1894
|
+
"type": "number"
|
|
1895
|
+
}
|
|
1896
|
+
},
|
|
1897
|
+
"additionalProperties": false
|
|
1898
|
+
},
|
|
1899
|
+
"x_actions": {
|
|
1900
|
+
"direction": "agent_to_html",
|
|
1901
|
+
"handler": "overlay.menu.move",
|
|
1902
|
+
"scope": "active_surface",
|
|
1903
|
+
"source": {
|
|
1904
|
+
"files": [
|
|
1905
|
+
"src/content.js"
|
|
1906
|
+
],
|
|
1907
|
+
"symbols": [
|
|
1908
|
+
"overlay.menu.move"
|
|
1909
|
+
],
|
|
1910
|
+
"selectors": [
|
|
1911
|
+
"#__actions_json_menu_overlay_host"
|
|
1912
|
+
],
|
|
1913
|
+
"component": "ActionsJsonMenuOverlay"
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
},
|
|
1917
|
+
{
|
|
1918
|
+
"name": "runtime.configure_pacing",
|
|
1919
|
+
"description": "Configure the minimum start-to-start interval between human-observable interaction actions for this runtime session. Defaults to 500ms so fast request bursts are accepted but clicks, pointer moves, typing, and scrolls execute at a human-paced rhythm. DOM reads and storage/overlay operations are not delayed.",
|
|
1920
|
+
"input_schema": {
|
|
1921
|
+
"type": "object",
|
|
1922
|
+
"properties": {
|
|
1923
|
+
"min_interval_ms": {
|
|
1924
|
+
"type": "integer",
|
|
1925
|
+
"minimum": 0,
|
|
1926
|
+
"maximum": 10000,
|
|
1927
|
+
"default": 500
|
|
1928
|
+
}
|
|
1929
|
+
},
|
|
1930
|
+
"additionalProperties": false
|
|
1931
|
+
}
|
|
1932
|
+
},
|
|
1933
|
+
{
|
|
1934
|
+
"name": "runtime.session.log",
|
|
1935
|
+
"description": "Return the extension-local hosted-agent session log, including recent transcript turns, tool calls, tool failures, Realtime errors, screenshots, and session lifecycle events. Use this for debugging a session after the user reports transcript or tool behavior problems.",
|
|
1936
|
+
"input_schema": {
|
|
1937
|
+
"type": "object",
|
|
1938
|
+
"properties": {
|
|
1939
|
+
"limit": {
|
|
1940
|
+
"type": "integer",
|
|
1941
|
+
"minimum": 1,
|
|
1942
|
+
"maximum": 2000,
|
|
1943
|
+
"default": 2000
|
|
1944
|
+
}
|
|
1945
|
+
},
|
|
1946
|
+
"additionalProperties": false
|
|
1947
|
+
}
|
|
1948
|
+
},
|
|
1949
|
+
{
|
|
1950
|
+
"name": "runtime.agent.start",
|
|
1951
|
+
"description": "Start the extension-owned hosted GPT Realtime session. Defaults to text-only mode, so it does not request microphone access or open a local microphone stream.",
|
|
1952
|
+
"input_schema": {
|
|
1953
|
+
"type": "object",
|
|
1954
|
+
"properties": {
|
|
1955
|
+
"text_only": {
|
|
1956
|
+
"type": "boolean",
|
|
1957
|
+
"default": true,
|
|
1958
|
+
"description": "When true or omitted, start without microphone capture. Set false only when intentionally starting the voice path."
|
|
1959
|
+
}
|
|
1960
|
+
},
|
|
1961
|
+
"additionalProperties": false
|
|
1962
|
+
},
|
|
1963
|
+
"x_actions": {
|
|
1964
|
+
"direction": "agent_to_html",
|
|
1965
|
+
"handler": "actionsJsonOverlay.runtimeAgentStart",
|
|
1966
|
+
"scope": "active_surface",
|
|
1967
|
+
"source": {
|
|
1968
|
+
"files": [
|
|
1969
|
+
"src/content.js",
|
|
1970
|
+
"src/background.js",
|
|
1971
|
+
"src/offscreen-agent.js",
|
|
1972
|
+
"src/agent/realtime-session-manager.mjs",
|
|
1973
|
+
"src/agent/realtime-webrtc-transport.mjs"
|
|
1974
|
+
],
|
|
1975
|
+
"component": "HostedRealtimeSession"
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
"name": "runtime.agent.stop",
|
|
1981
|
+
"description": "Stop the extension-owned hosted GPT Realtime session and return the current stopped session state.",
|
|
1982
|
+
"input_schema": {
|
|
1983
|
+
"type": "object",
|
|
1984
|
+
"properties": {},
|
|
1985
|
+
"additionalProperties": false
|
|
1986
|
+
},
|
|
1987
|
+
"x_actions": {
|
|
1988
|
+
"direction": "agent_to_html",
|
|
1989
|
+
"handler": "actionsJsonOverlay.runtimeAgentStop",
|
|
1990
|
+
"scope": "active_surface",
|
|
1991
|
+
"source": {
|
|
1992
|
+
"files": [
|
|
1993
|
+
"src/content.js",
|
|
1994
|
+
"src/background.js",
|
|
1995
|
+
"src/offscreen-agent.js",
|
|
1996
|
+
"src/agent/realtime-session-manager.mjs"
|
|
1997
|
+
],
|
|
1998
|
+
"component": "HostedRealtimeSession"
|
|
1999
|
+
}
|
|
2000
|
+
}
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"name": "runtime.agent.user_message",
|
|
2004
|
+
"description": "Inject a developer test prompt into the active hosted GPT Realtime session. The model response is requested as text only and shown in the browser as a toast instead of being spoken.",
|
|
2005
|
+
"input_schema": {
|
|
2006
|
+
"type": "object",
|
|
2007
|
+
"properties": {
|
|
2008
|
+
"text": {
|
|
2009
|
+
"type": "string",
|
|
2010
|
+
"description": "User-style instruction to send into the active hosted Realtime session for testing."
|
|
2011
|
+
}
|
|
2012
|
+
},
|
|
2013
|
+
"required": [
|
|
2014
|
+
"text"
|
|
2015
|
+
],
|
|
2016
|
+
"additionalProperties": false
|
|
2017
|
+
},
|
|
2018
|
+
"x_actions": {
|
|
2019
|
+
"direction": "agent_to_html",
|
|
2020
|
+
"handler": "actionsJsonOverlay.runtimeAgentUserMessage",
|
|
2021
|
+
"scope": "active_surface",
|
|
2022
|
+
"source": {
|
|
2023
|
+
"files": [
|
|
2024
|
+
"src/content.js",
|
|
2025
|
+
"src/background.js",
|
|
2026
|
+
"src/offscreen-agent.js",
|
|
2027
|
+
"src/agent/realtime-session-manager.mjs"
|
|
2028
|
+
],
|
|
2029
|
+
"component": "HostedRealtimeSession"
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
},
|
|
2033
|
+
{
|
|
2034
|
+
"name": "browser.claimed_tabs.list",
|
|
2035
|
+
"description": "List tabs already claimed by the actions.json Chrome extension, including their tab ids, URLs, titles, runtime keys, authorization ids, and active state. Use this before switching context among user-authorized tabs.",
|
|
2036
|
+
"input_schema": {
|
|
2037
|
+
"type": "object",
|
|
2038
|
+
"properties": {},
|
|
2039
|
+
"additionalProperties": false
|
|
2040
|
+
}
|
|
2041
|
+
},
|
|
2042
|
+
{
|
|
2043
|
+
"name": "browser.claimed_tabs.activate",
|
|
2044
|
+
"description": "Focus an already-claimed tab and reconnect that tab's actions.json runtime to the bridge. Call browser.claimed_tabs.list first, then pass the selected tab_id. After a successful scheduled activation, refresh the runtime list before issuing page-specific actions.",
|
|
2045
|
+
"input_schema": {
|
|
2046
|
+
"type": "object",
|
|
2047
|
+
"required": [
|
|
2048
|
+
"tab_id"
|
|
2049
|
+
],
|
|
2050
|
+
"properties": {
|
|
2051
|
+
"tab_id": {
|
|
2052
|
+
"type": "integer",
|
|
2053
|
+
"description": "Chrome tab id returned by browser.claimed_tabs.list."
|
|
2054
|
+
}
|
|
2055
|
+
},
|
|
2056
|
+
"additionalProperties": false
|
|
2057
|
+
}
|
|
2058
|
+
},
|
|
2059
|
+
{
|
|
2060
|
+
"name": "browser.screenshot",
|
|
2061
|
+
"description": "Capture the currently visible browser tab as an image so the agent can inspect the page state after authorization.",
|
|
2062
|
+
"input_schema": {
|
|
2063
|
+
"type": "object",
|
|
2064
|
+
"properties": {
|
|
2065
|
+
"format": {
|
|
2066
|
+
"type": "string",
|
|
2067
|
+
"enum": [
|
|
2068
|
+
"png",
|
|
2069
|
+
"jpeg"
|
|
2070
|
+
],
|
|
2071
|
+
"default": "png"
|
|
2072
|
+
},
|
|
2073
|
+
"quality": {
|
|
2074
|
+
"type": "integer",
|
|
2075
|
+
"minimum": 1,
|
|
2076
|
+
"maximum": 100,
|
|
2077
|
+
"description": "JPEG quality. Ignored for PNG captures."
|
|
2078
|
+
},
|
|
2079
|
+
"delay_ms": {
|
|
2080
|
+
"type": "integer",
|
|
2081
|
+
"minimum": 0,
|
|
2082
|
+
"maximum": 30000,
|
|
2083
|
+
"description": "Wait this many milliseconds in the browser before capturing, useful for pages that are still painting after navigation."
|
|
2084
|
+
},
|
|
2085
|
+
"capture_timeout_ms": {
|
|
2086
|
+
"type": "integer",
|
|
2087
|
+
"minimum": 1,
|
|
2088
|
+
"maximum": 60000,
|
|
2089
|
+
"description": "Maximum time to wait for the extension background capture request to answer before returning a structured screenshot error."
|
|
2090
|
+
},
|
|
2091
|
+
"max_kb": {
|
|
2092
|
+
"type": "integer",
|
|
2093
|
+
"minimum": 1,
|
|
2094
|
+
"maximum": 20480,
|
|
2095
|
+
"description": "Deprecated alias for max_kilobytes."
|
|
2096
|
+
},
|
|
2097
|
+
"max_kilobytes": {
|
|
2098
|
+
"type": "integer",
|
|
2099
|
+
"minimum": 1,
|
|
2100
|
+
"maximum": 20480,
|
|
2101
|
+
"description": "Target maximum encoded image size in kilobytes. The browser may downscale and switch to JPEG to fit this budget before sending the screenshot."
|
|
2102
|
+
},
|
|
2103
|
+
"max_width": {
|
|
2104
|
+
"type": "integer",
|
|
2105
|
+
"minimum": 1,
|
|
2106
|
+
"maximum": 4096,
|
|
2107
|
+
"description": "Optional maximum encoded image width after browser-side resizing."
|
|
2108
|
+
},
|
|
2109
|
+
"max_height": {
|
|
2110
|
+
"type": "integer",
|
|
2111
|
+
"minimum": 1,
|
|
2112
|
+
"maximum": 4096,
|
|
2113
|
+
"description": "Optional maximum encoded image height after browser-side resizing."
|
|
2114
|
+
}
|
|
2115
|
+
},
|
|
2116
|
+
"additionalProperties": false
|
|
2117
|
+
},
|
|
2118
|
+
"x_actions": {
|
|
2119
|
+
"direction": "agent_to_html",
|
|
2120
|
+
"handler": "actionsJsonOverlay.screenshot",
|
|
2121
|
+
"scope": "active_surface",
|
|
2122
|
+
"source": {
|
|
2123
|
+
"files": [
|
|
2124
|
+
"src/content.js",
|
|
2125
|
+
"src/background.js"
|
|
2126
|
+
],
|
|
2127
|
+
"symbols": [
|
|
2128
|
+
"actionsJsonOverlay.screenshot",
|
|
2129
|
+
"chrome.tabs.captureVisibleTab"
|
|
2130
|
+
],
|
|
2131
|
+
"component": "ActionsJsonOverlay"
|
|
2132
|
+
},
|
|
2133
|
+
"result_schema": {
|
|
2134
|
+
"type": "object",
|
|
2135
|
+
"properties": {
|
|
2136
|
+
"ok": {
|
|
2137
|
+
"type": "boolean"
|
|
2138
|
+
},
|
|
2139
|
+
"data_url": {
|
|
2140
|
+
"type": "string"
|
|
2141
|
+
},
|
|
2142
|
+
"mime_type": {
|
|
2143
|
+
"type": "string"
|
|
2144
|
+
},
|
|
2145
|
+
"image_bytes": {
|
|
2146
|
+
"type": "integer"
|
|
2147
|
+
},
|
|
2148
|
+
"encoded": {
|
|
2149
|
+
"type": "object"
|
|
2150
|
+
},
|
|
2151
|
+
"viewport": {
|
|
2152
|
+
"type": "object"
|
|
2153
|
+
},
|
|
2154
|
+
"url": {
|
|
2155
|
+
"type": "string"
|
|
2156
|
+
},
|
|
2157
|
+
"captured_at": {
|
|
2158
|
+
"type": "string"
|
|
2159
|
+
}
|
|
2160
|
+
},
|
|
2161
|
+
"required": [
|
|
2162
|
+
"ok",
|
|
2163
|
+
"data_url",
|
|
2164
|
+
"mime_type",
|
|
2165
|
+
"viewport"
|
|
2166
|
+
]
|
|
2167
|
+
}
|
|
2168
|
+
}
|
|
2169
|
+
},
|
|
2170
|
+
{
|
|
2171
|
+
"name": "storage.import_bundle",
|
|
2172
|
+
"description": "Import an agent-provided actions.json.storage bundle into extension local storage for offline local lookup.",
|
|
2173
|
+
"input_schema": {
|
|
2174
|
+
"type": "object",
|
|
2175
|
+
"properties": {
|
|
2176
|
+
"bundle": {
|
|
2177
|
+
"type": "object",
|
|
2178
|
+
"description": "A versioned actions.json.storage.bundle object built by the agent-side bridge."
|
|
2179
|
+
}
|
|
2180
|
+
},
|
|
2181
|
+
"required": [
|
|
2182
|
+
"bundle"
|
|
2183
|
+
],
|
|
2184
|
+
"additionalProperties": false
|
|
2185
|
+
},
|
|
2186
|
+
"x_actions": {
|
|
2187
|
+
"direction": "agent_to_html",
|
|
2188
|
+
"handler": "actionsJsonOverlay.importStorageBundle",
|
|
2189
|
+
"scope": "persistent",
|
|
2190
|
+
"source": {
|
|
2191
|
+
"files": [
|
|
2192
|
+
"src/content.js"
|
|
2193
|
+
],
|
|
2194
|
+
"symbols": [
|
|
2195
|
+
"actionsJsonOverlay.importStorageBundle",
|
|
2196
|
+
"chrome.storage.local.set"
|
|
2197
|
+
],
|
|
2198
|
+
"component": "ActionsJsonOverlay"
|
|
2199
|
+
},
|
|
2200
|
+
"result_schema": {
|
|
2201
|
+
"type": "object",
|
|
2202
|
+
"properties": {
|
|
2203
|
+
"ok": {
|
|
2204
|
+
"type": "boolean"
|
|
2205
|
+
},
|
|
2206
|
+
"entry_count": {
|
|
2207
|
+
"type": "integer"
|
|
2208
|
+
},
|
|
2209
|
+
"synced_at_ms": {
|
|
2210
|
+
"type": [
|
|
2211
|
+
"integer",
|
|
2212
|
+
"null"
|
|
2213
|
+
]
|
|
2214
|
+
},
|
|
2215
|
+
"imported_at": {
|
|
2216
|
+
"type": "string"
|
|
2217
|
+
}
|
|
2218
|
+
},
|
|
2219
|
+
"required": [
|
|
2220
|
+
"ok",
|
|
2221
|
+
"entry_count"
|
|
2222
|
+
]
|
|
2223
|
+
}
|
|
2224
|
+
}
|
|
2225
|
+
},
|
|
2226
|
+
{
|
|
2227
|
+
"name": "browser.extract_elements",
|
|
2228
|
+
"description": "Extract structured data from DOM elements using schema-declared scope, item selector, and field extraction rules. Page-specific meanings belong in actions.json, not in the runtime.",
|
|
2229
|
+
"input_schema": {
|
|
2230
|
+
"type": "object",
|
|
2231
|
+
"properties": {
|
|
2232
|
+
"scope": {
|
|
2233
|
+
"type": "object",
|
|
2234
|
+
"description": "How to find the page region that bounds extraction.",
|
|
2235
|
+
"properties": {
|
|
2236
|
+
"selector": {
|
|
2237
|
+
"type": "string",
|
|
2238
|
+
"description": "Single CSS selector hint for locating the scope element."
|
|
2239
|
+
},
|
|
2240
|
+
"selectors": {
|
|
2241
|
+
"type": "array",
|
|
2242
|
+
"items": {
|
|
2243
|
+
"type": "string"
|
|
2244
|
+
},
|
|
2245
|
+
"description": "Ordered CSS selector hints for locating the scope element."
|
|
2246
|
+
},
|
|
2247
|
+
"text_equals": {
|
|
2248
|
+
"type": "string",
|
|
2249
|
+
"description": "Optional exact visible text filter for the scope element."
|
|
2250
|
+
},
|
|
2251
|
+
"text_contains": {
|
|
2252
|
+
"type": "string",
|
|
2253
|
+
"description": "Optional visible text substring filter for the scope element."
|
|
2254
|
+
},
|
|
2255
|
+
"root_selector": {
|
|
2256
|
+
"type": "string",
|
|
2257
|
+
"description": "Optional ancestor selector to use as the extraction root."
|
|
2258
|
+
},
|
|
2259
|
+
"root_strategy": {
|
|
2260
|
+
"type": "string",
|
|
2261
|
+
"enum": [
|
|
2262
|
+
"scope",
|
|
2263
|
+
"parent",
|
|
2264
|
+
"nearest_ancestor_containing_items"
|
|
2265
|
+
],
|
|
2266
|
+
"default": "scope",
|
|
2267
|
+
"description": "Generic strategy for deriving the extraction root from the scope element."
|
|
2268
|
+
},
|
|
2269
|
+
"max_ancestor_depth": {
|
|
2270
|
+
"type": "integer",
|
|
2271
|
+
"minimum": 0,
|
|
2272
|
+
"maximum": 20,
|
|
2273
|
+
"default": 4
|
|
2274
|
+
}
|
|
2275
|
+
},
|
|
2276
|
+
"additionalProperties": false
|
|
2277
|
+
},
|
|
2278
|
+
"item_selector": {
|
|
2279
|
+
"type": "string",
|
|
2280
|
+
"description": "CSS selector for each item to extract within the resolved root."
|
|
2281
|
+
},
|
|
2282
|
+
"fields": {
|
|
2283
|
+
"type": "array",
|
|
2284
|
+
"description": "Field rules applied to each matched item.",
|
|
2285
|
+
"items": {
|
|
2286
|
+
"type": "object",
|
|
2287
|
+
"properties": {
|
|
2288
|
+
"name": {
|
|
2289
|
+
"type": "string",
|
|
2290
|
+
"description": "Output field name."
|
|
2291
|
+
},
|
|
2292
|
+
"selector": {
|
|
2293
|
+
"type": "string",
|
|
2294
|
+
"description": "CSS selector relative to the item. Use :scope for the item itself."
|
|
2295
|
+
},
|
|
2296
|
+
"attribute": {
|
|
2297
|
+
"type": "string",
|
|
2298
|
+
"description": "Single attribute or text pseudo-attribute to read."
|
|
2299
|
+
},
|
|
2300
|
+
"attributes": {
|
|
2301
|
+
"type": "array",
|
|
2302
|
+
"items": {
|
|
2303
|
+
"type": "string"
|
|
2304
|
+
},
|
|
2305
|
+
"description": "Ordered attributes or text pseudo-attribute to try."
|
|
2306
|
+
}
|
|
2307
|
+
},
|
|
2308
|
+
"required": [
|
|
2309
|
+
"name"
|
|
2310
|
+
],
|
|
2311
|
+
"additionalProperties": false
|
|
2312
|
+
},
|
|
2313
|
+
"minItems": 1
|
|
2314
|
+
}
|
|
2315
|
+
},
|
|
2316
|
+
"required": [
|
|
2317
|
+
"item_selector",
|
|
2318
|
+
"fields"
|
|
2319
|
+
],
|
|
2320
|
+
"additionalProperties": false
|
|
2321
|
+
},
|
|
2322
|
+
"x_actions": {
|
|
2323
|
+
"direction": "agent_to_html",
|
|
2324
|
+
"handler": "actionsJsonOverlay.extractElements",
|
|
2325
|
+
"scope": "active_surface",
|
|
2326
|
+
"source": {
|
|
2327
|
+
"files": [
|
|
2328
|
+
"src/content.js"
|
|
2329
|
+
],
|
|
2330
|
+
"symbols": [
|
|
2331
|
+
"actionsJsonOverlay.extractElements"
|
|
2332
|
+
],
|
|
2333
|
+
"component": "ActionsJsonOverlay"
|
|
2334
|
+
},
|
|
2335
|
+
"result_schema": {
|
|
2336
|
+
"type": "object",
|
|
2337
|
+
"properties": {
|
|
2338
|
+
"ok": {
|
|
2339
|
+
"type": "boolean"
|
|
2340
|
+
},
|
|
2341
|
+
"scope": {
|
|
2342
|
+
"type": "object"
|
|
2343
|
+
},
|
|
2344
|
+
"items": {
|
|
2345
|
+
"type": "array",
|
|
2346
|
+
"items": {
|
|
2347
|
+
"type": "object"
|
|
2348
|
+
}
|
|
2349
|
+
},
|
|
2350
|
+
"item_count": {
|
|
2351
|
+
"type": "integer"
|
|
2352
|
+
},
|
|
2353
|
+
"extracted_at": {
|
|
2354
|
+
"type": "string"
|
|
2355
|
+
},
|
|
2356
|
+
"url": {
|
|
2357
|
+
"type": "string"
|
|
2358
|
+
}
|
|
2359
|
+
},
|
|
2360
|
+
"required": [
|
|
2361
|
+
"ok",
|
|
2362
|
+
"items",
|
|
2363
|
+
"item_count"
|
|
2364
|
+
]
|
|
2365
|
+
}
|
|
2366
|
+
}
|
|
2367
|
+
},
|
|
2368
|
+
{
|
|
2369
|
+
"name": "browser.run_javascript",
|
|
2370
|
+
"description": "Run schema-declared JavaScript in the authorized page with structured arguments and return the script result. Page-specific actions belong in actions.json, not in the runtime.",
|
|
2371
|
+
"input_schema": {
|
|
2372
|
+
"type": "object",
|
|
2373
|
+
"properties": {
|
|
2374
|
+
"source": {
|
|
2375
|
+
"type": "string",
|
|
2376
|
+
"description": "JavaScript function body to execute. It receives `args` and `helpers` bindings and may return a structured value."
|
|
2377
|
+
},
|
|
2378
|
+
"javascript": {
|
|
2379
|
+
"type": "string",
|
|
2380
|
+
"description": "Alias for source."
|
|
2381
|
+
},
|
|
2382
|
+
"args": {
|
|
2383
|
+
"type": "object",
|
|
2384
|
+
"description": "Structured arguments passed to the JavaScript body."
|
|
2385
|
+
}
|
|
2386
|
+
},
|
|
2387
|
+
"required": [
|
|
2388
|
+
"source"
|
|
2389
|
+
],
|
|
2390
|
+
"additionalProperties": false
|
|
2391
|
+
},
|
|
2392
|
+
"x_actions": {
|
|
2393
|
+
"direction": "agent_to_html",
|
|
2394
|
+
"handler": "actionsJsonOverlay.runJavascript",
|
|
2395
|
+
"scope": "active_surface",
|
|
2396
|
+
"source": {
|
|
2397
|
+
"files": [
|
|
2398
|
+
"src/content.js"
|
|
2399
|
+
],
|
|
2400
|
+
"symbols": [
|
|
2401
|
+
"actionsJsonOverlay.runJavascript"
|
|
2402
|
+
],
|
|
2403
|
+
"component": "ActionsJsonOverlay"
|
|
2404
|
+
},
|
|
2405
|
+
"result_schema": {
|
|
2406
|
+
"type": "object",
|
|
2407
|
+
"properties": {
|
|
2408
|
+
"ok": {
|
|
2409
|
+
"type": "boolean"
|
|
2410
|
+
},
|
|
2411
|
+
"result": {},
|
|
2412
|
+
"url": {
|
|
2413
|
+
"type": "string"
|
|
2414
|
+
}
|
|
2415
|
+
},
|
|
2416
|
+
"required": [
|
|
2417
|
+
"ok",
|
|
2418
|
+
"result"
|
|
2419
|
+
]
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
},
|
|
2423
|
+
{
|
|
2424
|
+
"name": "dom.list_sections",
|
|
2425
|
+
"description": "List rendered page sections with inferred headings, document offsets, viewport visibility, and optional item counts. Use this before scrolling to rows whose vertical position varies between page loads.",
|
|
2426
|
+
"input_schema": {
|
|
2427
|
+
"type": "object",
|
|
2428
|
+
"properties": {
|
|
2429
|
+
"selector": {
|
|
2430
|
+
"type": "string",
|
|
2431
|
+
"description": "CSS selector for section-like containers. Defaults to section and role=region containers."
|
|
2432
|
+
},
|
|
2433
|
+
"heading_selector": {
|
|
2434
|
+
"type": "string",
|
|
2435
|
+
"description": "Optional CSS selector used inside each section to identify the section heading."
|
|
2436
|
+
},
|
|
2437
|
+
"item_selector": {
|
|
2438
|
+
"type": "string",
|
|
2439
|
+
"description": "Optional CSS selector counted inside each section, useful for carousel rows."
|
|
2440
|
+
},
|
|
2441
|
+
"text_contains": {
|
|
2442
|
+
"type": "string",
|
|
2443
|
+
"description": "Optional case-insensitive filter applied to heading and section text."
|
|
2444
|
+
},
|
|
2445
|
+
"max_sections": {
|
|
2446
|
+
"type": "integer",
|
|
2447
|
+
"minimum": 1,
|
|
2448
|
+
"maximum": 500
|
|
2449
|
+
},
|
|
2450
|
+
"max_heading_length": {
|
|
2451
|
+
"type": "integer",
|
|
2452
|
+
"minimum": 12,
|
|
2453
|
+
"maximum": 500
|
|
2454
|
+
}
|
|
2455
|
+
},
|
|
2456
|
+
"additionalProperties": false
|
|
2457
|
+
},
|
|
2458
|
+
"x_actions": {
|
|
2459
|
+
"direction": "agent_to_html",
|
|
2460
|
+
"handler": "actionsJsonOverlay.domListSections",
|
|
2461
|
+
"scope": "active_surface",
|
|
2462
|
+
"source": {
|
|
2463
|
+
"files": [
|
|
2464
|
+
"src/content.js"
|
|
2465
|
+
],
|
|
2466
|
+
"symbols": [
|
|
2467
|
+
"actionsJsonOverlay.domListSections"
|
|
2468
|
+
],
|
|
2469
|
+
"component": "ActionsJsonOverlay"
|
|
2470
|
+
}
|
|
2471
|
+
}
|
|
2472
|
+
},
|
|
2473
|
+
{
|
|
2474
|
+
"name": "debug.run_javascript",
|
|
2475
|
+
"description": "Authoring-only fallback that evaluates arbitrary JavaScript through the extension background debugger transport. Use this to prove a page operation before encoding it as portable actions.json behavior; do not treat it as a portable primitive.",
|
|
2476
|
+
"input_schema": {
|
|
2477
|
+
"type": "object",
|
|
2478
|
+
"properties": {
|
|
2479
|
+
"source": {
|
|
2480
|
+
"type": "string",
|
|
2481
|
+
"description": "JavaScript function body to evaluate in the inspected page. It receives `args` and `helpers` bindings."
|
|
2482
|
+
},
|
|
2483
|
+
"javascript": {
|
|
2484
|
+
"type": "string",
|
|
2485
|
+
"description": "Alias for source."
|
|
2486
|
+
},
|
|
2487
|
+
"args": {
|
|
2488
|
+
"type": "object",
|
|
2489
|
+
"description": "Structured arguments passed to the JavaScript body."
|
|
2490
|
+
}
|
|
2491
|
+
},
|
|
2492
|
+
"required": [
|
|
2493
|
+
"source"
|
|
2494
|
+
],
|
|
2495
|
+
"additionalProperties": false
|
|
2496
|
+
},
|
|
2497
|
+
"x_actions": {
|
|
2498
|
+
"direction": "agent_to_html",
|
|
2499
|
+
"handler": "actionsJsonOverlay.debugRunJavascript",
|
|
2500
|
+
"scope": "active_surface",
|
|
2501
|
+
"capability_class": "debug",
|
|
2502
|
+
"portable": false,
|
|
2503
|
+
"source": {
|
|
2504
|
+
"files": [
|
|
2505
|
+
"src/content.js",
|
|
2506
|
+
"src/background.js"
|
|
2507
|
+
],
|
|
2508
|
+
"symbols": [
|
|
2509
|
+
"actionsJsonOverlay.debugRunJavascript",
|
|
2510
|
+
"chrome.debugger.sendCommand"
|
|
2511
|
+
],
|
|
2512
|
+
"component": "ActionsJsonOverlay"
|
|
2513
|
+
},
|
|
2514
|
+
"result_schema": {
|
|
2515
|
+
"type": "object",
|
|
2516
|
+
"properties": {
|
|
2517
|
+
"ok": {
|
|
2518
|
+
"type": "boolean"
|
|
2519
|
+
},
|
|
2520
|
+
"result": {},
|
|
2521
|
+
"url": {
|
|
2522
|
+
"type": [
|
|
2523
|
+
"string",
|
|
2524
|
+
"null"
|
|
2525
|
+
]
|
|
2526
|
+
},
|
|
2527
|
+
"execution": {
|
|
2528
|
+
"type": "object"
|
|
2529
|
+
}
|
|
2530
|
+
},
|
|
2531
|
+
"required": [
|
|
2532
|
+
"ok"
|
|
2533
|
+
]
|
|
2534
|
+
}
|
|
2535
|
+
}
|
|
2536
|
+
},
|
|
2537
|
+
{
|
|
2538
|
+
"name": "locator.element_info",
|
|
2539
|
+
"description": "Resolve a visible locator to viewport geometry and a recommended clickable center. When multiple visible elements match, the result includes ambiguous=true, candidate_count, and candidates with text, bounding boxes, and clickable centers; inspect candidates before clicking.",
|
|
2540
|
+
"input_schema": {
|
|
2541
|
+
"type": "object",
|
|
2542
|
+
"properties": {
|
|
2543
|
+
"locator": {
|
|
2544
|
+
"type": "object"
|
|
2545
|
+
}
|
|
2546
|
+
},
|
|
2547
|
+
"required": [
|
|
2548
|
+
"locator"
|
|
2549
|
+
],
|
|
2550
|
+
"additionalProperties": false
|
|
2551
|
+
},
|
|
2552
|
+
"x_actions": {
|
|
2553
|
+
"direction": "agent_to_html",
|
|
2554
|
+
"handler": "actionsJsonOverlay.locatorElementInfo",
|
|
2555
|
+
"scope": "active_surface",
|
|
2556
|
+
"source": {
|
|
2557
|
+
"files": [
|
|
2558
|
+
"src/content.js"
|
|
2559
|
+
],
|
|
2560
|
+
"symbols": [
|
|
2561
|
+
"actionsJsonOverlay.locatorElementInfo"
|
|
2562
|
+
],
|
|
2563
|
+
"component": "ActionsJsonOverlay"
|
|
2564
|
+
}
|
|
2565
|
+
}
|
|
2566
|
+
},
|
|
2567
|
+
{
|
|
2568
|
+
"name": "viewport.scroll",
|
|
2569
|
+
"description": "Scroll the current viewport, or a scoped scrollable page region such as a horizontal carousel, by a visible delta.",
|
|
2570
|
+
"input_schema": {
|
|
2571
|
+
"type": "object",
|
|
2572
|
+
"properties": {
|
|
2573
|
+
"delta_x": {
|
|
2574
|
+
"type": "number"
|
|
2575
|
+
},
|
|
2576
|
+
"delta_y": {
|
|
2577
|
+
"type": "number"
|
|
2578
|
+
},
|
|
2579
|
+
"scope": {
|
|
2580
|
+
"type": "object",
|
|
2581
|
+
"description": "Optional page region used to find a scrollable element instead of scrolling the global viewport.",
|
|
2582
|
+
"properties": {
|
|
2583
|
+
"selector": {
|
|
2584
|
+
"type": "string"
|
|
2585
|
+
},
|
|
2586
|
+
"selectors": {
|
|
2587
|
+
"type": "array",
|
|
2588
|
+
"items": {
|
|
2589
|
+
"type": "string"
|
|
2590
|
+
}
|
|
2591
|
+
},
|
|
2592
|
+
"text_equals": {
|
|
2593
|
+
"type": "string"
|
|
2594
|
+
},
|
|
2595
|
+
"text_contains": {
|
|
2596
|
+
"type": "string"
|
|
2597
|
+
},
|
|
2598
|
+
"root_selector": {
|
|
2599
|
+
"type": "string"
|
|
2600
|
+
},
|
|
2601
|
+
"root_strategy": {
|
|
2602
|
+
"type": "string",
|
|
2603
|
+
"enum": [
|
|
2604
|
+
"scope",
|
|
2605
|
+
"parent",
|
|
2606
|
+
"nearest_ancestor_containing_items"
|
|
2607
|
+
],
|
|
2608
|
+
"default": "scope"
|
|
2609
|
+
},
|
|
2610
|
+
"max_ancestor_depth": {
|
|
2611
|
+
"type": "integer",
|
|
2612
|
+
"minimum": 0,
|
|
2613
|
+
"maximum": 20,
|
|
2614
|
+
"default": 4
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2617
|
+
"additionalProperties": false
|
|
2618
|
+
},
|
|
2619
|
+
"item_selector": {
|
|
2620
|
+
"type": "string",
|
|
2621
|
+
"description": "Optional item selector used with nearest_ancestor_containing_items to locate the carousel root."
|
|
2622
|
+
}
|
|
2623
|
+
},
|
|
2624
|
+
"additionalProperties": false
|
|
2625
|
+
},
|
|
2626
|
+
"x_actions": {
|
|
2627
|
+
"direction": "agent_to_html",
|
|
2628
|
+
"handler": "actionsJsonOverlay.viewportScroll",
|
|
2629
|
+
"scope": "active_surface",
|
|
2630
|
+
"source": {
|
|
2631
|
+
"files": [
|
|
2632
|
+
"src/content.js"
|
|
2633
|
+
],
|
|
2634
|
+
"symbols": [
|
|
2635
|
+
"actionsJsonOverlay.viewportScroll"
|
|
2636
|
+
],
|
|
2637
|
+
"component": "ActionsJsonOverlay"
|
|
2638
|
+
}
|
|
2639
|
+
}
|
|
2640
|
+
},
|
|
2641
|
+
{
|
|
2642
|
+
"name": "pointer.click",
|
|
2643
|
+
"description": "Move the visible pointer affordance to viewport coordinates and perform a click.",
|
|
2644
|
+
"input_schema": {
|
|
2645
|
+
"type": "object",
|
|
2646
|
+
"properties": {
|
|
2647
|
+
"x": {
|
|
2648
|
+
"type": "number"
|
|
2649
|
+
},
|
|
2650
|
+
"y": {
|
|
2651
|
+
"type": "number"
|
|
2652
|
+
},
|
|
2653
|
+
"button": {
|
|
2654
|
+
"type": "string",
|
|
2655
|
+
"enum": [
|
|
2656
|
+
"left",
|
|
2657
|
+
"middle",
|
|
2658
|
+
"right"
|
|
2659
|
+
]
|
|
2660
|
+
}
|
|
2661
|
+
},
|
|
2662
|
+
"required": [
|
|
2663
|
+
"x",
|
|
2664
|
+
"y"
|
|
2665
|
+
],
|
|
2666
|
+
"additionalProperties": false
|
|
2667
|
+
},
|
|
2668
|
+
"x_actions": {
|
|
2669
|
+
"direction": "agent_to_html",
|
|
2670
|
+
"handler": "actionsJsonOverlay.pointerClick",
|
|
2671
|
+
"scope": "active_surface",
|
|
2672
|
+
"source": {
|
|
2673
|
+
"files": [
|
|
2674
|
+
"src/content.js"
|
|
2675
|
+
],
|
|
2676
|
+
"symbols": [
|
|
2677
|
+
"actionsJsonOverlay.pointerClick"
|
|
2678
|
+
],
|
|
2679
|
+
"component": "ActionsJsonOverlay"
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2682
|
+
},
|
|
2683
|
+
{
|
|
2684
|
+
"name": "pointer.move",
|
|
2685
|
+
"description": "Move the visible pointer affordance to viewport coordinates without clicking. Use this to show the user what element is being targeted before a follow-up action.",
|
|
2686
|
+
"input_schema": {
|
|
2687
|
+
"type": "object",
|
|
2688
|
+
"properties": {
|
|
2689
|
+
"x": {
|
|
2690
|
+
"type": "number"
|
|
2691
|
+
},
|
|
2692
|
+
"y": {
|
|
2693
|
+
"type": "number"
|
|
2694
|
+
},
|
|
2695
|
+
"duration_ms": {
|
|
2696
|
+
"type": "integer",
|
|
2697
|
+
"minimum": 0
|
|
2698
|
+
}
|
|
2699
|
+
},
|
|
2700
|
+
"required": [
|
|
2701
|
+
"x",
|
|
2702
|
+
"y"
|
|
2703
|
+
],
|
|
2704
|
+
"additionalProperties": false
|
|
2705
|
+
},
|
|
2706
|
+
"x_actions": {
|
|
2707
|
+
"direction": "agent_to_html",
|
|
2708
|
+
"handler": "actionsJsonOverlay.pointerMove",
|
|
2709
|
+
"scope": "active_surface",
|
|
2710
|
+
"source": {
|
|
2711
|
+
"files": [
|
|
2712
|
+
"src/content.js"
|
|
2713
|
+
],
|
|
2714
|
+
"symbols": [
|
|
2715
|
+
"actionsJsonOverlay.pointerMove"
|
|
2716
|
+
],
|
|
2717
|
+
"component": "ActionsJsonOverlay"
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2720
|
+
},
|
|
2721
|
+
{
|
|
2722
|
+
"name": "pointer.double_click",
|
|
2723
|
+
"description": "Move the visible pointer affordance to viewport coordinates and perform a double click.",
|
|
2724
|
+
"input_schema": {
|
|
2725
|
+
"type": "object",
|
|
2726
|
+
"properties": {
|
|
2727
|
+
"x": {
|
|
2728
|
+
"type": "number"
|
|
2729
|
+
},
|
|
2730
|
+
"y": {
|
|
2731
|
+
"type": "number"
|
|
2732
|
+
}
|
|
2733
|
+
},
|
|
2734
|
+
"required": [
|
|
2735
|
+
"x",
|
|
2736
|
+
"y"
|
|
2737
|
+
],
|
|
2738
|
+
"additionalProperties": false
|
|
2739
|
+
},
|
|
2740
|
+
"x_actions": {
|
|
2741
|
+
"direction": "agent_to_html",
|
|
2742
|
+
"handler": "actionsJsonOverlay.pointerDoubleClick",
|
|
2743
|
+
"scope": "active_surface",
|
|
2744
|
+
"source": {
|
|
2745
|
+
"files": [
|
|
2746
|
+
"src/content.js"
|
|
2747
|
+
],
|
|
2748
|
+
"symbols": [
|
|
2749
|
+
"actionsJsonOverlay.pointerDoubleClick"
|
|
2750
|
+
],
|
|
2751
|
+
"component": "ActionsJsonOverlay"
|
|
2752
|
+
}
|
|
2753
|
+
}
|
|
2754
|
+
},
|
|
2755
|
+
{
|
|
2756
|
+
"name": "pointer.drag",
|
|
2757
|
+
"description": "Move visibly from one viewport point or locator to another while dragging. Call a site-specific read action after this primitive to verify that the page state actually changed; some applications ignore synthetic drag events.",
|
|
2758
|
+
"input_schema": {
|
|
2759
|
+
"type": "object",
|
|
2760
|
+
"properties": {
|
|
2761
|
+
"from": {
|
|
2762
|
+
"type": "object",
|
|
2763
|
+
"properties": {
|
|
2764
|
+
"x": {
|
|
2765
|
+
"type": "number"
|
|
2766
|
+
},
|
|
2767
|
+
"y": {
|
|
2768
|
+
"type": "number"
|
|
2769
|
+
},
|
|
2770
|
+
"selector": {
|
|
2771
|
+
"type": "string"
|
|
2772
|
+
},
|
|
2773
|
+
"text": {
|
|
2774
|
+
"type": "string"
|
|
2775
|
+
},
|
|
2776
|
+
"text_contains": {
|
|
2777
|
+
"type": "string"
|
|
2778
|
+
},
|
|
2779
|
+
"text_equals": {
|
|
2780
|
+
"type": "string"
|
|
2781
|
+
},
|
|
2782
|
+
"locator": {
|
|
2783
|
+
"type": "object"
|
|
2784
|
+
}
|
|
2785
|
+
},
|
|
2786
|
+
"additionalProperties": true
|
|
2787
|
+
},
|
|
2788
|
+
"to": {
|
|
2789
|
+
"type": "object",
|
|
2790
|
+
"properties": {
|
|
2791
|
+
"x": {
|
|
2792
|
+
"type": "number"
|
|
2793
|
+
},
|
|
2794
|
+
"y": {
|
|
2795
|
+
"type": "number"
|
|
2796
|
+
},
|
|
2797
|
+
"selector": {
|
|
2798
|
+
"type": "string"
|
|
2799
|
+
},
|
|
2800
|
+
"text": {
|
|
2801
|
+
"type": "string"
|
|
2802
|
+
},
|
|
2803
|
+
"text_contains": {
|
|
2804
|
+
"type": "string"
|
|
2805
|
+
},
|
|
2806
|
+
"text_equals": {
|
|
2807
|
+
"type": "string"
|
|
2808
|
+
},
|
|
2809
|
+
"locator": {
|
|
2810
|
+
"type": "object"
|
|
2811
|
+
}
|
|
2812
|
+
},
|
|
2813
|
+
"additionalProperties": true
|
|
2814
|
+
},
|
|
2815
|
+
"duration_ms": {
|
|
2816
|
+
"type": "integer",
|
|
2817
|
+
"minimum": 0
|
|
2818
|
+
},
|
|
2819
|
+
"steps": {
|
|
2820
|
+
"type": "integer",
|
|
2821
|
+
"minimum": 1,
|
|
2822
|
+
"maximum": 40
|
|
2823
|
+
}
|
|
2824
|
+
},
|
|
2825
|
+
"required": [
|
|
2826
|
+
"from",
|
|
2827
|
+
"to"
|
|
2828
|
+
],
|
|
2829
|
+
"additionalProperties": false
|
|
2830
|
+
},
|
|
2831
|
+
"x_actions": {
|
|
2832
|
+
"direction": "agent_to_html",
|
|
2833
|
+
"handler": "actionsJsonOverlay.pointerDrag",
|
|
2834
|
+
"scope": "active_surface",
|
|
2835
|
+
"source": {
|
|
2836
|
+
"files": [
|
|
2837
|
+
"src/content.js"
|
|
2838
|
+
],
|
|
2839
|
+
"symbols": [
|
|
2840
|
+
"actionsJsonOverlay.pointerDrag"
|
|
2841
|
+
],
|
|
2842
|
+
"component": "ActionsJsonOverlay"
|
|
2843
|
+
}
|
|
2844
|
+
}
|
|
2845
|
+
},
|
|
2846
|
+
{
|
|
2847
|
+
"name": "text.insert",
|
|
2848
|
+
"description": "Insert text into the focused editable target or a requested editable locator. Use a site-specific locator and pointer.click first when the target is not already focused.",
|
|
2849
|
+
"input_schema": {
|
|
2850
|
+
"type": "object",
|
|
2851
|
+
"properties": {
|
|
2852
|
+
"text": {
|
|
2853
|
+
"type": "string"
|
|
2854
|
+
},
|
|
2855
|
+
"target": {
|
|
2856
|
+
"type": "object",
|
|
2857
|
+
"description": "Optional editable target locator. Omit to use the focused editable element."
|
|
2858
|
+
},
|
|
2859
|
+
"mode": {
|
|
2860
|
+
"type": "string",
|
|
2861
|
+
"enum": [
|
|
2862
|
+
"append",
|
|
2863
|
+
"replace"
|
|
2864
|
+
],
|
|
2865
|
+
"default": "append"
|
|
2866
|
+
}
|
|
2867
|
+
},
|
|
2868
|
+
"required": [
|
|
2869
|
+
"text"
|
|
2870
|
+
],
|
|
2871
|
+
"additionalProperties": false
|
|
2872
|
+
},
|
|
2873
|
+
"x_actions": {
|
|
2874
|
+
"direction": "agent_to_html",
|
|
2875
|
+
"handler": "actionsJsonOverlay.textInsert",
|
|
2876
|
+
"scope": "active_surface",
|
|
2877
|
+
"source": {
|
|
2878
|
+
"files": [
|
|
2879
|
+
"src/content.js"
|
|
2880
|
+
],
|
|
2881
|
+
"symbols": [
|
|
2882
|
+
"actionsJsonOverlay.textInsert"
|
|
2883
|
+
],
|
|
2884
|
+
"component": "ActionsJsonOverlay"
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
},
|
|
2888
|
+
{
|
|
2889
|
+
"name": "keyboard.press",
|
|
2890
|
+
"description": "Dispatch a keyboard key or modifier chord to the focused page element. Use this for Enter/Escape/Tab flows after focusing a visible target.",
|
|
2891
|
+
"input_schema": {
|
|
2892
|
+
"type": "object",
|
|
2893
|
+
"properties": {
|
|
2894
|
+
"key": {
|
|
2895
|
+
"type": "string",
|
|
2896
|
+
"description": "Key name, or a compact chord such as Meta+A, Control+A, or Shift+Enter."
|
|
2897
|
+
},
|
|
2898
|
+
"modifiers": {
|
|
2899
|
+
"type": "array",
|
|
2900
|
+
"items": {
|
|
2901
|
+
"type": "string",
|
|
2902
|
+
"enum": [
|
|
2903
|
+
"Alt",
|
|
2904
|
+
"Control",
|
|
2905
|
+
"Ctrl",
|
|
2906
|
+
"Meta",
|
|
2907
|
+
"Cmd",
|
|
2908
|
+
"Command",
|
|
2909
|
+
"Shift",
|
|
2910
|
+
"Option"
|
|
2911
|
+
]
|
|
2912
|
+
}
|
|
2913
|
+
}
|
|
2914
|
+
},
|
|
2915
|
+
"required": [
|
|
2916
|
+
"key"
|
|
2917
|
+
],
|
|
2918
|
+
"additionalProperties": false
|
|
2919
|
+
},
|
|
2920
|
+
"x_actions": {
|
|
2921
|
+
"direction": "agent_to_html",
|
|
2922
|
+
"handler": "actionsJsonOverlay.keyboardPress",
|
|
2923
|
+
"scope": "active_surface",
|
|
2924
|
+
"source": {
|
|
2925
|
+
"files": [
|
|
2926
|
+
"src/content.js"
|
|
2927
|
+
],
|
|
2928
|
+
"symbols": [
|
|
2929
|
+
"actionsJsonOverlay.keyboardPress"
|
|
2930
|
+
],
|
|
2931
|
+
"component": "ActionsJsonOverlay"
|
|
2932
|
+
}
|
|
2933
|
+
}
|
|
2934
|
+
},
|
|
2935
|
+
{
|
|
2936
|
+
"name": "transfer.insert",
|
|
2937
|
+
"description": "Render a stored transfer item and insert it into a target editable element without resending the full payload through the model.",
|
|
2938
|
+
"input_schema": {
|
|
2939
|
+
"type": "object",
|
|
2940
|
+
"properties": {
|
|
2941
|
+
"label": {
|
|
2942
|
+
"type": "string"
|
|
2943
|
+
},
|
|
2944
|
+
"id": {
|
|
2945
|
+
"type": "string"
|
|
2946
|
+
},
|
|
2947
|
+
"target": {
|
|
2948
|
+
"type": "object"
|
|
2949
|
+
},
|
|
2950
|
+
"item_selector": {
|
|
2951
|
+
"type": "object"
|
|
2952
|
+
},
|
|
2953
|
+
"render": {
|
|
2954
|
+
"type": "object"
|
|
2955
|
+
},
|
|
2956
|
+
"mode": {
|
|
2957
|
+
"type": "string",
|
|
2958
|
+
"enum": [
|
|
2959
|
+
"replace",
|
|
2960
|
+
"append"
|
|
2961
|
+
]
|
|
2962
|
+
}
|
|
2963
|
+
},
|
|
2964
|
+
"additionalProperties": false
|
|
2965
|
+
},
|
|
2966
|
+
"x_actions": {
|
|
2967
|
+
"direction": "agent_to_html",
|
|
2968
|
+
"handler": "actionsJsonOverlay.transferInsert",
|
|
2969
|
+
"scope": "active_surface",
|
|
2970
|
+
"source": {
|
|
2971
|
+
"files": [
|
|
2972
|
+
"src/content.js",
|
|
2973
|
+
"src/background.js"
|
|
2974
|
+
],
|
|
2975
|
+
"symbols": [
|
|
2976
|
+
"actionsJsonOverlay.transferInsert"
|
|
2977
|
+
],
|
|
2978
|
+
"component": "ActionsJsonOverlay"
|
|
2979
|
+
}
|
|
2980
|
+
}
|
|
2981
|
+
},
|
|
2982
|
+
{
|
|
2983
|
+
"name": "storage.list",
|
|
2984
|
+
"description": "List the currently cached actions.json.storage bundle paths from extension local storage.",
|
|
2985
|
+
"input_schema": {
|
|
2986
|
+
"type": "object",
|
|
2987
|
+
"properties": {},
|
|
2988
|
+
"additionalProperties": false
|
|
2989
|
+
},
|
|
2990
|
+
"x_actions": {
|
|
2991
|
+
"direction": "agent_to_html",
|
|
2992
|
+
"handler": "actionsJsonOverlay.listStorageBundle",
|
|
2993
|
+
"scope": "persistent",
|
|
2994
|
+
"source": {
|
|
2995
|
+
"files": [
|
|
2996
|
+
"src/content.js"
|
|
2997
|
+
],
|
|
2998
|
+
"symbols": [
|
|
2999
|
+
"actionsJsonOverlay.listStorageBundle",
|
|
3000
|
+
"chrome.storage.local.get"
|
|
3001
|
+
],
|
|
3002
|
+
"component": "ActionsJsonOverlay"
|
|
3003
|
+
},
|
|
3004
|
+
"result_schema": {
|
|
3005
|
+
"type": "object",
|
|
3006
|
+
"properties": {
|
|
3007
|
+
"ok": {
|
|
3008
|
+
"type": "boolean"
|
|
3009
|
+
},
|
|
3010
|
+
"protocol": {
|
|
3011
|
+
"type": [
|
|
3012
|
+
"string",
|
|
3013
|
+
"null"
|
|
3014
|
+
]
|
|
3015
|
+
},
|
|
3016
|
+
"version": {
|
|
3017
|
+
"type": [
|
|
3018
|
+
"integer",
|
|
3019
|
+
"null"
|
|
3020
|
+
]
|
|
3021
|
+
},
|
|
3022
|
+
"synced_at_ms": {
|
|
3023
|
+
"type": [
|
|
3024
|
+
"integer",
|
|
3025
|
+
"null"
|
|
3026
|
+
]
|
|
3027
|
+
},
|
|
3028
|
+
"imported_at": {
|
|
3029
|
+
"type": [
|
|
3030
|
+
"string",
|
|
3031
|
+
"null"
|
|
3032
|
+
]
|
|
3033
|
+
},
|
|
3034
|
+
"entry_count": {
|
|
3035
|
+
"type": "integer"
|
|
3036
|
+
},
|
|
3037
|
+
"paths": {
|
|
3038
|
+
"type": "array",
|
|
3039
|
+
"items": {
|
|
3040
|
+
"type": "string"
|
|
3041
|
+
}
|
|
3042
|
+
}
|
|
3043
|
+
},
|
|
3044
|
+
"required": [
|
|
3045
|
+
"ok",
|
|
3046
|
+
"entry_count",
|
|
3047
|
+
"paths"
|
|
3048
|
+
]
|
|
3049
|
+
}
|
|
3050
|
+
}
|
|
3051
|
+
},
|
|
3052
|
+
{
|
|
3053
|
+
"name": "task.add",
|
|
3054
|
+
"description": "Add one or more tasks to the in-session task queue. Pass a single task as text, or many as a tasks array of strings. Use this to externalize a multi-step plan so you do not have to hold the whole loop in memory: enqueue every step first, then pull them one at a time with task.next.",
|
|
3055
|
+
"input_schema": {
|
|
3056
|
+
"type": "object",
|
|
3057
|
+
"properties": {
|
|
3058
|
+
"text": {
|
|
3059
|
+
"type": "string",
|
|
3060
|
+
"description": "A single task description."
|
|
3061
|
+
},
|
|
3062
|
+
"tasks": {
|
|
3063
|
+
"type": "array",
|
|
3064
|
+
"items": {
|
|
3065
|
+
"type": "string"
|
|
3066
|
+
},
|
|
3067
|
+
"description": "Multiple task descriptions to enqueue in order."
|
|
3068
|
+
}
|
|
3069
|
+
},
|
|
3070
|
+
"additionalProperties": false
|
|
3071
|
+
},
|
|
3072
|
+
"x_actions": {
|
|
3073
|
+
"direction": "agent_to_html",
|
|
3074
|
+
"handler": "task.add",
|
|
3075
|
+
"scope": "active_surface",
|
|
3076
|
+
"source": {
|
|
3077
|
+
"files": [
|
|
3078
|
+
"src/content.js"
|
|
3079
|
+
],
|
|
3080
|
+
"symbols": [
|
|
3081
|
+
"task.add"
|
|
3082
|
+
],
|
|
3083
|
+
"component": "ActionsJsonTaskQueue"
|
|
3084
|
+
}
|
|
3085
|
+
}
|
|
3086
|
+
},
|
|
3087
|
+
{
|
|
3088
|
+
"name": "task.next",
|
|
3089
|
+
"description": "Pull the next pending task from the queue and mark it in progress. Returns {done:false, task, remaining} while work remains, or {done:true, remaining:0, ...summary} when the queue is empty (including a summary of every completed and failed task to ground your final report). After finishing a task, call task.complete, then task.next again.",
|
|
3090
|
+
"input_schema": {
|
|
3091
|
+
"type": "object",
|
|
3092
|
+
"properties": {},
|
|
3093
|
+
"additionalProperties": false
|
|
3094
|
+
},
|
|
3095
|
+
"x_actions": {
|
|
3096
|
+
"direction": "agent_to_html",
|
|
3097
|
+
"handler": "task.next",
|
|
3098
|
+
"scope": "active_surface",
|
|
3099
|
+
"source": {
|
|
3100
|
+
"files": [
|
|
3101
|
+
"src/content.js"
|
|
3102
|
+
],
|
|
3103
|
+
"symbols": [
|
|
3104
|
+
"task.next"
|
|
3105
|
+
],
|
|
3106
|
+
"component": "ActionsJsonTaskQueue"
|
|
3107
|
+
}
|
|
3108
|
+
}
|
|
3109
|
+
},
|
|
3110
|
+
{
|
|
3111
|
+
"name": "task.complete",
|
|
3112
|
+
"description": "Report the in-progress task as finished. Optionally pass id to target a specific task, status \"failed\" if it could not be done, and result with a short outcome note. Then call task.next for the following task.",
|
|
3113
|
+
"input_schema": {
|
|
3114
|
+
"type": "object",
|
|
3115
|
+
"properties": {
|
|
3116
|
+
"id": {
|
|
3117
|
+
"type": "string",
|
|
3118
|
+
"description": "Task id to complete; defaults to the in-progress task."
|
|
3119
|
+
},
|
|
3120
|
+
"status": {
|
|
3121
|
+
"type": "string",
|
|
3122
|
+
"enum": [
|
|
3123
|
+
"done",
|
|
3124
|
+
"failed"
|
|
3125
|
+
],
|
|
3126
|
+
"description": "Outcome; defaults to done."
|
|
3127
|
+
},
|
|
3128
|
+
"result": {
|
|
3129
|
+
"type": "string",
|
|
3130
|
+
"description": "Short note on the outcome."
|
|
3131
|
+
}
|
|
3132
|
+
},
|
|
3133
|
+
"additionalProperties": false
|
|
3134
|
+
},
|
|
3135
|
+
"x_actions": {
|
|
3136
|
+
"direction": "agent_to_html",
|
|
3137
|
+
"handler": "task.complete",
|
|
3138
|
+
"scope": "active_surface",
|
|
3139
|
+
"source": {
|
|
3140
|
+
"files": [
|
|
3141
|
+
"src/content.js"
|
|
3142
|
+
],
|
|
3143
|
+
"symbols": [
|
|
3144
|
+
"task.complete"
|
|
3145
|
+
],
|
|
3146
|
+
"component": "ActionsJsonTaskQueue"
|
|
3147
|
+
}
|
|
3148
|
+
}
|
|
3149
|
+
},
|
|
3150
|
+
{
|
|
3151
|
+
"name": "task.list",
|
|
3152
|
+
"description": "Return the full task queue with each task id, text, status, and result, plus counts of completed/failed/pending. Use to review progress without changing state.",
|
|
3153
|
+
"input_schema": {
|
|
3154
|
+
"type": "object",
|
|
3155
|
+
"properties": {},
|
|
3156
|
+
"additionalProperties": false
|
|
3157
|
+
},
|
|
3158
|
+
"x_actions": {
|
|
3159
|
+
"direction": "agent_to_html",
|
|
3160
|
+
"handler": "task.list",
|
|
3161
|
+
"scope": "active_surface",
|
|
3162
|
+
"source": {
|
|
3163
|
+
"files": [
|
|
3164
|
+
"src/content.js"
|
|
3165
|
+
],
|
|
3166
|
+
"symbols": [
|
|
3167
|
+
"task.list"
|
|
3168
|
+
],
|
|
3169
|
+
"component": "ActionsJsonTaskQueue"
|
|
3170
|
+
}
|
|
3171
|
+
}
|
|
3172
|
+
},
|
|
3173
|
+
{
|
|
3174
|
+
"name": "task.clear",
|
|
3175
|
+
"description": "Remove all tasks from the queue and reset it. Use before seeding a fresh plan.",
|
|
3176
|
+
"input_schema": {
|
|
3177
|
+
"type": "object",
|
|
3178
|
+
"properties": {},
|
|
3179
|
+
"additionalProperties": false
|
|
3180
|
+
},
|
|
3181
|
+
"x_actions": {
|
|
3182
|
+
"direction": "agent_to_html",
|
|
3183
|
+
"handler": "task.clear",
|
|
3184
|
+
"scope": "active_surface",
|
|
3185
|
+
"source": {
|
|
3186
|
+
"files": [
|
|
3187
|
+
"src/content.js"
|
|
3188
|
+
],
|
|
3189
|
+
"symbols": [
|
|
3190
|
+
"task.clear"
|
|
3191
|
+
],
|
|
3192
|
+
"component": "ActionsJsonTaskQueue"
|
|
3193
|
+
}
|
|
3194
|
+
}
|
|
3195
|
+
}
|
|
3196
|
+
],
|
|
3197
|
+
"signals": [
|
|
3198
|
+
{
|
|
3199
|
+
"name": "overlay.closed",
|
|
3200
|
+
"description": "Emitted when the overlay is closed by the user.",
|
|
3201
|
+
"direction": "html_to_agent",
|
|
3202
|
+
"event": "actions-json:overlay-closed",
|
|
3203
|
+
"ingestion": "enabled",
|
|
3204
|
+
"payload": {
|
|
3205
|
+
"type": "object",
|
|
3206
|
+
"properties": {
|
|
3207
|
+
"overlay_id": {
|
|
3208
|
+
"type": "string"
|
|
3209
|
+
}
|
|
3210
|
+
}
|
|
3211
|
+
},
|
|
3212
|
+
"source": {
|
|
3213
|
+
"files": [
|
|
3214
|
+
"src/content.js"
|
|
3215
|
+
],
|
|
3216
|
+
"symbols": [
|
|
3217
|
+
"actions-json:overlay-closed"
|
|
3218
|
+
],
|
|
3219
|
+
"selectors": [
|
|
3220
|
+
"#__actions_json_overlay_runtime_host"
|
|
3221
|
+
]
|
|
3222
|
+
}
|
|
3223
|
+
},
|
|
3224
|
+
{
|
|
3225
|
+
"name": "overlay.minimized",
|
|
3226
|
+
"description": "Emitted when the overlay is collapsed to its title bar.",
|
|
3227
|
+
"direction": "html_to_agent",
|
|
3228
|
+
"event": "actions-json:overlay-minimized",
|
|
3229
|
+
"ingestion": "enabled",
|
|
3230
|
+
"payload": {
|
|
3231
|
+
"type": "object",
|
|
3232
|
+
"properties": {
|
|
3233
|
+
"overlay_id": {
|
|
3234
|
+
"type": "string"
|
|
3235
|
+
}
|
|
3236
|
+
}
|
|
3237
|
+
},
|
|
3238
|
+
"source": {
|
|
3239
|
+
"files": [
|
|
3240
|
+
"src/content.js"
|
|
3241
|
+
],
|
|
3242
|
+
"symbols": [
|
|
3243
|
+
"actions-json:overlay-minimized"
|
|
3244
|
+
],
|
|
3245
|
+
"selectors": [
|
|
3246
|
+
"#__actions_json_overlay_runtime_host"
|
|
3247
|
+
]
|
|
3248
|
+
}
|
|
3249
|
+
},
|
|
3250
|
+
{
|
|
3251
|
+
"name": "overlay.expanded",
|
|
3252
|
+
"description": "Emitted when the overlay is expanded from its minimized title-bar state.",
|
|
3253
|
+
"direction": "html_to_agent",
|
|
3254
|
+
"event": "actions-json:overlay-expanded",
|
|
3255
|
+
"ingestion": "enabled",
|
|
3256
|
+
"payload": {
|
|
3257
|
+
"type": "object",
|
|
3258
|
+
"properties": {
|
|
3259
|
+
"overlay_id": {
|
|
3260
|
+
"type": "string"
|
|
3261
|
+
}
|
|
3262
|
+
}
|
|
3263
|
+
},
|
|
3264
|
+
"source": {
|
|
3265
|
+
"files": [
|
|
3266
|
+
"src/content.js"
|
|
3267
|
+
],
|
|
3268
|
+
"symbols": [
|
|
3269
|
+
"actions-json:overlay-expanded"
|
|
3270
|
+
],
|
|
3271
|
+
"selectors": [
|
|
3272
|
+
"#__actions_json_overlay_runtime_host"
|
|
3273
|
+
]
|
|
3274
|
+
}
|
|
3275
|
+
},
|
|
3276
|
+
{
|
|
3277
|
+
"name": "overlay.launcher_opened",
|
|
3278
|
+
"description": "Emitted when the user opens a registered overlay from a visible-page launcher button.",
|
|
3279
|
+
"direction": "html_to_agent",
|
|
3280
|
+
"event": "actions-json:overlay-launcher-opened",
|
|
3281
|
+
"ingestion": "enabled",
|
|
3282
|
+
"payload": {
|
|
3283
|
+
"type": "object",
|
|
3284
|
+
"properties": {
|
|
3285
|
+
"launcher_id": {
|
|
3286
|
+
"type": "string"
|
|
3287
|
+
}
|
|
3288
|
+
}
|
|
3289
|
+
},
|
|
3290
|
+
"source": {
|
|
3291
|
+
"files": [
|
|
3292
|
+
"src/content.js"
|
|
3293
|
+
],
|
|
3294
|
+
"symbols": [
|
|
3295
|
+
"actions-json:overlay-launcher-opened"
|
|
3296
|
+
],
|
|
3297
|
+
"selectors": [
|
|
3298
|
+
"[data-actions-json-overlay-launcher]"
|
|
3299
|
+
]
|
|
3300
|
+
}
|
|
3301
|
+
}
|
|
3302
|
+
]
|
|
3303
|
+
}
|