# Подробный паспорт Шлюза

Редакция 2026-09-15

Статус: Редакция 15 сентября 2026 года; состояние функций уточняется документом готовности

## Область применения источника
Шлюз — браузерное расширение с чатом сайта, локальными видами и разрешёнными действиями во вкладке. Личное приложение называется Штрих. Node и Native Messaging host обслуживают существующие механизмы связи с устройством. Старое совместное название приложения и расширения больше не используется как описание текущего состава.

Проверенный кандидат Шлюза 1.6.0 связан со Штрихом и Node отдельным согласованным комплектом. Это не доказательство установки этого комплекта на каждом компьютере. Далее описаны механизмы транспорта, pairing и действий; поддержка платформ и общий сценарий подтверждаются конкретной поставкой.

## 1. Цель и смысл
Связать выбранную страницу с нужным исполнителем: показать чат, передать согласованный контекст, предложить изменение и выполнить только разрешённое действие. Работа остаётся видимой человеку, с возможностью остановки и отзыва.

Личный разговор может принадлежать Codex или Штриху; корпоративный маршрут — привязанному агенту Core через Node. Переключение не переносит историю автоматически. Для обычной работы в веб-Штате расширение не обязательно.

## 2. Пользователи и ценность

Сотрудник подключает свой компьютер и видит разрешения/остановку. Администратор
управляет корпоративной установкой и отзывом устройства. Агент получает ровно
те device capabilities, которые поддерживаются и разрешены на этом устройстве.
Ценность проверяется успешной локальной задачей, корректной остановкой, отсутствием
повторного эффекта и отсутствием доступа к неподключённой вкладке/машине.

## 3. Системная карта

```mermaid
flowchart LR
  Core[Двигатель: device command] --> Desktop[Desktop: identity и command guard]
  Desktop --> Host[Native Messaging host]
  Host --> Extension[Расширение браузера]
  Extension --> Tab[Разрешённая вкладка]
  Desktop --> Native[Разрешённые OS helpers]
  Tab --> Receipt[Результат / receipt]
  Native --> Receipt
  Receipt --> Core
  Person[Человек: разрешение / остановка] --> Desktop
```

Диаграмма сохраняет технические имена транспорта Node/Desktop и Extension. Личный чат Штриха подключается через отдельный проверяемый маршрут; это не означает нативный корпоративный вход Штриха. Прямые browser transports,
упомянутые upstream, не считаются автоматически принятыми в Ядре.

## 4. Части и возможности
| Часть | Ответственность | Граница |
|---|---|---|
| Расширение | Чат сайта и разрешённые действия | Выбранный профиль и вкладка |
| Node | Pairing и локальный транспорт | Совместимый зарегистрированный helper |
| Native host | Связь браузера с Node | Точная идентичность расширения |
| Штрих | Владелец связанной личной беседы | Самостоятельное приложение macOS |
| Core | Корпоративный агент и состояние | Серверные права компании |

Локальные виды и поддерживаемые скрипты сайта могут работать без доступного агента. Они не создают серверные полномочия. Дополнительный профиль диагностики сети не заменяет браузерные инструменты и не является обязательным для чата.

## 5. Источники и архитектура
Исходники кандидата включают расширение Manifest V3, чат, runtime модулей сайта, Native Messaging host и маршрутизацию Node. Поддержка конкретного браузера определяется манифестом и проверкой установки, а не сходством браузеров на Chromium.

Маршрут Штриха проверяет локальный протокол перед запросом. Маршрут TeamON использует существующую привязку устройства к Core. Прямой личный Codex — отдельный маршрут. Неизвестное имя маршрута не должно незаметно выбирать другого исполнителя.

## 6. Pairing и состояние

Целевой цикл: не подключён → одноразовое pairing → связанная идентичность →
доступен/сон/сетевая ошибка → возобновление → отзыв. Сетевая ошибка не стирает
identity, а истёкший/отозванный доступ не обходится автоматическим новым pairing.
Повторное подключение требует явного действия. Секрет хранится в проверенном
OS-хранилище; UI показывает статус, не raw bearer.

