berimor 0.33.0 → 0.34.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-966%20green-brightgreen)](#инфраструктура-проекта)
17
+ [![Tests](https://img.shields.io/badge/tests-968%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)
@@ -134,6 +134,8 @@ 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
+ **Бюджет ходов свободного цикла** (0.34.0): потолок на сообщение — `[agent] max_turns` (дефолт 32, было 12). Защита от зацикливания отделена от лимита длины: повтор одного и того же действия подряд (инструмент + те же аргументы) — предупреждение в промпт, четыре подряд — остановка `StuckLoop` с говорящей причиной; длинная РАЗНАЯ работа (анализ проекта за десятки чтений) лимитом не наказывается. За ~20% до потолка движок добавляет в промпт замечание «осталось N ходов — своди результат в Finish».
138
+
137
139
  **Пентест с PoC-валидацией** (0.33.0, по мотивам usestrix/strix): эталонный процесс [`fixtures/golden/processes/pentest/`](fixtures/golden/processes/pentest/) — разведка → гипотезы (evidence перед классом, SGR) → `human_gate` → активная проверка → отчёт, где находка принимается только с доказательством исполнения; неподтверждённое честно попадает в `unconfirmed`. Гард-рейлы обязательны: цели из явного scope, активные действия через человека, всё в журнале. Попутно: статический deny capability-слоя в свободном цикле стал наблюдением хода, а не смертью прогона — модель корректирует действие под правила, гейт каждую попытку по-прежнему режет.
138
140
 
139
141
  **Управляемость расширений** (0.32.0): `berimor skill lint` / `berimor agent lint` — статические проверки манифеста (контракт имени, известные инструменты, согласованность `permissions` — net/exec/fs-write/spawn — с потолком tools); установка из каталога fail-closed: ошибка линта — откат. `berimor skill review` / `agent review` — мультимодельное ревью содержимого как недоверенных данных: каждый настроенный провайдер выносит вердикт независимо, итог кворумом (fail любого = fail), JSON-отчёт с находками. В релизах — `release-evidence.json` (хэши, подписи, SBOM, след CI) и `release-smoke-linux-x64.json`.
@@ -177,7 +179,7 @@ flowchart LR
177
179
 
178
180
  **Rust-workspace по крейту на компонент** — Process Engine, Mediation, Executors, Memory, Capability, Model Pool, Actors, Tool Runtime, Context Engine, Eval, Storage. Гостевой WASM-модуль (`codeact-guest/`) живёт отдельным crate и закоммичен как готовый артефакт — обычная сборка не замедляется.
179
181
 
180
- **Дисциплина проверок.** Каждый релиз: `cargo fmt` + `clippy -D warnings` + `cargo test --workspace` (966 тестов: юнит, интеграционные, e2e через настоящий бинарник, золотые фикстуры процессов и вредоносных вводов). Критические компоненты проходят обязательное независимое ревью. Полный самостоятельный аудит (`docs/audit-2026-07-31.md`) — **все находки закрыты или осознанно задокументированы**.
182
+ **Дисциплина проверок.** Каждый релиз: `cargo fmt` + `clippy -D warnings` + `cargo test --workspace` (968 тестов: юнит, интеграционные, e2e через настоящий бинарник, золотые фикстуры процессов и вредоносных вводов). Критические компоненты проходят обязательное независимое ревью. Полный самостоятельный аудит (`docs/audit-2026-07-31.md`) — **все находки закрыты или осознанно задокументированы**.
181
183
 
182
184
  **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 скрипт.
183
185
 
package/checksums.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "berimor-v0.33.0-darwin-arm64.tar.gz": "3cdc2d20099559c0ed2df9654ddde1381a461e30f29f8692d0b74a2566efa49c",
3
- "berimor-v0.33.0-linux-arm64.tar.gz": "d90513ff2136747b5771850f87114717de067c5bd2667a5ac75f0a0044037901",
4
- "berimor-v0.33.0-linux-x64.tar.gz": "8912f9a34a2e5c4f7bdaaf52cff38f5cfb0ea53b0cd56e18ada50d02ad87dd1e",
5
- "berimor-v0.33.0-win32-x64.zip": "21f93e3ce49f8ac0595796d903e0c40beabaeceadf547adfeda978f81599de18"
2
+ "berimor-v0.34.0-darwin-arm64.tar.gz": "ac88e8d24415f0dd8d3289ba57b2674072126d9adfec59ad48006ea32dfe59dd",
3
+ "berimor-v0.34.0-linux-arm64.tar.gz": "07353f349cb99efb802550de2d47c2575910593cea2c6fe38a7aff1c5c24cb2c",
4
+ "berimor-v0.34.0-linux-x64.tar.gz": "bcbe979da840b60afd7bd47f60bafad89b584f6125c906e642d7fa584563c2c4",
5
+ "berimor-v0.34.0-win32-x64.zip": "cdc9196fb1e24ba4f831af75cd29d815dbfac5b0e3b26a34ee82191e0c4cfe65"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "berimor",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "Berimor — агентный CLI для LLM: интерактивный чат с инструментами (файлы, терминал, HTTP), детерминированные процессы, аудит и replay. Этот пакет — установщик платформенного бинарника.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {