faf-cli 5.2.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (731) hide show
  1. package/README.md +80 -52
  2. package/dist/cli.js +313 -1884
  3. package/dist/index.js +4 -46
  4. package/package.json +27 -103
  5. package/project.faf +33 -141
  6. package/assets/project-faf-screenshot.png +0 -0
  7. package/dist/big-orange/bigo-push.d.ts +0 -18
  8. package/dist/big-orange/bigo-push.d.ts.map +0 -1
  9. package/dist/big-orange/bigo-push.js +0 -88
  10. package/dist/big-orange/bigo-push.js.map +0 -1
  11. package/dist/big-orange/compare.d.ts +0 -11
  12. package/dist/big-orange/compare.d.ts.map +0 -1
  13. package/dist/big-orange/compare.js +0 -179
  14. package/dist/big-orange/compare.js.map +0 -1
  15. package/dist/big-orange/faf-generator.d.ts +0 -22
  16. package/dist/big-orange/faf-generator.d.ts.map +0 -1
  17. package/dist/big-orange/faf-generator.js +0 -215
  18. package/dist/big-orange/faf-generator.js.map +0 -1
  19. package/dist/big-orange/index.d.ts +0 -7
  20. package/dist/big-orange/index.d.ts.map +0 -1
  21. package/dist/big-orange/index.js +0 -96
  22. package/dist/big-orange/index.js.map +0 -1
  23. package/dist/big-orange/types.d.ts +0 -62
  24. package/dist/big-orange/types.d.ts.map +0 -1
  25. package/dist/big-orange/types.js +0 -7
  26. package/dist/big-orange/types.js.map +0 -1
  27. package/dist/cli.d.ts +0 -8
  28. package/dist/cli.d.ts.map +0 -1
  29. package/dist/cli.js.map +0 -1
  30. package/dist/commands/agents.d.ts +0 -14
  31. package/dist/commands/agents.d.ts.map +0 -1
  32. package/dist/commands/agents.js +0 -353
  33. package/dist/commands/agents.js.map +0 -1
  34. package/dist/commands/ai-analyze.d.ts +0 -18
  35. package/dist/commands/ai-analyze.d.ts.map +0 -1
  36. package/dist/commands/ai-analyze.js +0 -190
  37. package/dist/commands/ai-analyze.js.map +0 -1
  38. package/dist/commands/ai-enhance.d.ts +0 -17
  39. package/dist/commands/ai-enhance.d.ts.map +0 -1
  40. package/dist/commands/ai-enhance.js +0 -275
  41. package/dist/commands/ai-enhance.js.map +0 -1
  42. package/dist/commands/antigravity.d.ts +0 -16
  43. package/dist/commands/antigravity.d.ts.map +0 -1
  44. package/dist/commands/antigravity.js +0 -398
  45. package/dist/commands/antigravity.js.map +0 -1
  46. package/dist/commands/audit.d.ts +0 -11
  47. package/dist/commands/audit.d.ts.map +0 -1
  48. package/dist/commands/audit.js +0 -148
  49. package/dist/commands/audit.js.map +0 -1
  50. package/dist/commands/auto.d.ts +0 -27
  51. package/dist/commands/auto.d.ts.map +0 -1
  52. package/dist/commands/auto.js +0 -498
  53. package/dist/commands/auto.js.map +0 -1
  54. package/dist/commands/bi-sync.d.ts +0 -50
  55. package/dist/commands/bi-sync.d.ts.map +0 -1
  56. package/dist/commands/bi-sync.js +0 -307
  57. package/dist/commands/bi-sync.js.map +0 -1
  58. package/dist/commands/chat.d.ts +0 -7
  59. package/dist/commands/chat.d.ts.map +0 -1
  60. package/dist/commands/chat.js +0 -415
  61. package/dist/commands/chat.js.map +0 -1
  62. package/dist/commands/check.d.ts +0 -31
  63. package/dist/commands/check.d.ts.map +0 -1
  64. package/dist/commands/check.js +0 -301
  65. package/dist/commands/check.js.map +0 -1
  66. package/dist/commands/clear.d.ts +0 -15
  67. package/dist/commands/clear.d.ts.map +0 -1
  68. package/dist/commands/clear.js +0 -167
  69. package/dist/commands/clear.js.map +0 -1
  70. package/dist/commands/compile.d.ts +0 -12
  71. package/dist/commands/compile.d.ts.map +0 -1
  72. package/dist/commands/compile.js +0 -51
  73. package/dist/commands/compile.js.map +0 -1
  74. package/dist/commands/conductor.d.ts +0 -15
  75. package/dist/commands/conductor.d.ts.map +0 -1
  76. package/dist/commands/conductor.js +0 -339
  77. package/dist/commands/conductor.js.map +0 -1
  78. package/dist/commands/convert.d.ts +0 -19
  79. package/dist/commands/convert.d.ts.map +0 -1
  80. package/dist/commands/convert.js +0 -99
  81. package/dist/commands/convert.js.map +0 -1
  82. package/dist/commands/credit.d.ts +0 -13
  83. package/dist/commands/credit.d.ts.map +0 -1
  84. package/dist/commands/credit.js +0 -149
  85. package/dist/commands/credit.js.map +0 -1
  86. package/dist/commands/cursor.d.ts +0 -13
  87. package/dist/commands/cursor.d.ts.map +0 -1
  88. package/dist/commands/cursor.js +0 -310
  89. package/dist/commands/cursor.js.map +0 -1
  90. package/dist/commands/decompile.d.ts +0 -9
  91. package/dist/commands/decompile.d.ts.map +0 -1
  92. package/dist/commands/decompile.js +0 -21
  93. package/dist/commands/decompile.js.map +0 -1
  94. package/dist/commands/demo.d.ts +0 -20
  95. package/dist/commands/demo.d.ts.map +0 -1
  96. package/dist/commands/demo.js +0 -205
  97. package/dist/commands/demo.js.map +0 -1
  98. package/dist/commands/doctor.d.ts +0 -6
  99. package/dist/commands/doctor.d.ts.map +0 -1
  100. package/dist/commands/doctor.js +0 -230
  101. package/dist/commands/doctor.js.map +0 -1
  102. package/dist/commands/drift.d.ts +0 -16
  103. package/dist/commands/drift.d.ts.map +0 -1
  104. package/dist/commands/drift.js +0 -524
  105. package/dist/commands/drift.js.map +0 -1
  106. package/dist/commands/edit-helper.d.ts +0 -6
  107. package/dist/commands/edit-helper.d.ts.map +0 -1
  108. package/dist/commands/edit-helper.js +0 -52
  109. package/dist/commands/edit-helper.js.map +0 -1
  110. package/dist/commands/edit.d.ts +0 -14
  111. package/dist/commands/edit.d.ts.map +0 -1
  112. package/dist/commands/edit.js +0 -196
  113. package/dist/commands/edit.js.map +0 -1
  114. package/dist/commands/enhance-real.d.ts +0 -18
  115. package/dist/commands/enhance-real.d.ts.map +0 -1
  116. package/dist/commands/enhance-real.js +0 -1164
  117. package/dist/commands/enhance-real.js.map +0 -1
  118. package/dist/commands/faf-auth.d.ts +0 -10
  119. package/dist/commands/faf-auth.d.ts.map +0 -1
  120. package/dist/commands/faf-auth.js +0 -162
  121. package/dist/commands/faf-auth.js.map +0 -1
  122. package/dist/commands/faf-dna.d.ts +0 -9
  123. package/dist/commands/faf-dna.d.ts.map +0 -1
  124. package/dist/commands/faf-dna.js +0 -141
  125. package/dist/commands/faf-dna.js.map +0 -1
  126. package/dist/commands/faf-log.d.ts +0 -9
  127. package/dist/commands/faf-log.d.ts.map +0 -1
  128. package/dist/commands/faf-log.js +0 -135
  129. package/dist/commands/faf-log.js.map +0 -1
  130. package/dist/commands/faf-recover.d.ts +0 -3
  131. package/dist/commands/faf-recover.d.ts.map +0 -1
  132. package/dist/commands/faf-recover.js +0 -296
  133. package/dist/commands/faf-recover.js.map +0 -1
  134. package/dist/commands/faf-update.d.ts +0 -9
  135. package/dist/commands/faf-update.d.ts.map +0 -1
  136. package/dist/commands/faf-update.js +0 -68
  137. package/dist/commands/faf-update.js.map +0 -1
  138. package/dist/commands/fam.d.ts +0 -15
  139. package/dist/commands/fam.d.ts.map +0 -1
  140. package/dist/commands/fam.js +0 -339
  141. package/dist/commands/fam.js.map +0 -1
  142. package/dist/commands/faq.d.ts +0 -12
  143. package/dist/commands/faq.d.ts.map +0 -1
  144. package/dist/commands/faq.js +0 -84
  145. package/dist/commands/faq.js.map +0 -1
  146. package/dist/commands/formats.d.ts +0 -12
  147. package/dist/commands/formats.d.ts.map +0 -1
  148. package/dist/commands/formats.js +0 -107
  149. package/dist/commands/formats.js.map +0 -1
  150. package/dist/commands/gemini.d.ts +0 -15
  151. package/dist/commands/gemini.d.ts.map +0 -1
  152. package/dist/commands/gemini.js +0 -357
  153. package/dist/commands/gemini.js.map +0 -1
  154. package/dist/commands/git.d.ts +0 -25
  155. package/dist/commands/git.d.ts.map +0 -1
  156. package/dist/commands/git.js +0 -365
  157. package/dist/commands/git.js.map +0 -1
  158. package/dist/commands/go.d.ts +0 -23
  159. package/dist/commands/go.d.ts.map +0 -1
  160. package/dist/commands/go.js +0 -283
  161. package/dist/commands/go.js.map +0 -1
  162. package/dist/commands/human.d.ts +0 -19
  163. package/dist/commands/human.d.ts.map +0 -1
  164. package/dist/commands/human.js +0 -204
  165. package/dist/commands/human.js.map +0 -1
  166. package/dist/commands/index.d.ts +0 -26
  167. package/dist/commands/index.d.ts.map +0 -1
  168. package/dist/commands/index.js +0 -438
  169. package/dist/commands/index.js.map +0 -1
  170. package/dist/commands/init.d.ts +0 -19
  171. package/dist/commands/init.d.ts.map +0 -1
  172. package/dist/commands/init.js +0 -409
  173. package/dist/commands/init.js.map +0 -1
  174. package/dist/commands/lint.d.ts +0 -11
  175. package/dist/commands/lint.d.ts.map +0 -1
  176. package/dist/commands/lint.js +0 -233
  177. package/dist/commands/lint.js.map +0 -1
  178. package/dist/commands/memory.d.ts +0 -14
  179. package/dist/commands/memory.d.ts.map +0 -1
  180. package/dist/commands/memory.js +0 -293
  181. package/dist/commands/memory.js.map +0 -1
  182. package/dist/commands/migrate.d.ts +0 -11
  183. package/dist/commands/migrate.d.ts.map +0 -1
  184. package/dist/commands/migrate.js +0 -85
  185. package/dist/commands/migrate.js.map +0 -1
  186. package/dist/commands/notifications.d.ts +0 -12
  187. package/dist/commands/notifications.d.ts.map +0 -1
  188. package/dist/commands/notifications.js +0 -35
  189. package/dist/commands/notifications.js.map +0 -1
  190. package/dist/commands/plugin-install.d.ts +0 -20
  191. package/dist/commands/plugin-install.d.ts.map +0 -1
  192. package/dist/commands/plugin-install.js +0 -183
  193. package/dist/commands/plugin-install.js.map +0 -1
  194. package/dist/commands/pro.d.ts +0 -10
  195. package/dist/commands/pro.d.ts.map +0 -1
  196. package/dist/commands/pro.js +0 -113
  197. package/dist/commands/pro.js.map +0 -1
  198. package/dist/commands/quick.d.ts +0 -10
  199. package/dist/commands/quick.d.ts.map +0 -1
  200. package/dist/commands/quick.js +0 -207
  201. package/dist/commands/quick.js.map +0 -1
  202. package/dist/commands/ram.d.ts +0 -17
  203. package/dist/commands/ram.d.ts.map +0 -1
  204. package/dist/commands/ram.js +0 -322
  205. package/dist/commands/ram.js.map +0 -1
  206. package/dist/commands/readme.d.ts +0 -21
  207. package/dist/commands/readme.d.ts.map +0 -1
  208. package/dist/commands/readme.js +0 -519
  209. package/dist/commands/readme.js.map +0 -1
  210. package/dist/commands/rename.d.ts +0 -18
  211. package/dist/commands/rename.d.ts.map +0 -1
  212. package/dist/commands/rename.js +0 -212
  213. package/dist/commands/rename.js.map +0 -1
  214. package/dist/commands/score-v3.d.ts +0 -15
  215. package/dist/commands/score-v3.d.ts.map +0 -1
  216. package/dist/commands/score-v3.js +0 -224
  217. package/dist/commands/score-v3.js.map +0 -1
  218. package/dist/commands/score.d.ts +0 -16
  219. package/dist/commands/score.d.ts.map +0 -1
  220. package/dist/commands/score.js +0 -19
  221. package/dist/commands/score.js.map +0 -1
  222. package/dist/commands/search.d.ts +0 -16
  223. package/dist/commands/search.d.ts.map +0 -1
  224. package/dist/commands/search.js +0 -174
  225. package/dist/commands/search.js.map +0 -1
  226. package/dist/commands/share.d.ts +0 -17
  227. package/dist/commands/share.d.ts.map +0 -1
  228. package/dist/commands/share.js +0 -261
  229. package/dist/commands/share.js.map +0 -1
  230. package/dist/commands/show.d.ts +0 -10
  231. package/dist/commands/show.d.ts.map +0 -1
  232. package/dist/commands/show.js +0 -142
  233. package/dist/commands/show.js.map +0 -1
  234. package/dist/commands/sixws.d.ts +0 -6
  235. package/dist/commands/sixws.d.ts.map +0 -1
  236. package/dist/commands/sixws.js +0 -154
  237. package/dist/commands/sixws.js.map +0 -1
  238. package/dist/commands/skills.d.ts +0 -8
  239. package/dist/commands/skills.d.ts.map +0 -1
  240. package/dist/commands/skills.js +0 -43
  241. package/dist/commands/skills.js.map +0 -1
  242. package/dist/commands/stacks.d.ts +0 -51
  243. package/dist/commands/stacks.d.ts.map +0 -1
  244. package/dist/commands/stacks.js +0 -180
  245. package/dist/commands/stacks.js.map +0 -1
  246. package/dist/commands/status.d.ts +0 -14
  247. package/dist/commands/status.d.ts.map +0 -1
  248. package/dist/commands/status.js +0 -210
  249. package/dist/commands/status.js.map +0 -1
  250. package/dist/commands/sync.d.ts +0 -11
  251. package/dist/commands/sync.d.ts.map +0 -1
  252. package/dist/commands/sync.js +0 -543
  253. package/dist/commands/sync.js.map +0 -1
  254. package/dist/commands/taf-init.d.ts +0 -14
  255. package/dist/commands/taf-init.d.ts.map +0 -1
  256. package/dist/commands/taf-init.js +0 -138
  257. package/dist/commands/taf-init.js.map +0 -1
  258. package/dist/commands/taf-log.d.ts +0 -31
  259. package/dist/commands/taf-log.d.ts.map +0 -1
  260. package/dist/commands/taf-log.js +0 -351
  261. package/dist/commands/taf-log.js.map +0 -1
  262. package/dist/commands/taf-stars.d.ts +0 -8
  263. package/dist/commands/taf-stars.d.ts.map +0 -1
  264. package/dist/commands/taf-stars.js +0 -105
  265. package/dist/commands/taf-stars.js.map +0 -1
  266. package/dist/commands/taf-stats.d.ts +0 -8
  267. package/dist/commands/taf-stats.d.ts.map +0 -1
  268. package/dist/commands/taf-stats.js +0 -133
  269. package/dist/commands/taf-stats.js.map +0 -1
  270. package/dist/commands/taf-validate.d.ts +0 -8
  271. package/dist/commands/taf-validate.d.ts.map +0 -1
  272. package/dist/commands/taf-validate.js +0 -108
  273. package/dist/commands/taf-validate.js.map +0 -1
  274. package/dist/commands/taf.d.ts +0 -14
  275. package/dist/commands/taf.d.ts.map +0 -1
  276. package/dist/commands/taf.js +0 -106
  277. package/dist/commands/taf.js.map +0 -1
  278. package/dist/commands/todo.d.ts +0 -14
  279. package/dist/commands/todo.d.ts.map +0 -1
  280. package/dist/commands/todo.js +0 -282
  281. package/dist/commands/todo.js.map +0 -1
  282. package/dist/commands/trust.d.ts +0 -33
  283. package/dist/commands/trust.d.ts.map +0 -1
  284. package/dist/commands/trust.js +0 -308
  285. package/dist/commands/trust.js.map +0 -1
  286. package/dist/commands/tsa.d.ts +0 -9
  287. package/dist/commands/tsa.d.ts.map +0 -1
  288. package/dist/commands/tsa.js +0 -60
  289. package/dist/commands/tsa.js.map +0 -1
  290. package/dist/commands/validate.d.ts +0 -11
  291. package/dist/commands/validate.d.ts.map +0 -1
  292. package/dist/commands/validate.js +0 -64
  293. package/dist/commands/validate.js.map +0 -1
  294. package/dist/commands/verify.d.ts +0 -36
  295. package/dist/commands/verify.d.ts.map +0 -1
  296. package/dist/commands/verify.js +0 -194
  297. package/dist/commands/verify.js.map +0 -1
  298. package/dist/commands/version.d.ts +0 -5
  299. package/dist/commands/version.d.ts.map +0 -1
  300. package/dist/commands/version.js +0 -29
  301. package/dist/commands/version.js.map +0 -1
  302. package/dist/commands/vibe.d.ts +0 -7
  303. package/dist/commands/vibe.d.ts.map +0 -1
  304. package/dist/commands/vibe.js +0 -73
  305. package/dist/commands/vibe.js.map +0 -1
  306. package/dist/commands/welcome.d.ts +0 -10
  307. package/dist/commands/welcome.d.ts.map +0 -1
  308. package/dist/commands/welcome.js +0 -117
  309. package/dist/commands/welcome.js.map +0 -1
  310. package/dist/commands/yolo.d.ts +0 -12
  311. package/dist/commands/yolo.d.ts.map +0 -1
  312. package/dist/commands/yolo.js +0 -212
  313. package/dist/commands/yolo.js.map +0 -1
  314. package/dist/compiler/faf-compiler.d.ts +0 -176
  315. package/dist/compiler/faf-compiler.d.ts.map +0 -1
  316. package/dist/compiler/faf-compiler.js +0 -1587
  317. package/dist/compiler/faf-compiler.js.map +0 -1
  318. package/dist/converters/faf-converters.d.ts +0 -43
  319. package/dist/converters/faf-converters.d.ts.map +0 -1
  320. package/dist/converters/faf-converters.js +0 -197
  321. package/dist/converters/faf-converters.js.map +0 -1
  322. package/dist/core-extraction-fixes.d.ts +0 -92
  323. package/dist/core-extraction-fixes.d.ts.map +0 -1
  324. package/dist/core-extraction-fixes.js +0 -265
  325. package/dist/core-extraction-fixes.js.map +0 -1
  326. package/dist/engines/art-ansi-renderer.d.ts +0 -335
  327. package/dist/engines/art-ansi-renderer.d.ts.map +0 -1
  328. package/dist/engines/art-ansi-renderer.js +0 -290
  329. package/dist/engines/art-ansi-renderer.js.map +0 -1
  330. package/dist/engines/c-mirror/broadcast/terminal-display.d.ts +0 -23
  331. package/dist/engines/c-mirror/broadcast/terminal-display.d.ts.map +0 -1
  332. package/dist/engines/c-mirror/broadcast/terminal-display.js +0 -194
  333. package/dist/engines/c-mirror/broadcast/terminal-display.js.map +0 -1
  334. package/dist/engines/c-mirror/core/claude-to-faf.d.ts +0 -28
  335. package/dist/engines/c-mirror/core/claude-to-faf.d.ts.map +0 -1
  336. package/dist/engines/c-mirror/core/claude-to-faf.js +0 -195
  337. package/dist/engines/c-mirror/core/claude-to-faf.js.map +0 -1
  338. package/dist/engines/c-mirror/core/events/event-emitter.d.ts +0 -36
  339. package/dist/engines/c-mirror/core/events/event-emitter.d.ts.map +0 -1
  340. package/dist/engines/c-mirror/core/events/event-emitter.js +0 -77
  341. package/dist/engines/c-mirror/core/events/event-emitter.js.map +0 -1
  342. package/dist/engines/c-mirror/core/events/mirror-events.d.ts +0 -103
  343. package/dist/engines/c-mirror/core/events/mirror-events.d.ts.map +0 -1
  344. package/dist/engines/c-mirror/core/events/mirror-events.js +0 -65
  345. package/dist/engines/c-mirror/core/events/mirror-events.js.map +0 -1
  346. package/dist/engines/c-mirror/core/faf-to-claude.d.ts +0 -18
  347. package/dist/engines/c-mirror/core/faf-to-claude.d.ts.map +0 -1
  348. package/dist/engines/c-mirror/core/faf-to-claude.js +0 -162
  349. package/dist/engines/c-mirror/core/faf-to-claude.js.map +0 -1
  350. package/dist/engines/c-mirror/core/interfaces.d.ts +0 -153
  351. package/dist/engines/c-mirror/core/interfaces.d.ts.map +0 -1
  352. package/dist/engines/c-mirror/core/interfaces.js +0 -8
  353. package/dist/engines/c-mirror/core/interfaces.js.map +0 -1
  354. package/dist/engines/c-mirror/core/mirror-engine.d.ts +0 -49
  355. package/dist/engines/c-mirror/core/mirror-engine.d.ts.map +0 -1
  356. package/dist/engines/c-mirror/core/mirror-engine.js +0 -315
  357. package/dist/engines/c-mirror/core/mirror-engine.js.map +0 -1
  358. package/dist/engines/c-mirror/faf-extensions/faf-mirror.d.ts +0 -33
  359. package/dist/engines/c-mirror/faf-extensions/faf-mirror.d.ts.map +0 -1
  360. package/dist/engines/c-mirror/faf-extensions/faf-mirror.js +0 -115
  361. package/dist/engines/c-mirror/faf-extensions/faf-mirror.js.map +0 -1
  362. package/dist/engines/c-mirror/strategies/atomic-write.d.ts +0 -34
  363. package/dist/engines/c-mirror/strategies/atomic-write.d.ts.map +0 -1
  364. package/dist/engines/c-mirror/strategies/atomic-write.js +0 -132
  365. package/dist/engines/c-mirror/strategies/atomic-write.js.map +0 -1
  366. package/dist/engines/claude-todo-engine.d.ts +0 -115
  367. package/dist/engines/claude-todo-engine.d.ts.map +0 -1
  368. package/dist/engines/claude-todo-engine.js +0 -346
  369. package/dist/engines/claude-todo-engine.js.map +0 -1
  370. package/dist/engines/dependency-tsa.d.ts +0 -89
  371. package/dist/engines/dependency-tsa.d.ts.map +0 -1
  372. package/dist/engines/dependency-tsa.js +0 -365
  373. package/dist/engines/dependency-tsa.js.map +0 -1
  374. package/dist/engines/drop-coach.d.ts +0 -64
  375. package/dist/engines/drop-coach.d.ts.map +0 -1
  376. package/dist/engines/drop-coach.js +0 -222
  377. package/dist/engines/drop-coach.js.map +0 -1
  378. package/dist/engines/execution-context.d.ts +0 -75
  379. package/dist/engines/execution-context.d.ts.map +0 -1
  380. package/dist/engines/execution-context.js +0 -308
  381. package/dist/engines/execution-context.js.map +0 -1
  382. package/dist/engines/fab-formats-processor.d.ts +0 -179
  383. package/dist/engines/fab-formats-processor.d.ts.map +0 -1
  384. package/dist/engines/fab-formats-processor.js +0 -1524
  385. package/dist/engines/fab-formats-processor.js.map +0 -1
  386. package/dist/engines/faf-dna.d.ts +0 -160
  387. package/dist/engines/faf-dna.d.ts.map +0 -1
  388. package/dist/engines/faf-dna.js +0 -547
  389. package/dist/engines/faf-dna.js.map +0 -1
  390. package/dist/engines/relentless-context-extractor.d.ts +0 -105
  391. package/dist/engines/relentless-context-extractor.d.ts.map +0 -1
  392. package/dist/engines/relentless-context-extractor.js +0 -698
  393. package/dist/engines/relentless-context-extractor.js.map +0 -1
  394. package/dist/engines/v252-hybrid-engine.d.ts +0 -60
  395. package/dist/engines/v252-hybrid-engine.d.ts.map +0 -1
  396. package/dist/engines/v252-hybrid-engine.js +0 -290
  397. package/dist/engines/v252-hybrid-engine.js.map +0 -1
  398. package/dist/family/detectors/n8n.d.ts +0 -10
  399. package/dist/family/detectors/n8n.d.ts.map +0 -1
  400. package/dist/family/detectors/n8n.js +0 -102
  401. package/dist/family/detectors/n8n.js.map +0 -1
  402. package/dist/family/detectors/next.d.ts +0 -8
  403. package/dist/family/detectors/next.d.ts.map +0 -1
  404. package/dist/family/detectors/next.js +0 -106
  405. package/dist/family/detectors/next.js.map +0 -1
  406. package/dist/family/detectors/react.d.ts +0 -8
  407. package/dist/family/detectors/react.d.ts.map +0 -1
  408. package/dist/family/detectors/react.js +0 -85
  409. package/dist/family/detectors/react.js.map +0 -1
  410. package/dist/family/detectors/svelte.d.ts +0 -8
  411. package/dist/family/detectors/svelte.d.ts.map +0 -1
  412. package/dist/family/detectors/svelte.js +0 -102
  413. package/dist/family/detectors/svelte.js.map +0 -1
  414. package/dist/family/detectors/typescript.d.ts +0 -8
  415. package/dist/family/detectors/typescript.d.ts.map +0 -1
  416. package/dist/family/detectors/typescript.js +0 -112
  417. package/dist/family/detectors/typescript.js.map +0 -1
  418. package/dist/family/detectors/vite.d.ts +0 -8
  419. package/dist/family/detectors/vite.d.ts.map +0 -1
  420. package/dist/family/detectors/vite.js +0 -97
  421. package/dist/family/detectors/vite.js.map +0 -1
  422. package/dist/family/index.d.ts +0 -21
  423. package/dist/family/index.d.ts.map +0 -1
  424. package/dist/family/index.js +0 -73
  425. package/dist/family/index.js.map +0 -1
  426. package/dist/family/registry.d.ts +0 -57
  427. package/dist/family/registry.d.ts.map +0 -1
  428. package/dist/family/registry.js +0 -156
  429. package/dist/family/registry.js.map +0 -1
  430. package/dist/family/types.d.ts +0 -102
  431. package/dist/family/types.d.ts.map +0 -1
  432. package/dist/family/types.js +0 -8
  433. package/dist/family/types.js.map +0 -1
  434. package/dist/fix-once/colors.d.ts +0 -105
  435. package/dist/fix-once/colors.d.ts.map +0 -1
  436. package/dist/fix-once/colors.js +0 -248
  437. package/dist/fix-once/colors.js.map +0 -1
  438. package/dist/fix-once/commander.d.ts +0 -18
  439. package/dist/fix-once/commander.d.ts.map +0 -1
  440. package/dist/fix-once/commander.js +0 -25
  441. package/dist/fix-once/commander.js.map +0 -1
  442. package/dist/fix-once/types.d.ts +0 -258
  443. package/dist/fix-once/types.d.ts.map +0 -1
  444. package/dist/fix-once/types.js +0 -26
  445. package/dist/fix-once/types.js.map +0 -1
  446. package/dist/fix-once/yaml.d.ts +0 -58
  447. package/dist/fix-once/yaml.d.ts.map +0 -1
  448. package/dist/fix-once/yaml.js +0 -172
  449. package/dist/fix-once/yaml.js.map +0 -1
  450. package/dist/framework-detector.d.ts +0 -307
  451. package/dist/framework-detector.d.ts.map +0 -1
  452. package/dist/framework-detector.js +0 -951
  453. package/dist/framework-detector.js.map +0 -1
  454. package/dist/generators/faf-generator-championship.d.ts +0 -17
  455. package/dist/generators/faf-generator-championship.d.ts.map +0 -1
  456. package/dist/generators/faf-generator-championship.js +0 -612
  457. package/dist/generators/faf-generator-championship.js.map +0 -1
  458. package/dist/github/current-score-calculator.d.ts +0 -15
  459. package/dist/github/current-score-calculator.d.ts.map +0 -1
  460. package/dist/github/current-score-calculator.js +0 -125
  461. package/dist/github/current-score-calculator.js.map +0 -1
  462. package/dist/github/faf-git-generator.d.ts +0 -52
  463. package/dist/github/faf-git-generator.d.ts.map +0 -1
  464. package/dist/github/faf-git-generator.js +0 -527
  465. package/dist/github/faf-git-generator.js.map +0 -1
  466. package/dist/github/github-extractor.d.ts +0 -60
  467. package/dist/github/github-extractor.d.ts.map +0 -1
  468. package/dist/github/github-extractor.js +0 -381
  469. package/dist/github/github-extractor.js.map +0 -1
  470. package/dist/github/popular-repos.d.ts +0 -43
  471. package/dist/github/popular-repos.d.ts.map +0 -1
  472. package/dist/github/popular-repos.js +0 -205
  473. package/dist/github/popular-repos.js.map +0 -1
  474. package/dist/github/repo-selector.d.ts +0 -48
  475. package/dist/github/repo-selector.d.ts.map +0 -1
  476. package/dist/github/repo-selector.js +0 -297
  477. package/dist/github/repo-selector.js.map +0 -1
  478. package/dist/index.d.ts +0 -20
  479. package/dist/index.d.ts.map +0 -1
  480. package/dist/index.js.map +0 -1
  481. package/dist/licensing/license-messages.d.ts +0 -20
  482. package/dist/licensing/license-messages.d.ts.map +0 -1
  483. package/dist/licensing/license-messages.js +0 -77
  484. package/dist/licensing/license-messages.js.map +0 -1
  485. package/dist/licensing/pro-gate.d.ts +0 -54
  486. package/dist/licensing/pro-gate.d.ts.map +0 -1
  487. package/dist/licensing/pro-gate.js +0 -243
  488. package/dist/licensing/pro-gate.js.map +0 -1
  489. package/dist/output/experience-manager.d.ts +0 -58
  490. package/dist/output/experience-manager.d.ts.map +0 -1
  491. package/dist/output/experience-manager.js +0 -215
  492. package/dist/output/experience-manager.js.map +0 -1
  493. package/dist/schema/faf-schema.d.ts +0 -97
  494. package/dist/schema/faf-schema.d.ts.map +0 -1
  495. package/dist/schema/faf-schema.js +0 -173
  496. package/dist/schema/faf-schema.js.map +0 -1
  497. package/dist/smart-faf.d.ts +0 -68
  498. package/dist/smart-faf.d.ts.map +0 -1
  499. package/dist/smart-faf.js +0 -400
  500. package/dist/smart-faf.js.map +0 -1
  501. package/dist/systems/question-system.d.ts +0 -122
  502. package/dist/systems/question-system.d.ts.map +0 -1
  503. package/dist/systems/question-system.js +0 -413
  504. package/dist/systems/question-system.js.map +0 -1
  505. package/dist/taf/index.d.ts +0 -21
  506. package/dist/taf/index.d.ts.map +0 -1
  507. package/dist/taf/index.js +0 -72
  508. package/dist/taf/index.js.map +0 -1
  509. package/dist/taf/logger.d.ts +0 -88
  510. package/dist/taf/logger.d.ts.map +0 -1
  511. package/dist/taf/logger.js +0 -137
  512. package/dist/taf/logger.js.map +0 -1
  513. package/dist/taf/parser.d.ts +0 -32
  514. package/dist/taf/parser.d.ts.map +0 -1
  515. package/dist/taf/parser.js +0 -161
  516. package/dist/taf/parser.js.map +0 -1
  517. package/dist/taf/star-badge.d.ts +0 -32
  518. package/dist/taf/star-badge.d.ts.map +0 -1
  519. package/dist/taf/star-badge.js +0 -158
  520. package/dist/taf/star-badge.js.map +0 -1
  521. package/dist/taf/star-rating.d.ts +0 -30
  522. package/dist/taf/star-rating.d.ts.map +0 -1
  523. package/dist/taf/star-rating.js +0 -79
  524. package/dist/taf/star-rating.js.map +0 -1
  525. package/dist/taf/stats.d.ts +0 -31
  526. package/dist/taf/stats.d.ts.map +0 -1
  527. package/dist/taf/stats.js +0 -190
  528. package/dist/taf/stats.js.map +0 -1
  529. package/dist/taf/test-output-parser.d.ts +0 -42
  530. package/dist/taf/test-output-parser.d.ts.map +0 -1
  531. package/dist/taf/test-output-parser.js +0 -127
  532. package/dist/taf/test-output-parser.js.map +0 -1
  533. package/dist/taf/types.d.ts +0 -77
  534. package/dist/taf/types.d.ts.map +0 -1
  535. package/dist/taf/types.js +0 -9
  536. package/dist/taf/types.js.map +0 -1
  537. package/dist/taf/validator.d.ts +0 -18
  538. package/dist/taf/validator.d.ts.map +0 -1
  539. package/dist/taf/validator.js +0 -148
  540. package/dist/taf/validator.js.map +0 -1
  541. package/dist/telemetry/analytics.d.ts +0 -74
  542. package/dist/telemetry/analytics.d.ts.map +0 -1
  543. package/dist/telemetry/analytics.js +0 -370
  544. package/dist/telemetry/analytics.js.map +0 -1
  545. package/dist/tests/test-chrome-fuzzy.d.ts +0 -5
  546. package/dist/tests/test-chrome-fuzzy.d.ts.map +0 -1
  547. package/dist/tests/test-chrome-fuzzy.js +0 -68
  548. package/dist/tests/test-chrome-fuzzy.js.map +0 -1
  549. package/dist/types/faf-types.d.ts +0 -144
  550. package/dist/types/faf-types.d.ts.map +0 -1
  551. package/dist/types/faf-types.js +0 -21
  552. package/dist/types/faf-types.js.map +0 -1
  553. package/dist/types/index.d.ts +0 -36
  554. package/dist/types/index.d.ts.map +0 -1
  555. package/dist/types/index.js +0 -7
  556. package/dist/types/index.js.map +0 -1
  557. package/dist/utils/agents-parser.d.ts +0 -60
  558. package/dist/utils/agents-parser.d.ts.map +0 -1
  559. package/dist/utils/agents-parser.js +0 -339
  560. package/dist/utils/agents-parser.js.map +0 -1
  561. package/dist/utils/announcements.d.ts +0 -16
  562. package/dist/utils/announcements.d.ts.map +0 -1
  563. package/dist/utils/announcements.js +0 -131
  564. package/dist/utils/announcements.js.map +0 -1
  565. package/dist/utils/balance-visualizer.d.ts +0 -38
  566. package/dist/utils/balance-visualizer.d.ts.map +0 -1
  567. package/dist/utils/balance-visualizer.js +0 -190
  568. package/dist/utils/balance-visualizer.js.map +0 -1
  569. package/dist/utils/championship-core.d.ts +0 -127
  570. package/dist/utils/championship-core.d.ts.map +0 -1
  571. package/dist/utils/championship-core.js +0 -212
  572. package/dist/utils/championship-core.js.map +0 -1
  573. package/dist/utils/championship-style.d.ts +0 -110
  574. package/dist/utils/championship-style.d.ts.map +0 -1
  575. package/dist/utils/championship-style.js +0 -219
  576. package/dist/utils/championship-style.js.map +0 -1
  577. package/dist/utils/chrome-extension-confirmer.d.ts +0 -41
  578. package/dist/utils/chrome-extension-confirmer.d.ts.map +0 -1
  579. package/dist/utils/chrome-extension-confirmer.js +0 -203
  580. package/dist/utils/chrome-extension-confirmer.js.map +0 -1
  581. package/dist/utils/chrome-extension-detector.d.ts +0 -74
  582. package/dist/utils/chrome-extension-detector.d.ts.map +0 -1
  583. package/dist/utils/chrome-extension-detector.js +0 -268
  584. package/dist/utils/chrome-extension-detector.js.map +0 -1
  585. package/dist/utils/color-utils.d.ts +0 -17
  586. package/dist/utils/color-utils.d.ts.map +0 -1
  587. package/dist/utils/color-utils.js +0 -112
  588. package/dist/utils/color-utils.js.map +0 -1
  589. package/dist/utils/conductor-parser.d.ts +0 -86
  590. package/dist/utils/conductor-parser.d.ts.map +0 -1
  591. package/dist/utils/conductor-parser.js +0 -293
  592. package/dist/utils/conductor-parser.js.map +0 -1
  593. package/dist/utils/cursorrules-parser.d.ts +0 -56
  594. package/dist/utils/cursorrules-parser.d.ts.map +0 -1
  595. package/dist/utils/cursorrules-parser.js +0 -327
  596. package/dist/utils/cursorrules-parser.js.map +0 -1
  597. package/dist/utils/email-opt-in.d.ts +0 -31
  598. package/dist/utils/email-opt-in.d.ts.map +0 -1
  599. package/dist/utils/email-opt-in.js +0 -199
  600. package/dist/utils/email-opt-in.js.map +0 -1
  601. package/dist/utils/fab-formats-engine.d.ts +0 -83
  602. package/dist/utils/fab-formats-engine.d.ts.map +0 -1
  603. package/dist/utils/fab-formats-engine.js +0 -502
  604. package/dist/utils/fab-formats-engine.js.map +0 -1
  605. package/dist/utils/fafb-compiler.d.ts +0 -62
  606. package/dist/utils/fafb-compiler.d.ts.map +0 -1
  607. package/dist/utils/fafb-compiler.js +0 -225
  608. package/dist/utils/fafb-compiler.js.map +0 -1
  609. package/dist/utils/fafb-detector.d.ts +0 -26
  610. package/dist/utils/fafb-detector.d.ts.map +0 -1
  611. package/dist/utils/fafb-detector.js +0 -180
  612. package/dist/utils/fafb-detector.js.map +0 -1
  613. package/dist/utils/fafignore-parser.d.ts +0 -21
  614. package/dist/utils/fafignore-parser.d.ts.map +0 -1
  615. package/dist/utils/fafignore-parser.js +0 -178
  616. package/dist/utils/fafignore-parser.js.map +0 -1
  617. package/dist/utils/feedback-messages.d.ts +0 -13
  618. package/dist/utils/feedback-messages.d.ts.map +0 -1
  619. package/dist/utils/feedback-messages.js +0 -118
  620. package/dist/utils/feedback-messages.js.map +0 -1
  621. package/dist/utils/file-utils.d.ts +0 -113
  622. package/dist/utils/file-utils.d.ts.map +0 -1
  623. package/dist/utils/file-utils.js +0 -949
  624. package/dist/utils/file-utils.js.map +0 -1
  625. package/dist/utils/gemini-parser.d.ts +0 -58
  626. package/dist/utils/gemini-parser.d.ts.map +0 -1
  627. package/dist/utils/gemini-parser.js +0 -263
  628. package/dist/utils/gemini-parser.js.map +0 -1
  629. package/dist/utils/markdown-to-context.d.ts +0 -28
  630. package/dist/utils/markdown-to-context.d.ts.map +0 -1
  631. package/dist/utils/markdown-to-context.js +0 -206
  632. package/dist/utils/markdown-to-context.js.map +0 -1
  633. package/dist/utils/memory-parser.d.ts +0 -95
  634. package/dist/utils/memory-parser.d.ts.map +0 -1
  635. package/dist/utils/memory-parser.js +0 -408
  636. package/dist/utils/memory-parser.js.map +0 -1
  637. package/dist/utils/memory-topic-writer.d.ts +0 -52
  638. package/dist/utils/memory-topic-writer.d.ts.map +0 -1
  639. package/dist/utils/memory-topic-writer.js +0 -415
  640. package/dist/utils/memory-topic-writer.js.map +0 -1
  641. package/dist/utils/native-cli-parser.d.ts +0 -152
  642. package/dist/utils/native-cli-parser.d.ts.map +0 -1
  643. package/dist/utils/native-cli-parser.js +0 -466
  644. package/dist/utils/native-cli-parser.js.map +0 -1
  645. package/dist/utils/native-file-finder.d.ts +0 -116
  646. package/dist/utils/native-file-finder.d.ts.map +0 -1
  647. package/dist/utils/native-file-finder.js +0 -211
  648. package/dist/utils/native-file-finder.js.map +0 -1
  649. package/dist/utils/platform-detector.d.ts +0 -31
  650. package/dist/utils/platform-detector.d.ts.map +0 -1
  651. package/dist/utils/platform-detector.js +0 -220
  652. package/dist/utils/platform-detector.js.map +0 -1
  653. package/dist/utils/score-header.d.ts +0 -22
  654. package/dist/utils/score-header.d.ts.map +0 -1
  655. package/dist/utils/score-header.js +0 -88
  656. package/dist/utils/score-header.js.map +0 -1
  657. package/dist/utils/slot-counter.d.ts +0 -56
  658. package/dist/utils/slot-counter.d.ts.map +0 -1
  659. package/dist/utils/slot-counter.js +0 -100
  660. package/dist/utils/slot-counter.js.map +0 -1
  661. package/dist/utils/technical-credit.d.ts +0 -36
  662. package/dist/utils/technical-credit.d.ts.map +0 -1
  663. package/dist/utils/technical-credit.js +0 -286
  664. package/dist/utils/technical-credit.js.map +0 -1
  665. package/dist/utils/trust-cache.d.ts +0 -29
  666. package/dist/utils/trust-cache.d.ts.map +0 -1
  667. package/dist/utils/trust-cache.js +0 -122
  668. package/dist/utils/trust-cache.js.map +0 -1
  669. package/dist/utils/turbo-cat-knowledge.d.ts +0 -105
  670. package/dist/utils/turbo-cat-knowledge.d.ts.map +0 -1
  671. package/dist/utils/turbo-cat-knowledge.js +0 -1941
  672. package/dist/utils/turbo-cat-knowledge.js.map +0 -1
  673. package/dist/utils/turbo-cat-pyramid.d.ts +0 -48
  674. package/dist/utils/turbo-cat-pyramid.d.ts.map +0 -1
  675. package/dist/utils/turbo-cat-pyramid.js +0 -380
  676. package/dist/utils/turbo-cat-pyramid.js.map +0 -1
  677. package/dist/utils/turbo-cat.d.ts +0 -99
  678. package/dist/utils/turbo-cat.d.ts.map +0 -1
  679. package/dist/utils/turbo-cat.js +0 -456
  680. package/dist/utils/turbo-cat.js.map +0 -1
  681. package/dist/utils/universal-fuzzy-detector.d.ts +0 -64
  682. package/dist/utils/universal-fuzzy-detector.d.ts.map +0 -1
  683. package/dist/utils/universal-fuzzy-detector.js +0 -386
  684. package/dist/utils/universal-fuzzy-detector.js.map +0 -1
  685. package/dist/utils/update-checker.d.ts +0 -15
  686. package/dist/utils/update-checker.d.ts.map +0 -1
  687. package/dist/utils/update-checker.js +0 -200
  688. package/dist/utils/update-checker.js.map +0 -1
  689. package/dist/utils/vibe-sync.d.ts +0 -25
  690. package/dist/utils/vibe-sync.d.ts.map +0 -1
  691. package/dist/utils/vibe-sync.js +0 -175
  692. package/dist/utils/vibe-sync.js.map +0 -1
  693. package/dist/utils/yaml-generator.d.ts +0 -52
  694. package/dist/utils/yaml-generator.d.ts.map +0 -1
  695. package/dist/utils/yaml-generator.js +0 -432
  696. package/dist/utils/yaml-generator.js.map +0 -1
  697. package/faf-banner.png +0 -0
  698. package/scripts/ANTHROPIC-DEMO.sh +0 -203
  699. package/scripts/boris-ready.sh +0 -169
  700. package/scripts/bundle-yaml.js +0 -87
  701. package/scripts/check-version.js +0 -88
  702. package/scripts/clean-build.js +0 -34
  703. package/scripts/cleanup-unused.sh +0 -54
  704. package/scripts/debug-django.txt +0 -9
  705. package/scripts/debug-mongo.txt +0 -9
  706. package/scripts/debug-react.txt +0 -9
  707. package/scripts/debug-rust.txt +0 -9
  708. package/scripts/debug-whisper.cpp.txt +0 -9
  709. package/scripts/evaluate-family-member.ts +0 -300
  710. package/scripts/generate-docs.ts +0 -358
  711. package/scripts/generate-drift-reports.sh +0 -111
  712. package/scripts/industry-showcase.json +0 -122
  713. package/scripts/mcp-ecosystem-research.sh +0 -58
  714. package/scripts/migrate-yaml-imports.sh +0 -55
  715. package/scripts/migrate-yaml.ts +0 -132
  716. package/scripts/performance-validation.ts +0 -460
  717. package/scripts/postinstall.js +0 -30
  718. package/scripts/prepare-release.ts +0 -421
  719. package/scripts/run-industry-showcase.ts +0 -237
  720. package/scripts/run-test-showcase.ts +0 -244
  721. package/scripts/setup-github-watch.sh +0 -43
  722. package/scripts/sync-version.js +0 -35
  723. package/scripts/test-integration-detection.ts +0 -93
  724. package/scripts/test-integration-simple.js +0 -93
  725. package/scripts/test-medal-progression.sh +0 -143
  726. package/scripts/test-showcase-results.json +0 -109
  727. package/scripts/test-showcase.json +0 -32
  728. package/scripts/update-version.js +0 -148
  729. package/scripts/verify-build.js +0 -343
  730. package/scripts/version-check.js +0 -78
  731. package/scripts/watch-discussions.sh +0 -86
