fivocell 1.0.0 → 1.0.2

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 (568) hide show
  1. package/LICENSE +202 -98
  2. package/README.md +418 -180
  3. package/dist/cli.js +698 -80
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/__tests__/ab-test-framework.test.d.ts +2 -0
  6. package/dist/core/__tests__/ab-test-framework.test.d.ts.map +1 -0
  7. package/dist/core/__tests__/ab-test-framework.test.js +43 -0
  8. package/dist/core/__tests__/ab-test-framework.test.js.map +1 -0
  9. package/dist/core/__tests__/ai-memory.test.d.ts +2 -0
  10. package/dist/core/__tests__/ai-memory.test.d.ts.map +1 -0
  11. package/dist/core/__tests__/ai-memory.test.js +143 -0
  12. package/dist/core/__tests__/ai-memory.test.js.map +1 -0
  13. package/dist/core/__tests__/ast-extractor.test.d.ts +2 -0
  14. package/dist/core/__tests__/ast-extractor.test.d.ts.map +1 -0
  15. package/dist/core/__tests__/ast-extractor.test.js +30 -0
  16. package/dist/core/__tests__/ast-extractor.test.js.map +1 -0
  17. package/dist/core/__tests__/build-failure-predictor.test.d.ts +2 -0
  18. package/dist/core/__tests__/build-failure-predictor.test.d.ts.map +1 -0
  19. package/dist/core/__tests__/build-failure-predictor.test.js +76 -0
  20. package/dist/core/__tests__/build-failure-predictor.test.js.map +1 -0
  21. package/dist/core/__tests__/chapter3-verify.test.d.ts +2 -0
  22. package/dist/core/__tests__/chapter3-verify.test.d.ts.map +1 -0
  23. package/dist/core/__tests__/chapter3-verify.test.js +315 -0
  24. package/dist/core/__tests__/chapter3-verify.test.js.map +1 -0
  25. package/dist/core/__tests__/chapter4-hostile.test.d.ts +11 -0
  26. package/dist/core/__tests__/chapter4-hostile.test.d.ts.map +1 -0
  27. package/dist/core/__tests__/chapter4-hostile.test.js +269 -0
  28. package/dist/core/__tests__/chapter4-hostile.test.js.map +1 -0
  29. package/dist/core/__tests__/chapter4-verify.test.d.ts +2 -0
  30. package/dist/core/__tests__/chapter4-verify.test.d.ts.map +1 -0
  31. package/dist/core/__tests__/chapter4-verify.test.js +349 -0
  32. package/dist/core/__tests__/chapter4-verify.test.js.map +1 -0
  33. package/dist/core/__tests__/chapter8-hostile.test.d.ts +2 -0
  34. package/dist/core/__tests__/chapter8-hostile.test.d.ts.map +1 -0
  35. package/dist/core/__tests__/chapter8-hostile.test.js +445 -0
  36. package/dist/core/__tests__/chapter8-hostile.test.js.map +1 -0
  37. package/dist/core/__tests__/chapter9-hostile.test.d.ts +2 -0
  38. package/dist/core/__tests__/chapter9-hostile.test.d.ts.map +1 -0
  39. package/dist/core/__tests__/chapter9-hostile.test.js +783 -0
  40. package/dist/core/__tests__/chapter9-hostile.test.js.map +1 -0
  41. package/dist/core/__tests__/circular-dependency-detector.test.d.ts +2 -0
  42. package/dist/core/__tests__/circular-dependency-detector.test.d.ts.map +1 -0
  43. package/dist/core/__tests__/circular-dependency-detector.test.js +55 -0
  44. package/dist/core/__tests__/circular-dependency-detector.test.js.map +1 -0
  45. package/dist/core/__tests__/community-full.test.d.ts +2 -0
  46. package/dist/core/__tests__/community-full.test.d.ts.map +1 -0
  47. package/dist/core/__tests__/community-full.test.js +70 -0
  48. package/dist/core/__tests__/community-full.test.js.map +1 -0
  49. package/dist/core/__tests__/community-live.test.d.ts +2 -0
  50. package/dist/core/__tests__/community-live.test.d.ts.map +1 -0
  51. package/dist/core/__tests__/community-live.test.js +67 -0
  52. package/dist/core/__tests__/community-live.test.js.map +1 -0
  53. package/dist/core/__tests__/complexity-analyzer.test.d.ts +2 -0
  54. package/dist/core/__tests__/complexity-analyzer.test.d.ts.map +1 -0
  55. package/dist/core/__tests__/complexity-analyzer.test.js +54 -0
  56. package/dist/core/__tests__/complexity-analyzer.test.js.map +1 -0
  57. package/dist/core/__tests__/config-attribution.test.d.ts +2 -0
  58. package/dist/core/__tests__/config-attribution.test.d.ts.map +1 -0
  59. package/dist/core/__tests__/config-attribution.test.js +45 -0
  60. package/dist/core/__tests__/config-attribution.test.js.map +1 -0
  61. package/dist/core/__tests__/conflict-detector.test.d.ts +2 -0
  62. package/dist/core/__tests__/conflict-detector.test.d.ts.map +1 -0
  63. package/dist/core/__tests__/conflict-detector.test.js +120 -0
  64. package/dist/core/__tests__/conflict-detector.test.js.map +1 -0
  65. package/dist/core/__tests__/context-restore.test.d.ts +2 -0
  66. package/dist/core/__tests__/context-restore.test.d.ts.map +1 -0
  67. package/dist/core/__tests__/context-restore.test.js +75 -0
  68. package/dist/core/__tests__/context-restore.test.js.map +1 -0
  69. package/dist/core/__tests__/convention-detector.test.d.ts +2 -0
  70. package/dist/core/__tests__/convention-detector.test.d.ts.map +1 -0
  71. package/dist/core/__tests__/convention-detector.test.js +97 -0
  72. package/dist/core/__tests__/convention-detector.test.js.map +1 -0
  73. package/dist/core/__tests__/cost-optimizer.test.d.ts +1 -0
  74. package/dist/core/__tests__/cost-optimizer.test.d.ts.map +1 -0
  75. package/dist/core/__tests__/cost-optimizer.test.js +92 -0
  76. package/dist/core/__tests__/cost-optimizer.test.js.map +1 -0
  77. package/dist/core/__tests__/cross-domain-projections.test.d.ts +2 -0
  78. package/dist/core/__tests__/cross-domain-projections.test.d.ts.map +1 -0
  79. package/dist/core/__tests__/cross-domain-projections.test.js +36 -0
  80. package/dist/core/__tests__/cross-domain-projections.test.js.map +1 -0
  81. package/dist/core/__tests__/cross-project-sync.test.d.ts +2 -0
  82. package/dist/core/__tests__/cross-project-sync.test.d.ts.map +1 -0
  83. package/dist/core/__tests__/cross-project-sync.test.js +67 -0
  84. package/dist/core/__tests__/cross-project-sync.test.js.map +1 -0
  85. package/dist/core/__tests__/dead-code-detector.test.d.ts +2 -0
  86. package/dist/core/__tests__/dead-code-detector.test.d.ts.map +1 -0
  87. package/dist/core/__tests__/dead-code-detector.test.js +41 -0
  88. package/dist/core/__tests__/dead-code-detector.test.js.map +1 -0
  89. package/dist/core/__tests__/dependency-health-checker.test.d.ts +2 -0
  90. package/dist/core/__tests__/dependency-health-checker.test.d.ts.map +1 -0
  91. package/dist/core/__tests__/dependency-health-checker.test.js +50 -0
  92. package/dist/core/__tests__/dependency-health-checker.test.js.map +1 -0
  93. package/dist/core/__tests__/duplication-detector.test.d.ts +2 -0
  94. package/dist/core/__tests__/duplication-detector.test.d.ts.map +1 -0
  95. package/dist/core/__tests__/duplication-detector.test.js +46 -0
  96. package/dist/core/__tests__/duplication-detector.test.js.map +1 -0
  97. package/dist/core/__tests__/error-predictor.test.d.ts +2 -0
  98. package/dist/core/__tests__/error-predictor.test.d.ts.map +1 -0
  99. package/dist/core/__tests__/error-predictor.test.js +65 -0
  100. package/dist/core/__tests__/error-predictor.test.js.map +1 -0
  101. package/dist/core/__tests__/explainability.test.d.ts +2 -0
  102. package/dist/core/__tests__/explainability.test.d.ts.map +1 -0
  103. package/dist/core/__tests__/explainability.test.js +112 -0
  104. package/dist/core/__tests__/explainability.test.js.map +1 -0
  105. package/dist/core/__tests__/failure-memory.test.d.ts +2 -0
  106. package/dist/core/__tests__/failure-memory.test.d.ts.map +1 -0
  107. package/dist/core/__tests__/failure-memory.test.js +124 -0
  108. package/dist/core/__tests__/failure-memory.test.js.map +1 -0
  109. package/dist/core/__tests__/git-branch-pregenerator.test.d.ts +2 -0
  110. package/dist/core/__tests__/git-branch-pregenerator.test.d.ts.map +1 -0
  111. package/dist/core/__tests__/git-branch-pregenerator.test.js +44 -0
  112. package/dist/core/__tests__/git-branch-pregenerator.test.js.map +1 -0
  113. package/dist/core/__tests__/handoff-detector.test.d.ts +2 -0
  114. package/dist/core/__tests__/handoff-detector.test.d.ts.map +1 -0
  115. package/dist/core/__tests__/handoff-detector.test.js +71 -0
  116. package/dist/core/__tests__/handoff-detector.test.js.map +1 -0
  117. package/dist/core/__tests__/interruption-recovery.test.d.ts +2 -0
  118. package/dist/core/__tests__/interruption-recovery.test.d.ts.map +1 -0
  119. package/dist/core/__tests__/interruption-recovery.test.js +66 -0
  120. package/dist/core/__tests__/interruption-recovery.test.js.map +1 -0
  121. package/dist/core/__tests__/knowledge-graph.test.d.ts +1 -0
  122. package/dist/core/__tests__/knowledge-graph.test.d.ts.map +1 -0
  123. package/dist/core/__tests__/knowledge-graph.test.js +124 -0
  124. package/dist/core/__tests__/knowledge-graph.test.js.map +1 -0
  125. package/dist/core/__tests__/knowledge-silo-detector.test.d.ts +2 -0
  126. package/dist/core/__tests__/knowledge-silo-detector.test.d.ts.map +1 -0
  127. package/dist/core/__tests__/knowledge-silo-detector.test.js +77 -0
  128. package/dist/core/__tests__/knowledge-silo-detector.test.js.map +1 -0
  129. package/dist/core/__tests__/language-switch-assistant.test.d.ts +2 -0
  130. package/dist/core/__tests__/language-switch-assistant.test.d.ts.map +1 -0
  131. package/dist/core/__tests__/language-switch-assistant.test.js +34 -0
  132. package/dist/core/__tests__/language-switch-assistant.test.js.map +1 -0
  133. package/dist/core/__tests__/marketplace.test.d.ts +2 -0
  134. package/dist/core/__tests__/marketplace.test.d.ts.map +1 -0
  135. package/dist/core/__tests__/marketplace.test.js +96 -0
  136. package/dist/core/__tests__/marketplace.test.js.map +1 -0
  137. package/dist/core/__tests__/merge-conflict-predictor.test.d.ts +2 -0
  138. package/dist/core/__tests__/merge-conflict-predictor.test.d.ts.map +1 -0
  139. package/dist/core/__tests__/merge-conflict-predictor.test.js +36 -0
  140. package/dist/core/__tests__/merge-conflict-predictor.test.js.map +1 -0
  141. package/dist/core/__tests__/next-action-predictor.test.d.ts +2 -0
  142. package/dist/core/__tests__/next-action-predictor.test.d.ts.map +1 -0
  143. package/dist/core/__tests__/next-action-predictor.test.js +57 -0
  144. package/dist/core/__tests__/next-action-predictor.test.js.map +1 -0
  145. package/dist/core/__tests__/offline-queue.test.d.ts +2 -0
  146. package/dist/core/__tests__/offline-queue.test.d.ts.map +1 -0
  147. package/dist/core/__tests__/offline-queue.test.js +84 -0
  148. package/dist/core/__tests__/offline-queue.test.js.map +1 -0
  149. package/dist/core/__tests__/organization-memory.test.d.ts +2 -0
  150. package/dist/core/__tests__/organization-memory.test.d.ts.map +1 -0
  151. package/dist/core/__tests__/organization-memory.test.js +89 -0
  152. package/dist/core/__tests__/organization-memory.test.js.map +1 -0
  153. package/dist/core/__tests__/pattern-utils.test.d.ts +2 -0
  154. package/dist/core/__tests__/pattern-utils.test.d.ts.map +1 -0
  155. package/dist/core/__tests__/pattern-utils.test.js +52 -0
  156. package/dist/core/__tests__/pattern-utils.test.js.map +1 -0
  157. package/dist/core/__tests__/performance-predictor.test.d.ts +2 -0
  158. package/dist/core/__tests__/performance-predictor.test.d.ts.map +1 -0
  159. package/dist/core/__tests__/performance-predictor.test.js +60 -0
  160. package/dist/core/__tests__/performance-predictor.test.js.map +1 -0
  161. package/dist/core/__tests__/playbook-generator.test.d.ts +2 -0
  162. package/dist/core/__tests__/playbook-generator.test.d.ts.map +1 -0
  163. package/dist/core/__tests__/playbook-generator.test.js +94 -0
  164. package/dist/core/__tests__/playbook-generator.test.js.map +1 -0
  165. package/dist/core/__tests__/pr-review-assistant.test.d.ts +2 -0
  166. package/dist/core/__tests__/pr-review-assistant.test.d.ts.map +1 -0
  167. package/dist/core/__tests__/pr-review-assistant.test.js +35 -0
  168. package/dist/core/__tests__/pr-review-assistant.test.js.map +1 -0
  169. package/dist/core/__tests__/privacy-manager.test.d.ts +2 -0
  170. package/dist/core/__tests__/privacy-manager.test.d.ts.map +1 -0
  171. package/dist/core/__tests__/privacy-manager.test.js +97 -0
  172. package/dist/core/__tests__/privacy-manager.test.js.map +1 -0
  173. package/dist/core/__tests__/project-dna.test.d.ts +2 -0
  174. package/dist/core/__tests__/project-dna.test.d.ts.map +1 -0
  175. package/dist/core/__tests__/project-dna.test.js +135 -0
  176. package/dist/core/__tests__/project-dna.test.js.map +1 -0
  177. package/dist/core/__tests__/regex-extractor.test.d.ts +2 -0
  178. package/dist/core/__tests__/regex-extractor.test.d.ts.map +1 -0
  179. package/dist/core/__tests__/regex-extractor.test.js +49 -0
  180. package/dist/core/__tests__/regex-extractor.test.js.map +1 -0
  181. package/dist/core/__tests__/reputation.test.d.ts +2 -0
  182. package/dist/core/__tests__/reputation.test.d.ts.map +1 -0
  183. package/dist/core/__tests__/reputation.test.js +100 -0
  184. package/dist/core/__tests__/reputation.test.js.map +1 -0
  185. package/dist/core/__tests__/security-predictor.test.d.ts +2 -0
  186. package/dist/core/__tests__/security-predictor.test.d.ts.map +1 -0
  187. package/dist/core/__tests__/security-predictor.test.js +60 -0
  188. package/dist/core/__tests__/security-predictor.test.js.map +1 -0
  189. package/dist/core/__tests__/signal-capture.test.d.ts +2 -0
  190. package/dist/core/__tests__/signal-capture.test.d.ts.map +1 -0
  191. package/dist/core/__tests__/signal-capture.test.js +98 -0
  192. package/dist/core/__tests__/signal-capture.test.js.map +1 -0
  193. package/dist/core/__tests__/solution-index.test.d.ts +2 -0
  194. package/dist/core/__tests__/solution-index.test.d.ts.map +1 -0
  195. package/dist/core/__tests__/solution-index.test.js +78 -0
  196. package/dist/core/__tests__/solution-index.test.js.map +1 -0
  197. package/dist/core/__tests__/standup-generator.test.d.ts +2 -0
  198. package/dist/core/__tests__/standup-generator.test.d.ts.map +1 -0
  199. package/dist/core/__tests__/standup-generator.test.js +46 -0
  200. package/dist/core/__tests__/standup-generator.test.js.map +1 -0
  201. package/dist/core/__tests__/team-composer.test.d.ts +2 -0
  202. package/dist/core/__tests__/team-composer.test.d.ts.map +1 -0
  203. package/dist/core/__tests__/team-composer.test.js +113 -0
  204. package/dist/core/__tests__/team-composer.test.js.map +1 -0
  205. package/dist/core/__tests__/test-anticipator.test.d.ts +2 -0
  206. package/dist/core/__tests__/test-anticipator.test.d.ts.map +1 -0
  207. package/dist/core/__tests__/test-anticipator.test.js +41 -0
  208. package/dist/core/__tests__/test-anticipator.test.js.map +1 -0
  209. package/dist/core/__tests__/time-saved.test.d.ts +1 -0
  210. package/dist/core/__tests__/time-saved.test.d.ts.map +1 -0
  211. package/dist/core/__tests__/time-saved.test.js +93 -0
  212. package/dist/core/__tests__/time-saved.test.js.map +1 -0
  213. package/dist/core/__tests__/validation-run.test.d.ts +7 -0
  214. package/dist/core/__tests__/validation-run.test.d.ts.map +1 -0
  215. package/dist/core/__tests__/validation-run.test.js +510 -0
  216. package/dist/core/__tests__/validation-run.test.js.map +1 -0
  217. package/dist/core/__tests__/workflow-outcome-graph.test.d.ts +2 -0
  218. package/dist/core/__tests__/workflow-outcome-graph.test.d.ts.map +1 -0
  219. package/dist/core/__tests__/workflow-outcome-graph.test.js +89 -0
  220. package/dist/core/__tests__/workflow-outcome-graph.test.js.map +1 -0
  221. package/dist/core/ai-memory.d.ts +84 -0
  222. package/dist/core/ai-memory.d.ts.map +1 -0
  223. package/dist/core/ai-memory.js +238 -0
  224. package/dist/core/ai-memory.js.map +1 -0
  225. package/dist/core/architecture-engine.d.ts +104 -0
  226. package/dist/core/architecture-engine.d.ts.map +1 -0
  227. package/dist/core/architecture-engine.js +216 -0
  228. package/dist/core/architecture-engine.js.map +1 -0
  229. package/dist/core/ast-differ.d.ts +15 -0
  230. package/dist/core/ast-differ.d.ts.map +1 -0
  231. package/dist/core/ast-differ.js +528 -0
  232. package/dist/core/ast-differ.js.map +1 -0
  233. package/dist/core/ast-extractor.d.ts +1 -1
  234. package/dist/core/ast-extractor.d.ts.map +1 -1
  235. package/dist/core/ast-extractor.js +7 -5
  236. package/dist/core/ast-extractor.js.map +1 -1
  237. package/dist/core/backend-engine.d.ts +40 -0
  238. package/dist/core/backend-engine.d.ts.map +1 -0
  239. package/dist/core/backend-engine.js +131 -0
  240. package/dist/core/backend-engine.js.map +1 -0
  241. package/dist/core/blind-spot-engine.d.ts +29 -0
  242. package/dist/core/blind-spot-engine.d.ts.map +1 -0
  243. package/dist/core/blind-spot-engine.js +579 -0
  244. package/dist/core/blind-spot-engine.js.map +1 -0
  245. package/dist/core/build-failure-predictor.d.ts +4 -0
  246. package/dist/core/build-failure-predictor.d.ts.map +1 -1
  247. package/dist/core/build-failure-predictor.js +111 -58
  248. package/dist/core/build-failure-predictor.js.map +1 -1
  249. package/dist/core/cell-store.d.ts +72 -0
  250. package/dist/core/cell-store.d.ts.map +1 -0
  251. package/dist/core/cell-store.js +171 -0
  252. package/dist/core/cell-store.js.map +1 -0
  253. package/dist/core/community-advanced-engine.d.ts +30 -0
  254. package/dist/core/community-advanced-engine.d.ts.map +1 -0
  255. package/dist/core/community-advanced-engine.js +103 -0
  256. package/dist/core/community-advanced-engine.js.map +1 -0
  257. package/dist/core/community-engine.d.ts +62 -0
  258. package/dist/core/community-engine.d.ts.map +1 -0
  259. package/dist/core/community-engine.js +194 -0
  260. package/dist/core/community-engine.js.map +1 -0
  261. package/dist/core/community-full.d.ts +2 -3
  262. package/dist/core/community-full.d.ts.map +1 -1
  263. package/dist/core/community-full.js +2 -5
  264. package/dist/core/community-full.js.map +1 -1
  265. package/dist/core/community-intelligence.d.ts +169 -0
  266. package/dist/core/community-intelligence.d.ts.map +1 -0
  267. package/dist/core/community-intelligence.js +527 -0
  268. package/dist/core/community-intelligence.js.map +1 -0
  269. package/dist/core/community-live.d.ts +1 -0
  270. package/dist/core/community-live.d.ts.map +1 -1
  271. package/dist/core/community-live.js +9 -6
  272. package/dist/core/community-live.js.map +1 -1
  273. package/dist/core/community-prior.d.ts +1 -0
  274. package/dist/core/community-prior.d.ts.map +1 -1
  275. package/dist/core/community-prior.js +18 -10
  276. package/dist/core/community-prior.js.map +1 -1
  277. package/dist/core/confidence-engine.d.ts +2 -3
  278. package/dist/core/confidence-engine.d.ts.map +1 -1
  279. package/dist/core/confidence-engine.js +29 -32
  280. package/dist/core/confidence-engine.js.map +1 -1
  281. package/dist/core/conflict-detector.js +1 -1
  282. package/dist/core/conflict-detector.js.map +1 -1
  283. package/dist/core/convention-detector.d.ts +37 -0
  284. package/dist/core/convention-detector.d.ts.map +1 -0
  285. package/dist/core/convention-detector.js +189 -0
  286. package/dist/core/convention-detector.js.map +1 -0
  287. package/dist/core/cost-optimizer.d.ts +78 -0
  288. package/dist/core/cost-optimizer.d.ts.map +1 -0
  289. package/dist/core/cost-optimizer.js +257 -0
  290. package/dist/core/cost-optimizer.js.map +1 -0
  291. package/dist/core/cross-domain-projections.js +2 -2
  292. package/dist/core/cross-layer-intelligence.d.ts +375 -0
  293. package/dist/core/cross-layer-intelligence.d.ts.map +1 -0
  294. package/dist/core/cross-layer-intelligence.js +690 -0
  295. package/dist/core/cross-layer-intelligence.js.map +1 -0
  296. package/dist/core/developer-profile.d.ts +6 -0
  297. package/dist/core/developer-profile.d.ts.map +1 -0
  298. package/dist/core/developer-profile.js +78 -0
  299. package/dist/core/developer-profile.js.map +1 -0
  300. package/dist/core/error-predictor.d.ts +5 -2
  301. package/dist/core/error-predictor.d.ts.map +1 -1
  302. package/dist/core/error-predictor.js +124 -40
  303. package/dist/core/error-predictor.js.map +1 -1
  304. package/dist/core/explainability.d.ts +33 -0
  305. package/dist/core/explainability.d.ts.map +1 -0
  306. package/dist/core/explainability.js +131 -0
  307. package/dist/core/explainability.js.map +1 -0
  308. package/dist/core/extraction-cascade.d.ts +19 -5
  309. package/dist/core/extraction-cascade.d.ts.map +1 -1
  310. package/dist/core/extraction-cascade.js +86 -15
  311. package/dist/core/extraction-cascade.js.map +1 -1
  312. package/dist/core/failure-memory.d.ts +38 -0
  313. package/dist/core/failure-memory.d.ts.map +1 -0
  314. package/dist/core/failure-memory.js +113 -0
  315. package/dist/core/failure-memory.js.map +1 -0
  316. package/dist/core/frontend-engine.d.ts +40 -0
  317. package/dist/core/frontend-engine.d.ts.map +1 -0
  318. package/dist/core/frontend-engine.js +129 -0
  319. package/dist/core/frontend-engine.js.map +1 -0
  320. package/dist/core/go-extractor.d.ts +5 -0
  321. package/dist/core/go-extractor.d.ts.map +1 -0
  322. package/dist/core/go-extractor.js +68 -0
  323. package/dist/core/go-extractor.js.map +1 -0
  324. package/dist/core/identity-resolver.d.ts.map +1 -1
  325. package/dist/core/identity-resolver.js +16 -31
  326. package/dist/core/identity-resolver.js.map +1 -1
  327. package/dist/core/knowledge-graph-engine.d.ts +62 -0
  328. package/dist/core/knowledge-graph-engine.d.ts.map +1 -0
  329. package/dist/core/knowledge-graph-engine.js +176 -0
  330. package/dist/core/knowledge-graph-engine.js.map +1 -0
  331. package/dist/core/knowledge-graph.d.ts +229 -0
  332. package/dist/core/knowledge-graph.d.ts.map +1 -0
  333. package/dist/core/knowledge-graph.js +713 -0
  334. package/dist/core/knowledge-graph.js.map +1 -0
  335. package/dist/core/language-switch-assistant.d.ts.map +1 -1
  336. package/dist/core/language-switch-assistant.js +4 -1
  337. package/dist/core/language-switch-assistant.js.map +1 -1
  338. package/dist/core/learning-layer.d.ts +11 -0
  339. package/dist/core/learning-layer.d.ts.map +1 -0
  340. package/dist/core/learning-layer.js +25 -0
  341. package/dist/core/learning-layer.js.map +1 -0
  342. package/dist/core/marketplace.d.ts +43 -0
  343. package/dist/core/marketplace.d.ts.map +1 -0
  344. package/dist/core/marketplace.js +133 -0
  345. package/dist/core/marketplace.js.map +1 -0
  346. package/dist/core/memory-store.d.ts +59 -0
  347. package/dist/core/memory-store.d.ts.map +1 -0
  348. package/dist/core/memory-store.js +151 -0
  349. package/dist/core/memory-store.js.map +1 -0
  350. package/dist/core/naming-engine.d.ts +43 -0
  351. package/dist/core/naming-engine.d.ts.map +1 -0
  352. package/dist/core/naming-engine.js +120 -0
  353. package/dist/core/naming-engine.js.map +1 -0
  354. package/dist/core/org-intelligence.d.ts +151 -0
  355. package/dist/core/org-intelligence.d.ts.map +1 -0
  356. package/dist/core/org-intelligence.js +490 -0
  357. package/dist/core/org-intelligence.js.map +1 -0
  358. package/dist/core/organization-memory.d.ts +34 -0
  359. package/dist/core/organization-memory.d.ts.map +1 -0
  360. package/dist/core/organization-memory.js +148 -0
  361. package/dist/core/organization-memory.js.map +1 -0
  362. package/dist/core/outcome-engine.d.ts +21 -0
  363. package/dist/core/outcome-engine.d.ts.map +1 -0
  364. package/dist/core/outcome-engine.js +220 -0
  365. package/dist/core/outcome-engine.js.map +1 -0
  366. package/dist/core/outcome-recorder.d.ts +34 -0
  367. package/dist/core/outcome-recorder.d.ts.map +1 -0
  368. package/dist/core/outcome-recorder.js +109 -0
  369. package/dist/core/outcome-recorder.js.map +1 -0
  370. package/dist/core/outcome-store.d.ts +21 -0
  371. package/dist/core/outcome-store.d.ts.map +1 -0
  372. package/dist/core/outcome-store.js +120 -0
  373. package/dist/core/outcome-store.js.map +1 -0
  374. package/dist/core/outcome-types.d.ts +64 -0
  375. package/dist/core/outcome-types.d.ts.map +1 -0
  376. package/dist/core/outcome-types.js +20 -0
  377. package/dist/core/outcome-types.js.map +1 -0
  378. package/dist/core/pattern-classifier.d.ts +11 -0
  379. package/dist/core/pattern-classifier.d.ts.map +1 -0
  380. package/dist/core/pattern-classifier.js +82 -0
  381. package/dist/core/pattern-classifier.js.map +1 -0
  382. package/dist/core/pattern-lifecycle.d.ts +8 -0
  383. package/dist/core/pattern-lifecycle.d.ts.map +1 -0
  384. package/dist/core/pattern-lifecycle.js +25 -0
  385. package/dist/core/pattern-lifecycle.js.map +1 -0
  386. package/dist/core/pattern-quality.d.ts +6 -0
  387. package/dist/core/pattern-quality.d.ts.map +1 -0
  388. package/dist/core/pattern-quality.js +45 -0
  389. package/dist/core/pattern-quality.js.map +1 -0
  390. package/dist/core/pattern-ranking.d.ts +8 -0
  391. package/dist/core/pattern-ranking.d.ts.map +1 -0
  392. package/dist/core/pattern-ranking.js +40 -0
  393. package/dist/core/pattern-ranking.js.map +1 -0
  394. package/dist/core/pattern-relationships.d.ts +16 -0
  395. package/dist/core/pattern-relationships.d.ts.map +1 -0
  396. package/dist/core/pattern-relationships.js +66 -0
  397. package/dist/core/pattern-relationships.js.map +1 -0
  398. package/dist/core/pattern-search.d.ts +25 -0
  399. package/dist/core/pattern-search.d.ts.map +1 -0
  400. package/dist/core/pattern-search.js +82 -0
  401. package/dist/core/pattern-search.js.map +1 -0
  402. package/dist/core/pattern-store.d.ts +18 -3
  403. package/dist/core/pattern-store.d.ts.map +1 -1
  404. package/dist/core/pattern-store.js +155 -54
  405. package/dist/core/pattern-store.js.map +1 -1
  406. package/dist/core/{enterprise-features.d.ts → pattern-utils.d.ts} +2 -4
  407. package/dist/core/pattern-utils.d.ts.map +1 -0
  408. package/dist/core/{enterprise-features.js → pattern-utils.js} +4 -24
  409. package/dist/core/pattern-utils.js.map +1 -0
  410. package/dist/core/pattern-validator.d.ts +14 -0
  411. package/dist/core/pattern-validator.d.ts.map +1 -0
  412. package/dist/core/pattern-validator.js +47 -0
  413. package/dist/core/pattern-validator.js.map +1 -0
  414. package/dist/core/performance-predictor.d.ts +4 -0
  415. package/dist/core/performance-predictor.d.ts.map +1 -1
  416. package/dist/core/performance-predictor.js +143 -38
  417. package/dist/core/performance-predictor.js.map +1 -1
  418. package/dist/core/platt-calibration.d.ts.map +1 -1
  419. package/dist/core/platt-calibration.js +5 -3
  420. package/dist/core/platt-calibration.js.map +1 -1
  421. package/dist/core/playbook-generator.d.ts +21 -0
  422. package/dist/core/playbook-generator.d.ts.map +1 -0
  423. package/dist/core/playbook-generator.js +161 -0
  424. package/dist/core/playbook-generator.js.map +1 -0
  425. package/dist/core/privacy-manager.d.ts +43 -0
  426. package/dist/core/privacy-manager.d.ts.map +1 -0
  427. package/dist/core/privacy-manager.js +131 -0
  428. package/dist/core/privacy-manager.js.map +1 -0
  429. package/dist/core/productivity-engine.d.ts +57 -0
  430. package/dist/core/productivity-engine.d.ts.map +1 -0
  431. package/dist/core/productivity-engine.js +138 -0
  432. package/dist/core/productivity-engine.js.map +1 -0
  433. package/dist/core/project-dna-types.d.ts +150 -0
  434. package/dist/core/project-dna-types.d.ts.map +1 -0
  435. package/dist/core/project-dna-types.js +3 -0
  436. package/dist/core/project-dna-types.js.map +1 -0
  437. package/dist/core/project-dna.d.ts +122 -0
  438. package/dist/core/project-dna.d.ts.map +1 -0
  439. package/dist/core/project-dna.js +922 -0
  440. package/dist/core/project-dna.js.map +1 -0
  441. package/dist/core/python-extractor.d.ts +5 -0
  442. package/dist/core/python-extractor.d.ts.map +1 -0
  443. package/dist/core/python-extractor.js +68 -0
  444. package/dist/core/python-extractor.js.map +1 -0
  445. package/dist/core/realtime-guardian.d.ts.map +1 -1
  446. package/dist/core/realtime-guardian.js +1 -3
  447. package/dist/core/realtime-guardian.js.map +1 -1
  448. package/dist/core/recommendation-engine.d.ts +9 -0
  449. package/dist/core/recommendation-engine.d.ts.map +1 -0
  450. package/dist/core/recommendation-engine.js +152 -0
  451. package/dist/core/recommendation-engine.js.map +1 -0
  452. package/dist/core/recommendation-store.d.ts +21 -0
  453. package/dist/core/recommendation-store.d.ts.map +1 -0
  454. package/dist/core/recommendation-store.js +125 -0
  455. package/dist/core/recommendation-store.js.map +1 -0
  456. package/dist/core/recommendation-types.d.ts +54 -0
  457. package/dist/core/recommendation-types.d.ts.map +1 -0
  458. package/dist/core/recommendation-types.js +3 -0
  459. package/dist/core/recommendation-types.js.map +1 -0
  460. package/dist/core/regex-extractor.js +1 -1
  461. package/dist/core/regex-extractor.js.map +1 -1
  462. package/dist/core/reputation.d.ts +42 -0
  463. package/dist/core/reputation.d.ts.map +1 -0
  464. package/dist/core/reputation.js +173 -0
  465. package/dist/core/reputation.js.map +1 -0
  466. package/dist/core/scale-tester.d.ts +2 -2
  467. package/dist/core/scale-tester.d.ts.map +1 -1
  468. package/dist/core/scale-tester.js +12 -1
  469. package/dist/core/scale-tester.js.map +1 -1
  470. package/dist/core/search-engine.d.ts +37 -0
  471. package/dist/core/search-engine.d.ts.map +1 -0
  472. package/dist/core/search-engine.js +223 -0
  473. package/dist/core/search-engine.js.map +1 -0
  474. package/dist/core/security-predictor.d.ts +2 -1
  475. package/dist/core/security-predictor.d.ts.map +1 -1
  476. package/dist/core/security-predictor.js +80 -30
  477. package/dist/core/security-predictor.js.map +1 -1
  478. package/dist/core/session-recovery.js +8 -8
  479. package/dist/core/session-recovery.js.map +1 -1
  480. package/dist/core/similarity-engine.d.ts +8 -0
  481. package/dist/core/similarity-engine.d.ts.map +1 -0
  482. package/dist/core/similarity-engine.js +74 -0
  483. package/dist/core/similarity-engine.js.map +1 -0
  484. package/dist/core/structure-engine.d.ts +34 -0
  485. package/dist/core/structure-engine.d.ts.map +1 -0
  486. package/dist/core/structure-engine.js +114 -0
  487. package/dist/core/structure-engine.js.map +1 -0
  488. package/dist/core/syntax-engine.d.ts +101 -0
  489. package/dist/core/syntax-engine.d.ts.map +1 -0
  490. package/dist/core/syntax-engine.js +342 -0
  491. package/dist/core/syntax-engine.js.map +1 -0
  492. package/dist/core/team-advanced-engine.d.ts +19 -0
  493. package/dist/core/team-advanced-engine.d.ts.map +1 -0
  494. package/dist/core/team-advanced-engine.js +91 -0
  495. package/dist/core/team-advanced-engine.js.map +1 -0
  496. package/dist/core/team-engine.d.ts +59 -0
  497. package/dist/core/team-engine.d.ts.map +1 -0
  498. package/dist/core/team-engine.js +141 -0
  499. package/dist/core/team-engine.js.map +1 -0
  500. package/dist/core/time-saved.d.ts +51 -0
  501. package/dist/core/time-saved.d.ts.map +1 -0
  502. package/dist/core/time-saved.js +97 -0
  503. package/dist/core/time-saved.js.map +1 -0
  504. package/dist/core/workflow-outcome-graph.d.ts +46 -0
  505. package/dist/core/workflow-outcome-graph.d.ts.map +1 -0
  506. package/dist/core/workflow-outcome-graph.js +168 -0
  507. package/dist/core/workflow-outcome-graph.js.map +1 -0
  508. package/dist/core/workflow-tracker.d.ts +36 -0
  509. package/dist/core/workflow-tracker.d.ts.map +1 -0
  510. package/dist/core/workflow-tracker.js +99 -0
  511. package/dist/core/workflow-tracker.js.map +1 -0
  512. package/dist/core/ws-client.d.ts +24 -0
  513. package/dist/core/ws-client.d.ts.map +1 -0
  514. package/dist/core/ws-client.js +203 -0
  515. package/dist/core/ws-client.js.map +1 -0
  516. package/dist/daemon/lifecycle.d.ts.map +1 -1
  517. package/dist/daemon/lifecycle.js +9 -10
  518. package/dist/daemon/lifecycle.js.map +1 -1
  519. package/dist/daemon/server.d.ts +4 -2
  520. package/dist/daemon/server.d.ts.map +1 -1
  521. package/dist/daemon/server.js +886 -73
  522. package/dist/daemon/server.js.map +1 -1
  523. package/dist/daemon/watchdog.js +2 -1
  524. package/dist/daemon/watchdog.js.map +1 -1
  525. package/dist/index.d.ts +21 -2
  526. package/dist/index.d.ts.map +1 -1
  527. package/dist/index.js +37 -4
  528. package/dist/index.js.map +1 -1
  529. package/dist/store.d.ts +4 -0
  530. package/dist/store.d.ts.map +1 -0
  531. package/dist/store.js +47 -0
  532. package/dist/store.js.map +1 -0
  533. package/dist/types.d.ts +60 -1
  534. package/dist/types.d.ts.map +1 -1
  535. package/dist/types.js +13 -2
  536. package/dist/types.js.map +1 -1
  537. package/dist/validation/quick-run.d.ts +7 -0
  538. package/dist/validation/quick-run.d.ts.map +1 -0
  539. package/dist/validation/quick-run.js +404 -0
  540. package/dist/validation/quick-run.js.map +1 -0
  541. package/package.json +87 -53
  542. package/CHANGELOG.md +0 -32
  543. package/CONTRIBUTING.md +0 -60
  544. package/dist/core/cell-pro.d.ts +0 -28
  545. package/dist/core/cell-pro.d.ts.map +0 -1
  546. package/dist/core/cell-pro.js +0 -70
  547. package/dist/core/cell-pro.js.map +0 -1
  548. package/dist/core/enterprise-features.d.ts.map +0 -1
  549. package/dist/core/enterprise-features.js.map +0 -1
  550. package/dist/core/enterprise.d.ts +0 -27
  551. package/dist/core/enterprise.d.ts.map +0 -1
  552. package/dist/core/enterprise.js +0 -41
  553. package/dist/core/enterprise.js.map +0 -1
  554. package/extensions/jetbrains/plugin.json +0 -9
  555. package/extensions/shell/copilot-sync.js +0 -59
  556. package/extensions/shell/install.sh +0 -38
  557. package/extensions/shell/watcher.js +0 -113
  558. package/extensions/vscode/.vscodeignore +0 -5
  559. package/extensions/vscode/dist/daemon-client.js +0 -94
  560. package/extensions/vscode/dist/diff-tracker.js +0 -94
  561. package/extensions/vscode/dist/extension.js +0 -100
  562. package/extensions/vscode/dist/status-bar.js +0 -70
  563. package/extensions/vscode/package-lock.json +0 -40
  564. package/extensions/vscode/package.json +0 -27
  565. package/packages/mcp-server/dist/server.d.ts +0 -2
  566. package/packages/mcp-server/dist/server.js +0 -213
  567. package/packages/mcp-server/package-lock.json +0 -970
  568. package/packages/mcp-server/package.json +0 -19
