@webywz/context-diet 0.3.1 → 0.5.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 +221 -120
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -1
- package/dist/cli.js.map +1 -1
- package/dist/github-summary.d.ts +4 -0
- package/dist/github-summary.d.ts.map +1 -0
- package/dist/github-summary.js +39 -0
- package/dist/github-summary.js.map +1 -0
- package/dist/html-report.d.ts +16 -0
- package/dist/html-report.d.ts.map +1 -0
- package/dist/html-report.js +205 -0
- package/dist/html-report.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/parse-args.d.ts +5 -1
- package/dist/parse-args.d.ts.map +1 -1
- package/dist/parse-args.js +26 -0
- package/dist/parse-args.js.map +1 -1
- package/dist/report.d.ts +2 -0
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +31 -0
- package/dist/report.js.map +1 -1
- package/examples/github-action.yml +7 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,133 +1,108 @@
|
|
|
1
1
|
# context-diet
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@webywz/context-diet)
|
|
4
|
+
[](https://www.npmjs.com/package/@webywz/context-diet)
|
|
5
|
+
[](./LICENSE)
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
> **Slim LLM context before you send it.**
|
|
8
|
+
>
|
|
9
|
+
> **把要喂给模型的上下文先瘦身。**
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
npm i -g @webywz/context-diet
|
|
9
|
-
```
|
|
11
|
+
Drop noise, keep signal, estimate tokens — locally, offline, in milliseconds.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
丢掉噪声,留下信号,估算 token —— 本地、离线、毫秒级。
|
|
14
|
+
|
|
15
|
+
---
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
## English
|
|
18
|
+
|
|
19
|
+
### Demo
|
|
16
20
|
|
|
17
21
|
```bash
|
|
18
22
|
npx @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
19
23
|
```
|
|
20
24
|
|
|
21
|
-
Bundled `examples/noisy.txt` goes in; slimmed body on **stdout**, human report on **stderr**. No
|
|
25
|
+
Bundled `examples/noisy.txt` goes in; slimmed body on **stdout**, human report on **stderr**. No clone required — `examples/` ships in the npm package.
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
context-diet 0.5.0
|
|
29
|
+
source: examples/noisy.txt
|
|
30
|
+
chars: 1,666 → 834 (−49.9%)
|
|
31
|
+
tokens: ~667 → ~312 (−53.2%)
|
|
32
|
+
cut:
|
|
33
|
+
boilerplate lines 9
|
|
34
|
+
duplicate paragraphs 2
|
|
35
|
+
omitted heavy blobs 1
|
|
36
|
+
…
|
|
37
|
+
```
|
|
22
38
|
|
|
23
|
-
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
| | |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| **Offline heuristics** | Strip ANSI/HTML chrome, drop boilerplate, dedupe, omit base64 blobs |
|
|
44
|
+
| **Presets** | `logs`, `email`, `chat`, `html` — sensible keep/strip defaults |
|
|
45
|
+
| **Budget** | `--max-tokens` drops low-value blocks first; `--keep` pins headings/code/lists |
|
|
46
|
+
| **Pipe-friendly** | Slimmed body → stdout; report → stderr |
|
|
47
|
+
| **Bundled examples** | `--demo` / `examples/noisy.txt` in the published tarball |
|
|
48
|
+
| **Optional deepen** | `--deepen` LLM second pass only when you opt in with a key |
|
|
49
|
+
| **HTML report** | `--html <path>` writes a self-contained before/after report (offline, no CDN) |
|
|
50
|
+
| **Step summary** | `--github-summary` appends a short diet report to `$GITHUB_STEP_SUMMARY` |
|
|
51
|
+
|
|
52
|
+
### Install
|
|
24
53
|
|
|
25
54
|
```bash
|
|
26
55
|
npm i -g @webywz/context-diet
|
|
27
56
|
```
|
|
28
57
|
|
|
29
|
-
Node 18
|
|
58
|
+
Node 18+. No tokenizer files, no GPU, no account.
|
|
30
59
|
|
|
31
60
|
```bash
|
|
32
|
-
# one-off
|
|
33
61
|
npx @webywz/context-diet --help
|
|
34
62
|
```
|
|
35
63
|
|
|
36
|
-
|
|
64
|
+
### Quick start
|
|
37
65
|
|
|
38
66
|
```bash
|
|
39
|
-
# file → slimmed text on stdout, report on stderr
|
|
40
67
|
context-diet input.txt
|
|
41
|
-
|
|
42
|
-
# bundled demo fixture (same I/O; great for npx smoke tests)
|
|
43
68
|
npx @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
44
|
-
|
|
45
|
-
# stdin
|
|
46
69
|
cat noisy.log | context-diet --preset logs --max-tokens 1500 > slim.txt
|
|
47
|
-
|
|
48
|
-
# write the body to a file
|
|
49
70
|
context-diet notes.md -o slim.md --keep headings,code,lists
|
|
50
|
-
|
|
51
|
-
# report only (no body / no -o write)
|
|
52
71
|
context-diet input.txt --dry-run --diff
|
|
53
|
-
|
|
54
|
-
# machine-readable
|
|
72
|
+
context-diet --demo --html diet.html -q
|
|
55
73
|
context-diet input.txt --json | jq '{tokens: .output.tokens, cuts}'
|
|
74
|
+
context-diet examples/noisy.txt --keep headings|code|lists
|
|
56
75
|
```
|
|
57
76
|
|
|
58
77
|
### Presets
|
|
59
78
|
|
|
60
79
|
| Preset | Keeps by default | Extra strippers |
|
|
61
80
|
| --- | --- | --- |
|
|
62
|
-
| `logs` | `code` | Prefer `ERROR
|
|
81
|
+
| `logs` | `code` | Prefer `ERROR` / `WARN` / `FATAL` when truncating |
|
|
63
82
|
| `email` | `headings`, `lists` | Quoted replies (`>` / `On … wrote:` / Original Message) |
|
|
64
|
-
| `chat` | `code`, `lists` | Reactions, join/leave
|
|
83
|
+
| `chat` | `code`, `lists` | Reactions, join/leave, lone timestamps |
|
|
65
84
|
| `html` | `headings`, `code`, `lists` | `<script>` / `<style>` / comments / tags → prose |
|
|
66
85
|
|
|
67
86
|
Explicit `--keep` always wins over the preset default.
|
|
68
87
|
|
|
69
|
-
###
|
|
70
|
-
|
|
71
|
-
Input (`examples/noisy.txt`, shipped in the npm package) — repeated logs, a duplicated runbook, a signature, a fat blob:
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
[2026-03-14 09:01:02] INFO Starting request handler
|
|
75
|
-
[2026-03-14 09:01:02] DEBUG loading config from /etc/app/config.yaml
|
|
76
|
-
…
|
|
77
|
-
CONFIDENTIALITY NOTICE
|
|
78
|
-
…
|
|
79
|
-
Sent from my iPhone
|
|
80
|
-
data:image/png;base64,iVBORw0KGgo… (huge)
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
context-diet examples/noisy.txt --keep headings|code|lists
|
|
85
|
-
# same fixture via --demo:
|
|
86
|
-
context-diet --demo --keep headings|code|lists
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Stderr:
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
context-diet 0.3.0
|
|
93
|
-
source: examples/noisy.txt
|
|
94
|
-
chars: 1,666 → 834 (−49.9%)
|
|
95
|
-
tokens: ~667 → ~312 (−53.2%)
|
|
96
|
-
cut:
|
|
97
|
-
ansi sequences 0
|
|
98
|
-
html chrome 0
|
|
99
|
-
quoted replies 0
|
|
100
|
-
chat chrome 0
|
|
101
|
-
boilerplate lines 9
|
|
102
|
-
duplicate paragraphs 2
|
|
103
|
-
whitespace runs 5
|
|
104
|
-
omitted heavy blobs 1
|
|
105
|
-
truncated blocks 0
|
|
106
|
-
truncated tokens ~0
|
|
107
|
-
llm deepen no
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Stdout keeps the redis error, the unique runbook facts, the rollback list, and the `healthz` fence — not the fourth identical `DEBUG` line, not the iPhone signature, not the blob.
|
|
88
|
+
### What it does
|
|
111
89
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
All of this is **offline heuristics**. No network unless you pass `--deepen`.
|
|
90
|
+
All offline unless you pass `--deepen`.
|
|
115
91
|
|
|
116
92
|
| Step | Behavior |
|
|
117
93
|
| --- | --- |
|
|
118
94
|
| Strip ANSI | Terminal color / OSC sequences |
|
|
119
|
-
| Strip HTML | Optional / `--preset html
|
|
95
|
+
| Strip HTML | Optional / `--preset html` |
|
|
120
96
|
| Omit heavy blobs | Long base64 / data-URIs → `[omitted blob: N chars]` |
|
|
121
|
-
| Collapse whitespace |
|
|
122
|
-
| Drop boilerplate | Repeated log lines
|
|
123
|
-
| Drop quoted
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
| Truncate | `--max-tokens N` drops low-value blocks first; `--keep` / presets pin types; `logs` also prefers error lines |
|
|
97
|
+
| Collapse whitespace | Never inside code fences |
|
|
98
|
+
| Drop boilerplate | Repeated log lines, signatures, `DEBUG` chrome |
|
|
99
|
+
| Drop quoted / chat chrome | Email quotes; reactions / join-leave |
|
|
100
|
+
| Dedupe paragraphs | Exact and near-identical (Jaccard ≥ 0.84) |
|
|
101
|
+
| Truncate | `--max-tokens` + `--keep` / presets |
|
|
127
102
|
|
|
128
|
-
Token estimates are **cl100k-ish** (
|
|
103
|
+
Token estimates are **cl100k-ish** (~4 chars/word, 1 CJK ≈ 1 token). Good enough to budget a prompt — not a billed tokenizer.
|
|
129
104
|
|
|
130
|
-
|
|
105
|
+
### CLI
|
|
131
106
|
|
|
132
107
|
```
|
|
133
108
|
context-diet [file] [options]
|
|
@@ -135,32 +110,42 @@ context-diet [file] [options]
|
|
|
135
110
|
|
|
136
111
|
| Flag | Meaning |
|
|
137
112
|
| --- | --- |
|
|
138
|
-
| `[file]` | Path to read
|
|
113
|
+
| `[file]` | Path to read; omit or `-` for stdin |
|
|
139
114
|
| `-o, --output <file>` | Write slimmed text here instead of stdout |
|
|
115
|
+
| `--html <path>` | Write self-contained HTML report (stats + capped previews) |
|
|
140
116
|
| `--max-tokens <n>` | Cap estimated output tokens |
|
|
141
117
|
| `--keep <cats>` | Prefer `headings`, `code`, `lists` when truncating (comma or `\|`) |
|
|
142
118
|
| `--preset <name>` | `logs` \| `email` \| `chat` \| `html` |
|
|
143
|
-
| `--demo` | Diet
|
|
144
|
-
| `--json` | JSON report on stdout
|
|
145
|
-
| `--dry-run` | Report only;
|
|
119
|
+
| `--demo` | Diet bundled `examples/noisy.txt` |
|
|
120
|
+
| `--json` | JSON report on stdout |
|
|
121
|
+
| `--dry-run` | Report only; no body / no `-o` write |
|
|
146
122
|
| `--diff` | Show removed lines on stderr (capped) |
|
|
147
|
-
| `--deepen` | Optional LLM rewrite
|
|
148
|
-
| `--provider openai\|anthropic` | Force
|
|
123
|
+
| `--deepen` | Optional LLM rewrite |
|
|
124
|
+
| `--provider openai\|anthropic` | Force provider for `--deepen` |
|
|
125
|
+
| `--github-summary [path]` | Append diet Markdown to `$GITHUB_STEP_SUMMARY` or path |
|
|
149
126
|
| `-q, --quiet` | No human report on stderr |
|
|
150
|
-
| `-h, --help` | Help |
|
|
151
|
-
| `-V, --version` | Version |
|
|
127
|
+
| `-h, --help` / `-V, --version` | Help / version |
|
|
152
128
|
|
|
153
|
-
Default I/O
|
|
129
|
+
Default I/O stays pipe-friendly:
|
|
154
130
|
|
|
155
131
|
```bash
|
|
156
132
|
pbpaste | context-diet --preset chat --max-tokens 800 | pbcopy
|
|
157
133
|
```
|
|
158
134
|
|
|
159
|
-
|
|
135
|
+
### Optional LLM pass
|
|
160
136
|
|
|
161
|
-
|
|
137
|
+
`--deepen` is never required. With a key:
|
|
162
138
|
|
|
163
|
-
|
|
139
|
+
```bash
|
|
140
|
+
export OPENAI_API_KEY=sk-... # or ANTHROPIC_API_KEY
|
|
141
|
+
context-diet chapter.md --deepen --max-tokens 1200
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Defaults: `gpt-4o-mini` / `claude-3-5-haiku-20241022` (`OPENAI_MODEL` / `ANTHROPIC_MODEL`). Local result wins if the model returns longer text. Without a key, `--deepen` exits `2` and does not phone home.
|
|
145
|
+
|
|
146
|
+
### CI (GitHub Actions)
|
|
147
|
+
|
|
148
|
+
Starter: [`examples/github-action.yml`](examples/github-action.yml) (includes `--github-summary`).
|
|
164
149
|
|
|
165
150
|
```yaml
|
|
166
151
|
- uses: actions/setup-node@v4
|
|
@@ -169,23 +154,9 @@ Copy-paste starter: [`examples/github-action.yml`](examples/github-action.yml).
|
|
|
169
154
|
- name: Slim context
|
|
170
155
|
run: |
|
|
171
156
|
npx --yes @webywz/context-diet --demo --preset logs --max-tokens 400 > slim.txt
|
|
172
|
-
# or: npx --yes @webywz/context-diet path/to/noisy.log --preset logs -o slim.txt
|
|
173
157
|
```
|
|
174
158
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
## Optional LLM pass
|
|
178
|
-
|
|
179
|
-
`--deepen` is **never required**. If you already have a key and want a second squeeze after the local diet:
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
export OPENAI_API_KEY=sk-... # or ANTHROPIC_API_KEY
|
|
183
|
-
context-diet chapter.md --deepen --max-tokens 1200
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
Defaults: `gpt-4o-mini` / `claude-3-5-haiku-20241022` (override with `OPENAI_MODEL` or `ANTHROPIC_MODEL`). The local result wins if the model comes back *longer*. Without a key, `--deepen` exits `2` with a clear message and does not phone home.
|
|
187
|
-
|
|
188
|
-
## Library
|
|
159
|
+
### Library
|
|
189
160
|
|
|
190
161
|
```ts
|
|
191
162
|
import { diet, dietAsync, estimateTokens } from "@webywz/context-diet";
|
|
@@ -193,28 +164,158 @@ import { diet, dietAsync, estimateTokens } from "@webywz/context-diet";
|
|
|
193
164
|
const { text, input, output, cuts } = diet(raw, {
|
|
194
165
|
maxTokens: 2000,
|
|
195
166
|
preset: "logs",
|
|
196
|
-
keep: ["code"],
|
|
167
|
+
keep: ["code"],
|
|
197
168
|
});
|
|
198
169
|
|
|
199
|
-
await dietAsync(raw, { deepen: true });
|
|
200
|
-
estimateTokens(text);
|
|
170
|
+
await dietAsync(raw, { deepen: true });
|
|
171
|
+
estimateTokens(text);
|
|
201
172
|
```
|
|
202
173
|
|
|
203
|
-
|
|
174
|
+
### Exit codes
|
|
204
175
|
|
|
205
176
|
| Code | Meaning |
|
|
206
177
|
| --- | --- |
|
|
207
|
-
| 0 | Success |
|
|
208
|
-
| 1 | Usage / missing input / unreadable file |
|
|
209
|
-
| 2 | `--deepen` failed (no key, HTTP error) |
|
|
178
|
+
| `0` | Success |
|
|
179
|
+
| `1` | Usage / missing input / unreadable file |
|
|
180
|
+
| `2` | `--deepen` failed (no key, HTTP error) |
|
|
210
181
|
|
|
211
|
-
|
|
182
|
+
### Develop
|
|
212
183
|
|
|
213
184
|
```bash
|
|
214
|
-
npm test
|
|
215
|
-
npm run build
|
|
216
|
-
node dist/cli.js --help
|
|
185
|
+
npm test && npm run build
|
|
217
186
|
node dist/cli.js --demo --preset logs --max-tokens 400
|
|
218
187
|
```
|
|
219
188
|
|
|
220
|
-
|
|
189
|
+
### Links
|
|
190
|
+
|
|
191
|
+
| | |
|
|
192
|
+
| --- | --- |
|
|
193
|
+
| npm | [npmjs.com/package/@webywz/context-diet](https://www.npmjs.com/package/@webywz/context-diet) |
|
|
194
|
+
| Issues | [github.com/webywz/context-diet/issues](https://github.com/webywz/context-diet/issues) |
|
|
195
|
+
| License | [MIT](./LICENSE) © webywz |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 中文
|
|
200
|
+
|
|
201
|
+
### 演示
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
npx @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
包内自带 `examples/noisy.txt`(随 npm 包发布):瘦身后的正文在 **stdout**,人类可读报告在 **stderr**。无需 clone。
|
|
208
|
+
|
|
209
|
+
### 功能
|
|
210
|
+
|
|
211
|
+
| | |
|
|
212
|
+
| --- | --- |
|
|
213
|
+
| **离线启发式** | 剥 ANSI/HTML、去样板、去重、省略 base64 大块 |
|
|
214
|
+
| **预设** | `logs` / `email` / `chat` / `html` |
|
|
215
|
+
| **预算** | `--max-tokens` 优先丢掉低价值块;`--keep` 钉住标题/代码/列表 |
|
|
216
|
+
| **管道友好** | 正文 → stdout;报告 → stderr |
|
|
217
|
+
| **示例随包** | `--demo` / `examples/noisy.txt` 在发布 tarball 里 |
|
|
218
|
+
| **可选 deepen** | `--deepen` 仅在有 key 且你主动开启时走 LLM |
|
|
219
|
+
| **HTML 报告** | `--html <path>`:写出自包含前后对比报告(离线、无 CDN) |
|
|
220
|
+
| **Step Summary** | `--github-summary`:把精简饮食报告追加到 `$GITHUB_STEP_SUMMARY` |
|
|
221
|
+
|
|
222
|
+
### 安装
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
npm i -g @webywz/context-diet
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
需要 Node 18+。无 tokenizer 文件、无 GPU、无账号。
|
|
229
|
+
|
|
230
|
+
### 快速开始
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
context-diet input.txt
|
|
234
|
+
npx @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
235
|
+
cat noisy.log | context-diet --preset logs --max-tokens 1500 > slim.txt
|
|
236
|
+
context-diet notes.md -o slim.md --keep headings,code,lists
|
|
237
|
+
context-diet input.txt --dry-run --diff
|
|
238
|
+
context-diet --demo --html diet.html -q
|
|
239
|
+
context-diet input.txt --json | jq '{tokens: .output.tokens, cuts}'
|
|
240
|
+
context-diet examples/noisy.txt --keep headings|code|lists
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 预设
|
|
244
|
+
|
|
245
|
+
| 预设 | 默认保留 | 额外剥离 |
|
|
246
|
+
| --- | --- | --- |
|
|
247
|
+
| `logs` | `code` | 截断时优先保留 `ERROR` / `WARN` / `FATAL` |
|
|
248
|
+
| `email` | `headings`, `lists` | 引用回复(`>` / `On … wrote:` / Original Message) |
|
|
249
|
+
| `chat` | `code`, `lists` | 表情反应、进出房系统行、孤立时间戳 |
|
|
250
|
+
| `html` | `headings`, `code`, `lists` | `<script>` / `<style>` / 注释 / 标签 → 纯文本 |
|
|
251
|
+
|
|
252
|
+
显式 `--keep` 始终覆盖预设默认。
|
|
253
|
+
|
|
254
|
+
### 做了什么
|
|
255
|
+
|
|
256
|
+
除 `--deepen` 外全部离线。
|
|
257
|
+
|
|
258
|
+
| 步骤 | 行为 |
|
|
259
|
+
| --- | --- |
|
|
260
|
+
| 剥 ANSI | 终端颜色 / OSC |
|
|
261
|
+
| 剥 HTML | 可选 / `--preset html` |
|
|
262
|
+
| 省略大块 | 长 base64 / data-URI → `[omitted blob: N chars]` |
|
|
263
|
+
| 折叠空白 | 代码围栏内不动 |
|
|
264
|
+
| 去样板 | 重复日志行、签名、`DEBUG` 噪声 |
|
|
265
|
+
| 去引用 / 聊天 chrome | 邮件引用;反应 / 进出房 |
|
|
266
|
+
| 段落去重 | 精确与近似(Jaccard ≥ 0.84) |
|
|
267
|
+
| 截断 | `--max-tokens` + `--keep` / 预设 |
|
|
268
|
+
|
|
269
|
+
Token 估算为 **cl100k 近似**(约 4 字符/词,1 个 CJK ≈ 1 token)。够用来做预算,不是计费 tokenizer。
|
|
270
|
+
|
|
271
|
+
### 命令行要点
|
|
272
|
+
|
|
273
|
+
| 参数 | 含义 |
|
|
274
|
+
| --- | --- |
|
|
275
|
+
| `[file]` | 读取路径;省略或 `-` 读 stdin |
|
|
276
|
+
| `-o, --output <file>` | 把瘦身正文写到文件 |
|
|
277
|
+
| `--html <path>` | 写入自包含 HTML 报告(统计 + 截断预览) |
|
|
278
|
+
| `--max-tokens <n>` | 估算输出 token 上限 |
|
|
279
|
+
| `--keep <cats>` | 截断时优先保留 `headings` / `code` / `lists` |
|
|
280
|
+
| `--preset <name>` | `logs` \| `email` \| `chat` \| `html` |
|
|
281
|
+
| `--demo` | 对包内 `examples/noisy.txt` 瘦身 |
|
|
282
|
+
| `--json` | stdout 输出 JSON 报告 |
|
|
283
|
+
| `--dry-run` | 只报告,不写正文 |
|
|
284
|
+
| `--diff` | stderr 显示被删行(有上限) |
|
|
285
|
+
| `--deepen` | 可选 LLM 二次压缩 |
|
|
286
|
+
| `--provider openai\|anthropic` | 强制 deepen 提供商 |
|
|
287
|
+
| `--github-summary [path]` | 追加饮食 Markdown 到 `$GITHUB_STEP_SUMMARY` 或指定路径 |
|
|
288
|
+
| `-q, --quiet` | 不打印人类报告 |
|
|
289
|
+
|
|
290
|
+
默认 I/O 适合管道:
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
pbpaste | context-diet --preset chat --max-tokens 800 | pbcopy
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 可选 LLM 二次压缩
|
|
297
|
+
|
|
298
|
+
`--deepen` **不是必须的**。有 key 时:
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
export OPENAI_API_KEY=sk-... # 或 ANTHROPIC_API_KEY
|
|
302
|
+
context-diet chapter.md --deepen --max-tokens 1200
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
默认模型:`gpt-4o-mini` / `claude-3-5-haiku-20241022`。若模型返回更长,保留本地结果。无 key 时 `--deepen` 退出码 `2`,不会联网。
|
|
306
|
+
|
|
307
|
+
### 退出码
|
|
308
|
+
|
|
309
|
+
| 码 | 含义 |
|
|
310
|
+
| --- | --- |
|
|
311
|
+
| `0` | 成功 |
|
|
312
|
+
| `1` | 用法错误 / 缺输入 / 文件不可读 |
|
|
313
|
+
| `2` | `--deepen` 失败(无 key、HTTP 错误) |
|
|
314
|
+
|
|
315
|
+
### 链接
|
|
316
|
+
|
|
317
|
+
| | |
|
|
318
|
+
| --- | --- |
|
|
319
|
+
| npm | [npmjs.com/package/@webywz/context-diet](https://www.npmjs.com/package/@webywz/context-diet) |
|
|
320
|
+
| Issues | [github.com/webywz/context-diet/issues](https://github.com/webywz/context-diet/issues) |
|
|
321
|
+
| License | [MIT](./LICENSE) © webywz |
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAsBA,MAAM,WAAW,EAAE;IACjB,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAiED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,EAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwG/E"}
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,9 @@ import { dietAsync } from "./diet.js";
|
|
|
7
7
|
import { DeepenError } from "./llm.js";
|
|
8
8
|
import { demoFixturePath, packageInfo } from "./package-info.js";
|
|
9
9
|
import { HELP_TEXT, parseArgs, UsageError } from "./parse-args.js";
|
|
10
|
-
import {
|
|
10
|
+
import { appendGithubSummary, resolveGithubSummaryPath, } from "./github-summary.js";
|
|
11
|
+
import { formatHtmlReport } from "./html-report.js";
|
|
12
|
+
import { formatGithubSummary, formatHumanReport, formatRemovedDiff, shouldUseColor, toJsonReport, } from "./report.js";
|
|
11
13
|
const defaultIo = () => ({
|
|
12
14
|
stdin: process.stdin,
|
|
13
15
|
stdout: process.stdout,
|
|
@@ -126,6 +128,13 @@ export async function run(argv, io = defaultIo()) {
|
|
|
126
128
|
if (args.output && !args.dryRun) {
|
|
127
129
|
await io.writeFile(args.output, result.text);
|
|
128
130
|
}
|
|
131
|
+
if (args.html) {
|
|
132
|
+
const html = formatHtmlReport(result, source, {
|
|
133
|
+
original: text,
|
|
134
|
+
version,
|
|
135
|
+
});
|
|
136
|
+
await io.writeFile(args.html, html);
|
|
137
|
+
}
|
|
129
138
|
if (args.json) {
|
|
130
139
|
const payload = args.dryRun
|
|
131
140
|
? { ...json, text: undefined, dryRun: true }
|
|
@@ -144,6 +153,18 @@ export async function run(argv, io = defaultIo()) {
|
|
|
144
153
|
if (args.diff) {
|
|
145
154
|
await writeOut(io.stderr, formatRemovedDiff(text, result.text, style));
|
|
146
155
|
}
|
|
156
|
+
const outSummary = args.githubSummary === undefined
|
|
157
|
+
? resolveGithubSummaryPath(undefined, io.env)
|
|
158
|
+
: resolveGithubSummaryPath(args.githubSummary, io.env);
|
|
159
|
+
if (outSummary) {
|
|
160
|
+
try {
|
|
161
|
+
appendGithubSummary(outSummary, formatGithubSummary(result, source, version));
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
165
|
+
await writeOut(io.stderr, `could not write github summary: ${msg}\n`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
147
168
|
return 0;
|
|
148
169
|
}
|
|
149
170
|
function isMainModule() {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const DEFAULT_GITHUB_SUMMARY = "github-step-summary.md";
|
|
2
|
+
export declare function resolveGithubSummaryPath(flagPath: string | true | undefined, env?: NodeJS.ProcessEnv, cwd?: string): string | undefined;
|
|
3
|
+
export declare function appendGithubSummary(path: string, markdown: string): void;
|
|
4
|
+
//# sourceMappingURL=github-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-summary.d.ts","sourceRoot":"","sources":["../src/github-summary.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAsB,GAC1B,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoBxE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { appendFileSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, resolve } from "node:path";
|
|
3
|
+
export const DEFAULT_GITHUB_SUMMARY = "github-step-summary.md";
|
|
4
|
+
export function resolveGithubSummaryPath(flagPath, env = process.env, cwd = process.cwd()) {
|
|
5
|
+
if (flagPath === undefined) {
|
|
6
|
+
const fromEnv = env.GITHUB_STEP_SUMMARY;
|
|
7
|
+
return fromEnv && fromEnv.trim() ? fromEnv : undefined;
|
|
8
|
+
}
|
|
9
|
+
if (flagPath === true || flagPath === "") {
|
|
10
|
+
const fromEnv = env.GITHUB_STEP_SUMMARY;
|
|
11
|
+
if (fromEnv && fromEnv.trim())
|
|
12
|
+
return fromEnv;
|
|
13
|
+
return resolve(cwd, DEFAULT_GITHUB_SUMMARY);
|
|
14
|
+
}
|
|
15
|
+
return resolve(cwd, flagPath);
|
|
16
|
+
}
|
|
17
|
+
export function appendGithubSummary(path, markdown) {
|
|
18
|
+
const body = markdown.endsWith("\n") ? markdown : `${markdown}\n`;
|
|
19
|
+
try {
|
|
20
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// ignore
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
appendFileSync(path, body, "utf8");
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
const code = error && typeof error === "object" && "code" in error
|
|
30
|
+
? String(error.code)
|
|
31
|
+
: "";
|
|
32
|
+
if (code === "ENOENT") {
|
|
33
|
+
writeFileSync(path, body, "utf8");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=github-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-summary.js","sourceRoot":"","sources":["../src/github-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D,MAAM,UAAU,wBAAwB,CACtC,QAAmC,EACnC,MAAyB,OAAO,CAAC,GAAG,EACpC,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC;QACxC,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC;QACxC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,OAAO,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,QAAgB;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC;IAClE,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,IAAI,CAAC;QACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GACR,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK;YACnD,CAAC,CAAC,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DietResult } from "./types.js";
|
|
2
|
+
/** Escape text for safe insertion into HTML text/attr contexts. */
|
|
3
|
+
export declare function escapeHtml(text: string): string;
|
|
4
|
+
export interface HtmlReportOptions {
|
|
5
|
+
/** Cap preview panes (chars). Default 4000. */
|
|
6
|
+
previewChars?: number;
|
|
7
|
+
/** Original input text for side-by-side / removed preview. */
|
|
8
|
+
original?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Self-contained dark HTML diet report (inline CSS, no CDN).
|
|
13
|
+
* Slimmed body still goes to stdout / -o; this is the human artifact.
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatHtmlReport(result: DietResult, source: string, options?: HtmlReportOptions): string;
|
|
16
|
+
//# sourceMappingURL=html-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAmJR"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/** Escape text for safe insertion into HTML text/attr contexts. */
|
|
2
|
+
export function escapeHtml(text) {
|
|
3
|
+
return text
|
|
4
|
+
.replace(/&/g, "&")
|
|
5
|
+
.replace(/</g, "<")
|
|
6
|
+
.replace(/>/g, ">")
|
|
7
|
+
.replace(/"/g, """)
|
|
8
|
+
.replace(/'/g, "'");
|
|
9
|
+
}
|
|
10
|
+
function pct(before, after) {
|
|
11
|
+
if (before <= 0)
|
|
12
|
+
return 0;
|
|
13
|
+
return Math.round(((before - after) / before) * 1000) / 10;
|
|
14
|
+
}
|
|
15
|
+
function commas(n) {
|
|
16
|
+
return n.toLocaleString("en-US");
|
|
17
|
+
}
|
|
18
|
+
function cutRows(cuts) {
|
|
19
|
+
return [
|
|
20
|
+
["ansi sequences", String(cuts.ansiSequences)],
|
|
21
|
+
["html chrome", String(cuts.htmlChrome)],
|
|
22
|
+
["quoted replies", String(cuts.quotedReplies)],
|
|
23
|
+
["chat chrome", String(cuts.chatChrome)],
|
|
24
|
+
["boilerplate lines", String(cuts.boilerplateLines)],
|
|
25
|
+
["duplicate paragraphs", String(cuts.duplicateParagraphs)],
|
|
26
|
+
["whitespace runs", String(cuts.whitespaceRuns)],
|
|
27
|
+
["omitted heavy blobs", String(cuts.omittedHeavyBlobs)],
|
|
28
|
+
["truncated blocks", String(cuts.truncatedBlocks)],
|
|
29
|
+
["truncated tokens", `~${commas(cuts.truncatedTokens)}`],
|
|
30
|
+
["llm deepen", cuts.deepened ? "yes" : "no"],
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
function clipPreview(text, max) {
|
|
34
|
+
if (text.length <= max)
|
|
35
|
+
return { text, truncated: false };
|
|
36
|
+
return { text: `${text.slice(0, max)}\n…`, truncated: true };
|
|
37
|
+
}
|
|
38
|
+
function removedPreview(input, output, max) {
|
|
39
|
+
const outCounts = new Map();
|
|
40
|
+
for (const line of output.split("\n")) {
|
|
41
|
+
outCounts.set(line, (outCounts.get(line) ?? 0) + 1);
|
|
42
|
+
}
|
|
43
|
+
const removed = [];
|
|
44
|
+
for (const line of input.split("\n")) {
|
|
45
|
+
const left = outCounts.get(line) ?? 0;
|
|
46
|
+
if (left > 0) {
|
|
47
|
+
outCounts.set(line, left - 1);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (line.trim() === "")
|
|
51
|
+
continue;
|
|
52
|
+
removed.push(line);
|
|
53
|
+
}
|
|
54
|
+
if (!removed.length)
|
|
55
|
+
return "(no unique lines removed)";
|
|
56
|
+
const joined = removed.join("\n");
|
|
57
|
+
return clipPreview(joined, max).text;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Self-contained dark HTML diet report (inline CSS, no CDN).
|
|
61
|
+
* Slimmed body still goes to stdout / -o; this is the human artifact.
|
|
62
|
+
*/
|
|
63
|
+
export function formatHtmlReport(result, source, options = {}) {
|
|
64
|
+
const max = options.previewChars ?? 4000;
|
|
65
|
+
const version = escapeHtml(options.version ?? "");
|
|
66
|
+
const safeSource = escapeHtml(source);
|
|
67
|
+
const savedChars = Math.max(0, result.input.chars - result.output.chars);
|
|
68
|
+
const savedTokens = Math.max(0, result.input.tokens - result.output.tokens);
|
|
69
|
+
const charPct = pct(result.input.chars, result.output.chars);
|
|
70
|
+
const tokPct = pct(result.input.tokens, result.output.tokens);
|
|
71
|
+
const cuts = cutRows(result.cuts)
|
|
72
|
+
.map(([k, v]) => `<tr><td>${escapeHtml(k)}</td><td class="num">${escapeHtml(v)}</td></tr>`)
|
|
73
|
+
.join("\n");
|
|
74
|
+
const kept = clipPreview(result.text, max);
|
|
75
|
+
const original = options.original ?? "";
|
|
76
|
+
const removed = original
|
|
77
|
+
? removedPreview(original, result.text, max)
|
|
78
|
+
: "(original not provided)";
|
|
79
|
+
const beforePane = original
|
|
80
|
+
? clipPreview(original, max)
|
|
81
|
+
: { text: "(original not provided)", truncated: false };
|
|
82
|
+
return `<!DOCTYPE html>
|
|
83
|
+
<html lang="en">
|
|
84
|
+
<head>
|
|
85
|
+
<meta charset="utf-8"/>
|
|
86
|
+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
87
|
+
<title>context-diet · ${safeSource}</title>
|
|
88
|
+
<style>
|
|
89
|
+
:root {
|
|
90
|
+
--bg: #0a0a0a;
|
|
91
|
+
--panel: #111111;
|
|
92
|
+
--border: #222222;
|
|
93
|
+
--text: #eeeeee;
|
|
94
|
+
--muted: #888888;
|
|
95
|
+
--good: #7ee787;
|
|
96
|
+
--cut: #ff7b72;
|
|
97
|
+
--font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
98
|
+
}
|
|
99
|
+
* { box-sizing: border-box; }
|
|
100
|
+
html, body {
|
|
101
|
+
margin: 0; padding: 0;
|
|
102
|
+
background: var(--bg); color: var(--text);
|
|
103
|
+
font: 13px/1.45 var(--font);
|
|
104
|
+
}
|
|
105
|
+
body { padding: 24px 20px 48px; max-width: 1100px; margin: 0 auto; }
|
|
106
|
+
header.top {
|
|
107
|
+
border: 1px solid var(--border); background: var(--panel);
|
|
108
|
+
padding: 16px 18px; margin-bottom: 16px;
|
|
109
|
+
}
|
|
110
|
+
header.top h1 { margin: 0 0 6px; font-size: 15px; font-weight: 600; }
|
|
111
|
+
header.top .meta { color: var(--muted); font-size: 12px; }
|
|
112
|
+
.stats {
|
|
113
|
+
display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
114
|
+
gap: 8px; margin: 0 0 18px;
|
|
115
|
+
}
|
|
116
|
+
.stat {
|
|
117
|
+
border: 1px solid var(--border); background: var(--panel);
|
|
118
|
+
padding: 10px 12px;
|
|
119
|
+
}
|
|
120
|
+
.stat .label { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
|
|
121
|
+
.stat .value { margin-top: 4px; font-size: 15px; }
|
|
122
|
+
.stat .value .good { color: var(--good); }
|
|
123
|
+
h2 { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; margin: 18px 0 10px; font-weight: 600; }
|
|
124
|
+
table.cuts {
|
|
125
|
+
width: 100%; max-width: 420px; border-collapse: collapse;
|
|
126
|
+
border: 1px solid var(--border); background: var(--panel); margin-bottom: 18px;
|
|
127
|
+
}
|
|
128
|
+
table.cuts th, table.cuts td {
|
|
129
|
+
text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--border);
|
|
130
|
+
}
|
|
131
|
+
table.cuts th { color: var(--muted); font-weight: 500; font-size: 11px; text-transform: uppercase; }
|
|
132
|
+
table.cuts td.num { text-align: right; }
|
|
133
|
+
.panes {
|
|
134
|
+
display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
|
|
135
|
+
}
|
|
136
|
+
.pane {
|
|
137
|
+
border: 1px solid var(--border); background: var(--panel); min-height: 120px;
|
|
138
|
+
}
|
|
139
|
+
.pane h3 {
|
|
140
|
+
margin: 0; padding: 8px 10px; font-size: 11px; color: var(--muted);
|
|
141
|
+
text-transform: uppercase; letter-spacing: 0.06em;
|
|
142
|
+
border-bottom: 1px solid var(--border); font-weight: 500;
|
|
143
|
+
}
|
|
144
|
+
.pane.removed h3 { color: var(--cut); }
|
|
145
|
+
.pane.kept h3 { color: var(--good); }
|
|
146
|
+
.pane pre {
|
|
147
|
+
margin: 0; padding: 10px; overflow: auto; max-height: 360px;
|
|
148
|
+
white-space: pre-wrap; word-break: break-word; color: #d8d8d8;
|
|
149
|
+
}
|
|
150
|
+
.note { color: var(--muted); font-size: 11px; margin-top: 6px; }
|
|
151
|
+
footer {
|
|
152
|
+
margin-top: 28px; color: var(--muted); font-size: 11px;
|
|
153
|
+
border-top: 1px solid var(--border); padding-top: 12px;
|
|
154
|
+
}
|
|
155
|
+
@media (max-width: 720px) {
|
|
156
|
+
.stats, .panes { grid-template-columns: 1fr; }
|
|
157
|
+
}
|
|
158
|
+
</style>
|
|
159
|
+
</head>
|
|
160
|
+
<body>
|
|
161
|
+
<header class="top">
|
|
162
|
+
<h1>context-diet${version ? ` ${version}` : ""}</h1>
|
|
163
|
+
<div class="meta">source: ${safeSource}</div>
|
|
164
|
+
</header>
|
|
165
|
+
<section class="stats" aria-label="stats">
|
|
166
|
+
<div class="stat">
|
|
167
|
+
<div class="label">chars</div>
|
|
168
|
+
<div class="value">${commas(result.input.chars)} → ${commas(result.output.chars)}
|
|
169
|
+
<span class="good">(−${charPct}%)</span></div>
|
|
170
|
+
</div>
|
|
171
|
+
<div class="stat">
|
|
172
|
+
<div class="label">tokens (est.)</div>
|
|
173
|
+
<div class="value">~${commas(result.input.tokens)} → ~${commas(result.output.tokens)}
|
|
174
|
+
<span class="good">(−${tokPct}%)</span></div>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="stat">
|
|
177
|
+
<div class="label">saved</div>
|
|
178
|
+
<div class="value">${commas(savedChars)} chars · ~${commas(savedTokens)} tokens</div>
|
|
179
|
+
</div>
|
|
180
|
+
</section>
|
|
181
|
+
<h2>Cuts</h2>
|
|
182
|
+
<table class="cuts">
|
|
183
|
+
<thead><tr><th>Kind</th><th>Count</th></tr></thead>
|
|
184
|
+
<tbody>
|
|
185
|
+
${cuts}
|
|
186
|
+
</tbody>
|
|
187
|
+
</table>
|
|
188
|
+
<h2>Preview</h2>
|
|
189
|
+
<div class="panes">
|
|
190
|
+
<div class="pane removed">
|
|
191
|
+
<h3>Removed / before${beforePane.truncated ? " (truncated)" : ""}</h3>
|
|
192
|
+
<pre>${escapeHtml(original ? removed : beforePane.text)}</pre>
|
|
193
|
+
</div>
|
|
194
|
+
<div class="pane kept">
|
|
195
|
+
<h3>Kept / after${kept.truncated ? " (truncated)" : ""}</h3>
|
|
196
|
+
<pre>${escapeHtml(kept.text)}</pre>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
<p class="note">Previews capped at ${max.toLocaleString("en-US")} chars. Slimmed body still goes to stdout / -o.</p>
|
|
200
|
+
<footer>Generated by context-diet · self-contained · works offline (file://)</footer>
|
|
201
|
+
</body>
|
|
202
|
+
</html>
|
|
203
|
+
`;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=html-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-report.js","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { deepenText, DeepenError, hasAnyKey, resolveProvider } from "./llm.js";
|
|
|
4
4
|
export { stripHtmlChrome } from "./html.js";
|
|
5
5
|
export { PRESETS, PRESET_NAMES, isPresetName, resolvePreset, type PresetConfig, type PresetName, } from "./presets.js";
|
|
6
6
|
export { estimateTokens, snapshot } from "./tokens.js";
|
|
7
|
-
export { formatHumanReport, formatRemovedDiff, shouldUseColor, toJsonReport, type JsonReport, type ReportStyle, } from "./report.js";
|
|
7
|
+
export { formatGithubSummary, formatHumanReport, formatRemovedDiff, shouldUseColor, toJsonReport, type JsonReport, type ReportStyle, } from "./report.js";
|
|
8
|
+
export { formatHtmlReport, escapeHtml, type HtmlReportOptions } from "./html-report.js";
|
|
9
|
+
export { appendGithubSummary, resolveGithubSummaryPath, DEFAULT_GITHUB_SUMMARY, } from "./github-summary.js";
|
|
8
10
|
export { KEEP_CATEGORIES, emptyCuts, type CutCounts, type DietOptions, type DietResult, type KeepCategory, type LlmProvider, type SizeSnapshot, } from "./types.js";
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,SAAS,EACT,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,SAAS,EACT,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,8 @@ export { deepenText, DeepenError, hasAnyKey, resolveProvider } from "./llm.js";
|
|
|
4
4
|
export { stripHtmlChrome } from "./html.js";
|
|
5
5
|
export { PRESETS, PRESET_NAMES, isPresetName, resolvePreset, } from "./presets.js";
|
|
6
6
|
export { estimateTokens, snapshot } from "./tokens.js";
|
|
7
|
-
export { formatHumanReport, formatRemovedDiff, shouldUseColor, toJsonReport, } from "./report.js";
|
|
7
|
+
export { formatGithubSummary, formatHumanReport, formatRemovedDiff, shouldUseColor, toJsonReport, } from "./report.js";
|
|
8
|
+
export { formatHtmlReport, escapeHtml } from "./html-report.js";
|
|
9
|
+
export { appendGithubSummary, resolveGithubSummaryPath, DEFAULT_GITHUB_SUMMARY, } from "./github-summary.js";
|
|
8
10
|
export { KEEP_CATEGORIES, emptyCuts, } from "./types.js";
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAA8B,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,GAGd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,YAAY,GAGb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,SAAS,GAOV,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAA8B,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,GAGd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,YAAY,GAGb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,SAAS,GAOV,MAAM,YAAY,CAAC"}
|
package/dist/parse-args.d.ts
CHANGED
|
@@ -15,10 +15,14 @@ export interface CliArgs {
|
|
|
15
15
|
keep: KeepCategory[];
|
|
16
16
|
preset?: PresetName;
|
|
17
17
|
provider?: LlmProvider;
|
|
18
|
+
/** true = auto path; string = explicit path */
|
|
19
|
+
githubSummary?: string | true;
|
|
20
|
+
/** Write self-contained HTML report to this path. */
|
|
21
|
+
html?: string;
|
|
18
22
|
}
|
|
19
23
|
export declare class UsageError extends Error {
|
|
20
24
|
constructor(message: string);
|
|
21
25
|
}
|
|
22
|
-
export declare const HELP_TEXT = "context-diet \u2014 slim LLM context before you send it\n\nUsage:\n context-diet [file] [options]\n context-diet --demo --preset logs --max-tokens 400\n cat logs.txt | context-diet --preset logs --max-tokens 2000\n\nOptions:\n -o, --output <file> Write slimmed text to a file instead of stdout\n --max-tokens <n> Truncate to an estimated token budget\n --keep <cats> Prefer headings, code, lists when truncating\n (comma or pipe: headings|code|lists)\n --preset <name> logs | email | chat | html\n (sets keep defaults + extra strippers)\n --demo Diet the bundled examples/noisy.txt (no clone needed)\n --json Print a machine-readable report (includes text)\n --dry-run Report only; do not emit slimmed body / -o\n --diff Show removed lines on stderr (capped)\n --deepen Optional LLM pass (OPENAI_API_KEY / ANTHROPIC_API_KEY)\n --provider <name> openai | anthropic (default: first available key)\n -q, --quiet Do not print the human report to stderr\n -h, --help Show this help\n -V, --version Show version\n\nOffline by default. --deepen is never required.\nRespects NO_COLOR / FORCE_COLOR for the human report.\nToken counts are a cl100k-ish heuristic, not a billed tokenizer.\n";
|
|
26
|
+
export declare const HELP_TEXT = "context-diet \u2014 slim LLM context before you send it\n\nUsage:\n context-diet [file] [options]\n context-diet --demo --preset logs --max-tokens 400\n cat logs.txt | context-diet --preset logs --max-tokens 2000\n\nOptions:\n -o, --output <file> Write slimmed text to a file instead of stdout\n --max-tokens <n> Truncate to an estimated token budget\n --keep <cats> Prefer headings, code, lists when truncating\n (comma or pipe: headings|code|lists)\n --preset <name> logs | email | chat | html\n (sets keep defaults + extra strippers)\n --demo Diet the bundled examples/noisy.txt (no clone needed)\n --json Print a machine-readable report (includes text)\n --dry-run Report only; do not emit slimmed body / -o\n --diff Show removed lines on stderr (capped)\n --deepen Optional LLM pass (OPENAI_API_KEY / ANTHROPIC_API_KEY)\n --provider <name> openai | anthropic (default: first available key)\n --html <path> Write self-contained HTML report to path\n --github-summary [path] Append Markdown to GITHUB_STEP_SUMMARY or path\n -q, --quiet Do not print the human report to stderr\n -h, --help Show this help\n -V, --version Show version\n\nOffline by default. --deepen is never required.\nRespects NO_COLOR / FORCE_COLOR for the human report.\nToken counts are a cl100k-ish heuristic, not a billed tokenizer.\n";
|
|
23
27
|
export declare function parseArgs(argv: string[]): CliArgs;
|
|
24
28
|
//# sourceMappingURL=parse-args.d.ts.map
|
package/dist/parse-args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAmB,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAmB,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAoDD,eAAO,MAAM,SAAS,6iDA8BrB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAkKjD"}
|
package/dist/parse-args.js
CHANGED
|
@@ -65,6 +65,8 @@ Options:
|
|
|
65
65
|
--diff Show removed lines on stderr (capped)
|
|
66
66
|
--deepen Optional LLM pass (OPENAI_API_KEY / ANTHROPIC_API_KEY)
|
|
67
67
|
--provider <name> openai | anthropic (default: first available key)
|
|
68
|
+
--html <path> Write self-contained HTML report to path
|
|
69
|
+
--github-summary [path] Append Markdown to GITHUB_STEP_SUMMARY or path
|
|
68
70
|
-q, --quiet Do not print the human report to stderr
|
|
69
71
|
-h, --help Show this help
|
|
70
72
|
-V, --version Show version
|
|
@@ -131,6 +133,30 @@ export function parseArgs(argv) {
|
|
|
131
133
|
args.demo = true;
|
|
132
134
|
continue;
|
|
133
135
|
}
|
|
136
|
+
if (a === "--html" || a.startsWith("--html=")) {
|
|
137
|
+
const inline = a.startsWith("--html=") ? a.slice("--html=".length) : undefined;
|
|
138
|
+
const got = takeValue(argv, i + 1, "--html", inline);
|
|
139
|
+
args.html = got.value;
|
|
140
|
+
i = got.next - 1;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (a === "--github-summary" || a.startsWith("--github-summary=")) {
|
|
144
|
+
if (a.startsWith("--github-summary=")) {
|
|
145
|
+
const inline = a.slice("--github-summary=".length);
|
|
146
|
+
args.githubSummary = inline === "" ? true : inline;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const next = argv[i + 1];
|
|
150
|
+
if (next !== undefined && !next.startsWith("-")) {
|
|
151
|
+
args.githubSummary = next;
|
|
152
|
+
i += 1;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
args.githubSummary = true;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
134
160
|
if (a === "-o" || a === "--output" || a.startsWith("--output=")) {
|
|
135
161
|
const inline = a.startsWith("--output=") ? a.slice("--output=".length) : undefined;
|
|
136
162
|
const got = takeValue(argv, i + 1, "--output", inline);
|
package/dist/parse-args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAuC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"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"}
|
package/dist/report.d.ts
CHANGED
|
@@ -34,4 +34,6 @@ export declare function formatHumanReport(result: DietResult, source: string, ve
|
|
|
34
34
|
* difference). Caps output so huge logs stay readable.
|
|
35
35
|
*/
|
|
36
36
|
export declare function formatRemovedDiff(input: string, output: string, style?: ReportStyle): string;
|
|
37
|
+
/** Concise diet Markdown for GitHub Actions step summary. */
|
|
38
|
+
export declare function formatGithubSummary(result: DietResult, source: string, version: string): string;
|
|
37
39
|
//# sourceMappingURL=report.d.ts.map
|
package/dist/report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB;AAkBD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAMT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAiB3E;AAkBD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,WAA8B,GACpC,MAAM,CAoBR;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,WAA8B,GACpC,MAAM,CAiCR"}
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB;AAkBD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAMT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAiB3E;AAkBD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,WAA8B,GACpC,MAAM,CAoBR;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,WAA8B,GACpC,MAAM,CAiCR;AAMD,6DAA6D;AAC7D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CA8BR"}
|
package/dist/report.js
CHANGED
|
@@ -110,4 +110,35 @@ export function formatRemovedDiff(input, output, style = { color: false }) {
|
|
|
110
110
|
const body = shown.map((line) => ansi.red(`- ${line}`, on));
|
|
111
111
|
return [header, ...body, ""].join("\n");
|
|
112
112
|
}
|
|
113
|
+
function commasPlain(n) {
|
|
114
|
+
return n.toLocaleString("en-US");
|
|
115
|
+
}
|
|
116
|
+
/** Concise diet Markdown for GitHub Actions step summary. */
|
|
117
|
+
export function formatGithubSummary(result, source, version) {
|
|
118
|
+
const savedChars = Math.max(0, result.input.chars - result.output.chars);
|
|
119
|
+
const savedTokens = Math.max(0, result.input.tokens - result.output.tokens);
|
|
120
|
+
const charPct = pct(result.input.chars, result.output.chars);
|
|
121
|
+
const tokPct = pct(result.input.tokens, result.output.tokens);
|
|
122
|
+
const safeSource = source.replace(/\|/g, "\\|").replace(/\r?\n/g, " ");
|
|
123
|
+
const lines = [];
|
|
124
|
+
lines.push(`### context-diet ${version}`);
|
|
125
|
+
lines.push("");
|
|
126
|
+
lines.push(`Source: \`${safeSource}\``);
|
|
127
|
+
lines.push("");
|
|
128
|
+
lines.push("| | Before | After | Saved |");
|
|
129
|
+
lines.push("| --- | ---: | ---: | ---: |");
|
|
130
|
+
lines.push(`| Chars | ${commasPlain(result.input.chars)} | ${commasPlain(result.output.chars)} | ${commasPlain(savedChars)} (−${charPct}%) |`);
|
|
131
|
+
lines.push(`| Tokens (est.) | ~${commasPlain(result.input.tokens)} | ~${commasPlain(result.output.tokens)} | ~${commasPlain(savedTokens)} (−${tokPct}%) |`);
|
|
132
|
+
lines.push("");
|
|
133
|
+
const notable = cutLines(result.cuts).filter(([, v]) => v !== "0" && v !== "~0" && v !== "no");
|
|
134
|
+
if (notable.length) {
|
|
135
|
+
lines.push("**Cuts**");
|
|
136
|
+
lines.push("");
|
|
137
|
+
for (const [k, v] of notable) {
|
|
138
|
+
lines.push(`- ${k}: ${v}`);
|
|
139
|
+
}
|
|
140
|
+
lines.push("");
|
|
141
|
+
}
|
|
142
|
+
return lines.join("\n");
|
|
143
|
+
}
|
|
113
144
|
//# sourceMappingURL=report.js.map
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Copy-paste: slim a log / context artifact in GitHub Actions with context-diet.
|
|
2
2
|
# No clone of this repo required — npx pulls @webywz/context-diet from npm.
|
|
3
3
|
#
|
|
4
|
-
# Body → stdout (redirect or -o); human report → stderr (
|
|
4
|
+
# Body → stdout (redirect or -o); human report → stderr (job log).
|
|
5
|
+
# --github-summary appends a short Markdown diet report to $GITHUB_STEP_SUMMARY.
|
|
5
6
|
|
|
6
7
|
name: Slim context with context-diet
|
|
7
8
|
|
|
@@ -20,9 +21,11 @@ jobs:
|
|
|
20
21
|
node-version: 22
|
|
21
22
|
|
|
22
23
|
# 30-second smoke (bundled fixture — no file to check in):
|
|
23
|
-
- name: Demo diet
|
|
24
|
+
- name: Demo diet + step summary
|
|
24
25
|
run: |
|
|
25
|
-
npx --yes @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
26
|
+
npx --yes @webywz/context-diet --demo --preset logs --max-tokens 400 \
|
|
27
|
+
--github-summary \
|
|
28
|
+
> slim-demo.txt
|
|
26
29
|
wc -c slim-demo.txt
|
|
27
30
|
|
|
28
31
|
# Real usage: point at a log / dump produced earlier in the job.
|
|
@@ -33,6 +36,7 @@ jobs:
|
|
|
33
36
|
npx --yes @webywz/context-diet path/to/noisy.log \
|
|
34
37
|
--preset logs \
|
|
35
38
|
--max-tokens 2000 \
|
|
39
|
+
--github-summary \
|
|
36
40
|
-o slim.txt
|
|
37
41
|
else
|
|
38
42
|
echo "Skip: no path/to/noisy.log in this example checkout"
|