leerness 1.9.214 β 1.9.216
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 +70 -0
- package/README.md +3 -3
- package/bin/harness.js +63 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.216 β 2026-05-22
|
|
4
|
+
|
|
5
|
+
**π MCP 5μ’
μΆκ° β 1.9.207~213 μΈλΆ AI λ
ΈμΆ (54 β 59 λꡬ).**
|
|
6
|
+
|
|
7
|
+
> λ°±λ‘κ·Έ μμ§ ν μΈλΆ AI ν΅ν© κ°μΉ κ°ν β Claude/Codex/Gemini λ±μ΄ μ κ· 7 λΌμ΄λ κΈ°λ₯μ μ§μ νΈμΆ κ°λ₯
|
|
8
|
+
|
|
9
|
+
### 1. MCP μ κ· 5μ’
(1.9.216 λΌλ²¨)
|
|
10
|
+
| λꡬ | μΆμ² | μΈμ |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| `leerness_requests_audit` | 1.9.207 | `{ path? }` β missing/tracked/stale νμ |
|
|
13
|
+
| `leerness_constraints_check` | 1.9.208 | `{ request, path? }` β νλ«νΌ alias λ§€μΉ |
|
|
14
|
+
| `leerness_pre_wake_audit` | 1.9.209 | `{ path? }` β 6μμ audit |
|
|
15
|
+
| `leerness_intent_classify` | 1.9.213 | `{ request, path? }` β intent + λλ©μΈ + dry-run νμ₯ |
|
|
16
|
+
| `leerness_idempotency_audit` | 1.9.212 | `{ path? }` β 4μμ λ©±λ±μ± κ²μ¬ |
|
|
17
|
+
|
|
18
|
+
### 2. 5μΆ λ§€νΈλ¦μ€ BμΆ (λ©ν° Sub-Agent) κ°μΉ κ°ν
|
|
19
|
+
- μΈλΆ AI κ° leerness μ 7 λΌμ΄λ μ κ· κΈ°λ₯μ MCP λ‘ μ§μ νΈμΆ
|
|
20
|
+
- Claude Desktop / Cursor / Codex CLI λ±μμ leerness MCP server λ±λ‘ β μ¦μ μ¬μ© κ°λ₯
|
|
21
|
+
- "μ¬μ©μκ° νλ μμ² μ€ λλ½λ κ² μλ?" "μ΄ κΈ°λ₯ ꡬν μ μ΄λ€ API κ·μ ?" "μ΄ μμ²μ μ νν κ·Έκ²λ§ / ν¬κ΄μ ?" λ±μ μΈλΆ AIκ° νμ
|
|
22
|
+
|
|
23
|
+
### 3. λμ νκ· (1.9.207~215) β λͺ¨λ μ μ§
|
|
24
|
+
|
|
25
|
+
### 4. stress-v161 β 19/19 PASS
|
|
26
|
+
- 1.9.216 (8): VERSION + tools/list 59κ° + 5μ’
λ±λ‘ + 4μ’
μ€ νΈμΆ κ²μ¦
|
|
27
|
+
- leerness_intent_classify("λ§΅+μΊλ¦ν°+κ²μ κΈ°λ₯") β broad/game/8 candidates β
|
|
28
|
+
- leerness_constraints_check("Stripe API") β stripe matched β
|
|
29
|
+
- leerness_pre_wake_audit β audited 0 β
|
|
30
|
+
- leerness_idempotency_audit β clean β
|
|
31
|
+
- leerness_requests_audit β total=0 β
|
|
32
|
+
- μ±λ₯ (2): cold_start 544ms / MCP 59λꡬ 541ms
|
|
33
|
+
- λμ νκ· (9): 1.9.207~215
|
|
34
|
+
|
|
35
|
+
### 5. μλ release (78 λΌμ΄λ main-push streak Β· 39 λΌμ΄λ npm publish streak)
|
|
36
|
+
|
|
37
|
+
π **MCP 58 λꡬ λ§μΌμ€ν€** (μ΄μ 53 β 59, +6 in 1.9.158/159/168/216)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 1.9.215 β 2026-05-22
|
|
42
|
+
|
|
43
|
+
**π― handoff ν€λλΌμΈμ constraints/intent μλ ν΅ν© + AGENTS.md 7 λΌμ΄λ λμ .**
|
|
44
|
+
|
|
45
|
+
> λ°±λ‘κ·Έ μμ§ ν μ΄μ κ°μΉ κ°ν β νμ¬ μ§ν μ€ taskμμ μλμΌλ‘ νλ«νΌ μ μ½ + μλ λΆλ₯ λ
ΈμΆ
|
|
46
|
+
|
|
47
|
+
### 1. handoff ν€λλΌμΈ 15λ²μ§Έ μμ (1.9.215)
|
|
48
|
+
- progress-tracker.md μ **첫 νμ± task** request μλ μΆμΆ
|
|
49
|
+
- **1.9.208 constraints ν΅ν©**: νλ«νΌ alias λ§€μΉ μ `π¦ N νλ«νΌ μ μ½` λ
ΈμΆ
|
|
50
|
+
- μ: "Stripe API κ²°μ λͺ¨λ" β `π¦ 1 νλ«νΌ μ μ½`
|
|
51
|
+
- **1.9.213 intent ν΅ν©**: μλ μλ λΆλ₯ μ `π― intent broad/<domain>` λλ `π― intent precise` λ
ΈμΆ
|
|
52
|
+
- μ: "κ²μ λ§λ€μ΄μ€ ... ν¬κ΄μ " β `π― intent broad/game`
|
|
53
|
+
- ν€λλΌμΈ λΌλ²¨: `1.9.81/93/113/152/162/192/197/204/207/209/215`
|
|
54
|
+
- done/dropped/blocked/completed taskλ 무μ (νμ±λ§ λΆμ)
|
|
55
|
+
|
|
56
|
+
### 2. AGENTS.md 7 λΌμ΄λ λμ κ°±μ (CLAUDE.md λ±κ°)
|
|
57
|
+
- `## μ¬μ©μ λͺ
μ μ κ· 7μ’
(1.9.207~213)` ν νμ (λ²μ / κΈ°λ₯ / CLI)
|
|
58
|
+
- `### handoff ν€λλΌμΈ μλ λ
ΈμΆ (1.9.215+)` μΉμ
|
|
59
|
+
- `### μλ λ³΄νΈ μμΉ (1.9.213)` λͺ
μ
|
|
60
|
+
|
|
61
|
+
### 3. λμ νκ· (1.9.207~214) β λͺ¨λ μ μ§
|
|
62
|
+
|
|
63
|
+
### 4. stress-v160 β 17/17 PASS
|
|
64
|
+
- 1.9.215 (6): VERSION + ν€λλΌμΈ μ½λ + AGENTS.md + 격리 κ²μ¦ 3μ’
|
|
65
|
+
- stripe task β π¦ μλ / broad+game task β π― μλ / done task 무μ
|
|
66
|
+
- μ±λ₯ (2) + λμ νκ· (9)
|
|
67
|
+
- μ±λ₯: --version cold start avg 677ms Β· MCP 54 λꡬ 453ms
|
|
68
|
+
|
|
69
|
+
### 5. μλ release (77 λΌμ΄λ main-push streak Β· 38 λΌμ΄λ npm publish streak)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
3
73
|
## 1.9.214 β 2026-05-22
|
|
4
74
|
|
|
5
75
|
**π μ΄μ μμ ν λΌμ΄λ β drift μ°¨λ¨ + AGENTS/CLAUDE 7 λΌμ΄λ λμ κ°±μ + μ’
ν© νκ·.**
|
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) []() []() []() []() []() []() [-brightgreen)]() []() []() []() []() []()
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
β βββ ββββββ ββββββ ββββββββββββββββββββββββ ββββββββ β
|
|
13
13
|
β βββββββββββββββββββββββββββ ββββββ ββββββββββββββββββββββ β
|
|
14
14
|
β βββββββββββββββββββββββββββ ββββββ βββββββββββββββββββββ β
|
|
15
|
-
β v1.9.
|
|
15
|
+
β v1.9.216 AI Agent Reliability Harness + Sandbox β
|
|
16
16
|
β verify Β· remember Β· orchestrate Β· audit Β· sandbox Β· drift β
|
|
17
|
-
β
|
|
17
|
+
β π MCP 59 λꡬ (1.9.207~213 μΈλΆ AI λ
ΈμΆ +5μ’
) β
|
|
18
18
|
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
19
19
|
```
|
|
20
20
|
|
package/bin/harness.js
CHANGED
|
@@ -7,7 +7,7 @@ const cp = require('child_process');
|
|
|
7
7
|
const os = require('os'); // 1.9.178: _publishToNpm μμ os.tmpdir() μ¬μ© (μ μ import)
|
|
8
8
|
const readline = require('readline');
|
|
9
9
|
|
|
10
|
-
const VERSION = '1.9.
|
|
10
|
+
const VERSION = '1.9.216';
|
|
11
11
|
|
|
12
12
|
// 1.9.184: DEP0190 (child_process shell: true) deprecation warning μ΅μ (μ¬μ©μ λͺ
μ).
|
|
13
13
|
// leerness λ cross-platform PATH resolution μ μν΄ shell: true λ₯Ό μλμ μΌλ‘ μ¬μ© (claude.cmd / ollama.cmd λ± Windows .cmd μ²λ¦¬).
|
|
@@ -5658,10 +5658,45 @@ function handoff(root) {
|
|
|
5658
5658
|
}
|
|
5659
5659
|
}
|
|
5660
5660
|
} catch {}
|
|
5661
|
+
// 15) 1.9.215: νμ¬ νμ± taskμμ constraints/intent μλ λΆμ (1.9.208/213 ν΅ν©)
|
|
5662
|
+
try {
|
|
5663
|
+
// progress-tracker.md μ 첫 active task request μΆμΆ
|
|
5664
|
+
const ptPath = path.join(root, '.harness', 'progress-tracker.md');
|
|
5665
|
+
if (exists(ptPath)) {
|
|
5666
|
+
const content = read(ptPath);
|
|
5667
|
+
for (const line of content.split(/\r?\n/)) {
|
|
5668
|
+
if (!/^\|\s*T-\d{4,}\s*\|/.test(line)) continue;
|
|
5669
|
+
const cells = line.split('|').slice(1, -1).map(s => s.trim());
|
|
5670
|
+
if (cells.length < 3) continue;
|
|
5671
|
+
const status = (cells[1] || '').toLowerCase();
|
|
5672
|
+
const req = cells[2];
|
|
5673
|
+
if (!/^(done|dropped|blocked|completed)$/i.test(status) && req.length >= 5) {
|
|
5674
|
+
// 1.9.208 constraints λ§€μΉ
|
|
5675
|
+
try {
|
|
5676
|
+
const cc = _checkRequestConstraints(root, req);
|
|
5677
|
+
if (cc.matched && cc.matched.length > 0) {
|
|
5678
|
+
parts.push(`π¦ ${cc.matched.length} νλ«νΌ μ μ½`);
|
|
5679
|
+
}
|
|
5680
|
+
} catch {}
|
|
5681
|
+
// 1.9.213 intent classify
|
|
5682
|
+
try {
|
|
5683
|
+
const cls = _classifyIntent(req);
|
|
5684
|
+
if (cls.intent === 'broad') {
|
|
5685
|
+
const det = _detectDomain(req, root);
|
|
5686
|
+
if (det.domain) parts.push(`π― intent broad/${det.domain}`);
|
|
5687
|
+
} else if (cls.intent === 'precise') {
|
|
5688
|
+
parts.push(`π― intent precise`);
|
|
5689
|
+
}
|
|
5690
|
+
} catch {}
|
|
5691
|
+
break; // 첫 activeλ§ λΆμ
|
|
5692
|
+
}
|
|
5693
|
+
}
|
|
5694
|
+
}
|
|
5695
|
+
} catch {}
|
|
5661
5696
|
if (parts.length) {
|
|
5662
5697
|
const isTty = process.stdout && process.stdout.isTTY;
|
|
5663
5698
|
const cy = s => isTty ? `\x1b[36m${s}\x1b[0m` : s;
|
|
5664
|
-
log(cy(`π ν€λλΌμΈ (1.9.81/93/113/152/162/192/197/204/207/209): ${parts.join(' Β· ')}`));
|
|
5699
|
+
log(cy(`π ν€λλΌμΈ (1.9.81/93/113/152/162/192/197/204/207/209/215): ${parts.join(' Β· ')}`));
|
|
5665
5700
|
}
|
|
5666
5701
|
} catch {}
|
|
5667
5702
|
}
|
|
@@ -13249,7 +13284,12 @@ function mcpServeCmd(root) {
|
|
|
13249
13284
|
{ name: 'leerness_web', description: '1.9.168 β Web Bridge (1.9.165 playwright opt-in). sub: check (μ€μΉ + permissions.browser νμΈ) | screenshot (URL β PNG) | extract (URL + CSS selector β DOM ν
μ€νΈ). μΈλΆ AIκ° leerness μ μΉ μλν λ₯λ ₯μ μ§μ νΈμΆ. playwright λ―Έμ€μΉ μ μΉμ μλ΄ (graceful). μΈμ: { sub (required), url?, out?, selector?, path? }', inputSchema: { type: 'object', properties: { sub: { type: 'string', enum: ['check', 'screenshot', 'extract'] }, url: { type: 'string' }, out: { type: 'string' }, selector: { type: 'string' }, path: { type: 'string' } }, required: ['sub'] } },
|
|
13250
13285
|
{ name: 'leerness_pc', description: '1.9.168 β PC Bridge (1.9.166 robotjs/nut-tree opt-in). sub: check (μ€μΉ + permissions.mouse/keyboard) | click (x,y) | type (text) | screenshot (out). β full permissions κΆμ₯ (mouse/keyboard μ κ·Ό). μΈλΆ AIκ° λ°μ€ν¬ν μλν λ₯λ ₯μ μ§μ νΈμΆ. μΈμ: { sub (required), x?, y?, text?, out?, path? }', inputSchema: { type: 'object', properties: { sub: { type: 'string', enum: ['check', 'click', 'type', 'screenshot'] }, x: { type: 'number' }, y: { type: 'number' }, text: { type: 'string' }, out: { type: 'string' }, path: { type: 'string' } }, required: ['sub'] } },
|
|
13251
13286
|
{ name: 'leerness_lsp', description: '1.9.168 β LSP Bridge (1.9.167 typescript opt-in + regex fallback). sub: check (μ€μΉ μ¬λΆ) | symbols (file β function/class/interface/type/enum λͺ©λ‘) | references (name + in λλ ν 리 β νΈμΆ μμΉ). μΈλΆ AIκ° μ½λ μΈν
리μ μ€λ₯Ό μ§μ νΈμΆ (μμ‘΄μ± 0 fallback λμ). π MCP 53 λꡬ λ§μΌμ€ν€. μΈμ: { sub (required), file?, name?, in?, path? }', inputSchema: { type: 'object', properties: { sub: { type: 'string', enum: ['check', 'symbols', 'references'] }, file: { type: 'string' }, name: { type: 'string' }, in: { type: 'string' }, path: { type: 'string' } }, required: ['sub'] } },
|
|
13252
|
-
{ name: 'leerness_review_request', description: '1.9.176 β μ¬μ©μ μμ² μ¬μ κ²ν (μ¬μ©μ λͺ
μ μμ²). AI μμ΄μ νΈκ° μ¬μ©μ μꡬλ₯Ό **무쑰건 ꡬν μ **μ νΈμΆ. λΆμ: 1) estimatedType (route μΆμ ), 2) conflicts (lesson μ€ν¨/μ§νμ€ task), 3) reuseCandidates (skill/reuse-map λ§€μΉ), 4) lessonsRecall (κ³Όκ±° κ²°μ ), 5) planConflicts (μ§νμ€ milestone), 6) featureConflicts (feature graph μμ κ²ΉμΉ¨), 7) recommendedSteps (μμ
μ νλ³ 3-5 λ¨κ³), 8) efficiencyHints, 9) proceed (true/false). μ¬μ©μ κ²°μ λμ. μΈμ: { request (required), path? }', inputSchema: { type: 'object', properties: { request: { type: 'string' }, path: { type: 'string' } }, required: ['request'] } }
|
|
13287
|
+
{ name: 'leerness_review_request', description: '1.9.176 β μ¬μ©μ μμ² μ¬μ κ²ν (μ¬μ©μ λͺ
μ μμ²). AI μμ΄μ νΈκ° μ¬μ©μ μꡬλ₯Ό **무쑰건 ꡬν μ **μ νΈμΆ. λΆμ: 1) estimatedType (route μΆμ ), 2) conflicts (lesson μ€ν¨/μ§νμ€ task), 3) reuseCandidates (skill/reuse-map λ§€μΉ), 4) lessonsRecall (κ³Όκ±° κ²°μ ), 5) planConflicts (μ§νμ€ milestone), 6) featureConflicts (feature graph μμ κ²ΉμΉ¨), 7) recommendedSteps (μμ
μ νλ³ 3-5 λ¨κ³), 8) efficiencyHints, 9) proceed (true/false). μ¬μ©μ κ²°μ λμ. μΈμ: { request (required), path? }', inputSchema: { type: 'object', properties: { request: { type: 'string' }, path: { type: 'string' } }, required: ['request'] } },
|
|
13288
|
+
{ name: 'leerness_requests_audit', description: '1.9.216 (1.9.207 μ¬μ©μ λͺ
μ) β μ¬μ©μ λͺ
μ μμ² λλ½ νμΈ μ μ°¨. .harness/user-requests.json μ open/in-progress μμ²μ task-log/plan/decisions μ λ§€μΉ β missing/tracked/stale λΆλ₯. μΈλΆ AIκ° "μ¬μ©μκ° νλ μμ² μ€ λλ½λ κ² μλ?"λ₯Ό μ§μ νμ. μλ΅: { total, open, missing[], tracked[], stale[], completed, dropped }. μΈμ: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } },
|
|
13289
|
+
{ name: 'leerness_constraints_check', description: '1.9.216 (1.9.208 μ¬μ©μ λͺ
μ) β νλ«νΌ/API μ μ½ μ¬μ 체ν¬. μ¬μ©μ μμ² ν
μ€νΈμμ νλ«νΌ alias λ§€μΉ (stripe/openai/anthropic/github/discord/twitter 6μ’
+ μ¬μ©μ μ μ) β κ° νλ«νΌμ rate-limit / idempotency / auth / cost μ μ½ λ
ΈμΆ. μΈλΆ AIκ° "μ΄ κΈ°λ₯ ꡬν μ μ΄λ€ κ·μ μ λ΄μΌ νλ?"λ₯Ό μ§μ νμ. μΈμ: { request (required), path? }', inputSchema: { type: 'object', properties: { request: { type: 'string' }, path: { type: 'string' } }, required: ['request'] } },
|
|
13290
|
+
{ name: 'leerness_pre_wake_audit', description: '1.9.216 (1.9.209 μ¬μ©μ λͺ
μ) β sleep μ sub-agent audit. 6 μμ μ κ²: missing-user-requests / stale-in-progress / drift-handoff-stale / wakeup-missed / next-action-pending / auto-resume-plan. μΈλΆ AIκ° "κΉ¨μ΄λκΈ° μ μ κ²ν λΆλΆ"μ νμ. μλ΅: { auditedAt, findings: {critical, warning, info}, summary }. μΈμ: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } },
|
|
13291
|
+
{ name: 'leerness_intent_classify', description: '1.9.216 (1.9.213 μ¬μ©μ λͺ
μ) β μ¬μ©μ μλ νμ
+ scope expansion κ²μ΄νΈ. μλ΅: { intent: precise|broad|default, signals, domain, explicitMentions, expansionCandidates, mode: dry-run }. 3μμΉ μμ : (1) Always-Off Opt-In, (2) Dry-run κΈ°λ³Έ (μ€ν X), (3) λͺ
μ vs μΆλ‘ λΆλ¦¬ λΌλ²¨λ§. 5 λλ©μΈ (game/web/api/cli/data). μΈλΆ AIκ° "μ΄ μμ²μ μ νν κ·Έκ²λ§ / ν¬κ΄μ / κΈ°λ³ΈμΈκ°?"λ₯Ό νμ. μΈμ: { request (required), path? }', inputSchema: { type: 'object', properties: { request: { type: 'string' }, path: { type: 'string' } }, required: ['request'] } },
|
|
13292
|
+
{ name: 'leerness_idempotency_audit', description: '1.9.216 (1.9.212 μ¬μ©μ λͺ
μ) β λ©±λ±μ± μλ° νμ§. 4μμ μ κ²: rule-duplicate (medium) / task-duplicate-request (medium) / user-request-duplicate (low) / wakeup-duplicate (high). μλ΅: { violations[], verified[], summary: {totalViolations, high/medium/low, overall} }. μΈλΆ AIκ° "μν¬μ€νμ΄μ€μ μ€λ³΅/μΆ©λμ΄ μλ?"λ₯Ό νμ. π MCP 58 λꡬ λ§μΌμ€ν€ (50β58). μΈμ: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } }
|
|
13253
13293
|
];
|
|
13254
13294
|
|
|
13255
13295
|
function send(obj) {
|
|
@@ -13381,6 +13421,26 @@ function mcpServeCmd(root) {
|
|
|
13381
13421
|
// 1.9.176: μ¬μ©μ μμ² μ¬μ κ²ν (μ¬μ©μ λͺ
μ μμ²)
|
|
13382
13422
|
cliArgs = ['review-request', String(args.request || ''), '--path', targetPath, '--json'];
|
|
13383
13423
|
break;
|
|
13424
|
+
case 'leerness_requests_audit':
|
|
13425
|
+
// 1.9.216 (1.9.207): μ¬μ©μ μμ² λλ½ νμΈ μ μ°¨
|
|
13426
|
+
cliArgs = ['requests', 'audit', '--path', targetPath, '--json'];
|
|
13427
|
+
break;
|
|
13428
|
+
case 'leerness_constraints_check':
|
|
13429
|
+
// 1.9.216 (1.9.208): νλ«νΌ/API μ μ½ μ¬μ 체ν¬
|
|
13430
|
+
cliArgs = ['constraints', 'check', String(args.request || ''), '--path', targetPath, '--json'];
|
|
13431
|
+
break;
|
|
13432
|
+
case 'leerness_pre_wake_audit':
|
|
13433
|
+
// 1.9.216 (1.9.209): pre-wake sub-agent audit
|
|
13434
|
+
cliArgs = ['pre-wake-audit', '--path', targetPath, '--json'];
|
|
13435
|
+
break;
|
|
13436
|
+
case 'leerness_intent_classify':
|
|
13437
|
+
// 1.9.216 (1.9.213): intent inference + scope expansion (dry-run)
|
|
13438
|
+
cliArgs = ['intent', 'expand', String(args.request || ''), '--path', targetPath, '--json'];
|
|
13439
|
+
break;
|
|
13440
|
+
case 'leerness_idempotency_audit':
|
|
13441
|
+
// 1.9.216 (1.9.212): λ©±λ±μ± κ°μ¬ (rule/task/user-requests/wakeups 4μμ)
|
|
13442
|
+
cliArgs = ['idempotency', 'audit', '--path', targetPath, '--json'];
|
|
13443
|
+
break;
|
|
13384
13444
|
default:
|
|
13385
13445
|
return send({ jsonrpc: '2.0', id, error: { code: -32601, message: `Unknown tool: ${name}` } });
|
|
13386
13446
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leerness",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.216",
|
|
4
4
|
"description": "Leerness: λΉνκ΄΄ λ§μ΄κ·Έλ μ΄μ
, μλ λ²μ κ°μ§Β·μ
λ°μ΄νΈ, κ³ν/μ§ν/νΈλμ€ν μλν, κ²μΌλ¦Β·μν¬λ¦ΏΒ·μΈμ½λ© μλ κ°λ, Claude Code μ¬λμ ν΅ν©μ κ°μΆ νκ΅μ΄ μ°μ AI κ°λ° νλ€μ€.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"leerness",
|