Upstream описывает durable command guard и at-least-once delivery. Это источник
для проверки повторов, а не доказательство exactly-once внешнего эффекта при
любом сбое. Core и устройство связывают command ID с единственным наблюдаемым
результатом; при неизвестном исходе требуется reconcile.

## 7. Контекст и локальные действия

Для браузерной задачи показывается выбранная вкладка/origin и разрешённое действие.
Пользователь может остановить работу. Redirect, смена вкладки, потеря target и
выход за разрешённый origin проверяются перед выполнением. Agent текст не
расширяет разрешения. Данные контекста содержат происхождение и время получения.

Скриншоты, запись и активность не включаются скрыто. Пакет не предоставляет агенту
доступ к паролям, cookies и OS-хранилищу секретов в качестве обычных инструментов.
Наличие приложения на компьютере не означает согласия на непрерывное наблюдение.

## 8. Владение данными и границы

Node хранит привязку устройства и квитанции транспорта. Шлюз — настройки расширения и временный разрешённый контекст. История корпоративной задачи принадлежит Core, личной связанной беседы — Штриху. Отзыв останавливает прежние сессии. Сроки хранения и удаления задаются конфигурацией; журналы не содержат секретов. Расширение не получает ключ модели.

## 9. Сбои и наблюдаемость

Сон/пробуждение: resume без создания второго poll/writer. Native host отсутствует:
явная диагностика, не бессрочное ожидание. Нет OS permission: конкретное действие
по включению и доступная остановка. Несовместимый протокол: отказ с указанием версий.
Дубль command ID: прежний receipt/обнаружение конфликта. Недоступен target: ошибка,
не действие на похожем окне. Отзыв во время задачи проверяется отдельно.

Наблюдаемость: connection state, последняя ошибка, версии, capability readiness,
command ID и результат. Содержимое вкладок и секреты не становятся обычным логом.

## 10. Установка и сопровождение

Отдельные подписанные installers по принятым ОС; extension доставляется способом,
разрешённым заказчиком. Native host/extension ID/OS helpers включаются в BOM.
После update сохраняется только действующая identity и проверяется совместимость.
Удаление снимает регистрацию native host и отзывает токены по выбранному процессу.
На первом демо используется один тестовый компьютер; поддержка остальных платформ
не выводится из успеха на нём. Старый teamon-edge не подставляется вместо Node.

## 11. Приёмка

ENT-09/10/11/28/30/34, DEMO-06/05/08. Install/pair → выбранная вкладка → инструмент →
receipt → stop/revoke → отрицательный тест другой вкладки/пользователя; sleep/resume;
повтор команды; update/uninstall. Для каждой ОС/браузера отдельная evidence.

## 12. Открытые решения

Поддерживаемые ОС/браузеры, точные версии/подписи, безопасное хранилище credentials
на каждой платформе, доступность helpers в закрытой сети, политики capture и
распространения расширения. Пока это задачи интеграции, а не готовая поставка.

Общий контекст: системная карта (см. оглавление документации), критерии приёмки (см. оглавление документации), план демо (см. оглавление документации).

## Разрешения и браузерный разговор
В интеграционном кандидате запрос привязан к сайту, профилю, беседе и исполнителю. При чтении результата проверяется актуальная привязка. Команда остановки содержит идентификатор показанной работы; устаревшая кнопка не отменяет следующий запрос.

Черновик сохраняется с проверкой ревизии. Если пользователь уже набрал новый текст, позднее подтверждение предыдущей отправки его не очищает. Большой ответ может отображаться частично с явным сообщением; это не разрешает обрезанному предложению стать действием.

Эти свойства проверены в кандидате совместного комплекта. Обновление действующего расширения и Node должно сохранить другие новые функции, после чего проводится реальная проверка в браузере.