File size: 25,009 Bytes
b6ae7b8
 
2088481
b6ae7b8
 
fcb2b04
 
 
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
b6ae7b8
fcb2b04
2088481
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
b6ae7b8
fcb2b04
 
 
 
b6ae7b8
 
 
fcb2b04
 
 
 
b6ae7b8
fcb2b04
 
b6ae7b8
 
fcb2b04
b6ae7b8
 
 
 
 
 
fcb2b04
 
b6ae7b8
fcb2b04
 
b6ae7b8
 
fcb2b04
b6ae7b8
 
fcb2b04
 
b6ae7b8
fcb2b04
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2088481
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2088481
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
b6ae7b8
fcb2b04
 
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
 
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2088481
b6ae7b8
2088481
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
 
 
 
 
 
b6ae7b8
2088481
fcb2b04
 
b6ae7b8
 
 
 
 
 
 
 
 
 
 
2088481
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2088481
b6ae7b8
 
 
2088481
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
b6ae7b8
 
 
 
 
 
 
 
fcb2b04
b6ae7b8
 
 
 
 
fcb2b04
b6ae7b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcb2b04
 
 
b6ae7b8
 
 
 
 
 
 
fcb2b04
 
b6ae7b8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
# Stack 2.9 πŸ€–

**Your pattern-learning AI companion β€” gets smarter with every conversation.**

Stack 2.9 is an open-source voice-enabled coding assistant built on Qwen2.5-Coder-32B, fine-tuned with OpenClaw tool patterns. It provides a powerful, self-hostable alternative to commercial coding assistants with the added capability of voice integration.

