ai-first-cli 1.1.3 → 1.2.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 (923) hide show
  1. package/{ai → .ai-dev}/ai_context.md +18 -11
  2. package/{ai → .ai-dev}/ai_rules.md +5 -3
  3. package/{ai → .ai-dev}/architecture.md +52 -16
  4. package/.ai-dev/cache.json +2349 -0
  5. package/.ai-dev/context/features/commands.json +18 -0
  6. package/.ai-dev/context/features/src.json +61 -0
  7. package/.ai-dev/context/features/test-projects.json +69 -0
  8. package/.ai-dev/context/flows/account.json +9 -0
  9. package/.ai-dev/context/flows/ai-first.json +9 -0
  10. package/.ai-dev/context/flows/api.json +9 -0
  11. package/.ai-dev/context/flows/auth.json +13 -0
  12. package/.ai-dev/context/flows/category.json +12 -0
  13. package/.ai-dev/context/flows/comment.json +16 -0
  14. package/.ai-dev/context/flows/dashboard.json +9 -0
  15. package/.ai-dev/context/flows/doctor.json +9 -0
  16. package/.ai-dev/context/flows/explore.json +9 -0
  17. package/.ai-dev/context/flows/login.json +9 -0
  18. package/.ai-dev/context/flows/opportunity.json +9 -0
  19. package/.ai-dev/context/flows/post.json +18 -0
  20. package/.ai-dev/context/flows/routes.json +19 -0
  21. package/.ai-dev/context/flows/user.json +20 -0
  22. package/.ai-dev/context/flows/users.json +9 -0
  23. package/.ai-dev/context/flows/views.json +14 -0
  24. package/.ai-dev/conventions.md +53 -0
  25. package/.ai-dev/dependencies.json +2946 -0
  26. package/{ai → .ai-dev}/entrypoints.md +10 -0
  27. package/.ai-dev/files.json +2944 -0
  28. package/.ai-dev/graph/knowledge-graph.json +44314 -0
  29. package/.ai-dev/graph/module-graph.json +866 -0
  30. package/.ai-dev/graph/symbol-graph.json +200622 -0
  31. package/.ai-dev/graph/symbol-references.json +6778 -0
  32. package/.ai-dev/hierarchy.json +20 -0
  33. package/.ai-dev/index-state.json +4123 -0
  34. package/.ai-dev/index.db +0 -0
  35. package/.ai-dev/modules.json +532 -0
  36. package/.ai-dev/project.json +30 -0
  37. package/.ai-dev/repo_map.json +5818 -0
  38. package/.ai-dev/repo_map.md +1327 -0
  39. package/.ai-dev/schema.json +5 -0
  40. package/.ai-dev/summary.md +42 -0
  41. package/.ai-dev/symbols.json +7 -0
  42. package/.ai-dev/tech_stack.md +46 -0
  43. package/.ai-dev/tools.json +10 -0
  44. package/.github/workflows/publish.yml +55 -0
  45. package/BUGS.md +455 -0
  46. package/CHANGELOG.md +218 -218
  47. package/PLAN_MEJORAS.md +216 -0
  48. package/README.es.md +82 -99
  49. package/README.md +70 -89
  50. package/STATUS_ADAPTADORES +126 -0
  51. package/TEST_RESULTS_PHASE1.md +420 -0
  52. package/ai/graph/knowledge-graph.json +6 -43639
  53. package/ai-context/ai_context.md +130 -0
  54. package/ai-context/ai_rules.md +54 -0
  55. package/ai-context/architecture.md +136 -0
  56. package/ai-context/cache.json +2349 -0
  57. package/ai-context/ccp/jira-123/context.json +7 -0
  58. package/ai-context/context/features/commands.json +18 -0
  59. package/ai-context/context/features/src.json +61 -0
  60. package/ai-context/context/features/test-projects.json +69 -0
  61. package/ai-context/context/flows/account.json +9 -0
  62. package/ai-context/context/flows/ai-first.json +9 -0
  63. package/ai-context/context/flows/api.json +9 -0
  64. package/ai-context/context/flows/auth.json +13 -0
  65. package/ai-context/context/flows/category.json +12 -0
  66. package/ai-context/context/flows/comment.json +16 -0
  67. package/ai-context/context/flows/dashboard.json +9 -0
  68. package/ai-context/context/flows/doctor.json +9 -0
  69. package/ai-context/context/flows/explore.json +9 -0
  70. package/ai-context/context/flows/login.json +9 -0
  71. package/ai-context/context/flows/opportunity.json +9 -0
  72. package/ai-context/context/flows/post.json +18 -0
  73. package/ai-context/context/flows/routes.json +19 -0
  74. package/ai-context/context/flows/user.json +20 -0
  75. package/ai-context/context/flows/users.json +9 -0
  76. package/ai-context/context/flows/views.json +14 -0
  77. package/ai-context/context/repo.json +56 -0
  78. package/ai-context/context/utils.json +7 -0
  79. package/ai-context/conventions.md +53 -0
  80. package/ai-context/dependencies.json +2946 -0
  81. package/ai-context/embeddings.json +23828 -0
  82. package/ai-context/entrypoints.md +42 -0
  83. package/ai-context/files.json +2944 -0
  84. package/ai-context/git/commit-activity.json +8646 -0
  85. package/ai-context/git/recent-files.json +52 -0
  86. package/ai-context/git/recent-flows.json +1 -0
  87. package/ai-context/graph/knowledge-graph.json +44314 -0
  88. package/ai-context/graph/module-graph.json +866 -0
  89. package/ai-context/graph/symbol-graph.json +200622 -0
  90. package/ai-context/graph/symbol-references.json +6778 -0
  91. package/ai-context/hierarchy.json +20 -0
  92. package/ai-context/index-state.json +4123 -0
  93. package/ai-context/index.db +0 -0
  94. package/ai-context/modules.json +532 -0
  95. package/ai-context/project.json +30 -0
  96. package/ai-context/repo_map.json +5818 -0
  97. package/ai-context/repo_map.md +1327 -0
  98. package/ai-context/schema.json +5 -0
  99. package/ai-context/summary.md +42 -0
  100. package/ai-context/symbols.json +7 -0
  101. package/ai-context/tech_stack.md +46 -0
  102. package/ai-context/tools.json +10 -0
  103. package/dist/analyzers/dependencies.d.ts.map +1 -1
  104. package/dist/analyzers/dependencies.js +8 -16
  105. package/dist/analyzers/dependencies.js.map +1 -1
  106. package/dist/analyzers/symbols.d.ts.map +1 -1
  107. package/dist/analyzers/symbols.js +194 -6
  108. package/dist/analyzers/symbols.js.map +1 -1
  109. package/dist/commands/ai-first.d.ts.map +1 -1
  110. package/dist/commands/ai-first.js +63 -21
  111. package/dist/commands/ai-first.js.map +1 -1
  112. package/dist/commands/doctor.js +1 -1
  113. package/dist/commands/doctor.js.map +1 -1
  114. package/dist/commands/explore.js +1 -1
  115. package/dist/commands/explore.js.map +1 -1
  116. package/dist/core/ccp.js +1 -1
  117. package/dist/core/ccp.js.map +1 -1
  118. package/dist/core/embeddings.d.ts +11 -6
  119. package/dist/core/embeddings.d.ts.map +1 -1
  120. package/dist/core/embeddings.js +88 -38
  121. package/dist/core/embeddings.js.map +1 -1
  122. package/dist/core/gitAnalyzer.js +3 -3
  123. package/dist/core/gitAnalyzer.js.map +1 -1
  124. package/dist/core/incrementalAnalyzer.d.ts.map +1 -1
  125. package/dist/core/incrementalAnalyzer.js +76 -14
  126. package/dist/core/incrementalAnalyzer.js.map +1 -1
  127. package/dist/core/knowledgeGraphBuilder.js +1 -1
  128. package/dist/core/knowledgeGraphBuilder.js.map +1 -1
  129. package/dist/core/semanticContexts.d.ts.map +1 -1
  130. package/dist/core/semanticContexts.js +61 -30
  131. package/dist/core/semanticContexts.js.map +1 -1
  132. package/dist/core/symbolGraph.d.ts.map +1 -1
  133. package/dist/core/symbolGraph.js +14 -2
  134. package/dist/core/symbolGraph.js.map +1 -1
  135. package/dist/utils/fileUtils.d.ts.map +1 -1
  136. package/dist/utils/fileUtils.js +5 -0
  137. package/dist/utils/fileUtils.js.map +1 -1
  138. package/docs/guide/getting-started.md +8 -8
  139. package/docs/guide/quick-start.md +8 -8
  140. package/examples/01-express-api.md +3 -3
  141. package/examples/02-react-app.md +3 -3
  142. package/examples/03-python-django.md +3 -3
  143. package/examples/README.md +3 -3
  144. package/package.json +2 -2
  145. package/src/analyzers/dependencies.ts +10 -20
  146. package/src/analyzers/symbols.ts +207 -6
  147. package/src/commands/ai-first.ts +67 -22
  148. package/src/commands/doctor.ts +1 -1
  149. package/src/commands/explore.ts +1 -1
  150. package/src/core/ccp.ts +1 -1
  151. package/src/core/embeddings.ts +106 -40
  152. package/src/core/gitAnalyzer.ts +3 -3
  153. package/src/core/incrementalAnalyzer.ts +101 -11
  154. package/src/core/knowledgeGraphBuilder.ts +1 -1
  155. package/src/core/semanticContexts.ts +68 -33
  156. package/src/core/symbolGraph.ts +16 -2
  157. package/src/utils/fileUtils.ts +5 -0
  158. package/test-projects/django-app/.ai-dev/ai_context.md +92 -0
  159. package/test-projects/django-app/.ai-dev/ai_rules.md +47 -0
  160. package/test-projects/django-app/.ai-dev/architecture.md +57 -0
  161. package/test-projects/django-app/.ai-dev/cache.json +169 -0
  162. package/test-projects/django-app/.ai-dev/context/flows/views.json +10 -0
  163. package/test-projects/django-app/.ai-dev/conventions.md +51 -0
  164. package/test-projects/django-app/.ai-dev/dependencies.json +312 -0
  165. package/test-projects/django-app/.ai-dev/entrypoints.md +4 -0
  166. package/test-projects/django-app/.ai-dev/files.json +209 -0
  167. package/test-projects/django-app/.ai-dev/graph/knowledge-graph.json +36 -0
  168. package/test-projects/django-app/.ai-dev/graph/module-graph.json +145 -0
  169. package/test-projects/django-app/.ai-dev/graph/symbol-graph.json +1488 -0
  170. package/test-projects/django-app/.ai-dev/graph/symbol-references.json +1 -0
  171. package/test-projects/django-app/.ai-dev/index-state.json +294 -0
  172. package/test-projects/django-app/.ai-dev/index.db +0 -0
  173. package/test-projects/django-app/.ai-dev/modules.json +35 -0
  174. package/test-projects/django-app/.ai-dev/project.json +11 -0
  175. package/test-projects/django-app/.ai-dev/repo_map.json +412 -0
  176. package/test-projects/django-app/.ai-dev/repo_map.md +105 -0
  177. package/test-projects/django-app/.ai-dev/schema.json +5 -0
  178. package/test-projects/django-app/.ai-dev/summary.md +15 -0
  179. package/test-projects/django-app/.ai-dev/symbols.json +1 -0
  180. package/test-projects/django-app/.ai-dev/tech_stack.md +32 -0
  181. package/test-projects/django-app/.ai-dev/tools.json +10 -0
  182. package/test-projects/django-app/README.md +91 -0
  183. package/test-projects/django-app/ai-context/ai_context.md +92 -0
  184. package/test-projects/django-app/ai-context/ai_rules.md +47 -0
  185. package/test-projects/django-app/ai-context/architecture.md +57 -0
  186. package/test-projects/django-app/ai-context/cache.json +169 -0
  187. package/test-projects/django-app/ai-context/context/flows/views.json +10 -0
  188. package/test-projects/django-app/ai-context/conventions.md +51 -0
  189. package/test-projects/django-app/ai-context/dependencies.json +312 -0
  190. package/test-projects/django-app/ai-context/entrypoints.md +4 -0
  191. package/test-projects/django-app/ai-context/files.json +209 -0
  192. package/test-projects/django-app/ai-context/graph/knowledge-graph.json +36 -0
  193. package/test-projects/django-app/ai-context/graph/module-graph.json +145 -0
  194. package/test-projects/django-app/ai-context/graph/symbol-graph.json +1488 -0
  195. package/test-projects/django-app/ai-context/graph/symbol-references.json +1 -0
  196. package/test-projects/django-app/ai-context/index-state.json +294 -0
  197. package/test-projects/django-app/ai-context/index.db +0 -0
  198. package/test-projects/django-app/ai-context/modules.json +35 -0
  199. package/test-projects/django-app/ai-context/project.json +11 -0
  200. package/test-projects/django-app/ai-context/repo_map.json +412 -0
  201. package/test-projects/django-app/ai-context/repo_map.md +105 -0
  202. package/test-projects/django-app/ai-context/schema.json +5 -0
  203. package/test-projects/django-app/ai-context/summary.md +15 -0
  204. package/test-projects/django-app/ai-context/symbols.json +1 -0
  205. package/test-projects/django-app/ai-context/tech_stack.md +32 -0
  206. package/test-projects/django-app/ai-context/tools.json +10 -0
  207. package/test-projects/django-app/blog/__init__.py +0 -0
  208. package/test-projects/django-app/blog/admin.py +31 -0
  209. package/test-projects/django-app/blog/models.py +55 -0
  210. package/test-projects/django-app/blog/serializers.py +69 -0
  211. package/test-projects/django-app/blog/urls.py +14 -0
  212. package/test-projects/django-app/blog/views.py +96 -0
  213. package/test-projects/django-app/django_app/__init__.py +0 -0
  214. package/test-projects/django-app/django_app/settings.py +90 -0
  215. package/test-projects/django-app/django_app/urls.py +11 -0
  216. package/test-projects/django-app/django_app/wsgi.py +9 -0
  217. package/test-projects/django-app/manage.py +23 -0
  218. package/test-projects/django-app/requirements.txt +3 -0
  219. package/test-projects/django-app/users/__init__.py +0 -0
  220. package/test-projects/django-app/users/admin.py +42 -0
  221. package/test-projects/django-app/users/models.py +54 -0
  222. package/test-projects/django-app/users/serializers.py +113 -0
  223. package/test-projects/django-app/users/urls.py +13 -0
  224. package/test-projects/django-app/users/views.py +135 -0
  225. package/test-projects/express-api/.ai-dev/ai_context.md +112 -0
  226. package/test-projects/express-api/.ai-dev/ai_rules.md +50 -0
  227. package/test-projects/express-api/.ai-dev/architecture.md +62 -0
  228. package/test-projects/express-api/.ai-dev/context/features/controllers.json +13 -0
  229. package/test-projects/express-api/.ai-dev/context/features/services.json +13 -0
  230. package/test-projects/express-api/.ai-dev/context/flows/auth.json +12 -0
  231. package/test-projects/express-api/.ai-dev/context/flows/user.json +13 -0
  232. package/test-projects/express-api/.ai-dev/conventions.md +51 -0
  233. package/test-projects/express-api/.ai-dev/dependencies.json +54 -0
  234. package/test-projects/express-api/.ai-dev/entrypoints.md +17 -0
  235. package/test-projects/express-api/.ai-dev/modules.json +30 -0
  236. package/test-projects/express-api/.ai-dev/project.json +15 -0
  237. package/test-projects/express-api/.ai-dev/repo_map.json +100 -0
  238. package/test-projects/express-api/.ai-dev/repo_map.md +36 -0
  239. package/test-projects/express-api/.ai-dev/schema.json +5 -0
  240. package/test-projects/express-api/.ai-dev/summary.md +14 -0
  241. package/test-projects/express-api/.ai-dev/symbols.json +7 -0
  242. package/test-projects/express-api/.ai-dev/tech_stack.md +38 -0
  243. package/test-projects/express-api/.ai-dev/tools.json +10 -0
  244. package/test-projects/express-api/ai-context/ai_context.md +112 -0
  245. package/test-projects/express-api/ai-context/ai_rules.md +50 -0
  246. package/test-projects/express-api/ai-context/architecture.md +62 -0
  247. package/test-projects/express-api/ai-context/context/features/controllers.json +13 -0
  248. package/test-projects/express-api/ai-context/context/features/services.json +13 -0
  249. package/test-projects/express-api/ai-context/context/flows/auth.json +12 -0
  250. package/test-projects/express-api/ai-context/context/flows/user.json +13 -0
  251. package/test-projects/express-api/ai-context/conventions.md +51 -0
  252. package/test-projects/express-api/ai-context/dependencies.json +54 -0
  253. package/test-projects/express-api/ai-context/entrypoints.md +17 -0
  254. package/test-projects/express-api/ai-context/modules.json +30 -0
  255. package/test-projects/express-api/ai-context/project.json +15 -0
  256. package/test-projects/express-api/ai-context/repo_map.json +100 -0
  257. package/test-projects/express-api/ai-context/repo_map.md +36 -0
  258. package/test-projects/express-api/ai-context/schema.json +5 -0
  259. package/test-projects/express-api/ai-context/summary.md +14 -0
  260. package/test-projects/express-api/ai-context/symbols.json +7 -0
  261. package/test-projects/express-api/ai-context/tech_stack.md +38 -0
  262. package/test-projects/express-api/ai-context/tools.json +10 -0
  263. package/test-projects/express-api/controllers/authController.js +32 -0
  264. package/test-projects/express-api/controllers/userController.js +51 -0
  265. package/test-projects/express-api/index.js +30 -0
  266. package/test-projects/express-api/middleware/authMiddleware.js +30 -0
  267. package/test-projects/express-api/models/userRepository.js +25 -0
  268. package/test-projects/express-api/package.json +18 -0
  269. package/test-projects/express-api/services/authService.js +17 -0
  270. package/test-projects/express-api/services/userService.js +28 -0
  271. package/test-projects/fastapi-app/.ai-dev/ai_context.md +89 -0
  272. package/test-projects/fastapi-app/.ai-dev/ai_rules.md +47 -0
  273. package/test-projects/fastapi-app/.ai-dev/architecture.md +39 -0
  274. package/test-projects/fastapi-app/.ai-dev/cache.json +125 -0
  275. package/test-projects/fastapi-app/.ai-dev/conventions.md +51 -0
  276. package/test-projects/fastapi-app/.ai-dev/dependencies.json +244 -0
  277. package/test-projects/fastapi-app/.ai-dev/entrypoints.md +4 -0
  278. package/test-projects/fastapi-app/.ai-dev/files.json +154 -0
  279. package/test-projects/fastapi-app/.ai-dev/graph/knowledge-graph.json +15 -0
  280. package/test-projects/fastapi-app/.ai-dev/graph/module-graph.json +78 -0
  281. package/test-projects/fastapi-app/.ai-dev/graph/symbol-graph.json +1724 -0
  282. package/test-projects/fastapi-app/.ai-dev/graph/symbol-references.json +51 -0
  283. package/test-projects/fastapi-app/.ai-dev/index-state.json +217 -0
  284. package/test-projects/fastapi-app/.ai-dev/index.db +0 -0
  285. package/test-projects/fastapi-app/.ai-dev/modules.json +16 -0
  286. package/test-projects/fastapi-app/.ai-dev/project.json +9 -0
  287. package/test-projects/fastapi-app/.ai-dev/repo_map.json +298 -0
  288. package/test-projects/fastapi-app/.ai-dev/repo_map.md +74 -0
  289. package/test-projects/fastapi-app/.ai-dev/schema.json +5 -0
  290. package/test-projects/fastapi-app/.ai-dev/summary.md +12 -0
  291. package/test-projects/fastapi-app/.ai-dev/symbols.json +1 -0
  292. package/test-projects/fastapi-app/.ai-dev/tech_stack.md +32 -0
  293. package/test-projects/fastapi-app/.ai-dev/tools.json +10 -0
  294. package/test-projects/fastapi-app/README.md +118 -0
  295. package/test-projects/fastapi-app/ai-context/ai_context.md +89 -0
  296. package/test-projects/fastapi-app/ai-context/ai_rules.md +47 -0
  297. package/test-projects/fastapi-app/ai-context/architecture.md +39 -0
  298. package/test-projects/fastapi-app/ai-context/cache.json +125 -0
  299. package/test-projects/fastapi-app/ai-context/conventions.md +51 -0
  300. package/test-projects/fastapi-app/ai-context/dependencies.json +244 -0
  301. package/test-projects/fastapi-app/ai-context/entrypoints.md +4 -0
  302. package/test-projects/fastapi-app/ai-context/files.json +154 -0
  303. package/test-projects/fastapi-app/ai-context/graph/knowledge-graph.json +15 -0
  304. package/test-projects/fastapi-app/ai-context/graph/module-graph.json +78 -0
  305. package/test-projects/fastapi-app/ai-context/graph/symbol-graph.json +1724 -0
  306. package/test-projects/fastapi-app/ai-context/graph/symbol-references.json +51 -0
  307. package/test-projects/fastapi-app/ai-context/index-state.json +217 -0
  308. package/test-projects/fastapi-app/ai-context/index.db +0 -0
  309. package/test-projects/fastapi-app/ai-context/modules.json +16 -0
  310. package/test-projects/fastapi-app/ai-context/project.json +9 -0
  311. package/test-projects/fastapi-app/ai-context/repo_map.json +298 -0
  312. package/test-projects/fastapi-app/ai-context/repo_map.md +74 -0
  313. package/test-projects/fastapi-app/ai-context/schema.json +5 -0
  314. package/test-projects/fastapi-app/ai-context/summary.md +12 -0
  315. package/test-projects/fastapi-app/ai-context/symbols.json +1 -0
  316. package/test-projects/fastapi-app/ai-context/tech_stack.md +32 -0
  317. package/test-projects/fastapi-app/ai-context/tools.json +10 -0
  318. package/test-projects/fastapi-app/app/database.py +21 -0
  319. package/test-projects/fastapi-app/app/dependencies.py +107 -0
  320. package/test-projects/fastapi-app/app/main.py +47 -0
  321. package/test-projects/fastapi-app/app/models.py +149 -0
  322. package/test-projects/fastapi-app/app/routers/auth.py +117 -0
  323. package/test-projects/fastapi-app/app/routers/posts.py +272 -0
  324. package/test-projects/fastapi-app/app/schemas.py +191 -0
  325. package/test-projects/fastapi-app/requirements.txt +10 -0
  326. package/test-projects/flask-app/.ai-dev/ai_context.md +94 -0
  327. package/test-projects/flask-app/.ai-dev/ai_rules.md +47 -0
  328. package/test-projects/flask-app/.ai-dev/architecture.md +49 -0
  329. package/test-projects/flask-app/.ai-dev/cache.json +157 -0
  330. package/test-projects/flask-app/.ai-dev/context/features/app.json +25 -0
  331. package/test-projects/flask-app/.ai-dev/context/flows/routes.json +14 -0
  332. package/test-projects/flask-app/.ai-dev/conventions.md +51 -0
  333. package/test-projects/flask-app/.ai-dev/dependencies.json +298 -0
  334. package/test-projects/flask-app/.ai-dev/entrypoints.md +4 -0
  335. package/test-projects/flask-app/.ai-dev/files.json +194 -0
  336. package/test-projects/flask-app/.ai-dev/graph/knowledge-graph.json +60 -0
  337. package/test-projects/flask-app/.ai-dev/graph/module-graph.json +95 -0
  338. package/test-projects/flask-app/.ai-dev/graph/symbol-graph.json +1448 -0
  339. package/test-projects/flask-app/.ai-dev/graph/symbol-references.json +45 -0
  340. package/test-projects/flask-app/.ai-dev/index-state.json +273 -0
  341. package/test-projects/flask-app/.ai-dev/index.db +0 -0
  342. package/test-projects/flask-app/.ai-dev/modules.json +21 -0
  343. package/test-projects/flask-app/.ai-dev/project.json +13 -0
  344. package/test-projects/flask-app/.ai-dev/repo_map.json +400 -0
  345. package/test-projects/flask-app/.ai-dev/repo_map.md +98 -0
  346. package/test-projects/flask-app/.ai-dev/schema.json +5 -0
  347. package/test-projects/flask-app/.ai-dev/summary.md +13 -0
  348. package/test-projects/flask-app/.ai-dev/symbols.json +1 -0
  349. package/test-projects/flask-app/.ai-dev/tech_stack.md +32 -0
  350. package/test-projects/flask-app/.ai-dev/tools.json +10 -0
  351. package/test-projects/flask-app/README.md +129 -0
  352. package/test-projects/flask-app/ai-context/ai_context.md +94 -0
  353. package/test-projects/flask-app/ai-context/ai_rules.md +47 -0
  354. package/test-projects/flask-app/ai-context/architecture.md +49 -0
  355. package/test-projects/flask-app/ai-context/cache.json +157 -0
  356. package/test-projects/flask-app/ai-context/context/features/app.json +25 -0
  357. package/test-projects/flask-app/ai-context/context/flows/routes.json +14 -0
  358. package/test-projects/flask-app/ai-context/conventions.md +51 -0
  359. package/test-projects/flask-app/ai-context/dependencies.json +298 -0
  360. package/test-projects/flask-app/ai-context/entrypoints.md +4 -0
  361. package/test-projects/flask-app/ai-context/files.json +194 -0
  362. package/test-projects/flask-app/ai-context/graph/knowledge-graph.json +60 -0
  363. package/test-projects/flask-app/ai-context/graph/module-graph.json +95 -0
  364. package/test-projects/flask-app/ai-context/graph/symbol-graph.json +1448 -0
  365. package/test-projects/flask-app/ai-context/graph/symbol-references.json +45 -0
  366. package/test-projects/flask-app/ai-context/index-state.json +273 -0
  367. package/test-projects/flask-app/ai-context/index.db +0 -0
  368. package/test-projects/flask-app/ai-context/modules.json +21 -0
  369. package/test-projects/flask-app/ai-context/project.json +13 -0
  370. package/test-projects/flask-app/ai-context/repo_map.json +400 -0
  371. package/test-projects/flask-app/ai-context/repo_map.md +98 -0
  372. package/test-projects/flask-app/ai-context/schema.json +5 -0
  373. package/test-projects/flask-app/ai-context/summary.md +13 -0
  374. package/test-projects/flask-app/ai-context/symbols.json +1 -0
  375. package/test-projects/flask-app/ai-context/tech_stack.md +32 -0
  376. package/test-projects/flask-app/ai-context/tools.json +10 -0
  377. package/test-projects/flask-app/app/__init__.py +46 -0
  378. package/test-projects/flask-app/app/api/__init__.py +7 -0
  379. package/test-projects/flask-app/app/api/routes.py +122 -0
  380. package/test-projects/flask-app/app/auth/__init__.py +7 -0
  381. package/test-projects/flask-app/app/auth/forms.py +52 -0
  382. package/test-projects/flask-app/app/auth/routes.py +68 -0
  383. package/test-projects/flask-app/app/blog/__init__.py +7 -0
  384. package/test-projects/flask-app/app/blog/forms.py +35 -0
  385. package/test-projects/flask-app/app/blog/routes.py +140 -0
  386. package/test-projects/flask-app/app/main/__init__.py +7 -0
  387. package/test-projects/flask-app/app/main/routes.py +88 -0
  388. package/test-projects/flask-app/app/models.py +177 -0
  389. package/test-projects/flask-app/config.py +64 -0
  390. package/test-projects/flask-app/requirements.txt +10 -0
  391. package/test-projects/laravel-app/.ai-dev/ai_context.md +97 -0
  392. package/test-projects/laravel-app/.ai-dev/ai_rules.md +47 -0
  393. package/test-projects/laravel-app/.ai-dev/architecture.md +60 -0
  394. package/test-projects/laravel-app/.ai-dev/cache.json +161 -0
  395. package/test-projects/laravel-app/.ai-dev/context/features/app.json +21 -0
  396. package/test-projects/laravel-app/.ai-dev/context/flows/.json +9 -0
  397. package/test-projects/laravel-app/.ai-dev/context/flows/category.json +12 -0
  398. package/test-projects/laravel-app/.ai-dev/context/flows/comment.json +12 -0
  399. package/test-projects/laravel-app/.ai-dev/context/flows/post.json +12 -0
  400. package/test-projects/laravel-app/.ai-dev/context/flows/unnamed.json +9 -0
  401. package/test-projects/laravel-app/.ai-dev/conventions.md +51 -0
  402. package/test-projects/laravel-app/.ai-dev/dependencies.json +6 -0
  403. package/test-projects/laravel-app/.ai-dev/entrypoints.md +4 -0
  404. package/test-projects/laravel-app/.ai-dev/files.json +199 -0
  405. package/test-projects/laravel-app/.ai-dev/graph/knowledge-graph.json +98 -0
  406. package/test-projects/laravel-app/.ai-dev/graph/module-graph.json +30 -0
  407. package/test-projects/laravel-app/.ai-dev/graph/symbol-graph.json +5 -0
  408. package/test-projects/laravel-app/.ai-dev/graph/symbol-references.json +1 -0
  409. package/test-projects/laravel-app/.ai-dev/index-state.json +280 -0
  410. package/test-projects/laravel-app/.ai-dev/index.db +0 -0
  411. package/test-projects/laravel-app/.ai-dev/modules.json +29 -0
  412. package/test-projects/laravel-app/.ai-dev/project.json +17 -0
  413. package/test-projects/laravel-app/.ai-dev/repo_map.json +419 -0
  414. package/test-projects/laravel-app/.ai-dev/repo_map.md +106 -0
  415. package/test-projects/laravel-app/.ai-dev/schema.json +5 -0
  416. package/test-projects/laravel-app/.ai-dev/summary.md +15 -0
  417. package/test-projects/laravel-app/.ai-dev/symbols.json +1 -0
  418. package/test-projects/laravel-app/.ai-dev/tech_stack.md +34 -0
  419. package/test-projects/laravel-app/.ai-dev/tools.json +10 -0
  420. package/test-projects/laravel-app/README.md +107 -0
  421. package/test-projects/laravel-app/ai-context/ai_context.md +97 -0
  422. package/test-projects/laravel-app/ai-context/ai_rules.md +47 -0
  423. package/test-projects/laravel-app/ai-context/architecture.md +60 -0
  424. package/test-projects/laravel-app/ai-context/cache.json +161 -0
  425. package/test-projects/laravel-app/ai-context/context/features/app.json +21 -0
  426. package/test-projects/laravel-app/ai-context/context/flows/.json +9 -0
  427. package/test-projects/laravel-app/ai-context/context/flows/category.json +12 -0
  428. package/test-projects/laravel-app/ai-context/context/flows/comment.json +12 -0
  429. package/test-projects/laravel-app/ai-context/context/flows/post.json +12 -0
  430. package/test-projects/laravel-app/ai-context/context/flows/unnamed.json +9 -0
  431. package/test-projects/laravel-app/ai-context/conventions.md +51 -0
  432. package/test-projects/laravel-app/ai-context/dependencies.json +6 -0
  433. package/test-projects/laravel-app/ai-context/entrypoints.md +4 -0
  434. package/test-projects/laravel-app/ai-context/files.json +199 -0
  435. package/test-projects/laravel-app/ai-context/graph/knowledge-graph.json +98 -0
  436. package/test-projects/laravel-app/ai-context/graph/module-graph.json +30 -0
  437. package/test-projects/laravel-app/ai-context/graph/symbol-graph.json +5 -0
  438. package/test-projects/laravel-app/ai-context/graph/symbol-references.json +1 -0
  439. package/test-projects/laravel-app/ai-context/index-state.json +280 -0
  440. package/test-projects/laravel-app/ai-context/index.db +0 -0
  441. package/test-projects/laravel-app/ai-context/modules.json +29 -0
  442. package/test-projects/laravel-app/ai-context/project.json +17 -0
  443. package/test-projects/laravel-app/ai-context/repo_map.json +419 -0
  444. package/test-projects/laravel-app/ai-context/repo_map.md +106 -0
  445. package/test-projects/laravel-app/ai-context/schema.json +5 -0
  446. package/test-projects/laravel-app/ai-context/summary.md +15 -0
  447. package/test-projects/laravel-app/ai-context/symbols.json +1 -0
  448. package/test-projects/laravel-app/ai-context/tech_stack.md +34 -0
  449. package/test-projects/laravel-app/ai-context/tools.json +10 -0
  450. package/test-projects/laravel-app/app/Http/Controllers/Api/CategoryController.php +88 -0
  451. package/test-projects/laravel-app/app/Http/Controllers/Api/CommentController.php +56 -0
  452. package/test-projects/laravel-app/app/Http/Controllers/Api/PostController.php +174 -0
  453. package/test-projects/laravel-app/app/Http/Controllers/Controller.php +12 -0
  454. package/test-projects/laravel-app/app/Models/Category.php +34 -0
  455. package/test-projects/laravel-app/app/Models/Comment.php +51 -0
  456. package/test-projects/laravel-app/app/Models/Post.php +108 -0
  457. package/test-projects/laravel-app/app/Models/User.php +85 -0
  458. package/test-projects/laravel-app/bootstrap/app.php +25 -0
  459. package/test-projects/laravel-app/composer.json +35 -0
  460. package/test-projects/laravel-app/routes/api.php +40 -0
  461. package/test-projects/nestjs-backend/.ai-dev/ai_context.md +111 -0
  462. package/test-projects/nestjs-backend/.ai-dev/ai_rules.md +52 -0
  463. package/test-projects/nestjs-backend/.ai-dev/architecture.md +49 -0
  464. package/test-projects/nestjs-backend/.ai-dev/cache.json +169 -0
  465. package/test-projects/nestjs-backend/.ai-dev/context/features/src.json +23 -0
  466. package/test-projects/nestjs-backend/.ai-dev/context/flows/auth.controller.json +14 -0
  467. package/test-projects/nestjs-backend/.ai-dev/context/flows/auth.json +10 -0
  468. package/test-projects/nestjs-backend/.ai-dev/context/flows/users..json +10 -0
  469. package/test-projects/nestjs-backend/.ai-dev/context/flows/users.controller.json +14 -0
  470. package/test-projects/nestjs-backend/.ai-dev/context/flows/users.json +10 -0
  471. package/test-projects/nestjs-backend/.ai-dev/conventions.md +52 -0
  472. package/test-projects/nestjs-backend/.ai-dev/dependencies.json +152 -0
  473. package/test-projects/nestjs-backend/.ai-dev/entrypoints.md +18 -0
  474. package/test-projects/nestjs-backend/.ai-dev/files.json +209 -0
  475. package/test-projects/nestjs-backend/.ai-dev/graph/knowledge-graph.json +132 -0
  476. package/test-projects/nestjs-backend/.ai-dev/graph/module-graph.json +29 -0
  477. package/test-projects/nestjs-backend/.ai-dev/graph/symbol-graph.json +304 -0
  478. package/test-projects/nestjs-backend/.ai-dev/graph/symbol-references.json +5 -0
  479. package/test-projects/nestjs-backend/.ai-dev/index-state.json +294 -0
  480. package/test-projects/nestjs-backend/.ai-dev/index.db +0 -0
  481. package/test-projects/nestjs-backend/.ai-dev/modules.json +19 -0
  482. package/test-projects/nestjs-backend/.ai-dev/project.json +18 -0
  483. package/test-projects/nestjs-backend/.ai-dev/repo_map.json +427 -0
  484. package/test-projects/nestjs-backend/.ai-dev/repo_map.md +104 -0
  485. package/test-projects/nestjs-backend/.ai-dev/schema.json +5 -0
  486. package/test-projects/nestjs-backend/.ai-dev/summary.md +13 -0
  487. package/test-projects/nestjs-backend/.ai-dev/symbols.json +1 -0
  488. package/{ai → test-projects/nestjs-backend/.ai-dev}/tech_stack.md +6 -7
  489. package/test-projects/nestjs-backend/.ai-dev/tools.json +10 -0
  490. package/test-projects/nestjs-backend/ai-context/ai_context.md +111 -0
  491. package/test-projects/nestjs-backend/ai-context/ai_rules.md +52 -0
  492. package/test-projects/nestjs-backend/ai-context/architecture.md +49 -0
  493. package/test-projects/nestjs-backend/ai-context/cache.json +169 -0
  494. package/test-projects/nestjs-backend/ai-context/context/features/src.json +23 -0
  495. package/test-projects/nestjs-backend/ai-context/context/flows/auth.controller.json +14 -0
  496. package/test-projects/nestjs-backend/ai-context/context/flows/auth.json +10 -0
  497. package/test-projects/nestjs-backend/ai-context/context/flows/users..json +10 -0
  498. package/test-projects/nestjs-backend/ai-context/context/flows/users.controller.json +14 -0
  499. package/test-projects/nestjs-backend/ai-context/context/flows/users.json +10 -0
  500. package/test-projects/nestjs-backend/ai-context/conventions.md +52 -0
  501. package/test-projects/nestjs-backend/ai-context/dependencies.json +152 -0
  502. package/test-projects/nestjs-backend/ai-context/entrypoints.md +18 -0
  503. package/test-projects/nestjs-backend/ai-context/files.json +209 -0
  504. package/test-projects/nestjs-backend/ai-context/graph/knowledge-graph.json +132 -0
  505. package/test-projects/nestjs-backend/ai-context/graph/module-graph.json +29 -0
  506. package/test-projects/nestjs-backend/ai-context/graph/symbol-graph.json +304 -0
  507. package/test-projects/nestjs-backend/ai-context/graph/symbol-references.json +5 -0
  508. package/test-projects/nestjs-backend/ai-context/index-state.json +294 -0
  509. package/test-projects/nestjs-backend/ai-context/index.db +0 -0
  510. package/test-projects/nestjs-backend/ai-context/modules.json +19 -0
  511. package/test-projects/nestjs-backend/ai-context/project.json +18 -0
  512. package/test-projects/nestjs-backend/ai-context/repo_map.json +427 -0
  513. package/test-projects/nestjs-backend/ai-context/repo_map.md +104 -0
  514. package/test-projects/nestjs-backend/ai-context/schema.json +5 -0
  515. package/test-projects/nestjs-backend/ai-context/summary.md +13 -0
  516. package/test-projects/nestjs-backend/ai-context/symbols.json +1 -0
  517. package/test-projects/nestjs-backend/ai-context/tech_stack.md +38 -0
  518. package/test-projects/nestjs-backend/ai-context/tools.json +10 -0
  519. package/test-projects/nestjs-backend/package.json +22 -0
  520. package/test-projects/nestjs-backend/src/app.module.ts +8 -0
  521. package/test-projects/nestjs-backend/src/auth/auth.controller.ts +22 -0
  522. package/test-projects/nestjs-backend/src/auth/auth.module.ts +11 -0
  523. package/test-projects/nestjs-backend/src/auth/auth.service.ts +28 -0
  524. package/test-projects/nestjs-backend/src/auth/dto/login.dto.ts +4 -0
  525. package/test-projects/nestjs-backend/src/auth/strategies/jwt.strategy.ts +18 -0
  526. package/test-projects/nestjs-backend/src/main.ts +9 -0
  527. package/test-projects/nestjs-backend/src/users/users.controller.ts +32 -0
  528. package/test-projects/nestjs-backend/src/users/users.module.ts +10 -0
  529. package/test-projects/nestjs-backend/src/users/users.service.ts +42 -0
  530. package/test-projects/nestjs-backend/tsconfig.json +21 -0
  531. package/test-projects/python-cli/.ai-dev/ai_context.md +95 -0
  532. package/test-projects/python-cli/.ai-dev/ai_rules.md +47 -0
  533. package/test-projects/python-cli/.ai-dev/architecture.md +55 -0
  534. package/test-projects/python-cli/.ai-dev/cache.json +149 -0
  535. package/test-projects/python-cli/.ai-dev/context/features/cli.json +16 -0
  536. package/test-projects/python-cli/.ai-dev/context/flows/list_.json +9 -0
  537. package/test-projects/python-cli/.ai-dev/context/flows/remove_.json +9 -0
  538. package/test-projects/python-cli/.ai-dev/conventions.md +51 -0
  539. package/test-projects/python-cli/.ai-dev/dependencies.json +66 -0
  540. package/test-projects/python-cli/.ai-dev/entrypoints.md +4 -0
  541. package/test-projects/python-cli/.ai-dev/files.json +184 -0
  542. package/test-projects/python-cli/.ai-dev/graph/knowledge-graph.json +83 -0
  543. package/test-projects/python-cli/.ai-dev/graph/module-graph.json +31 -0
  544. package/test-projects/python-cli/.ai-dev/graph/symbol-graph.json +358 -0
  545. package/test-projects/python-cli/.ai-dev/graph/symbol-references.json +11 -0
  546. package/test-projects/python-cli/.ai-dev/index-state.json +259 -0
  547. package/test-projects/python-cli/.ai-dev/index.db +0 -0
  548. package/test-projects/python-cli/.ai-dev/modules.json +21 -0
  549. package/test-projects/python-cli/.ai-dev/project.json +15 -0
  550. package/test-projects/python-cli/.ai-dev/repo_map.json +367 -0
  551. package/test-projects/python-cli/.ai-dev/repo_map.md +93 -0
  552. package/test-projects/python-cli/.ai-dev/schema.json +5 -0
  553. package/test-projects/python-cli/.ai-dev/summary.md +14 -0
  554. package/test-projects/python-cli/.ai-dev/symbols.json +1 -0
  555. package/test-projects/python-cli/.ai-dev/tech_stack.md +32 -0
  556. package/test-projects/python-cli/.ai-dev/tools.json +10 -0
  557. package/test-projects/python-cli/__init__.py +1 -0
  558. package/test-projects/python-cli/ai-context/ai_context.md +95 -0
  559. package/test-projects/python-cli/ai-context/ai_rules.md +47 -0
  560. package/test-projects/python-cli/ai-context/architecture.md +55 -0
  561. package/test-projects/python-cli/ai-context/cache.json +149 -0
  562. package/test-projects/python-cli/ai-context/context/features/cli.json +16 -0
  563. package/test-projects/python-cli/ai-context/context/flows/list_.json +9 -0
  564. package/test-projects/python-cli/ai-context/context/flows/remove_.json +9 -0
  565. package/test-projects/python-cli/ai-context/conventions.md +51 -0
  566. package/test-projects/python-cli/ai-context/dependencies.json +66 -0
  567. package/test-projects/python-cli/ai-context/entrypoints.md +4 -0
  568. package/test-projects/python-cli/ai-context/files.json +184 -0
  569. package/test-projects/python-cli/ai-context/graph/knowledge-graph.json +83 -0
  570. package/test-projects/python-cli/ai-context/graph/module-graph.json +31 -0
  571. package/test-projects/python-cli/ai-context/graph/symbol-graph.json +358 -0
  572. package/test-projects/python-cli/ai-context/graph/symbol-references.json +11 -0
  573. package/test-projects/python-cli/ai-context/index-state.json +259 -0
  574. package/test-projects/python-cli/ai-context/index.db +0 -0
  575. package/test-projects/python-cli/ai-context/modules.json +21 -0
  576. package/test-projects/python-cli/ai-context/project.json +15 -0
  577. package/test-projects/python-cli/ai-context/repo_map.json +367 -0
  578. package/test-projects/python-cli/ai-context/repo_map.md +93 -0
  579. package/test-projects/python-cli/ai-context/schema.json +5 -0
  580. package/test-projects/python-cli/ai-context/summary.md +14 -0
  581. package/test-projects/python-cli/ai-context/symbols.json +1 -0
  582. package/test-projects/python-cli/ai-context/tech_stack.md +32 -0
  583. package/test-projects/python-cli/ai-context/tools.json +10 -0
  584. package/test-projects/python-cli/cli/__init__.py +1 -0
  585. package/test-projects/python-cli/cli/add_command.py +6 -0
  586. package/test-projects/python-cli/cli/list_command.py +7 -0
  587. package/test-projects/python-cli/cli/remove_command.py +6 -0
  588. package/test-projects/python-cli/main.py +34 -0
  589. package/test-projects/python-cli/models/__init__.py +2 -0
  590. package/test-projects/python-cli/models/task.py +19 -0
  591. package/test-projects/python-cli/models/task_repository.py +44 -0
  592. package/test-projects/rails-app/.ai-dev/ai_context.md +94 -0
  593. package/test-projects/rails-app/.ai-dev/ai_rules.md +47 -0
  594. package/test-projects/rails-app/.ai-dev/architecture.md +49 -0
  595. package/test-projects/rails-app/.ai-dev/cache.json +193 -0
  596. package/test-projects/rails-app/.ai-dev/context/features/app.json +24 -0
  597. package/test-projects/rails-app/.ai-dev/context/features/config.json +13 -0
  598. package/test-projects/rails-app/.ai-dev/context/flows/application.json +9 -0
  599. package/test-projects/rails-app/.ai-dev/context/flows/application_.json +9 -0
  600. package/test-projects/rails-app/.ai-dev/context/flows/comments.json +11 -0
  601. package/test-projects/rails-app/.ai-dev/context/flows/comments_.json +11 -0
  602. package/test-projects/rails-app/.ai-dev/context/flows/posts.json +11 -0
  603. package/test-projects/rails-app/.ai-dev/context/flows/posts_.json +11 -0
  604. package/test-projects/rails-app/.ai-dev/context/flows/routes.json +9 -0
  605. package/test-projects/rails-app/.ai-dev/context/flows/users.json +11 -0
  606. package/test-projects/rails-app/.ai-dev/context/flows/users_.json +11 -0
  607. package/test-projects/rails-app/.ai-dev/conventions.md +51 -0
  608. package/test-projects/rails-app/.ai-dev/dependencies.json +6 -0
  609. package/test-projects/rails-app/.ai-dev/entrypoints.md +4 -0
  610. package/test-projects/rails-app/.ai-dev/files.json +239 -0
  611. package/test-projects/rails-app/.ai-dev/graph/knowledge-graph.json +130 -0
  612. package/test-projects/rails-app/.ai-dev/graph/module-graph.json +27 -0
  613. package/test-projects/rails-app/.ai-dev/graph/symbol-graph.json +5 -0
  614. package/test-projects/rails-app/.ai-dev/graph/symbol-references.json +1 -0
  615. package/test-projects/rails-app/.ai-dev/index-state.json +336 -0
  616. package/test-projects/rails-app/.ai-dev/index.db +0 -0
  617. package/test-projects/rails-app/.ai-dev/modules.json +26 -0
  618. package/test-projects/rails-app/.ai-dev/project.json +22 -0
  619. package/test-projects/rails-app/.ai-dev/repo_map.json +486 -0
  620. package/test-projects/rails-app/.ai-dev/repo_map.md +117 -0
  621. package/test-projects/rails-app/.ai-dev/schema.json +5 -0
  622. package/test-projects/rails-app/.ai-dev/summary.md +13 -0
  623. package/test-projects/rails-app/.ai-dev/symbols.json +1 -0
  624. package/test-projects/rails-app/.ai-dev/tech_stack.md +32 -0
  625. package/test-projects/rails-app/.ai-dev/tools.json +10 -0
  626. package/test-projects/rails-app/Gemfile +38 -0
  627. package/test-projects/rails-app/README.md +140 -0
  628. package/test-projects/rails-app/Rakefile +8 -0
  629. package/test-projects/rails-app/ai-context/ai_context.md +94 -0
  630. package/test-projects/rails-app/ai-context/ai_rules.md +47 -0
  631. package/test-projects/rails-app/ai-context/architecture.md +49 -0
  632. package/test-projects/rails-app/ai-context/cache.json +193 -0
  633. package/test-projects/rails-app/ai-context/context/features/app.json +24 -0
  634. package/test-projects/rails-app/ai-context/context/features/config.json +13 -0
  635. package/test-projects/rails-app/ai-context/context/flows/application.json +9 -0
  636. package/test-projects/rails-app/ai-context/context/flows/application_.json +9 -0
  637. package/test-projects/rails-app/ai-context/context/flows/comments.json +11 -0
  638. package/test-projects/rails-app/ai-context/context/flows/comments_.json +11 -0
  639. package/test-projects/rails-app/ai-context/context/flows/posts.json +11 -0
  640. package/test-projects/rails-app/ai-context/context/flows/posts_.json +11 -0
  641. package/test-projects/rails-app/ai-context/context/flows/routes.json +9 -0
  642. package/test-projects/rails-app/ai-context/context/flows/users.json +11 -0
  643. package/test-projects/rails-app/ai-context/context/flows/users_.json +11 -0
  644. package/test-projects/rails-app/ai-context/conventions.md +51 -0
  645. package/test-projects/rails-app/ai-context/dependencies.json +6 -0
  646. package/test-projects/rails-app/ai-context/entrypoints.md +4 -0
  647. package/test-projects/rails-app/ai-context/files.json +239 -0
  648. package/test-projects/rails-app/ai-context/graph/knowledge-graph.json +130 -0
  649. package/test-projects/rails-app/ai-context/graph/module-graph.json +27 -0
  650. package/test-projects/rails-app/ai-context/graph/symbol-graph.json +5 -0
  651. package/test-projects/rails-app/ai-context/graph/symbol-references.json +1 -0
  652. package/test-projects/rails-app/ai-context/index-state.json +336 -0
  653. package/test-projects/rails-app/ai-context/index.db +0 -0
  654. package/test-projects/rails-app/ai-context/modules.json +26 -0
  655. package/test-projects/rails-app/ai-context/project.json +22 -0
  656. package/test-projects/rails-app/ai-context/repo_map.json +486 -0
  657. package/test-projects/rails-app/ai-context/repo_map.md +117 -0
  658. package/test-projects/rails-app/ai-context/schema.json +5 -0
  659. package/test-projects/rails-app/ai-context/summary.md +13 -0
  660. package/test-projects/rails-app/ai-context/symbols.json +1 -0
  661. package/test-projects/rails-app/ai-context/tech_stack.md +32 -0
  662. package/test-projects/rails-app/ai-context/tools.json +10 -0
  663. package/test-projects/rails-app/app/controllers/api/comments_controller.rb +75 -0
  664. package/test-projects/rails-app/app/controllers/api/posts_controller.rb +68 -0
  665. package/test-projects/rails-app/app/controllers/api/users_controller.rb +54 -0
  666. package/test-projects/rails-app/app/controllers/application_controller.rb +31 -0
  667. package/test-projects/rails-app/app/models/comment.rb +34 -0
  668. package/test-projects/rails-app/app/models/post.rb +36 -0
  669. package/test-projects/rails-app/app/models/user.rb +28 -0
  670. package/test-projects/rails-app/app/services/post_service.rb +92 -0
  671. package/test-projects/rails-app/app/services/user_service.rb +76 -0
  672. package/test-projects/rails-app/config/application.rb +27 -0
  673. package/test-projects/rails-app/config/environment.rb +7 -0
  674. package/test-projects/rails-app/config/routes.rb +15 -0
  675. package/test-projects/react-app/.ai-dev/ai_context.md +96 -0
  676. package/test-projects/react-app/.ai-dev/ai_rules.md +49 -0
  677. package/test-projects/react-app/.ai-dev/architecture.md +39 -0
  678. package/test-projects/react-app/.ai-dev/cache.json +153 -0
  679. package/test-projects/react-app/.ai-dev/context/features/src.json +18 -0
  680. package/test-projects/react-app/.ai-dev/context/flows/UsersPage.json +14 -0
  681. package/test-projects/react-app/.ai-dev/context/flows/dashboard.json +9 -0
  682. package/test-projects/react-app/.ai-dev/context/flows/login.json +9 -0
  683. package/test-projects/react-app/.ai-dev/context/flows/users.json +9 -0
  684. package/test-projects/react-app/.ai-dev/dependencies.json +128 -0
  685. package/test-projects/react-app/.ai-dev/entrypoints.md +4 -0
  686. package/test-projects/react-app/.ai-dev/files.json +189 -0
  687. package/test-projects/react-app/.ai-dev/graph/knowledge-graph.json +112 -0
  688. package/test-projects/react-app/.ai-dev/graph/module-graph.json +31 -0
  689. package/test-projects/react-app/.ai-dev/graph/symbol-graph.json +868 -0
  690. package/test-projects/react-app/.ai-dev/graph/symbol-references.json +31 -0
  691. package/test-projects/react-app/.ai-dev/index-state.json +266 -0
  692. package/test-projects/react-app/.ai-dev/index.db +0 -0
  693. package/test-projects/react-app/.ai-dev/modules.json +17 -0
  694. package/test-projects/react-app/.ai-dev/project.json +16 -0
  695. package/test-projects/react-app/.ai-dev/repo_map.json +391 -0
  696. package/test-projects/react-app/.ai-dev/repo_map.md +94 -0
  697. package/test-projects/react-app/.ai-dev/schema.json +5 -0
  698. package/test-projects/react-app/.ai-dev/summary.md +13 -0
  699. package/test-projects/react-app/.ai-dev/symbols.json +1 -0
  700. package/test-projects/react-app/.ai-dev/tech_stack.md +39 -0
  701. package/test-projects/react-app/.ai-dev/tools.json +10 -0
  702. package/test-projects/react-app/ai-context/ai_context.md +96 -0
  703. package/test-projects/react-app/ai-context/ai_rules.md +49 -0
  704. package/test-projects/react-app/ai-context/architecture.md +39 -0
  705. package/test-projects/react-app/ai-context/cache.json +153 -0
  706. package/test-projects/react-app/ai-context/context/features/src.json +18 -0
  707. package/test-projects/react-app/ai-context/context/flows/UsersPage.json +14 -0
  708. package/test-projects/react-app/ai-context/context/flows/dashboard.json +9 -0
  709. package/test-projects/react-app/ai-context/context/flows/login.json +9 -0
  710. package/test-projects/react-app/ai-context/context/flows/users.json +9 -0
  711. package/test-projects/react-app/ai-context/conventions.md +52 -0
  712. package/test-projects/react-app/ai-context/dependencies.json +128 -0
  713. package/test-projects/react-app/ai-context/entrypoints.md +4 -0
  714. package/test-projects/react-app/ai-context/files.json +189 -0
  715. package/test-projects/react-app/ai-context/graph/knowledge-graph.json +112 -0
  716. package/test-projects/react-app/ai-context/graph/module-graph.json +31 -0
  717. package/test-projects/react-app/ai-context/graph/symbol-graph.json +868 -0
  718. package/test-projects/react-app/ai-context/graph/symbol-references.json +31 -0
  719. package/test-projects/react-app/ai-context/index-state.json +266 -0
  720. package/test-projects/react-app/ai-context/index.db +0 -0
  721. package/test-projects/react-app/ai-context/modules.json +17 -0
  722. package/test-projects/react-app/ai-context/project.json +16 -0
  723. package/test-projects/react-app/ai-context/repo_map.json +391 -0
  724. package/test-projects/react-app/ai-context/repo_map.md +94 -0
  725. package/test-projects/react-app/ai-context/schema.json +5 -0
  726. package/test-projects/react-app/ai-context/summary.md +13 -0
  727. package/test-projects/react-app/ai-context/symbols.json +1 -0
  728. package/test-projects/react-app/ai-context/tech_stack.md +39 -0
  729. package/test-projects/react-app/ai-context/tools.json +10 -0
  730. package/test-projects/react-app/package.json +16 -0
  731. package/test-projects/react-app/src/App.tsx +21 -0
  732. package/test-projects/react-app/src/context/AuthContext.tsx +41 -0
  733. package/test-projects/react-app/src/hooks/useAuth.ts +10 -0
  734. package/test-projects/react-app/src/main.tsx +10 -0
  735. package/test-projects/react-app/src/pages/DashboardPage.tsx +17 -0
  736. package/test-projects/react-app/src/pages/LoginPage.tsx +41 -0
  737. package/test-projects/react-app/src/pages/UsersPage.tsx +36 -0
  738. package/test-projects/react-app/src/services/userService.ts +37 -0
  739. package/test-projects/salesforce-cli/.ai-dev/ai_context.md +89 -0
  740. package/test-projects/salesforce-cli/.ai-dev/ai_rules.md +47 -0
  741. package/test-projects/salesforce-cli/.ai-dev/architecture.md +39 -0
  742. package/test-projects/salesforce-cli/.ai-dev/cache.json +125 -0
  743. package/test-projects/salesforce-cli/.ai-dev/context/features/force-app.json +14 -0
  744. package/test-projects/salesforce-cli/.ai-dev/context/flows/account.json +9 -0
  745. package/test-projects/salesforce-cli/.ai-dev/context/flows/opportunity.json +9 -0
  746. package/test-projects/salesforce-cli/.ai-dev/conventions.md +51 -0
  747. package/test-projects/salesforce-cli/.ai-dev/dependencies.json +6 -0
  748. package/test-projects/salesforce-cli/.ai-dev/entrypoints.md +4 -0
  749. package/test-projects/salesforce-cli/.ai-dev/files.json +154 -0
  750. package/test-projects/salesforce-cli/.ai-dev/graph/knowledge-graph.json +64 -0
  751. package/test-projects/salesforce-cli/.ai-dev/graph/module-graph.json +13 -0
  752. package/test-projects/salesforce-cli/.ai-dev/graph/symbol-graph.json +148 -0
  753. package/test-projects/salesforce-cli/.ai-dev/graph/symbol-references.json +1 -0
  754. package/test-projects/salesforce-cli/.ai-dev/index-state.json +217 -0
  755. package/test-projects/salesforce-cli/.ai-dev/index.db +0 -0
  756. package/test-projects/salesforce-cli/.ai-dev/modules.json +12 -0
  757. package/test-projects/salesforce-cli/.ai-dev/project.json +14 -0
  758. package/test-projects/salesforce-cli/.ai-dev/repo_map.json +328 -0
  759. package/test-projects/salesforce-cli/.ai-dev/repo_map.md +80 -0
  760. package/test-projects/salesforce-cli/.ai-dev/schema.json +5 -0
  761. package/test-projects/salesforce-cli/.ai-dev/summary.md +13 -0
  762. package/test-projects/salesforce-cli/.ai-dev/symbols.json +1 -0
  763. package/test-projects/salesforce-cli/.ai-dev/tech_stack.md +31 -0
  764. package/test-projects/salesforce-cli/.ai-dev/tools.json +10 -0
  765. package/test-projects/salesforce-cli/.forceignore +27 -0
  766. package/test-projects/salesforce-cli/ai-context/ai_context.md +89 -0
  767. package/test-projects/salesforce-cli/ai-context/ai_rules.md +47 -0
  768. package/test-projects/salesforce-cli/ai-context/architecture.md +39 -0
  769. package/test-projects/salesforce-cli/ai-context/cache.json +125 -0
  770. package/test-projects/salesforce-cli/ai-context/context/features/force-app.json +14 -0
  771. package/test-projects/salesforce-cli/ai-context/context/flows/account.json +9 -0
  772. package/test-projects/salesforce-cli/ai-context/context/flows/opportunity.json +9 -0
  773. package/test-projects/salesforce-cli/ai-context/conventions.md +51 -0
  774. package/test-projects/salesforce-cli/ai-context/dependencies.json +6 -0
  775. package/test-projects/salesforce-cli/ai-context/entrypoints.md +4 -0
  776. package/test-projects/salesforce-cli/ai-context/files.json +154 -0
  777. package/test-projects/salesforce-cli/ai-context/graph/knowledge-graph.json +64 -0
  778. package/test-projects/salesforce-cli/ai-context/graph/module-graph.json +13 -0
  779. package/test-projects/salesforce-cli/ai-context/graph/symbol-graph.json +148 -0
  780. package/test-projects/salesforce-cli/ai-context/graph/symbol-references.json +1 -0
  781. package/test-projects/salesforce-cli/ai-context/index-state.json +217 -0
  782. package/test-projects/salesforce-cli/ai-context/index.db +0 -0
  783. package/test-projects/salesforce-cli/ai-context/modules.json +12 -0
  784. package/test-projects/salesforce-cli/ai-context/project.json +14 -0
  785. package/test-projects/salesforce-cli/ai-context/repo_map.json +328 -0
  786. package/test-projects/salesforce-cli/ai-context/repo_map.md +80 -0
  787. package/test-projects/salesforce-cli/ai-context/schema.json +5 -0
  788. package/test-projects/salesforce-cli/ai-context/summary.md +13 -0
  789. package/test-projects/salesforce-cli/ai-context/symbols.json +1 -0
  790. package/test-projects/salesforce-cli/ai-context/tech_stack.md +31 -0
  791. package/test-projects/salesforce-cli/ai-context/tools.json +10 -0
  792. package/test-projects/salesforce-cli/force-app/main/default/classes/AccountController.cls +24 -0
  793. package/test-projects/salesforce-cli/force-app/main/default/classes/OpportunityController.cls +25 -0
  794. package/test-projects/salesforce-cli/force-app/main/default/objects/Project__c.object.xml +45 -0
  795. package/test-projects/salesforce-cli/force-app/main/default/triggers/AccountTrigger.trigger +33 -0
  796. package/test-projects/salesforce-cli/sfdx-project.json +11 -0
  797. package/test-projects/spring-boot-app/.ai-dev/ai_context.md +91 -0
  798. package/test-projects/spring-boot-app/.ai-dev/ai_rules.md +48 -0
  799. package/test-projects/spring-boot-app/.ai-dev/architecture.md +39 -0
  800. package/test-projects/spring-boot-app/.ai-dev/cache.json +173 -0
  801. package/test-projects/spring-boot-app/.ai-dev/context/features/src.json +26 -0
  802. package/test-projects/spring-boot-app/.ai-dev/context/flows/PostController.json +19 -0
  803. package/test-projects/spring-boot-app/.ai-dev/context/flows/UserController.json +19 -0
  804. package/test-projects/spring-boot-app/.ai-dev/context/flows/comment.json +11 -0
  805. package/test-projects/spring-boot-app/.ai-dev/context/flows/post.json +14 -0
  806. package/test-projects/spring-boot-app/.ai-dev/context/flows/user.json +14 -0
  807. package/test-projects/spring-boot-app/.ai-dev/conventions.md +52 -0
  808. package/test-projects/spring-boot-app/.ai-dev/dependencies.json +326 -0
  809. package/test-projects/spring-boot-app/.ai-dev/entrypoints.md +4 -0
  810. package/test-projects/spring-boot-app/.ai-dev/files.json +214 -0
  811. package/test-projects/spring-boot-app/.ai-dev/graph/knowledge-graph.json +231 -0
  812. package/test-projects/spring-boot-app/.ai-dev/graph/module-graph.json +22 -0
  813. package/test-projects/spring-boot-app/.ai-dev/graph/symbol-graph.json +794 -0
  814. package/test-projects/spring-boot-app/.ai-dev/graph/symbol-references.json +70 -0
  815. package/test-projects/spring-boot-app/.ai-dev/index-state.json +301 -0
  816. package/test-projects/spring-boot-app/.ai-dev/index.db +0 -0
  817. package/test-projects/spring-boot-app/.ai-dev/modules.json +21 -0
  818. package/test-projects/spring-boot-app/.ai-dev/project.json +17 -0
  819. package/test-projects/spring-boot-app/.ai-dev/repo_map.json +461 -0
  820. package/test-projects/spring-boot-app/.ai-dev/repo_map.md +109 -0
  821. package/test-projects/spring-boot-app/.ai-dev/schema.json +5 -0
  822. package/test-projects/spring-boot-app/.ai-dev/summary.md +12 -0
  823. package/test-projects/spring-boot-app/.ai-dev/symbols.json +1 -0
  824. package/test-projects/spring-boot-app/.ai-dev/tech_stack.md +32 -0
  825. package/test-projects/spring-boot-app/.ai-dev/tools.json +10 -0
  826. package/test-projects/spring-boot-app/.classpath +57 -0
  827. package/test-projects/spring-boot-app/.factorypath +69 -0
  828. package/test-projects/spring-boot-app/.project +34 -0
  829. package/test-projects/spring-boot-app/.settings/org.eclipse.core.resources.prefs +4 -0
  830. package/test-projects/spring-boot-app/.settings/org.eclipse.jdt.apt.core.prefs +4 -0
  831. package/test-projects/spring-boot-app/.settings/org.eclipse.jdt.core.prefs +10 -0
  832. package/test-projects/spring-boot-app/.settings/org.eclipse.m2e.core.prefs +4 -0
  833. package/test-projects/spring-boot-app/README.md +122 -0
  834. package/test-projects/spring-boot-app/ai-context/ai_context.md +91 -0
  835. package/test-projects/spring-boot-app/ai-context/ai_rules.md +48 -0
  836. package/test-projects/spring-boot-app/ai-context/architecture.md +39 -0
  837. package/test-projects/spring-boot-app/ai-context/cache.json +173 -0
  838. package/test-projects/spring-boot-app/ai-context/context/features/src.json +26 -0
  839. package/test-projects/spring-boot-app/ai-context/context/flows/PostController.json +19 -0
  840. package/test-projects/spring-boot-app/ai-context/context/flows/UserController.json +19 -0
  841. package/test-projects/spring-boot-app/ai-context/context/flows/comment.json +11 -0
  842. package/test-projects/spring-boot-app/ai-context/context/flows/post.json +14 -0
  843. package/test-projects/spring-boot-app/ai-context/context/flows/user.json +14 -0
  844. package/test-projects/spring-boot-app/ai-context/conventions.md +52 -0
  845. package/test-projects/spring-boot-app/ai-context/dependencies.json +326 -0
  846. package/test-projects/spring-boot-app/ai-context/entrypoints.md +4 -0
  847. package/test-projects/spring-boot-app/ai-context/files.json +214 -0
  848. package/test-projects/spring-boot-app/ai-context/graph/knowledge-graph.json +231 -0
  849. package/test-projects/spring-boot-app/ai-context/graph/module-graph.json +22 -0
  850. package/test-projects/spring-boot-app/ai-context/graph/symbol-graph.json +794 -0
  851. package/test-projects/spring-boot-app/ai-context/graph/symbol-references.json +70 -0
  852. package/test-projects/spring-boot-app/ai-context/index-state.json +301 -0
  853. package/test-projects/spring-boot-app/ai-context/index.db +0 -0
  854. package/test-projects/spring-boot-app/ai-context/modules.json +21 -0
  855. package/test-projects/spring-boot-app/ai-context/project.json +17 -0
  856. package/test-projects/spring-boot-app/ai-context/repo_map.json +461 -0
  857. package/test-projects/spring-boot-app/ai-context/repo_map.md +109 -0
  858. package/test-projects/spring-boot-app/ai-context/schema.json +5 -0
  859. package/test-projects/spring-boot-app/ai-context/summary.md +12 -0
  860. package/test-projects/spring-boot-app/ai-context/symbols.json +1 -0
  861. package/test-projects/spring-boot-app/ai-context/tech_stack.md +32 -0
  862. package/test-projects/spring-boot-app/ai-context/tools.json +10 -0
  863. package/test-projects/spring-boot-app/pom.xml +79 -0
  864. package/test-projects/spring-boot-app/src/main/java/com/example/demo/DemoApplication.java +12 -0
  865. package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/CommentController.java +89 -0
  866. package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/PostController.java +92 -0
  867. package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/UserController.java +84 -0
  868. package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/Comment.java +38 -0
  869. package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/Post.java +56 -0
  870. package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/User.java +44 -0
  871. package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/CommentRepository.java +21 -0
  872. package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/PostRepository.java +18 -0
  873. package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/UserRepository.java +15 -0
  874. package/test-projects/spring-boot-app/src/main/java/com/example/demo/services/PostService.java +83 -0
  875. package/test-projects/spring-boot-app/src/main/java/com/example/demo/services/UserService.java +62 -0
  876. package/test-projects/spring-boot-app/src/main/resources/application.properties +22 -0
  877. package/test-projects/spring-boot-app/target/classes/com/example/demo/DemoApplication.class +0 -0
  878. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController$CommentCreateRequest.class +0 -0
  879. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController$CommentUpdateRequest.class +0 -0
  880. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController.class +0 -0
  881. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController$PostCreateRequest.class +0 -0
  882. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController$PostUpdateRequest.class +0 -0
  883. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController.class +0 -0
  884. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController$UserCreateRequest.class +0 -0
  885. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController$UserUpdateRequest.class +0 -0
  886. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController.class +0 -0
  887. package/test-projects/spring-boot-app/target/classes/com/example/demo/models/Comment.class +0 -0
  888. package/test-projects/spring-boot-app/target/classes/com/example/demo/models/Post.class +0 -0
  889. package/test-projects/spring-boot-app/target/classes/com/example/demo/models/User.class +0 -0
  890. package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/CommentRepository.class +0 -0
  891. package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/PostRepository.class +0 -0
  892. package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/UserRepository.class +0 -0
  893. package/test-projects/spring-boot-app/target/classes/com/example/demo/services/PostService.class +0 -0
  894. package/test-projects/spring-boot-app/target/classes/com/example/demo/services/UserService.class +0 -0
  895. package/test_adapters.mjs +87 -0
  896. package/tests/e2e/README.md +85 -0
  897. package/tests/e2e/run-e2e.sh +88 -0
  898. package/tests/phase2-fixes.test.ts +200 -0
  899. package/tests/semanticContexts.test.ts +23 -25
  900. package/ai/cache.json +0 -329
  901. package/ai/dependencies.json +0 -307
  902. package/ai/files.json +0 -1253
  903. package/ai/graph/module-graph.json +0 -119
  904. package/ai/graph/symbol-graph.json +0 -52738
  905. package/ai/graph/symbol-references.json +0 -1810
  906. package/ai/hierarchy.json +0 -28
  907. package/ai/index-state.json +0 -931
  908. package/ai/index.db +0 -0
  909. package/ai/modules.json +0 -73
  910. package/ai/repo-map.json +0 -833
  911. package/ai/repo_map.json +0 -833
  912. package/ai/repo_map.md +0 -211
  913. package/ai/summary.md +0 -23
  914. /package/{ai → .ai-dev}/ccp/jira-123/context.json +0 -0
  915. /package/{ai → .ai-dev}/context/repo.json +0 -0
  916. /package/{ai → .ai-dev}/context/utils.json +0 -0
  917. /package/{ai → .ai-dev}/embeddings.json +0 -0
  918. /package/{ai → .ai-dev}/git/commit-activity.json +0 -0
  919. /package/{ai → .ai-dev}/git/recent-features.json +0 -0
  920. /package/{ai → .ai-dev}/git/recent-files.json +0 -0
  921. /package/{ai → .ai-dev}/git/recent-flows.json +0 -0
  922. /package/{ai/symbols.json → ai-context/git/recent-features.json} +0 -0
  923. /package/{ai → test-projects/react-app/.ai-dev}/conventions.md +0 -0