package/dist/cli.js CHANGED
@@ -33,19 +33,134 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  return result;
34
34
  };
35
35
  })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
36
39
  Object.defineProperty(exports, "__esModule", { value: true });
37
40
  const commander_1 = require("commander");
38
41
  const path = __importStar(require("path"));
39
42
  const fs = __importStar(require("fs"));
40
43
  const os = __importStar(require("os"));
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const figlet_1 = __importDefault(require("figlet"));
46
+ const gradient_string_1 = __importDefault(require("gradient-string"));
47
+ const child_process_1 = require("child_process");
41
48
  const index_1 = require("./index");
49
+ // ─── Color Helpers ─────────────────────────────────────
50
+ const C = {
51
+ primary: chalk_1.default.hex('#FF6B35'),
52
+ primaryLight: chalk_1.default.hex('#FF8C42'),
53
+ primaryDark: chalk_1.default.hex('#E65100'),
54
+ accent: chalk_1.default.hex('#FFAB91'),
55
+ success: chalk_1.default.green,
56
+ error: chalk_1.default.red,
57
+ warn: chalk_1.default.yellow,
58
+ info: chalk_1.default.hex('#FFAB91'),
59
+ dim: chalk_1.default.dim,
60
+ bold: chalk_1.default.bold,
61
+ num: (s) => chalk_1.default.hex('#FF6B35').bold(s),
62
+ header: (s) => chalk_1.default.hex('#FF8C42').bold(s),
63
+ sub: (s) => chalk_1.default.hex('#FFAB91').dim(s),
64
+ };
65
+ // ─── Number → Command Mapping ──────────────────────────
66
+ const NUM = {
67
+ 1: 'learn', 2: 'next', 3: 'scan', 4: 'errors', 5: 'buildcheck',
68
+ 6: 'deadcode', 7: 'complexity', 8: 'branch', 9: 'gentests', 10: 'perf',
69
+ 11: 'community', 12: 'community-live', 13: 'community-full',
70
+ 14: 'push', 15: 'pull', 16: 'vote', 17: 'mergecheck',
71
+ 18: 'snapshot', 19: 'sync', 20: 'solutions', 21: 'langswitch',
72
+ 22: 'resume', 23: 'handoff', 24: 'silos', 25: 'review',
73
+ 26: 'standup', 27: 'offline', 28: 'cycles', 29: 'dupes',
74
+ 30: 'deps', 31: 'abtest', 32: 'xdomain',
75
+ 33: 'daemon restart', 34: 'daemon status',
76
+ 35: 'cloud on', 36: 'cloud off', 37: 'privacy',
77
+ 38: 'taste show', 39: 'taste reset', 40: 'watch', 41: 'team', 42: 'community-stats',
78
+ };
79
+ const IMPORTANT_CMDS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
80
+ const OTHER_CMDS = Object.keys(NUM).map(Number).filter(n => !IMPORTANT_CMDS.includes(n));
81
+ // ─── Terminal Utilities ────────────────────────────────
82
+ function termWidth() { return process.stdout.columns || 80; }
83
+ function hline(ch = '─') { return ch.repeat(termWidth() - 2); }
84
+ function centerText(text) {
85
+ const w = termWidth();
86
+ const pad = Math.max(0, Math.floor((w - text.length) / 2));
87
+ return ' '.repeat(pad) + text;
88
+ }
89
+ // ─── Banner ────────────────────────────────────────────
90
+ function showBanner() {
91
+ const w = termWidth();
92
+ const line = C.primaryDark(hline('─'));
93
+ const thick = C.primary(hline('━'));
94
+ let f;
95
+ try {
96
+ f = figlet_1.default.textSync('FIVO CELL', { font: 'ANSI Shadow', width: w - 4 });
97
+ }
98
+ catch {
99
+ try {
100
+ f = figlet_1.default.textSync('FIVO CELL', { font: 'Big' });
101
+ }
102
+ catch {
103
+ f = 'FIVO CELL';
104
+ }
105
+ }
106
+ const banner = (0, gradient_string_1.default)(['#FF6B35', '#FF8C42', '#FFAB91'])(f);
107
+ console.log(banner);
108
+ console.log(C.accent(centerText('Anticipatory Intelligence Engine v1.0.0')));
109
+ console.log(thick);
110
+ console.log(C.primary.bold('\n ▸ Named Commands'));
111
+ console.log(line);
112
+ console.log(` ${C.primary.bold('run')} ${C.primary.bold('status')} ${C.primary.bold('start')} ${C.primary.bold('stop')}`);
113
+ console.log(C.primary.bold('\n ▸ Quick Commands'));
114
+ console.log(line);
115
+ const imp = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
116
+ for (let i = 0; i < imp.length; i += 5) {
117
+ const row = imp.slice(i, i + 5).map(n => `${C.num(String(n).padStart(2))} ${C.bold(NUM[n].padEnd(14))}`).join(C.dim(' │ '));
118
+ console.log(` ${row}`);
119
+ }
120
+ console.log(C.primary.bold('\n ▸ Other Commands: 11-39'));
121
+ console.log(line);
122
+ console.log(C.dim(' cell 9 → Run command by number'));
123
+ console.log(C.dim(' cell 1,2,3 → Run multiple commands'));
124
+ console.log(C.dim(' cell 1-5 → Run range of commands'));
125
+ console.log();
126
+ console.log(thick);
127
+ console.log();
128
+ }
129
+ // ─── Number Argument Parser ────────────────────────────
130
+ function parseNumberArg(input) {
131
+ if (/^\d+$/.test(input))
132
+ return [parseInt(input)];
133
+ if (/^\d+-\d+$/.test(input)) {
134
+ const [s, e] = input.split('-').map(Number);
135
+ if (s > e)
136
+ return [];
137
+ return Array.from({ length: e - s + 1 }, (_, i) => s + i);
138
+ }
139
+ if (/^\d+(,\d+)+$/.test(input)) {
140
+ return [...new Set(input.split(',').map(Number))];
141
+ }
142
+ return [];
143
+ }
144
+ function runNumbers(nums) {
145
+ const script = process.argv[1];
146
+ for (const n of nums) {
147
+ const cmd = NUM[n];
148
+ if (!cmd) {
149
+ console.error(C.error(`Unknown command number: ${n}`));
150
+ continue;
151
+ }
152
+ console.log(C.primary(`\n ──▶ ${n}: ${cmd} ${'─'.repeat(50)}`));
153
+ (0, child_process_1.execSync)(`node "${script}" ${cmd}`, { stdio: 'inherit', cwd: process.cwd() });
154
+ }
155
+ process.exit(0);
156
+ }
42
157
  const program = new commander_1.Command();
