fivocell 6.2.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 (248) hide show
  1. package/README.md +229 -120
  2. package/dist/__tests__/cell-mirror.test.js +2 -2
  3. package/dist/__tests__/cell-mirror.test.js.map +1 -1
  4. package/dist/__tests__/cli-regression.test.js +1 -1
  5. package/dist/__tests__/cli-regression.test.js.map +1 -1
  6. package/dist/__tests__/teach-context.test.d.ts +2 -0
  7. package/dist/__tests__/teach-context.test.d.ts.map +1 -0
  8. package/dist/__tests__/teach-context.test.js +44 -0
  9. package/dist/__tests__/teach-context.test.js.map +1 -0
  10. package/dist/__tests__/teach-parser.test.d.ts +2 -0
  11. package/dist/__tests__/teach-parser.test.d.ts.map +1 -0
  12. package/dist/__tests__/teach-parser.test.js +56 -0
  13. package/dist/__tests__/teach-parser.test.js.map +1 -0
  14. package/dist/__tests__/teach-store.test.d.ts +2 -0
  15. package/dist/__tests__/teach-store.test.d.ts.map +1 -0
  16. package/dist/__tests__/teach-store.test.js +68 -0
  17. package/dist/__tests__/teach-store.test.js.map +1 -0
  18. package/dist/__tests__/vibe-engine.test.d.ts +2 -0
  19. package/dist/__tests__/vibe-engine.test.d.ts.map +1 -0
  20. package/dist/__tests__/vibe-engine.test.js +132 -0
  21. package/dist/__tests__/vibe-engine.test.js.map +1 -0
  22. package/dist/core/search-engine.d.ts.map +1 -1
  23. package/dist/core/search-engine.js +8 -11
  24. package/dist/core/search-engine.js.map +1 -1
  25. package/dist/walls/01-context/context/prompt-builder.d.ts +1 -0
  26. package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
  27. package/dist/walls/01-context/context/prompt-builder.js +15 -1
  28. package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
  29. package/dist/walls/02-scanner/blindspots/code-scanner.d.ts +11 -0
  30. package/dist/walls/02-scanner/blindspots/code-scanner.d.ts.map +1 -1
  31. package/dist/walls/02-scanner/blindspots/code-scanner.js +63 -0
  32. package/dist/walls/02-scanner/blindspots/code-scanner.js.map +1 -1
  33. package/dist/walls/03-knowledge/decisions/branch-snapshot.d.ts +14 -0
  34. package/dist/walls/03-knowledge/decisions/branch-snapshot.d.ts.map +1 -1
  35. package/dist/walls/03-knowledge/decisions/branch-snapshot.js +88 -21
  36. package/dist/walls/03-knowledge/decisions/branch-snapshot.js.map +1 -1
  37. package/dist/walls/03-knowledge/decisions/failure-memory.d.ts +15 -0
  38. package/dist/walls/03-knowledge/decisions/failure-memory.d.ts.map +1 -1
  39. package/dist/walls/03-knowledge/decisions/failure-memory.js +141 -54
  40. package/dist/walls/03-knowledge/decisions/failure-memory.js.map +1 -1
  41. package/dist/walls/03-knowledge/decisions/predictive-engine.d.ts +8 -0
  42. package/dist/walls/03-knowledge/decisions/predictive-engine.d.ts.map +1 -1
  43. package/dist/walls/03-knowledge/decisions/predictive-engine.js +41 -0
  44. package/dist/walls/03-knowledge/decisions/predictive-engine.js.map +1 -1
  45. package/dist/walls/06-memory/archive/blob-vault.d.ts.map +1 -1
  46. package/dist/walls/06-memory/archive/blob-vault.js +1 -3
  47. package/dist/walls/06-memory/archive/blob-vault.js.map +1 -1
  48. package/dist/walls/06-memory/archive/memory-archive.d.ts.map +1 -1
  49. package/dist/walls/06-memory/archive/memory-archive.js +38 -48
  50. package/dist/walls/06-memory/archive/memory-archive.js.map +1 -1
  51. package/dist/walls/06-memory/mirror/cell-mirror.d.ts +2 -0
  52. package/dist/walls/06-memory/mirror/cell-mirror.d.ts.map +1 -1
  53. package/dist/walls/06-memory/mirror/cell-mirror.js +76 -35
  54. package/dist/walls/06-memory/mirror/cell-mirror.js.map +1 -1
  55. package/dist/walls/06-memory/privacy/key-provider.d.ts +29 -0
  56. package/dist/walls/06-memory/privacy/key-provider.d.ts.map +1 -1
  57. package/dist/walls/06-memory/privacy/key-provider.js +79 -0
  58. package/dist/walls/06-memory/privacy/key-provider.js.map +1 -1
  59. package/dist/walls/06-memory/retrieval/context-pipeline.d.ts +2 -0
  60. package/dist/walls/06-memory/retrieval/context-pipeline.d.ts.map +1 -1
  61. package/dist/walls/06-memory/retrieval/context-pipeline.js +81 -13
  62. package/dist/walls/06-memory/retrieval/context-pipeline.js.map +1 -1
  63. package/dist/walls/06-memory/stores/memory-search.d.ts +9 -0
  64. package/dist/walls/06-memory/stores/memory-search.d.ts.map +1 -1
  65. package/dist/walls/06-memory/stores/memory-search.js +62 -13
  66. package/dist/walls/06-memory/stores/memory-search.js.map +1 -1
  67. package/dist/walls/06-memory/stores/sync-engine.d.ts.map +1 -1
  68. package/dist/walls/06-memory/stores/sync-engine.js +56 -49
  69. package/dist/walls/06-memory/stores/sync-engine.js.map +1 -1
  70. package/dist/walls/06-memory/stores/weekly-report.d.ts +5 -0
  71. package/dist/walls/06-memory/stores/weekly-report.d.ts.map +1 -1
  72. package/dist/walls/06-memory/stores/weekly-report.js +24 -2
  73. package/dist/walls/06-memory/stores/weekly-report.js.map +1 -1
  74. package/dist/walls/06-memory/teach/teach-context.d.ts +8 -0
  75. package/dist/walls/06-memory/teach/teach-context.d.ts.map +1 -0
  76. package/dist/walls/06-memory/teach/teach-context.js +25 -0
  77. package/dist/walls/06-memory/teach/teach-context.js.map +1 -0
  78. package/dist/walls/06-memory/teach/teach-parser.d.ts +6 -0
  79. package/dist/walls/06-memory/teach/teach-parser.d.ts.map +1 -0
  80. package/dist/walls/06-memory/teach/teach-parser.js +42 -0
  81. package/dist/walls/06-memory/teach/teach-parser.js.map +1 -0
  82. package/dist/walls/06-memory/teach/teach-sections.d.ts +10 -0
  83. package/dist/walls/06-memory/teach/teach-sections.d.ts.map +1 -0
  84. package/dist/walls/06-memory/teach/teach-sections.js +67 -0
  85. package/dist/walls/06-memory/teach/teach-sections.js.map +1 -0
  86. package/dist/walls/06-memory/teach/teach-store.d.ts +25 -0
  87. package/dist/walls/06-memory/teach/teach-store.d.ts.map +1 -0
  88. package/dist/walls/06-memory/teach/teach-store.js +95 -0
  89. package/dist/walls/06-memory/teach/teach-store.js.map +1 -0
  90. package/dist/walls/06-memory/vibe/vibe-cli.d.ts +2 -0
  91. package/dist/walls/06-memory/vibe/vibe-cli.d.ts.map +1 -0
  92. package/dist/walls/06-memory/vibe/vibe-cli.js +217 -0
  93. package/dist/walls/06-memory/vibe/vibe-cli.js.map +1 -0
  94. package/dist/walls/06-memory/vibe/vibe-confidence.d.ts +24 -0
  95. package/dist/walls/06-memory/vibe/vibe-confidence.d.ts.map +1 -0
  96. package/dist/walls/06-memory/vibe/vibe-confidence.js +91 -0
  97. package/dist/walls/06-memory/vibe/vibe-confidence.js.map +1 -0
  98. package/dist/walls/06-memory/vibe/vibe-context.d.ts +8 -0
  99. package/dist/walls/06-memory/vibe/vibe-context.d.ts.map +1 -0
  100. package/dist/walls/06-memory/vibe/vibe-context.js +88 -0
  101. package/dist/walls/06-memory/vibe/vibe-context.js.map +1 -0
  102. package/dist/walls/06-memory/vibe/vibe-engine.d.ts +38 -0
  103. package/dist/walls/06-memory/vibe/vibe-engine.d.ts.map +1 -0
  104. package/dist/walls/06-memory/vibe/vibe-engine.js +587 -0
  105. package/dist/walls/06-memory/vibe/vibe-engine.js.map +1 -0
  106. package/dist/walls/06-memory/vibe/vibe-signals.d.ts +24 -0
  107. package/dist/walls/06-memory/vibe/vibe-signals.d.ts.map +1 -0
  108. package/dist/walls/06-memory/vibe/vibe-signals.js +138 -0
  109. package/dist/walls/06-memory/vibe/vibe-signals.js.map +1 -0
  110. package/dist/walls/07-runtime/cli/cli.js +116 -4677
  111. package/dist/walls/07-runtime/cli/cli.js.map +1 -1
  112. package/dist/walls/07-runtime/cli/commands/branch.d.ts +7 -0
  113. package/dist/walls/07-runtime/cli/commands/branch.d.ts.map +1 -0
  114. package/dist/walls/07-runtime/cli/commands/branch.js +169 -0
  115. package/dist/walls/07-runtime/cli/commands/branch.js.map +1 -0
  116. package/dist/walls/07-runtime/cli/commands/ci.d.ts +2 -0
  117. package/dist/walls/07-runtime/cli/commands/ci.d.ts.map +1 -0
  118. package/dist/walls/07-runtime/cli/commands/ci.js +57 -0
  119. package/dist/walls/07-runtime/cli/commands/ci.js.map +1 -0
  120. package/dist/walls/07-runtime/cli/commands/community.d.ts +2 -0
  121. package/dist/walls/07-runtime/cli/commands/community.d.ts.map +1 -0
  122. package/dist/walls/07-runtime/cli/commands/community.js +64 -0
  123. package/dist/walls/07-runtime/cli/commands/community.js.map +1 -0
  124. package/dist/walls/07-runtime/cli/commands/dashboard.d.ts +3 -0
  125. package/dist/walls/07-runtime/cli/commands/dashboard.d.ts.map +1 -0
  126. package/dist/walls/07-runtime/cli/commands/dashboard.js +45 -0
  127. package/dist/walls/07-runtime/cli/commands/dashboard.js.map +1 -0
  128. package/dist/walls/07-runtime/cli/commands/help.d.ts +4 -0
  129. package/dist/walls/07-runtime/cli/commands/help.d.ts.map +1 -0
  130. package/dist/walls/07-runtime/cli/commands/help.js +91 -0
  131. package/dist/walls/07-runtime/cli/commands/help.js.map +1 -0
  132. package/dist/walls/07-runtime/cli/commands/memory.d.ts +5 -0
  133. package/dist/walls/07-runtime/cli/commands/memory.d.ts.map +1 -0
  134. package/dist/walls/07-runtime/cli/commands/memory.js +252 -0
  135. package/dist/walls/07-runtime/cli/commands/memory.js.map +1 -0
  136. package/dist/walls/07-runtime/cli/commands/repl.d.ts +2 -0
  137. package/dist/walls/07-runtime/cli/commands/repl.d.ts.map +1 -0
  138. package/dist/walls/07-runtime/cli/commands/repl.js +63 -0
  139. package/dist/walls/07-runtime/cli/commands/repl.js.map +1 -0
  140. package/dist/walls/07-runtime/cli/commands/scan.d.ts +4 -0
  141. package/dist/walls/07-runtime/cli/commands/scan.d.ts.map +1 -0
  142. package/dist/walls/07-runtime/cli/commands/scan.js +263 -0
  143. package/dist/walls/07-runtime/cli/commands/scan.js.map +1 -0
  144. package/dist/walls/07-runtime/cli/commands/session.d.ts +4 -0
  145. package/dist/walls/07-runtime/cli/commands/session.d.ts.map +1 -0
  146. package/dist/walls/07-runtime/cli/commands/session.js +80 -0
  147. package/dist/walls/07-runtime/cli/commands/session.js.map +1 -0
  148. package/dist/walls/07-runtime/cli/commands/setup.d.ts +4 -0
  149. package/dist/walls/07-runtime/cli/commands/setup.d.ts.map +1 -0
  150. package/dist/walls/07-runtime/cli/commands/setup.js +216 -0
  151. package/dist/walls/07-runtime/cli/commands/setup.js.map +1 -0
  152. package/dist/walls/07-runtime/cli/commands/status.d.ts +4 -0
  153. package/dist/walls/07-runtime/cli/commands/status.d.ts.map +1 -0
  154. package/dist/walls/07-runtime/cli/commands/status.js +352 -0
  155. package/dist/walls/07-runtime/cli/commands/status.js.map +1 -0
  156. package/dist/walls/07-runtime/cli/commands/sync.d.ts +4 -0
  157. package/dist/walls/07-runtime/cli/commands/sync.d.ts.map +1 -0
  158. package/dist/walls/07-runtime/cli/commands/sync.js +116 -0
  159. package/dist/walls/07-runtime/cli/commands/sync.js.map +1 -0
  160. package/dist/walls/07-runtime/cli/commands/teach.d.ts +3 -0
  161. package/dist/walls/07-runtime/cli/commands/teach.d.ts.map +1 -0
  162. package/dist/walls/07-runtime/cli/commands/teach.js +203 -0
  163. package/dist/walls/07-runtime/cli/commands/teach.js.map +1 -0
  164. package/dist/walls/07-runtime/cli/commands/team.d.ts +2 -0
  165. package/dist/walls/07-runtime/cli/commands/team.d.ts.map +1 -0
  166. package/dist/walls/07-runtime/cli/commands/team.js +58 -0
  167. package/dist/walls/07-runtime/cli/commands/team.js.map +1 -0
  168. package/dist/walls/07-runtime/cli/commands/watch.d.ts +4 -0
  169. package/dist/walls/07-runtime/cli/commands/watch.d.ts.map +1 -0
  170. package/dist/walls/07-runtime/cli/commands/watch.js +129 -0
  171. package/dist/walls/07-runtime/cli/commands/watch.js.map +1 -0
  172. package/dist/walls/07-runtime/cli/utils.d.ts +26 -0
  173. package/dist/walls/07-runtime/cli/utils.d.ts.map +1 -0
  174. package/dist/walls/07-runtime/cli/utils.js +217 -0
  175. package/dist/walls/07-runtime/cli/utils.js.map +1 -0
  176. package/dist/walls/07-runtime/daemon/routes/community.d.ts +3 -0
  177. package/dist/walls/07-runtime/daemon/routes/community.d.ts.map +1 -0
  178. package/dist/walls/07-runtime/daemon/routes/community.js +191 -0
  179. package/dist/walls/07-runtime/daemon/routes/community.js.map +1 -0
  180. package/dist/walls/07-runtime/daemon/routes/cost.d.ts +3 -0
  181. package/dist/walls/07-runtime/daemon/routes/cost.d.ts.map +1 -0
  182. package/dist/walls/07-runtime/daemon/routes/cost.js +73 -0
  183. package/dist/walls/07-runtime/daemon/routes/cost.js.map +1 -0
  184. package/dist/walls/07-runtime/daemon/routes/health.d.ts +3 -0
  185. package/dist/walls/07-runtime/daemon/routes/health.d.ts.map +1 -0
  186. package/dist/walls/07-runtime/daemon/routes/health.js +40 -0
  187. package/dist/walls/07-runtime/daemon/routes/health.js.map +1 -0
  188. package/dist/walls/07-runtime/daemon/routes/memory.d.ts +3 -0
  189. package/dist/walls/07-runtime/daemon/routes/memory.d.ts.map +1 -0
  190. package/dist/walls/07-runtime/daemon/routes/memory.js +75 -0
  191. package/dist/walls/07-runtime/daemon/routes/memory.js.map +1 -0
  192. package/dist/walls/07-runtime/daemon/routes/privacy.d.ts +3 -0
  193. package/dist/walls/07-runtime/daemon/routes/privacy.d.ts.map +1 -0
  194. package/dist/walls/07-runtime/daemon/routes/privacy.js +160 -0
  195. package/dist/walls/07-runtime/daemon/routes/privacy.js.map +1 -0
  196. package/dist/walls/07-runtime/daemon/routes/project.d.ts +3 -0
  197. package/dist/walls/07-runtime/daemon/routes/project.d.ts.map +1 -0
  198. package/dist/walls/07-runtime/daemon/routes/project.js +59 -0
  199. package/dist/walls/07-runtime/daemon/routes/project.js.map +1 -0
  200. package/dist/walls/07-runtime/daemon/routes/session.d.ts +3 -0
  201. package/dist/walls/07-runtime/daemon/routes/session.d.ts.map +1 -0
  202. package/dist/walls/07-runtime/daemon/routes/session.js +101 -0
  203. package/dist/walls/07-runtime/daemon/routes/session.js.map +1 -0
  204. package/dist/walls/07-runtime/daemon/routes/signal.d.ts +3 -0
  205. package/dist/walls/07-runtime/daemon/routes/signal.d.ts.map +1 -0
  206. package/dist/walls/07-runtime/daemon/routes/signal.js +60 -0
  207. package/dist/walls/07-runtime/daemon/routes/signal.js.map +1 -0
  208. package/dist/walls/07-runtime/daemon/routes/workflow.d.ts +3 -0
  209. package/dist/walls/07-runtime/daemon/routes/workflow.d.ts.map +1 -0
  210. package/dist/walls/07-runtime/daemon/routes/workflow.js +105 -0
  211. package/dist/walls/07-runtime/daemon/routes/workflow.js.map +1 -0
  212. package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
  213. package/dist/walls/07-runtime/daemon/server.js +22 -0
  214. package/dist/walls/07-runtime/daemon/server.js.map +1 -1
  215. package/package.json +1 -1
  216. package/scripts/deep-audit.js +103 -0
  217. package/dist/walls/03-knowledge/decisions/cross-model-engine.d.ts +0 -38
  218. package/dist/walls/03-knowledge/decisions/cross-model-engine.d.ts.map +0 -1
  219. package/dist/walls/03-knowledge/decisions/cross-model-engine.js +0 -98
  220. package/dist/walls/03-knowledge/decisions/cross-model-engine.js.map +0 -1
  221. package/dist/walls/03-knowledge/decisions/insight-generator.d.ts +0 -58
  222. package/dist/walls/03-knowledge/decisions/insight-generator.d.ts.map +0 -1
  223. package/dist/walls/03-knowledge/decisions/insight-generator.js +0 -314
  224. package/dist/walls/03-knowledge/decisions/insight-generator.js.map +0 -1
  225. package/dist/walls/05-community/stats/community-advanced-engine.d.ts +0 -30
  226. package/dist/walls/05-community/stats/community-advanced-engine.d.ts.map +0 -1
  227. package/dist/walls/05-community/stats/community-advanced-engine.js +0 -103
  228. package/dist/walls/05-community/stats/community-advanced-engine.js.map +0 -1
  229. package/dist/walls/05-community/stats/community-engine.d.ts +0 -62
  230. package/dist/walls/05-community/stats/community-engine.d.ts.map +0 -1
  231. package/dist/walls/05-community/stats/community-engine.js +0 -194
  232. package/dist/walls/05-community/stats/community-engine.js.map +0 -1
  233. package/dist/walls/05-community/stats/community-v2.d.ts +0 -106
  234. package/dist/walls/05-community/stats/community-v2.d.ts.map +0 -1
  235. package/dist/walls/05-community/stats/community-v2.js +0 -378
  236. package/dist/walls/05-community/stats/community-v2.js.map +0 -1
  237. package/dist/walls/08-cloud-bridge/sync/ai-bridge.d.ts +0 -20
  238. package/dist/walls/08-cloud-bridge/sync/ai-bridge.d.ts.map +0 -1
  239. package/dist/walls/08-cloud-bridge/sync/ai-bridge.js +0 -250
  240. package/dist/walls/08-cloud-bridge/sync/ai-bridge.js.map +0 -1
  241. package/dist/walls/08-cloud-bridge/sync/cloud-client.d.ts +0 -40
  242. package/dist/walls/08-cloud-bridge/sync/cloud-client.d.ts.map +0 -1
  243. package/dist/walls/08-cloud-bridge/sync/cloud-client.js +0 -126
  244. package/dist/walls/08-cloud-bridge/sync/cloud-client.js.map +0 -1
  245. package/dist/walls/08-cloud-bridge/sync/cloud-sync.d.ts +0 -66
  246. package/dist/walls/08-cloud-bridge/sync/cloud-sync.d.ts.map +0 -1
  247. package/dist/walls/08-cloud-bridge/sync/cloud-sync.js +0 -328
  248. package/dist/walls/08-cloud-bridge/sync/cloud-sync.js.map +0 -1