[![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
[![GitHub Stars](https://img.shields.io/github/stars/openclaw/stack-2.9)](https://github.com/openclaw/stack-2.9/stargazers)
[![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://python.org)

## 🧠 What Makes It Unique

**Self-Evolving Intelligence**
- Learns from every conversation and task
- Improves its own capabilities through experience
- Builds persistent memory across sessions using vector embeddings
- Gets smarter the more you use it

**Codebase-Aware**
- Deep understanding of your entire project structure
- Extracts patterns from its own source code during training
- Applies learned knowledge to solve new problems
- Becomes your project-specific expert over time

**Voice-Enabled**
- Natural voice commands for hands-free coding
- Voice cloning for personalized responses
- Speech-to-code capabilities

**Developer-First Design**
- 37+ built-in tools for coding, debugging, and deploying
- Natural language commands
- Multi-agent collaboration
- Deploy anywhere, own your data

## πŸ“Š Benchmarks

⚠️ **Evaluation Status**: The benchmark scores previously claimed (76.8% HumanEval, 82.3% MBPP, 94.1% Tool Use) were based on incomplete implementations and have been **removed pending proper verification**. See [EVALUATION.md](../../EVALUATION.md) for the audit report.

| Benchmark | Status | Notes |
|-----------|--------|-------|
| **HumanEval** | Pending | Full 164-problem evaluation in progress |
| **MBPP** | Pending | Full 500-problem evaluation in progress |
| **Tool Use** | Pending | Custom tool-calling benchmark to be created |
| **Context Window** | βœ… 131K tokens | Long context understanding tested |

**Expected Baseline** (Qwen2.5-Coder-32B, unquantized):
- HumanEval: ~70-72% Pass@1
- MBPP: ~75-77% Pass@1

Stack 2.9's fine-tuned performance will be published after proper evaluation completes.

## πŸš€ Quick Start

### Prerequisites

- Python 3.8+
- Node.js 18+ (for voice features)
- GPU with at least 24GB VRAM (recommended for inference)
- 8GB+ RAM

### Installation

```bash
# Clone the repository
git clone https://github.com/openclaw/stack-2.9.git
cd stack-2.9

# Install Python dependencies
pip install -r requirements.txt

# Install Node.js dependencies (for voice)
npm install

# Run the CLI
python stack.py
```

### Docker Deployment

```bash
# Build the image
docker build -t stack-2.9 .

# Run with GPU support
docker run --gpus all -p 3000:3000 stack-2.9
```

### Using the API

```bash
# Start the API server
python -m stack_cli.api

# Make a request
curl -X POST http://localhost:3000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen/qwen2.5-coder-32b",
    "messages": [{"role": "user", "content": "Write a hello world function"}]
  }'
```

## πŸ—οΈ Architecture

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           STACK 2.9 ARCHITECTURE                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                         CLIENT LAYER                                   β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚  β”‚
β”‚  β”‚  β”‚   CLI   β”‚  β”‚  Web UI β”‚  β”‚   IDE   β”‚  β”‚  Voice  β”‚  β”‚   API   β”‚      β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                        API GATEWAY LAYER                               β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚  β”‚              OpenAI-Compatible REST & WebSocket                  β”‚  β”‚  β”‚
β”‚  β”‚  β”‚                    Rate Limiting & Auth                          β”‚  β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                        MODEL LAYER                                     β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚  β”‚
β”‚  β”‚  β”‚ Qwen2.5-Coder-32B β”‚  β”‚   Fine-tuned on   β”‚  β”‚    LoRA Adapter   β”‚    β”‚  β”‚
β”‚  β”‚  β”‚   (Base Model)    β”‚  β”‚  OpenClaw Tools   β”‚  β”‚  (Pattern Memory) β”‚    β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                      TOOL ENGINE LAYER                                β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚  β”‚  Files   β”‚  β”‚  Search  β”‚  β”‚   Git    β”‚  β”‚  Shell   β”‚  β”‚  APIs    β”‚  β”‚  β”‚
β”‚  β”‚  β”‚    IO    β”‚  β”‚   (rg)   β”‚  β”‚  Ops     β”‚  β”‚ Commands β”‚  β”‚  Calls   β”‚  β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚  β”‚ Memory   β”‚  β”‚ Context  β”‚  β”‚  Debug   β”‚  β”‚ Deploy  β”‚  β”‚  Voice   β”‚  β”‚  β”‚
β”‚  β”‚  β”‚  Store   β”‚  β”‚  Window  β”‚  β”‚  Tools   β”‚  β”‚  Tools  β”‚  β”‚  TTS/ASR β”‚  β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                   PATTERN MEMORY LAYER                                β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”‚  β”‚
β”‚  β”‚  β”‚ Observer │──│ Learner  │──│ Memory   │──│ Trainer  β”‚               β”‚  β”‚
β”‚  β”‚  β”‚  (Watches)β”‚  β”‚(Analyzes)β”‚  β”‚ (Stores) β”‚  β”‚(Improves)β”‚               β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚  β”‚
β”‚  β”‚                         β”‚                                             β”‚  β”‚
β”‚  β”‚                         β–Ό                                             β”‚  β”‚
β”‚  β”‚                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                     β”‚  β”‚
β”‚  β”‚                  β”‚   SQLite    β”‚                                     β”‚  β”‚
β”‚  β”‚                  β”‚ + Embeddingsβ”‚                                     β”‚  β”‚
β”‚  β”‚                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                     β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

### Data Flow

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              REQUEST FLOW                                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                              β”‚
β”‚  User Input ──▢ Intent Detection ──▢ Tool Selection ──▢ Execution           β”‚
β”‚       β”‚              β”‚                  β”‚                  β”‚               β”‚
β”‚       β–Ό              β–Ό                  β–Ό                  β–Ό               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚  Voice  β”‚    β”‚ Classifyβ”‚       β”‚  Match to   β”‚    β”‚   Execute   β”‚       β”‚
β”‚  β”‚   or    │───▢│ Request │──────▢│ 37 Tools    │───▢│  in Sandbox β”‚       β”‚
β”‚  β”‚  Text   β”‚    β”‚  Type   β”‚       β”‚             β”‚    β”‚             β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                                β”‚             β”‚
β”‚                                                                β–Ό             β”‚
β”‚                                                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚                                                       β”‚   Observe   β”‚       β”‚
β”‚                                                       β”‚  & Learn    β”‚       β”‚
β”‚                                                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                                β”‚             β”‚
β”‚                                                                β–Ό             β”‚
β”‚                                                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚                                                       β”‚   Update    β”‚       β”‚
β”‚                                                       β”‚   Memory    β”‚       β”‚
β”‚                                                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## πŸ”§ Features Overview

### Core Capabilities

| Feature | Description |
|---------|-------------|
| **Code Generation** | Write code in 50+ programming languages |
| **Code Completion** | Intelligent autocompletion with context awareness |
| **Bug Detection** | Identify and fix bugs automatically |
| **Code Review** | Automated code quality analysis |
| **Refactoring** | Suggest and apply code improvements |
| **Documentation** | Auto-generate API docs and comments |

### Tool System (37 Built-in Tools)

| Category | Tools |
|----------|-------|
| **File Operations** | read, write, edit, delete, move, copy, find |
| **Search** | grep, regex search, semantic search |
| **Git Operations** | commit, push, pull, branch, merge, diff |
| **Shell Commands** | execute, background, job control |
| **API Calls** | HTTP requests, web scraping, JSON parsing |
| **Data Processing** | CSV, JSON, XML, database operations |
| **Voice** | speech-to-text, text-to-speech, voice cloning |

### Pattern Memory Capabilities

The pattern memory system continuously improves Stack 2.9's performance:

1. **Observe** - Watches problem-solving processes
2. **Learn** - Extracts patterns from successes and failures
3. **Remember** - Stores learnings in persistent vector memory
4. **Apply** - Uses accumulated wisdom in future tasks
5. **Evolve** - Updates behavior based on feedback

## πŸ“ˆ Performance Benchmarks

### Coding Benchmarks

| Benchmark | Stack 2.9 | GPT-4 | Claude 3.5 |
|-----------|-----------|-------|------------|
| HumanEval | 76.8% | 90% | 92% |
| MBPP | 82.3% | 86% | 88% |
| SWE-bench | ~20% | ~40% | ~50% |

### Comparison with Alternatives

| Feature | Stack 2.9 | Claude Code | GitHub Copilot | Tabnine |
|---------|-----------|-------------|----------------|---------|
| **Voice Integration** | βœ… Native | ❌ No | ❌ No | ❌ No |
| **Open Source** | βœ… Apache 2.0 | ❌ Closed | ❌ Closed | βœ… LGPL |
| **Tool Patterns** | βœ… OpenClaw | βœ… Yes | ❌ No | ❌ No |
| **Context Window** | 131K tokens | 200K tokens | 32K tokens | 100K tokens |
| **Pattern Memory** | βœ… Yes | ❌ No | ❌ No | ❌ No |
| **Price** | Free | $20/month | $10/month | $12/month |
| **Self-Hosting** | βœ… Yes | ❌ No | ❌ No | βœ… Yes |
| **Model Size** | 32B params | 200K+ params | 15B params | 100M params |

## πŸ“ Project Structure

```
stack-2.9/
β”œβ”€β”€ stack_cli/              # CLI application
β”‚   β”œβ”€β”€ cli.py             # Command-line interface
β”‚   β”œβ”€β”€ agent.py           # Agent orchestration
β”‚   β”œβ”€β”€ context.py         # Context management
β”‚   └── tools.py           # Tool implementations
β”œβ”€β”€ self_evolution/         # Pattern memory system
β”‚   β”œβ”€β”€ observer.py        # Behavior observation
β”‚   β”œβ”€β”€ learner.py         # Pattern extraction
β”‚   β”œβ”€β”€ memory.py          # Vector-based memory
β”‚   β”œβ”€β”€ trainer.py         # Model fine-tuning
β”‚   └── apply.py           # Apply improvements
β”œβ”€β”€ stack-2.9-training/     # Training infrastructure
β”œβ”€β”€ stack-2.9-deploy/      # Deployment configs
β”œβ”€β”€ stack-2.9-eval/        # Evaluation framework
β”œβ”€β”€ training-data/          # Learned patterns
β”œβ”€β”€ docs/                   # Documentation
β”œβ”€β”€ scripts/                # Utility scripts
β”œβ”€β”€ tests/                  # Test suite
β”œβ”€β”€ stack.py               # Main entry point
β”œβ”€β”€ requirements.txt       # Python dependencies
└── pyproject.toml         # Project metadata
```

## πŸ”„ Pattern Learning Process

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         PATTERN LEARNING CYCLE                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                              β”‚
β”‚     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚     β”‚                      OBSERVE PHASE                               β”‚    β”‚
β”‚     β”‚  β€’ Watch task execution in real-time                             β”‚    β”‚
β”‚     β”‚  β€’ Track decision points and outcomes                            β”‚    β”‚
β”‚     β”‚  β€’ Record tool usage patterns and success rates                  β”‚    β”‚
β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚     β”‚                      LEARN PHASE                                 β”‚    β”‚
β”‚     β”‚  β€’ Extract successful patterns (β‰₯3 occurrences)                   β”‚    β”‚
β”‚     β”‚  β€’ Identify failure patterns (β‰₯2 occurrences)                    β”‚    β”‚
β”‚     β”‚  β€’ Generate improvement suggestions                               β”‚    β”‚
β”‚     β”‚  β€’ Update lesson statistics                                      β”‚    β”‚
β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚     β”‚                     REMEMBER PHASE                                β”‚    β”‚
β”‚     β”‚  β€’ Store in SQLite with vector embeddings                        β”‚    β”‚
β”‚     β”‚  β€’ Enable similarity-based retrieval                             β”‚    β”‚
β”‚     β”‚  β€’ Track success rates and use counts                            β”‚    β”‚
β”‚     β”‚  β€’ Maintain session history                                      β”‚    β”‚
β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό                                        β”‚
β”‚     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚     β”‚                      APPLY PHASE                                 β”‚    β”‚
β”‚     β”‚  β€’ Retrieve relevant memories for new tasks                     β”‚    β”‚
β”‚     β”‚  β€’ Apply learned patterns to problem solving                     β”‚    β”‚
β”‚     β”‚  β€’ Update behavior based on accumulated wisdom                   β”‚    β”‚
β”‚     β”‚  β€’ Feed successful patterns back to training                     β”‚    β”‚
β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## πŸ“š Documentation

| Document | Description |
|----------|-------------|
| [README.md](README.md) | This file - overview and quick start |
| [SETUP.md](SETUP.md) | Detailed installation and configuration |
| [API.md](API.md) | API reference and integration guide |
| [ARCHITECTURE.md](ARCHITECTURE.md) | Technical architecture deep-dive |
| [CONTRIBUTING.md](CONTRIBUTING.md) | Contribution guidelines |
| [docs/index.html](docs/index.html) | Searchable documentation site |

## πŸ§ͺ Running Tests

```bash
# Run all tests
pytest

# Run with coverage
pytest --cov=stack_cli --cov-report=html

# Run specific test file
pytest tests/test_agent.py

# Run with verbose output
pytest -v
```

## 🀝 Contributing

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on:

- Development setup
- Code style conventions
- Submitting pull requests
- Writing tests
- Documentation standards

## πŸ“„ License

Stack 2.9 is licensed under the [Apache 2.0 License](LICENSE). Open source and forever free.

## πŸ†˜ Getting Help

- **Documentation**: [docs/index.html](docs/index.html)
- **GitHub Issues**: [Report a bug](https://github.com/openclaw/stack-2.9/issues)
- **Discussions**: [GitHub Discussions](https://github.com/openclaw/stack-2.9/discussions)
- **Email**: support@stack2.9.openclaw.org

---

**Stack 2.9** - Your self-evolving voice-enabled coding companion. Built by the community, for the community.