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
@@ -0,0 +1,783 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cross_layer_intelligence_1 = require("../cross-layer-intelligence");
4
+ let hvPass = 0;
5
+ let hvFail = 0;
6
+ const hvErrors = [];
7
+ function check(cond, msg) {
8
+ if (cond) {
9
+ hvPass++;
10
+ console.log(` ✅ ${msg}`);
11
+ }
12
+ else {
13
+ hvFail++;
14
+ const m = ` ❌ FAIL: ${msg}`;
15
+ console.log(m);
16
+ hvErrors.push(m);
17
+ }
18
+ }
19
+ function gt(a, b, msg) {
20
+ if (a > b) {
21
+ hvPass++;
22
+ console.log(` ✅ ${msg} (${a} > ${b})`);
23
+ }
24
+ else {
25
+ hvFail++;
26
+ const m = ` ❌ FAIL: ${msg} — ${a} not > ${b}`;
27
+ console.log(m);
28
+ hvErrors.push(m);
29
+ }
30
+ }
31
+ function lt(a, b, msg) {
32
+ if (a < b) {
33
+ hvPass++;
34
+ console.log(` ✅ ${msg} (${a} < ${b})`);
35
+ }
36
+ else {
37
+ hvFail++;
38
+ const m = ` ❌ FAIL: ${msg} — ${a} not < ${b}`;
39
+ console.log(m);
40
+ hvErrors.push(m);
41
+ }
42
+ }
43
+ function gte(a, b, msg) {
44
+ if (a >= b) {
45
+ hvPass++;
46
+ console.log(` ✅ ${msg} (${a} >= ${b})`);
47
+ }
48
+ else {
49
+ hvFail++;
50
+ const m = ` ❌ FAIL: ${msg} — ${a} not >= ${b}`;
51
+ console.log(m);
52
+ hvErrors.push(m);
53
+ }
54
+ }
55
+ function neq(a, b, msg) {
56
+ if (a !== b) {
57
+ hvPass++;
58
+ console.log(` ✅ ${msg}`);
59
+ }
60
+ else {
61
+ hvFail++;
62
+ const m = ` ❌ FAIL: ${msg} — values are identical`;
63
+ console.log(m);
64
+ hvErrors.push(m);
65
+ }
66
+ }
67
+ describe('CHAPTER 9 — HOSTILE VERIFICATION', () => {
68
+ beforeAll(() => { (0, cross_layer_intelligence_1.resetCrossLayer)(); });
69
+ afterAll(() => {
70
+ console.log('\n' + '='.repeat(60));
71
+ console.log('HOSTILE VERDICT');
72
+ console.log('='.repeat(60));
73
+ console.log(` Passed: ${hvPass}`);
74
+ console.log(` Failed: ${hvFail}`);
75
+ console.log(` Total: ${hvPass + hvFail}\n`);
76
+ if (hvFail === 0)
77
+ console.log(' 🔒 CHAPTER 9 — PASSED');
78
+ else {
79
+ console.log(` ❌ ${hvFail} FAILURES:`);
80
+ for (const e of hvErrors)
81
+ console.log(` ${e}`);
82
+ }
83
+ (0, cross_layer_intelligence_1.resetCrossLayer)();
84
+ });
85
+ // ===================================================================
86
+ // T1: 100 devs, 10 teams, 5 orgs — full cross-layer pipeline
87
+ // ===================================================================
88
+ test('T1: 100 devs, 10 teams, 5 orgs — full pipeline', () => {
89
+ console.log('\n--- T1: 100 devs, 10 teams, 5 orgs ---\n');
90
+ const start = Date.now();
91
+ // Build Unified Contexts for 100 developers across 5 orgs
92
+ const orgs = ['org-alpha', 'org-beta', 'org-gamma', 'org-delta', 'org-epsilon'];
93
+ const teams = ['team-frontend', 'team-backend', 'team-devops', 'team-data', 'team-mobile', 'team-security', 'team-qa', 'team-arch', 'team-ml', 'team-platform'];
94
+ const langs = ['typescript', 'python', 'go', 'rust', 'java', 'kotlin', 'swift', 'ruby'];
95
+ const cats = ['testing', 'data', 'devops', 'ui', 'async', 'security', 'api', 'performance'];
96
+ const contexts = [];
97
+ for (let d = 0; d < 100; d++) {
98
+ const orgIdx = d % 5;
99
+ const teamIdx = d % 10;
100
+ const devLangs = [langs[Math.floor(Math.random() * langs.length)]];
101
+ if (Math.random() > 0.5)
102
+ devLangs.push(langs[Math.floor(Math.random() * langs.length)]);
103
+ const devCats = [cats[Math.floor(Math.random() * cats.length)]];
104
+ if (Math.random() > 0.5)
105
+ devCats.push(cats[Math.floor(Math.random() * cats.length)]);
106
+ const ctx = (0, cross_layer_intelligence_1.buildUnifiedContext)({
107
+ developerId: `dev_${d}`,
108
+ personal: {
109
+ languages: devLangs,
110
+ topCategories: devCats,
111
+ patternsUsed: Math.floor(Math.random() * 100) + 5,
112
+ successRate: 0.3 + Math.random() * 0.6,
113
+ avgConfidence: 0.4 + Math.random() * 0.5,
114
+ avgHealth: 0.3 + Math.random() * 0.6,
115
+ },
116
+ project: {
117
+ projectId: `proj_${orgIdx}_${teamIdx}`,
118
+ primaryLanguage: devLangs[0],
119
+ framework: Math.random() > 0.5 ? 'react' : Math.random() > 0.5 ? 'express' : null,
120
+ architecture: ['microservices', 'monolith', 'layered', 'event-driven'][Math.floor(Math.random() * 4)],
121
+ complexity: ['low', 'medium', 'high'][Math.floor(Math.random() * 3)],
122
+ maturity: ['new', 'developing', 'mature', 'legacy'][Math.floor(Math.random() * 4)],
123
+ testingStyle: ['tdd', 'integration', 'e2e', 'minimal'][Math.floor(Math.random() * 4)],
124
+ riskScore: Math.floor(Math.random() * 60),
125
+ developmentStyle: ['agile', 'waterfall', 'hybrid'][Math.floor(Math.random() * 3)],
126
+ },
127
+ team: {
128
+ teamId: teams[teamIdx],
129
+ teamName: `Team-${teams[teamIdx]}`,
130
+ memberCount: 8 + Math.floor(Math.random() * 12),
131
+ successRate: 0.4 + Math.random() * 0.5,
132
+ topLanguages: [langs[Math.floor(Math.random() * langs.length)]],
133
+ topCategories: [cats[Math.floor(Math.random() * cats.length)]],
134
+ style: ['quality-driven', 'experiment-driven', 'speed-driven', 'stability-driven'][Math.floor(Math.random() * 4)],
135
+ riskLevel: ['low', 'medium', 'high'][Math.floor(Math.random() * 3)],
136
+ riskScore: Math.floor(Math.random() * 60),
137
+ testingAdoption: Math.floor(Math.random() * 80) + 10,
138
+ },
139
+ org: {
140
+ orgId: orgs[orgIdx],
141
+ orgName: `Org-${orgs[orgIdx]}`,
142
+ teamCount: 10,
143
+ memberCount: 20 + Math.floor(Math.random() * 30),
144
+ avgSuccessRate: 0.5 + Math.random() * 0.3,
145
+ totalOutcomes: 500 + Math.floor(Math.random() * 2000),
146
+ },
147
+ community: {
148
+ totalPatterns: 500,
149
+ totalDevs: 5000,
150
+ totalOutcomes: 50000,
151
+ avgSuccessRate: 0.65,
152
+ topCategories: ['testing', 'data', 'devops', 'ui'],
153
+ patternRankings: { 'testing_p1': 1, 'data_p1': 2, 'devops_p1': 3 },
154
+ },
155
+ });
156
+ contexts.push(ctx);
157
+ }
158
+ const buildTime = Date.now() - start;
159
+ console.log(` Built ${contexts.length} contexts in ${buildTime}ms`);
160
+ lt(buildTime, 10000, `Build 100 contexts < 10s (was ${buildTime}ms)`);
161
+ check(contexts.every(c => c.developerId.startsWith('dev_')), 'All contexts have developer IDs');
162
+ check(contexts.every(c => c.personal !== null), 'All contexts have personal data');
163
+ check(contexts.every(c => c.project !== null), 'All contexts have project data');
164
+ check(contexts.every(c => c.team !== null), 'All contexts have team data');
165
+ check(contexts.every(c => c.org !== null), 'All contexts have org data');
166
+ check(contexts.every(c => c.community !== null), 'All contexts have community data');
167
+ check(contexts.every(c => c.combined.primaryLanguages.length > 0), 'All contexts have primary languages');
168
+ // Compute Intelligence Scores
169
+ const scores = contexts.map(ctx => (0, cross_layer_intelligence_1.computeIntelligenceScore)({
170
+ personalSuccessRate: ctx.personal?.successRate,
171
+ personalConfidence: ctx.personal?.avgConfidence,
172
+ personalPatternsUsed: ctx.personal?.patternsUsed,
173
+ orgTeamSuccessRate: ctx.team?.successRate,
174
+ orgTeamRiskScore: ctx.team?.riskScore,
175
+ dnaRiskScore: ctx.project?.riskScore,
176
+ riskLevel: ctx.team?.riskLevel,
177
+ communityReputation: Math.random() * 0.8,
178
+ }));
179
+ console.log(` Intelligence scores computed for ${scores.length} devs`);
180
+ check(scores.every(s => s.overallScore >= 0 && s.overallScore <= 100), 'All scores in 0-100 range');
181
+ check(scores.every(s => Object.keys(s.dimensions).length === 7), 'All scores have 7 dimensions');
182
+ check(scores.every(s => s.sampleSize >= 5), 'All scores have sample size >= 5');
183
+ // Generate evidence for 100 patterns
184
+ const evidences = contexts.slice(0, 100).map((ctx, i) => (0, cross_layer_intelligence_1.generateEvidence)({
185
+ patternId: `pattern_${i}`,
186
+ category: cats[i % cats.length],
187
+ personalSuccessRate: ctx.personal?.successRate,
188
+ personalSampleSize: ctx.personal?.patternsUsed,
189
+ communitySuccessRate: 0.6 + Math.random() * 0.3,
190
+ communitySampleSize: 100 + Math.floor(Math.random() * 500),
191
+ orgSuccessRate: ctx.team?.successRate,
192
+ orgSampleSize: ctx.org?.totalOutcomes,
193
+ graphInfluenceScore: Math.random() * 0.8,
194
+ dnaSimilarity: Math.random() * 0.7,
195
+ outcomeConfidence: Math.random() * 0.9,
196
+ }));
197
+ console.log(` Generated ${evidences.length} evidence sets`);
198
+ check(evidences.every(e => e.evidence.length >= 2), 'All evidence sets have >= 2 points');
199
+ check(evidences.some(e => e.evidence.some(ev => ev.type === 'personal')), 'Has personal evidence');
200
+ check(evidences.some(e => e.evidence.some(ev => ev.type === 'community')), 'Has community evidence');
201
+ const allTime = Date.now() - start;
202
+ console.log(` Total pipeline time: ${allTime}ms`);
203
+ lt(allTime, 15000, `Full pipeline < 15s (was ${allTime}ms)`);
204
+ });
205
+ // ===================================================================
206
+ // T2: 1000 devs, 50 teams, 20 orgs — scale
207
+ // ===================================================================
208
+ test('T2: 1000 devs scale test', () => {
209
+ console.log('\n--- T2: 1000 devs scale ---\n');
210
+ const start = Date.now();
211
+ for (let d = 0; d < 1000; d++) {
212
+ (0, cross_layer_intelligence_1.buildUnifiedContext)({
213
+ developerId: `scale_dev_${d}`,
214
+ personal: {
215
+ languages: ['typescript'],
216
+ topCategories: ['testing'],
217
+ patternsUsed: 20 + (d % 50),
218
+ successRate: 0.5 + (d % 100) * 0.003,
219
+ },
220
+ project: {
221
+ projectId: `scale_proj_${d % 50}`,
222
+ primaryLanguage: 'typescript',
223
+ architecture: 'microservices',
224
+ complexity: 'medium',
225
+ testingStyle: 'integration',
226
+ },
227
+ team: {
228
+ teamId: `scale_team_${d % 50}`,
229
+ teamName: `Scale-Team-${d % 50}`,
230
+ memberCount: 20,
231
+ successRate: 0.6,
232
+ testingAdoption: 50,
233
+ },
234
+ org: {
235
+ orgId: `scale_org_${d % 20}`,
236
+ orgName: `Scale-Org-${d % 20}`,
237
+ teamCount: 50,
238
+ memberCount: 1000,
239
+ avgSuccessRate: 0.6,
240
+ totalOutcomes: 10000,
241
+ },
242
+ community: {
243
+ totalPatterns: 500,
244
+ totalDevs: 5000,
245
+ totalOutcomes: 50000,
246
+ avgSuccessRate: 0.65,
247
+ topCategories: ['testing', 'data'],
248
+ },
249
+ });
250
+ }
251
+ const elapsed = Date.now() - start;
252
+ console.log(` Built 1000 contexts in ${elapsed}ms`);
253
+ lt(elapsed, 30000, `Build 1000 contexts < 30s (was ${elapsed}ms)`);
254
+ // Intelligence scores at scale
255
+ const sStart = Date.now();
256
+ for (let d = 0; d < 1000; d++) {
257
+ (0, cross_layer_intelligence_1.computeIntelligenceScore)({
258
+ personalSuccessRate: 0.5 + (d % 100) * 0.003,
259
+ personalPatternsUsed: 20 + (d % 50),
260
+ communityReputation: (d % 100) * 0.008,
261
+ orgTeamSuccessRate: 0.6,
262
+ riskLevel: d % 3 === 0 ? 'low' : d % 3 === 1 ? 'medium' : 'high',
263
+ });
264
+ }
265
+ const sTime = Date.now() - sStart;
266
+ console.log(` 1000 scores in ${sTime}ms`);
267
+ lt(sTime, 5000, `1000 scores < 5s (was ${sTime}ms)`);
268
+ });
269
+ // ===================================================================
270
+ // T3: Unified context — different combos, cached context
271
+ // ===================================================================
272
+ test('T3: Unified context combos and caching', () => {
273
+ console.log('\n--- T3: Context combos ---\n');
274
+ // Developer only — no org, no community
275
+ const soloCtx = (0, cross_layer_intelligence_1.buildUnifiedContext)({
276
+ developerId: 'solo_dev',
277
+ personal: { languages: ['python'], topCategories: ['data'], patternsUsed: 15, successRate: 0.8 },
278
+ });
279
+ check(soloCtx.personal !== null, 'Solo dev has personal context');
280
+ check(soloCtx.project === null, 'Solo dev has no project context');
281
+ check(soloCtx.team === null, 'Solo dev has no team context');
282
+ check(soloCtx.org === null, 'Solo dev has no org context');
283
+ check(soloCtx.community === null, 'Solo dev has no community context');
284
+ check(!soloCtx.combined.orgAligned, 'Solo dev not org aligned');
285
+ check(!soloCtx.combined.communityAligned, 'Solo dev not community aligned');
286
+ // Full context — all layers
287
+ const fullCtx = (0, cross_layer_intelligence_1.buildUnifiedContext)({
288
+ developerId: 'full_dev',
289
+ personal: { languages: ['typescript', 'go'], topCategories: ['testing', 'devops'], patternsUsed: 100, successRate: 0.75, avgConfidence: 0.8, avgHealth: 0.7 },
290
+ project: { projectId: 'p1', primaryLanguage: 'typescript', framework: 'nextjs', architecture: 'microservices', complexity: 'high', maturity: 'mature', testingStyle: 'tdd', riskScore: 20, developmentStyle: 'agile', fingerprint: 'fp1' },
291
+ team: { teamId: 't1', teamName: 'Platform', memberCount: 12, successRate: 0.78, topLanguages: ['typescript'], topCategories: ['testing'], style: 'quality-driven', riskLevel: 'low', riskScore: 25, testingAdoption: 75 },
292
+ org: { orgId: 'o1', orgName: 'Acme', teamCount: 8, memberCount: 96, avgSuccessRate: 0.7, totalOutcomes: 5000 },
293
+ community: { totalPatterns: 1000, totalDevs: 10000, totalOutcomes: 100000, avgSuccessRate: 0.65, topCategories: ['testing', 'data', 'devops'] },
294
+ });
295
+ check(fullCtx.personal !== null, 'Full dev has personal context');
296
+ check(fullCtx.project !== null, 'Full dev has project context');
297
+ check(fullCtx.team !== null, 'Full dev has team context');
298
+ check(fullCtx.org !== null, 'Full dev has org context');
299
+ check(fullCtx.community !== null, 'Full dev has community context');
300
+ check(fullCtx.combined.orgAligned, 'Full dev is org aligned');
301
+ check(fullCtx.combined.communityAligned, 'Full dev is community aligned');
302
+ gte(fullCtx.combined.overallSuccessRate, 0, 'Overall success rate computed');
303
+ gte(fullCtx.personal.patternsUsed, 100, 'Personal patterns used');
304
+ // Cached context
305
+ const cached = (0, cross_layer_intelligence_1.getCachedContext)('full_dev');
306
+ check(cached !== null, 'Context cached');
307
+ check(cached.developerId === 'full_dev', 'Cached context has correct dev ID');
308
+ check(cached.personal.languages.includes('typescript'), 'Cached context has languages');
309
+ // Different developers get different contexts
310
+ const ctxA = (0, cross_layer_intelligence_1.buildUnifiedContext)({
311
+ developerId: 'dev_a',
312
+ personal: { languages: ['rust'], topCategories: ['performance'], patternsUsed: 200, successRate: 0.9 },
313
+ });
314
+ const ctxB = (0, cross_layer_intelligence_1.buildUnifiedContext)({
315
+ developerId: 'dev_b',
316
+ personal: { languages: ['ruby'], topCategories: ['ui'], patternsUsed: 10, successRate: 0.3 },
317
+ });
318
+ neq(ctxA.developerId, ctxB.developerId, 'Different dev IDs');
319
+ neq(ctxA.personal.languages[0], ctxB.personal.languages[0], 'Different languages');
320
+ gt(ctxA.personal.successRate, ctxB.personal.successRate, 'Different success rates');
321
+ });
322
+ // ===================================================================
323
+ // T4: Intelligence Score differentiation
324
+ // ===================================================================
325
+ test('T4: Intelligence score differentiation', () => {
326
+ console.log('\n--- T4: Score differentiation ---\n');
327
+ // High performer
328
+ const highScore = (0, cross_layer_intelligence_1.computeIntelligenceScore)({
329
+ personalSuccessRate: 0.95,
330
+ personalConfidence: 0.90,
331
+ personalPatternsUsed: 200,
332
+ communityReputation: 0.85,
333
+ communityRank: 5,
334
+ orgTeamSuccessRate: 0.90,
335
+ orgTeamRiskScore: 10,
336
+ graphInfluenceScore: 0.80,
337
+ dnaMaturityScore: 0.90,
338
+ dnaRiskScore: 10,
339
+ outcomeHealth: 0.90,
340
+ riskLevel: 'low',
341
+ });
342
+ // Low performer
343
+ const lowScore = (0, cross_layer_intelligence_1.computeIntelligenceScore)({
344
+ personalSuccessRate: 0.15,
345
+ personalConfidence: 0.20,
346
+ personalPatternsUsed: 3,
347
+ communityReputation: 0.10,
348
+ communityRank: 500,
349
+ orgTeamSuccessRate: 0.20,
350
+ orgTeamRiskScore: 80,
351
+ graphInfluenceScore: 0.05,
352
+ dnaMaturityScore: 0.10,
353
+ dnaRiskScore: 80,
354
+ outcomeHealth: 0.15,
355
+ riskLevel: 'high',
356
+ });
357
+ console.log(` High score: ${highScore.overallScore}, Low score: ${lowScore.overallScore}`);
358
+ gt(highScore.overallScore, lowScore.overallScore, 'High performer scores higher than low');
359
+ gt(highScore.overallScore, 60, `High score >= 60 (was ${highScore.overallScore})`);
360
+ lt(lowScore.overallScore, 50, `Low score < 50 (was ${lowScore.overallScore})`);
361
+ // All dimensions should be higher for high performer
362
+ for (const [dim, hVal] of Object.entries(highScore.dimensions)) {
363
+ const lVal = lowScore.dimensions[dim];
364
+ gte(hVal, lVal, `High performer has higher or equal ${dim}`);
365
+ }
366
+ // Mid performer
367
+ const midScore = (0, cross_layer_intelligence_1.computeIntelligenceScore)({
368
+ personalSuccessRate: 0.55,
369
+ personalConfidence: 0.50,
370
+ personalPatternsUsed: 50,
371
+ communityReputation: 0.45,
372
+ orgTeamSuccessRate: 0.55,
373
+ riskLevel: 'medium',
374
+ });
375
+ console.log(` Mid score: ${midScore.overallScore}`);
376
+ lt(midScore.overallScore, highScore.overallScore, 'Mid < High');
377
+ gt(midScore.overallScore, lowScore.overallScore, 'Mid > Low');
378
+ });
379
+ // ===================================================================
380
+ // T5: Evidence Engine
381
+ // ===================================================================
382
+ test('T5: Evidence generation', () => {
383
+ console.log('\n--- T5: Evidence Engine ---\n');
384
+ // Full evidence
385
+ const full = (0, cross_layer_intelligence_1.generateEvidence)({
386
+ patternId: 'repo_pattern',
387
+ category: 'testing',
388
+ personalSuccessRate: 0.85,
389
+ personalSampleSize: 20,
390
+ communitySuccessRate: 0.91,
391
+ communitySampleSize: 12000,
392
+ orgSuccessRate: 0.73,
393
+ orgSampleSize: 1400,
394
+ graphInfluenceScore: 0.78,
395
+ dnaSimilarity: 0.82,
396
+ outcomeConfidence: 0.88,
397
+ });
398
+ console.log(` ${full.evidence.length} evidence points for repo_pattern`);
399
+ gt(full.evidence.length, 3, 'Full evidence has >= 3 points');
400
+ check(full.evidence.some(e => e.type === 'personal'), 'Has personal evidence');
401
+ check(full.evidence.some(e => e.type === 'community'), 'Has community evidence');
402
+ check(full.evidence.some(e => e.type === 'org'), 'Has org evidence');
403
+ check(full.evidence.some(e => e.type === 'graph'), 'Has graph evidence');
404
+ check(full.evidence.some(e => e.type === 'dna'), 'Has DNA evidence');
405
+ check(full.evidence.some(e => e.type === 'outcome'), 'Has outcome evidence');
406
+ // Minimal evidence
407
+ const minimal = (0, cross_layer_intelligence_1.generateEvidence)({
408
+ patternId: 'new_pattern',
409
+ category: 'experimental',
410
+ personalSuccessRate: 0.6,
411
+ personalSampleSize: 2,
412
+ });
413
+ console.log(` ${minimal.evidence.length} evidence points for new pattern`);
414
+ gte(minimal.evidence.length, 1, 'Minimal evidence has >= 1 point');
415
+ check(minimal.evidence.every(e => e.sampleSize > 0), 'Evidence has sample sizes');
416
+ gte(minimal.totalScore, 0, 'Evidence total score >= 0');
417
+ gte(minimal.confidence, 0, 'Evidence confidence >= 0');
418
+ // Differing evidence
419
+ const evA = (0, cross_layer_intelligence_1.generateEvidence)({
420
+ patternId: 'p1', category: 'testing',
421
+ personalSuccessRate: 0.9, personalSampleSize: 100,
422
+ communitySuccessRate: 0.8, communitySampleSize: 1000,
423
+ });
424
+ const evB = (0, cross_layer_intelligence_1.generateEvidence)({
425
+ patternId: 'p2', category: 'testing',
426
+ personalSuccessRate: 0.3, personalSampleSize: 5,
427
+ communitySuccessRate: 0.4, communitySampleSize: 200,
428
+ });
429
+ neq(evA.totalScore, evB.totalScore, 'Different patterns get different scores');
430
+ gt(evA.totalScore, evB.totalScore, 'Better evidence scores higher');
431
+ });
432
+ // ===================================================================
433
+ // T6: Knowledge Gap Engine
434
+ // ===================================================================
435
+ test('T6: Knowledge gap detection', () => {
436
+ console.log('\n--- T6: Knowledge Gaps ---\n');
437
+ const patterns = [
438
+ { patternId: 'tdd_testing', category: 'testing', communitySuccessRate: 0.91, communitySampleSize: 12000, orgSuccessRate: 0.42, orgSampleSize: 200 },
439
+ { patternId: 'ci_cd', category: 'devops', communitySuccessRate: 0.85, communitySampleSize: 8000, orgSuccessRate: 0.35, orgSampleSize: 150 },
440
+ { patternId: 'code_review', category: 'review', communitySuccessRate: 0.78, communitySampleSize: 5000, orgSuccessRate: 0.68, orgSampleSize: 180 },
441
+ { patternId: 'microservices', category: 'architecture', communitySuccessRate: 0.65, communitySampleSize: 3000, orgSuccessRate: 0.62, orgSampleSize: 100 },
442
+ { patternId: 'pair_programming', category: 'collaboration', communitySuccessRate: 0.55, communitySampleSize: 2000, orgSuccessRate: 0.52, orgSampleSize: 50 },
443
+ { patternId: 'all_good', category: 'testing', communitySuccessRate: 0.85, communitySampleSize: 5000, orgSuccessRate: 0.83, orgSampleSize: 300 },
444
+ ];
445
+ const gaps = (0, cross_layer_intelligence_1.detectKnowledgeGaps)({
446
+ patterns,
447
+ minGapThreshold: 0.15,
448
+ minCommunitySample: 5,
449
+ });
450
+ console.log(` ${gaps.length} knowledge gaps detected`);
451
+ for (const g of gaps) {
452
+ console.log(` ${g.patternId}: gap=${Math.round(g.gapSize * 100)}%, impact=${g.impact}`);
453
+ }
454
+ gt(gaps.length, 0, 'Knowledge gaps detected');
455
+ check(gaps.every(g => g.gapSize > 0.15), 'All gaps above threshold');
456
+ check(gaps.some(g => g.impact === 'high' || g.impact === 'medium'), 'Some gaps are high/medium impact');
457
+ check(gaps.every(g => g.recommendation.length > 10), 'All gaps have recommendations');
458
+ // No gaps
459
+ const noGaps = (0, cross_layer_intelligence_1.detectKnowledgeGaps)({
460
+ patterns: [
461
+ { patternId: 'p1', category: 'test', communitySuccessRate: 0.8, communitySampleSize: 100, orgSuccessRate: 0.79, orgSampleSize: 50 },
462
+ ],
463
+ });
464
+ check(noGaps.length === 0, 'No gaps when rates are equal');
465
+ });
466
+ // ===================================================================
467
+ // T7: Opportunity Engine
468
+ // ===================================================================
469
+ test('T7: Opportunity detection', () => {
470
+ console.log('\n--- T7: Opportunities ---\n');
471
+ const gaps = [
472
+ { patternId: 'tdd', category: 'testing', communitySuccessRate: 0.91, communitySampleSize: 12000, orgSuccessRate: 0.42, orgSampleSize: 200, gapSize: 0.49, impact: 'high', recommendation: 'Adopt TDD' },
473
+ { patternId: 'ci_cd', category: 'devops', communitySuccessRate: 0.85, communitySampleSize: 8000, orgSuccessRate: 0.35, orgSampleSize: 150, gapSize: 0.50, impact: 'high', recommendation: 'Adopt CI/CD' },
474
+ ];
475
+ const opps = (0, cross_layer_intelligence_1.findOpportunities)({
476
+ currentSuccessRate: 0.45,
477
+ communityAvgSuccessRate: 0.68,
478
+ topPerformerRate: 0.92,
479
+ gaps,
480
+ teamTestingAdoption: 15,
481
+ orgAvgTestingAdoption: 55,
482
+ teamCIRate: 10,
483
+ orgAvgCIRate: 70,
484
+ teamReviewRate: 25,
485
+ orgAvgReviewRate: 60,
486
+ });
487
+ console.log(` ${opps.length} opportunities`);
488
+ for (const o of opps) {
489
+ console.log(` ${o.title}: impact=+${o.impact}pp, confidence=${Math.round(o.confidence * 100)}%`);
490
+ }
491
+ gt(opps.length, 0, 'Opportunities generated');
492
+ check(opps.every(o => o.confidence > 0 && o.confidence <= 1), 'All have valid confidence');
493
+ check(opps.every(o => o.impact > 0), 'All have positive impact');
494
+ check(opps.every(o => o.description.length > 10), 'All have descriptions');
495
+ check(opps.some(o => o.category === 'testing'), 'Testing opportunity exists');
496
+ check(opps.some(o => o.category === 'community'), 'Community opportunity exists');
497
+ });
498
+ // ===================================================================
499
+ // T8: Risk Engine V2
500
+ // ===================================================================
501
+ test('T8: Risk Engine V2', () => {
502
+ console.log('\n--- T8: Risk V2 ---\n');
503
+ const gaps = [
504
+ { patternId: 'tdd', category: 'testing', communitySuccessRate: 0.91, communitySampleSize: 12000, orgSuccessRate: 0.42, orgSampleSize: 200, gapSize: 0.49, impact: 'high', recommendation: 'Adopt TDD' },
505
+ { patternId: 'ci_cd', category: 'devops', communitySuccessRate: 0.85, communitySampleSize: 8000, orgSuccessRate: 0.35, orgSampleSize: 150, gapSize: 0.50, impact: 'high', recommendation: 'Adopt CI/CD' },
506
+ { patternId: 'code_review', category: 'review', communitySuccessRate: 0.78, communitySampleSize: 5000, orgSuccessRate: 0.68, orgSampleSize: 180, gapSize: 0.10, impact: 'low', recommendation: 'Improve reviews' },
507
+ ];
508
+ const risks = (0, cross_layer_intelligence_1.analyzeRisks)({
509
+ knowledgeSilos: gaps,
510
+ busFactorScore: 85,
511
+ teamRiskScore: 65,
512
+ teamTestingAdoption: 12,
513
+ teamSuccessRate: 0.45,
514
+ orgAvgSuccessRate: 0.72,
515
+ memberCount: 8,
516
+ totalPatterns: 200,
517
+ });
518
+ console.log(` ${risks.length} risks identified`);
519
+ for (const r of risks) {
520
+ console.log(` ${r.title}: score=${r.riskScore}, impact=${r.impact}, prob=${Math.round(r.probability * 100)}%`);
521
+ }
522
+ gt(risks.length, 0, 'Risks identified');
523
+ check(risks.some(r => r.category === 'knowledge'), 'Knowledge risk identified');
524
+ check(risks.some(r => r.category === 'people'), 'People risk (bus factor) identified');
525
+ check(risks.some(r => r.category === 'quality'), 'Quality risk identified');
526
+ check(risks.some(r => r.category === 'performance'), 'Performance risk identified');
527
+ check(risks.every(r => r.rootCause.length > 0), 'All risks have root cause');
528
+ check(risks.every(r => r.recommendation.length > 0), 'All risks have recommendations');
529
+ check(risks.every(r => r.evidencePoints.length > 0), 'All risks have evidence');
530
+ // No risks
531
+ const noRisks = (0, cross_layer_intelligence_1.analyzeRisks)({});
532
+ check(noRisks.length === 0, 'No risks when no data provided');
533
+ });
534
+ // ===================================================================
535
+ // T9: Pattern Lifecycle
536
+ // ===================================================================
537
+ test('T9: Pattern lifecycle classification', () => {
538
+ console.log('\n--- T9: Lifecycle ---\n');
539
+ const lifecycles = (0, cross_layer_intelligence_1.classifyLifecycle)({
540
+ patterns: [
541
+ { patternId: 'rust_pattern', category: 'performance', communityTrend: 'exploding', communityUsage: 200, orgUsage: 50, avgSuccessRate: 0.85, confidence: 0.9 },
542
+ { patternId: 'react_hooks', category: 'ui', communityTrend: 'rising', communityUsage: 80, orgUsage: 30, avgSuccessRate: 0.78, confidence: 0.85 },
543
+ { patternId: 'tdd', category: 'testing', communityTrend: 'stable', communityUsage: 500, orgUsage: 200, avgSuccessRate: 0.82, confidence: 0.95 },
544
+ { patternId: 'jquery', category: 'ui', communityTrend: 'declining', communityUsage: 300, orgUsage: 50, avgSuccessRate: 0.5, confidence: 0.6 },
545
+ { patternId: 'coffeescript', category: 'language', communityTrend: 'dead', communityUsage: 10, orgUsage: 0, avgSuccessRate: 0.2, confidence: 0.1 },
546
+ { patternId: 'new_fad', category: 'experimental', communityTrend: 'rising', communityUsage: 12, avgSuccessRate: 0.9, confidence: 0.3 },
547
+ ],
548
+ });
549
+ console.log(` ${lifecycles.length} lifecycle classifications`);
550
+ const stages = lifecycles.map(l => `${l.patternId}: ${l.stage} (${l.communityTrend})`);
551
+ for (const s of stages)
552
+ console.log(` ${s}`);
553
+ gt(lifecycles.length, 0, 'Lifecycles computed');
554
+ check(lifecycles.every(l => ['emerging', 'growing', 'mature', 'declining', 'dead'].includes(l.stage)), 'All have valid stages');
555
+ const rustCycle = lifecycles.find(l => l.patternId === 'rust_pattern');
556
+ check(rustCycle?.stage === 'growing', 'Rust/exploding is growing');
557
+ const tddCycle = lifecycles.find(l => l.patternId === 'tdd');
558
+ check(tddCycle?.stage === 'mature', 'TDD/stable/high usage is mature');
559
+ const jqCycle = lifecycles.find(l => l.patternId === 'jquery');
560
+ check(jqCycle?.stage === 'declining', 'jQuery declining is declining');
561
+ const csCycle = lifecycles.find(l => l.patternId === 'coffeescript');
562
+ check(csCycle?.stage === 'dead', 'CoffeeScript dead is dead');
563
+ const newCycle = lifecycles.find(l => l.patternId === 'new_fad');
564
+ check(newCycle?.stage === 'emerging', 'New/low usage is emerging');
565
+ check(lifecycles.every(l => l.estimatedLifespan.length > 0), 'All have estimated lifespans');
566
+ });
567
+ // ===================================================================
568
+ // T10: Multi-Level Benchmarking
569
+ // ===================================================================
570
+ test('T10: Multi-level benchmarking', () => {
571
+ console.log('\n--- T10: Benchmarks ---\n');
572
+ const benchmarks = (0, cross_layer_intelligence_1.computeMultiLevelBenchmarks)({
573
+ metrics: [
574
+ {
575
+ name: 'Success Rate',
576
+ personalValue: 0.72, personalSampleSize: 50,
577
+ teamValue: 0.68, teamSampleSize: 200,
578
+ orgValue: 0.65, orgSampleSize: 5000,
579
+ communityAvg: 0.71, communityP50: 0.68, communityP90: 0.92, communitySampleSize: 50000,
580
+ },
581
+ {
582
+ name: 'Testing Coverage',
583
+ personalValue: 0.35, personalSampleSize: 50,
584
+ teamValue: 0.40, teamSampleSize: 200,
585
+ orgValue: 0.50, orgSampleSize: 5000,
586
+ communityAvg: 0.65, communityP50: 0.60, communityP90: 0.85, communitySampleSize: 50000,
587
+ },
588
+ {
589
+ name: 'Pattern Adoption',
590
+ personalValue: 0.60, personalSampleSize: 50,
591
+ orgValue: 0.55, orgSampleSize: 5000,
592
+ communityAvg: 0.70, communityP50: 0.65, communityP90: 0.90, communitySampleSize: 50000,
593
+ },
594
+ ],
595
+ });
596
+ console.log(` ${benchmarks.length} benchmarks`);
597
+ for (const b of benchmarks) {
598
+ console.log(` ${b.metric}: ${b.levels.length} levels, gapToNext=${b.gapToNext}, gapToBest=${b.gapToBest}`);
599
+ for (const l of b.levels)
600
+ console.log(` ${l.level}: ${Math.round(l.value * 100)}% (n=${l.sampleSize})`);
601
+ }
602
+ gt(benchmarks.length, 0, 'Benchmarks computed');
603
+ check(benchmarks.every(b => b.levels.length >= 2), 'All benchmarks have >= 2 levels');
604
+ check(benchmarks.some(b => b.levels.some(l => l.level === 'personal')), 'Has personal level');
605
+ check(benchmarks.some(b => b.levels.some(l => l.level === 'community')), 'Has community level');
606
+ // Success Rate — personal > team > org < community
607
+ const sr = benchmarks.find(b => b.metric === 'Success Rate');
608
+ check(sr !== undefined, 'Success Rate benchmark exists');
609
+ if (sr) {
610
+ const personal = sr.levels.find(l => l.level === 'personal');
611
+ const org = sr.levels.find(l => l.level === 'org');
612
+ if (personal && org) {
613
+ gt(personal.value, org.value, 'Personal > org in success rate');
614
+ }
615
+ }
616
+ // Testing Coverage — community should be highest
617
+ const tc = benchmarks.find(b => b.metric === 'Testing Coverage');
618
+ check(tc !== undefined, 'Testing Coverage benchmark exists');
619
+ if (tc) {
620
+ const community = tc.levels.find(l => l.level === 'community');
621
+ const personal = tc.levels.find(l => l.level === 'personal');
622
+ if (community && personal) {
623
+ gt(community.value, personal.value, 'Community > personal in testing coverage');
624
+ }
625
+ }
626
+ });
627
+ // ===================================================================
628
+ // T11: Decision Engine
629
+ // ===================================================================
630
+ test('T11: Decision engine', () => {
631
+ console.log('\n--- T11: Decisions ---\n');
632
+ const score = {
633
+ overallScore: 55,
634
+ dimensions: { personalSuccess: 45, personalConfidence: 50, communityReputation: 30, orgAlignment: 60, graphInfluence: 40, dnaMaturity: 55, riskHealth: 50 },
635
+ weights: { personalSuccess: 0.2, personalConfidence: 0.1, communityReputation: 0.15, orgAlignment: 0.15, graphInfluence: 0.1, dnaMaturity: 0.15, riskHealth: 0.15 },
636
+ sampleSize: 100,
637
+ };
638
+ const gaps = [
639
+ { patternId: 'tdd', category: 'testing', communitySuccessRate: 0.91, communitySampleSize: 12000, orgSuccessRate: 0.42, orgSampleSize: 200, gapSize: 0.49, impact: 'high', recommendation: 'Adopt TDD' },
640
+ ];
641
+ const opps = [
642
+ { title: 'Increase Testing', category: 'testing', currentValue: 15, expectedValue: 55, impact: 17, confidence: 0.91, evidenceCount: 12000, effort: 'medium', description: 'Increase testing from 15% to 55%' },
643
+ { title: 'Adopt CI/CD', category: 'devops', currentValue: 10, expectedValue: 70, impact: 14, confidence: 0.85, evidenceCount: 8000, effort: 'medium', description: 'Adopt CI/CD pipelines' },
644
+ ];
645
+ const risks = [
646
+ { title: 'High Bus Factor', category: 'people', rootCause: 'Knowledge concentrated', probability: 0.85, impact: 'high', riskScore: 85, recommendation: 'Share knowledge', evidencePoints: ['Bus factor: 85'] },
647
+ { title: 'Low Testing', category: 'quality', rootCause: 'Testing not prioritized', probability: 0.7, impact: 'medium', riskScore: 45, recommendation: 'Increase testing', evidencePoints: ['Testing: 15%'] },
648
+ ];
649
+ const decisions = (0, cross_layer_intelligence_1.generateDecisions)({
650
+ intelligenceScore: score,
651
+ knowledgeGaps: gaps,
652
+ opportunities: opps,
653
+ risks,
654
+ personalSuccessRate: 0.55,
655
+ personalPatternsUsed: 100,
656
+ teamTestingAdoption: 15,
657
+ teamCIRate: 10,
658
+ teamReviewRate: 25,
659
+ });
660
+ console.log(` ${decisions.length} decisions generated`);
661
+ for (const d of decisions) {
662
+ console.log(` #${d.priority}: ${d.action} (impact=${d.impact} ${d.impactUnit}, confidence=${d.confidence}%)`);
663
+ }
664
+ gt(decisions.length, 0, 'Decisions generated');
665
+ check(decisions.every(d => d.priority > 0), 'All decisions have priority');
666
+ check(decisions.every(d => d.action.length > 0), 'All decisions have actions');
667
+ check(decisions.every(d => d.impact > 0), 'All decisions have positive impact');
668
+ check(decisions.every(d => d.confidence >= 0 && d.confidence <= 100), 'All decisions have valid confidence');
669
+ check(decisions.every(d => d.recommendations.length > 0), 'All decisions have recommendations');
670
+ check(decisions.every(d => d.keyEvidence.length > 0), 'All decisions have evidence');
671
+ // Sorted by priority
672
+ for (let i = 1; i < decisions.length; i++) {
673
+ gte(decisions[i].priority, decisions[i - 1].priority, 'Decisions sorted by priority');
674
+ }
675
+ // Risk mitigation should be high priority
676
+ check(decisions.some(d => d.category === 'people'), 'People risk decision exists');
677
+ });
678
+ // ===================================================================
679
+ // T12: Full Intelligence Report
680
+ // ===================================================================
681
+ test('T12: Intelligence report generator', () => {
682
+ console.log('\n--- T12: Report Generation ---\n');
683
+ const ctx = (0, cross_layer_intelligence_1.buildUnifiedContext)({
684
+ developerId: 'report_dev',
685
+ personal: { languages: ['typescript', 'go'], topCategories: ['testing', 'data'], patternsUsed: 150, successRate: 0.78, avgConfidence: 0.82, avgHealth: 0.75 },
686
+ project: { projectId: 'report_proj', primaryLanguage: 'typescript', framework: 'nextjs', architecture: 'microservices', complexity: 'high', maturity: 'mature', testingStyle: 'tdd', riskScore: 15 },
687
+ team: { teamId: 'report_team', teamName: 'Core', memberCount: 10, successRate: 0.72, topLanguages: ['typescript'], topCategories: ['testing'], style: 'quality-driven', riskLevel: 'low', riskScore: 20, testingAdoption: 65 },
688
+ org: { orgId: 'report_org', orgName: 'TechCorp', teamCount: 10, memberCount: 100, avgSuccessRate: 0.68, totalOutcomes: 10000 },
689
+ community: { totalPatterns: 1000, totalDevs: 10000, totalOutcomes: 100000, avgSuccessRate: 0.65, topCategories: ['testing', 'data', 'devops'] },
690
+ });
691
+ const score = (0, cross_layer_intelligence_1.computeIntelligenceScore)({
692
+ personalSuccessRate: 0.78, personalConfidence: 0.82, personalPatternsUsed: 150,
693
+ communityReputation: 0.72, orgTeamSuccessRate: 0.72, orgTeamRiskScore: 20,
694
+ graphInfluenceScore: 0.65, dnaRiskScore: 15, riskLevel: 'low',
695
+ });
696
+ const gaps = (0, cross_layer_intelligence_1.detectKnowledgeGaps)({
697
+ patterns: [
698
+ { patternId: 'tdd', category: 'testing', communitySuccessRate: 0.91, communitySampleSize: 12000, orgSuccessRate: 0.55, orgSampleSize: 300 },
699
+ { patternId: 'ci_cd', category: 'devops', communitySuccessRate: 0.85, communitySampleSize: 8000, orgSuccessRate: 0.45, orgSampleSize: 200 },
700
+ ],
701
+ });
702
+ const opps = (0, cross_layer_intelligence_1.findOpportunities)({
703
+ currentSuccessRate: 0.72, communityAvgSuccessRate: 0.65, topPerformerRate: 0.92, gaps,
704
+ teamTestingAdoption: 65, orgAvgTestingAdoption: 50,
705
+ });
706
+ const risks = (0, cross_layer_intelligence_1.analyzeRisks)({
707
+ knowledgeSilos: gaps,
708
+ teamTestingAdoption: 65,
709
+ teamSuccessRate: 0.72,
710
+ orgAvgSuccessRate: 0.68,
711
+ });
712
+ const benchmarks = (0, cross_layer_intelligence_1.computeMultiLevelBenchmarks)({
713
+ metrics: [
714
+ {
715
+ name: 'Success Rate',
716
+ personalValue: 0.78, personalSampleSize: 150,
717
+ teamValue: 0.72, teamSampleSize: 1000,
718
+ orgValue: 0.68, orgSampleSize: 10000,
719
+ communityAvg: 0.65, communityP50: 0.62, communityP90: 0.88, communitySampleSize: 100000,
720
+ },
721
+ {
722
+ name: 'Testing Coverage',
723
+ personalValue: 0.60, personalSampleSize: 150,
724
+ teamValue: 0.65, teamSampleSize: 1000,
725
+ orgValue: 0.50, orgSampleSize: 10000,
726
+ communityAvg: 0.60, communityP50: 0.55, communityP90: 0.82, communitySampleSize: 100000,
727
+ },
728
+ ],
729
+ });
730
+ const decisions = (0, cross_layer_intelligence_1.generateDecisions)({
731
+ intelligenceScore: score, knowledgeGaps: gaps, opportunities: opps, risks,
732
+ personalSuccessRate: 0.78, personalPatternsUsed: 150,
733
+ });
734
+ const report = (0, cross_layer_intelligence_1.generateIntelligenceReport)({
735
+ targetId: 'report_dev',
736
+ targetType: 'developer',
737
+ unifiedContext: ctx,
738
+ intelligenceScore: score,
739
+ knowledgeGaps: gaps,
740
+ opportunities: opps,
741
+ risks,
742
+ benchmarks,
743
+ decisions,
744
+ });
745
+ console.log(` Report: ${report.reportId}`);
746
+ console.log(` Score: ${report.intelligenceScore.overallScore}/100`);
747
+ console.log(` ${report.decisions.length} decisions, ${report.gaps.length} gaps, ${report.opportunities.length} opps, ${report.risks.length} risks`);
748
+ console.log(` ${report.benchmarks.length} benchmarks`);
749
+ console.log(` ${report.strengths.length} strengths, ${report.weaknesses.length} weaknesses`);
750
+ console.log(` Summary: ${report.summary.substring(0, 80)}...`);
751
+ check(report.reportId.startsWith('report_'), 'Report has valid ID');
752
+ check(report.targetId === 'report_dev', 'Report targets correct dev');
753
+ gte(report.intelligenceScore.overallScore, 0, 'Report has score');
754
+ gt(report.generatedAt, 0, 'Report has generation timestamp');
755
+ gt(report.decisions.length, 0, 'Report has decisions');
756
+ gt(report.benchmarks.length, 0, 'Report has benchmarks');
757
+ gt(report.strengths.length + report.weaknesses.length, 0, 'Report has strengths/weaknesses');
758
+ gt(report.summary.length, 50, 'Report has substantial summary');
759
+ // Persist and retrieve
760
+ const retrieved = (0, cross_layer_intelligence_1.getReport)(report.reportId);
761
+ check(retrieved !== null, 'Report persisted to store');
762
+ check(retrieved.targetId === 'report_dev', 'Retrieved report has correct data');
763
+ const allReports = (0, cross_layer_intelligence_1.listReports)();
764
+ gt(allReports.length, 0, 'Reports listed');
765
+ check(allReports.includes(report.reportId), 'Report ID in list');
766
+ });
767
+ // ===================================================================
768
+ // T13: Restart survival
769
+ // ===================================================================
770
+ test('T13: Data persists across restart', () => {
771
+ console.log('\n--- T13: Restart Survival ---\n');
772
+ const allReports = (0, cross_layer_intelligence_1.listReports)();
773
+ console.log(` ${allReports.length} reports survive`);
774
+ gt(allReports.length, 0, 'Reports survive restart');
775
+ if (allReports.length > 0) {
776
+ const report = (0, cross_layer_intelligence_1.getReport)(allReports[0]);
777
+ check(report !== null, 'Individual report retrieved after restart');
778
+ check(report.targetId.length > 0, 'Report has target');
779
+ gte(report.intelligenceScore.overallScore, 0, 'Report score persists');
780
+ }
781
+ });
782
+ });
783
+ //# sourceMappingURL=chapter9-hostile.test.js.map