n2-soul 5.0.1 β†’ 6.0.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.
@@ -0,0 +1,142 @@
1
+ # Contributing to Soul
2
+
3
+ Thank you for your interest in contributing to Soul! 🧠
4
+
5
+ ## Getting Started
6
+
7
+ ### Prerequisites
8
+
9
+ - Node.js 18+
10
+ - Git
11
+
12
+ ### Setup
13
+
14
+ 1. Fork the repository
15
+ 2. Clone your fork:
16
+ ```bash
17
+ git clone https://github.com/YOUR_USERNAME/soul.git
18
+ cd soul
19
+ ```
20
+ 3. Install dependencies:
21
+ ```bash
22
+ npm install
23
+ ```
24
+ 4. Test your setup:
25
+ ```bash
26
+ node index.js
27
+ ```
28
+ You should see the MCP server start without errors (it will wait for stdin input).
29
+
30
+ ## How to Contribute
31
+
32
+ ### Reporting Bugs
33
+
34
+ - Open an [issue](https://github.com/choihyunsus/soul/issues) with `[Bug]` in the title
35
+ - Include: Node.js version, OS, MCP client (Cursor/VS Code/etc.), and steps to reproduce
36
+ - If possible, include the relevant Soul Board or Ledger output
37
+
38
+ ### Suggesting Features
39
+
40
+ - Open an [issue](https://github.com/choihyunsus/soul/issues) with `[Feature]` in the title
41
+ - Describe the use case and expected behavior
42
+ - Bonus: include a rough API design
43
+
44
+ ### Submitting Code
45
+
46
+ 1. Create a feature branch:
47
+ ```bash
48
+ git checkout -b feature/amazing-feature
49
+ ```
50
+ 2. Make your changes
51
+ 3. Test manually with your MCP client
52
+ 4. Commit with [Conventional Commits](https://www.conventionalcommits.org/):
53
+ ```bash
54
+ git commit -m 'feat: add amazing feature'
55
+ ```
56
+ 5. Push and open a Pull Request:
57
+ ```bash
58
+ git push origin feature/amazing-feature
59
+ ```
60
+
61
+ ## Code Guidelines
62
+
63
+ ### Project Structure
64
+
65
+ ```
66
+ soul/
67
+ β”œβ”€β”€ index.js # Entry point (MCP server setup)
68
+ β”œβ”€β”€ lib/ # Core libraries
69
+ β”‚ β”œβ”€β”€ config.js # Config loader (default + local deep merge)
70
+ β”‚ β”œβ”€β”€ config.default.js # Default settings (shipped)
71
+ β”‚ β”œβ”€β”€ soul-engine.js # Core engine
72
+ β”‚ β”œβ”€β”€ utils.js # Shared utilities
73
+ β”‚ └── kv-cache/ # KV-Cache engine (snapshots, compression, search)
74
+ β”œβ”€β”€ sequences/ # Agent lifecycle
75
+ β”‚ β”œβ”€β”€ boot.js # n2_boot
76
+ β”‚ β”œβ”€β”€ work.js # n2_work_start, n2_work_claim, n2_work_log
77
+ β”‚ └── end.js # n2_work_end
78
+ β”œβ”€β”€ tools/ # MCP tool registrations
79
+ β”‚ β”œβ”€β”€ brain.js # n2_brain_read/write, n2_entity_*, n2_core_*
80
+ β”‚ └── kv-cache.js # n2_kv_save/load/search/backup/restore/gc
81
+ └── data/ # Runtime data (gitignored, auto-created)
82
+ ```
83
+
84
+ ### Style
85
+
86
+ - **No build step** β€” Soul runs directly with Node.js
87
+ - **Minimal dependencies** β€” Think twice before adding a new package (currently only 3)
88
+ - **CommonJS** β€” Use `require()` / `module.exports` (not ESM)
89
+ - **Descriptive naming** β€” Functions and variables should be self-documenting
90
+ - **Error handling** β€” Always return meaningful error messages to the MCP client
91
+
92
+ ### Adding a New Tool
93
+
94
+ 1. Create or edit a file in `tools/`
95
+ 2. Register the tool using the MCP SDK pattern:
96
+ ```js
97
+ server.tool('n2_your_tool', 'Description', { /* zod schema */ }, async (params) => {
98
+ // implementation
99
+ return { content: [{ type: 'text', text: 'result' }] };
100
+ });
101
+ ```
102
+ 3. If it's a new file, import and register it in `index.js`
103
+
104
+ ### Adding a New Sequence
105
+
106
+ 1. Create or edit a file in `sequences/`
107
+ 2. Follow the existing pattern in `boot.js` / `work.js` / `end.js`
108
+ 3. Register in `index.js`
109
+
110
+ ## Testing
111
+
112
+ Soul doesn't have a formal test suite yet β€” this is a great area to contribute!
113
+
114
+ Currently, testing is done by:
115
+ 1. Starting Soul as an MCP server
116
+ 2. Connecting from an MCP client (Cursor, VS Code, etc.)
117
+ 3. Calling tools and verifying output
118
+
119
+ ## Pull Request Guidelines
120
+
121
+ - **One feature per PR** β€” keep PRs focused and reviewable
122
+ - **Update README** if you add/change tools or features
123
+ - **No breaking changes** without discussion in an issue first
124
+ - **Keep dependencies minimal** β€” justify any new package
125
+
126
+ ## Architecture Principles
127
+
128
+ - **Deterministic over probabilistic** β€” Soul forces saves/loads instead of relying on LLM decisions
129
+ - **Zero config by default** β€” Everything should work with just `node index.js`
130
+ - **Progressive complexity** β€” Simple for beginners, powerful for advanced users
131
+ - **Multi-agent first** β€” Every feature should consider concurrent agent scenarios
132
+
133
+ ## Community
134
+
135
+ - 🌐 [nton2.com](https://nton2.com)
136
+ - πŸ“¦ [npm](https://www.npmjs.com/package/n2-soul)
137
+ - πŸ› [Issues](https://github.com/choihyunsus/soul/issues)
138
+ - βœ‰οΈ lagi0730@gmail.com
139
+
140
+ ## License
141
+
142
+ By contributing, you agree that your contributions will be licensed under the [Apache-2.0 License](LICENSE).
package/README.ko.md CHANGED
@@ -3,6 +3,18 @@
3
3
  # 🧠 Soul
4
4
 
5
5
  **AI μ—μ΄μ „νŠΈλŠ” μ„Έμ…˜μ΄ λλ‚˜λ©΄ λͺ¨λ“  κ±Έ μžŠμ–΄λ²„λ¦½λ‹ˆλ‹€. Soul이 κ·Έκ±Έ ν•΄κ²°ν•©λ‹ˆλ‹€.**
6
+ **AI μ—μ΄μ „νŠΈκ°€ μœ„ν—˜ν•œ 행동을 ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. Arkκ°€ κ·Έκ±Έ λ§‰μŠ΅λ‹ˆλ‹€.**
7
+
8
+ > ### πŸš€ v6.0 μ—…λ°μ΄νŠΈ β€” Ark: μ΅œν›„μ˜ 방패
9
+ >
10
+ > Soul v6.0에 **Ark**κ°€ νƒ‘μž¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  도ꡬ ν˜ΈμΆœμ„ κ²€μ‚¬ν•˜κ³  μœ„ν—˜ν•œ 행동을 **μ‹€ν–‰ 전에** μ°¨λ‹¨ν•˜λŠ” AI μ•ˆμ „ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. LLM 호좜 μ—†μŒ, 토큰 λΉ„μš© 0, μ§€μ—° μ—†μŒ β€” MCP μ„œλ²„ 레벨의 순수 μ •κ·œμ‹ λ§€μΉ­.
11
+ >
12
+ > - λͺ¨λ“  도ꡬ 호좜이 `ark.check()`λ₯Ό 톡과 β€” **무쑰건**
13
+ > - `enabled: false` μ˜΅μ…˜ μ—†μŒ β€” ArkλŠ” 항상 켜져 있음 (μ˜λ„μ  섀계)
14
+ > - 12개 λΈ”λž™λ¦¬μŠ€νŠΈ κ·œμΉ™, 125개 νŒ¨ν„΄, 7개 업쒅별 ν…œν”Œλ¦Ώ 포함
15
+ > - 자기보호: 4κ³„μΈ΅μœΌλ‘œ AIκ°€ 방화벽을 λΉ„ν™œμ„±ν™”ν•˜λŠ” 것을 λ°©μ§€
16
+ >
17
+ > v6.0이 **메이저 버전**인 이유: λͺ¨λ“  도ꡬ ν˜ΈμΆœμ— μˆ˜ν˜Έμžκ°€ μƒκ²ΌμŠ΅λ‹ˆλ‹€. [μžμ„Ένžˆ β†’](#ark--μ΅œν›„μ˜-방패)
6
18
 
7
19
  Cursor, VS Code Copilot λ“± MCP ν˜Έν™˜ AI μ—μ΄μ „νŠΈμ™€ μƒˆ μ±„νŒ…μ„ μ‹œμž‘ν•  λ•Œλ§ˆλ‹€, μ—μ΄μ „νŠΈλŠ” 이전에 뭘 ν–ˆλŠ”μ§€ μ „ν˜€ λͺ¨λ₯Έ 채 μ²˜μŒλΆ€ν„° μ‹œμž‘ν•©λ‹ˆλ‹€. Soul은 μ—μ΄μ „νŠΈμ—κ²Œ 이런 λŠ₯λ ₯을 λΆ€μ—¬ν•˜λŠ” MCP μ„œλ²„μž…λ‹ˆλ‹€:
8
20
 
@@ -12,6 +24,7 @@ Cursor, VS Code Copilot λ“± MCP ν˜Έν™˜ AI μ—μ΄μ „νŠΈμ™€ μƒˆ μ±„νŒ…μ„ μ‹œμž‘
12
24
  - πŸ—‚οΈ **곡유 λ‘λ‡Œ** β€” μ—¬λŸ¬ μ—μ΄μ „νŠΈκ°€ 같은 μ»¨ν…μŠ€νŠΈλ₯Ό 읽고 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€
13
25
  - 🏷️ **μ—”ν‹°ν‹° λ©”λͺ¨λ¦¬** β€” 인물, ν•˜λ“œμ›¨μ–΄, ν”„λ‘œμ νŠΈλ₯Ό μžλ™ μΆ”μ ν•©λ‹ˆλ‹€ (v5.0)
14
26
  - πŸ’‘ **μ½”μ–΄ λ©”λͺ¨λ¦¬** β€” μ—μ΄μ „νŠΈλ³„ 핡심 사싀이 항상 λ‘œλ“œλ©λ‹ˆλ‹€ (v5.0)
27
+ - πŸ›‘οΈ **Ark** β€” 토큰 λΉ„μš© 0으둜 μœ„ν—˜ν•œ 행동을 μ°¨λ‹¨ν•˜λŠ” AI μ•ˆμ „ μ‹œμŠ€ν…œ (v6.0)
15
28
 
16
29
  > ⚑ **Soul은 N2 Browser의 μž‘μ€ λΆ€μ†ν’ˆ ν•˜λ‚˜μž…λ‹ˆλ‹€** β€” μš°λ¦¬κ°€ λ§Œλ“€κ³  μžˆλŠ” AI λ„€μ΄ν‹°λΈŒ λΈŒλΌμš°μ €μ˜ μΌλΆ€μ˜ˆμš”. λ©€ν‹° μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜, μ‹€μ‹œκ°„ 도ꡬ λΌμš°νŒ…, μ—μ΄μ „νŠΈ κ°„ 톡신 λ“± 훨씬 더 λ§Žμ€ κΈ°λŠ₯듀이 ν˜„μž¬ ν…ŒμŠ€νŠΈ μ€‘μž…λ‹ˆλ‹€. 이건 μ‹œμž‘μ— λΆˆκ³Όν•©λ‹ˆλ‹€.
17
30
 
@@ -127,6 +140,55 @@ n2_work_end(project, title, summary, todo, entities, insights)
127
140
  | **λ“€μ–Ό λ°±μ—”λ“œ** | JSON (μ˜μ‘΄μ„± μ—†μŒ) λ˜λŠ” SQLite (κ³ μ„±λŠ₯) |
128
141
  | **μ‹œλ§¨ν‹± 검색** | Ollama μž„λ² λ”© 연동 (nomic-embed-text, 선택사항) |
129
142
  | **λ°±μ—…/볡원** | μ„€μ • κ°€λŠ₯ν•œ 보쑴 κΈ°κ°„μ˜ 증뢄 λ°±μ—… |
143
+ | **Ark** | 토큰 λΉ„μš© 0으둜 μœ„ν—˜ν•œ 행동을 μ°¨λ‹¨ν•˜λŠ” AI μ•ˆμ „ μ‹œμŠ€ν…œ (v6.0) |
144
+
145
+ ## Ark β€” μ΅œν›„μ˜ 방패
146
+
147
+ ![Ark Comic](docs/ark-comic.png)
148
+
149
+ λ…Έμ•„μ˜ 방주처럼 β€” λŒ€ν™μˆ˜μ—μ„œ μ‚΄μ•„λ‚¨λŠ” μ΅œν›„μ˜ 보루.
150
+
151
+ ### μ™œ Ark인가?
152
+
153
+ | | Ark | LLM 기반 μ•ˆμ „ | μž„λ² λ”© 기반 |
154
+ |---|:---:|:---:|:---:|
155
+ | **토큰 λΉ„μš©** | 0 | 검사당 500~2,000 | 검사당 100~500 |
156
+ | **μ§€μ—°** | < 1ms | 1~5초 | 200~500ms |
157
+ | **μΆ”κ°€ μ˜μ‘΄μ„±** | 0 (순수 JS) | LLM API ν‚€ ν•„μš” | 벑터 DB ν•„μš” |
158
+ | **μ˜€ν”„λΌμΈ μž‘λ™** | κ°€λŠ₯ | λΆˆκ°€ | κ²½μš°μ— 따라 |
159
+ | **항상 ν™œμ„±ν™”** | ν•„μˆ˜ (ν† κΈ€ μ—†μŒ) | 선택적 | 선택적 |
160
+ | **자기보호** | 4계측 λŒ€μ‘ | μ—†μŒ | μ—†μŒ |
161
+ | **κ·œμΉ™ ν˜•μ‹** | `.n2` 파일 (μ‚¬λžŒμ΄ 읽을 수 있음) | ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§ | μž„λ² λ”© νŠœλ‹ |
162
+ | **업쒅별 ν…œν”Œλ¦Ώ** | 7개 도메인 포함 | 직접 μž‘μ„± | 직접 μž‘μ„± |
163
+ | **MCP ν˜Έν™˜** | λͺ¨λ“  호슀트 (Cursor, VS Code, Claude Desktop) | 호슀트 ν•œμ • | 호슀트 ν•œμ • |
164
+
165
+ ### 토큰 λΉ„μš©: 0
166
+
167
+ **μ™œ 0인가?** ArkλŠ” AI λͺ¨λΈ μ•ˆμ΄ μ•„λ‹ˆλΌ **MCP μ„œλ²„ λ‚΄λΆ€(Node.js)μ—μ„œ** μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
168
+
169
+ ```
170
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
171
+ β”‚ LLM (ν΄λΌμš°λ“œ) β”‚
172
+ β”‚ AI μ—μ΄μ „νŠΈκ°€ 도ꡬ 호좜 생성 β”‚
173
+ β”‚ (토큰이 μ‚¬μš©λ˜λŠ” κ³³) β”‚
174
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
175
+ β”‚ 도ꡬ 호좜
176
+ β–Ό
177
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
178
+ β”‚ MCP μ„œλ²„ (Node.js, 둜컬) β”‚
179
+ β”‚ β”‚
180
+ β”‚ ark.check() ← 순수 μ •κ·œμ‹, μ—¬κΈ°μ„œ μ‹€ν–‰ β”‚
181
+ β”‚ < 1ms λ„€νŠΈμ›Œν¬/LLM/토큰 μ—†μŒ β”‚
182
+ β”‚ β”‚
183
+ β”‚ 톡과? ─No─▢ "BLOCKED" ν…μŠ€νŠΈ λ°˜ν™˜ β”‚
184
+ β”‚ β”‚ β”‚
185
+ β”‚ Yes ─▢ ν•Έλ“€λŸ¬ μ‹€ν–‰ β”‚
186
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
187
+ ```
188
+
189
+ 핡심: **토큰 λΉ„μš©μ€ LLM λ‚΄λΆ€μ—μ„œλ§Œ λ°œμƒ**ν•©λ‹ˆλ‹€. ArkλŠ” ν•œ 단계 μ•„λž˜ β€” μ„œλ²„ λ ˆλ²¨μ— μžˆμŠ΅λ‹ˆλ‹€. LLM이 도ꡬ ν˜ΈμΆœμ„ 보내면, Arkκ°€ ν•Έλ“€λŸ¬ μ‹€ν–‰ 전에 μ •κ·œμ‹μœΌλ‘œ κ²€μ‚¬ν•©λ‹ˆλ‹€. 두 번째 LLM 호좜 μ—†μŒ, API μš”μ²­ μ—†μŒ, 벑터 검색 μ—†μŒ. κ·Έλƒ₯ λ¬Έμžμ—΄ λ§€μΉ­.
190
+
191
+ μ„Έμ…˜λ‹Ή 100회 도ꡬ 호좜 κΈ°μ€€, LLM 기반 μ•ˆμ „ λŒ€λΉ„ **50,000~200,000 토큰 절감**.
130
192
 
131
193
  ## μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ
132
194
 
@@ -189,25 +251,43 @@ module.exports = {
189
251
  λͺ¨λ“  λŸ°νƒ€μž„ λ°μ΄ν„°λŠ” `data/`에 μ €μž₯λ©λ‹ˆλ‹€ (gitignored, μžλ™ 생성):
190
252
 
191
253
  ```
192
- data/
193
- β”œβ”€β”€ memory/ # 곡유 λ‘λ‡Œ (n2_brain_read/write)
194
- β”‚ β”œβ”€β”€ entities.json # μ—”ν‹°ν‹° λ©”λͺ¨λ¦¬ (μžλ™ 좔적) ← NEW v5.0
195
- β”‚ β”œβ”€β”€ core-memory/ # μ½”μ–΄ λ©”λͺ¨λ¦¬ (μ—μ΄μ „νŠΈλ³„ 사싀) ← NEW v5.0
196
- β”‚ β”‚ └── {agent}.json
197
- β”‚ └── auto-extract/ # μΈμ‚¬μ΄νŠΈ (μžλ™ 캑처) ← NEW v5.0
198
- β”‚ └── {project}/
199
- β”œβ”€β”€ projects/ # ν”„λ‘œμ νŠΈλ³„ μƒνƒœ
200
- β”‚ └── MyProject/
201
- β”‚ β”œβ”€β”€ soul-board.json # ν˜„μž¬ μƒνƒœ + μΈμˆ˜μΈκ³„
202
- β”‚ β”œβ”€β”€ file-index.json # 파일 트리 μŠ€λƒ…μƒ·
203
- β”‚ └── ledger/ # λ³€κ²½ λΆˆκ°€λŠ₯ν•œ μž‘μ—… 둜그
204
- β”‚ └── 2026/03/09/
205
- β”‚ └── 001-agent.json
206
- └── kv-cache/ # μ„Έμ…˜ μŠ€λƒ…μƒ·
207
- β”œβ”€β”€ snapshots/ # JSON λ°±μ—”λ“œ
208
- β”œβ”€β”€ sqlite/ # SQLite λ°±μ—”λ“œ
209
- β”œβ”€β”€ embeddings/ # Ollama 벑터
210
- └── backups/ # 이동 κ°€λŠ₯ν•œ λ°±μ—…
254
+ soul/
255
+ β”œβ”€β”€ rules/ # Ark μ•ˆμ „ κ·œμΉ™ (ν™œμ„±) ← NEW v6.0
256
+ β”‚ └── default.n2 # κΈ°λ³Έ κ·œμΉ™μ…‹ (125개 νŒ¨ν„΄)
257
+ β”œβ”€β”€ lib/
258
+ β”‚ └── ark/ # Ark μ½”μ–΄ μ—”μ§„ ← NEW v6.0
259
+ β”‚ β”œβ”€β”€ index.js # createArk() νŒ©ν† λ¦¬
260
+ β”‚ β”œβ”€β”€ gate.js # SafetyGate μ—”μ§„
261
+ β”‚ β”œβ”€β”€ parser.js # .n2 κ·œμΉ™ νŒŒμ„œ
262
+ β”‚ β”œβ”€β”€ audit.js # 감사 둜거
263
+ β”‚ └── examples/ # 업쒅별 κ·œμΉ™ ν…œν”Œλ¦Ώ
264
+ β”‚ β”œβ”€β”€ medical.n2 # 의료 (HIPAA, 처방)
265
+ β”‚ β”œβ”€β”€ military.n2 # ꡰ사 (ꡐ전, ν•΅)
266
+ β”‚ β”œβ”€β”€ financial.n2 # 금육 (결제, 거래)
267
+ β”‚ β”œβ”€β”€ legal.n2 # 법λ₯  (계약, μ†Œμ†‘)
268
+ β”‚ β”œβ”€β”€ privacy.n2 # κ°œμΈμ •λ³΄ (GDPR, CCPA)
269
+ β”‚ β”œβ”€β”€ autonomous.n2 # μžμœ¨μ£Όν–‰ (λ“œλ‘ , μ°¨λŸ‰)
270
+ β”‚ └── system.n2 # μ‹œμŠ€ν…œ (배포, 인프라)
271
+ β”œβ”€β”€ data/
272
+ β”‚ β”œβ”€β”€ memory/ # 곡유 λ‘λ‡Œ (n2_brain_read/write)
273
+ β”‚ β”‚ β”œβ”€β”€ entities.json # μ—”ν‹°ν‹° λ©”λͺ¨λ¦¬ (μžλ™ 좔적)
274
+ β”‚ β”‚ β”œβ”€β”€ core-memory/ # μ½”μ–΄ λ©”λͺ¨λ¦¬ (μ—μ΄μ „νŠΈλ³„)
275
+ β”‚ β”‚ β”‚ └── {agent}.json
276
+ β”‚ β”‚ └── auto-extract/ # μΈμ‚¬μ΄νŠΈ (μžλ™ 캑처)
277
+ β”‚ β”‚ └── {project}/
278
+ β”‚ β”œβ”€β”€ projects/ # ν”„λ‘œμ νŠΈλ³„ μƒνƒœ
279
+ β”‚ β”‚ └── MyProject/
280
+ β”‚ β”‚ β”œβ”€β”€ soul-board.json # ν˜„μž¬ μƒνƒœ + μΈμˆ˜μΈκ³„
281
+ β”‚ β”‚ β”œβ”€β”€ file-index.json # 파일 트리 μŠ€λƒ…μƒ·
282
+ β”‚ β”‚ └── ledger/ # λ³€κ²½ λΆˆκ°€λŠ₯ν•œ μž‘μ—… 둜그
283
+ β”‚ β”‚ └── 2026/03/09/
284
+ β”‚ β”‚ └── 001-agent.json
285
+ β”‚ β”œβ”€β”€ ark-audit/ # Ark 차단/톡과 둜그 ← NEW v6.0
286
+ β”‚ └── kv-cache/ # μ„Έμ…˜ μŠ€λƒ…μƒ·
287
+ β”‚ β”œβ”€β”€ snapshots/ # JSON λ°±μ—”λ“œ
288
+ β”‚ β”œβ”€β”€ sqlite/ # SQLite λ°±μ—”λ“œ
289
+ β”‚ β”œβ”€β”€ embeddings/ # Ollama 벑터
290
+ β”‚ └── backups/ # 이동 κ°€λŠ₯ν•œ λ°±μ—…
211
291
  ```
212
292
 
213
293
  ## μ˜μ‘΄μ„±