package/README.md CHANGED
@@ -1,20 +1,28 @@
1
1
  # FIVO Cell
2
2
 
3
- **Git stores code. Cell stores engineering experience.**
3
+ > **Your AI forgets. Cell doesn't.**
4
4
 
5
5
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue)](LICENSE)
6
6
  [![Platform](https://img.shields.io/badge/Mac%20%7C%20Windows%20%7C%20Linux-supported-lightgrey)]()
7
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)]()
8
10
 
9
11
  ---
10
12
 
11
- ## The problem
13
+ ## The Problem
12
14
 
13
15
  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
16
 
17
- Cell sits between you and your tools. It remembers everything.
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.
18
26
 
19
27
  ```
20
28
  $ @cell
@@ -23,153 +31,216 @@ $ @cell
23
31
  CELL CONTEXT — my-saas-app
24
32
  ━━━━━━━━━━━━━━━━━━━━━━━━━
25
33
 
26
- PROJECT
34
+ 📦 PROJECT
27
35
  Project: my-saas-app (412 files, 24,891 lines)
28
- Stack: Quotes: single · Semicolons: always · Indent: 2-spaces · Async: uses-async · Tests: jest
36
+ Stack: React 19 · TypeScript · Vite · TailwindCSS
29
37
 
30
- BLIND SPOTS:
31
- -> [12x, trust 92] async_without_trycatch:12/15
32
- -> [8x, trust 88] chained_property_access:8/8
38
+ ⚠️ BLIND SPOTS:
39
+ [12x, trust 92] async_without_trycatch:12/15
40
+ [8x, trust 88] chained_property_access:8/8
33
41
 
34
- LAST SESSION
42
+ 🎯 LAST SESSION
35
43
  Tool: claude-code (12 min ago)
36
44
  Working on: fixing memory leak in webhooks
37
45
  Last file: src/webhooks/handler.ts
38
- Key decision: switched from Map to WeakMap for handler registry
46
+ Key decision: switched from Map to WeakMap
39
47
 
40
48
  # ─── End @cell Context ───
41
49
  ```
