Команды, файлы и сеть
Что агенту можно без вашего разрешения на компьютере и у сотрудника — папки, ключи, сеть команд — и как работают списки разрешённого.
Здесь — как устроены ограничения, внутри которых агент запускает команды и правит файлы. Кто разрешает шаг за их пределами, решает режим разрешений.
Файлы и папки
Агент на вашем компьютере запускает команды и правит файлы с ограничениями: внутри проекта —
свободно, за его пределами и в настройках инструментов проекта (.git, .svedum, .vscode,
.husky, .npmrc) — только с разрешения. Кэши менеджеров пакетов в домашней папке — npm,
bun, pnpm, pip, Go, Cargo и других — открыты: зависимости ставятся без полного доступа.
Ключи и токены в домашней папке — ~/.ssh, облачные, gh, профили браузеров — и пароли из
Связки ключей Mac агенту закрыты в любом режиме, кроме «Разрешать всё». Команда, которой они
нужны, — git push по SSH или git fetch, который берёт пароль у gh или из Связки ключей, —
упирается в эти ограничения и просит запуск с полным доступом, даже если сама спрятала свою
ошибку. Бывает, что команде сначала нужен сайт, а потом ключ: тогда карточки идут одна за другой,
и агенту не приходится просить заново.
Что команде понадобилось, проект запоминает. В следующий раз та же команда сразу просит нужное — одной карточкой, без неудачного запуска. Это не разрешение: решаете вы или проверка, как и в первый раз.
Сеть
На Mac командам агента закрыт интернет. Открыты «Разрешённые сайты» из «Настройки → Чат», а в режиме «Спрашивать» — ещё и реестры пакетов: npm, PyPI, crates, Go. Когда команде нужен другой сайт, появляется карточка «Выполнить команду» со списком сайтов:
- Разрешить — открыть эти сайты только для этого запуска;
- Разрешать всегда — добавить их в разрешённые сайты;
- Пропустить — оставить закрытыми.
Если агент заранее знает, какие сайты нужны команде, он называет их сразу, и карточка появляется до запуска. В режиме «Проверять» карточку сначала решает проверка. Локальные адреса (localhost) открыты: тесты с локальным сервером работают. Закрыты только прокси вашей системы — через них команда вышла бы в интернет.
У сотрудника сеть команд закрыта так же: в его облачном компьютере команда выходит только на сайты, которые вы ему разрешили навсегда («Разрешать всегда» на карточке в его чате), а в режиме «Спрашивать» — ещё и в реестры пакетов. Другой сайт открывает карточка. Скрипты рутин и хуки сеть сохраняют, поэтому скрипт рутины до сохранения показывается на карточке «Скрипт рутины». На Windows сеть пока открыта.
Программы, которые соединяются с сервером напрямую, а не через сайты по списку, — ssh,
whois, dig, клиенты баз данных, docker — агент запускает с полным доступом, и на Mac, и
у сотрудника. Появляется карточка «Выполнить команду» с пометкой «С полным доступом: команда
сможет менять любые файлы и ходить в сеть»; в режиме «Проверять» её сначала решает проверка.
Если на Mac такая программа всё же запустилась с ограничениями и не смогла соединиться,
«Сведум» это видит и показывает ту же карточку.
Разрешённые команды, пути и сайты
Списки видны и редактируются в «Настройки → Чат». Команды и пути из списков идут без вопроса. В режиме «Проверять» действуют списки путей и сайтов. Список команд там не действует: без проверки идут только команды, которые только читают, их перечень показан под списком.
- Разрешённые команды — совпадение по началу команды с границей слова:
gitразрешаетgit status, но неgitea. - Разрешённые сайты — хосты, куда команды агента ходят без вопроса, в обоих режимах:
registry.npmjs.orgили*.example.comдля поддоменов. - Разрешённые пути — файлы и папки вне проекта, которые агент может менять без вопроса. Разрешение папки покрывает всё внутри.
