n2-soul 7.0.6 β†’ 8.0.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 CHANGED
@@ -6,6 +6,7 @@
6
6
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
7
7
  [![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org)
8
8
  [![npm downloads](https://img.shields.io/npm/dm/n2-soul.svg)](https://www.npmjs.com/package/n2-soul)
9
+ [![v8.0.0](https://img.shields.io/badge/v8.0.0-Forgetting%20Curve-blueviolet.svg)](#whats-new-in-v80)
9
10
 
10
11
  **Your AI agent forgets everything when a session ends. Soul fixes that.**
11
12
 
@@ -25,6 +26,7 @@ Every time you start a new chat with Cursor, VS Code Copilot, or any MCP-compati
25
26
 
26
27
  ## Table of Contents
27
28
 
29
+ - [What's New in v8.0](#whats-new-in-v80)
28
30
  - [Quick Start](#quick-start)
29
31
  - [Why Soul?](#why-soul)
30
32
  - [Token Efficiency](#token-efficiency)
@@ -39,6 +41,61 @@ Every time you start a new chat with Cursor, VS Code Copilot, or any MCP-compati
39
41
  - [Contributing](#contributing)
40
42
  - [Sponsors](#-sponsors)
41
43
 
44
+ ## What's New in v8.0
45
+
46
+ > **Forgetting Curve β€” Soul now remembers what matters and forgets what doesn't.**
47
+
48
+ ### 🧠 Intelligent Memory (Forgetting Curve GC)
49
+
50
+ Inspired by Ebbinghaus' forgetting curve, Soul v8.0 intelligently manages memory retention:
51
+
52
+ ```
53
+ retention = importance Γ— (1 + logβ‚‚(1 + accessCount)) Γ— e^(βˆ’Ξ» Γ— ageDays)
54
+ ```
55
+
56
+ - **Frequently accessed** sessions are kept longer
57
+ - **Important** snapshots resist decay
58
+ - **Stale** memory is automatically pruned via 3-tier lifecycle:
59
+
60
+ | Tier | Age | Storage |
61
+ |------|-----|--------|
62
+ | πŸ”΄ Hot | 0–7 days | In-memory cache + disk |
63
+ | 🟑 Warm | 8–30 days | Disk only |
64
+ | πŸ”΅ Cold | 30+ days | Archived (compressed) |
65
+
66
+ ### ⚑ Performance Revolution β€” Async I/O
67
+
68
+ All hot-path I/O operations are now fully asynchronous:
69
+
70
+ | Operation | v7 (sync) | v8 (async) | Improvement |
71
+ |-----------|-----------|------------|-------------|
72
+ | KV Save | Blocks event loop | Non-blocking | ∞ (no block) |
73
+ | KV Load | 1.2ms (blocking) | 0.7ms (async) | 42% faster |
74
+ | KV Search | Blocks | Parallel | 3x+ throughput |
75
+ | GC | Blocks during sweep | Background | Non-disruptive |
76
+
77
+ ### πŸ”§ SDK Native Migration
78
+
79
+ - Removed legacy `registerTool` shim β†’ direct `server.tool()` API
80
+ - Strict schema validation: `z.any()` eliminated from all tool definitions
81
+ - Full MCP SDK v1.6.1 compatibility
82
+
83
+ ### πŸ“¦ Schema v2 (Backward Compatible)
84
+
85
+ Snapshots now include Forgetting Curve metadata. Existing v1 snapshots are **auto-migrated** on first load:
86
+
87
+ ```diff
88
+ + accessCount: 0 // How often this snapshot was accessed
89
+ + lastAccessed: null // When it was last loaded
90
+ + importance: 0.5 // 0.0–1.0 importance score
91
+ + tier: 'warm' // hot / warm / cold
92
+ ```
93
+
94
+ > [!NOTE]
95
+ > **Upgrading from v7.x**: Zero breaking changes. All existing data works as-is. Snapshots are transparently migrated to schema v2 on first access.
96
+
97
+ ---
98
+
42
99
  ## Quick Start
43
100
 
44
101
  ### 1. Install
@@ -224,10 +281,13 @@ n2_work_end(project, title, summary, todo, entities, insights)
224
281
  | **Soul Board** | Project state + TODO tracking + handoffs between agents |
225
282
  | **Immutable Ledger** | Every work session recorded as append-only log |
226
283
  | **KV-Cache** | Session snapshots with compression + tiered storage (Hot/Warm/Cold) |
284
+ | **Forgetting Curve GC** | πŸ†• v8 β€” Ebbinghaus-based intelligent memory retention |
285
+ | **Async I/O** | πŸ†• v8 β€” Non-blocking I/O on all hot-path operations |
286
+ | **Schema v2** | πŸ†• v8 β€” Access tracking + importance scoring + auto-migration |
227
287
  | **Shared Brain** | File-based shared memory with path traversal protection |
228
- | **Entity Memory** | πŸ†• Auto-tracks people, hardware, projects, concepts across sessions |
229
- | **Core Memory** | πŸ†• Agent-specific always-loaded facts (identity, rules, focus) |
230
- | **Autonomous Extraction** | πŸ†• Auto-saves entities and insights at session end |
288
+ | **Entity Memory** | Auto-tracks people, hardware, projects, concepts across sessions |
289
+ | **Core Memory** | Agent-specific always-loaded facts (identity, rules, focus) |
290
+ | **Autonomous Extraction** | Auto-saves entities and insights at session end |
231
291
  | **Context Search** | Keyword search across brain memory and ledger |
232
292
  | **File Ownership** | Prevents multi-agent file editing collisions |
233
293
  | **Dual Backend** | JSON (zero deps) or SQLite for performance |
@@ -301,9 +361,18 @@ Soul's data is **100% plain JSON files** β€” `soul-board.json`, ledger entries,
301
361
 
302
362
  As agents run hundreds of sessions, file count inevitably grows. Soul handles this infinite growth gracefully:
303
363
 
304
- ### 1. KV-Cache Garbage Collection (`n2_kv_gc`)
305
- Soul includes a built-in `n2_kv_gc` tool that automatically cleans up old KV-Cache snapshots.
306
- Set `maxAgeDays` in your config, and Soul will autonomously delete stale session data while preserving recent history.
364
+ ### 1. Forgetting Curve GC (`n2_kv_gc`) β€” πŸ†• v8.0
365
+
366
+ Soul v8.0 replaces simple age-based deletion with **Ebbinghaus Forgetting Curve** scoring:
367
+
368
+ ```
369
+ retention = importance Γ— (1 + logβ‚‚(1 + accessCount)) Γ— e^(βˆ’0.05 Γ— ageDays)
370
+ ```
371
+
372
+ - Snapshots with high `importance` or frequent `accessCount` survive longer
373
+ - Snapshots decay naturally over time (Ξ» = 0.05)
374
+ - Retention threshold: 0.1 (below this β†’ eligible for deletion)
375
+ - `n2_kv_gc` reports retention scores so you can monitor memory health
307
376
 
308
377
  ### 2. Time-Partitioned Ledger
309
378
  The immutable work ledger isn't a single massive database file. It's partitioned by date (`ledger/YYYY/MM/DD/`).
@@ -0,0 +1,127 @@
1
+ # Soul β€” The Memory System That Makes AI Agents Actually Useful
2
+
3
+ ## The Problem Nobody Talks About
4
+
5
+ Every time you open a new chat with Cursor, VS Code Copilot, Claude, or any AI coding assistant, your agent starts from absolute zero. It doesn't know what you worked on yesterday. It doesn't know what files it changed. It doesn't remember the bug it found 3 hours ago. It's like having a brilliant developer with permanent amnesia.
6
+
7
+ You end up spending the first 5-10 minutes of every session re-explaining context. "Remember the auth module? The one with JWT? We added rate limiting yesterday..." β€” and the agent has no idea.
8
+
9
+ **This is the single biggest productivity killer in AI-assisted development today.** Not model intelligence. Not context window size. Memory loss.
10
+
11
+ ## What Soul Does
12
+
13
+ Soul is an open-source MCP (Model Context Protocol) server that gives AI agents persistent memory. Install it once, and your agents remember everything β€” across sessions, across agents, across days.
14
+
15
+ ### The Magic: Two Commands
16
+
17
+ ```
18
+ Session start: n2_boot("rose", "my-project") β†’ Agent loads all previous context
19
+ Session end: n2_work_end(...) β†’ Agent saves everything for next time
20
+ ```
21
+
22
+ That's it. Next session, your agent picks up exactly where it left off.
23
+
24
+ ## Key Features That Make Soul Special
25
+
26
+ ### 1. Persistent Memory (KV-Cache)
27
+ Every session is automatically saved as a snapshot. When you start a new session, Soul loads the previous context using progressive levels:
28
+ - **L1 (~500 tokens)**: Just keywords and TODO β€” ultra-fast startup
29
+ - **L2 (~2,000 tokens)**: Summary + decisions + context
30
+ - **L3 (full)**: Complete session restore
31
+
32
+ This means over 10 sessions, you save 30,000+ tokens on context alone.
33
+
34
+ ### 2. Multi-Agent Handoffs
35
+ Agent Rose works on the auth module at 2pm. Agent Jenny picks up at 5pm. With Soul, Jenny knows exactly what Rose did, what's left to do, and what files were changed. No re-explanation needed.
36
+
37
+ ### 3. Entity Memory (v5.0)
38
+ Soul automatically tracks people, hardware, projects, and concepts across sessions. Every entity is stored with attributes and auto-merged when updated.
39
+
40
+ ### 4. Core Memory (v5.0)
41
+ Agent-specific facts that are always loaded at boot. An agent's identity, working rules, current focus β€” always available, never forgotten.
42
+
43
+ ### 5. Shared Brain
44
+ Multiple agents can read and write to the same shared memory space. File-based, simple, with path traversal protection built in.
45
+
46
+ ### 6. Immutable Ledger
47
+ Every work session is recorded as an append-only log. You can trace exactly what happened, when, and by whom.
48
+
49
+ ### 7. File Ownership
50
+ Prevents two agents from editing the same file simultaneously. Simple, effective collision prevention.
51
+
52
+ ## Ark β€” Built-in AI Safety (v6.0)
53
+
54
+ This is the feature that got people really excited on Reddit.
55
+
56
+ ### The Problem
57
+ AI agents with tool access can execute dangerous commands. `rm -rf /` to delete everything. `DROP DATABASE` to destroy data. `git push --force` to rewrite history. These aren't hypothetical β€” autonomous agents have already done these things.
58
+
59
+ ### Ark's Solution: Zero-Token Safety
60
+
61
+ Most AI safety solutions use another LLM to check if an action is safe. That costs 500-2,000 tokens per check and takes 1-5 seconds.
62
+
63
+ **Ark uses pure regex pattern matching inside the MCP server.** Zero tokens. Less than 1 millisecond. Always on β€” there's no toggle to disable it. It's like a firewall for your AI.
64
+
65
+ Key properties:
66
+ - **Zero token cost** β€” runs in Node.js, not in the LLM
67
+ - **Zero latency** β€” microsecond execution
68
+ - **Always on** β€” no `enabled: false` option (by design)
69
+ - **Self-protecting** β€” 4 layers prevent a rogue AI from disabling Ark itself
70
+ - **Human-readable rules** β€” `.n2` files anyone can read and customize
71
+ - **7 industry templates** β€” Medical (HIPAA), Military, Finance, Legal, Privacy (GDPR), Autonomous, DevOps
72
+
73
+ ### .n2 Rule Files
74
+
75
+ Safety rules are written in a human-readable format:
76
+
77
+ ```
78
+ @rule catastrophic_destruction {
79
+ scope: all
80
+ blacklist: [/rm\s+-rf/, /DROP\s+DATABASE/i, /git\s+push\s+--force/i]
81
+ requires: human_approval
82
+ }
83
+ ```
84
+
85
+ Transparent, auditable, customizable. No black boxes.
86
+
87
+ ## Cloud Storage (v6.1) β€” Zero-Cost Cloud in One Line
88
+
89
+ Soul takes a radically different approach to cloud storage:
90
+
91
+ ```js
92
+ DATA_DIR: 'G:/My Drive/n2-soul' // That's it. Your AI memory is now in Google Drive.
93
+ ```
94
+
95
+ Because Soul stores everything as plain JSON files, any folder sync service works as cloud storage. Google Drive (free 15GB), OneDrive, Dropbox, NAS, USB drive β€” all supported. Zero API keys. Zero monthly fees. Zero vendor lock-in.
96
+
97
+ For teams, point multiple agents to the same network path = instant shared memory with zero setup.
98
+
99
+ ## The Numbers
100
+
101
+ - **41 GitHub stars in 2 days** (after Reddit launch)
102
+ - **7 forks** β€” people are actively building on it
103
+ - **v6.1.4** β€” actively maintained, shipping weekly
104
+ - **Only 3 dependencies** β€” minimal, lightweight, reliable
105
+ - **Node.js 18+** β€” runs anywhere
106
+ - **Apache-2.0 license** β€” fully open source
107
+
108
+ ## The Story Behind Soul
109
+
110
+ Soul was created by a developer who came back to coding after 30 years. The frustration of watching AI agents forget everything between sessions was the catalyst. "I built Soul because it broke my heart watching my agents lose their memory every session."
111
+
112
+ What started as a personal tool grew into something the community actually wanted. The project went from zero to 41 stars in just two days after being posted on Reddit, with engaged discussions about enterprise use cases like Vault mode for secret management.
113
+
114
+ ## Why Soul Matters
115
+
116
+ In the AI agent ecosystem, there are tools for making agents smarter (better models), tools for giving agents abilities (MCP servers), but almost nothing for giving agents **memory**. Soul fills that gap.
117
+
118
+ The vision: AI agents that truly know you, your codebase, your preferences. Agents that can hand off work to each other seamlessly. Agents that are safe by default, not by hope.
119
+
120
+ **Soul is the memory layer the AI ecosystem has been missing.**
121
+
122
+ ---
123
+
124
+ πŸ”— GitHub: github.com/choihyunsus/soul
125
+ πŸ“¦ npm: n2-soul
126
+ 🌐 Website: nton2.com
127
+ πŸ’– Sponsor: github.com/sponsors/choihyunsus
@@ -0,0 +1,152 @@
1
+ # 🧠 Soul v8.0 Roadmap β€” The Heart Upgrade
2
+
3
+ > 기획일: 2026-03-26 | μƒνƒœ: Planning
4
+
5
+ ## λ°°κ²½
6
+
7
+ Soul은 N2 μƒνƒœκ³„μ˜ **심μž₯**이닀. λ‹€λ₯Έ νŒ¨ν‚€μ§€(Clotho, Ark, Arachne, QLN, Mimir)λŠ” μ˜΅μ…˜μ΄μ§€λ§Œ Soul μ—†μ΄λŠ” 아무것도 λŒμ•„κ°€μ§€ μ•ŠλŠ”λ‹€.
8
+
9
+ ν˜„μž¬ Soul v7.0.6은 초창기 CJS둜 μž‘μ„±λ˜μ—ˆκ³ , μ•„ν‚€ν…μ²˜λŠ” νƒ„νƒ„ν•˜μ§€λ§Œ ν’ˆμ§ˆ 인프라(νƒ€μž…, ν…ŒμŠ€νŠΈ, λ‘œκΉ…)와 μ„±λŠ₯ μ΅œμ ν™”(동기I/O, O(n) 검색)에 약점이 μžˆλ‹€.
10
+
11
+ **λͺ©ν‘œ**: ꡬ쑰λ₯Ό λ§κ°€λœ¨λ¦¬μ§€ μ•ŠμœΌλ©΄μ„œ 2쀑 3μ€‘μœΌλ‘œ μ•ˆμ „ν•˜κ³  λΉ λ₯΄κ²Œ μ—…κ·Έλ ˆμ΄λ“œν•œλ‹€. λ©”λͺ¨λ¦¬ κ΄€λ ¨μ΄λ―€λ‘œ 무겁지 μ•Šκ²Œ.
12
+
13
+ ---
14
+
15
+ ## Phase 1: 기반 λ‹€μ§€κΈ° βœ… μ™„λ£Œ (v7.1)
16
+
17
+ | ν•­λͺ© | μƒνƒœ | μ„€λͺ… |
18
+ |------|:----:|------|
19
+ | description μ—…λ°μ΄νŠΈ | βœ… | Ark/Arachne ꡬ식 μ°Έμ‘° 제거 |
20
+ | 4레벨 둜그 μ‹œμŠ€ν…œ | βœ… | debug/info/warn/error + `N2_LOG_LEVEL` ν™˜κ²½λ³€μˆ˜ μ œμ–΄ |
21
+ | info 레벨 둜그 μ •ν™•ν™” | βœ… | logError λ‚¨μš© β†’ logInfo μˆ˜μ • (3κ³³) |
22
+ | Board 인메λͺ¨λ¦¬ μΊμ‹œ | βœ… | mtime 기반 λ¬΄νš¨ν™”λ‘œ λ©€ν‹°μ—μ΄μ „νŠΈ μ•ˆμ „μ„± μœ μ§€ |
23
+
24
+ ---
25
+
26
+ ## Phase 2: μ„±λŠ₯ ν˜μ‹ 
27
+
28
+ | ν•­λͺ© | λ‚œμ΄λ„ | μ„€λͺ… |
29
+ |------|:------:|------|
30
+ | sqlite-vec 벑터 인덱슀 | 🟑 | μ‹œλ§¨ν‹± 검색 O(n) β†’ O(1). sqlite-vec 이미 μ˜μ‘΄μ„±μ— 있음 |
31
+ | ν•« 패슀 async I/O | 🟠 | save/load/search의 동기 I/O β†’ 비동기 μ „ν™˜ |
32
+ | registerTool shim 제거 | 🟑 | MCP SDK λ„€μ΄ν‹°λΈŒ μ‚¬μš©μœΌλ‘œ κΈ°μˆ λΆ€μ±„ ν•΄μ†Œ |
33
+
34
+ ---
35
+
36
+ ## Phase 3: Forgetting Curve β€” μΈκ°„ν˜• κΈ°μ–΅ μ‹œμŠ€ν…œ
37
+
38
+ > Soul λ‹¨λ…μœΌλ‘œ κ΅¬ν˜„ κ°€λŠ₯. κ°€μž₯ 즉각적인 효과.
39
+
40
+ ν˜„μž¬: μŠ€λƒ…μƒ· 50개 μ œν•œ, 30일 만료 β†’ 기계적 μ‚­μ œ
41
+
42
+ ### 3단계 κΈ°μ–΅ 계측
43
+
44
+ ```
45
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
46
+ β”‚ πŸ”΄ Hot Memory (졜근 7일 + 자주 μ ‘κ·Ό) β”‚
47
+ β”‚ β†’ 전체 μŠ€λƒ…μƒ· 보관 β”‚
48
+ β”‚ β†’ μ¦‰μ‹œ λ‘œλ“œ κ°€λŠ₯ β”‚
49
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
50
+ β”‚ 🟑 Warm Memory (7~30일) β”‚
51
+ β”‚ β†’ μš”μ•½ + 핡심 κ²°μ •μ‚¬ν•­λ§Œ 보관 β”‚
52
+ β”‚ β†’ 토큰 μ ˆμ•½ 80%+ β”‚
53
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
54
+ β”‚ πŸ”΅ Cold Memory (30일+) β”‚
55
+ β”‚ β†’ ν‚€μ›Œλ“œ + λ©”νƒ€λ°μ΄ν„°λ§Œ 보관 β”‚
56
+ β”‚ β†’ ν•„μš” μ‹œ λ°±μ—…μ—μ„œ 전체 볡원 β”‚
57
+ β”‚ β†’ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ 95% κ°μ†Œ β”‚
58
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
59
+ ```
60
+
61
+ ### μ ‘κ·Ό λΉˆλ„ 기반 승격/κ°•λ“±
62
+
63
+ ```
64
+ κΈ°μ–΅ A: 맀일 검색됨 β†’ Hot μœ μ§€
65
+ κΈ°μ–΅ B: 2μ£Ό μ „ λ§ˆμ§€λ§‰ μ ‘κ·Ό β†’ Warm으둜 κ°•λ“±
66
+ κΈ°μ–΅ C: 2달 μ „, ν•œ λ²ˆλ„ 검색 μ•ˆ 됨 β†’ Cold둜 κ°•λ“±
67
+ κΈ°μ–΅ D: Cold인데 κ°‘μžκΈ° 검색됨 β†’ Warm으둜 승격
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Phase 4: Soul Γ— Arachne 연동
73
+
74
+ > Arachne의 μ½”λ“œ 이해 λŠ₯λ ₯을 Soul의 기얡에 κ²°ν•©
75
+
76
+ ### Smart Memory Compression
77
+ - ν˜„μž¬: ν…μŠ€νŠΈ 길이 기반 λ‹¨μˆœ μ••μΆ•
78
+ - 연동 ν›„: Arachne의 BM25둜 ν˜„μž¬ ν”„λ‘œμ νŠΈμ™€ κ΄€λ ¨ μžˆλŠ” 기얡은 μœ μ§€, λ¬΄κ΄€ν•œ 건 μΆ•μ†Œ
79
+ - 같은 토큰 μ˜ˆμ‚°μœΌλ‘œ **2-3λ°° 더 μ •ν™•ν•œ μ»¨ν…μŠ€νŠΈ**
80
+
81
+ ### Memory-Aware Code Search
82
+ - Soul이 "이 μ—μ΄μ „νŠΈκ°€ μ§€λ‚œ μ„Έμ…˜μ— μˆ˜μ •ν•œ 파일" 정보λ₯Ό Arachne에 전달
83
+ - Arachneκ°€ 검색 μš°μ„ μˆœμœ„λ₯Ό μžλ™ μ‘°μ •
84
+ - μ—μ΄μ „νŠΈκ°€ 졜근 μž‘μ—…ν•œ 파일이 검색 μƒμœ„μ— λ…ΈμΆœ
85
+
86
+ ### Cross-Session Impact Analysis
87
+ - Soul: "μ§€λ‚œ μ„Έμ…˜μ— auth.tsλ₯Ό μˆ˜μ •ν–ˆλ‹€"
88
+ - Arachne: "auth.tsλ₯Ό importν•˜λŠ” 파일 15κ°œκ°€ 영ν–₯받을 수 μžˆλ‹€"
89
+ - λΆ€νŒ… μ‹œ μžλ™μœΌλ‘œ 영ν–₯ λ²”μœ„ μ•Œλ¦Ό
90
+
91
+ ---
92
+
93
+ ## Phase 5: Soul Γ— Mimir 연동
94
+
95
+ > Mimir의 κ²½ν—˜ ν•™μŠ΅μ„ Soul의 μ„Έμ…˜ 데이터에 적용
96
+
97
+ ### Auto-Learning Ledger
98
+ ```
99
+ μž‘μ—… 끝 β†’ Ledger에 기둝 β†’ Mimirκ°€ μžλ™ 뢄석
100
+ β†’ "TypeScript strict ν”„λ‘œμ νŠΈμ—μ„œ interface λŒ€μ‹  type 썼을 λ•Œ 3번 μˆ˜μ •ν•¨"
101
+ β†’ λ‹€μŒμ— 같은 상황이면 μžλ™μœΌλ‘œ interface μΆ”μ²œ
102
+ ```
103
+ - λͺ¨λ“  μž‘μ—… μ„Έμ…˜μ΄ μžλ™μœΌλ‘œ ν•™μŠ΅ 데이터가 λœλ‹€
104
+ - λͺ…μ‹œμ  `study_start/add/end` 없이도 ν•™μŠ΅
105
+
106
+ ### Experience-Guided Decisions
107
+ - λΉ„μŠ·ν•œ μƒν™©μ—μ„œ κ³Όκ±° μ–΄λ–€ 결정을 ν–ˆλŠ”μ§€ μžλ™ μ„œμ œμŠ€νŠΈ
108
+ - Ledger의 `decisions` ν•„λ“œλ₯Ό Mimirκ°€ 뢄석
109
+ - "이전에 λΉ„μŠ·ν•œ λ¦¬νŒ©ν† λ§μ—μ„œ X 접근법을 μ„ νƒν–ˆκ³  μ„±κ³΅ν–ˆλ‹€"
110
+
111
+ ---
112
+
113
+ ## Phase 6: 3자 연동 β€” Predictive Context Loading
114
+
115
+ > κ°€μž₯ λ³΅μž‘ν•˜μ§€λ§Œ κ°€μž₯ κ°•λ ₯ν•œ κΈ°λŠ₯
116
+
117
+ ```
118
+ λΆ€νŒ…:
119
+ 1. Soul β†’ 이전 μ„Έμ…˜ KV-Cache λ‘œλ“œ
120
+ 2. Mimir β†’ νŒ¨ν„΄ 뢄석: "이 μ—μ΄μ „νŠΈλŠ” 보톡 이 μ‹œκ°„μ— 이 ν”„λ‘œμ νŠΈμ˜ 이런 μž‘μ—…μ„ ν•œλ‹€"
121
+ 3. Arachne β†’ 예츑된 μž‘μ—…μ— ν•„μš”ν•œ μ½”λ“œ μ»¨ν…μŠ€νŠΈλ₯Ό 미리 λ‘œλ“œ
122
+
123
+ κ²°κ³Ό: μ—μ΄μ „νŠΈκ°€ μ§ˆλ¬Έν•˜κΈ°λ„ 전에 ν•„μš”ν•œ 정보가 μ€€λΉ„λ˜μ–΄ μžˆλ‹€
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Phase 7: ν’ˆμ§ˆ 보증
129
+
130
+ | ν•­λͺ© | μ„€λͺ… |
131
+ |------|------|
132
+ | μœ λ‹› ν…ŒμŠ€νŠΈ 20개+ | SoulEngine, KV-Cache save/load/search, Board μΊμ‹œ |
133
+ | 톡합 ν…ŒμŠ€νŠΈ | λΆ€νŒ… β†’ μž‘μ—… β†’ μ’…λ£Œ 전체 μ‹œν€€μŠ€ |
134
+ | CI/CD | GitHub Actions μžλ™ ν…ŒμŠ€νŠΈ |
135
+ | TypeScript κ²€ν†  | JSDoc `@ts-check` λ˜λŠ” μ „λ©΄ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ²°μ • |
136
+
137
+ ---
138
+
139
+ ## μš°μ„ μˆœμœ„ μš”μ•½
140
+
141
+ ```
142
+ μ¦‰μ‹œ Phase 1 βœ… β†’ 둜그, μΊμ‹œ, description
143
+ 단기 Phase 2 β†’ sqlite-vec, async I/O
144
+ 쀑기 Phase 3 β†’ Forgetting Curve (Soul 단독)
145
+ 쀑μž₯κΈ° Phase 4-5 β†’ Arachne/Mimir 연동
146
+ μž₯κΈ° Phase 6 β†’ 3자 연동 (Predictive Loading)
147
+ 지속 Phase 7 β†’ ν…ŒμŠ€νŠΈ, νƒ€μž…
148
+ ```
149
+
150
+ ---
151
+
152
+ > *"Soul은 기얡이닀. 기얡이 효율적이면 AIλŠ” 더 λΉ λ₯΄κ³ , 더 μ •ν™•ν•˜κ³ , 더 μ„±μž₯ν•œλ‹€."*
package/index.js CHANGED
@@ -1,5 +1,4 @@
1
- // Soul MCP v7.1 β€” Entry point. Multi-agent session orchestrator with KV-Cache.
2
- const path = require('path');
1
+ // Soul MCP v8.0 β€” Entry point. Multi-agent session orchestrator with KV-Cache.
3
2
  const { McpServer } = require('@modelcontextprotocol/sdk/server/mcp.js');
4
3
  const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js');
5
4
  const { z } = require('zod');
@@ -20,17 +19,7 @@ const server = new McpServer({
20
19
  version: pkg.version,
21
20
  });
22
21
 
23
- // ═══════════════════════════════════════════════════════
24
- // registerTool shim β€” bridges legacy registerTool() to SDK v1.6.1 server.tool()
25
- // ═══════════════════════════════════════════════════════
26
- const _origTool = server.tool.bind(server);
27
- server.registerTool = (name, schema, handler) => {
28
- const desc = schema.description || schema.title || name;
29
- _origTool(name, desc, schema.inputSchema || {}, handler);
30
- };
31
- // ═══ End shim ═══
32
-
33
- // Register core modules
22
+ // Register core modules β€” all tools use SDK-native server.tool() directly
34
23
  registerBootSequence(server, z, config);
35
24
  registerWorkSequence(server, z, config);
36
25
  registerEndSequence(server, z, config);