Add bounded MCP text input for Sprinter programs

This commit is contained in:
Александр Петров
2026-09-17 23:17:38 +03:00
parent 958ad0ae0f
commit e8189b137a
11 changed files with 195 additions and 18 deletions
+3 -1
View File
@@ -30,7 +30,7 @@
| `read_screen_pixels` | `read_screen_pixels` | Проверено; до 8192 pen16 пикселей, кадр/время/stale в ответе |
| `list_ports` | `list_ports` | Проверено; структурированные tag/маска/имя, предел 512 портов и 4096 полей |
| `press_key` | `press_key` | Проверено на `hello` через `getchar()`: один символ/enter/space/tab на 1..60 кадров, только при running CPU и с control lease; удержанные клавиши отпускаются при stop/ошибке. Имена прочих физических клавиш пока не поддержаны |
| `type_string` | — | Нужна очередь ввода с release при stop/disconnect |
| `type_string` | `type_string` | Проверено на `tests/gets`: `Ab9` + Enter напечатаны, CPU остановился на C-строке после `gets()`. До 64 символов из PC-раскладки, предварительная проверка всей строки, пауза между клавишами; набор прекращается при stop. Асинхронная очередь пока не нужна для этого ограниченного вызова |
| `type_text` | — | Нужна отдельная проверка natural keyboard и прямой физической клавиатуры |
| `move_mouse` | — | Нужна owner-очередь относительных осей |
| `click_mouse` | — | Нужна owner-очередь кнопок |
@@ -46,6 +46,8 @@
`run_managed_mcp_probe.py` через официальный MCP-клиент проверяет
`disassemble_logical` в `main`, `list_breakpoints`, `press_key("x")` и
остановку на строке после `getchar()`.
`run_type_string_probe.py` вводит `Ab9` и Enter в `tests/gets`, проверяет
остановку после `gets()` и сохраняет снимок с напечатанной строкой.
`run_raw_mcp_hello_probe.py`
проверяет отдельный raw plugin на том же приложении. Несколько процессов MAME
с MCP одновременно не проверялись.