@7n/llm-lib 2.9.3 → 2.9.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.9.4] - 2026-07-26
4
+
5
+ ### Fixed
6
+
7
+ - Додано безпечну telemetry batch verdict для coverage timeout-ів.
8
+
3
9
  ## [2.9.3] - 2026-07-26
4
10
 
5
11
  ### Fixed
package/lib/agent-fix.mjs CHANGED
@@ -509,7 +509,11 @@ export async function runAgentFix(ruleId, violation, cwd, opts = {}) {
509
509
  blocks: guard.state.blocks,
510
510
  backstopHit,
511
511
  verifyAttempts,
512
- wallMs: clock() - startedAt
512
+ // У trace це вже є, але consumer-ам batch-діагностики потрібен той самий
513
+ // безпечний агрегат без доступу до повного prompt-а чи capture body.
514
+ promptChars: fixPrompt.length,
515
+ wallMs: clock() - startedAt,
516
+ error
513
517
  }
514
518
  // Usage кроку для chain-агрегатів: сума по turns агентної сесії.
515
519
  const stepUsage = { input: 0, output: 0, totalTokens: 0 }
@@ -3,27 +3,25 @@ type: JS Module
3
3
  title: agent-fix.mjs
4
4
  resource: llm-lib/lib/agent-fix.mjs
5
5
  docgen:
6
- crc: 73c7797b
6
+ crc: 5e6d8369
7
7
  model: openai-codex/gpt-5.4-mini
8
8
  tier: cloud-min
9
- score: 90
10
- issues: internal-name:runVerifyLoop,judge-refine:kept-original,judge:inaccurate:0.98
9
+ score: 100
10
+ issues: judge-refine:kept-original,judge:inaccurate:0.98
11
11
  judgeModel: openai-codex/gpt-5.4-mini
12
12
  ---
13
13
 
14
14
  ## Огляд
15
15
 
16
- `buildVerifyFeedbackPrompt`, `buildFixPrompt` і `runAgentFix` описують локальний agent-fix цикл: перші дві функції формують промпти для перевірки та виправлення, а `runAgentFix` запускає саму спробу правки. Це потрібно, щоб тримати зміни в межах заданого `violation` і пов’язаного контексту та віддавати керований результат для подальшого кроку.
17
-
18
- Усі публічні точки входу працюють fail-safe: помилки перехоплюються всередині, назовні винятки не виходять.
16
+ Модуль формує два промпти для локального виправлення порушення за правилом: `buildVerifyFeedbackPrompt` збирає запит на перевірку вже виявленого фідбеку, а `buildFixPrompt` запит на виправлення з урахуванням обмеженого контексту й дозволених файлів. `runAgentFix` запускає цей цикл і повертає результат без пробросу помилок назовні: будь-які збої перехоплюються, щоб процес залишався fail-safe.
19
17
 
20
18
  ## Поведінка
21
19
 
22
- Поточний `violation` стає джерелом правди для стартового fix-пrompt, а `ruleText`, `feedback`, `targetFiles`, `sourceFiles` і `editMode` лише уточнюють межі та контекст правки. `buildFixPrompt` формує жорстко обмежений запит на механічні зміни, щоб агент не розмивав помилку семантичними “виправленнями” поза дозволеними файлами; далі цей prompt передається в ту саму сесію, де виконуються правки, і після цього запускається внутрішня verify-петля.
20
+ Спочатку формується fix-промпт із правилом, порушенням і доступним контекстом редагування; для generic-режиму він жорстко звужує простір змін до дозволених файлів, а для test-generation розділяє read-only джерела й тестові файли. Якщо попередня перевірка вже дала зворотний зв’язок, він додається в той самий промпт як додаткове обмеження. Далі виконується одна агентна спроба виправлення в межах рунга: результатом стає набір торкнутих файлів, телеметрія або помилка, а при фейлі повертається rollback без винесення винятку назовні.
23
21
 
24
- `runAgentFix` оркеструє один рунг від старту до завершення: створює сесію, дає їй prompt для правки, збирає результати редагування, а потім передає контроль у verify-loop. Якщо перевірка повертає порушення, `buildVerifyFeedbackPrompt` перетворює їх на фідбек для тієї ж сесії, щоб ітерація була локальною і не втрачала вже зроблені зміни.
22
+ Після внесення змін запускається verify-петля над тими самими торкнутими файлами. Вона повторює canonical verify у тій самій сесії, а при невдалому результаті передає точний вивід перевірки назад у verify-feedback prompt і продовжує, доки не буде ok, не вичерпається ліміт спроб або не закінчиться спільний таймаут рунга. Якщо сама перевірка падає інфраструктурно, це не маскується під звичайне порушення: петля зупиняється чесною помилкою. Зовнішній consumer лишається джерелом правди про остаточне re-detect, а тут використовується лише рання локальна корекція.
25
23
 
26
- `runVerifyLoop` зупиняється лише коли перевірка стає ok, вичерпується ліміт спроб або закінчується спільний time budget рунга; він не заводить нові таймери й не маскує помилки самої перевірки. Якщо перевірка падає як інфраструктура, це повертається як помилка без спалювання ітерацій. Фінальний результат `runAgentFix` завжди fail-safe: або застосована правка з переліком touched files і telemetry, або контрольована помилка з можливістю rollback.
24
+ Увесь потік працює fail-safe: помилки не пробиваються назовні як винятки, а повертаються у результаті як error. Загальний стан між етапами це лише дані рунга: ruleId, violation, контекст правил, дозволені файли, feedback, verify-результати та список touchedFiles; жодного прихованого глобального стану в поведінкових гарантіях не використовується.
27
25
 
28
26
  ## Публічний API
29
27
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@7n/llm-lib",
3
- "version": "2.9.3",
3
+ "version": "2.9.4",
4
4
  "description": "Тонкий шар роботи з LLM (локальні omlx + хмарні провайдери) поверх pi: model tiers, one-shot, agentic-раннери, write-guard, trace, telemetry, prompt-budget",
5
5
  "keywords": [
6
6
  "nitra",
@@ -55,8 +55,8 @@
55
55
  "access": "public"
56
56
  },
57
57
  "optionalDependencies": {
58
- "@7n/llm-lib-darwin-arm64": "2.9.3",
59
- "@7n/llm-lib-linux-x64": "2.9.3"
58
+ "@7n/llm-lib-darwin-arm64": "2.9.4",
59
+ "@7n/llm-lib-linux-x64": "2.9.4"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@earendil-works/pi-ai": "~0.80.10",