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.
Files changed (108) hide show
  1. package/README.md +311 -197
  2. package/dist/__tests__/cli-regression.test.js +1 -1
  3. package/dist/__tests__/cli-regression.test.js.map +1 -1
  4. package/dist/__tests__/teach-context.test.d.ts +2 -0
  5. package/dist/__tests__/teach-context.test.d.ts.map +1 -0
  6. package/dist/__tests__/teach-context.test.js +44 -0
  7. package/dist/__tests__/teach-context.test.js.map +1 -0
  8. package/dist/__tests__/teach-parser.test.d.ts +2 -0
  9. package/dist/__tests__/teach-parser.test.d.ts.map +1 -0
  10. package/dist/__tests__/teach-parser.test.js +56 -0
  11. package/dist/__tests__/teach-parser.test.js.map +1 -0
  12. package/dist/__tests__/teach-store.test.d.ts +2 -0
  13. package/dist/__tests__/teach-store.test.d.ts.map +1 -0
  14. package/dist/__tests__/teach-store.test.js +68 -0
  15. package/dist/__tests__/teach-store.test.js.map +1 -0
  16. package/dist/__tests__/vibe-engine.test.d.ts +2 -0
  17. package/dist/__tests__/vibe-engine.test.d.ts.map +1 -0
  18. package/dist/__tests__/vibe-engine.test.js +132 -0
  19. package/dist/__tests__/vibe-engine.test.js.map +1 -0
  20. package/dist/walls/01-context/context/prompt-builder.d.ts +1 -0
  21. package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
  22. package/dist/walls/01-context/context/prompt-builder.js +15 -1
  23. package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
  24. package/dist/walls/06-memory/archive/blob-vault.d.ts.map +1 -1
  25. package/dist/walls/06-memory/archive/blob-vault.js +8 -9
  26. package/dist/walls/06-memory/archive/blob-vault.js.map +1 -1
  27. package/dist/walls/06-memory/archive/memory-archive.d.ts.map +1 -1
  28. package/dist/walls/06-memory/archive/memory-archive.js +32 -22
  29. package/dist/walls/06-memory/archive/memory-archive.js.map +1 -1
  30. package/dist/walls/06-memory/privacy/key-provider.d.ts +19 -0
  31. package/dist/walls/06-memory/privacy/key-provider.d.ts.map +1 -1
  32. package/dist/walls/06-memory/privacy/key-provider.js +52 -0
  33. package/dist/walls/06-memory/privacy/key-provider.js.map +1 -1
  34. package/dist/walls/06-memory/retrieval/context-pipeline.d.ts.map +1 -1
  35. package/dist/walls/06-memory/retrieval/context-pipeline.js +9 -0
  36. package/dist/walls/06-memory/retrieval/context-pipeline.js.map +1 -1
  37. package/dist/walls/06-memory/stores/sync-engine.d.ts.map +1 -1
  38. package/dist/walls/06-memory/stores/sync-engine.js +56 -49
  39. package/dist/walls/06-memory/stores/sync-engine.js.map +1 -1
  40. package/dist/walls/06-memory/teach/teach-context.d.ts +8 -0
  41. package/dist/walls/06-memory/teach/teach-context.d.ts.map +1 -0
  42. package/dist/walls/06-memory/teach/teach-context.js +25 -0
  43. package/dist/walls/06-memory/teach/teach-context.js.map +1 -0
  44. package/dist/walls/06-memory/teach/teach-parser.d.ts +6 -0
  45. package/dist/walls/06-memory/teach/teach-parser.d.ts.map +1 -0
  46. package/dist/walls/06-memory/teach/teach-parser.js +42 -0
  47. package/dist/walls/06-memory/teach/teach-parser.js.map +1 -0
  48. package/dist/walls/06-memory/teach/teach-sections.d.ts +10 -0
  49. package/dist/walls/06-memory/teach/teach-sections.d.ts.map +1 -0
  50. package/dist/walls/06-memory/teach/teach-sections.js +67 -0
  51. package/dist/walls/06-memory/teach/teach-sections.js.map +1 -0
  52. package/dist/walls/06-memory/teach/teach-store.d.ts +25 -0
  53. package/dist/walls/06-memory/teach/teach-store.d.ts.map +1 -0
  54. package/dist/walls/06-memory/teach/teach-store.js +95 -0
  55. package/dist/walls/06-memory/teach/teach-store.js.map +1 -0
  56. package/dist/walls/06-memory/vibe/vibe-cli.d.ts +2 -0
  57. package/dist/walls/06-memory/vibe/vibe-cli.d.ts.map +1 -0
  58. package/dist/walls/06-memory/vibe/vibe-cli.js +217 -0
  59. package/dist/walls/06-memory/vibe/vibe-cli.js.map +1 -0
  60. package/dist/walls/06-memory/vibe/vibe-confidence.d.ts +24 -0
  61. package/dist/walls/06-memory/vibe/vibe-confidence.d.ts.map +1 -0
  62. package/dist/walls/06-memory/vibe/vibe-confidence.js +91 -0
  63. package/dist/walls/06-memory/vibe/vibe-confidence.js.map +1 -0
  64. package/dist/walls/06-memory/vibe/vibe-context.d.ts +8 -0
  65. package/dist/walls/06-memory/vibe/vibe-context.d.ts.map +1 -0
  66. package/dist/walls/06-memory/vibe/vibe-context.js +88 -0
  67. package/dist/walls/06-memory/vibe/vibe-context.js.map +1 -0
  68. package/dist/walls/06-memory/vibe/vibe-engine.d.ts +38 -0
  69. package/dist/walls/06-memory/vibe/vibe-engine.d.ts.map +1 -0
  70. package/dist/walls/06-memory/vibe/vibe-engine.js +587 -0
  71. package/dist/walls/06-memory/vibe/vibe-engine.js.map +1 -0
  72. package/dist/walls/06-memory/vibe/vibe-signals.d.ts +24 -0
  73. package/dist/walls/06-memory/vibe/vibe-signals.d.ts.map +1 -0
  74. package/dist/walls/06-memory/vibe/vibe-signals.js +138 -0
  75. package/dist/walls/06-memory/vibe/vibe-signals.js.map +1 -0
  76. package/dist/walls/07-runtime/cli/cli.js +17 -0
  77. package/dist/walls/07-runtime/cli/cli.js.map +1 -1
  78. package/dist/walls/07-runtime/cli/commands/branch.js +6 -6
  79. package/dist/walls/07-runtime/cli/commands/branch.js.map +1 -1
  80. package/dist/walls/07-runtime/cli/commands/help.d.ts.map +1 -1
  81. package/dist/walls/07-runtime/cli/commands/help.js +14 -14
  82. package/dist/walls/07-runtime/cli/commands/help.js.map +1 -1
  83. package/dist/walls/07-runtime/cli/commands/memory.js +5 -5
  84. package/dist/walls/07-runtime/cli/commands/memory.js.map +1 -1
  85. package/dist/walls/07-runtime/cli/commands/scan.d.ts.map +1 -1
  86. package/dist/walls/07-runtime/cli/commands/scan.js +39 -20
  87. package/dist/walls/07-runtime/cli/commands/scan.js.map +1 -1
  88. package/dist/walls/07-runtime/cli/commands/session.d.ts.map +1 -1
  89. package/dist/walls/07-runtime/cli/commands/session.js +2 -1
  90. package/dist/walls/07-runtime/cli/commands/session.js.map +1 -1
  91. package/dist/walls/07-runtime/cli/commands/setup.js +2 -2
  92. package/dist/walls/07-runtime/cli/commands/setup.js.map +1 -1
  93. package/dist/walls/07-runtime/cli/commands/status.js +7 -7
  94. package/dist/walls/07-runtime/cli/commands/status.js.map +1 -1
  95. package/dist/walls/07-runtime/cli/commands/sync.js +1 -1
  96. package/dist/walls/07-runtime/cli/commands/sync.js.map +1 -1
  97. package/dist/walls/07-runtime/cli/commands/teach.d.ts +3 -0
  98. package/dist/walls/07-runtime/cli/commands/teach.d.ts.map +1 -0
  99. package/dist/walls/07-runtime/cli/commands/teach.js +203 -0
  100. package/dist/walls/07-runtime/cli/commands/teach.js.map +1 -0
  101. package/dist/walls/07-runtime/daemon/routes/session.d.ts.map +1 -1
  102. package/dist/walls/07-runtime/daemon/routes/session.js +4 -3
  103. package/dist/walls/07-runtime/daemon/routes/session.js.map +1 -1
  104. package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
  105. package/dist/walls/07-runtime/daemon/server.js +3 -0
  106. package/dist/walls/07-runtime/daemon/server.js.map +1 -1
  107. package/package.json +1 -1
  108. package/scripts/deep-audit.js +103 -0
