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
+10 -4
View File
@@ -11,8 +11,8 @@
`MAME.HT/plugins/mamebridge` вместе с `src/mame_mcp.py` публикует 30
raw-инструментов. Удалённый на этапе А `src/mame_bridge.lua` использовал тот
же Python frontend, но обрабатывал только 16 команд и не отвечал при hard-stop.
`toolchain/sdbg_mcp.py` публикует 28 C-инструментов через общую с DAP сессию
(30 в автономном режиме с командами start/stop).
`toolchain/sdbg_mcp.py` публикует 29 C-инструментов через общую с DAP сессию
(31 в автономном режиме с командами start/stop).
**Цель — покрыть возможности всех 30 raw-инструментов в C-сессии, а не
механически скопировать имена и небезопасную семантику.** Полный raw MCP
остаётся отдельным режимом для задач без C-пакета и других машин MAME.
@@ -146,8 +146,14 @@ pass-through и особенности адресов перечислены п
Одиночный публичный `press_key` теперь требует running CPU и control lease,
удерживает клавишу 1..60 кадров и отпускает её при stop/ошибке. Автономный
официальный MCP-клиент ввёл `x` в ожидающий `getchar()` и попал на следующую
C-строку. Очередь строки, другие имена физических клавиш и мышь ещё не
реализованы; поэтому строка raw `press_key` покрыта частично.
C-строку. Асинхронная очередь событий, другие имена физических клавиш и мышь
ещё не реализованы; поэтому строка raw `press_key` покрыта частично.
Ограниченный `type_string` уже выполняет последовательность из 1..64
символов PC-раскладки с предварительной проверкой, покадровым удержанием и
отпусканием, прерыванием при stop. На `tests/gets` строка `Ab9` и Enter
дошли до `gets()`; программа напечатала её и остановилась на следующей
C-строке. Это покрывает типовой строковый ввод, но не natural keyboard и
не асинхронную очередь произвольных событий мыши/портов.
Читающий `list_breakpoints` теперь показывает логические C-точки всех
владельцев, адреса и полученные от MAME условия банковской страницы;
удалять чужие точки он не позволяет. Живой MCP-прогон увидел личную точку