СведумДокументация

Команды, файлы и сеть

Что агенту можно без вашего разрешения на компьютере и у сотрудника — папки, ключи, сеть команд — и как работают списки разрешённого.

Здесь — как устроены ограничения, внутри которых агент запускает команды и правит файлы. Кто разрешает шаг за их пределами, решает режим разрешений.

Файлы и папки

Агент на вашем компьютере запускает команды и правит файлы с ограничениями: внутри проекта — свободно, за его пределами и в настройках инструментов проекта (.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 для поддоменов.
  • Разрешённые пути — файлы и папки вне проекта, которые агент может менять без вопроса. Разрешение папки покрывает всё внутри.

На странице