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
@@ -1,18 +1,32 @@
1
1
  import { ExtractedPattern } from '../types';
2
+ import { SecurityPrediction } from './security-predictor';
3
+ import { ErrorPrediction } from './error-predictor';
2
4
  export interface CascadeResult {
3
5
  patterns: ExtractedPattern[];
4
- stepUsed: 'regex' | 'ast' | 'combined' | 'none';
6
+ stepUsed: 'ast' | 'regex' | 'heuristic' | 'combined' | 'none';
5
7
  latencyMs: number;
8
+ language?: string;
6
9
  }
7
10
  export declare class ExtractionCascade {
8
11
  private regexExtractor;
9
- private astExtractor;
12
+ private heuristicExtractor;
13
+ private astDiffer;
14
+ private securityPredictor;
15
+ private errorPredictor;
16
+ private pythonExtractor;
17
+ private goExtractor;
10
18
  constructor();
11
- extract(originalCode: string, editedCode: string): CascadeResult;
12
- extractAll(originalCode: string, editedCode: string): CascadeResult;
19
+ detectLanguage(code: string, hint?: string): string;
20
+ extract(originalCode: string, editedCode: string, language?: string): CascadeResult;
21
+ extractAll(originalCode: string, editedCode: string, language?: string): CascadeResult;
22
+ audit(code: string): {
23
+ security: SecurityPrediction[];
24
+ errors: ErrorPrediction[];
25
+ };
13
26
  getStats(): {
27
+ astPatterns: number;
14
28
  regexPatterns: number;
15
- astCapabilities: number;
29
+ heuristicCapabilities: number;
16
30
  };
17
31
  }
18
32
  //# sourceMappingURL=extraction-cascade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-cascade.d.ts","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;;IAOnC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;IAqBhE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;IAgBnE,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;CAM/D"}
1
+ {"version":3,"file":"extraction-cascade.d.ts","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,EAAqB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAkB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,EAAE,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAaD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAc;;IAYjC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IA2CnF,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IA2BtF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;IAOlF,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE;CAO1F"}
@@ -3,44 +3,115 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtractionCascade = void 0;
4
4
  const regex_extractor_1 = require("./regex-extractor");
5
5
  const ast_extractor_1 = require("./ast-extractor");
