fivocell 6.3.0 → 7.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 +311 -197
- package/dist/__tests__/cli-regression.test.js +1 -1
- package/dist/__tests__/cli-regression.test.js.map +1 -1
- package/dist/__tests__/teach-context.test.d.ts +2 -0
- package/dist/__tests__/teach-context.test.d.ts.map +1 -0
- package/dist/__tests__/teach-context.test.js +44 -0
- package/dist/__tests__/teach-context.test.js.map +1 -0
- package/dist/__tests__/teach-parser.test.d.ts +2 -0
- package/dist/__tests__/teach-parser.test.d.ts.map +1 -0
- package/dist/__tests__/teach-parser.test.js +56 -0
- package/dist/__tests__/teach-parser.test.js.map +1 -0
- package/dist/__tests__/teach-store.test.d.ts +2 -0
- package/dist/__tests__/teach-store.test.d.ts.map +1 -0
- package/dist/__tests__/teach-store.test.js +68 -0
- package/dist/__tests__/teach-store.test.js.map +1 -0
- package/dist/__tests__/vibe-engine.test.d.ts +2 -0
- package/dist/__tests__/vibe-engine.test.d.ts.map +1 -0
- package/dist/__tests__/vibe-engine.test.js +132 -0
- package/dist/__tests__/vibe-engine.test.js.map +1 -0
- package/dist/walls/01-context/context/prompt-builder.d.ts +1 -0
- package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
- package/dist/walls/01-context/context/prompt-builder.js +15 -1
- package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
- package/dist/walls/06-memory/archive/blob-vault.d.ts.map +1 -1
- package/dist/walls/06-memory/archive/blob-vault.js +8 -9
- package/dist/walls/06-memory/archive/blob-vault.js.map +1 -1
- package/dist/walls/06-memory/archive/memory-archive.d.ts.map +1 -1
- package/dist/walls/06-memory/archive/memory-archive.js +32 -22
- package/dist/walls/06-memory/archive/memory-archive.js.map +1 -1
- package/dist/walls/06-memory/privacy/key-provider.d.ts +19 -0
- package/dist/walls/06-memory/privacy/key-provider.d.ts.map +1 -1
- package/dist/walls/06-memory/privacy/key-provider.js +52 -0
- package/dist/walls/06-memory/privacy/key-provider.js.map +1 -1
- package/dist/walls/06-memory/retrieval/context-pipeline.d.ts.map +1 -1
- package/dist/walls/06-memory/retrieval/context-pipeline.js +9 -0
- package/dist/walls/06-memory/retrieval/context-pipeline.js.map +1 -1
- package/dist/walls/06-memory/stores/sync-engine.d.ts.map +1 -1
- package/dist/walls/06-memory/stores/sync-engine.js +56 -49
- package/dist/walls/06-memory/stores/sync-engine.js.map +1 -1
- package/dist/walls/06-memory/teach/teach-context.d.ts +8 -0
- package/dist/walls/06-memory/teach/teach-context.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-context.js +25 -0
- package/dist/walls/06-memory/teach/teach-context.js.map +1 -0
- package/dist/walls/06-memory/teach/teach-parser.d.ts +6 -0
- package/dist/walls/06-memory/teach/teach-parser.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-parser.js +42 -0
- package/dist/walls/06-memory/teach/teach-parser.js.map +1 -0
- package/dist/walls/06-memory/teach/teach-sections.d.ts +10 -0
- package/dist/walls/06-memory/teach/teach-sections.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-sections.js +67 -0
- package/dist/walls/06-memory/teach/teach-sections.js.map +1 -0
- package/dist/walls/06-memory/teach/teach-store.d.ts +25 -0
- package/dist/walls/06-memory/teach/teach-store.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-store.js +95 -0
- package/dist/walls/06-memory/teach/teach-store.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-cli.d.ts +2 -0
- package/dist/walls/06-memory/vibe/vibe-cli.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-cli.js +217 -0
- package/dist/walls/06-memory/vibe/vibe-cli.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.d.ts +24 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.js +91 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-context.d.ts +8 -0
- package/dist/walls/06-memory/vibe/vibe-context.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-context.js +88 -0
- package/dist/walls/06-memory/vibe/vibe-context.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-engine.d.ts +38 -0
- package/dist/walls/06-memory/vibe/vibe-engine.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-engine.js +587 -0
- package/dist/walls/06-memory/vibe/vibe-engine.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-signals.d.ts +24 -0
- package/dist/walls/06-memory/vibe/vibe-signals.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-signals.js +138 -0
- package/dist/walls/06-memory/vibe/vibe-signals.js.map +1 -0
- package/dist/walls/07-runtime/cli/cli.js +17 -0
- package/dist/walls/07-runtime/cli/cli.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/branch.js +6 -6
- package/dist/walls/07-runtime/cli/commands/branch.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/help.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/help.js +14 -14
- package/dist/walls/07-runtime/cli/commands/help.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/memory.js +5 -5
- package/dist/walls/07-runtime/cli/commands/memory.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/scan.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/scan.js +39 -20
- package/dist/walls/07-runtime/cli/commands/scan.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/session.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/session.js +2 -1
- package/dist/walls/07-runtime/cli/commands/session.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/setup.js +2 -2
- package/dist/walls/07-runtime/cli/commands/setup.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/status.js +7 -7
- package/dist/walls/07-runtime/cli/commands/status.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/sync.js +1 -1
- package/dist/walls/07-runtime/cli/commands/sync.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/teach.d.ts +3 -0
- package/dist/walls/07-runtime/cli/commands/teach.d.ts.map +1 -0
- package/dist/walls/07-runtime/cli/commands/teach.js +203 -0
- package/dist/walls/07-runtime/cli/commands/teach.js.map +1 -0
- package/dist/walls/07-runtime/daemon/routes/session.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/routes/session.js +4 -3
- package/dist/walls/07-runtime/daemon/routes/session.js.map +1 -1
- package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/server.js +3 -0
- package/dist/walls/07-runtime/daemon/server.js.map +1 -1
- package/package.json +1 -1
- package/scripts/deep-audit.js +103 -0
package/README.md
CHANGED
|
@@ -1,197 +1,311 @@
|
|
|
1
|
-
# FIVO Cell
|
|
2
|
-
|
|
3
|
-
**
|
|
4
|
-
|
|
5
|
-
[](LICENSE)
|
|
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
|
-
|
|
1
|
+
# FIVO Cell
|
|
2
|
+
|
|
3
|
+
> **Your AI forgets. Cell doesn't.**
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[]()
|
|
7
|
+
[]()
|
|
8
|
+
[](https://www.npmjs.com/package/fivocell)
|
|
9
|
+
[]()
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## The Problem
|
|
14
|
+
|
|
15
|
+
You work in Cursor. Then Claude Code. Then Open Code. Then Antigravity.
|
|
16
|
+
|
|
17
|
+
Every time you switch tools, **you re-explain** your stack, your style, what you were working on, the bug you just fixed. Your AI has amnesia. Your context is trapped in each tool.
|
|
18
|
+
|
|
19
|
+
**This is the #1 productivity killer for AI-assisted developers.**
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## The Solution
|
|
24
|
+
|
|
25
|
+
**Cell sits between you and your AI tools.** It remembers everything — your coding style, your decisions, your blind spots, your session history — and injects it automatically.
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
$ @cell
|
|
29
|
+
|
|
30
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
31
|
+
CELL CONTEXT — my-saas-app
|
|
32
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
33
|
+
|
|
34
|
+
📦 PROJECT
|
|
35
|
+
Project: my-saas-app (412 files, 24,891 lines)
|
|
36
|
+
Stack: React 19 · TypeScript · Vite · TailwindCSS
|
|
37
|
+
|
|
38
|
+
⚠️ BLIND SPOTS:
|
|
39
|
+
→ [12x, trust 92] async_without_trycatch:12/15
|
|
40
|
+
→ [8x, trust 88] chained_property_access:8/8
|
|
41
|
+
|
|
42
|
+
🎯 LAST SESSION
|
|
43
|
+
Tool: claude-code (12 min ago)
|
|
44
|
+
Working on: fixing memory leak in webhooks
|
|
45
|
+
Last file: src/webhooks/handler.ts
|
|
46
|
+
Key decision: switched from Map to WeakMap
|
|
47
|
+
|
|
48
|
+
# ─── End @cell Context ───
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**No re-explanation. No context loss. Just works.**
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Quick Start (30 seconds)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Install
|
|
59
|
+
npm i -g fivocell
|
|
60
|
+
|
|
61
|
+
# Setup (one-time, idempotent)
|
|
62
|
+
cell setup
|
|
63
|
+
|
|
64
|
+
# Start daemon
|
|
65
|
+
cell start
|
|
66
|
+
|
|
67
|
+
# Use in any AI tool
|
|
68
|
+
# Type @cell in Cursor, Claude Code, Open Code, Antigravity, Codex, or Windsurf
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
That's it. Your AI now has permanent memory.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## How It Works
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
┌─────────────────────────────────────────┐
|
|
79
|
+
│ Your IDE — Cursor, Claude Code, etc │
|
|
80
|
+
│ Chat types @cell │
|
|
81
|
+
│ ↓ │
|
|
82
|
+
│ AI calls cell_get_context via MCP │
|
|
83
|
+
└──────────────┬──────────────────────────┘
|
|
84
|
+
│ JSON-RPC 2.0
|
|
85
|
+
▼
|
|
86
|
+
┌─────────────────────────────────────────┐
|
|
87
|
+
│ Cell Daemon (port 9876) │
|
|
88
|
+
│ ┌─────────────────────────────────┐ │
|
|
89
|
+
│ │ 96 MCP Tools │ │
|
|
90
|
+
│ │ Context, Scan, Blind Spots, │ │
|
|
91
|
+
│ │ Memory, Session, Branch, etc. │ │
|
|
92
|
+
│ └─────────────────────────────────┘ │
|
|
93
|
+
│ ┌─────────────────────────────────┐ │
|
|
94
|
+
│ │ SQLite DB (100% local) │ │
|
|
95
|
+
│ │ ~/.fivo/cell/cell.db │ │
|
|
96
|
+
│ └─────────────────────────────────┘ │
|
|
97
|
+
└─────────────────────────────────────────┘
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Key insight:** Cell is filesystem-level, not IDE-level. It doesn't care whether you're in Cursor, Claude Code, Vim, or Notepad. Same watcher, same DB, same memory.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Why Cell?
|
|
105
|
+
|
|
106
|
+
### vs Cursor Memory
|
|
107
|
+
| Feature | Cursor | Cell |
|
|
108
|
+
|---------|--------|------|
|
|
109
|
+
| Cross-IDE | ❌ Cursor only | ✅ 6+ IDEs |
|
|
110
|
+
| Blind spots | ❌ | ✅ 31 rule types |
|
|
111
|
+
| Style injection | ❌ | ✅ Auto .cursorrules |
|
|
112
|
+
| Session recovery | ❌ | ✅ Resume across tools |
|
|
113
|
+
| Memory replay | ❌ | ✅ By topic, time, file |
|
|
114
|
+
| Local-first | ❌ Cloud | ✅ 100% local |
|
|
115
|
+
| Open source | ❌ | ✅ Apache 2.0 |
|
|
116
|
+
|
|
117
|
+
### vs Claude Memory
|
|
118
|
+
| Feature | Claude | Cell |
|
|
119
|
+
|---------|--------|------|
|
|
120
|
+
| Cross-IDE | ❌ Claude only | ✅ 6+ IDEs |
|
|
121
|
+
| Persistent | ❌ Session only | ✅ Permanent |
|
|
122
|
+
| Code analysis | ❌ | ✅ AST-based |
|
|
123
|
+
| Blind spots | ❌ | ✅ 31 rules |
|
|
124
|
+
| Style learning | ❌ | ✅ Auto-detect |
|
|
125
|
+
| Local-first | ❌ | ✅ 100% local |
|
|
126
|
+
|
|
127
|
+
### vs GitHub Copilot
|
|
128
|
+
| Feature | Copilot | Cell |
|
|
129
|
+
|---------|---------|------|
|
|
130
|
+
| Context | ❌ Current file only | ✅ Full project |
|
|
131
|
+
| Memory | ❌ None | ✅ Permanent |
|
|
132
|
+
| Cross-tool | ❌ | ✅ 6+ IDEs |
|
|
133
|
+
| Code analysis | ❌ | ✅ AST + patterns |
|
|
134
|
+
| Style matching | ❌ | ✅ Auto-detect |
|
|
135
|
+
| Open source | ❌ | ✅ Apache 2.0 |
|
|
136
|
+
|
|
137
|
+
### vs Custom .cursorrules
|
|
138
|
+
| Feature | .cursorrules | Cell |
|
|
139
|
+
|---------|-------------|------|
|
|
140
|
+
| Auto-generate | ❌ Manual | ✅ Auto from scan |
|
|
141
|
+
| Update | ❌ Manual | ✅ Auto on re-scan |
|
|
142
|
+
| Cross-IDE | ❌ | ✅ All tools |
|
|
143
|
+
| Blind spots | ❌ | ✅ 31 rules |
|
|
144
|
+
| Memory | ❌ | ✅ Permanent |
|
|
145
|
+
| Session recovery | ❌ | ✅ Resume |
|
|
146
|
+
|
|
147
|
+
**Bottom line:** Other tools give you a chat. Cell gives you a **brain**.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Features (What Cell Actually Does)
|
|
152
|
+
|
|
153
|
+
### 🔍 Code Intelligence
|
|
154
|
+
- **Blind Spot Scanner** — 31 rule types (async errors, N+1 queries, deep nesting, missing null checks)
|
|
155
|
+
- **Style Detection** — Auto-detect quotes, semicolons, naming, indentation, async patterns
|
|
156
|
+
- **Knowledge Graph** — File dependencies, blast radius, tech proficiency
|
|
157
|
+
- **Project DNA** — Architecture detection, framework identification, conventions
|
|
158
|
+
|
|
159
|
+
### 🧠 Memory System
|
|
160
|
+
- **Permanent Memory** — Decisions, errors, fixes, sessions stored in SQLite
|
|
161
|
+
- **Session Recovery** — Resume where you left off across tools
|
|
162
|
+
- **Memory Replay** — Replay engineering history by topic, time, or file
|
|
163
|
+
- **Handoff System** — Current status, completed work, pending tasks
|
|
164
|
+
|
|
165
|
+
### 🔗 Cross-Tool Continuity
|
|
166
|
+
- **@cell Context** — Inject full project context into any AI tool
|
|
167
|
+
- **6+ IDE Support** — Cursor, Claude Code, Open Code, Antigravity, Codex, Windsurf
|
|
168
|
+
- **Same DB** — All tools share one memory
|
|
169
|
+
- **Same Watcher** — Filesystem-level, not IDE-level
|
|
170
|
+
|
|
171
|
+
### 📊 Intelligence
|
|
172
|
+
- **Predictive Engine** — Repeat mistakes, decision regret, energy warnings
|
|
173
|
+
- **CI Integration** — Build status, test results, deploy tracking
|
|
174
|
+
- **Branch Context** — Per-branch memory, CI risk correlation
|
|
175
|
+
- **Weekly Reports** — Activity breakdown, decisions, errors, fixes
|
|
176
|
+
|
|
177
|
+
### 🛠️ Developer Tools
|
|
178
|
+
- **Doctor** — Health check with severity levels (🔴/🟡/✅)
|
|
179
|
+
- **Verify** — Data integrity check across all subsystems
|
|
180
|
+
- **Focus Report** — Active, stalled, abandoned projects
|
|
181
|
+
- **Evolution Map** — Skill progression, project history
|
|
182
|
+
|
|
183
|
+
### 🔒 Privacy
|
|
184
|
+
- **100% Local** — Code never leaves your machine
|
|
185
|
+
- **No Telemetry** — Zero tracking, zero analytics
|
|
186
|
+
- **Apache 2.0** — Free forever, no restrictions
|
|
187
|
+
- **Encrypted Storage** — AES-256-GCM for sensitive data
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Commands Reference
|
|
192
|
+
|
|
193
|
+
### Core (Daily Use)
|
|
194
|
+
| Command | What It Does | When |
|
|
195
|
+
|---------|-------------|------|
|
|
196
|
+
| `cell setup` | One-time project setup | First time only |
|
|
197
|
+
| `cell scan` | Analyze codebase | After major changes |
|
|
198
|
+
| `cell context` | Get @cell context | Every AI query |
|
|
199
|
+
| `cell blindspots` | Show code issues | Before commits |
|
|
200
|
+
| `cell watch start` | Track file changes | Always running |
|
|
201
|
+
| `cell bridge start` | Connect to IDE | When using IDE |
|
|
202
|
+
| `cell continue` | Resume last session | Start of day |
|
|
203
|
+
| `cell doctor` | Health check | Weekly |
|
|
204
|
+
|
|
205
|
+
### Memory
|
|
206
|
+
| Command | What It Does |
|
|
207
|
+
|---------|-------------|
|
|
208
|
+
| `cell memory` | Memory stats |
|
|
209
|
+
| `cell memory search <query>` | Search memory |
|
|
210
|
+
| `cell memory doctor` | Memory health |
|
|
211
|
+
| `cell handoff` | View/create handoff |
|
|
212
|
+
| `cell replay` | Replay history |
|
|
213
|
+
|
|
214
|
+
### Branch & Team
|
|
215
|
+
| Command | What It Does |
|
|
216
|
+
|---------|-------------|
|
|
217
|
+
| `cell branches` | List branches |
|
|
218
|
+
| `cell switch-back <branch>` | Restore branch context |
|
|
219
|
+
| `cell lessons` | Engineering lessons |
|
|
220
|
+
| `cell team` | Team intelligence |
|
|
221
|
+
| `cell community` | Community patterns |
|
|
222
|
+
|
|
223
|
+
### Intelligence
|
|
224
|
+
| Command | What It Does |
|
|
225
|
+
|---------|-------------|
|
|
226
|
+
| `cell predict` | Get warnings |
|
|
227
|
+
| `cell evolution` | Project evolution |
|
|
228
|
+
| `cell focus` | Active/stalled/abandoned |
|
|
229
|
+
| `cell why <topic>` | Search decisions |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Supported IDEs
|
|
234
|
+
|
|
235
|
+
| IDE | Status | How to Connect |
|
|
236
|
+
|-----|--------|---------------|
|
|
237
|
+
| Cursor | ✅ | `cell mcp-config` |
|
|
238
|
+
| Claude Code | ✅ | `cell mcp-config` |
|
|
239
|
+
| Open Code | ✅ | `cell mcp-config` |
|
|
240
|
+
| Antigravity | ✅ | `cell mcp-config` |
|
|
241
|
+
| Codex | ✅ | `cell mcp-config` |
|
|
242
|
+
| Windsurf | ✅ | `cell mcp-config` |
|
|
243
|
+
| VSCode | ⚠️ | Extension available |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Architecture
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
~/.fivo/cell/
|
|
251
|
+
├── cell.db — SQLite (all persistent data)
|
|
252
|
+
├── daemon.log — daemon output
|
|
253
|
+
├── daemon.pid — process tracking
|
|
254
|
+
└── personal/
|
|
255
|
+
└── insights/ — saved AI analysis
|
|
256
|
+
|
|
257
|
+
.cell/
|
|
258
|
+
├── personal/ — profile, style, errors, decisions
|
|
259
|
+
├── team/ — members, shared patterns
|
|
260
|
+
├── community/ — aggregate patterns, benchmarks
|
|
261
|
+
├── memory/
|
|
262
|
+
│ ├── archive/ — encrypted long-term storage
|
|
263
|
+
│ ├── blobs/ — content-addressed dedup
|
|
264
|
+
│ ├── context/ — short, full, last-session
|
|
265
|
+
│ ├── patterns/ — code, error, fix, architecture
|
|
266
|
+
│ └── summaries/ — daily, weekly, monthly
|
|
267
|
+
└── handoff/
|
|
268
|
+
├── current.md — active handoff
|
|
269
|
+
└── history/ — past handoffs
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Privacy First
|
|
275
|
+
|
|
276
|
+
- **100% local** — code never leaves your machine
|
|
277
|
+
- **No telemetry** — zero tracking, zero analytics
|
|
278
|
+
- **No cloud** — all data on your device
|
|
279
|
+
- **Apache 2.0** — free forever, no restrictions
|
|
280
|
+
- **Encrypted storage** — AES-256-GCM for sensitive data
|
|
281
|
+
- **No browser sniffer, clipboard tracking, or keystroke logging** — permanently excluded
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Community
|
|
286
|
+
|
|
287
|
+
- **GitHub:** [github.com/itsvinsoni/fivocell](https://github.com/itsvinsoni/fivocell)
|
|
288
|
+
- **npm:** [npmjs.com/package/fivocell](https://www.npmjs.com/package/fivocell)
|
|
289
|
+
- **Issues:** [GitHub Issues](https://github.com/itsvinsoni/fivocell/issues)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Contributing
|
|
294
|
+
|
|
295
|
+
1. Fork the repository
|
|
296
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
297
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
298
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
299
|
+
5. Open a Pull Request
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## License
|
|
304
|
+
|
|
305
|
+
Apache 2.0 — Free forever. No restrictions for individual use.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
**Git stores code. Cell stores engineering experience.**
|
|
310
|
+
|
|
311
|
+
*Your AI forgets. Cell doesn't.* 🚀
|
|
@@ -58,7 +58,7 @@ describe('CLI regression — bin entrypoint', () => {
|
|
|
58
58
|
encoding: 'utf8',
|
|
59
59
|
timeout: 10000,
|
|
60
60
|
});
|
|
61
|
-
expect(out).toContain('
|
|
61
|
+
expect(out).toContain('FivoCell');
|
|
62
62
|
expect(out).toContain('cell setup');
|
|
63
63
|
expect(out).toContain('cell doctor');
|
|
64
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-regression.test.js","sourceRoot":"","sources":["../../src/__tests__/cli-regression.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AAEzC,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAE7D,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,SAAS,OAAO,aAAa,EAAE;YAClD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;YACrC,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,SAAS,OAAO,QAAQ,EAAE;YAC7C,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;YACrC,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"cli-regression.test.js","sourceRoot":"","sources":["../../src/__tests__/cli-regression.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teach-context.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/teach-context.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const teach_context_1 = require("../walls/06-memory/teach/teach-context");
|
|
4
|
+
const teach_store_1 = require("../walls/06-memory/teach/teach-store");
|
|
5
|
+
const database_1 = require("../walls/06-memory/database/database");
|
|
6
|
+
describe('Teach Context', () => {
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
(0, database_1.getDb)();
|
|
9
|
+
});
|
|
10
|
+
afterEach(() => {
|
|
11
|
+
(0, teach_store_1.deleteProfile)();
|
|
12
|
+
});
|
|
13
|
+
it('generates context string from profile', () => {
|
|
14
|
+
(0, teach_store_1.saveProfileSection)('coding_style', '1. Minimal changes', { minimal_changes: 'Minimal changes' }, 85);
|
|
15
|
+
(0, teach_store_1.saveProfileSection)('hates', '1. No refactors', { no_refactors: 'No refactors' }, 85);
|
|
16
|
+
const source = (0, teach_context_1.getProfileForContext)();
|
|
17
|
+
expect(source).not.toBeNull();
|
|
18
|
+
expect(source.type).toBe('developer_profile');
|
|
19
|
+
expect(source.importance).toBe(85);
|
|
20
|
+
expect(source.data).toContain('Developer Profile:');
|
|
21
|
+
expect(source.data).toContain('Coding Style: Minimal changes');
|
|
22
|
+
expect(source.data).toContain('Hates: No refactors');
|
|
23
|
+
});
|
|
24
|
+
it('returns null when no profile', () => {
|
|
25
|
+
const source = (0, teach_context_1.getProfileForContext)();
|
|
26
|
+
expect(source).toBeNull();
|
|
27
|
+
});
|
|
28
|
+
it('returns null for empty profile', () => {
|
|
29
|
+
const source = (0, teach_context_1.getProfileForContext)();
|
|
30
|
+
expect(source).toBeNull();
|
|
31
|
+
});
|
|
32
|
+
it('has correct importance level', () => {
|
|
33
|
+
(0, teach_store_1.saveProfileSection)('coding_style', 'Test', { test: 'Test' }, 85);
|
|
34
|
+
const source = (0, teach_context_1.getProfileForContext)();
|
|
35
|
+
expect(source.importance).toBe(85);
|
|
36
|
+
});
|
|
37
|
+
it('has correct type and reason', () => {
|
|
38
|
+
(0, teach_store_1.saveProfileSection)('coding_style', 'Test', { test: 'Test' }, 85);
|
|
39
|
+
const source = (0, teach_context_1.getProfileForContext)();
|
|
40
|
+
expect(source.type).toBe('developer_profile');
|
|
41
|
+
expect(source.reason).toBe('developer identity and preferences');
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=teach-context.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teach-context.test.js","sourceRoot":"","sources":["../../src/__tests__/teach-context.test.ts"],"names":[],"mappings":";;AAAA,0EAA8E;AAC9E,sEAAyF;AACzF,mEAA6D;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAA,gBAAK,GAAE,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAA,2BAAa,GAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,IAAA,gCAAkB,EAAC,cAAc,EAAE,oBAAoB,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QACrG,IAAA,gCAAkB,EAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG,IAAA,oCAAoB,GAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACrD,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAChE,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,IAAA,oCAAoB,GAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,IAAA,oCAAoB,GAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,IAAA,gCAAkB,EAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAA,oCAAoB,GAAE,CAAC;QACtC,MAAM,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,IAAA,gCAAkB,EAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAA,oCAAoB,GAAE,CAAC;QACtC,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teach-parser.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/teach-parser.test.ts"],"names":[],"mappings":""}
|