@@ -0,0 +1,62 @@
1
+ package com.example.demo.services;
2
+
3
+ import com.example.demo.models.User;
4
+ import com.example.demo.repositories.UserRepository;
5
+ import lombok.RequiredArgsConstructor;
6
+ import org.springframework.stereotype.Service;
7
+ import org.springframework.transaction.annotation.Transactional;
8
+
9
+ import java.util.List;
10
+ import java.util.Optional;
11
+
12
+ @Service
13
+ @RequiredArgsConstructor
14
+ @Transactional(readOnly = true)
15
+ public class UserService {
16
+
17
+ private final UserRepository userRepository;
18
+
19
+ public List<User> findAll() {
20
+ return userRepository.findAll();
21
+ }
22
+
23
+ public Optional<User> findById(Long id) {
24
+ return userRepository.findById(id);
25
+ }
26
+
27
+ public Optional<User> findByEmail(String email) {
28
+ return userRepository.findByEmail(email);
29
+ }
30
+
31
+ @Transactional
32
+ public User create(User user) {
33
+ if (userRepository.existsByEmail(user.getEmail())) {
34
+ throw new IllegalArgumentException("User with email " + user.getEmail() + " already exists");
35
+ }
36
+ return userRepository.save(user);
37
+ }
38
+
39
+ @Transactional
40
+ public User update(Long id, User userDetails) {
41
+ User user = userRepository.findById(id)
42
+ .orElseThrow(() -> new IllegalArgumentException("User not found with id: " + id));
43
+
44
+ if (!user.getEmail().equals(userDetails.getEmail()) &&
45
+ userRepository.existsByEmail(userDetails.getEmail())) {
46
+ throw new IllegalArgumentException("Email already in use: " + userDetails.getEmail());
47
+ }
48
+
49
+ user.setName(userDetails.getName());
50
+ user.setEmail(userDetails.getEmail());
51
+
52
+ return userRepository.save(user);
53
+ }
54
+
55
+ @Transactional
56
+ public void delete(Long id) {
57
+ if (!userRepository.existsById(id)) {
58
+ throw new IllegalArgumentException("User not found with id: " + id);
59
+ }
60
+ userRepository.deleteById(id);
61
+ }
62
+ }
@@ -0,0 +1,22 @@
1
+ # Application Configuration
2
+ spring.application.name=demo
3
+
4
+ # H2 Database Configuration
5
+ spring.datasource.url=jdbc:h2:mem:testdb
6
+ spring.datasource.driverClassName=org.h2.Driver
7
+ spring.datasource.username=sa
8
+ spring.datasource.password=
9
+
10
+ # JPA/Hibernate Configuration
11
+ spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
12
+ spring.jpa.hibernate.ddl-auto=create-drop
13
+ spring.jpa.show-sql=true
14
+ spring.jpa.properties.hibernate.format_sql=true
15
+
16
+ # H2 Console (for development)
17
+ spring.h2.console.enabled=true
18
+ spring.h2.console.path=/h2-console
19
+
20
+ # Logging
21
+ logging.level.org.hibernate.SQL=debug
22
+ logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace
@@ -0,0 +1,87 @@
1
+ import { extractSymbols } from "./dist/analyzers/symbols.js";
2
+ import fs from "fs";
3
+ import path from "path";
4
+
5
+ const projects = [
6
+ { name: "Django", path: "test-projects/django-app", ext: ".py", sampleFile: "blog/models.py" },
7
+ { name: "Laravel", path: "test-projects/laravel-app", ext: ".php", sampleFile: "app/Http/Controllers/Controller.php" },
8
+ { name: "FastAPI", path: "test-projects/fastapi-app", ext: ".py", sampleFile: "app/main.py" },
9
+ { name: "Flask", path: "test-projects/flask-app", ext: ".py", sampleFile: "app/models.py" },
10
+ { name: "Rails", path: "test-projects/rails-app", ext: ".rb", sampleFile: "app/models/user.rb" },
11
+ { name: "Spring Boot", path: "test-projects/spring-boot-app", ext: ".java", sampleFile: "src/main/java/com/example/demo/DemoApplication.java" },
12
+ { name: "NestJS", path: "test-projects/nestjs-backend", ext: ".ts", sampleFile: "src/main.ts" },
13
+ { name: "Express", path: "test-projects/express-api", ext: ".js", sampleFile: "index.js" },
14
+ { name: "React", path: "test-projects/react-app", ext: ".tsx", sampleFile: "src/App.tsx" },
15
+ { name: "Salesforce", path: "test-projects/salesforce-cli", ext: ".cls", sampleFile: "force-app/main/default/classes/AccountController.cls" },
16
+ { name: "Python CLI", path: "test-projects/python-cli", ext: ".py", sampleFile: "main.py" },
17
+ ];
18
+
19
+ console.log("=== ADAPTER SYMBOL EXTRACTION TESTS ===\n");
20
+
21
+ const results = [];
22
+
23
+ for (const project of projects) {
24
+ const fullPath = path.join(process.cwd(), project.path, project.sampleFile);
25
+ const fileExists = fs.existsSync(fullPath);
26
+
27
+ if (fileExists) {
28
+ const content = fs.readFileSync(fullPath, "utf8");
29
+ const fileInfo = {
30
+ path: fullPath,
31
+ relativePath: project.sampleFile,
32
+ extension: project.ext,
33
+ name: path.basename(project.sampleFile, path.extname(project.sampleFile))
34
+ };
35
+
36
+ const symbols = extractSymbols([fileInfo]);
37
+ const symbolCount = symbols.symbols.length;
38
+ const symbolNames = symbols.symbols.map(s => s.name).slice(0, 5).join(", ");
39
+
40
+ results.push({
41
+ adapter: project.name,
42
+ extension: project.ext,
43
+ file: project.sampleFile,
44
+ symbolsExtracted: symbolCount,
45
+ sampleSymbols: symbolNames,
46
+ status: symbolCount > 0 ? "PASS" : "FAIL"
47
+ });
48
+
49
+ console.log(`[${symbolCount > 0 ? "PASS" : "FAIL"}] ${project.name} (${project.ext})`);
50
+ console.log(` File: ${project.sampleFile}`);
51
+ console.log(` Symbols: ${symbolCount}`);
52
+ if (symbolCount > 0) {
53
+ console.log(` Sample: ${symbolNames}`);
54
+ }
55
+ console.log("");
56
+ } else {
57
+ results.push({
58
+ adapter: project.name,
59
+ extension: project.ext,
60
+ file: project.sampleFile,
61
+ symbolsExtracted: -1,
62
+ sampleSymbols: "FILE NOT FOUND",
63
+ status: "ERROR"
64
+ });
65
+
66
+ console.log(`[ERROR] ${project.name}`);
67
+ console.log(` File not found: ${project.sampleFile}`);
68
+ console.log("");
69
+ }
70
+ }
71
+
72
+ console.log("\n=== SUMMARY ===");
73
+ const passed = results.filter(r => r.status === "PASS").length;
74
+ const failed = results.filter(r => r.status === "FAIL").length;
75
+ const errors = results.filter(r => r.status === "ERROR").length;
76
+
77
+ console.log(`Total: ${results.length}`);
78
+ console.log(`Passed: ${passed}`);
79
+ console.log(`Failed: ${failed}`);
80
+ console.log(`Errors: ${errors}`);
81
+
82
+ if (failed > 0 || errors > 0) {
83
+ console.log("\n=== FAILED ADAPTERS ===");
84
+ results.filter(r => r.status !== "PASS").forEach(r => {
85
+ console.log(`- ${r.adapter} (${r.extension}): ${r.status} - ${r.sampleSymbols}`);
86
+ });
87
+ }
@@ -0,0 +1,85 @@
1
+ # ai-first E2E Test Suite
2
+
3
+ This directory contains end-to-end tests for ai-first-cli across different project types.
4
+
5
+ ## Test Projects
6
+
7
+ | Project | Path | Type | Framework |
8
+ |---------|------|------|-----------|
9
+ | Express API | `test-projects/express-api` | Backend | Express.js |
10
+ | NestJS Backend | `test-projects/nestjs-backend` | Backend | NestJS |
11
+ | Python CLI | `test-projects/python-cli` | CLI | Python |
12
+ | React App | `test-projects/react-app` | Frontend | React + Vite |
13
+
14
+ ## Test Commands
15
+
16
+ ### Init Command Tests
17
+
18
+ ```bash
19
+ # Test init on all projects
20
+ npm run test:e2e:init
21
+
22
+ # Individual project tests
23
+ node dist/commands/ai-first.js init --root test-projects/express-api
24
+ node dist/commands/ai-first.js init --root test-projects/nestjs-backend
25
+ node dist/commands/ai-first.js init --root test-projects/python-cli
26
+ node dist/commands/ai-first.js init --root test-projects/react-app
27
+ ```
28
+
29
+ ### Map Command Tests
30
+
31
+ ```bash
32
+ # Test map on all projects
33
+ npm run test:e2e:map
34
+
35
+ # Individual project tests
36
+ node dist/commands/ai-first.js map --root test-projects/express-api
37
+ node dist/commands/ai-first.js map --root test-projects/nestjs-backend
38
+ node dist/commands/ai-first.js map --root test-projects/python-cli
39
+ node dist/commands/ai-first.js map --root test-projects/react-app
40
+ ```
41
+
42
+ ## Expected Results
43
+
44
+ ### init command should generate:
45
+
46
+ - [x] `ai-context/repo_map.md`
47
+ - [x] `ai-context/repo_map.json`
48
+ - [x] `ai-context/summary.md`
49
+ - [x] `ai-context/architecture.md`
50
+ - [x] `ai-context/tech_stack.md`
51
+ - [x] `ai-context/entrypoints.md`
52
+ - [x] `ai-context/conventions.md`
53
+ - [x] `ai-context/symbols.json`
54
+ - [x] `ai-context/dependencies.json`
55
+ - [x] `ai-context/ai_rules.md`
56
+ - [x] `ai-context/ai_context.md`
57
+ - [ ] `ai-context/context/features/*.json` ← NOT WORKING
58
+ - [ ] `ai-context/context/flows/*.json` ← NOT WORKING (except NestJS with map)
59
+
60
+ ### map command should generate:
61
+
62
+ - [x] `ai-context/graph/module-graph.json`
63
+ - [x] `ai-context/graph/symbol-graph.json`
64
+ - [x] `ai-context/files.json`
65
+ - [ ] `ai-context/context/features/*.json` ← NOT WORKING for JS/Python/React
66
+ - [x] `ai-context/context/flows/*.json` ← Only works for NestJS
67
+
68
+ ## Running Tests
69
+
70
+ ```bash
71
+ # Build first
72
+ npm run build
73
+
74
+ # Run init tests
75
+ for project in express-api nestjs-backend python-cli react-app; do
76
+ rm -rf test-projects/$project/ai-context test-projects/$project/ai
77
+ node dist/commands/ai-first.js init --root test-projects/$project
78
+ done
79
+
80
+ # Run map tests
81
+ for project in express-api nestjs-backend python-cli react-app; do
82
+ rm -rf test-projects/$project/ai-context test-projects/$project/ai
83
+ node dist/commands/ai-first.js map --root test-projects/$project
84
+ done
85
+ ```
@@ -0,0 +1,88 @@
1
+ #!/bin/bash
2
+
3
+ # E2E Test Runner for ai-first-cli
4
+ # Runs all commands on all test projects
5
+
6
+ set -e
7
+
8
+ CLI="node dist/commands/ai-first.js"
9
+ PROJECTS=("express-api" "nestjs-backend" "python-cli" "react-app")
10
+
11
+ echo "========================================"
12
+ echo "ai-first-cli E2E Test Suite"
13
+ echo "========================================"
14
+
15
+ # Build first
16
+ echo "Building..."
17
+ npm run build
18
+
19
+ # Test each command on each project
20
+ for project in "${PROJECTS[@]}"; do
21
+ echo ""
22
+ echo "========================================"
23
+ echo "Testing: $project"
24
+ echo "========================================"
25
+
26
+ # Clean ai directory
27
+ rm -rf "test-projects/$project/ai"
28
+
29
+ # Test init
30
+ echo ""
31
+ echo "--- init ---"
32
+ $CLI init --root "test-projects/$project" || true
33
+
34
+ # Test doctor
35
+ echo ""
36
+ echo "--- doctor ---"
37
+ $CLI doctor --root "test-projects/$project" || true
38
+
39
+ # Test map
40
+ echo ""
41
+ echo "--- map ---"
42
+ $CLI map --root "test-projects/$project" || true
43
+
44
+ # Test index
45
+ echo ""
46
+ echo "--- index ---"
47
+ $CLI index --root "test-projects/$project" || true
48
+
49
+ # Test explore
50
+ echo ""
51
+ echo "--- explore ---"
52
+ $CLI explore all --root "test-projects/$project" || true
53
+
54
+ # Test graph
55
+ echo ""
56
+ echo "--- graph ---"
57
+ $CLI graph --root "test-projects/$project" || true
58
+
59
+ # Test git
60
+ echo ""
61
+ echo "--- git ---"
62
+ $CLI git --root "test-projects/$project" || true
63
+
64
+ # Check results
65
+ echo ""
66
+ echo "--- Results ---"
67
+ if [ -d "test-projects/$project/ai" ]; then
68
+ echo "Files generated:"
69
+ ls "test-projects/$project/ai/"
70
+
71
+ if [ -d "test-projects/$project/ai/context/features" ]; then
72
+ FEATURES=$(ls -1 "test-projects/$project/ai/context/features/" 2>/dev/null | wc -l)
73
+ echo "Features: $FEATURES"
74
+ fi
75
+
76
+ if [ -d "test-projects/$project/ai/context/flows" ]; then
77
+ FLOWS=$(ls -1 "test-projects/$project/ai/context/flows/" 2>/dev/null | wc -l)
78
+ echo "Flows: $FLOWS"
79
+ fi
80
+ else
81
+ echo "ERROR: No ai directory created"
82
+ fi
83
+ done
84
+
85
+ echo ""
86
+ echo "========================================"
87
+ echo "E2E Tests Complete"
88
+ echo "========================================"
@@ -0,0 +1,200 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+ import fs from "fs";
3
+ import path from "path";
4
+ import os from "os";
5
+ import { extractSymbols } from "../src/analyzers/symbols.js";
6
+ import { generateSemanticContexts } from "../src/core/semanticContexts.js";
7
+
8
+ describe("Symbol Extraction - Extension Format Fix", () => {
9
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "ai-first-symbols-"));
10
+ const testFilePath = path.join(tempDir, "test.js");
11
+
12
+ beforeEach(() => {
13
+ const content = `
14
+ const express = require('express');
15
+ const authController = require('./authController');
16
+
17
+ const app = express();
18
+ const PORT = process.env.PORT || 3000;
19
+
20
+ function finalTest() {
21
+ return 'test';
22
+ }
23
+
24
+ module.exports = app;
25
+ `;
26
+ fs.writeFileSync(testFilePath, content);
27
+ });
28
+
29
+ afterEach(() => {
30
+ fs.unlinkSync(testFilePath);
31
+ });
32
+
33
+ it("should extract symbols from .js files with proper extension", () => {
34
+ const fileInfo = {
35
+ path: testFilePath,
36
+ relativePath: "test.js",
37
+ extension: ".js",
38
+ name: "test"
39
+ };
40
+
41
+ const result = extractSymbols([fileInfo]);
42
+
43
+ expect(result.symbols.length).toBeGreaterThanOrEqual(5);
44
+ expect(result.symbols.some(s => s.name === "express")).toBe(true);
45
+ expect(result.symbols.some(s => s.name === "authController")).toBe(true);
46
+ expect(result.symbols.some(s => s.name === "app")).toBe(true);
47
+ expect(result.symbols.some(s => s.name === "PORT")).toBe(true);
48
+ expect(result.symbols.some(s => s.name === "finalTest")).toBe(true);
49
+ });
50
+
51
+ it("should extract symbols from .ts files", () => {
52
+ const tsFilePath = path.join(tempDir, "test.ts");
53
+ const content = `
54
+ export class UserController {
55
+ public async getUser(id: string) { }
56
+ }
57
+
58
+ export const MAX_USERS = 100;
59
+ `;
60
+ fs.writeFileSync(tsFilePath, content);
61
+
62
+ const fileInfo = {
63
+ path: tsFilePath,
64
+ relativePath: "test.ts",
65
+ extension: ".ts",
66
+ name: "test"
67
+ };
68
+
69
+ const result = extractSymbols([fileInfo]);
70
+
71
+ expect(result.symbols.length).toBeGreaterThanOrEqual(2);
72
+ expect(result.symbols.some(s => s.name === "UserController")).toBe(true);
73
+ expect(result.symbols.some(s => s.name === "MAX_USERS")).toBe(true);
74
+
75
+ fs.unlinkSync(tsFilePath);
76
+ });
77
+
78
+ it("should NOT extract symbols if extension is passed without dot", () => {
79
+ const fileInfo = {
80
+ path: testFilePath,
81
+ relativePath: "test.js",
82
+ extension: "js",
83
+ name: "test"
84
+ };
85
+
86
+ const result = extractSymbols([fileInfo]);
87
+
88
+ expect(result.symbols.length).toBe(0);
89
+ });
90
+ });
91
+
92
+ describe("Flow Name Sanitization", () => {
93
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "ai-first-flows-"));
94
+
95
+ function createTestModules(modules: Record<string, { path: string; files: string[] }>) {
96
+ const aiDir = path.join(tempDir, "ai");
97
+ fs.mkdirSync(path.join(aiDir, "context", "flows"), { recursive: true });
98
+ fs.mkdirSync(path.join(aiDir, "graph"), { recursive: true });
99
+ fs.writeFileSync(path.join(aiDir, "modules.json"), JSON.stringify({ modules }));
100
+ fs.writeFileSync(path.join(aiDir, "symbols.json"), JSON.stringify({ symbols: {}, byType: {}, byFile: {} }));
101
+ fs.writeFileSync(path.join(aiDir, "graph", "symbol-graph.json"), JSON.stringify({ symbols: [], relationships: [] }));
102
+ return aiDir;
103
+ }
104
+
105
+ afterEach(() => {
106
+ fs.rmSync(tempDir, { recursive: true, force: true });
107
+ });
108
+
109
+ it("should NOT create flow files with double dots", () => {
110
+ const modules = {
111
+ "auth": {
112
+ path: "src/users",
113
+ files: [
114
+ "src/users/users.controller.ts",
115
+ "src/users/users.service.ts"
116
+ ]
117
+ }
118
+ };
119
+
120
+ const aiDir = createTestModules(modules);
121
+ generateSemanticContexts(aiDir);
122
+
123
+ const flowsDir = path.join(aiDir, "context", "flows");
124
+ const files = fs.readdirSync(flowsDir);
125
+
126
+ expect(files.some(f => f.includes(".."))).toBe(false);
127
+ expect(files.some(f => f === "users.json")).toBe(true);
128
+ });
129
+
130
+ it("should NOT create flow files with trailing underscores", () => {
131
+ const modules = {
132
+ "add": {
133
+ path: "cli",
134
+ files: [
135
+ "cli/add_command.py",
136
+ "cli/list_command.py"
137
+ ]
138
+ }
139
+ };
140
+
141
+ const aiDir = createTestModules(modules);
142
+ generateSemanticContexts(aiDir);
143
+
144
+ const flowsDir = path.join(aiDir, "context", "flows");
145
+ const files = fs.readdirSync(flowsDir);
146
+
147
+ expect(files.some(f => f.endsWith("_.json"))).toBe(false);
148
+ });
149
+
150
+ it("should sanitize special characters in flow names", () => {
151
+ const modules = {
152
+ "test-flow": {
153
+ path: "api/test-flow",
154
+ files: [
155
+ "api/test-flow/controller.ts",
156
+ "api/test-flow/service.ts",
157
+ "api/test-flow/repository.ts"
158
+ ]
159
+ }
160
+ };
161
+
162
+ const aiDir = createTestModules(modules);
163
+ generateSemanticContexts(aiDir);
164
+
165
+ const flowsDir = path.join(aiDir, "context", "flows");
166
+ const files = fs.readdirSync(flowsDir);
167
+
168
+ expect(files.every(f => /^[a-zA-Z0-9_.-]+$/.test(f.replace(".json", "")))).toBe(true);
169
+ });
170
+ });
171
+
172
+ describe("File Name Consolidation (repo-map -> repo_map)", () => {
173
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "ai-first-consolidation-"));
174
+
175
+ afterEach(() => {
176
+ fs.rmSync(tempDir, { recursive: true, force: true });
177
+ });
178
+
179
+ it("should only create repo_map.json, not repo-map.json", () => {
180
+ const aiDir = path.join(tempDir, "ai");
181
+ fs.mkdirSync(aiDir, { recursive: true });
182
+
183
+ const testData = { test: "data" };
184
+ fs.writeFileSync(path.join(aiDir, "repo_map.json"), JSON.stringify(testData));
185
+
186
+ expect(fs.existsSync(path.join(aiDir, "repo_map.json"))).toBe(true);
187
+ expect(fs.existsSync(path.join(aiDir, "repo-map.json"))).toBe(false);
188
+ });
189
+
190
+ it("should handle migration scenario correctly", () => {
191
+ const aiDir = path.join(tempDir, "ai");
192
+ fs.mkdirSync(aiDir, { recursive: true });
193
+
194
+ fs.writeFileSync(path.join(aiDir, "repo_map.json"), JSON.stringify({ version: "new" }));
195
+ fs.writeFileSync(path.join(aiDir, "repo-map.json"), JSON.stringify({ version: "old" }));
196
+
197
+ expect(fs.existsSync(path.join(aiDir, "repo_map.json"))).toBe(true);
198
+ expect(fs.existsSync(path.join(aiDir, "repo-map.json"))).toBe(true);
199
+ });
200
+ });