berimor 0.12.0 → 0.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +157 -26
  2. package/checksums.json +4 -4
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,39 +1,170 @@
1
- # bootstrap
1
+ # Berimor
2
2
 
3
- npm-пакет установщика Berimorсм. `docs/arch/deployment.md` §2–3, ADR-0025.
3
+ Универсальный агент для LLM с детерминированным ядром вокруг модели локальной или облачной, слабой или сильной. Не диалоговая обёртка над одним провайдером: маршрутизацию задач, ветвление процесса, отбор контекста и допуск к выполнению решает код; модель — исполнитель узких, проверяемых шагов, а не тот, кто решает, что делать дальше.
4
4
 
5
- ## Первая установка: скачивание, верификация, распаковка (D3)
5
+ ## Что это и зачем
6
6
 
7
- При первом запуске (`dist/index.js`) bootstrap определяет платформу
8
- (`platform.ts`), проверяет локальный кэш (`~/.cache/berimor/bin` на Linux,
9
- `~/Library/Caches/berimor/bin` на macOS, `%LOCALAPPDATA%\berimor\bin` на
10
- Windows — `cache-dir.ts`), при отсутствии — скачивает платформенный архив с
11
- GitHub Releases (`download.ts`), сверяет его SHA-256 с записью в
12
- `checksums.json` (`checksum.ts` + `checksums-manifest.ts`) и только затем
13
- атомарно распаковывает (`extract.ts`: временная директория рядом с целевой +
14
- `rename` одной операцией). Несовпадение хэша или отсутствие записи в
15
- `checksums.json` — явный отказ, ничего не распаковывается.
7
+ Большинство «ИИ-агентов» устроены так: модели дают набор инструментов и просят её саму решить, что делать. Это удобно для демо и ненадёжно на практике — модель может забыть шаг, выдумать несуществующий факт, случайно стереть что-то важное или незаметно свернуть не туда.
16
8
 