43
158
  program
44
159
  .name('cell')
45
160
  .description('FIVO Cell — Anticipatory Intelligence. Learns your coding taste.')
46
161
  .version('1.0.0');
47
162
  program
48
- .command('init')
163
+ .command('run')
49
164
  .description('Initialize FIVO Cell in the current project')
50
165
  .action(() => {
51
166
  const cellDir = path.join(process.cwd(), index_1.DEFAULT_CONFIG.cellDir);
@@ -54,21 +169,70 @@ program
54
169
  }
55
170
  const store = new index_1.PatternStore(cellDir);
56
171
  store.save();
57
- console.log('✅ FIVO Cell initialized.');
58
- console.log(` Directory: ${cellDir}`);
59
- console.log('');
60
- console.log('🌐 Cloud Sync: ON (Anonymous pattern stats only)');
61
- console.log(' → Better suggestions from 10K+ developers');
62
- console.log(' Your code NEVER leaves your machine');
63
- console.log(' → What we share (just stats, no code):');
64
- console.log(' "prefers const over let (92%)"');
65
- console.log(' "uses named exports, not default (88%)"');
66
- console.log(' "vitest over jest (95%)"');
67
- console.log(' "pnpm over npm (90%)"');
68
- console.log(' No file paths. No project names. No source code.');
69
- console.log(' Turn off anytime: cell cloud off');
70
- console.log('');
71
- console.log(' Run `cell status` to see your taste profile.');
172
+ const thick = C.primary(hline('━'));
173
+ const line = C.primaryDark(hline('─'));
174
+ console.clear();
175
+ console.log();
176
+ console.log(thick);
177
+ console.log(C.success.bold(centerText('✅ FIVO Cell Initialized')));
178
+ console.log(thick);
179
+ console.log();
180
+ console.log(C.info(' Directory: ') + C.bold(cellDir));
181
+ console.log(line);
182
+ console.log();
183
+ console.log(C.primary.bold(' 🌐 Cloud Sync: ON (Anonymous pattern stats only)'));
184
+ console.log(C.sub(' Better suggestions from 10K+ developers'));
185
+ console.log(C.sub(' → Your code NEVER leaves your machine'));
186
+ console.log(C.sub(' What we share (just stats, no code):'));
187
+ console.log(C.sub(' "prefers const over let (87%)"'));
188
+ console.log(C.sub(' "uses named exports, not default (83%)"'));
189
+ console.log(C.sub(' "vitest over jest (91%)"'));
190
+ console.log(C.sub(' "pnpm over npm (86%)"'));
191
+ console.log(C.sub(' → No file paths. No project names. No source code.'));
192
+ console.log(C.sub(' → Turn off anytime: cell cloud off'));
193
+ console.log();
194
+ console.log(line);
195
+ console.log(C.info(' Run ') + C.primary.bold('cell status') + C.info(' to see your taste profile.'));
196
+ console.log(C.dim(' Run ') + C.primary('cell watch') + C.dim(' for auto-learning from file edits'));
197
+ console.log(thick);
198
+ console.log();
199
+ // Auto-install git hook
200
+ const gitDir = path.join(process.cwd(), '.git');
201
+ if (fs.existsSync(gitDir)) {
202
+ const hooksDir = path.join(gitDir, 'hooks');
203
+ if (!fs.existsSync(hooksDir))
204
+ fs.mkdirSync(hooksDir, { recursive: true });
205
+ const hookPath = path.join(hooksDir, 'post-commit');
206
+ if (!fs.existsSync(hookPath)) {
207
+ const cellBin = process.argv[1];
208
+ const hook = `#!/bin/sh
209
+ # FIVO Cell — auto-learn on commit
210
+ DIFF=$(git diff --cached --diff-algorithm=histogram)
211
+ if [ -n "$DIFF" ]; then
212
+ node "${cellBin}" learn --original "$(echo "$DIFF" | head -200)" --edited "committed" 2>/dev/null
213
+ fi
214
+ `;
215
+ fs.writeFileSync(hookPath, hook, { mode: 0o755 });
216
+ }
217
+ }
218
+ // Migration: legacy → .cell/ format
219
+ try {
220
+ const store = new index_1.CellStore(path.join(process.cwd(), '.cell'));
221
+ const result = store.migrateFromLegacy(cellDir);
222
+ if (result.migrated > 0) {
223
+ console.log(C.dim(` 📦 Migrated ${result.migrated} patterns to .cell/ format`));
224
+ console.log(C.dim(` 📁 .cell/personal/style.json`));
225
+ }
226
+ }
227
+ catch { }
228
+ // Rebuild search index
229
+ try {
230
+ const se = new index_1.SearchEngine();
231
+ const r = se.rebuild();
232
+ if (r.indexed > 0)
233
+ console.log(C.dim(` 🔍 Search index: ${r.indexed} files indexed`));
234
+ }
235
+ catch { }
72
236
  });
