Высокопроизводительная модульная платформа межмашинного взаимодействия (LAN Backbone)
Прямой P2P мост Linux <-> Windows | Модульная слоистая архитектура | Двойной режим: TUI для человека и Headless JSON для ИИ-агентов
Bridge Local — это легковесный, высокопроизводительный P2P мост между рабочими станциями Linux и Windows в локальной сети (LAN).
Платформа спроектирована как универсальная шина межмашинного взаимодействия, исключающая зависимость от тяжеловесных сторонних протоколов (Samba, SMB, NFS, WebDAV) и внешних облачных сервисов:
- Общее хранилище («Карман» / Pocket Storage): Потоковая передача файлов блоками по 64 КБ с валидацией контрольных сумм SHA-256 и атомарным переименованием.
- Мгновенный обмен заметками (Notes Engine): Оперативная отправка текста, гиперссылок и кодовых фрагментов между экранами с сохранением в JSONL-журнале.
- Удаленное выполнение PowerShell (Remote Execution): Запуск административных скриптов на Windows с консоли Linux с принудительной кодировкой UTF-8 (
chcp 65001), контролем таймаутов и автоматическим каскадным уничтожением зависших дочерних процессов. - Двойной интерфейс оператора:
-
Для человека: Полноэкранный терминальный TUI с палитрой Titanium Vivid, переключением 8 вкладок через стрелки ← / →, цифры 1..8, Tab и скроллингом списков.
-
Для ИИ-агентов (Antigravity agy_cli): Строгий машиночитаемый режим
--jsonс детерминированными кодами возврата (0..5), нулевым ANSI-мусором и отсутствием блокировок ввода.
-
+-------------------------------------------------------------------------------+
| ОПЕРАТОРСКИЙ СЛОЙ |
| ┌──────────────────────────────┐ ┌───────────────────────────────┐ |
| │ Human Operator (TUI/CLI) │ │ AI Operator (agy_cli) │ |
| │ Rich, 8 Tabs, Spinners │ │ --json, Strict Exit Codes │ |
| └──────────────┬───────────────┘ └───────────────┬───────────────┘ |
+──────────────────┼────────────────────────────────────────┼───────────────────+
| ▼ ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ bridge_client_linux │ |
| │ ConnectionManager | ExecClient | PocketClient | NotesClient │ |
| │ Interactive TUI Engine (8 Tabs, Arrows/Digits/Tab Nav) │ |
| └──────────────────────────────────┬────────────────────────────────────┘ |
+──────────────────────────────────────┼────────────────────────────────────────+
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ bridge_core │ |
| │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────┐ │ |
| │ │ protocol.py ('BR') │ │ security.py (HMAC) │ │ models.py │ │ |
| │ └───────────────────────┘ └──────────────────────┘ └──────────────┘ │ |
| │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────┐ │ |
| │ │ transport.py (Async) │ │ pocket.py (Storage) │ │ notes.py │ │ |
| │ └───────────────────────┘ └──────────────────────┘ └──────────────┘ │ |
| │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────┐ │ |
| │ │ heartbeat.py (Probe) │ │ logger.py (JSONL) │ │ codec.py │ │ |
| │ └───────────────────────┘ └──────────────────────┘ └──────────────┘ │ |
| └──────────────────────────────────┬────────────────────────────────────┘ |
+──────────────────────────────────────┼────────────────────────────────────────+
| │ TCP Streaming (Port 9732) |
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ bridge_agent_win │ |
| │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────┐ │ |
| │ │ service.py (SCM) │ │ executor.py (Posh) │ │ tray.py │ │ |
| │ └───────────────────────┘ └──────────────────────┘ └──────────────┘ │ |
| │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────┐ │ |
| │ │ context_menu.py │ │ Watchdog PocketSync │ │ process_kill │ │ |
| │ └───────────────────────┘ └──────────────────────┘ └──────────────┘ │ |
| └───────────────────────────────────────────────────────────────────────┘ |
+-------------------------------------------------------------------------------+
- Среда выполнения: Python 3.12 - 3.14. Доступны автономные x64-дистрибутивы без внешних зависимостей.
- Типизация и контракты: Pydantic V2 с полной изоляцией DTO-моделей (
bridge_core.models). - Бинарный транспорт: Собственный Length-Prefixed Wire Framing: 2 байта маркера
'BR'(0x42 0x52), 4 байта длины (Big-Endian uint32) и полезная нагрузка до 64 МБ. - Криптография и безопасность: HMAC-SHA256 подпись каждого фрейма на базе Pre-Shared Key (PSK), контроль дрейфа часов (Clock Skew) и LRU-кэш одноразовых номеров Nonce для защиты от Replay-атак.
- Удаленный исполнитель: Асинхронный PowerShell Runner с принудительной инициализацией UTF-8 (
chcp 65001), контролем таймаутов и уничтожителем дерева процессов (taskkill /F /T). - Служба Windows: Демон Windows SCM на базе
pywin32(servicemanager) с политикой автоматического восстановления при сбоях. - Терминальный клиент: Typer CLI + Rich TUI с полноэкранным рендерингом в альтернативном экранном буфере.
- Скачайте и распакуйте релизный архив
BridgeLocal-Windows-x64.zip(например, вC:\BridgeLocal). - Запустите двойным кликом
setup_connection.bat:- Мастер определит активный IPv4-адрес сетевой карты (например,
192.168.1.150). - Подтвердите порт
9732и секретный токен PSK.
- Мастер определит активный IPv4-адрес сетевой карты (например,
- Выберите режим запуска:
- Единый центр управления: Запустите
start.bat(главное интерактивное меню). - В системном трее Windows: Запустите
run_tray.bat(значок в области уведомлений рядом с часами). - Для отладки в окне: Запустите
run_agent.bat. - Для постоянной фоновой службы: Кликните правой кнопкой по
install_service.bat-> «Запуск от имени администратора».
- Единый центр управления: Запустите
- Распакуйте
BridgeLocal-Linux-x64.zip(или установите черезuv tool install .):chmod +x bridge-cli
- Подключитесь к машине Windows:
bridge-cli connect 192.168.1.150:9732
- Проверьте качество связи:
bridge-cli ping
- Запустите терминальный интерфейс:
bridge-cli tui
# 1. Прямая отправка файлов в удаленный карман Windows (Direct File Drop):
bridge-cli send document.pdf archive.zip
# 2. Мгновенная отправка заметки или ссылки:
bridge-cli note send "https://github.com/Anhelm01/Bridge_Local"
# 3. Удаленное выполнение команды PowerShell:
bridge-cli exec "Get-Service -Name BridgeLocalAgent"
# 4. Просмотр сводного статуса всех подсистем:
bridge-cli status
# 5. Двунаправленная синхронизация общего хранилища файлов:
bridge-cli pocket syncИнтерфейс запускается командой bridge-cli tui (или bridge-cli без аргументов в интерактивном терминале). Он построен на базе палитры Titanium Vivid и разделен на 8 функциональных экранов:
[BRIDGE] █ [SPLASH] │ [DASH] │ [POCKET] │ [NOTES] │ [EXEC] │ [CONFIG] │ [DEV] │ [CONNECT]
| Клавиша | Вкладка | Описание |
|---|---|---|
1 / F1 |
SPLASH | Фирменный экран приветствия BRIDGES Master и аппаратная Neofetch-сводка. |
2 / F2 |
DASH | Главная операционная панель: статус связи, пинг, ресурсы Windows-агента, очереди файлов. |
3 / F3 |
Таблица файлов кармана, направление синхронизации, хэши SHA-256 и строка прямой отправки файлов (PUSH FILE >). |
|
4 / F4 |
NOTES | Лента текстовых сообщений и ссылок с отметками времени и автором, строка ввода новой заметки (NOTE >). |
5 / F5 |
EXEC | Удаленный терминал PowerShell: журнал выполненных команд, потоки stdout/stderr и строка ввода (PS C:\>). |
6 / F6 |
CONFIG | Реестр зарегистрированных узлов сети, сетевые адреса, тайминги и статус HMAC-SHA256. |
7 / F7 |
DEV | Диагностический журнал трассировки сетевых пакетов, таймингов fail-fast и системных путей. |
8 / F8 |
CONNECT | Быстрая перенастройка целевого узла (IP, порт, токен) без выхода из TUI. |
Стрелка Влево(←) /Стрелка Вправо(→): Мгновенное переключение на предыдущую / следующую вкладку.Цифры 1..8: Прямой переход к вкладке 1..8 в режимах просмотра (или черезAlt+1..Alt+8).Tab/Shift+Tab: Последовательное переключение вкладок вперед и назад.Стрелка Вверх/Стрелка Вниз(↑/↓): Построчный вертикальный скроллинг списков файлов в POCKET, заметок в NOTES и журнала в DEV.Page Up/Page Down: Постраничный скроллинг списков на высоту экрана.Enter: Отправка введенного текста (команды, пути файла или заметки).Escape: Очистка строки ввода / быстрый возврат на вкладку DASH.Ctrl+C/Ctrl+Q: Выход из TUI с корректным закрытием экранного буфера.
Для интеграции с ИИ-агентами (Antigravity CLI agy_cli) каждая команда bridge-cli поддерживает флаг --json:
bridge-cli exec "Get-Process -Name BridgeLocalAgent" --json- Вывод в
stdoutпредставляет собой чистый JSON без ANSI-последовательностей оформления. - Процесс гарантированно не блокируется на
stdin. - Стандартизированные коды завершения процесса (
ExitCode):0(SUCCESS): Успешное завершение.1(GENERAL_ERROR): Ошибка синтаксиса аргументов или внутренняя ошибка.2(NETWORK_ERROR): Целевой хост недоступен, соединение отклонено.3(AUTH_ERROR): Ошибка PSK-токена, неверная подпись HMAC, replay-атака.4(COMMAND_FAILED): Команда PowerShell завершилась с ненулевым кодом.5(TIMEOUT): Превышен лимит времени выполнения команды или ответа RPC.
Подробная техническая и эксплуатационная документация проекта расположена в каталоге docs/:
- docs/MANUAL.md — Единое руководство оператора и администратора: пошаговая установка с нуля на Windows и Linux, настройка службы SCM, повседневная работа с TUI/CLI и устранение неполадок.
- docs/ARCHITECTURE.md — Архитектурный обзор платформы: модульная изоляция слоев (
bridge_core,bridge_agent_win,bridge_client_linux), модели данных, отказоустойчивость. - docs/CLI_REFERENCE.md — Полный справочник командных интерфейсов: все команды и опции
bridge-cliиbridge-agent, режим--json, таблица кодов завершения и раскладка клавиш TUI. - docs/CONFIGURATION.md — Справочник конфигурационного файла
bridge.toml: описание всех секций, значения по умолчанию, правила каскадного поиска и типовые профили. - docs/PROTOCOL_SPEC.md — Спецификация сетевого протокола: 6-байтовый бинарный заголовок фрейма 'BR', конверт безопасности HMAC-SHA256, формат сообщений JSON-RPC 2.0 и коды ошибок.