Папка .pastukhov

Что такое папка .pastukhov?

Папка .pastukhov/ — это каталог конфигурации и данных Pastukhov Agent. Она создаётся автоматически в корне вашего проекта при первом запуске Pastukhov Agent и хранит всё необходимое для приложения: определения сборок, настройки развёртывания, пресеты моделей, файлы базы данных, журналы выполнения и многое другое.

Скриншот, показывающий структуру файлов внутри папки конфигурации .pastukhov

Вам редко приходится редактировать эти файлы самостоятельно. ИИ-модель читает .pastukhov/README.md, чтобы понять формат каждого файла конфигурации, поэтому вы можете просто попросить её внести изменения — «добавить сборку, которая запускает мой линтер», «настроить Docker-развёртывание на staging», «создать новую модель для GPT-4» — и модель правильно обработает синтаксис YAML и структуру файлов.

На этой странице объясняется, что делает каждый файл и папка, чтобы вы знали, что в них находится, и могли принимать обоснованные решения, когда ИИ предлагает изменения.


project.yml

Это «удостоверение личности» вашего проекта. В нём хранится название проекта, дополнительная иконка и дополнительная ссылка для открытия проекта в веб-редакторе VS Code.

project:
  name: "MyProject"           # Автоопределяется из git remote URL
  icon: ".pastukhov/project.svg" # Опционально: иконка проекта, отображаемая в интерфейсе
  code: "https://..."         # Опционально: URL VS Code Web

Поле name автоматически устанавливается из вашего git remote при первом запуске, поэтому обычно вам не нужно его изменять. Поле icon может указывать на файл .svg или .ico. Поле code используется, когда вы хотите кнопку в интерфейсе, которая открывает ваш проект напрямую в VS Code.


build.yml

Здесь вы определяете автоматические проверки сборки — команды, которые проверяют, правильно ли ИИ изменил код. Несмотря на название, сборке совсем не обязательно компилировать что-то. Подойдёт любая команда, которая выдаёт понятный результат — ошибки и предупреждения: компиляторы, линтеры (проверка стиля и ошибок в коде), проверщики типов, запуски тестов, сканеры безопасности или собственные скрипты проверки.

Сборки поддерживают два типа:

  • Командные сборки выполняют команду и разбирают её вывод, выискивая ошибки и предупреждения
  • Сборки с промптами создают новый чат с проверочным заданием — удобно для ревью кода и проверок, где нужно «подумать» с помощью ИИ
build:
  compile:
    path: "server/"
    command: "dotnet build"
    delay: 3
    timeout: 60
    watch: "*.cs"
    ignore: []
    replacements: []
    stopStrings: []
    display: always
    autofix: always
    startSound: ""
    endSound: ""
    soundVolume: 1.0

  ai-review:
    watch: chat
    prompt: "/verify Review the recent code changes. Read the transcript at {chat} and report any problems."
    chatTitle: "Code Review"
    delay: 5
    timeout: 120

Основные свойства:

  • command — Shell-команда для выполнения (только для командных сборок)
  • prompt — Промпт проверки, отправляемый в новый AI-чат (только для сборок с промптами)
  • watch — шаблоны имён файлов (*.ts *.js), названия других сборок (compile) или chat для запуска по завершении пользовательского чата
  • delay — Секунды ожидания перед запуском после обнаружения изменений (по умолчанию: 3)
  • timeout — Максимальное время выполнения в секундах (по умолчанию: 60)
  • display — Когда показывать в панели сборки: always, errors, warnings или never
  • autofix — Когда участвовать в Автоисправлении: always, errors, warnings или never
  • ignore — Regex-шаблоны для подавления в выводе ошибок/предупреждений
  • replacements — пары «найти/заменить» для путей в выводе (полезно, когда сборка запускается в Docker или временных каталогах)
  • stopStrings — Строки, которые немедленно прерывают сборку при обнаружении в выводе
  • startSound / endSound / soundVolume — Опциональная аудиообратная связь при запуске или завершении сборки

Сборки могут следовать друг за другом: одна следит за другой и запускается только после её успешного завершения. Так выстраиваются цепочки проверок — например, компиляция → тесты → развёртывание.

Вывод сохраняется в .pastukhov/build/ тремя файлами на задачу: {name}.output.txt (полный вывод), {name}.errors.txt (спаршенные ошибки) и {name}.warnings.txt (спаршенные предупреждения).