@@ -1,951 +0,0 @@
1
- "use strict";
2
- /**
3
- * 🏎️ Framework Detection Lookup Implementation
4
- *
5
- * Ready-to-use TypeScript/JSON structure for instant framework detection
6
- * Import this directly into the .faf CLI for rapid framework identification
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.FrameworkDetector = exports.PACKAGE_MANAGERS = exports.CONFIG_INDICATORS = exports.COMBINATION_PATTERNS = exports.DIRECTORY_PATTERNS = exports.UNIQUE_SIGNATURES = void 0;
43
- exports.detectClaudeCode = detectClaudeCode;
44
- exports.detectFramework = detectFramework;
45
- /**
46
- * TIER 1: Unique File Signatures
47
- * These files identify specific frameworks with 100% confidence
48
- */
49
- exports.UNIQUE_SIGNATURES = {
50
- // Next.js
51
- 'next.config.js': {
52
- framework: 'Next.js',
53
- confidence: 100,
54
- versionCheck: 'package.json:next',
55
- ecosystem: 'npm/yarn/pnpm',
56
- language: 'JavaScript/TypeScript'
57
- },
58
- 'next.config.mjs': {
59
- framework: 'Next.js',
60
- confidence: 100,
61
- versionCheck: 'package.json:next',
62
- ecosystem: 'npm/yarn/pnpm',
63
- language: 'JavaScript/TypeScript'
64
- },
65
- 'next.config.ts': {
66
- framework: 'Next.js 13+',
67
- confidence: 100,
68
- versionCheck: 'package.json:next',
69
- ecosystem: 'npm/yarn/pnpm',
70
- language: 'TypeScript'
71
- },
72
- // Nuxt
73
- 'nuxt.config.js': {
74
- framework: 'Nuxt 2',
75
- confidence: 100,
76
- versionCheck: 'package.json:nuxt',
77
- ecosystem: 'npm/yarn/pnpm',
78
- language: 'JavaScript'
79
- },
80
- 'nuxt.config.ts': {
81
- framework: 'Nuxt 3',
82
- confidence: 100,
83
- versionCheck: 'package.json:nuxt',
84
- ecosystem: 'npm/yarn/pnpm',
85
- language: 'TypeScript'
86
- },
87
- // Django
88
- 'manage.py': {
89
- framework: 'Django',
90
- confidence: 100,
91
- additionalCheck: 'contains:django',
92
- ecosystem: 'pip/pipenv/poetry',
93
- language: 'Python'
94
- },
95
- // Laravel
96
- 'artisan': {
97
- framework: 'Laravel',
98
- confidence: 100,
99
- additionalCheck: 'contains:laravel',
100
- ecosystem: 'composer',
101
- language: 'PHP'
102
- },
103
- // Angular
104
- 'angular.json': {
105
- framework: 'Angular',
106
- confidence: 100,
107
- versionCheck: 'package.json:@angular/core',
108
- ecosystem: 'npm/yarn/pnpm',
109
- language: 'TypeScript'
110
- },
111
- // SvelteKit
112
- 'svelte.config.js': {
113
- framework: 'SvelteKit',
114
- confidence: 100,
115
- versionCheck: 'package.json:@sveltejs/kit',
116
- ecosystem: 'npm/yarn/pnpm',
117
- language: 'JavaScript/TypeScript'
118
- },
119
- // Remix
120
- 'remix.config.js': {
121
- framework: 'Remix',
122
- confidence: 100,
123
- versionCheck: 'package.json:@remix-run/node',
124
- ecosystem: 'npm/yarn/pnpm',
125
- language: 'JavaScript/TypeScript'
126
- },
127
- // Gatsby
128
- 'gatsby-config.js': {
129
- framework: 'Gatsby',
130
- confidence: 100,
131
- versionCheck: 'package.json:gatsby',
132
- ecosystem: 'npm/yarn/pnpm',
133
- language: 'JavaScript'
134
- },
135
- 'gatsby-config.ts': {
136
- framework: 'Gatsby 5+',
137
- confidence: 100,
138
- versionCheck: 'package.json:gatsby',
139
- ecosystem: 'npm/yarn/pnpm',
140
- language: 'TypeScript'
141
- },
142
- // Astro
143
- 'astro.config.mjs': {
144
- framework: 'Astro',
145
- confidence: 100,
146
- versionCheck: 'package.json:astro',
147
- ecosystem: 'npm/yarn/pnpm',
148
- language: 'JavaScript/TypeScript'
149
- },
150
- // Ruby on Rails
151
- 'Rakefile': {
152
- framework: 'Ruby on Rails',
153
- confidence: 85,
154
- additionalCheck: 'contains:Rails',
155
- ecosystem: 'bundler',
156
- language: 'Ruby'
157
- },
158
- // Flutter
159
- 'pubspec.yaml': {
160
- framework: 'Flutter/Dart',
161
- confidence: 95,
162
- additionalCheck: 'contains:flutter',
163
- ecosystem: 'pub',
164
- language: 'Dart'
165
- },
166
- // React Native
167
- 'metro.config.js': {
168
- framework: 'React Native',
169
- confidence: 95,
170
- versionCheck: 'package.json:react-native',
171
- ecosystem: 'npm/yarn/pnpm',
172
- language: 'JavaScript/TypeScript'
173
- },
174
- // Spring Boot
175
- 'mvnw': {
176
- framework: 'Spring Boot/Maven',
177
- confidence: 85,
178
- additionalCheck: 'pom.xml:spring-boot',
179
- ecosystem: 'maven',
180
- language: 'Java'
181
- },
182
- 'gradlew': {
183
- framework: 'Spring Boot/Gradle',
184
- confidence: 85,
185
- additionalCheck: 'build.gradle:spring-boot',
186
- ecosystem: 'gradle',
187
- language: 'Java/Kotlin'
188
- },
189
- // Go
190
- 'go.mod': {
191
- framework: 'Go',
192
- confidence: 100,
193
- ecosystem: 'go modules',
194
- language: 'Go'
195
- },
196
- // Rust
197
- 'Cargo.toml': {
198
- framework: 'Rust',
199
- confidence: 100,
200
- ecosystem: 'cargo',
201
- language: 'Rust'
202
- },
203
- // Zig
204
- 'build.zig': {
205
- framework: 'Zig',
206
- confidence: 100,
207
- ecosystem: 'zig package manager',
208
- language: 'Zig'
209
- },
210
- // Phoenix/Elixir
211
- 'mix.exs': {
212
- framework: 'Phoenix/Elixir',
213
- confidence: 95,
214
- additionalCheck: 'contains:phoenix',
215
- ecosystem: 'mix',
216
- language: 'Elixir'
217
- },
218
- // RedwoodJS
219
- 'redwood.toml': {
220
- framework: 'RedwoodJS',
221
- confidence: 100,
222
- versionCheck: 'package.json:@redwoodjs/core',
223
- ecosystem: 'npm/yarn/pnpm',
224
- language: 'JavaScript/TypeScript'
225
- },
226
- // Qwik
227
- 'qwik.config.ts': {
228
- framework: 'Qwik',
229
- confidence: 100,
230
- versionCheck: 'package.json:@builder.io/qwik',
231
- ecosystem: 'npm/yarn/pnpm',
232
- language: 'TypeScript'
233
- },
234
- // NestJS
235
- 'nest-cli.json': {
236
- framework: 'NestJS',
237
- confidence: 100,
238
- versionCheck: 'package.json:@nestjs/core',
239
- ecosystem: 'npm/yarn/pnpm',
240
- language: 'TypeScript'
241
- }
242
- };
243
- /**
244
- * TIER 2: Directory Pattern Signatures
245
- * Specific folder structures that strongly indicate frameworks
246
- */
247
- exports.DIRECTORY_PATTERNS = {
248
- // Next.js App Router
249
- 'app/layout.tsx': {
250
- framework: 'Next.js 13+ App Router',
251
- confidence: 100,
252
- language: 'TypeScript'
253
- },
254
- 'app/page.tsx': {
255
- framework: 'Next.js 13+ App Router',
256
- confidence: 100,
257
- language: 'TypeScript'
258
- },
259
- 'app/layout.js': {
260
- framework: 'Next.js 13+ App Router',
261
- confidence: 100,
262
- language: 'JavaScript'
263
- },
264
- // Next.js Pages Router
265
- 'pages/_app.tsx': {
266
- framework: 'Next.js Pages Router',
267
- confidence: 100,
268
- language: 'TypeScript'
269
- },
270
- 'pages/_document.tsx': {
271
- framework: 'Next.js Pages Router',
272
- confidence: 100,
273
- language: 'TypeScript'
274
- },
275
- 'pages/api': {
276
- framework: 'Next.js API Routes',
277
- confidence: 95,
278
- language: 'JavaScript/TypeScript'
279
- },
280
- // Django
281
- 'models.py': {
282
- framework: 'Django',
283
- confidence: 90,
284
- pattern: true,
285
- language: 'Python'
286
- },
287
- 'views.py': {
288
- framework: 'Django',
289
- confidence: 85,
290
- pattern: true,
291
- language: 'Python'
292
- },
293
- 'serializers.py': {
294
- framework: 'Django REST Framework',
295
- confidence: 95,
296
- pattern: true,
297
- language: 'Python'
298
- },
299
- // Laravel
300
- 'app/Http/Controllers': {
301
- framework: 'Laravel',
302
- confidence: 95,
303
- language: 'PHP'
304
- },
305
- 'app/Models': {
306
- framework: 'Laravel',
307
- confidence: 95,
308
- language: 'PHP'
309
- },
310
- 'database/migrations': {
311
- framework: 'Laravel',
312
- confidence: 90,
313
- language: 'PHP'
314
- },
315
- // Rails
316
- 'app/controllers': {
317
- framework: 'Ruby on Rails',
318
- confidence: 95,
319
- language: 'Ruby'
320
- },
321
- 'app/models': {
322
- framework: 'Ruby on Rails',
323
- confidence: 95,
324
- language: 'Ruby'
325
- },
326
- 'db/migrate': {
327
- framework: 'Ruby on Rails',
328
- confidence: 95,
329
- language: 'Ruby'
330
- },
331
- // Angular
332
- 'src/app/app.module.ts': {
333
- framework: 'Angular',
334
- confidence: 100,
335
- language: 'TypeScript'
336
- },
337
- 'src/app/app.component.ts': {
338
- framework: 'Angular',
339
- confidence: 100,
340
- language: 'TypeScript'
341
- },
342
- // Vue
343
- 'src/App.vue': {
344
- framework: 'Vue',
345
- confidence: 90,
346
- language: 'JavaScript/TypeScript'
347
- },
348
- 'src/components': {
349
- framework: 'Vue',
350
- confidence: 70,
351
- pattern: true,
352
- additionalCheck: '.vue files',
353
- language: 'JavaScript/TypeScript'
354
- },
355
- // SvelteKit
356
- 'src/routes/+page.svelte': {
357
- framework: 'SvelteKit',
358
- confidence: 100,
359
- language: 'JavaScript/TypeScript'
360
- },
361
- 'src/lib': {
362
- framework: 'SvelteKit',
363
- confidence: 80,
364
- language: 'JavaScript/TypeScript'
365
- },
366
- // Spring Boot
367
- 'src/main/java': {
368
- framework: 'Spring Boot/Java',
369
- confidence: 85,
370
- language: 'Java'
371
- },
372
- 'src/main/resources/application.properties': {
373
- framework: 'Spring Boot',
374
- confidence: 95,
375
- language: 'Java'
376
- },
377
- 'src/main/resources/application.yml': {
378
- framework: 'Spring Boot',
379
- confidence: 95,
380
- language: 'Java'
381
- },
382
- // .NET
383
- 'Controllers': {
384
- framework: '.NET MVC/API',
385
- confidence: 90,
386
- language: 'C#'
387
- },
388
- 'Views': {
389
- framework: '.NET MVC',
390
- confidence: 95,
391
- language: 'C#'
392
- },
393
- // Flutter
394
- 'lib/main.dart': {
395
- framework: 'Flutter',
396
- confidence: 100,
397
- language: 'Dart'
398
- },
399
- 'ios/Runner': {
400
- framework: 'Flutter',
401
- confidence: 95,
402
- language: 'Dart'
403
- }
404
- };
405
- /**
406
- * TIER 3: File Combination Patterns
407
- * Multiple files that together indicate a specific framework/stack
408
- */
409
- exports.COMBINATION_PATTERNS = {
410
- 't3-stack': {
411
- files: ['next.config.mjs', 'prisma/schema.prisma', 'src/server/api/routers'],
412
- framework: 'T3 Stack',
413
- confidence: 95,
414
- features: ['Next.js', 'Prisma', 'tRPC', 'TypeScript'],
415
- language: 'TypeScript'
416
- },
417
- 'mean-stack': {
418
- files: ['angular.json', 'server.js', 'package.json'],
419
- checks: ['express', 'mongoose', '@angular/core'],
420
- framework: 'MEAN Stack',
421
- confidence: 90,
422
- features: ['MongoDB', 'Express', 'Angular', 'Node.js'],
423
- language: 'TypeScript/JavaScript'
424
- },
425
- 'mern-stack': {
426
- files: ['client/package.json', 'server/index.js'],
427
- checks: ['react', 'express', 'mongoose'],
428
- framework: 'MERN Stack',
429
- confidence: 90,
430
- features: ['MongoDB', 'Express', 'React', 'Node.js'],
431
- language: 'JavaScript/TypeScript'
432
- },
433
- 'django-drf': {
434
- files: ['manage.py', 'requirements.txt'],
435
- checks: ['djangorestframework'],
436
- framework: 'Django + DRF',
437
- confidence: 95,
438
- features: ['Django', 'Django REST Framework'],
439
- language: 'Python'
440
- },
441
- 'laravel-vue': {
442
- files: ['artisan', 'resources/js/app.js'],
443
- checks: ['vue'],
444
- framework: 'Laravel + Vue',
445
- confidence: 90,
446
- features: ['Laravel', 'Vue.js'],
447
- language: 'PHP/JavaScript'
448
- },
449
- 'fastapi': {
450
- files: ['main.py', 'requirements.txt'],
451
- checks: ['fastapi', 'uvicorn'],
452
- framework: 'FastAPI',
453
- confidence: 95,
454
- features: ['FastAPI', 'Uvicorn'],
455
- language: 'Python'
456
- },
457
- 'nestjs-graphql': {
458
- files: ['nest-cli.json', 'src/app.module.ts'],
459
- checks: ['@nestjs/graphql'],
460
- framework: 'NestJS + GraphQL',
461
- confidence: 95,
462
- features: ['NestJS', 'GraphQL'],
463
- language: 'TypeScript'
464
- }
465
- };
466
- /**
467
- * TIER 4: Configuration File Indicators
468
- * Files that indicate specific tools, features, or deployment targets
469
- */
470
- exports.CONFIG_INDICATORS = {
471
- // Testing Frameworks
472
- 'jest.config.js': { feature: 'Jest', type: 'testing' },
473
- 'jest.config.ts': { feature: 'Jest', type: 'testing' },
474
- 'vitest.config.ts': { feature: 'Vitest', type: 'testing' },
475
- 'cypress.config.js': { feature: 'Cypress', type: 'e2e-testing' },
476
- 'playwright.config.ts': { feature: 'Playwright', type: 'e2e-testing' },
477
- // Linting & Formatting
478
- '.eslintrc.js': { feature: 'ESLint', type: 'linting' },
479
- '.eslintrc.json': { feature: 'ESLint', type: 'linting' },
480
- '.prettierrc': { feature: 'Prettier', type: 'formatting' },
481
- 'biome.json': { feature: 'Biome', type: 'formatting' },
482
- // CI/CD
483
- '.github/workflows': { feature: 'GitHub Actions', type: 'ci-cd' },
484
- '.gitlab-ci.yml': { feature: 'GitLab CI', type: 'ci-cd' },
485
- 'Jenkinsfile': { feature: 'Jenkins', type: 'ci-cd' },
486
- '.circleci/config.yml': { feature: 'CircleCI', type: 'ci-cd' },
487
- // Deployment
488
- 'vercel.json': { feature: 'Vercel', type: 'deployment' },
489
- 'netlify.toml': { feature: 'Netlify', type: 'deployment' },
490
- 'render.yaml': { feature: 'Render', type: 'deployment' },
491
- 'fly.toml': { feature: 'Fly.io', type: 'deployment' },
492
- 'railway.json': { feature: 'Railway', type: 'deployment' },
493
- 'Dockerfile': { feature: 'Docker', type: 'containerization' },
494
- 'docker-compose.yml': { feature: 'Docker Compose', type: 'orchestration' },
495
- // Database/ORM
496
- 'prisma/schema.prisma': { feature: 'Prisma', type: 'orm' },
497
- 'drizzle.config.ts': { feature: 'Drizzle', type: 'orm' },
498
- 'ormconfig.js': { feature: 'TypeORM', type: 'orm' },
499
- 'knexfile.js': { feature: 'Knex.js', type: 'query-builder' },
500
- // Monorepo Tools
501
- 'nx.json': { feature: 'Nx', type: 'monorepo' },
502
- 'turbo.json': { feature: 'Turborepo', type: 'monorepo' },
503
- 'lerna.json': { feature: 'Lerna', type: 'monorepo' },
504
- 'rush.json': { feature: 'Rush', type: 'monorepo' },
505
- 'pnpm-workspace.yaml': { feature: 'pnpm workspaces', type: 'monorepo' }
506
- };
507
- async function detectClaudeCode(projectPath) {
508
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
509
- const path = await Promise.resolve().then(() => __importStar(require('path')));
510
- const result = {
511
- detected: false,
512
- subagents: [],
513
- commands: [],
514
- skills: [],
515
- permissions: [],
516
- hasClaudeMd: false,
517
- mcpServers: []
518
- };
519
- // Check for CLAUDE.md
520
- try {
521
- await fs.access(path.join(projectPath, 'CLAUDE.md'));
522
- result.hasClaudeMd = true;
523
- result.detected = true;
524
- }
525
- catch { }
526
- // Check for .claude/agents/
527
- try {
528
- const agentsPath = path.join(projectPath, '.claude', 'agents');
529
- const files = await fs.readdir(agentsPath);
530
- result.subagents = files
531
- .filter(f => f.endsWith('.md'))
532
- .map(f => f.replace('.md', ''));
533
- if (result.subagents.length > 0) {
534
- result.detected = true;
535
- }
536
- }
537
- catch { }
538
- // Check for .claude/commands/
539
- try {
540
- const commandsPath = path.join(projectPath, '.claude', 'commands');
541
- const files = await fs.readdir(commandsPath);
542
- result.commands = files
543
- .filter(f => f.endsWith('.md'))
544
- .map(f => f.replace('.md', ''));
545
- if (result.commands.length > 0) {
546
- result.detected = true;
547
- }
548
- }
549
- catch { }
550
- // Check for .claude/skills/ (Claude Code 2.1.0+)
551
- try {
552
- const skillsPath = path.join(projectPath, '.claude', 'skills');
553
- const files = await fs.readdir(skillsPath);
554
- result.skills = files
555
- .filter(f => f.endsWith('.md'))
556
- .map(f => f.replace('.md', ''));
557
- if (result.skills.length > 0) {
558
- result.detected = true;
559
- }
560
- }
561
- catch { }
562
- // Check for .claude/settings.json permissions
563
- try {
564
- const settingsPath = path.join(projectPath, '.claude', 'settings.json');
565
- const content = await fs.readFile(settingsPath, 'utf-8');
566
- const settings = JSON.parse(content);
567
- if (settings.permissions?.allow) {
568
- result.permissions = settings.permissions.allow
569
- .slice(0, 10)
570
- .map((p) => p.split('(')[0]); // Extract tool name
571
- }
572
- if (result.permissions.length > 0) {
573
- result.detected = true;
574
- }
575
- }
576
- catch { }
577
- // Check for .mcp.json (project-scoped MCP servers)
578
- try {
579
- const mcpPath = path.join(projectPath, '.mcp.json');
580
- const content = await fs.readFile(mcpPath, 'utf-8');
581
- const mcpConfig = JSON.parse(content);
582
- if (mcpConfig.mcpServers) {
583
- result.mcpServers = Object.keys(mcpConfig.mcpServers).slice(0, 10);
584
- }
585
- if (result.mcpServers.length > 0) {
586
- result.detected = true;
587
- }
588
- }
589
- catch { }
590
- return result;
591
- }
592
- /**
593
- * TIER 6: Package Manager Indicators
594
- * Lock files that indicate the package manager being used
595
- */
596
- exports.PACKAGE_MANAGERS = {
597
- 'package-lock.json': 'npm',
598
- 'yarn.lock': 'yarn',
599
- 'pnpm-lock.yaml': 'pnpm',
600
- 'bun.lockb': 'bun',
601
- 'Gemfile.lock': 'bundler',
602
- 'Pipfile.lock': 'pipenv',
603
- 'poetry.lock': 'poetry',
604
- 'composer.lock': 'composer',
605
- 'Cargo.lock': 'cargo',
606
- 'go.sum': 'go modules',
607
- 'Package.resolved': 'swift-pm',
608
- 'Podfile.lock': 'cocoapods'
609
- };
610
- /**
611
- * Main Detection Class
612
- */
613
- class FrameworkDetector {
614
- projectPath;
615
- detectionStartTime;
616
- constructor(projectPath) {
617
- this.projectPath = projectPath;
618
- this.detectionStartTime = Date.now();
619
- }
620
- /**
621
- * Run the complete detection pipeline
622
- */
623
- async detect() {
624
- // Phase 1: Check unique signatures (fastest)
625
- const uniqueResult = await this.checkUniqueSignatures();
626
- if (uniqueResult) {
627
- return this.createResult(uniqueResult, 'unique');
628
- }
629
- // Phase 2: Check directory patterns
630
- const dirResult = await this.checkDirectoryPatterns();
631
- if (dirResult && dirResult.confidence && dirResult.confidence > 80) {
632
- return this.createResult(dirResult, 'directory');
633
- }
634
- // Phase 3: Check file combinations
635
- const comboResult = await this.checkCombinations();
636
- if (comboResult && comboResult.confidence && comboResult.confidence > 70) {
637
- return this.createResult(comboResult, 'combination');
638
- }
639
- // Phase 4: Package analysis fallback
640
- const packageResult = await this.analyzePackages();
641
- const result = this.createResult(packageResult, 'package');
642
- // Phase 5: Smart Metadata Extraction (New)
643
- const metadata = await this.extractProjectMetadata();
644
- if (metadata.projectName) {
645
- result.projectName = metadata.projectName;
646
- }
647
- if (metadata.projectVersion) {
648
- result.projectVersion = metadata.projectVersion;
649
- }
650
- if (metadata.projectGoal) {
651
- result.projectGoal = metadata.projectGoal;
652
- }
653
- return result;
654
- }
655
- /**
656
- * Extract project metadata (name, version, goal) from manifest files
657
- */
658
- async extractProjectMetadata() {
659
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
660
- const path = await Promise.resolve().then(() => __importStar(require('path')));
661
- const metadata = {};
662
- try {
663
- const projectRoot = path.resolve(this.projectPath);
664
- // Check package.json
665
- const pkgJsonPath = path.join(projectRoot, 'package.json');
666
- try {
667
- const content = await fs.readFile(pkgJsonPath, 'utf-8');
668
- const pkg = JSON.parse(content);
669
- if (pkg.name) {
670
- metadata.projectName = pkg.name;
671
- }
672
- if (pkg.version) {
673
- metadata.projectVersion = pkg.version;
674
- }
675
- if (pkg.description) {
676
- metadata.projectGoal = pkg.description;
677
- }
678
- }
679
- catch { }
680
- // Check pyproject.toml
681
- const pyProjPath = path.join(projectRoot, 'pyproject.toml');
682
- try {
683
- const content = await fs.readFile(pyProjPath, 'utf-8');
684
- // Simple regex fallback for TOML parsing - supports both ' and "
685
- const nameMatch = content.match(/^name\s*=\s*['"](.*)['"]/m);
686
- const verMatch = content.match(/^version\s*=\s*['"](.*)['"]/m);
687
- const descMatch = content.match(/^description\s*=\s*['"](.*)['"]/m);
688
- if (nameMatch) {
689
- metadata.projectName = nameMatch[1];
690
- }
691
- if (verMatch) {
692
- metadata.projectVersion = verMatch[1];
693
- }
694
- if (descMatch) {
695
- metadata.projectGoal = descMatch[1];
696
- }
697
- }
698
- catch { }
699
- // Check Cargo.toml
700
- const cargoPath = path.join(projectRoot, 'Cargo.toml');
701
- try {
702
- const content = await fs.readFile(cargoPath, 'utf-8');
703
- const nameMatch = content.match(/^name\s*=\s*['"](.*)['"]/m);
704
- const verMatch = content.match(/^version\s*=\s*['"](.*)['"]/m);
705
- if (nameMatch) {
706
- metadata.projectName = nameMatch[1];
707
- }
708
- if (verMatch) {
709
- metadata.projectVersion = verMatch[1];
710
- }
711
- }
712
- catch { }
713
- }
714
- catch { }
715
- return metadata;
716
- }
717
- /**
718
- * Check for unique file signatures
719
- */
720
- async checkUniqueSignatures() {
721
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
722
- const path = await Promise.resolve().then(() => __importStar(require('path')));
723
- for (const [file, signature] of Object.entries(exports.UNIQUE_SIGNATURES)) {
724
- const filePath = path.join(this.projectPath, file);
725
- try {
726
- await fs.access(filePath);
727
- // File exists, check additional conditions if needed
728
- if (signature.additionalCheck) {
729
- const content = await fs.readFile(filePath, 'utf-8');
730
- if (!content.includes(signature.additionalCheck.split(':')[1])) {
731
- continue;
732
- }
733
- }
734
- // Get version if needed
735
- let version;
736
- if (signature.versionCheck) {
737
- version = await this.getVersionFromPackageJson(signature.versionCheck);
738
- }
739
- return {
740
- framework: signature.framework,
741
- confidence: signature.confidence,
742
- version,
743
- ecosystem: signature.ecosystem,
744
- language: signature.language,
745
- features: []
746
- };
747
- }
748
- catch {
749
- // File doesn't exist, continue checking
750
- continue;
751
- }
752
- }
753
- return null;
754
- }
755
- /**
756
- * Check directory patterns
757
- */
758
- async checkDirectoryPatterns() {
759
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
760
- const path = await Promise.resolve().then(() => __importStar(require('path')));
761
- for (const [pattern, signature] of Object.entries(exports.DIRECTORY_PATTERNS)) {
762
- const fullPath = path.join(this.projectPath, pattern);
763
- try {
764
- const stats = await fs.stat(fullPath);
765
- if (stats.isDirectory() || stats.isFile()) {
766
- return {
767
- framework: signature.framework,
768
- confidence: signature.confidence,
769
- language: signature.language,
770
- features: []
771
- };
772
- }
773
- }
774
- catch {
775
- continue;
776
- }
777
- }
778
- return null;
779
- }
780
- /**
781
- * Check file combinations
782
- */
783
- async checkCombinations() {
784
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
785
- const path = await Promise.resolve().then(() => __importStar(require('path')));
786
- for (const [key, pattern] of Object.entries(exports.COMBINATION_PATTERNS)) {
787
- let allFilesExist = true;
788
- for (const file of pattern.files) {
789
- const filePath = path.join(this.projectPath, file);
790
- try {
791
- await fs.access(filePath);
792
- }
793
- catch {
794
- allFilesExist = false;
795
- break;
796
- }
797
- }
798
- if (allFilesExist) {
799
- // Check additional conditions
800
- if ('checks' in pattern && pattern.checks) {
801
- const packageJson = await this.readPackageJson();
802
- if (packageJson) {
803
- for (const check of ('checks' in pattern ? pattern.checks : [])) {
804
- const deps = {
805
- ...packageJson.dependencies,
806
- ...packageJson.devDependencies
807
- };
808
- if (!deps[check]) {
809
- allFilesExist = false;
810
- break;
811
- }
812
- }
813
- }
814
- }
815
- if (allFilesExist) {
816
- return {
817
- framework: pattern.framework,
818
- confidence: pattern.confidence,
819
- features: pattern.features || [],
820
- language: pattern.language
821
- };
822
- }
823
- }
824
- }
825
- return null;
826
- }
827
- /**
828
- * Analyze package.json as fallback
829
- */
830
- async analyzePackages() {
831
- const packageJson = await this.readPackageJson();
832
- if (!packageJson) {
833
- return {
834
- framework: 'Unknown',
835
- confidence: 0,
836
- features: []
837
- };
838
- }
839
- const deps = {
840
- ...packageJson.dependencies,
841
- ...packageJson.devDependencies
842
- };
843
- // Check for common frameworks in dependencies
844
- const frameworkChecks = [
845
- { dep: 'next', framework: 'Next.js' },
846
- { dep: '@angular/core', framework: 'Angular' },
847
- { dep: 'vue', framework: 'Vue' },
848
- { dep: 'react', framework: 'React' },
849
- { dep: 'svelte', framework: 'Svelte' },
850
- { dep: '@remix-run/node', framework: 'Remix' },
851
- { dep: 'gatsby', framework: 'Gatsby' },
852
- { dep: 'astro', framework: 'Astro' },
853
- { dep: '@nestjs/core', framework: 'NestJS' },
854
- { dep: 'express', framework: 'Express.js' },
855
- { dep: 'fastify', framework: 'Fastify' }
856
- ];
857
- for (const check of frameworkChecks) {
858
- if (deps[check.dep]) {
859
- return {
860
- framework: check.framework,
861
- confidence: 70,
862
- version: deps[check.dep],
863
- features: Object.keys(deps).slice(0, 10),
864
- language: 'JavaScript/TypeScript'
865
- };
866
- }
867
- }
868
- return {
869
- framework: 'Node.js Project',
870
- confidence: 50,
871
- features: Object.keys(deps).slice(0, 10),
872
- language: 'JavaScript/TypeScript'
873
- };
874
- }
875
- /**
876
- * Helper: Read package.json
877
- */
878
- async readPackageJson() {
879
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
880
- const path = await Promise.resolve().then(() => __importStar(require('path')));
881
- try {
882
- const content = await fs.readFile(path.join(this.projectPath, 'package.json'), 'utf-8');
883
- return JSON.parse(content);
884
- }
885
- catch {
886
- return null;
887
- }
888
- }
889
- /**
890
- * Helper: Get version from package.json
891
- */
892
- async getVersionFromPackageJson(check) {
893
- const [file, dep] = check.split(':');
894
- if (file !== 'package.json') {
895
- return undefined;
896
- }
897
- const packageJson = await this.readPackageJson();
898
- if (!packageJson) {
899
- return undefined;
900
- }
901
- return packageJson.dependencies?.[dep] ||
902
- packageJson.devDependencies?.[dep];
903
- }
904
- /**
905
- * Create final detection result
906
- */
907
- createResult(partial, detectedBy) {
908
- return {
909
- framework: partial.framework || 'Unknown',
910
- confidence: partial.confidence || 0,
911
- version: partial.version,
912
- ecosystem: partial.ecosystem,
913
- language: partial.language,
914
- features: partial.features || [],
915
- deployment: partial.deployment,
916
- database: partial.database,
917
- testing: partial.testing,
918
- monorepo: partial.monorepo,
919
- detectedBy,
920
- detectionTime: Date.now() - this.detectionStartTime
921
- };
922
- }
923
- }
924
- exports.FrameworkDetector = FrameworkDetector;
925
- /**
926
- * Export a simple detection function for CLI usage
927
- */
928
- async function detectFramework(projectPath = '.') {
929
- const detector = new FrameworkDetector(projectPath);
930
- return detector.detect();
931
- }
932
- /**
933
- * CLI Usage Example
934
- */
935
- if (require.main === module) {
936
- detectFramework(process.argv[2] || '.').then(result => {
937
- console.log('🏎️ Framework Detection Result:');
938
- console.log(` Framework: ${result.framework} (${result.confidence}% confidence)`);
939
- console.log(` Language: ${result.language || 'Unknown'}`);
940
- console.log(` Ecosystem: ${result.ecosystem || 'Unknown'}`);
941
- console.log(` Detected by: ${result.detectedBy}`);
942
- console.log(` Detection time: ${result.detectionTime}ms`);
943
- if (result.version) {
944
- console.log(` Version: ${result.version}`);
945
- }
946
- if (result.features.length > 0) {
947
- console.log(` Features: ${result.features.join(', ')}`);
948
- }
949
- });
950
- }
951
- //# sourceMappingURL=framework-detector.js.map