73
237
  program
74
238
  .command('status')
@@ -80,32 +244,117 @@ program
80
244
  return;
81
245
  }
82
246
  const store = new index_1.PatternStore(cellDir);
83
- console.log('\n📊 FIVO Cell — Taste Profile');
84
- console.log('──────────────────────────────');
247
+ const thick = C.primary(hline('━'));
248
+ const line = C.primaryDark(hline(''));
85
249
  const patterns = store.getAllPatterns();
250
+ console.clear();
251
+ console.log();
252
+ console.log(thick);
253
+ console.log(C.primary.bold(centerText('📊 FIVO Cell — Taste Profile')));
254
+ console.log(thick);
255
+ console.log();
86
256
  if (patterns.length === 0) {
87
- console.log('No patterns learned yet. Start coding to teach Cell your style.');
257
+ console.log(C.warn(centerText('No patterns learned yet. Start coding to teach Cell your style.')));
258
+ console.log();
259
+ console.log(thick);
88
260
  return;
89
261
  }
90
- console.log(`Total patterns: ${patterns.length}`);
91
- console.log(`Total signals: ${store.getTotalSignals()}`);
262
+ console.log(` Total patterns: ${C.bold(String(patterns.length))}`);
263
+ console.log(` Total signals: ${C.bold(String(store.getTotalSignals()))}`);
264
+ console.log(line);
92
265
  const strong = store.getPatternsByTier('strong');
