leerness 1.9.178 โ 1.9.179
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 +67 -0
- package/README.md +3 -3
- package/bin/harness.js +67 -18
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.179 โ 2026-05-21
|
|
4
|
+
|
|
5
|
+
**๐จ REPL ํ์ ํ๋ฉด ์ฌ๋์์ธ โ Hermes/Claude/Codex/Gemini CLI ์คํ์ผ (์ฌ์ฉ์ ๋ช
์).**
|
|
6
|
+
|
|
7
|
+
์์จ ๋ชจ๋ 109 ๋ผ์ด๋. ์ฌ์ฉ์ ๋ช
์: ์ฒจ๋ถ ์ด๋ฏธ์ง (Hermes Agent v0.7.0 / Claude Code v2.1.126 / OpenAI Codex v0.132.0 / Gemini CLI v0.42.0) ์ฒ๋ผ ๊ตฌ์กฐํ๋ ํ์ ํ๋ฉด.
|
|
8
|
+
|
|
9
|
+
### ๋์์ธ ๊ตฌ์ฑ โ 5 ์น์
|
|
10
|
+
```
|
|
11
|
+
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
|
|
12
|
+
โ Leerness Agent v1.9.179 (2026-05-21) ยท ๊ฒ์ยท๊ธฐ์ตยท์๋๋ฐ์ค ํตํฉ AI โ
|
|
13
|
+
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
|
|
14
|
+
|
|
15
|
+
โธ Welcome back ยท leerness (.)
|
|
16
|
+
โธ Session: sess-2026-05-21T13-41-23
|
|
17
|
+
|
|
18
|
+
โโ Tips for getting started โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
19
|
+
โ Tab / Shift+Tab โ provider / model ์ ํ (1.9.170) โ
|
|
20
|
+
โ :review "<req>" โ ๋ฌด์กฐ๊ฑด ๊ตฌํ ์ ์ฌ์ ๊ฒํ (1.9.176) โ
|
|
21
|
+
โ :permissions <m> โ ์ฆ์ ๊ถํ ๋ณ๊ฒฝ basic|extended|full (1.9.174) โ
|
|
22
|
+
โ :stream on|off โ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ํ ๊ธ (default ON, 1.9.170/172) โ
|
|
23
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
24
|
+
|
|
25
|
+
โโ What's new (1.9.170~178) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
26
|
+
โ โข REPL Tab cycle + ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ (spinner / tool_use / diff ์๊น) โ
|
|
27
|
+
โ โข Bridge slash :web/:pc/:lsp REPL ์ฆ์ ํธ์ถ + LSP ๋ค๊ตญ์ด 5์ข
โ
|
|
28
|
+
โ โข review-request ์ฌ์ ๊ฒํ + task add ์๋ trigger โ
|
|
29
|
+
โ โข release sync-main ์๋ npm publish (.env NPM_TOKEN) โ
|
|
30
|
+
โ โข 6 ๋ฅ๋ ฅ ๋งคํธ๋ฆญ์ค 72% production-ready ยท MCP 54 ๋๊ตฌ โ
|
|
31
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
32
|
+
|
|
33
|
+
Available Slash (5 ๊ทธ๋ฃน)
|
|
34
|
+
โข meta: :help :model :role :provider :status :stream :clear :quit
|
|
35
|
+
โข internal: :verify :audit :handoff :health
|
|
36
|
+
โข memory: :lessons :brainstorm :tasks :plan
|
|
37
|
+
โข bridge: :web :pc :lsp (๊ฐ sub: check/symbols/click/screenshot/...)
|
|
38
|
+
โข review: :review "<request>" ยท :permissions [basic|extended|full]
|
|
39
|
+
|
|
40
|
+
โจ Tab=provider cycle ยท Shift+Tab=model ยท Ctrl+C=quit
|
|
41
|
+
|
|
42
|
+
โก provider=ollama ยท model=llama3 ยท role=actor ยท perms=basic ยท โถ stream=on
|
|
43
|
+
|
|
44
|
+
agent[ollama/actor/โถ]> _
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### ๋์์ธ ๊ฒฐ์
|
|
48
|
+
- **๋ฅ๊ทผ ๋ชจ์๋ฆฌ** (`โญ โฐ`) ํค๋ ๋ฐ์ค โ ์น๊ทผํ ์ธ์
|
|
49
|
+
- **์ฌ๊ฐ ๋ชจ์๋ฆฌ** (`โ โ`) Tips/What's new ๋ฐ์ค โ ์ ๋ณด ๋ฐ์ค ๊ตฌ๋ถ
|
|
50
|
+
- **์๊น ํ ํฐ**: cy(ํค๋), yel(Tips), green(What's new), mag(model), bold(์ค์ ๋ผ๋ฒจ)
|
|
51
|
+
- **5 ๊ทธ๋ฃน Slash ์นดํ๋ก๊ทธ**: Hermes-style "Available Tools / Skills" ์๊ฐ
|
|
52
|
+
- **์ํ๋ฐ โก**: provider/model/role/perms/stream 5์์ + ์๊น ๊ตฌ๋ถ
|
|
53
|
+
- **ํค๋ณด๋ ๋จ์ถํค โจ**: Tab/Shift+Tab/Ctrl+C ๋ช
์
|
|
54
|
+
|
|
55
|
+
### ์ฒจ๋ถ ์ด๋ฏธ์ง ์ฐธ๊ณ spirit (์ ํํ ๋ณต์ X)
|
|
56
|
+
| ์ด๋ฏธ์ง | ์ ์ฉ๋ ์์ |
|
|
57
|
+
|---|---|
|
|
58
|
+
| Hermes Agent v0.7.0 | "Available ..." ์นดํ๋ก๊ทธ 5 ๊ทธ๋ฃน |
|
|
59
|
+
| Claude Code v2.1.126 | "Welcome back" + "Tips/What's new" ๋ฐ์ค |
|
|
60
|
+
| OpenAI Codex v0.132.0 | ๋ชจ๋ธ/๋๋ ํ ๋ฆฌ ๋ฐ์ค + Tips |
|
|
61
|
+
| Gemini CLI v0.42.0 | ์ํ๋ฐ (sandbox/model/quota โ provider/model/perms/stream) |
|
|
62
|
+
|
|
63
|
+
### Verified
|
|
64
|
+
- e2e 217/217 baseline ์ ์ง
|
|
65
|
+
- stress-v124: **19/19** (ํค๋ ๋ฐ์ค 4 + Slash 5๊ทธ๋ฃน 3 + ์ํ๋ฐ 3 + 1.9.179 ์ฃผ์ 2 + ๋์ ํ๊ท 7)
|
|
66
|
+
- VERSION = 1.9.179 ยท autonomous-rounds = 109 ยท main ์๋ push 40 ๋ผ์ด๋ ์ฐ์
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
3
70
|
## 1.9.178 โ 2026-05-21
|
|
4
71
|
|
|
5
72
|
**๐ฆ ์ฌ์ฉ์ ๋ช
์: `release sync-main` ์๋ npm publish โ .env NPM_TOKEN ์ฌ์ฉ.**
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **AI ์ฝ๋ฉ ์์ด์ ํธ์ ๊ฑฐ์ง ์๋ฃยท์ค๋ณตยท๋ง๊ฐยท์ถฉ๋์ ๋ง์์ฃผ๋ ๊ฒ์ยท๊ธฐ์ตยทํ์
CLI ํ๋ค์ค.**
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/leerness) [](https://www.npmjs.com/package/leerness) []() []() []() []() []() []() []() []() []() []() []() []()
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
โ โโโ โโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ โ
|
|
13
13
|
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
|
|
14
14
|
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
|
|
15
|
-
โ v1.9.
|
|
15
|
+
โ v1.9.179 AI Agent Reliability Harness + Sandbox โ
|
|
16
16
|
โ verify ยท remember ยท orchestrate ยท audit ยท sandbox ยท drift โ
|
|
17
|
-
โ
|
|
17
|
+
โ ๐จ REPL ํ์ ํ๋ฉด ์ฌ๋์์ธ (Hermes/Claude/Codex ์คํ์ผ) โ
|
|
18
18
|
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
19
19
|
```
|
|
20
20
|
|
package/bin/harness.js
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
const fs = require('fs');
|
|
5
5
|
const path = require('path');
|
|
6
6
|
const cp = require('child_process');
|
|
7
|
+
const os = require('os'); // 1.9.178: _publishToNpm ์์ os.tmpdir() ์ฌ์ฉ (์ ์ญ import)
|
|
7
8
|
const readline = require('readline');
|
|
8
9
|
|
|
9
|
-
const VERSION = '1.9.
|
|
10
|
+
const VERSION = '1.9.179';
|
|
10
11
|
const MARK = '<!-- leerness:managed -->';
|
|
11
12
|
const README_START = '<!-- leerness:project-readme:start -->';
|
|
12
13
|
const README_END = '<!-- leerness:project-readme:end -->';
|
|
@@ -7822,8 +7823,18 @@ function releaseSyncMainCmd(root) {
|
|
|
7822
7823
|
// - ์ด๋ฏธ publish๋ ๋ฒ์ ์๋ detect โ skip (์ค๋ณต publish ์ฐจ๋จ)
|
|
7823
7824
|
function _publishToNpm(root, opts = {}) {
|
|
7824
7825
|
root = absRoot(root || process.cwd());
|
|
7825
|
-
// .env ์๋ ๋ก๋ (
|
|
7826
|
-
|
|
7826
|
+
// .env ์๋ ๋ก๋ โ root + ์์ 3๋จ๊ณ๊น์ง ํ์ (์ํฌ์คํ์ด์ค root ์ .env ๋ ์ธ์).
|
|
7827
|
+
// ์: leerness-pkg/ ์์ sync-main ํธ์ถ ์ ../leerness/.env ๋ ์๋ ํ์.
|
|
7828
|
+
{
|
|
7829
|
+
let dir = root;
|
|
7830
|
+
for (let i = 0; i < 4; i++) {
|
|
7831
|
+
try { _loadEnvFile(dir); } catch {}
|
|
7832
|
+
if (process.env.LEERNESS_NPM_TOKEN || process.env.NPM_TOKEN) break;
|
|
7833
|
+
const parent = path.resolve(dir, '..');
|
|
7834
|
+
if (parent === dir) break; // ๋ฃจํธ ๋๋ฌ
|
|
7835
|
+
dir = parent;
|
|
7836
|
+
}
|
|
7837
|
+
}
|
|
7827
7838
|
const token = process.env.LEERNESS_NPM_TOKEN || process.env.NPM_TOKEN;
|
|
7828
7839
|
if (!token) {
|
|
7829
7840
|
log(` โ npm ์๋ ๋ฐฐํฌ ์คํต: NPM_TOKEN ๋ฏธ์ค์ (.env ์ NPM_TOKEN=npm_xxxxx ์ถ๊ฐ)`);
|
|
@@ -7865,8 +7876,11 @@ function _publishToNpm(root, opts = {}) {
|
|
|
7865
7876
|
const tmpNpmrc = path.join(tmpDir, '.npmrc');
|
|
7866
7877
|
fs.writeFileSync(tmpNpmrc, `//registry.npmjs.org/:_authToken=${token}\n`, { mode: 0o600 });
|
|
7867
7878
|
// 3) npm publish (--userconfig ๋ก ์์ .npmrc ์ฌ์ฉ, --access public)
|
|
7868
|
-
|
|
7869
|
-
|
|
7879
|
+
// 1.9.178+: 2FA OTP ์ง์ โ LEERNESS_NPM_OTP ํ๊ฒฝ๋ณ์ ๋๋ --npm-otp ์ธ์
|
|
7880
|
+
const otp = process.env.LEERNESS_NPM_OTP || arg('--npm-otp', null) || opts.otp;
|
|
7881
|
+
const baseArgs = ['publish', '--userconfig', tmpNpmrc, '--access', 'public'];
|
|
7882
|
+
if (otp) baseArgs.push(`--otp=${otp}`);
|
|
7883
|
+
const args = opts.dryRun ? [...baseArgs, '--dry-run'] : baseArgs;
|
|
7870
7884
|
log(` ${opts.dryRun ? '(dry-run) ' : ''}npm publish ์๋ ์ค...`);
|
|
7871
7885
|
const pubR = cp.spawnSync('npm', args, {
|
|
7872
7886
|
cwd: root, encoding: 'utf8', shell: true, timeout: 60000,
|
|
@@ -7879,6 +7893,12 @@ function _publishToNpm(root, opts = {}) {
|
|
|
7879
7893
|
const errOut = (pubR.stderr || pubR.stdout || '').slice(-400);
|
|
7880
7894
|
if (/EPUBLISHCONFLICT|already exists|cannot publish over/i.test(errOut)) {
|
|
7881
7895
|
log(` โ ์ด๋ฏธ publish๋จ (race condition) โ skip`);
|
|
7896
|
+
} else if (/EOTP|one-time password|--otp=/i.test(errOut)) {
|
|
7897
|
+
// 1.9.178+: 2FA ํ์ฑํ๋ ๊ณ์ โ Automation ํ ํฐ ๋๋ OTP ํ์
|
|
7898
|
+
warn(`npm publish ์คํจ: 2FA OTP ํ์ (NPM ๊ณ์ ์ 2FA ํ์ฑํ๋จ).`);
|
|
7899
|
+
log(` ํด๊ฒฐ 1: LEERNESS_NPM_OTP=<6์๋ฆฌ์ฝ๋> ๋๋ --npm-otp <code> ์ต์
์ฌ์ฉ`);
|
|
7900
|
+
log(` ํด๊ฒฐ 2: Automation ํ ํฐ ๋ฐ๊ธ โ npm token create --read-only=false (2FA bypass)`);
|
|
7901
|
+
log(` ๋ฐ๊ธ ํ .env ์ NPM_TOKEN ์ ์ ํ ํฐ์ผ๋ก ๊ต์ฒด`);
|
|
7882
7902
|
} else if (/EAUTH|forbidden|401|403/i.test(errOut)) {
|
|
7883
7903
|
warn(`npm publish ์คํจ: ํ ํฐ ๊ถํ ๋ถ์กฑ ๋๋ ๋ง๋ฃ โ .env NPM_TOKEN ์ฌ๋ฐ๊ธ ํ์`);
|
|
7884
7904
|
} else if (/ENEEDAUTH/i.test(errOut)) {
|
|
@@ -11079,12 +11099,17 @@ async function _agentRepl(root, opts) {
|
|
|
11079
11099
|
writeUtf8(sessionPath(), lines + '\n');
|
|
11080
11100
|
} catch {}
|
|
11081
11101
|
};
|
|
11082
|
-
// ํ์
|
|
11102
|
+
// 1.9.179: ํ์ ํ๋ฉด ์ฌ๋์์ธ (์ฌ์ฉ์ ๋ช
์ โ Hermes/Claude/Codex/Gemini ์คํ์ผ).
|
|
11103
|
+
// ๊ธฐ์กด ๋จ์ ๋ฐ์ค โ ํค๋ ๋ฐ์ค + Tips / What's new ๋ฐ์ค + Slash ์นดํ๋ก๊ทธ 5 ๊ทธ๋ฃน.
|
|
11104
|
+
const today = new Date().toISOString().slice(0, 10);
|
|
11105
|
+
const wsName = path.basename(absRoot(root));
|
|
11106
|
+
log('');
|
|
11107
|
+
log(C.bold(C.cy(' โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ')));
|
|
11108
|
+
log(C.bold(C.cy(` โ Leerness Agent v${VERSION} (${today}) ยท ๊ฒ์ยท๊ธฐ์ตยท์๋๋ฐ์ค ํตํฉ AI โ`)));
|
|
11109
|
+
log(C.bold(C.cy(' โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ')));
|
|
11083
11110
|
log('');
|
|
11084
|
-
log(C.
|
|
11085
|
-
log(C.
|
|
11086
|
-
log(C.bold(C.cy(' โ ๊ฒ์ยท๊ธฐ์ตยท์๋๋ฐ์ค ํตํฉ ์์จ AI ์์ด์ ํธ โ')));
|
|
11087
|
-
log(C.bold(C.cy(' โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ')));
|
|
11111
|
+
log(C.dim(` โธ Welcome back ยท ${wsName} (${rel(process.cwd(), absRoot(root))})`));
|
|
11112
|
+
log(C.dim(` โธ Session: ${state.sessionId}`));
|
|
11088
11113
|
log('');
|
|
11089
11114
|
// Ollama ๋ชจ๋ธ ์๋ ๊ฐ์ง โ model์ด ๋ช
์๋์ง ์์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ์ ํ์ง ์ ๊ณต
|
|
11090
11115
|
if (state.provider === 'ollama' && !state.model) {
|
|
@@ -11129,15 +11154,39 @@ async function _agentRepl(root, opts) {
|
|
|
11129
11154
|
}
|
|
11130
11155
|
}
|
|
11131
11156
|
}
|
|
11157
|
+
// 1.9.179: Tips + What's new ๋ฐ์ค (์ฌ์ฉ์ ๋ช
์ โ ์ฒจ๋ถ ์ด๋ฏธ์ง spirit ๋ฐ์)
|
|
11158
|
+
log('');
|
|
11159
|
+
log(C.bold(C.yel(' โโ Tips for getting started โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ')));
|
|
11160
|
+
log(C.yel(' โ ') + C.dim('Tab / Shift+Tab') + ' ' + C.dim('โ provider / model ์ ํ (1.9.170)') + C.yel(' '.repeat(Math.max(1, 17)) + 'โ'));
|
|
11161
|
+
log(C.yel(' โ ') + C.dim(':review "<req>"') + ' ' + C.dim('โ ๋ฌด์กฐ๊ฑด ๊ตฌํ ์ ์ฌ์ ๊ฒํ (1.9.176)') + C.yel(' '.repeat(Math.max(1, 13)) + 'โ'));
|
|
11162
|
+
log(C.yel(' โ ') + C.dim(':permissions <m>') + ' ' + C.dim('โ ์ฆ์ ๊ถํ ๋ณ๊ฒฝ basic|extended|full (1.9.174)') + C.yel(' โ'));
|
|
11163
|
+
log(C.yel(' โ ') + C.dim(':stream on|off') + ' ' + C.dim('โ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ํ ๊ธ (default ON, 1.9.170/172)') + C.yel(' โ'));
|
|
11164
|
+
log(C.bold(C.yel(' โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ')));
|
|
11165
|
+
log('');
|
|
11166
|
+
log(C.bold(C.green(' โโ What\'s new (1.9.170~178) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ')));
|
|
11167
|
+
log(C.green(' โ ') + C.dim('โข REPL Tab cycle + ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ (spinner / tool_use / diff ์๊น)') + C.green(' โ'));
|
|
11168
|
+
log(C.green(' โ ') + C.dim('โข Bridge slash :web/:pc/:lsp REPL ์ฆ์ ํธ์ถ + LSP ๋ค๊ตญ์ด 5์ข
') + C.green(' โ'));
|
|
11169
|
+
log(C.green(' โ ') + C.dim('โข review-request ์ฌ์ ๊ฒํ + task add ์๋ trigger') + C.green(' โ'));
|
|
11170
|
+
log(C.green(' โ ') + C.dim('โข release sync-main ์๋ npm publish (.env NPM_TOKEN)') + C.green(' โ'));
|
|
11171
|
+
log(C.green(' โ ') + C.dim('โข 6 ๋ฅ๋ ฅ ๋งคํธ๋ฆญ์ค 72% production-ready ยท MCP 54 ๋๊ตฌ') + C.green(' โ'));
|
|
11172
|
+
log(C.bold(C.green(' โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ')));
|
|
11173
|
+
log('');
|
|
11174
|
+
log(C.bold(' Available Slash (5 ๊ทธ๋ฃน)'));
|
|
11175
|
+
log(C.dim(' โข meta: ') + ':help :model :role :provider :status :stream :clear :quit');
|
|
11176
|
+
log(C.dim(' โข internal: ') + ':verify :audit :handoff :health');
|
|
11177
|
+
log(C.dim(' โข memory: ') + ':lessons :brainstorm :tasks :plan');
|
|
11178
|
+
log(C.dim(' โข bridge: ') + ':web :pc :lsp ' + C.dim('(๊ฐ sub: check/symbols/click/screenshot/...)'));
|
|
11179
|
+
log(C.dim(' โข review: ') + ':review "<request>" ยท :permissions [basic|extended|full]');
|
|
11180
|
+
log('');
|
|
11181
|
+
log(C.dim(' โจ Tab=provider cycle ยท Shift+Tab=model ยท Ctrl+C=quit'));
|
|
11132
11182
|
log('');
|
|
11133
|
-
|
|
11134
|
-
|
|
11135
|
-
log(C.
|
|
11136
|
-
|
|
11137
|
-
|
|
11138
|
-
|
|
11139
|
-
|
|
11140
|
-
log(C.dim(` ํ์ฌ โ provider=${state.provider} model=${state.model || '(๊ธฐ๋ณธ)'} role=${state.role} permissions=${_readPermissions(root).mode}`));
|
|
11183
|
+
// 1.9.179: ์ํ๋ฐ ํ ์ค โ ์๊น/๊ตฌ๋ถ์ ๊ฐํ
|
|
11184
|
+
const permMode = _readPermissions(root).mode || 'basic';
|
|
11185
|
+
log(' ' + C.bold('โก ') + C.cy(`provider=${state.provider}`) + ' ยท '
|
|
11186
|
+
+ C.mag(`model=${state.model || '(๊ธฐ๋ณธ)'}`) + ' ยท '
|
|
11187
|
+
+ C.green(`role=${state.role}`) + ' ยท '
|
|
11188
|
+
+ C.yel(`perms=${permMode}`) + ' ยท '
|
|
11189
|
+
+ (state.streamMode ? C.green('โถ stream=on') : C.dim('โก stream=off')));
|
|
11141
11190
|
// 1.9.155: REPL ์ง์
์ handoff ์ปจํ
์คํธ ์๋ ๋
ธ์ถ (UX ๊ฐ์ โ ์ฌ์ฉ์๊ฐ ๋งค๋ฒ :handoff ์ ํด๋ ์ปจํ
์คํธ ์ธ์ง)
|
|
11142
11191
|
try {
|
|
11143
11192
|
const hf = cp.spawnSync(process.execPath, [__filename, 'handoff', root, '--compact', '--no-drift-check', '--no-headline'], {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leerness",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.179",
|
|
4
4
|
"description": "Leerness: ๋นํ๊ดด ๋ง์ด๊ทธ๋ ์ด์
, ์๋ ๋ฒ์ ๊ฐ์งยท์
๋ฐ์ดํธ, ๊ณํ/์งํ/ํธ๋์คํ ์๋ํ, ๊ฒ์ผ๋ฆยท์ํฌ๋ฆฟยท์ธ์ฝ๋ฉ ์๋ ๊ฐ๋, Claude Code ์ฌ๋์ ํตํฉ์ ๊ฐ์ถ ํ๊ตญ์ด ์ฐ์ AI ๊ฐ๋ฐ ํ๋ค์ค.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"leerness",
|