berimor 0.36.0 → 0.38.0
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.
- package/README.md +9 -3
- package/checksums.json +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[](https://www.npmjs.com/package/berimor)
|
|
15
15
|
[](https://github.com/devpilgrin/berimor/actions/workflows/ci.yml)
|
|
16
16
|
[](LICENSE)
|
|
17
|
-
[](#инфраструктура-проекта)
|
|
18
18
|
|
|
19
19
|

|
|
20
20
|

|
|
@@ -134,6 +134,10 @@ Deny-таблица деструктивных операций не переи
|
|
|
134
134
|
|
|
135
135
|
**SGR: схема ведёт рассуждение** (0.30.0): контракт может объявлять поля-обоснования ДО целевых — `risk_factors` (непустой список) перед `risk` в `ClassificationOut`; заполнив факторы, модель назначает оценку с опорой, а не произвольно. Порядок полей в JSON Schema соответствует порядку объявления (schemars `preserve_order`). На провайдерах с constrained decoding (`response_format = "json_schema"` в `[[providers]]`: OpenAI-совместимые, Ollama через `format`, llama.cpp) порядок генерации принуждается схемой физически — модель не может выдать число, не заполнив факторы. На провайдерах без constrained decoding (DeepSeek, Kimi — только `json_object`) работает мягкий уровень: порядок полей в промпте + обязательность по схеме + валидация медиации. Правило для конфиг-контрактов: поля-обоснования объявляйте раньше целевых. Автономный llama.cpp (in-process) принуждает порядок GBNF-грамматикой, построенной из схемы контракта (0.31.0).
|
|
136
136
|
|
|
137
|
+
**Волна A: отказоустойчивость и стоимость** (0.38.0): circuit breaker в Model Pool — N последовательных транспортных сбоев провайдера открывают автомат, провайдер пропускается до полуоткрытой пробы по cooldown, об открытии — видимый алерт «<имя> → circuit-open» (`[agent] breaker_failures`, `breaker_cooldown_secs`; 0 = выключено). Атрибуция стоимости: каждый вызов модели журналирует usage (токены, латентность, шаг — событие `model_usage`), у локального llama.cpp токены считает токенизатор; `berimor cost <run>` — отчёт по шагам и итог (цены — `cost_per_1k_tokens` провайдера; без цены — честные токены без выдуманных денег).
|
|
138
|
+
|
|
139
|
+
**Слой правил и berimor как MCP-сервер** (0.37.0, по мотивам Harness AI 3.0): (1) **правила** — markdown-стандарты из `~/.config/berimor/rules/` и `.berimor/rules/` подмешиваются в контекст всех шагов с моделью ДО генерации (мягкий слой; жёсткий — по-прежнему медиация); проектные сильнее глобальных; (2) **`berimor mcp-serve`** — MCP-сервер по stdio: внешние агенты (Claude Code, Cursor) гоняют процессы berimor через инструменты `process.list`/`process.run`/`trace.read` — модель думает снаружи, код решает внутри; (3) **GitHub Action** `devpilgrin/berimor-action@v1` — процессы как шаги CI.
|
|
140
|
+
|
|
137
141
|
**Заимствования из DeepSeek Harness** (0.36.0): (1) **pruner наблюдений** — длинный результат инструмента обрезается в промпте (голова+маркер+хвост, оригинал в журнале; `[agent] tool_result_max_chars`, 0 = выкл); (2) **Landlock-песочница** для `terminal.exec`/`terminal.start` — собственная реализация на libc (без внешнего бинаря): подпроцесс физически не выходит за рабочую область, системные каталоги — read-only; `[sandbox] landlock = off|auto|require`, require — fail-closed; (3) **compaction чата** — история длиннее порога сжимается в конспект старшим провайдером, хвост дословно, сбой суммаризации не роняет ход (`[agent] compact_threshold_chars`, 0 = выкл).
|
|
138
142
|
|
|
139
143
|
**Устойчивость к обрыву генерации** (0.35.2): локальная модель, упёршаяся в потолок токенов, обрывает JSON («EOF while parsing») — раньше это сжигало 3 попытки и останавливало процесс эскалацией. Теперь стадия parse медиации достраивает обрыв структурно (закрывающие кавычки/скобки, содержимое не трогается; мусор по-прежнему отклоняется), ремонт виден в журнале (`mediation_parse_repaired`) — ретраи и эскалация остаются для настоящих ошибок. Контекст локального провайдера поднят до 8192 и настраивается (`local_ctx_tokens`).
|
|
@@ -165,6 +169,8 @@ flowchart TD
|
|
|
165
169
|
POOL --> LLM["LLM: облачные и локальные"]
|
|
166
170
|
```
|
|
167
171
|
|
|
172
|
+
Интерактивные версии (тёмная/светлая тема, фокус по узлам, экспорт): [компонентная карта](docs/arch/views/diagrams/component-map.html), [жизненный цикл задачи](docs/arch/views/diagrams/task-lifecycle.html), [состояния процесса](docs/arch/views/diagrams/process-states.html), [шаг через Mediation](docs/arch/views/diagrams/mediation-sequence.html) — см. `docs/arch/views/diagrams/`.
|
|
173
|
+
|
|
168
174
|
### Пример графа процесса (evaluator-optimizer)
|
|
169
175
|
|
|
170
176
|
```mermaid
|
|
@@ -183,7 +189,7 @@ flowchart LR
|
|
|
183
189
|
|
|
184
190
|
**Rust-workspace по крейту на компонент** — Process Engine, Mediation, Executors, Memory, Capability, Model Pool, Actors, Tool Runtime, Context Engine, Eval, Storage. Гостевой WASM-модуль (`codeact-guest/`) живёт отдельным crate и закоммичен как готовый артефакт — обычная сборка не замедляется.
|
|
185
191
|
|
|
186
|
-
**Дисциплина проверок.** Каждый релиз: `cargo fmt` + `clippy -D warnings` + `cargo test --workspace` (
|
|
192
|
+
**Дисциплина проверок.** Каждый релиз: `cargo fmt` + `clippy -D warnings` + `cargo test --workspace` (983 тестов: юнит, интеграционные, e2e через настоящий бинарник, золотые фикстуры процессов и вредоносных вводов). Критические компоненты проходят обязательное независимое ревью. Полный самостоятельный аудит (`docs/audit-2026-07-31.md`) — **все находки закрыты или осознанно задокументированы**.
|
|
187
193
|
|
|
188
194
|
**Supply chain как у взрослых.** Кросс-платформенные релизы (Linux x64/arm64, macOS arm64, Windows x64) с keyless-подписью cosign/sigstore — приватного ключа не существует нигде. Проверка: `berimor verify <архив>`. npm-публикация с provenance, SBOM (CycloneDX) в пайплайне, самообновление (`berimor self-update`) реализовано на примитивах Process Engine — тот же журнал и восстановление после сбоя, что у обычных процессов, а не ad hoc скрипт.
|
|
189
195
|
|
|
@@ -287,7 +293,7 @@ berimor plugin install-local ./my-plugin --allow-unsigned # лок
|
|
|
287
293
|
| Ядро агента | `crates/` | Rust-workspace — по одному крейту на компонент: Process Engine, Mediation, Executors, Memory, Capability, Model Pool, Actors, Tool Runtime, Context Engine, Eval, Storage |
|
|
288
294
|
| Песочница CodeAct | `codeact-guest/` | QuickJS-гость под wasm32-wasip1 — отдельный crate, закоммичен как готовый артефакт |
|
|
289
295
|
| Bootstrap | `bootstrap/` | npm-пакет установщика/обновления (TypeScript), см. «Установка» выше |
|
|
290
|
-
| Архитектура | `docs/arch/` | самодостаточная спецификация — принципы, компоненты, диаграммы (`docs/arch/views/`). См. `docs/arch/README.md` |
|
|
296
|
+
| Архитектура | `docs/arch/` | самодостаточная спецификация — принципы, компоненты, диаграммы (`docs/arch/views/`), интерактивные HTML-диаграммы (`docs/arch/views/diagrams/`). См. `docs/arch/README.md` |
|
|
291
297
|
| Решения | `docs/ADR/` | журнал архитектурных решений: контекст, альтернативы, последствия. См. `docs/ADR/README.md` |
|
|
292
298
|
| План разработки | `docs/ROADMAP.md` | очередь задач по фазам, декомпозиция на подзадачи, сложность, класс модели-исполнителя |
|
|
293
299
|
| Аудит | `docs/audit-2026-07-31.md` | независимый аудит безопасности — все находки закрыты или осознанно задокументированы |
|
package/checksums.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"berimor-v0.
|
|
3
|
-
"berimor-v0.
|
|
4
|
-
"berimor-v0.
|
|
5
|
-
"berimor-v0.
|
|
2
|
+
"berimor-v0.38.0-darwin-arm64.tar.gz": "5248164289f5c44cc0b321d8326bd9f4608b63bae774d026efa5b8f4758403b3",
|
|
3
|
+
"berimor-v0.38.0-linux-arm64.tar.gz": "ada024e3dbd475d1cec50954e4b40ac373749a58e4cde5fcf50679be37147c0b",
|
|
4
|
+
"berimor-v0.38.0-linux-x64.tar.gz": "9e8475bdc39ab6cca983b97bb7c284107a9c33554e126feea9fa71b964ffa14a",
|
|
5
|
+
"berimor-v0.38.0-win32-x64.zip": "10a40f8e0d2ced2907f61c944aed7025481d2ce8b216781d48ebbdf8e9327843"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "berimor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "Berimor — агентный CLI для LLM: интерактивный чат с инструментами (файлы, терминал, HTTP), детерминированные процессы, аудит и replay. Этот пакет — установщик платформенного бинарника.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|