Узнайте больше о сборках, Автоисправлении и панели сборки →


deploy.yml

Этот файл определяет цели развёртывания — как запускается ваше приложение после прохождения сборок. Он поддерживает два метода: debug для локальной разработки и docker для удалённых развёртываний контейнеров.

# Локальная разработка — запускается напрямую на вашем компьютере
deploy:
  my-app:
    method: "debug"
    path: "./server"
    command: "dotnet run"
    watch: "compile"        # Перезапускается после успешного завершения этой сборки
    shallowCopy: true        # Копировать только изменённые файлы (быстрее)
    url: "https://..."        # Опционально: кликабельная ссылка в интерфейсе
    startSound: ""
    endSound: ""

# Удалённое развёртывание — отправляет в Docker-контейнер через SSH
deploy:
  production:
    method: "docker"
    host: "server.com"
    username: "deploy"
    sshKeyPath: "~/.ssh/key"
    imageName: "app:latest"
    containerName: "myapp"
    dockerfilePath: "./Dockerfile"
    environmentVariables:
      - PORT=3000
    portMappings:
      "8080": "3000"

Метод debug запускает приложение прямо на вашем компьютере — удобно для разработки. Он умеет следить за сборками и перезапускаться после успешной проверки, копирует только изменённые файлы (так перезапуск быстрее) и поддерживает переменные окружения.

Метод docker отправляет код на удалённый сервер по SSH, собирает Docker-образ и управляет контейнером — для staging и production. Поддерживаются настройка портов и томов (папок), Docker-сети, проверки работоспособности и свои параметры сборки.

Вывод запущенного приложения сохраняется в .pastukhov/deploy/{name}.log. Оба метода поддерживают опциональные звуковые уведомления (startSound, endSound, soundVolume).

Узнайте больше об элементах управления развёртыванием, панели развёртывания и методах развёртывания →


models.yml

Этот файл хранит пресеты моделей ИИ. Каждая модель определяет набор переменных, которые применяются при выборе этой модели в интерфейсе — например, идентификатор модели, длина контекста и ценообразование.

models:
  claude-sonnet:
    variables:
      - ANTHROPIC_MODEL=claude-sonnet-4-20250514
      - MODEL_CONTEXT_LENGTH=200000
      - MODEL_INPUT_PRICE=3.0
      - MODEL_OUTPUT_PRICE=15.0

  claude-sonnet-fast:
    variables:
      - ANTHROPIC_MODEL=claude-sonnet-4-20250514
      - MODEL_CONTEXT_LENGTH=200000
      - MODEL_INPUT_PRICE=3.0
      - MODEL_OUTPUT_PRICE=15.0

Модели поддерживают наследование: дочерняя модель перенимает все переменные родительской. Например, если есть модели glm, glm-5 и glm-5-turbo, вариант turbo унаследует настройки от обоих, и вам нужно задать только то, что отличается на каждом уровне.

Значения с префиксом $ ссылаются на системные переменные окружения: $MY_API_KEY будет заменено значением переменной окружения MY_API_KEY из вашей системы.

Узнайте больше о создании и переключении моделей →


mcp.yml

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

version: "1.0"
servers:
  filesystem:
    enabled: true
    type: "stdio"
    command: "npx"
    args:
      - "-y"
      - "@modelcontextprotocol/server-filesystem"
      - "/project"
    env:
      NODE_ENV: "production"

Каждый сервер подключается одним из трёх способов:

  • stdio — запускается как программа на вашем компьютере
  • http — подключается к удалённому серверу через интернет
  • sse — подключается через Server-Sent Events (сервер сам присылает обновления)

Этот файл автоматически синхронизируется с собственной конфигурацией MCP Claude Code при запуске и при обнаружении изменений, поэтому вы можете управлять серверами как из интерфейса настроек Pastukhov Agent, так и напрямую в конфигурации Claude Code, и они будут оставаться синхронизированными.

Узнайте больше о добавлении и управлении MCP-серверами →


hooks.yml

В этом файле задаются хуки — правила, которые перехватывают действия ИИ до их выполнения. С их помощью можно запрещать опасные операции или запускать свои команды в нужные моменты.

