# Файлы

> Где лежат файлы воркспейса, как их загружать (в том числе целыми папками), открывать, скачивать и удалять, как увидеть веб-страницу в готовом виде и поменять в ней слова, как сохранить файл в PDF, как каждое изменение сохраняется версией, которую можно сравнить и восстановить, какие есть ограничения и как агент показывает файлы в ответах.

Source: https://eggent.ai/r/docs/files/

У каждого проекта своя папка с файлами. Агент работает прямо в ней: читает то, что ты загрузил, и кладёт туда то, что сделал.

## Панель «Файлы» {#panel}

Кнопка **Файлы** в шапке открывает дерево файлов справа от чата. Оно показывает папку текущего проекта (или оркестратора) и остаётся открытым при переходах между экранами. На телефоне панель открывается поверх чата.

В дереве:

- **выделен открытый файл** и текущая папка;
- **папки** раскрываются по клику и остаются раскрытыми, когда ты переходишь в другой чат или на другой экран;
- у каждой папки есть кнопки: **загрузить файлы**, **загрузить папку**, **скачать архивом .zip**, **новый файл**, **новая папка**; верхняя строка (`/`) скачивает всю папку воркспейса;
- у каждого файла — **открыть**, **скачать** и **удалить**.

Клик по файлу открывает его **в этой же панели, рядом с чатом**, так что разговор остаётся перед глазами: текст и код можно прочитать и отредактировать в редакторе с номерами строк и подсветкой (**Сохранить** или Cmd/Ctrl+S), веб-страницу — увидеть в готовом виде (см. [Страницы](#pages)), картинку — посмотреть, аудио — прослушать. Панель расширяется под файл — ширину меняет перетаскивание её левого края, она запоминается. Стрелка возвращает к дереву, а **Открыть на всю страницу** показывает файл на отдельном экране. Так же открываются путь к файлу, который агент назвал в ответе, и файл из списка под ответом; Cmd/Ctrl-клик открывает полную страницу в новой вкладке.

## Загрузка {#upload}

- **Файлы** — кнопкой у нужной папки или перетаскиванием на папку.
- **Папка целиком** — кнопкой «загрузить папку»: переносится вся структура вложенных папок, как на компьютере. Выбор папки есть в браузерах на компьютере; на iPhone кнопка выбирает файлы.
- **В чат** — вложения сообщения хранятся вместе с чатом. Если файл нужен для всей работы, а не одного разговора, загрузи его в проект.

Если файл с таким именем уже есть, Eggent спросит, заменить ли его.

> [!NOTE]
> Одна загрузка — не больше **100 МБ**. Большие папки загружаются несколькими частями автоматически, так что ограничение касается только размера одного файла.

## Открыть и скачать {#open}

- **Открыть** — веб-страницы (`.html`), PDF и картинки открываются в новой вкладке уже в готовом виде. Это удобно, когда агент собрал сайт или отчёт: его можно сразу посмотреть. Страница открывается в изолированном режиме и не имеет доступа к твоему воркспейсу.
- **Скачать** — любой файл скачивается кнопкой скачивания. Имена на русском и других языках сохраняются.

## Страницы {#pages}

Веб-страница (`.html`) открывается **в готовом виде**, со стилями и картинками из папки рядом с ней; кнопка **Код** переключает на исходник. Страница показывается изолированно: её скрипты работают, но не могут добраться до твоего воркспейса или что-то куда-то отправить.

- **Выбрать** позволяет указать на часть страницы: щелчок выбирает блок, и агент рядом с чатом видит именно этот кусок файла — так что «сделай этот заголовок короче» относится к нему. **Показать в коде** находит его в исходнике.
- **Двойной щелчок меняет слова** блока прямо на странице; Enter сохраняет, Esc отменяет. В файле меняются только эти слова — всё остальное остаётся как было, байт в байт, — а правка становится версией в [истории файла](#history). Всё остальное (новый блок, стиль) — через агента или в коде.
- Если файл изменился, пока страница была открыта, она показывается заново и ничего не записывается.

## Сохранить в PDF {#pdf}

Кнопка с принтером рядом с файлом открывает копию для печати и диалог печати браузера: выбери **Сохранить как PDF**. Веб-страница печатается такой, как выглядит на экране: всё, что появляется при прокрутке, показано, анимации остановлены, шапка, которая держится на экране, отпущена, чтобы не закрывать каждую страницу, фон сохранён, а блок по возможности не разрезается между двумя страницами. Markdown печатается как документ, остальной текст — как есть.

## Общий доступ и согласование {#company}

В воркспейсе, который входит в [компанию](https://eggent.ai/r/docs/company.md), у панели и страницы файла ещё две кнопки: **Поделиться** открывает файл коллегам для просмотра, комментариев или правки ([Общие файлы](https://eggent.ai/r/docs/company.md#shares)), а **Согласование** отправляет коллегам по порядку на согласование версию, которая в файле сейчас ([Согласования](https://eggent.ai/r/docs/company.md#approvals)). Строка над файлом говорит, когда он открыт коллегам или на согласовании.

## Папка одним архивом {#zip}

Кнопка архива у папки (и у верхней строки, которая означает весь проект) скачивает её одним файлом `.zip`: структура, имена на русском и других языках и признак исполняемого файла сохраняются. Архив собирается по мере отправки, поэтому большая папка не нагружает воркспейс.

- Файлы с секретами в архив **не попадают**: файлы `.env`, `.mcp.json`, `auth.json`, файлы ключей и сертификатов (`.pem`, `.key`, `.p12`), облачные учётные данные (`credentials.json`, ключи сервисных аккаунтов, `kubeconfig`, `*.tfvars`) и папки, созданные для их хранения (`.ssh`, `.aws`, `.kube`), — в том числе когда ты сам указываешь такую папку. После скачивания из карточки ответа страница говорит, сколько файлов осталось за бортом.
- Не попадают и зависимости с рабочим состоянием агента (`node_modules`, `.git`, `.venv`, `.pi`). Ссылки за пределы папки никогда не раскрываются, файл, у которого есть и другое имя в другом месте, пропускается, а файл, который исчез или был подменён ссылкой, пока архив отправлялся, пропускается, а не обрывает скачивание.
- Предел — **1 ГБ и 10 000 файлов** на архив; если больше, кнопка скажет об этом, и скачать нужно по частям. За раз готовится один архив: второй попросит повторить через минуту.

## Файлы в ответах агента {#in-answers}

Когда агент в ответе упоминает файл, который существует, путь становится ссылкой — не нужно искать его в дереве. Аудиофайлы (`mp3`, `ogg`, `wav`, `m4a` и другие) проигрываются прямо в ответе: кнопка воспроизведения, длительность и прогресс. Картинки, которые агент вставил в ответ, показываются в чате.

### Файлы, которые сделал ответ {#produced}

Если ответ сделал файлы, под ним появляется их список: файлы, которые он назвал, файлы, которые записали его инструменты, и — когда он запускал команды и больше ничто не указывает на результат — то, что появилось в папке нового. У каждой строки есть **открыть** (для страниц, PDF и картинок), **скачать** и, если подключён Telegram, **отправить в Telegram**: файл придёт в твой чат. Если файлов больше пяти, остальные считаются, а **Скачать все архивом .zip** забирает всё сразу.

Список намеренно осторожный: только обычные файлы, записанные во время этого ответа, внутри папки, где шла работа; никогда — заметки, навыки и инструменты самого агента и никогда — файлы с секретами. Если файл потом удалили, его строка пропадает. Правки уже существовавших файлов попадают в список, только если ответ их называет. То, что проект сделал по [запросу `@проект`](https://eggent.ai/r/docs/projects.md#ask), показывается под ответом того чата, который спрашивал.

## История файла {#history}

Каждое изменение документа или текстового файла в проекте сохраняется версией, кто бы его ни сделал: ты, когда сохраняешь файл в редакторе, агент, когда пишет его или запускает команду, которая его переписывает, загрузка, которая его заменяет, или синхронизация, которая принесла копию, исправленную на компьютере. История начинается с первой правки файла, и то, что в нём было прямо перед ней, тоже сохраняется; у файла, который только создали или загрузили, возвращаться пока не к чему, и места он лишнего не занимает. Кнопка с часами в шапке открытого файла (**История** на отдельной странице файла) показывает версии, новые сверху, и у каждой — кто её сделал: *Вы*, *Агент* с чатом, в котором он работал, *Загружен*, *Изменён вне редактора* (синхронизация, терминал или другая программа).

- **Сравнить.** Выбери версию, и увидишь, что изменилось по сравнению с предыдущей; можно сравнить её и с файлом как он есть сейчас, и с любой другой версией. **Текст** показывает новую формулировку, а старые слова зачёркнуты прямо в ней — так читается отредактированный документ; **Строки** показывают старые строки над новыми, с номерами, — так удобнее для кода. Неизменённые части свёрнуты, а стрелки (или Alt+↑ / Alt+↓) переходят от одного изменения к следующему.
- **Восстановить.** **Восстановить** возвращает версию. То, что было в файле до этого, тоже сохраняется, так что и восстановление можно отменить. Исключение — файл, который с тех пор вырос больше 10 МБ или не читается: над списком версий об этом сказано, и восстановление сначала спрашивает, потому что заменённое сохранить нельзя.
- **Скачать** сохраняет любую версию отдельным файлом с её номером, например `договор (v3).docx`.

Документы (`.docx`, `.xlsx`, `.pptx`, `.odt`) сравниваются по тексту внутри: абзацы, строки таблиц, слайды, строки листа. Оформление не сравнивается. У картинок, записей, архивов и PDF истории нет, как и у заметок и навыков самого агента, папок с зависимостями, файлов с секретами и общих папок компании (это файлы компании, а не воркспейса).

Каждая версия хранится 30 дней после того, как её заменила более новая, потом по одной в день до 90 дней, и не больше 200 на файл. История учитывается в месте на диске воркспейса и никогда не занимает больше его четверти: сверх этого первыми уходят версии, заменённые раньше всех, а когда диск почти заполнен, история сжимается, чтобы освободить место самим файлам. **Настройки → Общие → История версий файлов** показывает, сколько она занимает, удаляет версии старше недели или всю историю и выключает её. Историю одного файла можно удалить прямо из её списка.

Агент тоже читает историю: спроси, что поменялось в документе со вчерашнего дня, или попроси вернуть прежнюю версию. Когда файл открыт рядом с чатом, агент понимает, о каком файле речь, — см. [«Чаты»](https://eggent.ai/r/docs/chats.md#open-file).

## Удаление {#delete}

Кнопка удаления у файла или папки удаляет их после подтверждения. Удаление папки удаляет всё внутри. Файл, удалённый здесь, уходит вместе со [своей историей](#history). Если включена [синхронизация с компьютером](https://eggent.ai/r/docs/file-sync.md), удалённые файлы 30 дней хранятся в корзине синхронизации.

## Место на диске {#storage}

В облаке у воркспейса ограниченный диск: на пробном периоде 100 МБ, на тарифах больше. [История файлов](#history) тоже в нём учитывается. Когда диск заполнен на три четверти, в боковой панели появляется предупреждение. Если диск заполнен полностью, агент перестаёт отвечать, но панель **Файлы** работает — удали лишнее, и работа продолжится со следующего сообщения. Подробнее — в [«Тарифы и баланс»](https://eggent.ai/r/docs/plans.md#storage).

На своём сервере место ограничено только диском машины.

## Где физически лежат файлы {#layout}

| Что | Путь внутри воркспейса |
| --- | --- |
| Файлы проекта | `data/projects/<id-проекта>/` |
| Файлы оркестратора | `data/projects/` (рядом с папками проектов) |
| Вложения чатов | `data/chat-files/<id-чата>/` |
| Версии файлов | `data/versions/` |

Полное устройство — в [«Устройство воркспейса»](https://eggent.ai/r/docs/workspace-layout.md).
