# Разрешения

Источник: https://svedum.ru/docs/agents/permissions

> Что агент делает сам, а что — только после вашего «да». Настраивается под ваш уровень доверия.

## Команды и файлы

Агент на вашем компьютере запускает команды и правит файлы с ограничениями: внутри проекта —
свободно, за его пределами и в настройках инструментов проекта (`.git`, `.svedum`, `.vscode`,
`.husky`, `.npmrc`) — только с разрешения. Кэши менеджеров пакетов в домашней папке — npm,
bun, pnpm, pip, Go, Cargo и других — открыты: зависимости ставятся без полного доступа. Кто
даёт разрешение, решает режим разрешений; по умолчанию это «Проверять». Общий режим для всех
чатов на этом компьютере задают в «Настройки → Чат → Режим разрешений». Кнопка со щитом под
полем ввода, рядом с проектом, меняет режим только этого чата; агенты, которых он запускает,
начинают с того же режима. У рутины по расписанию режим её запусков выбирают в её настройках
на странице «Рутины» в боковой панели.

Ключи и токены в домашней папке — `~/.ssh`, облачные, `gh`, профили браузеров — агенту закрыты
в любом режиме, кроме «Разрешать всё». Команда, которой они нужны, например `git push` по SSH,
упирается в эти ограничения и просит запуск с полным доступом.

### Сеть

На Mac командам агента закрыт интернет. Открыты «Разрешённые сайты» из «Настройки →
Чат», а в режиме «Спрашивать» — ещё и реестры пакетов: npm, PyPI, crates, Go. Когда команде
нужен другой сайт, появляется карточка «Выполнить команду» со списком сайтов:

* **Разрешить** — открыть эти сайты только для этого запуска;
* **Открывать всегда** — добавить их в разрешённые сайты;
* **Пропустить** — оставить закрытыми.

Если агент заранее знает, какие сайты нужны команде, он называет их сразу, и карточка
появляется до запуска. В режиме «Проверять» карточку сначала решает проверка. Локальные
адреса (localhost) открыты: тесты с локальным сервером работают. Закрыты только прокси вашей
системы — через них команда вышла бы в интернет.

У сотрудника сеть команд закрыта так же: в его облачном компьютере команда выходит только на
сайты, которые вы ему открыли навсегда («Открывать всегда» на карточке в его чате), а в режиме
«Спрашивать» — ещё и в реестры пакетов. Другой сайт открывает карточка. Скрипты рутин и хуки
сеть сохраняют, поэтому скрипт рутины до сохранения показывается на карточке «Скрипт рутины». На Windows сеть пока открыта.

Программы, которые соединяются с сервером напрямую, а не через сайты по списку, — `ssh`,
`whois`, `dig`, клиенты баз данных, `docker` — агент запускает с полным доступом, и на Mac, и
у сотрудника. Появляется карточка «Выполнить команду» с пометкой «С полным доступом: команда
сможет менять любые файлы и ходить в сеть»; в режиме «Проверять» её сначала решает проверка.
Если на Mac такая программа всё же запустилась с ограничениями и не смогла соединиться,
«Сведум» это видит и показывает ту же карточку.

| Режим         | Как работает                                                                                   |
| ------------- | ---------------------------------------------------------------------------------------------- |
| Проверять     | Каждый шаг, который может что-то изменить, сначала проверяет модель; опасное она останавливает |
| Спрашивать    | Спрашивать, прежде чем выйти за папки проекта                                                  |
| Разрешать всё | Разрешает всё: команды и запись файлов — без вопросов и без ограничений                        |

В режиме «Спрашивать», а в «Проверять» — когда решать нужно вам, в чате появляется карточка
«Выполнить команду» или «Изменить файл»:

* **Разрешить** — один раз;
* **Запускать всегда** / **Разрешать всегда** — добавить команду или путь в разрешённые;
* **Пропустить** — отказать, агент поищет другой путь.

### Проверять

В режиме «Проверять» вместо вас решает отдельная проверка. Она видит до запуска каждую
команду, кроме чтения, запросы в интернет, действия в подключениях, запуск агентов и запись
вне проекта. Обычную работу проверка пропускает, опасное останавливает, а агент получает
причину и ищет другой путь. Если проверка
трижды подряд остановила агента или не смогла ответить, появляется обычная карточка. Что
именно проверяется, как задать запрет или разрешение словами в чате и где у режима пределы —
→ [Проверка разрешений](https://svedum.ru/docs/agents/permission-review)

### Разрешённые команды и пути

В тех же настройках видны и редактируются списки. Команды и пути из списков идут без вопроса.
В режиме «Проверять» действуют списки путей и сайтов. Список команд там не действует: без
проверки идут только команды, которые только читают, их перечень показан под списком.

* **Разрешённые команды** — совпадение по началу команды с границей слова: `git`
  разрешает `git status`, но не `gitea`.
* **Разрешённые сайты** — хосты, куда команды агента ходят без вопроса, в обоих режимах:
  `registry.npmjs.org` или `*.example.com` для поддоменов.
* **Разрешённые пути** — файлы и папки вне проекта, которые агент может менять без
  вопроса. Разрешение папки покрывает всё внутри.

## Действия во внешних сервисах

Перед изменениями во внешних сервисах — отправить письмо, опубликовать пост, создать
задачу — агент спрашивает карточкой. На ней действие и подключение, например «Отправка
письма · Яндекс Почта», и поля, которые уйдут в сервис: кому, тема, текст. «Показать как
JSON» показывает вызов целиком. Если подключение не назвало действие и поля, на карточке
«Действие в подключении» и их технические имена. В режиме «Проверять» карточку сначала
решает проверка. Чтение данных разрешения не требует.

«Разрешать всегда» запоминает конкретное действие. Список таких действий —
«Настройки → Чат → Действия в подключениях без запроса»; оттуда же можно вернуть вопрос.

## Сотрудники и внешний мир

Сотрудники вдобавок следуют правилу: письма и сообщения людям, публикации, отправка
форм, заказы и оплаты — только если вы попросили именно это или подтвердили черновик.
→ [Сотрудники](https://svedum.ru/docs/employees#сотрудник-действует-наружу-только-с-вашего-согласия)

## Запуски на вашем компьютере из облака

Сотрудники и облачные агенты не могут запустить работу на вашем компьютере без вашего
согласия. Постоянные разрешения видны в «Настройки → Этот компьютер». →
[Как сотрудник раздаёт работу](https://svedum.ru/docs/employees/agents#на-вашем-компьютере)