93
266
  const moderate = store.getPatternsByTier('moderate');
94
267
  const weak = store.getPatternsByTier('weak');
95
- console.log(`\nTiers:`);
96
- console.log(` Strong (>0.80): ${strong.length} patterns`);
97
- console.log(` Moderate (0.50-0.80): ${moderate.length} patterns`);
98
- console.log(` Weak (0.30-0.50): ${weak.length} patterns`);
268
+ console.log(C.primary.bold('\n Tiers:'));
269
+ console.log(C.success(` ● Strong (>0.80): ${String(strong.length).padStart(3)} patterns`));
270
+ console.log(C.warn(`Moderate (0.50-0.80): ${String(moderate.length).padStart(3)} patterns`));
271
+ console.log(C.dim(`Weak (0.30-0.50): ${String(weak.length).padStart(3)} patterns`));
99
272
  if (strong.length > 0) {
100
- console.log('\nTop patterns:');
273
+ console.log(C.primary.bold('\n Top Patterns:'));
101
274
  const top = patterns
102
275
  .sort((a, b) => b.confidence.mean - a.confidence.mean)
103
276
  .slice(0, 5);
104
277
  for (const p of top) {
105
- console.log(` ✅ ${p.description} (${p.confidence.mean}, ${p.signals?.positive || 0}/${p.signals?.total || 0} signals)`);
278
+ console.log(C.success(` ✅ ${p.description}`) + C.dim(` (${p.confidence.mean}, ${p.signals?.positive || 0}/${p.signals?.total || 0} signals)`));
106
279
  }
107
280
  }
