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
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.doTeach = doTeach;
37
+ exports.doProfile = doProfile;
38
+ const readline = __importStar(require("readline"));
39
+ const utils_1 = require("../utils");
40
+ const teach_sections_1 = require("../../../06-memory/teach/teach-sections");
41
+ const teach_store_1 = require("../../../06-memory/teach/teach-store");
42
+ const teach_parser_1 = require("../../../06-memory/teach/teach-parser");
43
+ function readMultilineInput() {
44
+ return new Promise((resolve) => {
45
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
46
+ const lines = [];
47
+ let emptyCount = 0;
48
+ rl.on('line', (line) => {
49
+ if (line.trim() === '') {
50
+ emptyCount++;
51
+ if (emptyCount >= 1) {
52
+ rl.close();
53
+ resolve(lines);
54
+ }
55
+ }
56
+ else {
57
+ emptyCount = 0;
58
+ lines.push(line);
59
+ }
60
+ });
61
+ rl.on('close', () => resolve(lines));
62
+ });
63
+ }
64
+ async function doTeach(args) {
65
+ (0, utils_1.printHeader)('Cell Teach — Tell Me About Yourself');
66
+ const allSections = teach_sections_1.TEACH_SECTIONS.map((s) => s.key);
67
+ // Check if profile exists
68
+ const exists = (0, teach_store_1.profileExists)();
69
+ const completion = (0, teach_store_1.profileCompletionStatus)(allSections);
70
+ if (exists && !args.includes('--reset')) {
71
+ (0, utils_1.printDim)(`Profile already exists (${completion.done.length}/${completion.total} sections, ${completion.completionPercent}% complete).`);
72
+ (0, utils_1.printDim)('Use --reset to start over, or run `cell profile` to view/edit.');
73
+ console.log();
74
+ return;
75
+ }
76
+ if (args.includes('--reset')) {
77
+ (0, teach_store_1.deleteProfile)();
78
+ (0, utils_1.printSuccess)('Profile cleared. Starting fresh.');
79
+ console.log();
80
+ }
81
+ // Walk through each section
82
+ for (const section of teach_sections_1.TEACH_SECTIONS) {
83
+ console.log();
84
+ console.log(utils_1.C.bold(` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`));
85
+ console.log(utils_1.C.bold(` Section ${teach_sections_1.TEACH_SECTIONS.indexOf(section) + 1}/${teach_sections_1.TEACH_SECTIONS.length}: ${section.title}`));
86
+ console.log(utils_1.C.dim(` ${section.prompt}`));
87
+ console.log(utils_1.C.dim(` Example: ${section.example.split('\n')[0]}`));
88
+ console.log(utils_1.C.dim(' (Press Enter twice to finish, or type "skip" to skip)'));
89
+ console.log();
90
+ const lines = await readMultilineInput();
91
+ if (lines.length === 0 || lines[0] === 'skip') {
92
+ (0, utils_1.printDim)(' Skipped.');
93
+ continue;
94
+ }
95
+ const rawText = lines.join('\n');
96
+ const structured = (0, teach_parser_1.parseTeachInput)(rawText, section.key);
97
+ (0, teach_store_1.saveProfileSection)(section.key, rawText, structured, 85);
98
+ (0, utils_1.printSuccess)(' ✓ Saved.');
99
+ }
100
+ console.log();
101
+ (0, utils_1.printSuccess)('Profile complete! Run `cell profile` to view it.');
102
+ }
103
+ function doProfile(args) {
104
+ const sub = args[1] || '';
105
+ if (sub === 'edit')
106
+ return doProfileEdit(args[2]);
107
+ if (sub === 'export')
108
+ return doProfileExport();
109
+ if (sub === 'reset')
110
+ return doProfileReset();
111
+ // Default: show profile
112
+ doProfileShow();
113
+ }
114
+ function doProfileShow() {
115
+ (0, utils_1.printHeader)('Developer Profile');
116
+ const profile = (0, teach_store_1.getFullProfile)();
117
+ if (Object.keys(profile).length === 0) {
118
+ (0, utils_1.printDim)('No profile yet. Run `cell teach` to create one.');
119
+ return;
120
+ }
121
+ for (const [section, data] of Object.entries(profile)) {
122
+ const sectionName = section.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase());
123
+ console.log(utils_1.C.bold(` ${sectionName}:`));
124
+ const items = Object.values(data.structuredData);
125
+ if (items.length > 0) {
126
+ for (const item of items) {
127
+ console.log(` - ${item}`);
128
+ }
129
+ }
130
+ else {
131
+ (0, utils_1.printDim)(' (empty)');
132
+ }
133
+ console.log();
134
+ }
135
+ }
136
+ function doProfileEdit(sectionKey) {
137
+ if (!sectionKey) {
138
+ (0, utils_1.printWarning)('Usage: cell profile edit <section>');
139
+ (0, utils_1.printDim)('Sections: coding_style, ai_expectations, hates, project_rules, workflow, communication, problems, notes');
140
+ return;
141
+ }
142
+ const section = teach_sections_1.TEACH_SECTIONS.find((s) => s.key === sectionKey);
143
+ if (!section) {
144
+ (0, utils_1.printWarning)(`Unknown section: ${sectionKey}`);
145
+ (0, utils_1.printDim)('Available: coding_style, ai_expectations, hates, project_rules, workflow, communication, problems, notes');
146
+ return;
147
+ }
148
+ const existing = (0, teach_store_1.getProfileSection)(sectionKey);
149
+ if (existing) {
150
+ console.log(utils_1.C.bold(` Current ${section.title}:`));
151
+ const items = Object.values(existing.structuredData);
152
+ for (const item of items) {
153
+ console.log(` - ${item}`);
154
+ }
155
+ console.log();
156
+ }
157
+ console.log(utils_1.C.dim(` Enter new text (or "keep" to keep current):`));
158
+ console.log();
159
+ const lines = [];
160
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
161
+ rl.on('line', (line) => {
162
+ if (line.trim() === 'keep') {
163
+ rl.close();
164
+ (0, utils_1.printDim)(' Kept current.');
165
+ return;
166
+ }
167
+ if (line.trim() === '') {
168
+ rl.close();
169
+ if (lines.length > 0) {
170
+ const rawText = lines.join('\n');
171
+ const structured = (0, teach_parser_1.parseTeachInput)(rawText, sectionKey);
172
+ (0, teach_store_1.saveProfileSection)(sectionKey, rawText, structured, 85);
173
+ (0, utils_1.printSuccess)(' ✓ Updated.');
174
+ }
175
+ return;
176
+ }
177
+ lines.push(line);
178
+ });
179
+ rl.on('close', () => { });
180
+ }
181
+ function doProfileExport() {
182
+ const profile = (0, teach_store_1.getFullProfile)();
183
+ if (Object.keys(profile).length === 0) {
184
+ (0, utils_1.printWarning)('No profile to export. Run `cell teach` first.');
185
+ return;
186
+ }
187
+ const json = JSON.stringify(profile, null, 2);
188
+ console.log(json);
189
+ }
190
+ function doProfileReset() {
191
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
192
+ rl.question('Are you sure you want to reset your profile? (y/n) ', (answer) => {
193
+ rl.close();
194
+ if (answer.toLowerCase() === 'y') {
195
+ (0, teach_store_1.deleteProfile)();
196
+ (0, utils_1.printSuccess)('Profile reset.');
197
+ }
198
+ else {
199
+ (0, utils_1.printDim)('Cancelled.');
200
+ }
201
+ });
202
+ }
203
+ //# sourceMappingURL=teach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teach.js","sourceRoot":"","sources":["../../../../../src/walls/07-runtime/cli/commands/teach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function doTeam(args: string[]): void;
2
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../../../../src/walls/07-runtime/cli/commands/team.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAwD3C"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doTeam = doTeam;
4
+ const utils_1 = require("../utils");
5
+ const project = (0, utils_1.getProjectName)();
6
+ function doTeam(args) {
7
+ (0, utils_1.printHeader)('Cell Team');
8
+ const sub = args[1] || 'dashboard';
9
+ if (sub === 'dashboard') {
10
+ (0, utils_1.httpGet)(`/team/dashboard?project=${project}`).then((result) => {
11
+ if (result.silos) {
12
+ console.log(utils_1.C.bold(' Knowledge Silos:'));
13
+ console.log(` Count: ${result.silos.count}`);
14
+ console.log(` High risk: ${result.silos.high}`);
15
+ }
16
+ if (result.busFactor) {
17
+ console.log(utils_1.C.bold(' Bus Factor:'));
18
+ console.log(` Score: ${result.busFactor.score || 'N/A'}`);
19
+ }
20
+ if (result.health) {
21
+ console.log(utils_1.C.bold(' Team Health:'));
22
+ console.log(` Score: ${result.health.score || 'N/A'}`);
23
+ }
24
+ }).catch(() => (0, utils_1.printWarning)('Failed to get team dashboard'));
25
+ return;
26
+ }
27
+ if (sub === 'health') {
28
+ (0, utils_1.httpGet)(`/team/health?project=${project}`).then((result) => {
29
+ console.log(JSON.stringify(result, null, 2));
30
+ }).catch(() => (0, utils_1.printWarning)('Failed to get team health'));
31
+ return;
32
+ }
33
+ if (sub === 'silos') {
34
+ (0, utils_1.httpGet)('/team/silos').then((result) => {
35
+ if (result.silos && result.silos.length > 0) {
36
+ for (const s of result.silos) {
37
+ console.log(` ${s.name}: ${s.riskLevel} risk`);
38
+ }
39
+ }
40
+ else {
41
+ (0, utils_1.printDim)('No knowledge silos detected');
42
+ }
43
+ }).catch(() => (0, utils_1.printWarning)('Failed to get silos'));
44
+ return;
45
+ }
46
+ if (sub === 'retro') {
47
+ const days = parseInt(args[2] || '14');
48
+ (0, utils_1.httpGet)(`/team/retro?days=${days}&project=${project}`).then((result) => {
49
+ console.log(JSON.stringify(result, null, 2));
50
+ }).catch(() => (0, utils_1.printWarning)('Failed to get retro'));
51
+ return;
52
+ }
53
+ // Default: show dashboard
54
+ (0, utils_1.httpGet)(`/team/dashboard?project=${project}`).then((result) => {
55
+ console.log(JSON.stringify(result, null, 2));
56
+ }).catch(() => (0, utils_1.printWarning)('Failed to get team info'));
57
+ }
58
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../../../../src/walls/07-runtime/cli/commands/team.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function doWatch(args: string[]): void;
2
+ export declare function doBridge(args: string[]): void;
3
+ export declare function doWatchEditor(args: string[]): void;
4
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../../src/walls/07-runtime/cli/commands/watch.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAsD5C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAqD7C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAWlD"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doWatch = doWatch;
4
+ exports.doBridge = doBridge;
5
+ exports.doWatchEditor = doWatchEditor;
6
+ const utils_1 = require("../utils");
7
+ const project = (0, utils_1.getProjectName)();
8
+ function doWatch(args) {
9
+ const sub = args[1] || '';
10
+ if (sub === 'start') {
11
+ const dir = args[2] || process.cwd();
12
+ (0, utils_1.httpPost)('/watch/start', { project, dir }).then((result) => {
13
+ (0, utils_1.printSuccess)(`Watcher started for ${project}`);
14
+ (0, utils_1.printDim)(`Watching: ${dir}`);
15
+ }).catch(() => (0, utils_1.printWarning)('Failed to start watcher'));
16
+ return;
17
+ }
18
+ if (sub === 'stop') {
19
+ (0, utils_1.httpPost)('/watch/stop', { project }).then(() => {
20
+ (0, utils_1.printSuccess)(`Watcher stopped for ${project}`);
21
+ }).catch(() => (0, utils_1.printWarning)('Failed to stop watcher'));
22
+ return;
23
+ }
24
+ if (sub === 'events') {
25
+ const limit = parseInt(args[2] || '20');
26
+ (0, utils_1.httpGet)(`/watch/events?project=${project}&limit=${limit}`).then((result) => {
27
+ if (result.events && result.events.length > 0) {
28
+ for (const e of result.events) {
29
+ console.log(` [${e.eventType}] ${e.filePath}`);
30
+ (0, utils_1.printDim)(` ${e.created_at}`);
31
+ }
32
+ }
33
+ else {
34
+ (0, utils_1.printDim)('No events recorded');
35
+ }
36
+ }).catch(() => (0, utils_1.printWarning)('Failed to get events'));
37
+ return;
38
+ }
39
+ if (sub === 'status') {
40
+ (0, utils_1.httpGet)(`/watch/status?project=${project}`).then((result) => {
41
+ if (result.active) {
42
+ (0, utils_1.printSuccess)(`Watcher active: ${result.dirPath}`);
43
+ (0, utils_1.printDim)(`Events: ${result.eventCount} | Last: ${result.lastEventAt || 'never'}`);
44
+ }
45
+ else {
46
+ (0, utils_1.printDim)('No active watcher');
47
+ }
48
+ }).catch(() => (0, utils_1.printWarning)('Failed to get watcher status'));
49
+ return;
50
+ }
51
+ // Default: show status
52
+ (0, utils_1.httpGet)(`/watch/status?project=${project}`).then((result) => {
53
+ if (result.active) {
54
+ (0, utils_1.printSuccess)(`Watcher active: ${result.dirPath}`);
55
+ }
56
+ else {
57
+ (0, utils_1.printDim)('No active watcher. Start with: cell watch start');
58
+ }
59
+ }).catch(() => (0, utils_1.printWarning)('Failed to get watcher status'));
60
+ }
61
+ function doBridge(args) {
62
+ const sub = args[1] || '';
63
+ if (sub === 'start') {
64
+ (0, utils_1.printHeader)('Cell Bridge');
65
+ try {
66
+ const { startBridge } = require('../../watcher/socket-bridge');
67
+ startBridge();
68
+ (0, utils_1.printSuccess)('Bridge started on port 9878');
69
+ }
70
+ catch (e) {
71
+ (0, utils_1.printWarning)('Failed to start bridge: ' + String(e));
72
+ }
73
+ return;
74
+ }
75
+ if (sub === 'stop') {
76
+ try {
77
+ const { stopBridge } = require('../../watcher/socket-bridge');
78
+ stopBridge();
79
+ (0, utils_1.printSuccess)('Bridge stopped');
80
+ }
81
+ catch (e) {
82
+ (0, utils_1.printWarning)('Failed to stop bridge: ' + String(e));
83
+ }
84
+ return;
85
+ }
86
+ if (sub === 'status') {
87
+ try {
88
+ const { discoverBridgePort } = require('../../watcher/socket-bridge');
89
+ const port = discoverBridgePort();
90
+ if (port) {
91
+ (0, utils_1.printSuccess)(`Bridge running on port ${port}`);
92
+ }
93
+ else {
94
+ (0, utils_1.printDim)('Bridge not running');
95
+ }
96
+ }
97
+ catch {
98
+ (0, utils_1.printDim)('Bridge status unknown');
99
+ }
100
+ return;
101
+ }
102
+ // Default: show status
103
+ try {
104
+ const { discoverBridgePort } = require('../../watcher/socket-bridge');
105
+ const port = discoverBridgePort();
106
+ if (port) {
107
+ (0, utils_1.printSuccess)(`Bridge running on port ${port}`);
108
+ }
109
+ else {
110
+ (0, utils_1.printDim)('Bridge not running. Start with: cell bridge start');
111
+ }
112
+ }
113
+ catch {
114
+ (0, utils_1.printDim)('Bridge status unknown');
115
+ }
116
+ }
117
+ function doWatchEditor(args) {
118
+ (0, utils_1.printHeader)('Cell Watch Editor');
119
+ try {
120
+ const { startEditorMonitor } = require('../../watcher/socket-bridge');
121
+ startEditorMonitor();
122
+ (0, utils_1.printSuccess)('Editor monitor started');
123
+ (0, utils_1.printDim)('Press Ctrl+C to stop');
124
+ }
125
+ catch (e) {
126
+ (0, utils_1.printWarning)('Failed to start editor monitor: ' + String(e));
127
+ }
128
+ }
129
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../../src/walls/07-runtime/cli/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import chalk from 'chalk';
2
+ export declare const DAEMON_URL = "http://localhost:9876";
3
+ export declare const CELL_DIR: string;
4
+ export declare const C: {
5
+ primary: chalk.Chalk;
6
+ success: chalk.Chalk;
7
+ warn: chalk.Chalk;
8
+ dim: chalk.Chalk;
9
+ bold: chalk.Chalk;
10
+ num: (s: string) => string;
11
+ };
12
+ export declare function getProjectName(): string;
13
+ export declare function parseArgs(argv: string[]): string[];
14
+ export declare function getArg(args: string[], name: string): string | null;
15
+ export declare function httpGet(path: string): Promise<any>;
16
+ export declare function httpPost(path: string, body: any): Promise<any>;
17
+ export declare function isPidAlive(pid: number): boolean;
18
+ export declare function isDaemonRunning(): Promise<boolean>;
19
+ export declare function ensureDir(dir: string): void;
20
+ export declare function readJsonSafe(filePath: string): any;
21
+ export declare function printHeader(title: string): void;
22
+ export declare function printSuccess(msg: string): void;
23
+ export declare function printWarning(msg: string): void;
24
+ export declare function printDim(msg: string): void;
25
+ export declare function withError(fn: () => Promise<void>): Promise<void>;
26
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/walls/07-runtime/cli/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAClD,eAAO,MAAM,QAAQ,QAA2C,CAAC;AAIjE,eAAO,MAAM,CAAC;;;;;;aAMH,MAAM;CAChB,CAAC;AAIF,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAID,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmBlD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAID,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAclD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAoB9D;AAID,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK/C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAKxD;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAGlD;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK/C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE1C;AAID,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtE"}