@7n/llm-lib 2.4.1 → 2.5.1
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 +12 -0
- package/README.md +2 -2
- package/lib/body-capture.mjs +3 -3
- package/lib/docs/body-capture.md +3 -3
- package/lib/docs/telemetry-store.md +1 -1
- package/lib/telemetry-store.mjs +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.5.1] - 2026-07-12
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- live-e2e фікси петлі MT→pi-harness (2026-07-12): telemetry-store pruneNoopEdits — no-op пари (oldText===newText, слабка 4B переклеює рядок сам на себе) не пишуться у distillation-стор
|
|
8
|
+
|
|
9
|
+
## [2.5.0] - 2026-07-11
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- body-capture (N_LLM_TRACE_BODIES) увімкнено за замовчуванням; N_LLM_TRACE_BODIES=0 вимикає
|
|
14
|
+
|
|
3
15
|
## [2.4.1] - 2026-07-11
|
|
4
16
|
|
|
5
17
|
### Fixed
|
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ pi свідомо лишає на caller-а: model tiers, fail-fast політи
|
|
|
35
35
|
| `@7n/llm-lib/telemetry-store` | `recordFixTelemetry(record)`, `signatureOf(record)`, `openCount(rule)`, `telemetryDir()` |
|
|
36
36
|
| `@7n/llm-lib/with-timeout` | `withTimeout(promise, ms, {onTimeout?, label?})` |
|
|
37
37
|
| `@7n/llm-lib/prompt-budget` | `budgetFor(kind)`, `fitToBudget(chunks, maxChars)`, `packBatch(items, maxChars)`, `capText(text, maxChars)` |
|
|
38
|
-
| `@7n/llm-lib/body-capture` | `captureBody(record, opts?)` (
|
|
38
|
+
| `@7n/llm-lib/body-capture` | `captureBody(record, opts?)` (увімкнено за замовчуванням, `N_LLM_TRACE_BODIES=0` вимикає), `bodiesDir()`, `bodyCaptureEnabled()` |
|
|
39
39
|
| `@7n/llm-lib/anchored-edit` | `createAnchoredTools({cwd, defineTool})`, `applyAnchoredEdits(content, edits)`, `lineAnchor(text)`, `renderAnchored(content, range?)` — hash-anchored строгі edit-tools (профіль `anchoredEdits`) |
|
|
40
40
|
| `@7n/llm-lib/web-tools` | `createWebTools({defineTool})`, `fetchPage(url, opts?)`, `assertPublicHttpUrl(url)`, `resolveSearchProvider(env)` — web_search/web_fetch із SSRF-guard (профіль `webTools`) |
|
|
41
41
|
|
|
@@ -114,7 +114,7 @@ Runtime-knobs (нове імʼя має пріоритет; legacy-alias пра
|
|
|
114
114
|
| `N_LLM_SKILL_TIMEOUT_MS` | `N_CURSOR_SKILL_TIMEOUT_MS` | 600000 |
|
|
115
115
|
| `N_LLM_LOCAL_PROVIDERS` | — | `omlx` (кома-список провайдерів, що вважаються локальними) |
|
|
116
116
|
| `N_LLM_COMPRESS` | — | увімкнено (`0` — вимикає клієнтську компресію контексту, лише для дебагу) |
|
|
117
|
-
| `N_LLM_TRACE_BODIES` | — |
|
|
117
|
+
| `N_LLM_TRACE_BODIES` | — | увімкнено (`0` — вимкнути body-capture повних тіл, важкі дані) |
|
|
118
118
|
| `N_LLM_BODIES_DIR` | — | `~/.n-cursor/llm-bodies` |
|
|
119
119
|
| `N_LLM_BODIES_MAX_MB` | — | `500` (ретеншн: авто-очистка найстаріших файлів понад ліміт) |
|
|
120
120
|
|
package/lib/body-capture.mjs
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* і для CLOUD-викликів (проксі бачив лише local), (2) не залежить від
|
|
7
7
|
* запущеного myllm.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Увімкнено за замовчуванням — вимикається `N_LLM_TRACE_BODIES=0`.
|
|
10
10
|
* Не pi-coupled (чиста FS-утиліта, як [trace]/[telemetry-store]) — публічний
|
|
11
11
|
* модуль пакета; основні консюмери — самі раннери (кличуть напряму), зовнішні
|
|
12
12
|
* читачі (напр. myllm) читають файли зі стору за тією ж конвенцією шляху.
|
|
@@ -39,11 +39,11 @@ function maxBytes() {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
* Чи body-capture увімкнено (дефолт
|
|
42
|
+
* Чи body-capture увімкнено (дефолт увімкнено — вимикають свідомо `N_LLM_TRACE_BODIES=0`).
|
|
43
43
|
* @returns {boolean} true — захоплення увімкнено.
|
|
44
44
|
*/
|
|
45
45
|
export function bodyCaptureEnabled() {
|
|
46
|
-
return env.N_LLM_TRACE_BODIES
|
|
46
|
+
return env.N_LLM_TRACE_BODIES !== '0'
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/**
|
package/lib/docs/body-capture.md
CHANGED
|
@@ -3,12 +3,12 @@ type: JS Module
|
|
|
3
3
|
title: body-capture.mjs
|
|
4
4
|
resource: llm-lib/lib/body-capture.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
6
|
+
crc: 3e3be25e
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Огляд
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Захоплення повних тіл LLM-викликів (prompt+response) — заміна колишнього requests.jsonl myllm-проксі, з перевагою: працює і для CLOUD-викликів (проксі бачив лише local), і не залежить від запущеного myllm. Увімкнено за замовчуванням — вимикається N_LLM_TRACE_BODIES=0. Не pi-coupled — публічний модуль пакета.
|
|
12
12
|
|
|
13
13
|
## Поведінка
|
|
14
14
|
|
|
@@ -17,7 +17,7 @@ captureBody — пише JSON-файл у ~/.n-cursor/llm-bodies/<chainId або
|
|
|
17
17
|
## Публічний API
|
|
18
18
|
|
|
19
19
|
bodiesDir() — корінь стору (env N_LLM_BODIES_DIR).
|
|
20
|
-
bodyCaptureEnabled() — чи увімкнено (N_LLM_TRACE_BODIES
|
|
20
|
+
bodyCaptureEnabled() — чи увімкнено (N_LLM_TRACE_BODIES!=='0').
|
|
21
21
|
captureBody(record, opts?) — шлях збереженого файлу або null.
|
|
22
22
|
|
|
23
23
|
## Гарантії поведінки
|
package/lib/telemetry-store.mjs
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@7n/llm-lib",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "Тонкий шар роботи з LLM (локальні omlx + хмарні провайдери) поверх pi: model tiers, one-shot, agentic-раннери, write-guard, trace, telemetry, prompt-budget",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nitra",
|