6
+ const ast_differ_1 = require("./ast-differ");
7
+ const security_predictor_1 = require("./security-predictor");
8
+ const error_predictor_1 = require("./error-predictor");
9
+ const python_extractor_1 = require("./python-extractor");
10
+ const go_extractor_1 = require("./go-extractor");
11
+ const AST_LANGUAGES = new Set(['typescript', 'javascript', 'ts', 'js', 'tsx', 'jsx']);
12
+ function detectLanguage(code, hint) {
13
+ if (hint && AST_LANGUAGES.has(hint.toLowerCase()))
14
+ return hint.toLowerCase();
15
+ if (/^\s*import\s+|^\s*export\s+|^\s*interface\s+|^\s*type\s+|:\s*(string|number|boolean|void)\b/m.test(code))
16
+ return 'typescript';
17
+ if (/^\s*(import|export)\s+|const\s+\w+\s*=\s*require|module\.exports/m.test(code))
18
+ return 'javascript';
19
+ if (/^\s*#!|^\s*def\s+|^\s*class\s+\w+.*:/m.test(code))
20
+ return 'python';
21
+ if (/^\s*(package|import)\s+[a-z]+\.[a-z]+|^\s*func\s+|^\s*type\s+\w+\s+struct/m.test(code))
22
+ return 'go';
23
+ return 'unknown';
24
+ }
6
25
  class ExtractionCascade {
7
26
  regexExtractor;
8
- astExtractor;
27
+ heuristicExtractor;
28
+ astDiffer;
29
+ securityPredictor;
30
+ errorPredictor;
31
+ pythonExtractor;
32
+ goExtractor;
9
33
  constructor() {
10
34
  this.regexExtractor = new regex_extractor_1.RegexExtractor();
11
- this.astExtractor = new ast_extractor_1.ASTExtractor();
35
+ this.heuristicExtractor = new ast_extractor_1.DiffPatternMatcher();
36
+ this.astDiffer = new ast_differ_1.AstDiffer();
37
+ this.securityPredictor = new security_predictor_1.SecurityPredictor();
38
+ this.errorPredictor = new error_predictor_1.ErrorPredictor();
39
+ this.pythonExtractor = new python_extractor_1.PythonExtractor();
40
+ this.goExtractor = new go_extractor_1.GoExtractor();
41
+ }
42
+ detectLanguage(code, hint) {
43
+ return detectLanguage(code, hint);
12
44
  }
13
- extract(originalCode, editedCode) {
45
+ extract(originalCode, editedCode, language) {
14
46
  const startTime = performance.now();
47
+ const lang = language || detectLanguage(originalCode || editedCode);
48
+ let astPatterns = [];
49
+ if (AST_LANGUAGES.has(lang)) {
50
+ astPatterns = this.astDiffer.extract(originalCode, editedCode);
51
+ }
52
+ if (astPatterns.length > 0) {
53
+ const latency = Math.round((performance.now() - startTime) * 100) / 100;
54
+ return { patterns: astPatterns, stepUsed: 'ast', latencyMs: latency, language: lang };
55
+ }
56
+ let langPatterns = [];
57
+ if (lang === 'python') {
58
+ langPatterns = this.pythonExtractor.extract(editedCode);
59
+ }
60
+ else if (lang === 'go') {
61
+ langPatterns = this.goExtractor.extract(editedCode);
62
+ }
63
+ if (langPatterns.length > 0) {
64
+ const latency = Math.round((performance.now() - startTime) * 100) / 100;
65
+ return { patterns: langPatterns, stepUsed: 'regex', latencyMs: latency, language: lang };
66
+ }
15
67
  const regexPatterns = this.regexExtractor.extractFromDiff(originalCode, editedCode);
16
68
  if (regexPatterns.length > 0) {
17
69
  const latency = Math.round((performance.now() - startTime) * 100) / 100;
18
- return { patterns: regexPatterns, stepUsed: 'regex', latencyMs: latency };
70
+ return { patterns: regexPatterns, stepUsed: 'regex', latencyMs: latency, language: lang };
19
71
  }
20
- const astPatterns = this.astExtractor.extract(originalCode, editedCode);
21
- if (astPatterns.length > 0) {
72
+ const heuristicPatterns = this.heuristicExtractor.extract(originalCode, editedCode);
73
+ if (heuristicPatterns.length > 0) {
22
74
  const latency = Math.round((performance.now() - startTime) * 100) / 100;
23
- return { patterns: astPatterns, stepUsed: 'ast', latencyMs: latency };
75
+ return { patterns: heuristicPatterns, stepUsed: 'heuristic', latencyMs: latency, language: lang };
24
76
  }
25
77
  const latency = Math.round((performance.now() - startTime) * 100) / 100;
26
- return { patterns: [], stepUsed: 'none', latencyMs: latency };
78
+ return { patterns: [], stepUsed: 'none', latencyMs: latency, language: lang };
27
79
  }
28
- extractAll(originalCode, editedCode) {
80
+ extractAll(originalCode, editedCode, language) {
29
81
  const startTime = performance.now();
82
+ const lang = language || detectLanguage(originalCode || editedCode);
83
+ let astPatterns = [];
84
+ if (AST_LANGUAGES.has(lang)) {
85
+ astPatterns = this.astDiffer.extract(originalCode, editedCode);
86
+ }
87
+ let langPatterns = [];
88
+ if (lang === 'python') {
89
+ langPatterns = this.pythonExtractor.extract(editedCode);
90
+ }
91
+ else if (lang === 'go') {
92
+ langPatterns = this.goExtractor.extract(editedCode);
93
+ }
30
94
  const regexPatterns = this.regexExtractor.extractFromDiff(originalCode, editedCode);
31
- const astPatterns = this.astExtractor.extract(originalCode, editedCode);
32
- const allPatterns = [...regexPatterns, ...astPatterns];
33
- const stepUsed = regexPatterns.length > 0 && astPatterns.length > 0 ? 'combined'
95
+ const heuristicPatterns = this.heuristicExtractor.extract(originalCode, editedCode);
96
+ const allPatterns = [...astPatterns, ...langPatterns, ...regexPatterns, ...heuristicPatterns];
97
+ const stepUsed = astPatterns.length > 0 ? 'ast'
34
98
  : regexPatterns.length > 0 ? 'regex'
35
- : astPatterns.length > 0 ? 'ast'
99
+ : heuristicPatterns.length > 0 ? 'heuristic'
36
100
  : 'none';
37
101
  const latency = Math.round((performance.now() - startTime) * 100) / 100;
38
- return { patterns: allPatterns, stepUsed, latencyMs: latency };
102
+ return { patterns: allPatterns, stepUsed, latencyMs: latency, language: lang };
103
+ }
104
+ audit(code) {
105
+ return {
106
+ security: this.securityPredictor.predict(code),
107
+ errors: this.errorPredictor.predict(code),
108
+ };
39
109
  }
40
110
  getStats() {
41
111
  return {
112
+ astPatterns: 11,
42
113
  regexPatterns: this.regexExtractor.getPatternCount(),
43
- astCapabilities: 4,
114
+ heuristicCapabilities: 4,
44
115
  };
45
116
  }
46
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-cascade.js","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AACnD,mDAA+C;AAQ/C,MAAa,iBAAiB;IACpB,cAAc,CAAiB;IAC/B,YAAY,CAAe;IAEnC;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,YAAoB,EAAE,UAAkB;QAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAEpF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACxE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAExE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACxE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QACxE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAChE,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,UAAkB;QACjD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAExE,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU;YAC9E,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;gBACpC,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;oBAChC,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAExE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IAED,QAAQ;QACN,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACpD,eAAe,EAAE,CAAC;SACnB,CAAC;IACJ,CAAC;CACF;AApDD,8CAoDC"}
1
+ {"version":3,"file":"extraction-cascade.js","sourceRoot":"","sources":["../../src/core/extraction-cascade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { Pattern } from '../types';
2
+ export interface FailureRecord {
3
+ patternId: string;
4
+ description: string;
5
+ from: string;
6
+ to: string;
7
+ rejectCount: number;
8
+ acceptCount: number;
9
+ totalSignals: number;
10
+ failureRate: number;
11
+ lastRejected: number;
12
+ category: string;
13
+ language: string;
14
+ commonAlternatives: string[];
15
+ }
16
+ export interface AvoidSuggestion {
17
+ patternId: string;
18
+ description: string;
19
+ failureRate: number;
20
+ severity: 'critical' | 'high' | 'medium' | 'low';
21
+ reason: string;
22
+ alternativeDescription: string;
23
+ developerCount: number;
24
+ }
25
+ export declare function recordFailure(pattern: Pattern, isReject: boolean, language?: string): FailureRecord;
26
+ export declare function getAvoidSuggestions(minFailureRate?: number): AvoidSuggestion[];
27
+ export declare function getFailureStats(): {
28
+ totalTracked: number;
29
+ criticalCount: number;
30
+ highCount: number;
31
+ mediumCount: number;
32
+ lowCount: number;
33
+ avgFailureRate: number;
34
+ };
35
+ export declare function getFailureRecord(patternId: string): FailureRecord | undefined;
36
+ export declare function getAllFailureRecords(): FailureRecord[];
37
+ export declare function clearFailures(): void;
38
+ //# sourceMappingURL=failure-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-memory.d.ts","sourceRoot":"","sources":["../../src/core/failure-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAOD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,GAAE,MAAkB,GAC3B,aAAa,CAiCf;AAED,wBAAgB,mBAAmB,CAAC,cAAc,GAAE,MAA0B,GAAG,eAAe,EAAE,CA8BjG;AAED,wBAAgB,eAAe,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAsBA;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE7E;AAED,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CAEtD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recordFailure = recordFailure;
4
+ exports.getAvoidSuggestions = getAvoidSuggestions;
5
+ exports.getFailureStats = getFailureStats;
6
+ exports.getFailureRecord = getFailureRecord;
7
+ exports.getAllFailureRecords = getAllFailureRecords;
8
+ exports.clearFailures = clearFailures;
9
+ const failureRecords = new Map();
10
+ const MAX_RECORDS = 500;
11
+ const FAILURE_THRESHOLD = 0.5;
12
+ function recordFailure(pattern, isReject, language = 'unknown') {
13
+ const key = pattern.patternId;
14
+ if (!failureRecords.has(key)) {
15
+ failureRecords.set(key, {
16
+ patternId: pattern.patternId,
17
+ description: pattern.description,
18
+ from: pattern.from,
19
+ to: pattern.to,
20
+ rejectCount: 0,
21
+ acceptCount: 0,
22
+ totalSignals: 0,
23
+ failureRate: 0,
24
+ lastRejected: 0,
25
+ category: pattern.category,
26
+ language,
27
+ commonAlternatives: [],
28
+ });
29
+ }
30
+ const record = failureRecords.get(key);
31
+ record.totalSignals++;
32
+ if (isReject) {
33
+ record.rejectCount++;
34
+ record.lastRejected = Date.now();
35
+ }
36
+ else {
37
+ record.acceptCount++;
38
+ }
39
+ record.failureRate = record.totalSignals > 0
40
+ ? record.rejectCount / record.totalSignals
41
+ : 0;
42
+ return record;
43
+ }
44
+ function getAvoidSuggestions(minFailureRate = FAILURE_THRESHOLD) {
45
+ const suggestions = [];
46
+ for (const record of failureRecords.values()) {
47
+ if (record.failureRate < minFailureRate)
48
+ continue;
49
+ if (record.totalSignals < 3)
50
+ continue;
51
+ let severity;
52
+ if (record.failureRate >= 0.8)
53
+ severity = 'critical';
54
+ else if (record.failureRate >= 0.7)
55
+ severity = 'high';
56
+ else if (record.failureRate >= 0.6)
57
+ severity = 'medium';
58
+ else
59
+ severity = 'low';
60
+ const alternatives = findAlternatives(record);
61
+ const reason = `Rejected ${record.rejectCount}/${record.totalSignals} times (${Math.round(record.failureRate * 100)}% failure rate)`;
62
+ suggestions.push({
63
+ patternId: record.patternId,
64
+ description: record.description,
65
+ failureRate: record.failureRate,
66
+ severity,
67
+ reason,
68
+ alternativeDescription: alternatives.length > 0
69
+ ? `Consider: ${alternatives[0].description}`
70
+ : 'No clear alternative found',
71
+ developerCount: 1,
72
+ });
73
+ }
74
+ return suggestions.sort((a, b) => b.failureRate - a.failureRate);
75
+ }
76
+ function getFailureStats() {
77
+ const records = Array.from(failureRecords.values());
78
+ const total = records.length;
79
+ let critical = 0, high = 0, medium = 0, low = 0;
80
+ for (const r of records) {
81
+ if (r.failureRate >= 0.8)
82
+ critical++;
83
+ else if (r.failureRate >= 0.7)
84
+ high++;
85
+ else if (r.failureRate >= 0.6)
86
+ medium++;
87
+ else if (r.failureRate >= FAILURE_THRESHOLD)
88
+ low++;
89
+ }
90
+ return {
91
+ totalTracked: total,
92
+ criticalCount: critical,
93
+ highCount: high,
94
+ mediumCount: medium,
95
+ lowCount: low,
96
+ avgFailureRate: total > 0
97
+ ? records.reduce((s, r) => s + r.failureRate, 0) / total
98
+ : 0,
99
+ };
100
+ }
101
+ function findAlternatives(record) {
102
+ return [];
103
+ }
104
+ function getFailureRecord(patternId) {
105
+ return failureRecords.get(patternId);
106
+ }
107
+ function getAllFailureRecords() {
108
+ return Array.from(failureRecords.values());
109
+ }
110
+ function clearFailures() {
111
+ failureRecords.clear();
112
+ }
113
+ //# sourceMappingURL=failure-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-memory.js","sourceRoot":"","sources":["../../src/core/failure-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export interface FrontendData {
2
+ version: number;
3
+ updated: number;
4
+ framework: {
5
+ name: string;
6
+ confidence: number;
7
+ };
8
+ stateManagement: {
9
+ name: string;
10
+ confidence: number;
11
+ };
12
+ dataFetching: {
13
+ name: string;
14
+ confidence: number;
15
+ };
16
+ styling: {
17
+ name: string;
18
+ confidence: number;
19
+ };
20
+ componentStyle: {
21
+ functional: number;
22
+ classBased: number;
23
+ hooks: number;
24
+ };
25
+ totalComponents: number;
26
+ }
27
+ export declare class FrontendEngine {
28
+ private store;
29
+ private data;
30
+ constructor(cellDir?: string);
31
+ analyze(code: string): {
32
+ componentsFound: number;
33
+ };
34
+ getSummary(): string[];
35
+ private detectFramework;
36
+ private detectStateMgmt;
37
+ private detectDataFetching;
38
+ private detectStyling;
39
+ }
40
+ //# sourceMappingURL=frontend-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-engine.d.ts","sourceRoot":"","sources":["../../src/core/frontend-engine.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,cAAc,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,IAAI,CAAe;gBAEf,OAAO,CAAC,EAAE,MAAM;IAa5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;IA4ClD,UAAU,IAAI,MAAM,EAAE;IAUtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,aAAa;CAWtB"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrontendEngine = void 0;
4
+ const cell_store_1 = require("./cell-store");
5
+ class FrontendEngine {
6
+ store;
7
+ data;
8
+ constructor(cellDir) {
9
+ this.store = new cell_store_1.CellStore(cellDir);
10
+ this.data = this.store.read('frontend.json', 'personal', 'architecture') || {
11
+ version: 1, updated: Date.now(),
12
+ framework: { name: 'unknown', confidence: 0 },
13
+ stateManagement: { name: 'unknown', confidence: 0 },
14
+ dataFetching: { name: 'unknown', confidence: 0 },
15
+ styling: { name: 'unknown', confidence: 0 },
16
+ componentStyle: { functional: 0, classBased: 0, hooks: 0 },
17
+ totalComponents: 0,
18
+ };
19
+ }
20
+ analyze(code) {
21
+ if (!code || code.length < 20)
22
+ return { componentsFound: 0 };
23
+ let found = 0;
24
+ // Framework
25
+ const fw = this.detectFramework(code);
26
+ if (fw.confidence > this.data.framework.confidence) {
27
+ this.data.framework = fw;
28
+ found++;
29
+ }
30
+ // State management
31
+ const sm = this.detectStateMgmt(code);
32
+ if (sm.confidence > this.data.stateManagement.confidence) {
33
+ this.data.stateManagement = sm;
34
+ found++;
35
+ }
36
+ // Data fetching
37
+ const df = this.detectDataFetching(code);
38
+ if (df.confidence > this.data.dataFetching.confidence) {
39
+ this.data.dataFetching = df;
40
+ found++;
41
+ }
42
+ // Styling
43
+ const st = this.detectStyling(code);
44
+ if (st.confidence > this.data.styling.confidence) {
45
+ this.data.styling = st;
46
+ found++;
47
+ }
48
+ // Component style
49
+ this.data.totalComponents += (code.match(/export\s+(?:default\s+)?function\s+\w+|const\s+\w+\s*[:=]\s*(?:React\.)?(?:FC|FunctionComponent)/g) || []).length;
50
+ const funcComps = (code.match(/export\s+(?:default\s+)?function\s+\w+|const\s+\w+\s*[:=]\s*(?:async\s*)?\(/g) || []).length;
51
+ const classComps = (code.match(/class\s+\w+\s+extends\s+(?:React\.)?Component/g) || []).length;
52
+ const hookCalls = (code.match(/(?:useContext|useState|useEffect|useReducer|useCallback|useMemo|useRef|useQuery|useMutation)\s*\(/g) || []).length;
53
+ if (funcComps > 0)
54
+ this.data.componentStyle.functional += funcComps;
55
+ if (classComps > 0)
56
+ this.data.componentStyle.classBased += classComps;
57
+ if (hookCalls > 0)
58
+ this.data.componentStyle.hooks += hookCalls;
59
+ if (found > 0 || funcComps > 0 || classComps > 0 || hookCalls > 0) {
60
+ this.data.updated = Date.now();
61
+ this.store.write('frontend.json', this.data, 'personal', 'architecture');
62
+ }
63
+ return { componentsFound: funcComps + classComps };
64
+ }
65
+ getSummary() {
66
+ const lines = [];
67
+ if (this.data.totalComponents === 0 && this.data.framework.confidence === 0)
68
+ return [];
69
+ lines.push(`Framework: ${this.data.framework.name} · State: ${this.data.stateManagement.name} · Style: ${this.data.styling.name}`);
70
+ if (this.data.totalComponents > 0) {
71
+ lines.push(`Components: ${this.data.componentStyle.functional} functional, ${this.data.componentStyle.classBased} class-based · Hooks: ${this.data.componentStyle.hooks}`);
72
+ }
73
+ return lines;
74
+ }
75
+ detectFramework(code) {
76
+ if (/from\s+['"]react['"]/i.test(code) || /import.*\breact\b/i.test(code))
77
+ return { name: 'React', confidence: 0.9 };
78
+ if (/from\s+['"]vue['"]/i.test(code) || /import.*\bvue\b/i.test(code))
79
+ return { name: 'Vue', confidence: 0.85 };
80
+ if (/from\s+['"]@angular/i.test(code))
81
+ return { name: 'Angular', confidence: 0.85 };
82
+ if (/from\s+['"]svelte['"]/i.test(code))
83
+ return { name: 'Svelte', confidence: 0.8 };
84
+ if (/from\s+['"]solid-js['"]/i.test(code))
85
+ return { name: 'Solid', confidence: 0.75 };
86
+ return { name: 'unknown', confidence: 0 };
87
+ }
88
+ detectStateMgmt(code) {
89
+ if (/from\s+['"]redux['"]/i.test(code) || /from\s+['"]@reduxjs/i.test(code))
90
+ return { name: 'Redux', confidence: 0.9 };
91
+ if (/from\s+['"]zustand['"]/i.test(code))
92
+ return { name: 'Zustand', confidence: 0.85 };
93
+ if (/from\s+['"]jotai['"]/i.test(code))
94
+ return { name: 'Jotai', confidence: 0.8 };
95
+ if (/from\s+['"]mobx['"]/i.test(code))
96
+ return { name: 'MobX', confidence: 0.85 };
97
+ if (/\buseContext\s*\(/i.test(code) && /\bcreateContext\s*\(/i.test(code))
98
+ return { name: 'Context API', confidence: 0.7 };
99
+ if (/from\s+['"]@ngrx/i.test(code))
100
+ return { name: 'NgRx', confidence: 0.8 };
101
+ return { name: 'unknown', confidence: 0 };
102
+ }
103
+ detectDataFetching(code) {
104
+ if (/from\s+['"]@tanstack\/react-query['"]/i.test(code) || /from\s+['"]react-query['"]/i.test(code))
105
+ return { name: 'React Query', confidence: 0.9 };
106
+ if (/from\s+['"]swr['"]/i.test(code))
107
+ return { name: 'SWR', confidence: 0.85 };
108
+ if (/from\s+['"]@apollo/i.test(code))
109
+ return { name: 'Apollo', confidence: 0.85 };
110
+ if (/\baxios\b/i.test(code) && /\.(?:get|post|put|delete)\s*\(/i.test(code))
111
+ return { name: 'Axios', confidence: 0.7 };
112
+ if (/\bfetch\s*\(/i.test(code) && !/from\s+['"]/i.test(code))
113
+ return { name: 'fetch', confidence: 0.5 };
114
+ return { name: 'unknown', confidence: 0 };
115
+ }
116
+ detectStyling(code) {
117
+ if (/\bclassName\s*:?\s*['"]\s*(?:flex|grid|text-|bg-|p-[0-9]|m-[0-9])/.test(code) || /from\s+['"]..\/tailwind/i.test(code))
118
+ return { name: 'Tailwind', confidence: 0.85 };
119
+ if (/\.module\.(css|scss)/.test(code) || /from\s+['"][^'"]+\.module\.(css|scss)['"]/.test(code))
120
+ return { name: 'CSS Modules', confidence: 0.8 };
121
+ if (/from\s+['"]styled-components['"]/i.test(code) || /styled\.\w+`/i.test(code))
122
+ return { name: 'Styled Components', confidence: 0.85 };
123
+ if (/from\s+['"]@emotion/i.test(code))
124
+ return { name: 'Emotion', confidence: 0.8 };
125
+ return { name: 'unknown', confidence: 0 };
126
+ }
127
+ }
128
+ exports.FrontendEngine = FrontendEngine;
129
+ //# sourceMappingURL=frontend-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-engine.js","sourceRoot":"","sources":["../../src/core/frontend-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ExtractedPattern } from '../types';
2
+ export declare class GoExtractor {
3
+ extract(code: string): ExtractedPattern[];
4
+ }
5
+ //# sourceMappingURL=go-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-extractor.d.ts","sourceRoot":"","sources":["../../src/core/go-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA+C5C,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE;CAiB1C"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoExtractor = void 0;
4
+ const GO_PATTERNS = [
5
+ {
6
+ name: 'naked_return',
7
+ category: 'return_style',
8
+ regex: /\bfunc\s+\w+.*\(.*\w+.*\)\s+\(?.*\w+.*\)?\s*\{[\s\S]*?\breturn\b(?!\s+\w)/g,
9
+ description: 'Prefers explicit returns over naked returns',
10
+ },
11
+ {
12
+ name: 'underscore_import',
13
+ category: 'import_style',
14
+ regex: /^\s*_ "[\w/]+"/gm,
15
+ description: 'Side-effect imports should have documented reason',
16
+ },
17
+ {
18
+ name: 'panic_error',
19
+ category: 'error_handling',
20
+ regex: /\bpanic\(/g,
21
+ description: 'Prefers error returns over panic()',
22
+ },
23
+ {
24
+ name: 'global_var',
25
+ category: 'variable_scope',
26
+ regex: /^\s*var\s+\w+\s+\w+\s*$/gm,
27
+ description: 'Prefers local scope over package-level variables',
28
+ },
29
+ {
30
+ name: 'goroutine_leak',
31
+ category: 'concurrency',
32
+ regex: /^\s*go\s+\w+/gm,
33
+ description: 'Goroutine without sync.WaitGroup or channel',
34
+ },
35
+ {
36
+ name: 'init_func',
37
+ category: 'code_organization',
38
+ regex: /^\s*func\s+init\(\)/gm,
39
+ description: 'init() makes testing difficult',
40
+ },
41
+ {
42
+ name: 'string_format',
43
+ category: 'string_style',
44
+ regex: /fmt\.Sprintf\(/g,
45
+ description: 'Prefers string concatenation over fmt.Sprintf for simple cases',
46
+ },
47
+ ];
48
+ class GoExtractor {
49
+ extract(code) {
50
+ const results = [];
51
+ for (const p of GO_PATTERNS) {
52
+ const matches = code.match(p.regex);
53
+ if (matches) {
54
+ results.push({
55
+ category: p.category,
56
+ description: p.description,
57
+ from: p.name,
58
+ to: p.name.replace(/_/g, '_fixed'),
59
+ confidenceDelta: Math.min(0.15, matches.length * 0.05),
60
+ conditions: [],
61
+ });
62
+ }
63
+ }
64
+ return results;
65
+ }
66
+ }
67
+ exports.GoExtractor = GoExtractor;
68
+ //# sourceMappingURL=go-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-extractor.js","sourceRoot":"","sources":["../../src/core/go-extractor.ts"],"names":[],"mappings":";;;AAEA,MAAM,WAAW,GAA6E;IAC5F;QACE,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,4EAA4E;QACnF,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,oCAAoC;KAClD;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kDAAkD;KAChE;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,gEAAgE;KAC9E;CACF,CAAC;AAEF,MAAa,WAAW;IACtB,OAAO,CAAC,IAAY;QAClB,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAClC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;oBACtD,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAlBD,kCAkBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAiBD,wBAAgB,mBAAmB,IAAI,MAAM,CAU5C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEnE"}
1
+ {"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEnE"}