108
- console.log('');
281
+ // Blind spots
282
+ try {
283
+ const bs = new index_1.BlindSpotEngine(cellDir);
284
+ const summary = bs.getSummary();
285
+ if (summary.top.length > 0) {
286
+ console.log(line);
287
+ console.log(C.primary.bold('\n 👁️ Blind Spots Detected:'));
288
+ for (const s of summary.top.slice(0, 3)) {
289
+ const sev = s.severity === 'critical' ? C.error('●') : s.severity === 'high' ? C.warn('●') : C.info('●');
290
+ console.log(C.warn(` ${sev} ${s.description} (${Math.round(s.missedRate * 100)}% of cases)`));
291
+ console.log(C.dim(` ${s.suggestion}`));
292
+ }
293
+ console.log(C.dim(`\n Total: ${summary.total} blind spots · Critical: ${summary.critical} · High: ${summary.high}`));
294
+ }
295
+ }
296
+ catch { }
297
+ // Naming + Structure + Architecture + Productivity
298
+ try {
299
+ const namingSummary = new index_1.NamingEngine().getSummary();
300
+ const structureSummary = new index_1.StructureEngine().getSummary();
301
+ const frontendSummary = new index_1.FrontendEngine().getSummary();
302
+ const backendSummary = new index_1.BackendEngine().getSummary();
303
+ const productivitySummary = new index_1.ProductivityEngine().getSummary();
304
+ const syntaxSummary = new index_1.SyntaxEngine().getSummary();
305
+ if (namingSummary.length > 0 && structureSummary.length > 0) {
306
+ console.log(line);
307
+ console.log(C.primary.bold('\n 📐 Style Intelligence:'));
308
+ for (const s of namingSummary)
309
+ console.log(C.info(` ${s}`));
310
+ for (const s of structureSummary)
311
+ console.log(C.info(` ${s}`));
312
+ for (const s of syntaxSummary)
313
+ console.log(C.info(` ${s}`));
314
+ }
315
+ const archSummary = new index_1.ArchitectureEngine().getSummary();
316
+ if (frontendSummary.length > 0 || backendSummary.length > 0 || archSummary.length > 0) {
317
+ console.log(line);
318
+ console.log(C.primary.bold('\n 🏗️ Architecture Intelligence:'));
319
+ for (const s of frontendSummary)
320
+ console.log(C.info(` ${s}`));
321
+ for (const s of backendSummary)
322
+ console.log(C.info(` ${s}`));
323
+ for (const s of archSummary)
324
+ console.log(C.info(` ${s}`));
325
+ }
326
+ if (productivitySummary.length > 0) {
327
+ console.log(line);
328
+ console.log(C.primary.bold('\n ⚡ Productivity Intelligence:'));
329
+ for (const s of productivitySummary)
330
+ console.log(C.info(` ${s}`));
331
+ }
332
+ const knowledgeSummary = new index_1.KnowledgeGraphEngine().getSummary();
333
+ if (knowledgeSummary.length > 0) {
334
+ console.log(line);
335
+ console.log(C.primary.bold('\n 🧠 Knowledge Graph:'));
336
+ for (const s of knowledgeSummary)
337
+ console.log(C.info(` ${s}`));
338
+ }
339
+ const teamAdvSummary = new index_1.TeamAdvancedEngine().getSummary();
340
+ const communityAdvSummary = new index_1.CommunityAdvancedEngine().getSummary();
341
+ if (teamAdvSummary.length > 0) {
342
+ console.log(line);
343
+ console.log(C.primary.bold('\n 👥 Team Advanced:'));
344
+ for (const s of teamAdvSummary)
345
+ console.log(C.info(` ${s}`));
346
+ }
347
+ if (communityAdvSummary.length > 0) {
348
+ console.log(line);
349
+ console.log(C.primary.bold('\n 🌐 Community Advanced:'));
350
+ for (const s of communityAdvSummary)
351
+ console.log(C.info(` ${s}`));
352
+ }
353
+ }
354
+ catch { }
355
+ console.log();
356
+ console.log(thick);
357
+ console.log();
109
358
  });
110
359
  program
111
360
  .command('taste show')
@@ -139,6 +388,7 @@ program
139
388
  .option('-e, --edited <code>', 'Your edited version')
140
389
  .option('-a, --accept', 'Mark as accepted (no edits)')
141
390
  .option('-r, --reject', 'Mark as rejected')
391
+ .option('--audit', 'Run security and error analysis on edited code')
142
392
  .action((options) => {
143
393
  const cellDir = path.join(process.cwd(), index_1.DEFAULT_CONFIG.cellDir);
144
394
  if (!fs.existsSync(cellDir)) {
@@ -165,20 +415,39 @@ program
165
415
  }
166
416
  else if (options.original && options.edited) {
167
417
  const signal = capture.captureEditDiff(options.original, options.edited, context);
168
- const result = cascade.extract(options.original, options.edited);
418
+ const result = cascade.extract(options.original, options.edited, context.language);
169
419
  console.log(`📝 Edit diff captured (session: ${signal.sessionId})`);
170
420
  console.log(` Step used: ${result.stepUsed}`);
171
421
  console.log(` Latency: ${result.latencyMs}ms`);
172
422
  console.log(` Patterns found: ${result.patterns.length}`);
173
423
  for (const p of result.patterns) {
174
- const pattern = store.addOrUpdatePattern(p.category, p.description, p.from, p.to, true, p.conditions);
175
- console.log(` → ${p.description} (confidence: ${pattern.confidence.mean})`);
424
+ const pattern = store.addOrUpdatePattern(p.category, p.description, p.from, p.to, true, p.conditions, 'global', result.stepUsed, result.language);
425
+ console.log(` → ${p.description} (confidence: ${pattern.confidence.mean}, quality: ${pattern.quality.score})`);
176
426
  }
177
427
  store.save();
428
+ try {
429
+ new index_1.CellStore().syncFromPatternStore(store);
430
+ }
431
+ catch { }
178
432
  console.log(`\n✅ Taste profile updated. ${store.getPatternCount()} patterns total.`);
433
+ if (options.audit && options.edited) {
434
+ const auditResult = cascade.audit(options.edited);
435
+ if (auditResult.security.length > 0 || auditResult.errors.length > 0) {
436
+ console.log(`\n🔍 Code audit results:`);
437
+ for (const s of auditResult.security) {
438
+ console.log(` ⚠ [${s.severity}] ${s.type}:${s.line} ${s.message}`);
439
+ }
440
+ for (const e of auditResult.errors) {
441
+ console.log(` ⚠ [${e.severity}] ${e.type}:${e.line} ${e.message}`);
442
+ }
443
+ }
444
+ else {
445
+ console.log(`\n🔍 Code audit: no issues found`);
446
+ }
447
+ }
179
448
  }
180
449
  else {
181
- console.log('❌ Provide --original and --edited, or --accept, or --reject');
450
+ console.log('❌ Provide --original and --edited, or --accept with --original, or --reject with --original');
182
451
  }
183
452
  });
184
453
  program
@@ -191,7 +460,7 @@ program
191
460
  console.log('❌ Cell not initialized. Run `cell init` first.');
192
461
  return;
193
462
  }
194
- const username = options.username || process.env.USER || process.env.USERNAME || 'anonymous';
463
+ const username = options.username || 'anonymous';
195
464
  const store = new index_1.PatternStore(cellDir);
196
465
  const composer = new index_1.TeamComposer(store, cellDir);
197
466
  composer.pushTaste(username);
@@ -258,7 +527,7 @@ program
258
527
  return;
259
528
  }
260
529
  if (options.pattern && options.vote) {
261
- const username = process.env.USER || process.env.USERNAME || 'anonymous';
530
+ const username = 'anonymous';
262
531
  const session = detector.castVote(options.pattern, username, options.vote);
263
532
  if (!session) {
264
533
  console.log('❌ Vote failed. Check pattern ID and deadline.');
@@ -953,51 +1222,18 @@ program
953
1222
  }
954
1223
  return;
955
1224
  }
956
- const dashboard = full.getPowerDashboard();
957
- console.log(`\n📊 Community Prior Power Dashboard`);
1225
+ const ds = full.getCommunityStats();
1226
+ console.log(`\n📊 Community Stats`);
958
1227
  console.log(`──────────────────────────────────`);
959
- console.log(` Total patterns: ${dashboard.totalPatterns}`);
960
- console.log(` Live patterns: ${dashboard.livePatterns}`);
961
- console.log(` Synthetic patterns: ${dashboard.syntheticPatterns}`);
962
- console.log(` Avg confidence: ${dashboard.avgConfidence}`);
963
- console.log(` Calibration: ${dashboard.calibrationPhase}`);
964
- console.log(` Cross-language maps: ${dashboard.crossLanguageMappings}`);
1228
+ console.log(` Total patterns: ${ds.totalPatterns}`);
1229
+ console.log(` Live patterns: ${ds.livePatterns}`);
1230
+ console.log(` Synthetic patterns: ${ds.syntheticPatterns}`);
1231
+ console.log(` Avg confidence: ${ds.avgConfidence}`);
1232
+ console.log(` Calibration: ${ds.calibrationPhase}`);
1233
+ console.log(` Cross-language maps: ${ds.crossLanguageMappings}`);
965
1234
  console.log(`\n${full.getDisplayLabel()}`);
966
- const stats = full.getStats();
967
- console.log(`\n All-real guarantee: ${stats.isAllReal ? '✅ YES' : '❌ NO'}`);
968
- });
969
- program
970
- .command('enterprise')
971
- .description('Enterprise features')
972
- .option('--obfuscate <name>', 'Obfuscate project name')
973
- .option('--paginate <json>', 'Paginate items {items, page, pageSize}')
974
- .option('--s3-config <json>', 'Get S3 config {bucket, region}')
975
- .option('--self-hosted <url>', 'Get self-hosted config')
976
- .action((options) => {
977
- const enterprise = new index_1.EnterpriseFeatures();
978
- if (options.obfuscate) {
979
- console.log(`Hash: ${enterprise.obfuscateProjectName(options.obfuscate)}`);
980
- return;
981
- }
982
- if (options.paginate) {
983
- const { items, page, pageSize } = JSON.parse(options.paginate);
984
- const result = enterprise.paginate(items, page, pageSize);
985
- console.log(`Page ${result.page}/${result.totalPages} (${result.total} total items):`);
986
- for (const item of result.items) {
987
- console.log(` ${JSON.stringify(item)}`);
988
- }
989
- return;
990
- }
991
- if (options.s3Config) {
992
- const { bucket, region } = JSON.parse(options.s3Config);
993
- console.log(JSON.stringify(enterprise.getS3Config(bucket, region), null, 2));
994
- return;
995
- }
996
- if (options.selfHosted) {
997
- console.log(JSON.stringify(enterprise.getSelfHostedConfig(options.selfHosted), null, 2));
998
- return;
999
- }
1000
- console.log('Enterprise features: obfuscate, paginate, s3-config, self-hosted');
1235
+ const s = full.getStats();
1236
+ console.log(`\n All-real guarantee: ${s.isAllReal ? '✅ YES' : '❌ NO'}`);
1001
1237
  });
1002
1238
  program
1003
1239
  .command('xdomain')