42
50
 
43
- **Cell remembers. No need to re-explain.**
51
+ **No re-explanation. No context loss. Just works.**
44
52
 
45
53
  ---
46
54
 
47
- ## Install
55
+ ## Quick Start (30 seconds)
48
56
 
49
57
  ```bash
58
+ # Install
50
59
  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
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
54
69
  ```
55
70
 
56
- That's it. 30 seconds.
71
+ That's it. Your AI now has permanent memory.
57
72
 
58
73
  ---
59
74
 
60
- ## How it works
61
-
62
- Cell runs an MCP server on `localhost:9876` with **67 tools**. Every supported
63
- IDE (Cursor, Claude Code, Open Code, Antigravity, Codex) connects to the same
64
- daemon, the same SQLite DB, the same memory.
75
+ ## How It Works
65
76
 
66
77
  ```
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
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
74
85
 
75
- ┌──────────────────────────────────────────┐
76
- Cell Daemon (port 9876) │
77
- ┌──────────────────────────────────┐
78
- 67 MCP Tools
79
- context, scan, blind spots, │
80
- team, community, watcher, etc. │
81
- └──────────────────────────────────┘
82
- ┌──────────────────────────────────┐
83
- │ SQLite DB
84
- │ ~/.fivo/cell/cell.db
85
- └──────────────────────────────────┘
86
- └──────────────────────────────────────────┘
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
+ └─────────────────────────────────────────┘
87
98
  ```