PreToolUse:
  Bash:
    - type: "deny"
      pattern: "rm -rf /"
      message: "Dangerous command blocked"
    - type: "execute"
      pattern: "git push"
      command: "echo 'Push detected'"
      regex: false

Существует два типа событий хуков:

  • PreToolUse — срабатывает перед любым действием ИИ (команда в терминале, правка файла и т.д.). Можно deny (запретить) подходящие операции — с сообщением агенту — или execute (выполнить) свою команду, когда шаблон совпал
  • UserPromptSubmit — срабатывает при отправке промпта, позволяя предварительно обработать его

Файл hooks.yml автоматически генерирует .claude/settings.local.json — фактическую конфигурацию хуков, которую читает Claude Code. Это означает, что вам нужно поддерживать только hooks.yml, а соответствующий файл настроек Claude Code будет автоматически обновляться.

Узнайте больше о правилах запрета, командах выполнения и контроле использования инструментов →


skills.yml

Этот файл управляет тем, какие навыки активны в вашем проекте и каким цветом они отображаются в интерфейсе. Навыки — это повторно используемые наборы инструкций, которые изменяют поведение ИИ для определённых задач.

skills:
  version: "1.0"
  activated:
    my-skill:
      enabled: true
      color: "#3b82f6"
    another-skill:
      enabled: false

Каждая запись навыка имеет переключатель enabled и опциональный color для отображения в интерфейсе. Отключённые навыки не будут появляться в селекторе навыков и не будут влиять на поведение ИИ.

Узнайте больше об использовании, создании и редактировании навыков →


providers.yml

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

providers:
  anthropic:
    name: "Anthropic"
    environments:
      default:
        variables:
          - API_BASE_URL=https://api.anthropic.com
          - MODEL_ID=claude-sonnet-4-20250514
          - API_KEY_VAR=ANTHROPIC_API_KEY

Этот файл автоматически создаётся из встроенного ресурса, если он отсутствует. Он включает предварительно сконфигурированных провайдеров для популярных сервисов, таких как Anthropic, OpenRouter и других. Обычно вам не нужно редактировать его вручную — модель ИИ использует его для понимания того, как подключиться к каждому провайдеру.


Файлы парсеров

Три файла парсеров вытаскивают ошибки и предупреждения из текстового вывода программ. Все они устроены одинаково — простая система правил с блоками [ERROR] и [WARNING], внутри которых шаблоны поиска (регулярные выражения). Файлы подробно задокументированы комментариями внутри, поэтому править их вручную почти не приходится.

Как работают парсеры

Парсер идёт по строкам вывода и по очереди пробует применить шаблоны:

  • Строки комментариев, начинающиеся с #, игнорируются (используются для документации)
  • Однострочные шаблоны — соответствуют одной строке вывода
  • Многострочные шаблоны — заключены в {{...}}, захватывают одну или несколько идущих подряд строк (удобно для подробных отчётов об ошибках или контекста с отступами)
# Ошибки компиляции TypeScript
[ERROR]
.*\.ts.*              # Соответствует строке, содержащей путь к .ts файлу
Error.*               # Соответствует строке, начинающейся с "Error"
{{^\s+}}              # Соответствует строкам контекста с отступом, которые следуют далее
[/ERROR]

Парсеры перезагружаются автоматически при изменении их файлов — правки вступают в силу сразу.

build.parser

Извлекает ошибки и предупреждения из вывода команд сборки. Уже содержит шаблоны для C# (MsBuild, CSC), TypeScript, Svelte, Vite, Python (ruff) и ReSharper — при необходимости добавляйте шаблоны для других инструментов проекта.

deploy.parser

Вытаскивает ошибки и предупреждения из логов запущенного приложения: необработанные ошибки (исключения), подробные отчёты об ошибках, сбои подключения к базе данных, HTTP-ошибки и падения на разных платформах.

output.parser

Универсальный парсер для вывода обычных скриптов: ошибки командной строки, отчёты об ошибках Python, сбои Node.js и npm и другие типовые форматы. Применяется, когда вывод не относится к сборке или развёртыванию.


license.txt

Этот файл хранит ваш ключ лицензии приложения как строку JSON в кодировке Base64. Он имеет наивысший приоритет среди всех источников лицензии — он переопределяет как аргумент командной строки --license, так и переменную окружения AGENT_LICENSE. Если этот файл присутствует, его содержимое используется независимо от другой конфигурации.