@@ -1021,7 +1257,7 @@ program
1021
1257
  console.log(`\n🔬 ${proj.sourceDomain} → ${proj.targetDomain}`);
1022
1258
  console.log(` Transfer accuracy: ${proj.transferAccuracy}`);
1023
1259
  console.log(` Confidence: ${proj.confidence}`);
1024
- console.log(` Passes 70% gate: ${projections.validateTransferAccuracy(proj) ? '✅' : '❌'}`);
1260
+ console.log(` Passes 65% gate: ${projections.validateTransferAccuracy(proj) ? '✅' : '❌'}`);
1025
1261
  console.log('\n Concept mappings:');
1026
1262
  for (const [from, to] of Object.entries(proj.mappedConcepts)) {
1027
1263
  console.log(` ${from} → ${to}`);
@@ -1034,6 +1270,89 @@ program
1034
1270
  }
1035
1271
  console.log(`\n${projections.getResearchGateStatus()}`);
1036
1272
  });
1273
+ // ─── SEARCH ────────────────────────────────────────────
1274
+ program
1275
+ .command('search')
1276
+ .description('Search across all personal intelligence data')
1277
+ .argument('<query>', 'Search query (e.g., "error handling", "naming conventions")')
1278
+ .option('-l, --limit <n>', 'Max results', '5')
1279
+ .action((query, options) => {
1280
+ const se = new index_1.SearchEngine();
1281
+ se.rebuild(); // Always rebuild before search
1282
+ const results = se.search(query, parseInt(options.limit));
1283
+ const thick = C.primary(hline('━'));
1284
+ console.clear();
1285
+ console.log();
1286
+ console.log(thick);
1287
+ console.log(C.primary.bold(centerText(`🔍 Search: "${query}"`)));
1288
+ console.log(thick);
1289
+ console.log();
1290
+ if (results.length === 0) {
1291
+ console.log(C.warn(centerText('No results found. Try different keywords.')));
1292
+ console.log();
1293
+ console.log(thick);
1294
+ return;
1295
+ }
1296
+ for (const r of results) {
1297
+ console.log(C.num(` ${r.score} `) + C.bold(r.file));
1298
+ console.log(C.dim(` ${r.snippet}`));
1299
+ console.log(C.dim(` Tags: ${r.tags.join(', ')}`));
1300
+ console.log();
1301
+ }
1302
+ console.log(C.dim(` ${results.length} results found`));
1303
+ console.log();
1304
+ console.log(thick);
1305
+ });
1306
+ // ─── TEAM ─────────────────────────────────────────────
1307
+ program
1308
+ .command('team')
1309
+ .description('Show team intelligence overview')
1310
+ .option('-o, --onboard', 'Generate onboarding document')
1311
+ .option('-a, --add-pattern <name>', 'Add team approved pattern')
1312
+ .option('-d, --desc <text>', 'Pattern description (with --add-pattern)')
1313
+ .option('-c, --category <cat>', 'Pattern category')
1314
+ .action((options) => {
1315
+ const te = new index_1.TeamEngine();
1316
+ if (options.addPattern && options.desc) {
1317
+ const cat = options.category || 'general';
1318
+ const r = te.addPattern(options.addPattern, options.desc, cat, 'local');
1319
+ console.log(C.success(`\n ✅ Team pattern added: ${r.id}`));
1320
+ console.log(C.dim(` "${options.addPattern}": ${options.desc}\n`));
1321
+ return;
1322
+ }
1323
+ if (options.onboard) {
1324
+ const doc = te.generateOnboarding();
1325
+ const outPath = path.join(process.cwd(), 'TEAM-ONBOARDING.md');
1326
+ fs.writeFileSync(outPath, doc, 'utf-8');
1327
+ console.log(C.success(`\n ✅ Onboarding doc generated: ${outPath}\n`));
1328
+ return;
1329
+ }
1330
+ const summary = te.getSummary();
1331
+ const thick = C.primary(hline('━'));
1332
+ console.clear();
1333
+ console.log();
1334
+ console.log(thick);
1335
+ console.log(C.primary.bold(centerText('👥 Team Intelligence')));
1336
+ console.log(thick);
1337
+ console.log();
1338
+ if (summary.length === 0) {
1339
+ console.log(C.warn(centerText('No team data yet. Members push their taste with `cell push`.\nThen patterns and knowledge map will populate automatically.')));
1340
+ console.log();
1341
+ console.log(thick);
1342
+ return;
1343
+ }
1344
+ for (const s of summary)
1345
+ console.log(C.info(` ${s}`));
1346
+ console.log();
1347
+ console.log(C.dim(' Commands:'));
1348
+ console.log(C.dim(' cell team --onboard Generate onboarding doc'));
1349
+ console.log(C.dim(' cell team --add-pattern <name> --desc <text> Add pattern'));
1350
+ console.log(C.dim(' cell push Share your taste'));
1351
+ console.log(C.dim(' cell pull Pull team taste'));
1352
+ console.log(C.dim(' cell silos Check knowledge gaps'));
1353
+ console.log();
1354
+ console.log(thick);
1355
+ });
1037
1356
  // ─── DAEMON COMMANDS ──────────────────────────────────
1038
1357
  const daemonCmd = program.command('daemon').description('Manage Cell Daemon (background service)');
1039
1358
  daemonCmd
@@ -1048,7 +1367,8 @@ daemonCmd
1048
1367
  console.log(` Health: http://localhost:${result.port}/health`);
1049
1368
  }
1050
1369
  catch (err) {
1051
- console.error(`❌ Failed to start daemon: ${err.message}`);
1370
+ const message = err instanceof Error ? err.message : String(err);
1371
+ console.error(`❌ Failed to start daemon: ${message}`);
1052
1372
  }
1053
1373
  });
1054
1374
  daemonCmd
@@ -1070,7 +1390,8 @@ daemonCmd
1070
1390
  console.log(`✅ Daemon restarted (PID: ${result.pid}, Port: ${result.port})`);
1071
1391
  }
1072
1392
  catch (err) {
1073
- console.error(`❌ Failed to restart daemon: ${err.message}`);
1393
+ const message = err instanceof Error ? err.message : String(err);
1394
+ console.error(`❌ Failed to restart daemon: ${message}`);
1074
1395
  }
1075
1396
  });
1076
1397
  daemonCmd
@@ -1092,6 +1413,34 @@ daemonCmd
1092
1413
  console.log(` Stale PID found: ${status.pid}`);
1093
1414
  }
1094
1415
  });
1416
+ // ─── Top-level start/stop shortcuts ────────────────────
1417
+ program
1418
+ .command('start')
1419
+ .description('Start the Cell Daemon (auto-starts file watcher)')
1420
+ .action(async () => {
1421
+ console.log(C.primary('Starting Cell Daemon...'));
1422
+ try {
1423
+ const { startDaemon } = await Promise.resolve().then(() => __importStar(require('./daemon/lifecycle')));
1424
+ const result = await startDaemon();
1425
+ console.log(C.success(`✅ Daemon started (PID: ${result.pid}, Port: ${result.port})`));
1426
+ console.log(C.info(` Health: http://localhost:${result.port}/health`));
1427
+ console.log(C.accent('\n👁️ Auto-Learn active — watching files for changes...'));
1428
+ console.log(C.dim(' Edit any source file → Cell learns automatically'));
1429
+ console.log(C.dim(' Stop daemon: cell stop\n'));
1430
+ }
1431
+ catch (err) {
1432
+ const message = err instanceof Error ? err.message : String(err);
1433
+ console.error(C.error(`❌ Failed to start daemon: ${message}`));
1434
+ }
1435
+ });
1436
+ program
1437
+ .command('stop')
1438
+ .description('Stop the Cell Daemon')
1439
+ .action(async () => {
1440
+ const { stopDaemon } = await Promise.resolve().then(() => __importStar(require('./daemon/lifecycle')));
1441
+ const result = stopDaemon();
1442
+ console.log(result.success ? C.success(`✅ ${result.message}`) : C.warn(`⚠️ ${result.message}`));
1443
+ });
1095
1444
  program
1096
1445
  .command('cloud')
1097
1446
  .description('Manage cloud sync')
@@ -1127,5 +1476,274 @@ program
1127
1476
  console.log(' Fully offline. Nothing leaves your machine.');
1128
1477
  console.log(' Turn on: cell cloud on');
1129
1478
  }));