88
99
 
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 |
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.
121
101
 
122
102
  ---
123
103
 
124
- ## What Cell knows
125
-
126
- - **Code Style** — quotes, semicolons, naming, indentation, async patterns
127
- - **Blind Spots** exact counts 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
- - **Engineering Lessons** failure patterns with alternatives, persisted to SQLite
131
- - **Branch Context** save/restore context per git branch
132
- - **Focus** which projects are active, stalled, or abandoned
133
- - **Stack Evolution** track how your stack changes over time
134
- - **Git Intelligence** best work hours, skill levels, bug history
135
- - **Team** knowledge map, bus factor, shared patterns via git
136
- - **Community** — anonymous pattern sharing, aggregate benchmarks
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**.
137
148
 
138
149
  ---
139
150
 
140
- ## Cross-tool context (the killer feature)
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
141
188
 
142
- ```
143
- You work in Cursor:
144
- - Edit src/webhooks/handler.ts
145
- - Accept AI suggestion: "use WeakMap"
146
- - Move to a meeting.
147
-
148
- You open Claude Code:
149
- - Type @cell
150
- - See: "Last session: cursor, 23 min ago. Working on: fixing memory
151
- leak in webhooks. Last file: src/webhooks/handler.ts. Key
152
- decision: switched from Map to WeakMap."
153
-
154
- You open Open Code:
155
- - Type @cell
156
- - Same context. No re-explanation.
157
-
158
- You open Antigravity:
159
- - Same. 67 tools, same DB, same memory.
160
- ```
189
+ ---
161
190
 