Узнайте больше о типах лицензий, активации и статусе →


project.db

Это база данных приложения, которая хранит все постоянные данные Pastukhov Agent — чаты, сообщения, настройки, аналитику и многое другое. По умолчанию используется SQLite, который хранит всё в одном файле без необходимости внешнего сервера баз данных.

Может появиться три файла:

  • project.db — Основной файл базы данных
  • project.db-wal — журнал изменений: режим WAL ускоряет работу при одновременных чтении и записи
  • project.db-shm — вспомогательный файл общей памяти для режима WAL

База создаётся сама при первом запуске, а её структура обновляется автоматически при обновлениях программы — управлять ею вручную не нужно. Вместо SQLite можно использовать PostgreSQL: задайте переменную окружения AGENT_DATABASE со строкой подключения, и база данных будет создана там.


telegram.db

База данных для Telegram-бота: хранит соответствия между чатами Telegram и чатами Pastukhov Agent, а также настройки пользователей (активный чат, выбранный навык). Создаётся автоматически при включении бота; её данные не переносятся в основную базу проекта.

Может появиться три файла:

  • telegram.db — Основной файл базы данных
  • telegram.db-wal — журнал изменений
  • telegram.db-shm — вспомогательный файл общей памяти для режима WAL

proxy.db

SQLite-база для встроенного прокси-сервера — хранит журнал запросов (заголовки, тексты сообщений, количество потраченных токенов, длительность, ошибки) и кэш «размышлений» модели. Создаётся автоматически при активации прокси.

Может появиться три файла:

  • proxy.db — Основной файл базы данных
  • proxy.db-wal — журнал изменений
  • proxy.db-shm — вспомогательный файл общей памяти для режима WAL

Автоматическая очистка: 30 дней для логов запросов, 7 дней для кэша рассуждений. API-ключи и секреты автоматически фильтруются из сохранённых данных.


Каталоги

build/

Хранит журналы вывода сборок. Автоматически создаётся при запуске сборок. Каждая задача сборки производит три файла: {name}.output.txt (полный вывод команды), {name}.errors.txt (спаршенные ошибки) и {name}.warnings.txt (спаршенные предупреждения). Вы можете просматривать их в панели сборки, не открывая файлы напрямую.

deploy/

Хранит вывод времени выполнения развёртывания и отладочные логи клиента. Автоматически создаётся при запуске развёртываний. Каждое развёртывание производит {name}.log с выводом времени выполнения приложения. Отладочные логи клиента хранятся как {domain}.log (автоусечение до 100 МБ).

sounds/

Опциональный каталог для пользовательских звуков уведомлений. Поместите сюда файлы .mp3, чтобы переопределить встроенные звуки или добавить новые. Встроенные названия звуков: message, notification, complete, error, commit и deploy.

Сервер сначала проверяет .pastukhov/sounds/, затем возвращается к встроенным значениям по умолчанию. Чтобы восстановить встроенный звук, просто удалите свой пользовательский файл. Свойства startSound и endSound в build.yml и deploy.yml могут ссылаться на любое встроенное название или пользовательский звук, помещённый в этот каталог.

tools/

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


Автоматически создаваемые файлы

Следующие файлы автоматически создаются при первом запуске, если они не существуют. Вы можете безопасно удалить любой из них — они будут восстановлены из встроенных значений по умолчанию при следующем запуске Pastukhov Agent:

  • project.yml — Метаданные проекта (название автоопределяется из git remote)
  • .gitignore — Шаблоны игнорирования по умолчанию для каталога .pastukhov/
  • output.parser — Правила парсера вывода универсальных скриптов
  • build.parser — Правила парсера вывода сборок
  • deploy.parser — Правила парсера вывода развёртывания
  • providers.yml — Определения и шаблоны провайдеров ИИ
  • README.md — Документация формата для всех файлов конфигурации (читается моделью ИИ)

Файлы конфигурации (build.yml, deploy.yml, project.yml, hooks.yml, mcp.yml, skills.yml, models.yml) также автоматически проверяются при сохранении. Результаты проверки появляются в панели сборки вместе с обычными сборками — ошибки красным, предупреждения жёлтым — со ссылками на соответствующий раздел в README.md, чтобы можно было посмотреть правильный формат.