berimor 0.28.0 → 0.29.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 CHANGED
@@ -14,7 +14,7 @@
14
14
  [![npm](https://img.shields.io/npm/v/berimor?logo=npm&label=npm)](https://www.npmjs.com/package/berimor)
15
15
  [![CI](https://img.shields.io/github/actions/workflow/status/devpilgrin/berimor/ci.yml?branch=main&label=CI)](https://github.com/devpilgrin/berimor/actions/workflows/ci.yml)
16
16
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
17
- [![Tests](https://img.shields.io/badge/tests-945%20green-brightgreen)](#инфраструктура-проекта)
17
+ [![Tests](https://img.shields.io/badge/tests-946%20green-brightgreen)](#инфраструктура-проекта)
18
18
 
19
19
  ![Rust](https://img.shields.io/badge/Rust-stable-DEA584?logo=rust&logoColor=white)
20
20
  ![WebAssembly](https://img.shields.io/badge/sandbox-Wasmtime-654FF0?logo=webassembly&logoColor=white)
@@ -128,7 +128,9 @@ Deny-таблица деструктивных операций не переи
128
128
 
129
129
  **Честная граница подхода** (по результатам независимого полевого тестирования 0.27.0): контракт проверяет **форму, не смысл** — `branch` маршрутизирует код, но по значению, которое предложила модель; доверие не устранено, а спущено на уровень «значение, по которому вычисляется маршрут». Семантически значимые маршруты прикрывайте дополнительно: правилами политики контракта (диапазоны/перечисления), шагом верификации у сильной модели или `human_gate`. Вторая граница — слабые (локальные) модели: строгий контракт простой формы они выдерживают, а внутренний протокол свободного цикла требует модели среднего класса и выше; сценарий «полностью локально» сегодня реален для `llm_structured`-шагов, не для `agent_step`.
130
130
 
131
- **Контракты из конфигурации** (0.28.0): свои контракты без форка и пересборки — секция `[[contracts]]` в конфиге с JSON Schema (inline `schema` или `schema_path`), дальше `llm_structured`/`codeact` ссылаются на неё по имени наравне с кодовыми. Вывод модели валидируется по схеме (crate `jsonschema`), ошибка валидации уходит в промпт повтора — тот же цикл медиации. Ограничения: policy-правил (ссылки на состояние) и версий схем у конфиг-контрактов нет, `publishable` — весь объект, реестр читается при старте (смена конфига — новый запуск). Пример — [`fixtures/golden/processes/config-contracts/`](fixtures/golden/processes/config-contracts/).
131
+ **Контракты из конфигурации** (0.28.0): свои контракты без форка и пересборки — секция `[[contracts]]` в конфиге с JSON Schema (inline `schema` или `schema_path`), дальше `llm_structured`/`codeact`/`agent_step` ссылаются на неё по имени наравне с кодовыми. Вывод модели валидируется по схеме (crate `jsonschema`), ошибка валидации уходит в промпт повтора — тот же цикл медиации. Ограничения: policy-правил (ссылки на состояние) и версий схем у конфиг-контрактов нет, `publishable` — весь объект, реестр читается при старте (смена конфига — новый запуск). Пример — [`fixtures/golden/processes/config-contracts/`](fixtures/golden/processes/config-contracts/).
132
+
133
+ **Нормализатор формы хода** (0.29.0): слабые модели часто пишут «почти протокольный» ответ — плоскую форму `{"thought", "tool", "args"}`, `"action": "tool"` строкой, верхнеуровневый `reply` или оборванный на лимите токенов JSON. Известные формы достраиваются детерминированно до протокола ДО медиации (ремонт журналируется событием `agent_turn_normalized`; смысл по-прежнему решают валидация и гейт). Промпт хода дополнен парой few-shot примеров.
132
134
 
133
135
  **Графовые идиомы как процессы.** Классические паттерны (routing, prompt chaining, parallelization, orchestrator-workers, evaluator-optimizer) выражаются без нового кода: `llm_structured` пишет решение-маршрут в состояние → `branch` маршрутизирует по валидированному значению; evaluator-optimizer — это `loop` с вердиктом; orchestrator-workers — `parallel` + join. Примеры процессов — в [`fixtures/golden/processes/`](fixtures/golden/processes/).
134
136
 
@@ -169,7 +171,7 @@ flowchart LR
169
171
 
170
172
  **Rust-workspace по крейту на компонент** — Process Engine, Mediation, Executors, Memory, Capability, Model Pool, Actors, Tool Runtime, Context Engine, Eval, Storage. Гостевой WASM-модуль (`codeact-guest/`) живёт отдельным crate и закоммичен как готовый артефакт — обычная сборка не замедляется.
171
173
 
172
- **Дисциплина проверок.** Каждый релиз: `cargo fmt` + `clippy -D warnings` + `cargo test --workspace` (945 тестов: юнит, интеграционные, e2e через настоящий бинарник, золотые фикстуры процессов и вредоносных вводов). Критические компоненты проходят обязательное независимое ревью. Полный самостоятельный аудит (`docs/audit-2026-07-31.md`) — **все находки закрыты или осознанно задокументированы**.
174
+ **Дисциплина проверок.** Каждый релиз: `cargo fmt` + `clippy -D warnings` + `cargo test --workspace` (946 тестов: юнит, интеграционные, e2e через настоящий бинарник, золотые фикстуры процессов и вредоносных вводов). Критические компоненты проходят обязательное независимое ревью. Полный самостоятельный аудит (`docs/audit-2026-07-31.md`) — **все находки закрыты или осознанно задокументированы**.
173
175
 
174
176
  **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 скрипт.
175
177
 
package/checksums.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "berimor-v0.28.0-darwin-arm64.tar.gz": "1c731623255c711d268bfc4566a22632612205b1b03c60b9970af8bc2d114217",
3
- "berimor-v0.28.0-linux-arm64.tar.gz": "f8716e74760dd8e1ea33bcb70ed79ddb9e8ac35651f5ca1b863836f9ea7e7233",
4
- "berimor-v0.28.0-linux-x64.tar.gz": "2b4973b9b97d179448530991ab1545229a179e70e10409b6ce12bccf4c057958",
5
- "berimor-v0.28.0-win32-x64.zip": "80958f040adaab526db24db38913030d43c20a0a8d67a1ff87efd8461e7afbe1"
2
+ "berimor-v0.29.0-darwin-arm64.tar.gz": "97be78f7b0aa90fb50bbbf923a8faad5383b4579f1feffc021984d6450c0eebe",
3
+ "berimor-v0.29.0-linux-arm64.tar.gz": "ac4d968df040caf0b9b86095e6f566289be7035c881cdbdb9ee369b525da2b3d",
4
+ "berimor-v0.29.0-linux-x64.tar.gz": "c5241ed293a81bf07ddeba06dbeaf8dd1ad3399768601dd4c675cbc8d81279b0",
5
+ "berimor-v0.29.0-win32-x64.zip": "df1cace7cf9d56dcc9141ca7c48cbde152aae8ac6186e53e6a73408e54f5490b"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "berimor",
3
- "version": "0.28.0",
3
+ "version": "0.29.0",
4
4
  "description": "Berimor — агентный CLI для LLM: интерактивный чат с инструментами (файлы, терминал, HTTP), детерминированные процессы, аудит и replay. Этот пакет — установщик платформенного бинарника.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {