Skip to content

Commit 16c9055

Browse files
feat(agent-os): add keyboard key/modifier aliases and Playwright mappings
1 parent e9575c1 commit 16c9055

2 files changed

Lines changed: 114 additions & 0 deletions

File tree

src/askui/tools/agent_os.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,16 @@
2323

2424
ModifierKey = Literal[
2525
"command",
26+
"os_modifier",
2627
"alt",
28+
"alt_left",
29+
"alt_right",
2730
"control",
31+
"control_left",
32+
"control_right",
2833
"shift",
34+
"shift_left",
35+
"shift_right",
2936
"right_shift",
3037
]
3138
"""Modifier keys for keyboard actions."""
@@ -36,14 +43,27 @@
3643
"enter",
3744
"tab",
3845
"escape",
46+
"insert",
3947
"up",
48+
"arrow_up",
4049
"down",
50+
"arrow_down",
4151
"right",
52+
"arrow_right",
4253
"left",
54+
"arrow_left",
4355
"home",
4456
"end",
4557
"pageup",
58+
"page_up",
4659
"pagedown",
60+
"page_down",
61+
"capslock",
62+
"print",
63+
"snapshot",
64+
"printscreen",
65+
"context_menu",
66+
"menu",
4767
"f1",
4868
"f2",
4969
"f3",
@@ -56,6 +76,49 @@
5676
"f10",
5777
"f11",
5878
"f12",
79+
"f13",
80+
"f14",
81+
"f15",
82+
"f16",
83+
"f17",
84+
"f18",
85+
"f19",
86+
"f20",
87+
"f21",
88+
"f22",
89+
"f23",
90+
"f24",
91+
"numpad_lock",
92+
"numpad_0",
93+
"numpad_1",
94+
"numpad_2",
95+
"numpad_3",
96+
"numpad_4",
97+
"numpad_5",
98+
"numpad_6",
99+
"numpad_7",
100+
"numpad_8",
101+
"numpad_9",
102+
"numpad_+",
103+
"numpad_-",
104+
"numpad_*",
105+
"numpad_/",
106+
"numpad_.",
107+
"media_volume_mute",
108+
"audio_mute",
109+
"media_volume_down",
110+
"audio_vol_down",
111+
"media_volume_up",
112+
"audio_vol_up",
113+
"media_stop",
114+
"audio_stop",
115+
"media_play_or_pause",
116+
"audio_play",
117+
"audio_pause",
118+
"media_prev",
119+
"audio_prev",
120+
"media_next",
121+
"audio_next",
59122
"space",
60123
"0",
61124
"1",

src/askui/tools/playwright/agent_os.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,9 +393,16 @@ def _convert_key(self, key: PcKey | ModifierKey) -> str:
393393
# Map our modifier keys to Playwright format
394394
modifier_map: dict[PcKey | ModifierKey, str] = {
395395
"command": "Meta",
396+
"os_modifier": "Meta",
396397
"alt": "Alt",
398+
"alt_left": "Alt",
399+
"alt_right": "AltGraph",
397400
"control": "Control",
401+
"control_left": "Control",
402+
"control_right": "Control",
398403
"shift": "Shift",
404+
"shift_left": "Shift",
405+
"shift_right": "Shift",
399406
"right_shift": "Shift",
400407
}
401408

@@ -410,14 +417,58 @@ def _convert_key(self, key: PcKey | ModifierKey) -> str:
410417
"enter": "Enter",
411418
"tab": "Tab",
412419
"escape": "Escape",
420+
"insert": "Insert",
413421
"up": "ArrowUp",
422+
"arrow_up": "ArrowUp",
414423
"down": "ArrowDown",
424+
"arrow_down": "ArrowDown",
415425
"right": "ArrowRight",
426+
"arrow_right": "ArrowRight",
416427
"left": "ArrowLeft",
428+
"arrow_left": "ArrowLeft",
417429
"home": "Home",
418430
"end": "End",
419431
"pageup": "PageUp",
432+
"page_up": "PageUp",
420433
"pagedown": "PageDown",
434+
"page_down": "PageDown",
435+
"capslock": "CapsLock",
436+
"print": "PrintScreen",
437+
"snapshot": "PrintScreen",
438+
"printscreen": "PrintScreen",
439+
"context_menu": "ContextMenu",
440+
"menu": "ContextMenu",
441+
"numpad_lock": "NumLock",
442+
"numpad_0": "Numpad0",
443+
"numpad_1": "Numpad1",
444+
"numpad_2": "Numpad2",
445+
"numpad_3": "Numpad3",
446+
"numpad_4": "Numpad4",
447+
"numpad_5": "Numpad5",
448+
"numpad_6": "Numpad6",
449+
"numpad_7": "Numpad7",
450+
"numpad_8": "Numpad8",
451+
"numpad_9": "Numpad9",
452+
"numpad_+": "NumpadAdd",
453+
"numpad_-": "NumpadSubtract",
454+
"numpad_*": "NumpadMultiply",
455+
"numpad_/": "NumpadDivide",
456+
"numpad_.": "NumpadDecimal",
457+
"media_volume_mute": "AudioVolumeMute",
458+
"audio_mute": "AudioVolumeMute",
459+
"media_volume_down": "AudioVolumeDown",
460+
"audio_vol_down": "AudioVolumeDown",
461+
"media_volume_up": "AudioVolumeUp",
462+
"audio_vol_up": "AudioVolumeUp",
463+
"media_stop": "MediaStop",
464+
"audio_stop": "MediaStop",
465+
"media_play_or_pause": "MediaPlayPause",
466+
"audio_play": "MediaPlayPause",
467+
"audio_pause": "MediaPlayPause",
468+
"media_prev": "MediaTrackPrevious",
469+
"audio_prev": "MediaTrackPrevious",
470+
"media_next": "MediaTrackNext",
471+
"audio_next": "MediaTrackNext",
421472
"space": " ",
422473
}
423474

0 commit comments

Comments
 (0)