17
- `checksums.json` пишется не разработчиком, а CI (`release.yml`, job
18
- `publish`) на этапе публикации — сравнение идёт с независимым от GitHub
19
- Release каналом (npm), см. `docs/ROADMAP.md` §14 (D3) для полного разбора,
20
- почему верификация через уже существующий `verify.ts` (`berimor verify`,
21
- делегирование нативному бинарнику) циркулярна именно на первой установке и
22
- не используется здесь; `verify.ts` остаётся заделом для D4 (само-обновление).
9
+ Berimor устроен наоборот. Задача заранее раскладывается на понятные шаги — как план или чек-лист. Модель выполняет только сами шаги (прочитать, извлечь, классифицировать, написать текст), а решает, *куда идти дальше* и *что можно сделать*, — обычный код. Всё, что выдаёт модель, перед тем как на это можно положиться, проверяется по строгим правилам. Если агент упал посреди работы — он продолжит с того же места, а не начнёт всё заново.
10
+
11
+ ## Возможности
12
+
13
+ - **Задачи выполняются по плану, а не по наитию.** Процесс — это граф шагов с условиями и ветвлениями, как блок-схема. Каждый шаг — маленькая проверяемая операция. Весь ход выполнения записывается в журнал, поэтому при сбое, перезапуске или обрыве связи агент продолжает ровно с того места, где остановился, а не с нуля.
14
+
15
+ - **Ни один ответ модели не становится фактом без проверки.** Прежде чем что-то, что сказала модель, попадёт в состояние задачи, оно проверяется по строгой схеме: правильный формат, допустимые значения, никаких посторонних полей. Если модель ошиблась — ей дают ещё одну попытку с объяснением, в чём проблема; если ошибка повторяется или выглядит как нарушение правил — решение передаётся человеку, а не додумывается автоматически.
16
+
17
+ - **У агента есть права доступа, а не полная свобода.** Он не выйдет за пределы разрешённой рабочей папки, не обратится в закрытую для него часть сети и не выполнит потенциально опасное действие без спроса. Есть три режима работы: полностью автоматический (для безопасных действий), с обязательным подтверждением на каждый шаг, и «умный» — спрашивает только тогда, когда действие реально что-то меняет. Явно опасные операции заблокированы всегда — подтверждением это не обойти.
18
+
19
+ - **Память устроена в несколько слоёв, как у человека.** Рабочая память (то, что «в голове» прямо сейчас) сама сжимается, когда становится слишком много. Долгая память хранит историю с полнотекстовым поиском — можно найти, что обсуждали давно. База фактов не копит дубли: одинаковые факты, сказанные по-разному, схлопываются в один, а противоречия не проходят молча. Навыки — переиспользуемые «рецепты» решения похожих задач, оформленные как обычные читаемые файлы. Отдельно — граф связей: кто с чем/кем связан, чтобы агент понимал контекст, а не только разрозненные факты.
20
+
21
+ - **Перед каждым обращением к модели агент сам решает, что ей показать.** Не вся история и не все факты разом — только то, что нужно для конкретного шага, с поправкой на то, насколько «мощная» модель сейчас используется: слабой — короче и структурированнее, сильной — можно больше.
22
+
23
+ - **Модель — локальная или облачная, слабая или сильная, как удобнее.** Систему не заботит, откуда берётся ответ, лишь бы он прошёл проверку. Для каждой задачи агент сам выбирает подходящий по классу движок, не самый дорогой по умолчанию.
24
+
25
+ - **Интерактивный режим из коробки.** Просто `berimor` — и вы в диалоге с агентом: он читает и пишет файлы, выполняет команды терминала и делает HTTP-запросы (встроенные инструменты, не требующие никакой настройки), спрашивает подтверждение перед изменяющими действиями и показывает ход работы в реальном времени. Рабочая область — текущая папка: выйти за её пределы агент не может. Вся сессия записывается в журнал — её можно «прокрутить назад» командой `berimor trace`.
26
+
27
+ - **Настройка за минуту, не редактированием файлов.** При первом запуске мастер сам предложит подключить модели из готовых пресетов: Kimi, DeepSeek, OpenAI, Claude (через OpenRouter), а также локальные через Ollama, llama.cpp и LM Studio. Ключи API хранятся отдельно от конфигурации (файл с правами «только владелец»), в чате есть команда `/models add` — добавить модель, не выходя из диалога. Глобальная конфигурация (`~/.config/berimor/`) действует везде, проектная (`./berimor.toml`) — переопределяет её в конкретной папке.
28
+
29
+ - **Подключение внешних инструментов по открытому стандарту.** Агент умеет пользоваться внешними инструментами и сервисами через протокол MCP (Model Context Protocol) — тем же открытым стандартом, которым пользуются другие агентные платформы, поэтому уже существующие MCP-серверы подключаются без переделки.
30
+
31
+ - **Свободный режим — для задач, которые заранее не разложить по шагам.** Например, «разберись, почему падает тест, и почини». Для таких случаев есть отдельный режим: агент рассуждает → действует → смотрит на результат → повторяет, с ограничением на число попыток и, по желанию, с самопроверкой «а точно ли это хороший ответ?» перед тем как остановиться. Каждое действие внутри этого режима проходит те же проверки прав доступа, что и обычный шаг — свобода рассуждения не значит свобода от правил.
32
+
33
+ - **Для задач вроде «смержи 12 таблиц и найди аномалии» модель пишет программу, а не цепочку отдельных вызовов.** Программа — на JavaScript, исполняется в изолированной песочнице (WebAssembly) с жёсткими лимитами по времени и памяти: у неё нет доступа ни к файловой системе, ни к сети, кроме тех самых инструментов, что и в остальных режимах, — и все вызовы этих инструментов проходят те же проверки прав. Перед запуском текст программы проверяется по белому списку: разрешено только то, что явно объявлено безопасным, всё остальное отклоняется ещё до исполнения.
34
+
35
+ - **Видно, что произошло и почему.** Любой прогон можно «прокрутить назад» по шагам и посмотреть, что происходило и на каком основании. Есть отдельный режим офлайн-проверки: прогнать набор тестовых сценариев и посмотреть, какая доля завершилась успешно, не запуская ничего «вживую».
36
+
37
+ - **Инфраструктура для фоновых и множественных агентов** (модель актора, диспетчер задач, планировщик с расписаниями) уже реализована как отдельный, самостоятельно протестированный слой — но пока не подключена к обычному запуску через терминал (`berimor run`), поэтому в командной строке её ещё не пощупать напрямую.
38
+
39
+ ## Установка
40
+
41
+ ### Способ 1: npm (проще всего)
23
42
 