package/README.md CHANGED
@@ -1,197 +1,311 @@
1
- # FIVO Cell
2
-
3
- **Git stores code. Cell stores engineering experience.**
4
-
5
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue)](LICENSE)
6
- [![Platform](https://img.shields.io/badge/Mac%20%7C%20Windows%20%7C%20Linux-supported-lightgrey)]()
7
- [![Node](https://img.shields.io/badge/Node-%3E%3D18-green)]()
8
-
9
- ---
10
-
11
- ## The problem
12
-
13
- You work in Cursor. Then Claude Code. Then Open Code. Then Antigravity.
14
- Every time you open a new tool, **you re-explain** your stack, your style,
15
- what you were working on, the bug you just fixed.
16
-
17
- Cell sits between you and your tools. It remembers everything.
18
-
19
- ```
20
- $ @cell
21
-
22
- ━━━━━━━━━━━━━━━━━━━━━━━━━
23
- CELL CONTEXT — my-saas-app
24
- ━━━━━━━━━━━━━━━━━━━━━━━━━
25
-
26
- PROJECT
27
- Project: my-saas-app (412 files, 24,891 lines)
28
- Stack: Quotes: single · Semicolons: always · Indent: 2-spaces · Async: uses-async · Tests: jest
29
-
30
- BLIND SPOTS:
31
- -> [12x, trust 92] async_without_trycatch:12/15
32
- -> [8x, trust 88] chained_property_access:8/8
33
-
34
- LAST SESSION
35
- Tool: claude-code (12 min ago)
36
- Working on: fixing memory leak in webhooks
37
- Last file: src/webhooks/handler.ts
38
- Key decision: switched from Map to WeakMap for handler registry
39
-
40
- # ─── End @cell Context ───
41
- ```
42
-
43
- **Cell remembers. No need to re-explain.**
44
-
45
- ---
46
-
47
- ## Install
48
-
49
- ```bash
50
- npm i -g fivocell
51
- cell setup # one-time project setup (scan + watcher + MCP)
52
- cell start # start daemon + MCP server (port 9876)
53
- cell mcp-config # auto-register MCP in Cursor/Antigravity/Codex/OpenCode
54
- ```
55
-
56
- That's it. 30 seconds.
57
-
58
- ---
59
-
60
- ## How it works
61
-
62
- Cell runs an MCP server on `localhost:9876` with **67 registered tools** (35 fully working, 12 partial). Every supported
63
- IDE (Cursor, Claude Code, Open Code, Antigravity, Codex) connects to the same
64
- daemon, the same SQLite DB, the same memory.
65
-
66
- ```
67
- ┌──────────────────────────────────────────┐
68
- │ Your IDE Cursor, Claude Code, etc │
69
- │ Chat types @cell │
70
- │ ↓ │
71
- AI calls cell_get_context via MCP │
72
- └──────────────┬───────────────────────────┘
73
- │ JSON-RPC
74
-
75
- ┌──────────────────────────────────────────┐
76
- │ Cell Daemon (port 9876) │
77
- │ ┌──────────────────────────────────┐ │
78
- │ │ 67 MCP Tools (35 working) │ │
79
- context, scan, blind spots, │
80
- team, community, watcher, etc.
81
- └──────────────────────────────────┘
82
- ┌──────────────────────────────────┐
83
- │ │ SQLite DB │ │
84
- │ ~/.fivo/cell/cell.db │ │
85
- │ └──────────────────────────────────┘ │
86
- └──────────────────────────────────────────┘
87
- ```
88
-
89
- ---
90
-
91
- ## Commands
92
-
93
- | Command | Does |
94
- |---------|------|
95
- | `cell setup` | One-time project setup: scan + watcher + MCP (idempotent) |
96
- | `cell start` | Start daemon + MCP (port 9876) |
97
- | `cell stop` | Stop daemon cleanly |
98
- | `cell doctor` | Health check — diagnose what's missing |
99
- | `cell --version` | Print version + daemon status |
100
- | `cell scan` | Deep scan codebase + build all layers |
101
- | `cell analyze` | AI analysis prompts from scan data |
102
- | `cell status` | Full dashboard: profile, git intelligence, predictions |
103
- | `cell session` | Last file touched + patterns |
104
- | `cell decisions` | Recent decisions with verdict |
105
- | `cell context [--short\|--full]` | Inject @cell context block for IDEs |
106
- | `cell blindspots [--top N]` | Scan for blind spots with priority ranking |
107
- | `cell focus [dir]` | Focus report — active/stalled/abandoned projects |
108
- | `cell why <topic>` | Search decisions by topic across all tables |
109
- | `cell lessons [topic]` | Engineering lessons from failure patterns |
110
- | `cell evolution [--stack]` | Project evolution map + skill progression |
111
- | `cell switch-back <branch>` | Restore branch context |
112
- | `cell branches` | List known branches with saved context |
113
- | `cell watch start` | Live file watcher |
114
- | `cell bridge start` | WebSocket bridge for live IDE state |
115
- | `cell team` | Git-based team sharing |
116
- | `cell community` | Anonymous patterns + benchmarks |
117
- | `cell replay [--last]` | Replay session timeline |
118
- | `cell continue` | Continue last session |
119
- | `cell mcp-config` | Auto-register cell MCP in all IDEs |
120
- | `cell repl` | Interactive REPL with tab completion |
121
-
122
- ---
123
-
124
- ## What Cell knows (today)
125
-
126
- - **Code Style** — quotes, semicolons, naming, indentation, async patterns
127
- - **Blind Spots** — 31 rule types with line numbers, priority-ranked
128
- - **Live Memory** last file touched, current task, working context
129
- - **Decisions** — accepted/rejected AI suggestions over time, searchable by topic
130
- - **Session Recovery** resume where you left off across tools
131
- - **Memory Replay** replay engineering history by topic, time, or file
132
-
133
- ---
134
-
135
- ## Cross-tool context (the killer feature)
136
-
137
- ```
138
- You work in Cursor:
139
- - Edit src/webhooks/handler.ts
140
- - Accept AI suggestion: "use WeakMap"
141
- - Move to a meeting.
142
-
143
- You open Claude Code:
144
- - Type @cell
145
- - See: "Last session: cursor, 23 min ago. Working on: fixing memory
146
- leak in webhooks. Last file: src/webhooks/handler.ts. Key
147
- decision: switched from Map to WeakMap."
148
-
149
- You open Open Code:
150
- - Type @cell
151
- - Same context. No re-explanation.
152
-
153
- You open Antigravity:
154
- - Same. Same DB, same memory.
155
- ```
156
-
157
- **Cell remembers. No need to re-explain.**
158
-
159
- ---
160
-
161
- ## Privacy
162
-
163
- - **100% local** — code never leaves your machine
164
- - **Apache 2.0** — free forever, no telemetry, no cloud
165
- - **No browser sniffer, clipboard timeline, keystroke tracking, or productivity scoring** — permanently excluded
166
- - Community sharing sends only **abstract pattern types** (zero code, zero filenames, max 300 bytes per payload)
167
- - All data stored in SQLite at `~/.fivo/cell/cell.db` you own it, you can delete it anytime
168
-
169
- ---
170
-
171
- ## Architecture
172
-
173
- ```
174
- ~/.fivo/cell/
175
- ├── cell.db SQLite (all persistent data)
176
- ├── daemon.log — daemon output (replaces stderr)
177
- ├── daemon.pid — process tracking
178
- ├── cell-state.json milestone tracking
179
- ├── work-style.json developer profile
180
- └── personal/
181
- └── insights/ saved AI analysis insights
182
-
183
- .cell/
184
- ├── personal/ profile, style, errors, decisions
185
- ├── team/ members, shared patterns, knowledge map
186
- └── community/ aggregate patterns, benchmarks, shares
187
- ```
188
-
189
- ---
190
-
191
- ## License
192
-
193
- Apache 2.0 Free forever. No restrictions for individual use.
194
-
195
- ---
196
-
197
- **Git stores code. Cell stores engineering experience.**
1
+ # FIVO Cell
2
+
3
+ > **Your AI forgets. Cell doesn't.**
4
+
5
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue)](LICENSE)
6
+ [![Platform](https://img.shields.io/badge/Mac%20%7C%20Windows%20%7C%20Linux-supported-lightgrey)]()
7
+ [![Node](https://img.shields.io/badge/Node-%3E%3D18-green)]()
8
+ [![npm](https://img.shields.io/npm/v/fivocell)](https://www.npmjs.com/package/fivocell)
9
+ [![Tests](https://img.shields.io/badge/Tests-783%2F783-passing-brightgreen)]()
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('FIVO Cell');
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":"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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=teach-context.test.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=teach-parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teach-parser.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/teach-parser.test.ts"],"names":[],"mappings":""}