162
- **Cell remembers. No need to re-explain.**
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 |
163
230
 
164
231
  ---
165
232
 
166
- ## Privacy
233
+ ## Supported IDEs
167
234
 
168
- - **100% local** code never leaves your machine
169
- - **Apache 2.0** — free forever, no telemetry, no cloud
170
- - **No browser sniffer, clipboard timeline, keystroke tracking, or productivity scoring** — permanently excluded
171
- - Community sharing sends only **abstract pattern types** (zero code, zero filenames, max 300 bytes per payload)
172
- - All data stored in SQLite at `~/.fivo/cell/cell.db` — you own it, you can delete it anytime
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 |
173
244
 
174
245
  ---
175
246
 
@@ -178,21 +249,57 @@ You open Antigravity:
178
249
  ```
179
250
  ~/.fivo/cell/
180
251
  ├── cell.db — SQLite (all persistent data)
181
- ├── daemon.log — daemon output (replaces stderr)
252
+ ├── daemon.log — daemon output
182
253
  ├── daemon.pid — process tracking
183
- ├── cell-state.json — milestone tracking
184
- ├── work-style.json — developer profile
185
254
  └── personal/
186
- └── insights/ — saved AI analysis insights
255
+ └── insights/ — saved AI analysis
187
256
 
188
257
  .cell/
189
258
  ├── personal/ — profile, style, errors, decisions
190
- ├── team/ — members, shared patterns, knowledge map
191
- └── community/ — aggregate patterns, benchmarks, shares
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
192
270
  ```