24
43
  ```sh
25
- npm run build
26
- npm test # node:test, встроенный в Node ≥20 — новых dev-зависимостей нет
44
+ npm install -g berimor
45
+ berimor --version
27
46
  ```
28
47
 
29
- ## Локальная разработка
48
+ Установщик сам определяет платформу, скачивает подписанный бинарник из последнего релиза GitHub и сверяет SHA-256 до распаковки. Пакет публикуется с provenance (привязка сборки к CI-workflow).
49
+
50
+ ### Способ 2: готовый бинарник с GitHub
51
+
52
+ Актуальные версии — на странице [релизов](https://github.com/devpilgrin/berimor/releases/latest). Ниже — команды для скачивания конкретной версии (замените `v0.7.1` на нужную, если вышла более новая).
53
+
54
+ **Linux** (x64 или arm64):
55
+
56
+ ```sh
57
+ VERSION=v0.11.0
58
+ ARCH=x64 # или arm64
59
+ curl -LO "https://github.com/devpilgrin/berimor/releases/download/${VERSION}/berimor-${VERSION}-linux-${ARCH}.tar.gz"
60
+ tar -xzf "berimor-${VERSION}-linux-${ARCH}.tar.gz"
61
+ chmod +x berimor
62
+ sudo mv berimor /usr/local/bin/
63
+ berimor --version
64
+ ```
65
+
66
+ **macOS** (только Apple Silicon — M1/M2/M3 и новее; сборки под Intel пока не публикуются, для Intel-Mac — способ 2 ниже):
67
+
68
+ ```sh
69
+ VERSION=v0.11.0
70
+ curl -LO "https://github.com/devpilgrin/berimor/releases/download/${VERSION}/berimor-${VERSION}-darwin-arm64.tar.gz"
71
+ tar -xzf "berimor-${VERSION}-darwin-arm64.tar.gz"
72
+ xattr -d com.apple.quarantine berimor # бинарник пока не подписан Apple — иначе Gatekeeper откажется его запускать
73
+ chmod +x berimor
74
+ sudo mv berimor /usr/local/bin/
75
+ berimor --version
76
+ ```
77
+
78
+ **Windows** (x64), PowerShell:
79
+
80
+ ```powershell
81
+ $Version = "v0.11.0"
82
+ Invoke-WebRequest -Uri "https://github.com/devpilgrin/berimor/releases/download/$Version/berimor-$Version-win32-x64.zip" -OutFile berimor.zip
83
+ Expand-Archive -Path berimor.zip -DestinationPath .
84
+ .\berimor.exe --version
85
+ ```
86
+
87
+ Бинарник пока не подписан — Windows SmartScreen может показать предупреждение «Windows защитила ваш компьютер»: «Дополнительные сведения» → «Выполнить в любом случае». Чтобы вызывать `berimor` из любой папки, переложите `berimor.exe` в каталог, который уже есть в `PATH`, или добавьте текущую папку в `PATH` самостоятельно.
88
+
89
+ Каждый архив сопровождается файлом `<архив>.sigstore.json` — keyless-подпись cosign/sigstore, привязанная к идентичности CI-workflow, которым собран релиз (без файлового приватного ключа где-либо, ADR-0026). Проверить: `berimor verify <архив>` — сама команда уже в скачанном бинарнике (устанавливает свежий доверенный корень sigstore по сети при первом вызове). Это независимая от Apple/Microsoft подпись — предупреждения Gatekeeper/SmartScreen выше она не снимает, они про отдельный, ещё не сделанный шаг.
90
+
91
+ ### Способ 3: собрать из исходников (любая ОС)
30
92
 
31
- `postinstall` запускает `dist/postinstall.js`, поэтому при первом клоне репозитория нужна сборка до `npm install` от зависимостей:
93
+ Нужен только [Rust](https://rustup.rs/) (стабильная версия):
32
94
 
33
95
  ```sh
34
- npm install --ignore-scripts
35
- npm run build
36
- npm install # теперь postinstall находит dist/ и проходит
96
+ git clone https://github.com/devpilgrin/berimor.git
97
+ cd berimor
98
+ cargo build --release -p berimor-cli
99
+ ./target/release/berimor --version
37
100
  ```
38
101
 
39
- В опубликованном пакете `dist/` уже собран и входит в тарбол этот порядок нужен только локально, до первого `npm run build`.
102
+ На Windows последняя команда`.\target\release\berimor.exe --version`.
103
+
104
+ ## Быстрый старт
105
+
106
+ ```sh
107
+ berimor # = berimor chat: интерактивный диалог с агентом
108
+ ```
109
+
110
+ При первом запуске мастер предложит подключить модели из пресетов (Kimi, DeepSeek, OpenAI, Claude через OpenRouter, локальные через Ollama/llama.cpp/LM Studio) — выберите номера или имена, вставьте ключ API (он попадёт в `~/.config/berimor/secrets.env` с правами «только владелец», не в конфиг). Позже то же самое — `berimor setup` или прямо в чате командой `/models add`.
111
+
112
+ Полезные команды чата: `/help`, `/models`, `/config`, `/exit`.
113
+
114
+ Детерминированные процессы (декларативный YAML-план со строгими контрактами — основной «боевой» режим): `berimor run <process.yaml>`. Примеры процессов и конфигураций — в [`fixtures/golden/processes/`](fixtures/golden/processes/) и [`CONTRIBUTING.md`](CONTRIBUTING.md).
115
+
116
+ ## Как устроен проект
117
+
118
+ | Слой | Директория | Содержимое |
119
+ |---|---|---|
120
+ | Ядро агента | `crates/` | Rust-workspace — по одному крейту на компонент: Process Engine, Mediation, Executors, Memory, Capability, Model Pool, Actors, Tool Runtime |
121
+ | Bootstrap | `bootstrap/` | npm-пакет установщика/обновления (TypeScript), см. «Установка» выше |
122
+ | Архитектура | `docs/arch/` | самодостаточная спецификация — принципы, компоненты, диаграммы (`docs/arch/views/`). См. `docs/arch/README.md` |
123
+ | Решения | `docs/ADR/` | журнал архитектурных решений: контекст, альтернативы, последствия. См. `docs/ADR/README.md` |
124
+ | План разработки | `docs/ROADMAP.md` | очередь задач по фазам, декомпозиция на подзадачи, сложность, класс модели-исполнителя |
125
+ | Тестовые данные | `fixtures/golden/` | золотые наборы: примеры процессов, контрактов, вредоносных вводов |
126
+ | Исследования | `docs/rnd/` | вспомогательный слой: источники и анализ существующих агентных фреймворков, на которые опиралось проектирование. См. `docs/rnd/README.md` |
127
+
128
+ `crates/` и `bootstrap/` — сам агент, код, написанный по очереди из `docs/ROADMAP.md`. `docs/arch/` — слой чистых решений позади него: не упоминает конкретные проекты и продукты (кроме `docs/arch/deployment.md` и `docs/arch/stack.md`, где это осознанное исключение), излагает архитектуру так, чтобы её можно было реализовать на любом стеке. `docs/ADR/` фиксирует, почему принято каждое решение, включая отклонённые альтернативы. `docs/rnd/` — вспомогательный слой источников, на который опиралось проектирование, не часть агента.
129
+
130
+ ## Статус реализации
131
+
132
+ Архитектурная стадия завершена (принципы, диаграммы, решения, план). Реализация: **Milestone 0** (`docs/ROADMAP.md` §3) и **Milestone 1** (§18) закрыты — `berimor run <process.yaml>` реально исполняет декларативный процесс от начала до конца: Process Engine (парсер, граф control-flow, атомарное состояние, восстановление из журнала после сбоя), Mediation целиком (parse → schema → policy → commit → retry/эскалация → телеметрия), Capability (deny-статика, jail файловой системы, сетевой гейт, режимы подтверждений), Model Pool с HTTP-клиентом удалённых провайдеров, минимальный Context Engine и исполнители `ToolOnly`/`StructuredLLM` — всё связано в CLI, включая `--resume` и обработку `human_gate` в терминале. Подтверждено e2e-тестом через настоящий бинарник на golden-фикстуре, зелёным CI на Linux/macOS/Windows.
133
+
134
+ **Фаза 6 (Memory)** также закрыта — рабочая память со сворачиванием при переполнении бюджета, эпизодическая память с полнотекстовым поиском (FTS5), семантическая память с дедупликацией фактов и конфликт-событиями, гибридный векторно-текстовый поиск (`sqlite-vec`), процедурная память (формат файла навыка), граф сущностей (entity resolution, типизированные контракты — прошёл обязательное независимое ревью) и изоляция профилей/арендаторов.
135
+
136
+ **Фаза 7 (Actors & Scheduler)** закрыта целиком — модель актора (задача tokio + почтовый ящик, персистентная доставка), подпись конвертов (HMAC-SHA256, ключ выдаёт хост) и проверка ACL топика на шине событий (переиспользует манифест плагина из Capability), диспетчер с назначением по правилам и эскалацией после N неудач, лимит очереди `human_gate` на диспетчере и статус `throttled` для расписаний, персистентный планировщик с защитой от двойного тика, аварийная заморозка всех акторов.
137
+
138
+ **Фаза 8 (Tool Runtime & Protocol)** закрыта целиком — MCP-клиент (`rmcp`, официальный SDK: подключение к внешним серверам инструментов по stdio или произвольному транспорту), MCP-сервер (динамическая отдача набора инструментов, заданного вызывающим кодом во время выполнения), плагин как изолированный процесс с применением ACL-манифеста (переиспользует манифест из Capability).
139
+
140
+ **Фаза 9 (Eval & Observability)** закрыта целиком — трассировка/replay журнала событий (человекочитаемый вид + восстановление состояния на любой момент, не только последний), стенд офлайн-оценки на золотых наборах (доля веток, доля отказов Mediation), контур здоровья навыков (рост отказов + неиспользование → событие ревью, никогда молчаливая правка), пайплайн онлайн-метрик (доля успеха задач, скорость подтверждений).
141
+
142
+ **Фаза 1 (Process Engine)** закрыта целиком — сверх Milestone 1 добавлены конкурентность (parallel-шаги пишут в изолированные неймспейсы `state.parallel.<fork>.<branch>`, join-барьер по состоянию, единый писатель на инстанс; XL-задача, прошла обязательное независимое ревью), полный набор детерминированных прерывателей (`max_steps`/`timeout` в движке, `latency_budget` — SLA отбора провайдера) и `migrate_version` — явный перевод работающего инстанса на новую версию графа с подтверждением человека.
143
+
144
+ **Интеграция в `berimor run`** — Memory (Context Engine наполняет слои Skills/Session из `berimor-memory`), Tool Runtime (`tool`-шаги могут исполняться настоящими MCP-серверами из конфига, не только статическими заглушками) и Eval (команды `berimor trace`/`berimor eval` поверх журнала прогонов) подключены; прошли обязательное независимое ревью. Facts (нет провайдера эмбеддингов) и Personality/Project (нет понятия профиля в конфиге) — слои памяти, оставшиеся неподключёнными сознательно, задокументированный пробел. `skill_health`/`online_metrics` (O3/O4) — тоже: нет источника агрегированных данных в CLI.
145
+
146
+ Actors/Scheduler (Фаза 7) в `berimor run` не подключены — синхронная модель исполнения текущего CLI не совпадает с моделью акторов/диспетчера/планировщика, интеграция требует отдельного execution-режима, ещё не спроектированного.
147
+
148
+ **Фаза 10 (Deployment & Distribution)** закрыта целиком — кросс-платформенная сборка (`release.yml`) и keyless-подпись cosign/sigstore (`berimor verify`); bootstrap-установщик (TypeScript) со сверкой SHA-256 перед распаковкой; само-обновление агента (`berimor self-update`) реализовано на примитивах Process Engine — тот же журнал/восстановление после сбоя, что и у обычных процессов, а не отдельный ad hoc скрипт; доверенный список репозиториев (`berimor trust {add,remove,list}`) и установка плагина (`berimor plugin install`) поверх него, с TOFU-подтверждением для новых репозиториев; провенанс (`npm publish --provenance`) и SBOM (CycloneDX) в релизном пайплайне; тесты внедрения сбоев (прерванная загрузка, неверная подпись, downgrade, откат после неудачного smoke-теста). D5–D8 прошли одно обязательное независимое ревью на весь блок — найдена и исправлена directory traversal через имя плагина из манифеста (PoC подтверждён) плюс два major.
149
+
150
+ **Секреты не покидают систему открытым текстом (S5, `docs/arch/mediation.md` §4.3)** — реестр секретов текущего запуска (`berimor-secrets::Masker`) маскирует значения на всех точках, где они могли бы утечь: в аргументах и выводе инструментов (сам гейт допуска при этом видит настоящие значения — маскировка не ослепляет проверку опасных действий), в текстах, которые видит человек при подтверждении, при записи в память и в детекторе утечек Mediation-конвейера. Прошло обязательное независимое ревью.
151
+
152
+ **Граф сущностей (MEM7) теперь персистентен** — узлы и рёбра сохраняются в том же встроенном хранилище SQLite, что и остальная память (`berimor-storage::EntityGraphStore`), тем же паттерном, что семантическая память (MEM3→MEM4); сама логика entity resolution по-прежнему работает над срезом в памяти и ничего не знает про SQL.
153
+
154
+ **`AgentStep` (E9)** — исполнитель свободного цикла «рассуждение → действие → наблюдение» — реализован и подключён к `berimor run`/`berimor eval`: ход — фиксированный внутренний контракт Mediation, `Tool`-действие идёт через тот же capability-гейт/подтверждение, что и обычный `tool`-шаг (не обходится), опциональные стратегии самокритики и «предложи-выполни-проверь» — из `docs/arch/executors.md` §5. Прошёл обязательное независимое ревью.
155
+
156
+ **CodeAct (E6–E8)** — полностью реализован и подключён к `berimor run`. Хост Wasmtime (`berimor-executors::codeact::WasmHost`) компилирует и исполняет гостевой WASM-модуль — реальный JS-движок QuickJS (`rquickjs`), собранный отдельным crate (`codeact-guest/`, вне основного workspace — не замедляет обычную сборку) и закоммиченный как готовый артефакт (`crates/berimor-executors/assets/codeact-guest.wasm`, `codeact-guest/README.md` — как пересобрать при необходимости). Перед исполнением текст программы проходит статический анализ (`static_analysis::analyze`) — белый список идентификаторов через реальный JS-парсер (`oxc_parser`), не регулярные выражения: `eval`/`Function`/сетевые объекты отклоняются просто потому, что их нет в списке. В песочнице — три независимых лимита (топливо Wasmtime, потолок памяти, число вызовов инструмента), единственная host-функция `call_tool` идёт через тот же capability-гейт, что `ToolOnly`/`AgentStep`; WASI подключён с пустым набором прав (нет доступа к файлам/сети даже потенциально). `CodeActExecutor` связывает всё в цикл: подсказка модели → JS-текст → анализ → песочница → проверка результата по контракту шага, с повтором новым текстом программы при отказе любого барьера.
157
+
158
+ Не единственная линия обороны у статического анализа — обфускации вроде `globalThis['eval']` не гарантированно ловятся, настоящая гарантия структурная (изоляция WASM). Допуск по классам моделей реализован частично: лимиты сокращаются для более слабых моделей, но явного разрешения на использование CodeAct слабой моделью в конфиге процесса пока нет.
159
+
160
+ **Agentic CLI (§20.10–20.13)** — berimor теперь полноценный консольный агент, не только движок процессов: встроенные инструменты первого класса (`files.read/write/list`, `terminal.exec` с таймаутом и капами вывода, `http.fetch` через сетевой гейт — без MCP и заглушек), интерактивный `berimor chat` поверх свободного агентного цикла (команда по умолчанию — просто `berimor`), слоистая конфигурация (глобальная XDG ← проектная), мастер первого запуска с пресетами провайдеров (Kimi/DeepSeek/OpenAI/Claude-via-OpenRouter/Ollama/llama.cpp/LM Studio), slash-команды чата (`/models add` пересобирает рантайм без рестарта), консольный интерфейс с баннером, спиннером, живым выводом вызовов инструментов и рендером markdown. Локальный инференс llama.cpp встроен в процесс (фича `local-inference`, сборка из исходников), файловый jail — действующий барьер на пути каждого инструмента, граф сущностей читается в реальном прогоне. Публикация в npm с provenance; релиз — одной командой `scripts/release.sh X.Y.Z`.
161
+
162
+ Остаточные задачи и их приоритет: `docs/ROADMAP.md` §20.
163
+
164
+ ## Лицензия
165
+
166
+ Apache License 2.0 — см. [`LICENSE`](LICENSE).
167
+
168
+ ## Участие
169
+
170
+ См. [`CONTRIBUTING.md`](CONTRIBUTING.md) и [`docs/ROADMAP.md`](docs/ROADMAP.md) для выбора задачи.
package/checksums.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "berimor-v0.12.0-darwin-arm64.tar.gz": "f17c7f57d08fdaa86c03cc3d9b938517a54c37dc0e436ef6123bc6afab2ec9bc",
3
- "berimor-v0.12.0-linux-arm64.tar.gz": "17637e79ec96d2d71ec1ac269a41e245279d3aa4423b260891540deee867b2a4",
4
- "berimor-v0.12.0-linux-x64.tar.gz": "ea866fa16a61fbdb4ddb32b11b0a523dc1d31d97e870f3e0f0674c570c5c09b2",
5
- "berimor-v0.12.0-win32-x64.zip": "276978db891b73d1f3ef38e5b2cc33c9946b8c1e0e3450c2499e7f51484b13c2"
2
+ "berimor-v0.12.2-darwin-arm64.tar.gz": "9bb74bf2a25bda2308aba8e6a800c485764c30f466531dce5c77de8d419506b8",
3
+ "berimor-v0.12.2-linux-arm64.tar.gz": "45dc31fa7745e785beebd3287acde042e599d4167b374364deb2312aeb5da623",
4
+ "berimor-v0.12.2-linux-x64.tar.gz": "447cea17666360f5715b27351776c3b807f3f04dacd114ed7cf49bd68f95819a",
5
+ "berimor-v0.12.2-win32-x64.zip": "902fb6c034c012bd092b8ba701bf76ebcc5e3c20cfa4165adec9319972c71409"
6
6
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "berimor",
3
- "version": "0.12.0",
4
- "description": "Bootstrap-установщик Berimor: определение платформы, скачивание и верификация платформенного артефакта, оркестрация само-обновления.",
3
+ "version": "0.12.2",
4
+ "description": "Berimor — агентный CLI для LLM: интерактивный чат с инструментами (файлы, терминал, HTTP), детерминированные процессы, аудит и replay. Этот пакет установщик платформенного бинарника.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",