leerness 1.10.0 → 1.12.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/CHANGELOG.md +12810 -12636
- package/README.md +169 -169
- package/bin/leerness.js +19523 -19323
- package/lib/catalogs.js +485 -433
- package/lib/io.js +8 -4
- package/lib/pure-utils.js +1407 -1335
- package/lib/session-close.js +2 -0
- package/package.json +58 -58
- package/scripts/e2e.js +6204 -6204
package/lib/io.js
CHANGED
|
@@ -6,15 +6,19 @@
|
|
|
6
6
|
const fs = require('fs');
|
|
7
7
|
const path = require('path');
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// 1.10.2 (UR-0146): quiet 모드 — 사람용 출력(log/ok/warn) 억제. init --json 등에서 큰 핸들러의 다수 log 를 비침투적으로 묵음 → 순수 JSON 1개만 출력.
|
|
10
|
+
// fail/failJson(오류)은 묵음 대상 아님(에러는 항상 노출). setQuiet 로 토글, 호출부 finally 에서 반드시 복구.
|
|
11
|
+
let _quiet = false;
|
|
12
|
+
function setQuiet(v) { _quiet = !!v; }
|
|
13
|
+
function log(s = '') { if (_quiet) return; console.log(s); }
|
|
10
14
|
function ok(s) { log('✓ ' + s); }
|
|
11
15
|
function warn(s) { log('⚠ ' + s); }
|
|
12
16
|
// fail() 은 오류 신호 → exit code 1 설정 (CI/MCP/에이전트가 실패를 성공으로 오판 방지, UR-0045).
|
|
13
|
-
function fail(s) { log('✗ ' + s); process.exitCode = 1; }
|
|
17
|
+
function fail(s) { console.log('✗ ' + s); process.exitCode = 1; } // quiet 무시(오류는 항상 노출)
|
|
14
18
|
// 1.9.398 (6번째 외부평가/codex P1-C, UR-0099): --json 모드 에러는 구조화 출력 — AI 에이전트가 에러 경로에서 JSON.parse 실패하지 않도록.
|
|
15
19
|
// jsonMode 면 {ok:false,error,code} + exit1, 아니면 사람용 fail(). 양쪽 exit code 1 일관.
|
|
16
20
|
function failJson(jsonMode, code, msg) {
|
|
17
|
-
if (jsonMode) { log(JSON.stringify({ ok: false, error: msg, code }, null, 2)); process.exitCode = 1; }
|
|
21
|
+
if (jsonMode) { console.log(JSON.stringify({ ok: false, error: msg, code }, null, 2)); process.exitCode = 1; } // quiet 무시(오류 JSON 항상 노출)
|
|
18
22
|
else fail(msg);
|
|
19
23
|
}
|
|
20
24
|
function today() { return new Date().toISOString().slice(0, 10); }
|
|
@@ -48,4 +52,4 @@ function writeUtf8(p, s) {
|
|
|
48
52
|
function append(p, s) { mkdirp(path.dirname(p)); fs.appendFileSync(p, s, 'utf8'); }
|
|
49
53
|
function rel(root, p) { return path.relative(root, p).replace(/\\/g, '/') || '.'; }
|
|
50
54
|
|
|
51
|
-
module.exports = { log, ok, warn, fail, failJson, today, now, absRoot, exists, read, readBuf, mkdirp, writeUtf8, append, rel };
|
|
55
|
+
module.exports = { log, ok, warn, fail, failJson, setQuiet, today, now, absRoot, exists, read, readBuf, mkdirp, writeUtf8, append, rel };
|