193
271
 
194
272
  ---
195
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
+
196
303
  ## License
197
304
 
198
305
  Apache 2.0 — Free forever. No restrictions for individual use.
@@ -200,3 +307,5 @@ Apache 2.0 — Free forever. No restrictions for individual use.
200
307
  ---
201
308
 
202
309
  **Git stores code. Cell stores engineering experience.**
310
+
311
+ *Your AI forgets. Cell doesn't.* 🚀
@@ -107,9 +107,9 @@ describe('Cell Mirror', () => {
107
107
  expect(shortContent).toContain('Short Context');
108
108
  expect(shortContent).toContain('Use React');
109
109
  });
110
- it('verifyCellHealth reports issues', () => {
110
+ it('verifyCellHealth reports fresh status for empty project', () => {
111
111
  const health = (0, cell_mirror_1.verifyCellHealth)(TEST_DIR);
112
- expect(health.issues.length).toBeGreaterThan(0);
112
+ expect(health.status).toBe('fresh');
113
113
  expect(health.totalFiles).toBe(0);
114
114
  });
115
115
  it('verifyCellHealth passes after sync', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"cell-mirror.test.js","sourceRoot":"","sources":["../../src/__tests__/cell-mirror.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell-mirror.test.js","sourceRoot":"","sources":["../../src/__tests__/cell-mirror.test.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ describe('CLI regression — bin entrypoint', () => {
58
58
  encoding: 'utf8',
59
59
  timeout: 10000,
60
60
  });
61
- expect(out).toContain('Cell Commands');
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":""}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const teach_parser_1 = require("../walls/06-memory/teach/teach-parser");
4
+ describe('Teach Parser', () => {
5
+ it('parses numbered list', () => {
6
+ const result = (0, teach_parser_1.parseTeachInput)('1. Minimal changes\n2. Strong typing', 'coding_style');
7
+ expect(result.minimal_changes).toBe('Minimal changes');
8
+ expect(result.strong_typing).toBe('Strong typing');
9
+ });
10
+ it('parses bullet points', () => {
11
+ const result = (0, teach_parser_1.parseTeachInput)('- No refactors\n- No new dependencies', 'hates');
12
+ expect(result.no_refactors).toBe('No refactors');
13
+ expect(result.no_new_dependencies).toBe('No new dependencies');
14
+ });
15
+ it('parses free text', () => {
16
+ const result = (0, teach_parser_1.parseTeachInput)('I hate over-engineering', 'hates');
17
+ expect(result.i_hate_over_engineering).toBe('I hate over-engineering');
18
+ });
19
+ it('handles mixed input', () => {
20
+ const result = (0, teach_parser_1.parseTeachInput)('1. First item\n- Second item\nThird item', 'coding_style');
21
+ expect(Object.keys(result).length).toBe(3);
22
+ });
23
+ it('handles empty input', () => {
24
+ const result = (0, teach_parser_1.parseTeachInput)('', 'coding_style');
25
+ expect(Object.keys(result).length).toBe(0);
26
+ });
27
+ it('handles whitespace-only input', () => {
28
+ const result = (0, teach_parser_1.parseTeachInput)(' \n \n ', 'coding_style');
29
+ expect(Object.keys(result).length).toBe(0);
30
+ });
31
+ it('generates snake_case keys', () => {
32
+ const result = (0, teach_parser_1.parseTeachInput)('I love TypeScript', 'coding_style');
33
+ expect(result.i_love_typescript).toBe('I love TypeScript');
34
+ });
35
+ it('converts profile to context string', () => {
36
+ const profile = {
37
+ coding_style: {
38
+ rawText: '1. Minimal changes',
39
+ structuredData: { minimal_changes: 'Minimal changes' },
40
+ },
41
+ hates: {
42
+ rawText: '- No refactors',
43
+ structuredData: { no_refactors: 'No refactors' },
44
+ },
45
+ };
46
+ const result = (0, teach_parser_1.profileToContextString)(profile);
47
+ expect(result).toContain('Developer Profile:');
48
+ expect(result).toContain('Coding Style: Minimal changes');
49
+ expect(result).toContain('Hates: No refactors');
50
+ });
51
+ it('returns empty string for empty profile', () => {
52
+ const result = (0, teach_parser_1.profileToContextString)({});
53
+ expect(result).toBe('');
54
+ });
55
+ });
56
+ //# sourceMappingURL=teach-parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teach-parser.test.js","sourceRoot":"","sources":["../../src/__tests__/teach-parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=teach-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teach-store.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/teach-store.test.ts"],"names":[],"mappings":""}