@webywz/context-diet 0.2.1 → 0.3.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/README.md +33 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -2
- package/dist/cli.js.map +1 -1
- package/dist/package-info.d.ts +2 -0
- package/dist/package-info.d.ts.map +1 -1
- package/dist/package-info.js +8 -1
- package/dist/package-info.js.map +1 -1
- package/dist/parse-args.d.ts +2 -1
- package/dist/parse-args.d.ts.map +1 -1
- package/dist/parse-args.js +10 -0
- package/dist/parse-args.js.map +1 -1
- package/examples/github-action.yml +48 -0
- package/examples/noisy.txt +44 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -12,6 +12,14 @@ npm i -g @webywz/context-diet
|
|
|
12
12
|
context-diet logs.txt --preset logs --max-tokens 2000
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
### 30-second demo (no clone)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Bundled `examples/noisy.txt` goes in; slimmed body on **stdout**, human report on **stderr**. No repo checkout required.
|
|
22
|
+
|
|
15
23
|
## Install
|
|
16
24
|
|
|
17
25
|
```bash
|
|
@@ -31,6 +39,9 @@ npx @webywz/context-diet --help
|
|
|
31
39
|
# file → slimmed text on stdout, report on stderr
|
|
32
40
|
context-diet input.txt
|
|
33
41
|
|
|
42
|
+
# bundled demo fixture (same I/O; great for npx smoke tests)
|
|
43
|
+
npx @webywz/context-diet --demo --preset logs --max-tokens 400
|
|
44
|
+
|
|
34
45
|
# stdin
|
|
35
46
|
cat noisy.log | context-diet --preset logs --max-tokens 1500 > slim.txt
|
|
36
47
|
|
|
@@ -57,7 +68,7 @@ Explicit `--keep` always wins over the preset default.
|
|
|
57
68
|
|
|
58
69
|
### Before / after
|
|
59
70
|
|
|
60
|
-
Input (`examples/noisy.txt
|
|
71
|
+
Input (`examples/noisy.txt`, shipped in the npm package) — repeated logs, a duplicated runbook, a signature, a fat blob:
|
|
61
72
|
|
|
62
73
|
```
|
|
63
74
|
[2026-03-14 09:01:02] INFO Starting request handler
|
|
@@ -71,12 +82,14 @@ data:image/png;base64,iVBORw0KGgo… (huge)
|
|
|
71
82
|
|
|
72
83
|
```bash
|
|
73
84
|
context-diet examples/noisy.txt --keep headings|code|lists
|
|
85
|
+
# same fixture via --demo:
|
|
86
|
+
context-diet --demo --keep headings|code|lists
|
|
74
87
|
```
|
|
75
88
|
|
|
76
89
|
Stderr:
|
|
77
90
|
|
|
78
91
|
```
|
|
79
|
-
context-diet 0.
|
|
92
|
+
context-diet 0.3.0
|
|
80
93
|
source: examples/noisy.txt
|
|
81
94
|
chars: 1,666 → 834 (−49.9%)
|
|
82
95
|
tokens: ~667 → ~312 (−53.2%)
|
|
@@ -127,6 +140,7 @@ context-diet [file] [options]
|
|
|
127
140
|
| `--max-tokens <n>` | Cap estimated output tokens |
|
|
128
141
|
| `--keep <cats>` | Prefer `headings`, `code`, `lists` when truncating (comma or `\|`) |
|
|
129
142
|
| `--preset <name>` | `logs` \| `email` \| `chat` \| `html` |
|
|
143
|
+
| `--demo` | Diet the bundled `examples/noisy.txt` (no file / clone needed) |
|
|
130
144
|
| `--json` | JSON report on stdout (includes `text`, unless `-o` / `--dry-run`) |
|
|
131
145
|
| `--dry-run` | Report only; do not emit slimmed body or write `-o` |
|
|
132
146
|
| `--diff` | Show removed lines on stderr (capped) |
|
|
@@ -144,6 +158,22 @@ pbpaste | context-diet --preset chat --max-tokens 800 | pbcopy
|
|
|
144
158
|
|
|
145
159
|
The human report respects `NO_COLOR` / `FORCE_COLOR`.
|
|
146
160
|
|
|
161
|
+
## CI (GitHub Actions)
|
|
162
|
+
|
|
163
|
+
Copy-paste starter: [`examples/github-action.yml`](examples/github-action.yml).
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
- uses: actions/setup-node@v4
|
|
167
|
+
with:
|
|
168
|
+
node-version: 22
|
|
169
|
+
- name: Slim context
|
|
170
|
+
run: |
|
|
171
|
+
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
|
+
```
|
|
174
|
+
|
|
175
|
+
Body lands on stdout (or `-o`); the human report stays on stderr in the job log. Offline heuristics — no API key unless you add `--deepen`.
|
|
176
|
+
|
|
147
177
|
## Optional LLM pass
|
|
148
178
|
|
|
149
179
|
`--deepen` is **never required**. If you already have a key and want a second squeeze after the local diet:
|
|
@@ -184,6 +214,7 @@ estimateTokens(text); // cl100k-ish heuristic
|
|
|
184
214
|
npm test
|
|
185
215
|
npm run build
|
|
186
216
|
node dist/cli.js --help
|
|
217
|
+
node dist/cli.js --demo --preset logs --max-tokens 400
|
|
187
218
|
```
|
|
188
219
|
|
|
189
220
|
MIT © webywz
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAgBA,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;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAgBA,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,CAmF/E"}
|
package/dist/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ import process from "node:process";
|
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { dietAsync } from "./diet.js";
|
|
7
7
|
import { DeepenError } from "./llm.js";
|
|
8
|
-
import { packageInfo } from "./package-info.js";
|
|
8
|
+
import { demoFixturePath, packageInfo } from "./package-info.js";
|
|
9
9
|
import { HELP_TEXT, parseArgs, UsageError } from "./parse-args.js";
|
|
10
10
|
import { formatHumanReport, formatRemovedDiff, shouldUseColor, toJsonReport, } from "./report.js";
|
|
11
11
|
const defaultIo = () => ({
|
|
@@ -29,6 +29,17 @@ function readStream(stream) {
|
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
async function readInput(args, io) {
|
|
32
|
+
if (args.demo) {
|
|
33
|
+
const path = demoFixturePath();
|
|
34
|
+
try {
|
|
35
|
+
const text = await io.readFile(path);
|
|
36
|
+
return { text, source: "examples/noisy.txt (--demo)" };
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
40
|
+
throw new UsageError(`Cannot read bundled demo fixture: ${msg}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
32
43
|
if (args.file && args.file !== "-") {
|
|
33
44
|
try {
|
|
34
45
|
const text = await io.readFile(args.file);
|
|
@@ -41,7 +52,7 @@ async function readInput(args, io) {
|
|
|
41
52
|
}
|
|
42
53
|
const useStdin = !args.file || args.file === "-";
|
|
43
54
|
if (useStdin && io.stdinIsTTY) {
|
|
44
|
-
throw new UsageError("No input. Pass a file path, pipe stdin, or
|
|
55
|
+
throw new UsageError("No input. Pass a file path, pipe stdin, use `--demo`, or `-` with redirected input.");
|
|
45
56
|
}
|
|
46
57
|
const text = await readStream(io.stdin);
|
|
47
58
|
return { text, source: "stdin" };
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/package-info.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-info.d.ts","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-info.d.ts","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAUA,wBAAgB,WAAW,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAS/D;AAED,mEAAmE;AACnE,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/package-info.js
CHANGED
|
@@ -2,12 +2,19 @@ import { readFileSync } from "node:fs";
|
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
let cached;
|
|
5
|
+
function packageRoot() {
|
|
6
|
+
return join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
|
+
}
|
|
5
8
|
export function packageInfo() {
|
|
6
9
|
if (cached)
|
|
7
10
|
return cached;
|
|
8
|
-
const pkgPath = join(
|
|
11
|
+
const pkgPath = join(packageRoot(), "package.json");
|
|
9
12
|
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
10
13
|
cached = { name: pkg.name, version: pkg.version };
|
|
11
14
|
return cached;
|
|
12
15
|
}
|
|
16
|
+
/** Absolute path to the bundled noisy fixture used by `--demo`. */
|
|
17
|
+
export function demoFixturePath() {
|
|
18
|
+
return join(packageRoot(), "examples", "noisy.txt");
|
|
19
|
+
}
|
|
13
20
|
//# sourceMappingURL=package-info.js.map
|
package/dist/package-info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-info.js","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,MAAqD,CAAC;AAE1D,
|
|
1
|
+
{"version":3,"file":"package-info.js","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,MAAqD,CAAC;AAE1D,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAGnD,CAAC;IACF,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/parse-args.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface CliArgs {
|
|
|
8
8
|
deepen: boolean;
|
|
9
9
|
dryRun: boolean;
|
|
10
10
|
diff: boolean;
|
|
11
|
+
demo: boolean;
|
|
11
12
|
file?: string;
|
|
12
13
|
output?: string;
|
|
13
14
|
maxTokens?: number;
|
|
@@ -18,6 +19,6 @@ export interface CliArgs {
|
|
|
18
19
|
export declare class UsageError extends Error {
|
|
19
20
|
constructor(message: string);
|
|
20
21
|
}
|
|
21
|
-
export declare const HELP_TEXT = "context-diet \u2014 slim LLM context before you send it\n\nUsage:\n context-diet [file] [options]\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 --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";
|
|
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";
|
|
22
23
|
export declare function parseArgs(argv: string[]): CliArgs;
|
|
23
24
|
//# 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,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;CACxB;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAoDD,eAAO,MAAM,SAAS,
|
|
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;CACxB;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAoDD,eAAO,MAAM,SAAS,s5CA4BrB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CA4IjD"}
|
package/dist/parse-args.js
CHANGED
|
@@ -49,6 +49,7 @@ context-diet — slim LLM context before you send it
|
|
|
49
49
|
|
|
50
50
|
Usage:
|
|
51
51
|
context-diet [file] [options]
|
|
52
|
+
context-diet --demo --preset logs --max-tokens 400
|
|
52
53
|
cat logs.txt | context-diet --preset logs --max-tokens 2000
|
|
53
54
|
|
|
54
55
|
Options:
|
|
@@ -58,6 +59,7 @@ Options:
|
|
|
58
59
|
(comma or pipe: headings|code|lists)
|
|
59
60
|
--preset <name> logs | email | chat | html
|
|
60
61
|
(sets keep defaults + extra strippers)
|
|
62
|
+
--demo Diet the bundled examples/noisy.txt (no clone needed)
|
|
61
63
|
--json Print a machine-readable report (includes text)
|
|
62
64
|
--dry-run Report only; do not emit slimmed body / -o
|
|
63
65
|
--diff Show removed lines on stderr (capped)
|
|
@@ -80,6 +82,7 @@ export function parseArgs(argv) {
|
|
|
80
82
|
deepen: false,
|
|
81
83
|
dryRun: false,
|
|
82
84
|
diff: false,
|
|
85
|
+
demo: false,
|
|
83
86
|
keep: [],
|
|
84
87
|
};
|
|
85
88
|
for (let i = 0; i < argv.length; i++) {
|
|
@@ -124,6 +127,10 @@ export function parseArgs(argv) {
|
|
|
124
127
|
args.diff = true;
|
|
125
128
|
continue;
|
|
126
129
|
}
|
|
130
|
+
if (a === "--demo") {
|
|
131
|
+
args.demo = true;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
127
134
|
if (a === "-o" || a === "--output" || a.startsWith("--output=")) {
|
|
128
135
|
const inline = a.startsWith("--output=") ? a.slice("--output=".length) : undefined;
|
|
129
136
|
const got = takeValue(argv, i + 1, "--output", inline);
|
|
@@ -188,6 +195,9 @@ export function parseArgs(argv) {
|
|
|
188
195
|
}
|
|
189
196
|
args.file = a;
|
|
190
197
|
}
|
|
198
|
+
if (args.demo && args.file) {
|
|
199
|
+
throw new UsageError("Pass --demo or a file path, not both.");
|
|
200
|
+
}
|
|
191
201
|
// Dedupe keep while preserving order.
|
|
192
202
|
const seen = new Set();
|
|
193
203
|
args.keep = args.keep.filter((k) => {
|
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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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Copy-paste: slim a log / context artifact in GitHub Actions with context-diet.
|
|
2
|
+
# No clone of this repo required — npx pulls @webywz/context-diet from npm.
|
|
3
|
+
#
|
|
4
|
+
# Body → stdout (redirect or -o); human report → stderr (shows in the job log).
|
|
5
|
+
|
|
6
|
+
name: Slim context with context-diet
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
# Or: push / pull_request when you have a noisy artifact to diet.
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
diet:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: 22
|
|
21
|
+
|
|
22
|
+
# 30-second smoke (bundled fixture — no file to check in):
|
|
23
|
+
- name: Demo diet
|
|
24
|
+
run: |
|
|
25
|
+
npx --yes @webywz/context-diet --demo --preset logs --max-tokens 400 > slim-demo.txt
|
|
26
|
+
wc -c slim-demo.txt
|
|
27
|
+
|
|
28
|
+
# Real usage: point at a log / dump produced earlier in the job.
|
|
29
|
+
- name: Diet a workspace file
|
|
30
|
+
run: |
|
|
31
|
+
# Replace path/to/noisy.log with your artifact.
|
|
32
|
+
if [ -f path/to/noisy.log ]; then
|
|
33
|
+
npx --yes @webywz/context-diet path/to/noisy.log \
|
|
34
|
+
--preset logs \
|
|
35
|
+
--max-tokens 2000 \
|
|
36
|
+
-o slim.txt
|
|
37
|
+
else
|
|
38
|
+
echo "Skip: no path/to/noisy.log in this example checkout"
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
- name: Upload slimmed text
|
|
42
|
+
if: hashFiles('slim.txt', 'slim-demo.txt') != ''
|
|
43
|
+
uses: actions/upload-artifact@v4
|
|
44
|
+
with:
|
|
45
|
+
name: slimmed-context
|
|
46
|
+
path: |
|
|
47
|
+
slim-demo.txt
|
|
48
|
+
slim.txt
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[2026-03-14 09:01:02] INFO Starting request handler
|
|
2
|
+
[2026-03-14 09:01:02] DEBUG loading config from /etc/app/config.yaml
|
|
3
|
+
[2026-03-14 09:01:03] DEBUG loading config from /etc/app/config.yaml
|
|
4
|
+
[2026-03-14 09:01:03] DEBUG loading config from /etc/app/config.yaml
|
|
5
|
+
[2026-03-14 09:01:03] DEBUG loading config from /etc/app/config.yaml
|
|
6
|
+
[2026-03-14 09:01:04] INFO Starting request handler
|
|
7
|
+
[2026-03-14 09:01:04] INFO Starting request handler
|
|
8
|
+
[2026-03-14 09:01:05] ERROR Cannot connect to redis://cache:6379
|
|
9
|
+
[2026-03-14 09:01:05] DEBUG retrying connection
|
|
10
|
+
[2026-03-14 09:01:06] DEBUG retrying connection
|
|
11
|
+
[2026-03-14 09:01:07] DEBUG retrying connection
|
|
12
|
+
[2026-03-14 09:01:08] ERROR Cannot connect to redis://cache:6379
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
============================================================
|
|
16
|
+
CONFIDENTIALITY NOTICE
|
|
17
|
+
This email is confidential and intended only for the recipient.
|
|
18
|
+
============================================================
|
|
19
|
+
|
|
20
|
+
# Deploy runbook
|
|
21
|
+
|
|
22
|
+
The deploy runbook covers staging and production.
|
|
23
|
+
|
|
24
|
+
The deploy runbook covers staging and production rollouts.
|
|
25
|
+
|
|
26
|
+
Staging uses the same image as production. Set `DATABASE_URL` and `REDIS_URL`.
|
|
27
|
+
|
|
28
|
+
Staging uses the same image as production. Set DATABASE_URL and REDIS_URL.
|
|
29
|
+
|
|
30
|
+
## Rollback
|
|
31
|
+
|
|
32
|
+
- Tag the previous image
|
|
33
|
+
- Run `kubectl rollout undo deploy/api`
|
|
34
|
+
- Confirm `/healthz` returns 200
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
export function healthz(): { ok: true } {
|
|
38
|
+
return { ok: true };
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Sent from my iPhone
|
|
43
|
+
|
|
44
|
+
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webywz/context-diet",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Slim LLM context before you send it — drop noise, keep the signal, estimate tokens.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"llm",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"files": [
|
|
38
38
|
"dist",
|
|
39
|
+
"examples",
|
|
39
40
|
"LICENSE",
|
|
40
41
|
"README.md"
|
|
41
42
|
],
|