1479
+ program
1480
+ .command('privacy')
1481
+ .description('Show privacy settings and current sharing status')
1482
+ .action(async () => {
1483
+ const http = await Promise.resolve().then(() => __importStar(require('http')));
1484
+ return new Promise((resolve) => {
1485
+ http.get('http://localhost:9876/privacy/mode', (res) => {
1486
+ let data = '';
1487
+ res.on('data', (chunk) => data += chunk);
1488
+ res.on('end', () => {
1489
+ try {
1490
+ const { mode } = JSON.parse(data);
1491
+ console.log(`\n🔒 Privacy Mode: ${mode}`);
1492
+ console.log(` Change: cell cloud on (community) | cell cloud off (private)\n`);
1493
+ }
1494
+ catch {
1495
+ console.log('\n🔒 Privacy Mode: private (daemon not reachable, showing default)\n');
1496
+ }
1497
+ resolve();
1498
+ });
1499
+ }).on('error', () => {
1500
+ console.log('\n🔒 Privacy Mode: private (daemon not reachable, showing default)\n');
1501
+ resolve();
1502
+ });
1503
+ });
1504
+ });
1505
+ // ─── Auto-Learn: File Watcher ──────────────────────────
1506
+ program
1507
+ .command('watch')
1508
+ .description('Watch files and learn automatically from every edit')
1509
+ .action(() => {
1510
+ const cellDir = path.join(process.cwd(), index_1.DEFAULT_CONFIG.cellDir);
1511
+ if (!fs.existsSync(cellDir)) {
1512
+ fs.mkdirSync(cellDir, { recursive: true });
1513
+ const store = new index_1.PatternStore(cellDir);
1514
+ store.save();
1515
+ }
1516
+ const store = new index_1.PatternStore(cellDir);
1517
+ const cellStore = new index_1.CellStore();
1518
+ const capture = new index_1.SignalCapture();
1519
+ const cascade = new index_1.ExtractionCascade();
1520
+ const cellDir2 = path.join(process.cwd(), '.cell');
1521
+ const blindSpots = new index_1.BlindSpotEngine(cellDir);
1522
+ const naming = new index_1.NamingEngine(cellDir2);
1523
+ const structure = new index_1.StructureEngine(cellDir2);
1524
+ const frontend = new index_1.FrontendEngine(cellDir2);
1525
+ const backend = new index_1.BackendEngine(cellDir2);
1526
+ const productivity = new index_1.ProductivityEngine(cellDir2);
1527
+ const syntax = new index_1.SyntaxEngine(cellDir2);
1528
+ const arch = new index_1.ArchitectureEngine(cellDir2);
1529
+ const knowledge = new index_1.KnowledgeGraphEngine(cellDir2);
1530
+ const filePrevMap = new Map();
1531
+ const timers = {};
1532
+ let learned = 0;
1533
+ function getLang(fp) {
1534
+ const ext = path.extname(fp).toLowerCase();
1535
+ const m = {
1536
+ '.ts': 'typescript', '.tsx': 'typescript', '.js': 'javascript', '.jsx': 'javascript',
1537
+ '.py': 'python', '.go': 'go', '.java': 'java', '.rb': 'ruby', '.rs': 'rust',
1538
+ '.cs': 'csharp', '.php': 'php', '.swift': 'swift', '.kt': 'kotlin',
1539
+ };
1540
+ return m[ext] || 'unknown';
1541
+ }
1542
+ const fileVersions = new Map();
1543
+ function processFile(filePath) {
1544
+ clearTimeout(timers[filePath]);
1545
+ timers[filePath] = setTimeout(() => {
1546
+ try {
1547
+ const current = fs.readFileSync(filePath, 'utf-8');
1548
+ const rel = path.relative(process.cwd(), filePath);
1549
+ const previous = fileVersions.get(filePath) || '';
1550
+ fileVersions.set(filePath, current);
1551
+ if (!previous || previous === current)
1552
+ return;
1553
+ const lang = getLang(filePath);
1554
+ const ctx = {
1555
+ language: lang,
1556
+ framework: 'unknown',
1557
+ fileType: path.extname(filePath),
1558
+ strictness: 'moderate',
1559
+ projectId: path.basename(process.cwd()),
1560
+ };
1561
+ capture.captureEditDiff(previous, current, ctx);
1562
+ const result = cascade.extract(previous, current, lang);
1563
+ const spots = blindSpots.analyze(current, lang);
1564
+ naming.analyze(current);
1565
+ structure.analyze(current);
1566
+ frontend.analyze(current);
1567
+ backend.analyze(current);
1568
+ syntax.analyze(current);
1569
+ arch.analyze(current, rel);
1570
+ knowledge.detectTechnologies(current, rel);
1571
+ knowledge.updateSession(rel, 'edited');
1572
+ productivity.analyzeEngineering(current, rel);
1573
+ if (previous)
1574
+ productivity.recordEdit(previous, current);
1575
+ for (const p of result.patterns) {
1576
+ store.addOrUpdatePattern(p.category, p.description, p.from, p.to, true, p.conditions, 'global', result.stepUsed, lang);
1577
+ }
1578
+ store.save();
1579
+ try {
1580
+ cellStore.syncFromPatternStore(store);
1581
+ }
1582
+ catch { }
1583
+ learned += result.patterns.length;
1584
+ const parts = [];
1585
+ if (result.patterns.length > 0)
1586
+ parts.push(C.success(`${result.patterns.length}p`));
1587
+ if (spots.length > 0)
1588
+ parts.push(C.warn(`${spots.length} blind spots`));
1589
+ console.log(C.success(` 📝 ${rel}`) + C.dim(` → ${parts.join(', ')} (total: ${learned})`));
1590
+ }
1591
+ catch { }
1592
+ }, 600);
1593
+ }
1594
+ function watchDir(dir) {
1595
+ try {
1596
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
1597
+ for (const e of entries) {
1598
+ const full = path.join(dir, e.name);
1599
+ if (e.isDirectory() && !['node_modules', '.fivo', '.git', 'dist', 'coverage', '.next', '.cache'].includes(e.name)) {
1600
+ watchDir(full);
1601
+ // Watch directory for new files
1602
+ try {
1603
+ fs.watch(full, (ev) => {
1604
+ if (ev === 'rename') {
1605
+ setTimeout(() => {
1606
+ try {
1607
+ const newEntries = fs.readdirSync(full, { withFileTypes: true });
1608
+ for (const ne of newEntries) {
1609
+ const nf = path.join(full, ne.name);
1610
+ if (ne.isFile() && /\.(ts|tsx|js|jsx|py|go|java|rb|rs|cs|php|swift|kt)$/.test(ne.name)) {
1611
+ if (!fileVersions.has(nf)) {
1612
+ fileVersions.set(nf, fs.readFileSync(nf, 'utf-8'));
1613
+ console.log(C.dim(` 📄 New file: ${path.relative(process.cwd(), nf)}`));
1614
+ }
1615
+ fs.watch(nf, (ev2) => { if (ev2 === 'change')
1616
+ processFile(nf); });
1617
+ }
1618
+ }
1619
+ }
1620
+ catch { }
1621
+ }, 200);
1622
+ }
1623
+ });
1624
+ }
1625
+ catch { }
1626
+ }
1627
+ else if (e.isFile() && /\.(ts|tsx|js|jsx|py|go|java|rb|rs|cs|php|swift|kt)$/.test(e.name)) {
1628
+ if (!fileVersions.has(full)) {
1629
+ try {
1630
+ fileVersions.set(full, fs.readFileSync(full, 'utf-8'));
1631
+ }
1632
+ catch { }
1633
+ }
1634
+ fs.watch(full, (ev) => { if (ev === 'change')
1635
+ processFile(full); });
1636
+ }
1637
+ }
1638
+ }
1639
+ catch { }
1640
+ }
1641
+ const thick = C.primary(hline('━'));
1642
+ console.clear();
1643
+ console.log();
1644
+ console.log(thick);
1645
+ console.log(C.primary.bold(centerText('👁️ Auto-Learn Mode')));
1646
+ console.log(thick);
1647
+ console.log();
1648
+ console.log(C.info(' Watching all source files for edits...'));
1649
+ console.log(C.dim(' Edit any file → Cell learns automatically'));
1650
+ console.log(C.dim(' Press Ctrl+C to stop'));
1651
+ console.log();
1652
+ console.log(thick);
1653
+ console.log();
1654
+ watchDir(process.cwd());
1655
+ });
1656
+ // ─── Auto-Learn: Git Hook ──────────────────────────────
1657
+ program
1658
+ .command('install-hook')
1659
+ .description('Install git hook for auto-learning on every commit')
1660
+ .action(() => {
1661
+ const gitDir = path.join(process.cwd(), '.git');
1662
+ if (!fs.existsSync(gitDir)) {
1663
+ console.log(C.error(' ❌ Not a git repository. Run `git init` first.'));
1664
+ return;
1665
+ }
1666
+ const hooksDir = path.join(gitDir, 'hooks');
1667
+ if (!fs.existsSync(hooksDir))
1668
+ fs.mkdirSync(hooksDir, { recursive: true });
1669
+ const hookPath = path.join(hooksDir, 'post-commit');
1670
+ const cellBin = process.argv[1];
1671
+ const hook = `#!/bin/sh
1672
+ # FIVO Cell — auto-learn on commit
1673
+ DIFF=$(git diff --cached --diff-algorithm=histogram)
1674
+ if [ -n "$DIFF" ]; then
1675
+ node "${cellBin}" learn --original "$(echo "$DIFF" | head -200)" --edited "committed" 2>/dev/null
1676
+ fi
1677
+ `;
1678
+ fs.writeFileSync(hookPath, hook, { mode: 0o755 });
1679
+ console.log(C.success('\n ✅ Git hook installed: post-commit'));
1680
+ console.log(C.info(' Every commit → Cell learns from the diff automatically.'));
1681
+ console.log(C.dim(' To remove: delete .git/hooks/post-commit\n'));
1682
+ });
1683
+ // ─── Auto-Start ───────────────────────────────────────
1684
+ program
1685
+ .command('autostart')
1686
+ .description('Auto-start Cell daemon on PC reboot')
1687
+ .addCommand(new commander_1.Command('on')
1688
+ .description('Enable auto-start on boot')
1689
+ .action(() => {
1690
+ const isWin = process.platform === 'win32';
1691
+ const cellCmd = process.argv[1];
1692
+ if (isWin) {
1693
+ const startupDir = path.join(os.homedir(), 'AppData', 'Roaming', 'Microsoft', 'Windows', 'Start Menu', 'Programs', 'Startup');
1694
+ if (!fs.existsSync(startupDir))
1695
+ fs.mkdirSync(startupDir, { recursive: true });
1696
+ const batPath = path.join(startupDir, 'fivo-cell-start.bat');
1697
+ fs.writeFileSync(batPath, `@echo off\r\n${cellCmd} start\r\n`, 'utf-8');
1698
+ console.log(C.success('\n ✅ Auto-start enabled (Windows)'));
1699
+ console.log(C.dim(` ${batPath}`));
1700
+ console.log(C.info(' PC reboot → Cell auto-starts\n'));
1701
+ }
1702
+ else {
1703
+ const bashrc = path.join(os.homedir(), '.bashrc');
1704
+ const line = `(cell status > /dev/null 2>&1) || ${cellCmd} start`;
1705
+ if (!fs.existsSync(bashrc))
1706
+ fs.writeFileSync(bashrc, '');
1707
+ const content = fs.readFileSync(bashrc, 'utf-8');
1708
+ if (!content.includes('cell start')) {
1709
+ fs.writeFileSync(bashrc, content + `\n# FIVO Cell auto-start\n${line}\n`);
1710
+ }
1711
+ console.log(C.success('\n ✅ Auto-start enabled (Linux/Mac)'));
1712
+ console.log(C.dim(` Added to ~/.bashrc`));
1713
+ console.log(C.info(' Terminal open → Cell auto-starts\n'));
1714
+ }
1715
+ }))
1716
+ .addCommand(new commander_1.Command('off')
1717
+ .description('Disable auto-start on boot')
1718
+ .action(() => {
1719
+ const isWin = process.platform === 'win32';
1720
+ if (isWin) {
1721
+ const startupDir = path.join(os.homedir(), 'AppData', 'Roaming', 'Microsoft', 'Windows', 'Start Menu', 'Programs', 'Startup');
1722
+ const batPath = path.join(startupDir, 'fivo-cell-start.bat');
1723
+ if (fs.existsSync(batPath))
1724
+ fs.unlinkSync(batPath);
1725
+ console.log(C.success('\n ✅ Auto-start disabled\n'));
1726
+ }
1727
+ else {
1728
+ const bashrc = path.join(os.homedir(), '.bashrc');
1729
+ if (fs.existsSync(bashrc)) {
1730
+ const content = fs.readFileSync(bashrc, 'utf-8')
1731
+ .replace(/\n# FIVO Cell auto-start\n.*\n?/, '\n')
1732
+ .trim();
1733
+ fs.writeFileSync(bashrc, content + '\n');
1734
+ }
1735
+ console.log(C.success('\n ✅ Auto-start disabled\n'));
1736
+ }
1737
+ }));
1738
+ // ─── Number Command Interception ──────────────────────
1739
+ const rawArgs = process.argv.slice(2);
1740
+ if (rawArgs.length === 0) {
1741
+ showBanner();
1742
+ process.exit(0);
1743
+ }
1744
+ const nums = parseNumberArg(rawArgs[0]);
1745
+ if (nums.length > 0) {
1746
+ runNumbers(nums);
1747
+ }
1130
1748
  program.parse(process.argv);
1131
1749
  //# sourceMappingURL=cli.js.map