ai-first-cli 1.1.5 → 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 (898) hide show
  1. package/{ai → .ai-dev}/ai_context.md +8 -8
  2. package/{ai → .ai-dev}/ai_rules.md +2 -2
  3. package/{ai → .ai-dev}/architecture.md +38 -23
  4. package/.ai-dev/cache.json +2349 -0
  5. package/.ai-dev/context/features/test-projects.json +69 -0
  6. package/.ai-dev/context/flows/api.json +9 -0
  7. package/{ai → .ai-dev}/context/flows/auth.json +2 -1
  8. package/.ai-dev/context/flows/category.json +12 -0
  9. package/.ai-dev/context/flows/comment.json +16 -0
  10. package/.ai-dev/context/flows/post.json +18 -0
  11. package/.ai-dev/context/flows/routes.json +19 -0
  12. package/.ai-dev/context/flows/user.json +20 -0
  13. package/.ai-dev/context/flows/views.json +14 -0
  14. package/.ai-dev/dependencies.json +2946 -0
  15. package/.ai-dev/files.json +2944 -0
  16. package/{ai → .ai-dev}/git/commit-activity.json +39 -126
  17. package/{ai → .ai-dev}/git/recent-files.json +6 -6
  18. package/.ai-dev/git/recent-flows.json +1 -0
  19. package/.ai-dev/graph/knowledge-graph.json +44314 -0
  20. package/.ai-dev/graph/module-graph.json +866 -0
  21. package/.ai-dev/graph/symbol-graph.json +200622 -0
  22. package/.ai-dev/graph/symbol-references.json +6778 -0
  23. package/.ai-dev/hierarchy.json +20 -0
  24. package/.ai-dev/index-state.json +4123 -0
  25. package/.ai-dev/index.db +0 -0
  26. package/.ai-dev/modules.json +532 -0
  27. package/{ai → .ai-dev}/project.json +8 -7
  28. package/{ai → .ai-dev}/repo_map.json +3403 -918
  29. package/{ai → .ai-dev}/repo_map.md +604 -45
  30. package/{test-projects/nestjs-backend/ai → .ai-dev}/schema.json +1 -1
  31. package/{ai → .ai-dev}/summary.md +15 -5
  32. package/.ai-dev/symbols.json +7 -0
  33. package/{ai → .ai-dev}/tech_stack.md +7 -3
  34. package/.github/workflows/publish.yml +55 -0
  35. package/CHANGELOG.md +125 -0
  36. package/PLAN_MEJORAS.md +216 -0
  37. package/README.es.md +82 -99
  38. package/README.md +70 -89
  39. package/STATUS_ADAPTADORES +126 -0
  40. package/TEST_RESULTS_PHASE1.md +420 -0
  41. package/ai/graph/knowledge-graph.json +6 -44411
  42. package/ai-context/ai_context.md +130 -0
  43. package/ai-context/ai_rules.md +54 -0
  44. package/ai-context/architecture.md +136 -0
  45. package/ai-context/cache.json +2349 -0
  46. package/ai-context/ccp/jira-123/context.json +7 -0
  47. package/ai-context/context/features/commands.json +18 -0
  48. package/ai-context/context/features/src.json +61 -0
  49. package/ai-context/context/features/test-projects.json +69 -0
  50. package/ai-context/context/flows/account.json +9 -0
  51. package/ai-context/context/flows/ai-first.json +9 -0
  52. package/ai-context/context/flows/api.json +9 -0
  53. package/ai-context/context/flows/auth.json +13 -0
  54. package/ai-context/context/flows/category.json +12 -0
  55. package/ai-context/context/flows/comment.json +16 -0
  56. package/ai-context/context/flows/dashboard.json +9 -0
  57. package/ai-context/context/flows/doctor.json +9 -0
  58. package/ai-context/context/flows/explore.json +9 -0
  59. package/ai-context/context/flows/login.json +9 -0
  60. package/ai-context/context/flows/opportunity.json +9 -0
  61. package/ai-context/context/flows/post.json +18 -0
  62. package/ai-context/context/flows/routes.json +19 -0
  63. package/ai-context/context/flows/user.json +20 -0
  64. package/ai-context/context/flows/users.json +9 -0
  65. package/ai-context/context/flows/views.json +14 -0
  66. package/ai-context/context/repo.json +56 -0
  67. package/ai-context/context/utils.json +7 -0
  68. package/ai-context/conventions.md +53 -0
  69. package/ai-context/dependencies.json +2946 -0
  70. package/ai-context/embeddings.json +23828 -0
  71. package/ai-context/entrypoints.md +42 -0
  72. package/ai-context/files.json +2944 -0
  73. package/ai-context/git/commit-activity.json +8646 -0
  74. package/ai-context/git/recent-features.json +1 -0
  75. package/ai-context/git/recent-files.json +52 -0
  76. package/ai-context/git/recent-flows.json +1 -0
  77. package/ai-context/graph/knowledge-graph.json +44314 -0
  78. package/ai-context/graph/module-graph.json +866 -0
  79. package/ai-context/graph/symbol-graph.json +200622 -0
  80. package/ai-context/graph/symbol-references.json +6778 -0
  81. package/ai-context/hierarchy.json +20 -0
  82. package/ai-context/index-state.json +4123 -0
  83. package/ai-context/index.db +0 -0
  84. package/ai-context/modules.json +532 -0
  85. package/ai-context/project.json +30 -0
  86. package/ai-context/repo_map.json +5818 -0
  87. package/ai-context/repo_map.md +1327 -0
  88. package/{test-projects/python-cli/ai → ai-context}/schema.json +1 -1
  89. package/ai-context/summary.md +42 -0
  90. package/ai-context/symbols.json +7 -0
  91. package/ai-context/tech_stack.md +46 -0
  92. package/dist/analyzers/symbols.d.ts.map +1 -1
  93. package/dist/analyzers/symbols.js +135 -7
  94. package/dist/analyzers/symbols.js.map +1 -1
  95. package/dist/commands/ai-first.d.ts.map +1 -1
  96. package/dist/commands/ai-first.js +35 -15
  97. package/dist/commands/ai-first.js.map +1 -1
  98. package/dist/commands/doctor.js +1 -1
  99. package/dist/commands/doctor.js.map +1 -1
  100. package/dist/commands/explore.js +1 -1
  101. package/dist/commands/explore.js.map +1 -1
  102. package/dist/core/ccp.js +1 -1
  103. package/dist/core/ccp.js.map +1 -1
  104. package/dist/core/embeddings.d.ts +11 -6
  105. package/dist/core/embeddings.d.ts.map +1 -1
  106. package/dist/core/embeddings.js +88 -38
  107. package/dist/core/embeddings.js.map +1 -1
  108. package/dist/core/gitAnalyzer.js +3 -3
  109. package/dist/core/gitAnalyzer.js.map +1 -1
  110. package/dist/core/incrementalAnalyzer.d.ts.map +1 -1
  111. package/dist/core/incrementalAnalyzer.js +76 -14
  112. package/dist/core/incrementalAnalyzer.js.map +1 -1
  113. package/dist/core/knowledgeGraphBuilder.js +1 -1
  114. package/dist/core/knowledgeGraphBuilder.js.map +1 -1
  115. package/dist/core/semanticContexts.d.ts.map +1 -1
  116. package/dist/core/semanticContexts.js +13 -4
  117. package/dist/core/semanticContexts.js.map +1 -1
  118. package/docs/guide/getting-started.md +8 -8
  119. package/docs/guide/quick-start.md +8 -8
  120. package/examples/01-express-api.md +3 -3
  121. package/examples/02-react-app.md +3 -3
  122. package/examples/03-python-django.md +3 -3
  123. package/examples/README.md +3 -3
  124. package/package.json +1 -1
  125. package/src/analyzers/symbols.ts +144 -7
  126. package/src/commands/ai-first.ts +37 -15
  127. package/src/commands/doctor.ts +1 -1
  128. package/src/commands/explore.ts +1 -1
  129. package/src/core/ccp.ts +1 -1
  130. package/src/core/embeddings.ts +106 -40
  131. package/src/core/gitAnalyzer.ts +3 -3
  132. package/src/core/incrementalAnalyzer.ts +101 -11
  133. package/src/core/knowledgeGraphBuilder.ts +1 -1
  134. package/src/core/semanticContexts.ts +14 -4
  135. package/test-projects/django-app/.ai-dev/ai_context.md +92 -0
  136. package/test-projects/django-app/.ai-dev/ai_rules.md +47 -0
  137. package/test-projects/django-app/.ai-dev/architecture.md +57 -0
  138. package/test-projects/django-app/.ai-dev/cache.json +169 -0
  139. package/test-projects/django-app/.ai-dev/context/flows/views.json +10 -0
  140. package/test-projects/django-app/.ai-dev/dependencies.json +312 -0
  141. package/test-projects/django-app/.ai-dev/files.json +209 -0
  142. package/test-projects/django-app/.ai-dev/graph/knowledge-graph.json +36 -0
  143. package/test-projects/django-app/.ai-dev/graph/module-graph.json +145 -0
  144. package/test-projects/django-app/.ai-dev/graph/symbol-graph.json +1488 -0
  145. package/test-projects/django-app/.ai-dev/index-state.json +294 -0
  146. package/test-projects/django-app/.ai-dev/index.db +0 -0
  147. package/test-projects/django-app/.ai-dev/modules.json +35 -0
  148. package/test-projects/django-app/.ai-dev/project.json +11 -0
  149. package/test-projects/django-app/.ai-dev/repo_map.json +412 -0
  150. package/test-projects/django-app/.ai-dev/repo_map.md +105 -0
  151. package/test-projects/{express-api/ai → django-app/.ai-dev}/schema.json +1 -1
  152. package/test-projects/django-app/.ai-dev/summary.md +15 -0
  153. package/test-projects/django-app/.ai-dev/symbols.json +1 -0
  154. package/test-projects/django-app/.ai-dev/tech_stack.md +32 -0
  155. package/test-projects/django-app/README.md +91 -0
  156. package/test-projects/django-app/ai-context/ai_context.md +92 -0
  157. package/test-projects/django-app/ai-context/ai_rules.md +47 -0
  158. package/test-projects/django-app/ai-context/architecture.md +57 -0
  159. package/test-projects/django-app/ai-context/cache.json +169 -0
  160. package/test-projects/django-app/ai-context/context/flows/views.json +10 -0
  161. package/test-projects/django-app/ai-context/conventions.md +51 -0
  162. package/test-projects/django-app/ai-context/dependencies.json +312 -0
  163. package/test-projects/django-app/ai-context/files.json +209 -0
  164. package/test-projects/django-app/ai-context/graph/knowledge-graph.json +36 -0
  165. package/test-projects/django-app/ai-context/graph/module-graph.json +145 -0
  166. package/test-projects/django-app/ai-context/graph/symbol-graph.json +1488 -0
  167. package/test-projects/django-app/ai-context/graph/symbol-references.json +1 -0
  168. package/test-projects/django-app/ai-context/index-state.json +294 -0
  169. package/test-projects/django-app/ai-context/index.db +0 -0
  170. package/test-projects/django-app/ai-context/modules.json +35 -0
  171. package/test-projects/django-app/ai-context/project.json +11 -0
  172. package/test-projects/django-app/ai-context/repo_map.json +412 -0
  173. package/test-projects/django-app/ai-context/repo_map.md +105 -0
  174. package/{ai → test-projects/django-app/ai-context}/schema.json +1 -1
  175. package/test-projects/django-app/ai-context/summary.md +15 -0
  176. package/test-projects/django-app/ai-context/symbols.json +1 -0
  177. package/test-projects/django-app/ai-context/tech_stack.md +32 -0
  178. package/test-projects/django-app/blog/__init__.py +0 -0
  179. package/test-projects/django-app/blog/admin.py +31 -0
  180. package/test-projects/django-app/blog/models.py +55 -0
  181. package/test-projects/django-app/blog/serializers.py +69 -0
  182. package/test-projects/django-app/blog/urls.py +14 -0
  183. package/test-projects/django-app/blog/views.py +96 -0
  184. package/test-projects/django-app/django_app/__init__.py +0 -0
  185. package/test-projects/django-app/django_app/settings.py +90 -0
  186. package/test-projects/django-app/django_app/urls.py +11 -0
  187. package/test-projects/django-app/django_app/wsgi.py +9 -0
  188. package/test-projects/django-app/manage.py +23 -0
  189. package/test-projects/django-app/requirements.txt +3 -0
  190. package/test-projects/django-app/users/__init__.py +0 -0
  191. package/test-projects/django-app/users/admin.py +42 -0
  192. package/test-projects/django-app/users/models.py +54 -0
  193. package/test-projects/django-app/users/serializers.py +113 -0
  194. package/test-projects/django-app/users/urls.py +13 -0
  195. package/test-projects/django-app/users/views.py +135 -0
  196. package/test-projects/express-api/{ai → .ai-dev}/project.json +2 -2
  197. package/test-projects/express-api/{ai → .ai-dev}/repo_map.json +1 -1
  198. package/test-projects/express-api/.ai-dev/schema.json +5 -0
  199. package/test-projects/express-api/.ai-dev/symbols.json +7 -0
  200. package/test-projects/express-api/ai-context/ai_context.md +112 -0
  201. package/test-projects/express-api/ai-context/ai_rules.md +50 -0
  202. package/test-projects/express-api/ai-context/architecture.md +62 -0
  203. package/test-projects/express-api/ai-context/context/features/controllers.json +13 -0
  204. package/test-projects/express-api/ai-context/context/features/services.json +13 -0
  205. package/test-projects/express-api/ai-context/context/flows/auth.json +12 -0
  206. package/test-projects/express-api/ai-context/context/flows/user.json +13 -0
  207. package/test-projects/express-api/ai-context/conventions.md +51 -0
  208. package/test-projects/express-api/ai-context/dependencies.json +54 -0
  209. package/test-projects/express-api/ai-context/entrypoints.md +17 -0
  210. package/test-projects/express-api/ai-context/modules.json +30 -0
  211. package/test-projects/express-api/ai-context/project.json +15 -0
  212. package/test-projects/express-api/ai-context/repo_map.json +100 -0
  213. package/test-projects/express-api/ai-context/repo_map.md +36 -0
  214. package/test-projects/express-api/ai-context/schema.json +5 -0
  215. package/test-projects/express-api/ai-context/summary.md +14 -0
  216. package/test-projects/express-api/ai-context/symbols.json +7 -0
  217. package/test-projects/express-api/ai-context/tech_stack.md +38 -0
  218. package/test-projects/express-api/index.js +9 -0
  219. package/test-projects/fastapi-app/.ai-dev/ai_context.md +89 -0
  220. package/test-projects/fastapi-app/.ai-dev/ai_rules.md +47 -0
  221. package/test-projects/fastapi-app/.ai-dev/architecture.md +39 -0
  222. package/test-projects/fastapi-app/.ai-dev/cache.json +125 -0
  223. package/test-projects/fastapi-app/.ai-dev/conventions.md +51 -0
  224. package/test-projects/fastapi-app/.ai-dev/dependencies.json +244 -0
  225. package/test-projects/fastapi-app/.ai-dev/files.json +154 -0
  226. package/test-projects/fastapi-app/.ai-dev/graph/knowledge-graph.json +15 -0
  227. package/test-projects/fastapi-app/.ai-dev/graph/module-graph.json +78 -0
  228. package/test-projects/fastapi-app/.ai-dev/graph/symbol-graph.json +1724 -0
  229. package/test-projects/fastapi-app/.ai-dev/graph/symbol-references.json +51 -0
  230. package/test-projects/fastapi-app/.ai-dev/index-state.json +217 -0
  231. package/test-projects/fastapi-app/.ai-dev/index.db +0 -0
  232. package/test-projects/fastapi-app/.ai-dev/modules.json +16 -0
  233. package/test-projects/fastapi-app/.ai-dev/project.json +9 -0
  234. package/test-projects/{express-api/ai/repo-map.json → fastapi-app/.ai-dev/repo_map.json} +121 -114
  235. package/test-projects/fastapi-app/.ai-dev/repo_map.md +74 -0
  236. package/test-projects/fastapi-app/.ai-dev/schema.json +5 -0
  237. package/test-projects/fastapi-app/.ai-dev/summary.md +12 -0
  238. package/test-projects/fastapi-app/.ai-dev/symbols.json +1 -0
  239. package/test-projects/fastapi-app/.ai-dev/tech_stack.md +32 -0
  240. package/test-projects/fastapi-app/.ai-dev/tools.json +10 -0
  241. package/test-projects/fastapi-app/README.md +118 -0
  242. package/test-projects/fastapi-app/ai-context/ai_context.md +89 -0
  243. package/test-projects/fastapi-app/ai-context/ai_rules.md +47 -0
  244. package/test-projects/fastapi-app/ai-context/architecture.md +39 -0
  245. package/test-projects/fastapi-app/ai-context/cache.json +125 -0
  246. package/test-projects/fastapi-app/ai-context/conventions.md +51 -0
  247. package/test-projects/fastapi-app/ai-context/dependencies.json +244 -0
  248. package/test-projects/fastapi-app/ai-context/entrypoints.md +4 -0
  249. package/test-projects/fastapi-app/ai-context/files.json +154 -0
  250. package/test-projects/fastapi-app/ai-context/graph/knowledge-graph.json +15 -0
  251. package/test-projects/fastapi-app/ai-context/graph/module-graph.json +78 -0
  252. package/test-projects/fastapi-app/ai-context/graph/symbol-graph.json +1724 -0
  253. package/test-projects/fastapi-app/ai-context/graph/symbol-references.json +51 -0
  254. package/test-projects/fastapi-app/ai-context/index-state.json +217 -0
  255. package/test-projects/fastapi-app/ai-context/index.db +0 -0
  256. package/test-projects/fastapi-app/ai-context/modules.json +16 -0
  257. package/test-projects/fastapi-app/ai-context/project.json +9 -0
  258. package/test-projects/fastapi-app/ai-context/repo_map.json +298 -0
  259. package/test-projects/fastapi-app/ai-context/repo_map.md +74 -0
  260. package/test-projects/fastapi-app/ai-context/schema.json +5 -0
  261. package/test-projects/fastapi-app/ai-context/summary.md +12 -0
  262. package/test-projects/fastapi-app/ai-context/symbols.json +1 -0
  263. package/test-projects/fastapi-app/ai-context/tech_stack.md +32 -0
  264. package/test-projects/fastapi-app/ai-context/tools.json +10 -0
  265. package/test-projects/fastapi-app/app/database.py +21 -0
  266. package/test-projects/fastapi-app/app/dependencies.py +107 -0
  267. package/test-projects/fastapi-app/app/main.py +47 -0
  268. package/test-projects/fastapi-app/app/models.py +149 -0
  269. package/test-projects/fastapi-app/app/routers/auth.py +117 -0
  270. package/test-projects/fastapi-app/app/routers/posts.py +272 -0
  271. package/test-projects/fastapi-app/app/schemas.py +191 -0
  272. package/test-projects/fastapi-app/requirements.txt +10 -0
  273. package/test-projects/flask-app/.ai-dev/ai_context.md +94 -0
  274. package/test-projects/flask-app/.ai-dev/ai_rules.md +47 -0
  275. package/test-projects/flask-app/.ai-dev/architecture.md +49 -0
  276. package/test-projects/flask-app/.ai-dev/cache.json +157 -0
  277. package/test-projects/flask-app/.ai-dev/context/features/app.json +25 -0
  278. package/test-projects/flask-app/.ai-dev/context/flows/routes.json +14 -0
  279. package/test-projects/flask-app/.ai-dev/conventions.md +51 -0
  280. package/test-projects/flask-app/.ai-dev/dependencies.json +298 -0
  281. package/test-projects/flask-app/.ai-dev/entrypoints.md +4 -0
  282. package/test-projects/flask-app/.ai-dev/files.json +194 -0
  283. package/test-projects/flask-app/.ai-dev/graph/knowledge-graph.json +60 -0
  284. package/test-projects/flask-app/.ai-dev/graph/module-graph.json +95 -0
  285. package/test-projects/flask-app/.ai-dev/graph/symbol-graph.json +1448 -0
  286. package/test-projects/flask-app/.ai-dev/graph/symbol-references.json +45 -0
  287. package/test-projects/flask-app/.ai-dev/index-state.json +273 -0
  288. package/test-projects/flask-app/.ai-dev/index.db +0 -0
  289. package/test-projects/flask-app/.ai-dev/modules.json +21 -0
  290. package/test-projects/flask-app/.ai-dev/project.json +13 -0
  291. package/test-projects/flask-app/.ai-dev/repo_map.json +400 -0
  292. package/test-projects/flask-app/.ai-dev/repo_map.md +98 -0
  293. package/test-projects/flask-app/.ai-dev/schema.json +5 -0
  294. package/test-projects/flask-app/.ai-dev/summary.md +13 -0
  295. package/test-projects/flask-app/.ai-dev/symbols.json +1 -0
  296. package/test-projects/flask-app/.ai-dev/tech_stack.md +32 -0
  297. package/test-projects/flask-app/.ai-dev/tools.json +10 -0
  298. package/test-projects/flask-app/README.md +129 -0
  299. package/test-projects/flask-app/ai-context/ai_context.md +94 -0
  300. package/test-projects/flask-app/ai-context/ai_rules.md +47 -0
  301. package/test-projects/flask-app/ai-context/architecture.md +49 -0
  302. package/test-projects/flask-app/ai-context/cache.json +157 -0
  303. package/test-projects/flask-app/ai-context/context/features/app.json +25 -0
  304. package/test-projects/flask-app/ai-context/context/flows/routes.json +14 -0
  305. package/test-projects/flask-app/ai-context/conventions.md +51 -0
  306. package/test-projects/flask-app/ai-context/dependencies.json +298 -0
  307. package/test-projects/flask-app/ai-context/entrypoints.md +4 -0
  308. package/test-projects/flask-app/ai-context/files.json +194 -0
  309. package/test-projects/flask-app/ai-context/graph/knowledge-graph.json +60 -0
  310. package/test-projects/flask-app/ai-context/graph/module-graph.json +95 -0
  311. package/test-projects/flask-app/ai-context/graph/symbol-graph.json +1448 -0
  312. package/test-projects/flask-app/ai-context/graph/symbol-references.json +45 -0
  313. package/test-projects/flask-app/ai-context/index-state.json +273 -0
  314. package/test-projects/flask-app/ai-context/index.db +0 -0
  315. package/test-projects/flask-app/ai-context/modules.json +21 -0
  316. package/test-projects/flask-app/ai-context/project.json +13 -0
  317. package/test-projects/flask-app/ai-context/repo_map.json +400 -0
  318. package/test-projects/flask-app/ai-context/repo_map.md +98 -0
  319. package/test-projects/flask-app/ai-context/schema.json +5 -0
  320. package/test-projects/flask-app/ai-context/summary.md +13 -0
  321. package/test-projects/flask-app/ai-context/symbols.json +1 -0
  322. package/test-projects/flask-app/ai-context/tech_stack.md +32 -0
  323. package/test-projects/flask-app/ai-context/tools.json +10 -0
  324. package/test-projects/flask-app/app/__init__.py +46 -0
  325. package/test-projects/flask-app/app/api/__init__.py +7 -0
  326. package/test-projects/flask-app/app/api/routes.py +122 -0
  327. package/test-projects/flask-app/app/auth/__init__.py +7 -0
  328. package/test-projects/flask-app/app/auth/forms.py +52 -0
  329. package/test-projects/flask-app/app/auth/routes.py +68 -0
  330. package/test-projects/flask-app/app/blog/__init__.py +7 -0
  331. package/test-projects/flask-app/app/blog/forms.py +35 -0
  332. package/test-projects/flask-app/app/blog/routes.py +140 -0
  333. package/test-projects/flask-app/app/main/__init__.py +7 -0
  334. package/test-projects/flask-app/app/main/routes.py +88 -0
  335. package/test-projects/flask-app/app/models.py +177 -0
  336. package/test-projects/flask-app/config.py +64 -0
  337. package/test-projects/flask-app/requirements.txt +10 -0
  338. package/test-projects/laravel-app/.ai-dev/ai_context.md +97 -0
  339. package/test-projects/laravel-app/.ai-dev/ai_rules.md +47 -0
  340. package/test-projects/laravel-app/.ai-dev/architecture.md +60 -0
  341. package/test-projects/laravel-app/.ai-dev/cache.json +161 -0
  342. package/test-projects/laravel-app/.ai-dev/context/features/app.json +21 -0
  343. package/test-projects/laravel-app/.ai-dev/context/flows/.json +9 -0
  344. package/test-projects/laravel-app/.ai-dev/context/flows/category.json +12 -0
  345. package/test-projects/laravel-app/.ai-dev/context/flows/comment.json +12 -0
  346. package/test-projects/laravel-app/.ai-dev/context/flows/post.json +12 -0
  347. package/test-projects/laravel-app/.ai-dev/context/flows/unnamed.json +9 -0
  348. package/test-projects/laravel-app/.ai-dev/conventions.md +51 -0
  349. package/test-projects/laravel-app/.ai-dev/entrypoints.md +4 -0
  350. package/test-projects/laravel-app/.ai-dev/files.json +199 -0
  351. package/test-projects/laravel-app/.ai-dev/graph/knowledge-graph.json +98 -0
  352. package/test-projects/laravel-app/.ai-dev/graph/module-graph.json +30 -0
  353. package/test-projects/laravel-app/.ai-dev/graph/symbol-graph.json +5 -0
  354. package/test-projects/laravel-app/.ai-dev/graph/symbol-references.json +1 -0
  355. package/test-projects/laravel-app/.ai-dev/index-state.json +280 -0
  356. package/test-projects/laravel-app/.ai-dev/index.db +0 -0
  357. package/test-projects/laravel-app/.ai-dev/modules.json +29 -0
  358. package/test-projects/laravel-app/.ai-dev/project.json +17 -0
  359. package/test-projects/laravel-app/.ai-dev/repo_map.json +419 -0
  360. package/test-projects/laravel-app/.ai-dev/repo_map.md +106 -0
  361. package/test-projects/laravel-app/.ai-dev/schema.json +5 -0
  362. package/test-projects/laravel-app/.ai-dev/summary.md +15 -0
  363. package/test-projects/laravel-app/.ai-dev/symbols.json +1 -0
  364. package/test-projects/laravel-app/.ai-dev/tech_stack.md +34 -0
  365. package/test-projects/laravel-app/.ai-dev/tools.json +10 -0
  366. package/test-projects/laravel-app/README.md +107 -0
  367. package/test-projects/laravel-app/ai-context/ai_context.md +97 -0
  368. package/test-projects/laravel-app/ai-context/ai_rules.md +47 -0
  369. package/test-projects/laravel-app/ai-context/architecture.md +60 -0
  370. package/test-projects/laravel-app/ai-context/cache.json +161 -0
  371. package/test-projects/laravel-app/ai-context/context/features/app.json +21 -0
  372. package/test-projects/laravel-app/ai-context/context/flows/.json +9 -0
  373. package/test-projects/laravel-app/ai-context/context/flows/category.json +12 -0
  374. package/test-projects/laravel-app/ai-context/context/flows/comment.json +12 -0
  375. package/test-projects/laravel-app/ai-context/context/flows/post.json +12 -0
  376. package/test-projects/laravel-app/ai-context/context/flows/unnamed.json +9 -0
  377. package/test-projects/laravel-app/ai-context/conventions.md +51 -0
  378. package/test-projects/laravel-app/ai-context/dependencies.json +6 -0
  379. package/test-projects/laravel-app/ai-context/entrypoints.md +4 -0
  380. package/test-projects/laravel-app/ai-context/files.json +199 -0
  381. package/test-projects/laravel-app/ai-context/graph/knowledge-graph.json +98 -0
  382. package/test-projects/laravel-app/ai-context/graph/module-graph.json +30 -0
  383. package/test-projects/laravel-app/ai-context/graph/symbol-graph.json +5 -0
  384. package/test-projects/laravel-app/ai-context/graph/symbol-references.json +1 -0
  385. package/test-projects/laravel-app/ai-context/index-state.json +280 -0
  386. package/test-projects/laravel-app/ai-context/index.db +0 -0
  387. package/test-projects/laravel-app/ai-context/modules.json +29 -0
  388. package/test-projects/laravel-app/ai-context/project.json +17 -0
  389. package/test-projects/laravel-app/ai-context/repo_map.json +419 -0
  390. package/test-projects/laravel-app/ai-context/repo_map.md +106 -0
  391. package/test-projects/laravel-app/ai-context/schema.json +5 -0
  392. package/test-projects/laravel-app/ai-context/summary.md +15 -0
  393. package/test-projects/laravel-app/ai-context/symbols.json +1 -0
  394. package/test-projects/laravel-app/ai-context/tech_stack.md +34 -0
  395. package/test-projects/laravel-app/ai-context/tools.json +10 -0
  396. package/test-projects/laravel-app/app/Http/Controllers/Api/CategoryController.php +88 -0
  397. package/test-projects/laravel-app/app/Http/Controllers/Api/CommentController.php +56 -0
  398. package/test-projects/laravel-app/app/Http/Controllers/Api/PostController.php +174 -0
  399. package/test-projects/laravel-app/app/Http/Controllers/Controller.php +12 -0
  400. package/test-projects/laravel-app/app/Models/Category.php +34 -0
  401. package/test-projects/laravel-app/app/Models/Comment.php +51 -0
  402. package/test-projects/laravel-app/app/Models/Post.php +108 -0
  403. package/test-projects/laravel-app/app/Models/User.php +85 -0
  404. package/test-projects/laravel-app/bootstrap/app.php +25 -0
  405. package/test-projects/laravel-app/composer.json +35 -0
  406. package/test-projects/laravel-app/routes/api.php +40 -0
  407. package/test-projects/nestjs-backend/{ai → .ai-dev}/ai_context.md +7 -6
  408. package/test-projects/nestjs-backend/{ai → .ai-dev}/ai_rules.md +4 -4
  409. package/test-projects/nestjs-backend/{ai → .ai-dev}/architecture.md +6 -0
  410. package/test-projects/nestjs-backend/{ai → .ai-dev}/cache.json +65 -33
  411. package/test-projects/nestjs-backend/.ai-dev/context/flows/auth.controller.json +14 -0
  412. package/test-projects/nestjs-backend/.ai-dev/context/flows/users.controller.json +14 -0
  413. package/test-projects/nestjs-backend/.ai-dev/context/flows/users.json +10 -0
  414. package/test-projects/nestjs-backend/.ai-dev/conventions.md +52 -0
  415. package/test-projects/nestjs-backend/{ai → .ai-dev}/files.json +25 -0
  416. package/test-projects/nestjs-backend/.ai-dev/graph/knowledge-graph.json +132 -0
  417. package/test-projects/nestjs-backend/{ai → .ai-dev}/index-state.json +122 -87
  418. package/{ai → test-projects/nestjs-backend/.ai-dev}/index.db +0 -0
  419. package/test-projects/nestjs-backend/{ai → .ai-dev}/project.json +6 -2
  420. package/test-projects/nestjs-backend/{ai/repo-map.json → .ai-dev/repo_map.json} +106 -2
  421. package/test-projects/nestjs-backend/.ai-dev/repo_map.md +104 -0
  422. package/test-projects/nestjs-backend/.ai-dev/schema.json +5 -0
  423. package/test-projects/nestjs-backend/{ai → .ai-dev}/summary.md +4 -2
  424. package/test-projects/nestjs-backend/.ai-dev/symbols.json +1 -0
  425. package/test-projects/nestjs-backend/{ai → .ai-dev}/tech_stack.md +2 -1
  426. package/test-projects/nestjs-backend/.ai-dev/tools.json +10 -0
  427. package/test-projects/nestjs-backend/ai-context/ai_context.md +111 -0
  428. package/test-projects/nestjs-backend/ai-context/ai_rules.md +52 -0
  429. package/test-projects/nestjs-backend/ai-context/architecture.md +49 -0
  430. package/test-projects/nestjs-backend/ai-context/cache.json +169 -0
  431. package/test-projects/nestjs-backend/ai-context/context/features/src.json +23 -0
  432. package/test-projects/nestjs-backend/ai-context/context/flows/auth.controller.json +14 -0
  433. package/test-projects/nestjs-backend/ai-context/context/flows/auth.json +10 -0
  434. package/test-projects/nestjs-backend/ai-context/context/flows/users..json +10 -0
  435. package/test-projects/nestjs-backend/ai-context/context/flows/users.controller.json +14 -0
  436. package/test-projects/nestjs-backend/ai-context/context/flows/users.json +10 -0
  437. package/test-projects/nestjs-backend/ai-context/conventions.md +52 -0
  438. package/test-projects/nestjs-backend/ai-context/dependencies.json +152 -0
  439. package/test-projects/nestjs-backend/ai-context/entrypoints.md +18 -0
  440. package/test-projects/nestjs-backend/ai-context/files.json +209 -0
  441. package/test-projects/nestjs-backend/ai-context/graph/knowledge-graph.json +132 -0
  442. package/test-projects/nestjs-backend/ai-context/graph/module-graph.json +29 -0
  443. package/test-projects/nestjs-backend/ai-context/graph/symbol-graph.json +304 -0
  444. package/test-projects/nestjs-backend/ai-context/graph/symbol-references.json +5 -0
  445. package/test-projects/nestjs-backend/ai-context/index-state.json +294 -0
  446. package/test-projects/nestjs-backend/ai-context/index.db +0 -0
  447. package/test-projects/nestjs-backend/ai-context/modules.json +19 -0
  448. package/test-projects/nestjs-backend/ai-context/project.json +18 -0
  449. package/test-projects/nestjs-backend/ai-context/repo_map.json +427 -0
  450. package/test-projects/nestjs-backend/ai-context/repo_map.md +104 -0
  451. package/test-projects/nestjs-backend/ai-context/schema.json +5 -0
  452. package/test-projects/nestjs-backend/ai-context/summary.md +13 -0
  453. package/test-projects/nestjs-backend/ai-context/symbols.json +1 -0
  454. package/test-projects/nestjs-backend/ai-context/tech_stack.md +38 -0
  455. package/test-projects/nestjs-backend/ai-context/tools.json +10 -0
  456. package/test-projects/python-cli/{ai → .ai-dev}/ai_context.md +5 -4
  457. package/test-projects/python-cli/{ai → .ai-dev}/ai_rules.md +2 -2
  458. package/test-projects/python-cli/{ai → .ai-dev}/architecture.md +6 -0
  459. package/test-projects/python-cli/{ai → .ai-dev}/cache.json +53 -33
  460. package/test-projects/python-cli/.ai-dev/entrypoints.md +4 -0
  461. package/test-projects/python-cli/{ai → .ai-dev}/files.json +10 -0
  462. package/test-projects/python-cli/{ai → .ai-dev}/graph/knowledge-graph.json +1 -1
  463. package/test-projects/python-cli/{ai → .ai-dev}/index-state.json +97 -83
  464. package/test-projects/python-cli/{ai → .ai-dev}/index.db +0 -0
  465. package/test-projects/python-cli/{ai → .ai-dev}/project.json +1 -1
  466. package/test-projects/python-cli/{ai/repo-map.json → .ai-dev/repo_map.json} +79 -2
  467. package/test-projects/python-cli/.ai-dev/repo_map.md +93 -0
  468. package/test-projects/python-cli/.ai-dev/schema.json +5 -0
  469. package/test-projects/python-cli/{ai → .ai-dev}/summary.md +4 -1
  470. package/test-projects/python-cli/.ai-dev/symbols.json +1 -0
  471. package/test-projects/python-cli/.ai-dev/tech_stack.md +32 -0
  472. package/test-projects/python-cli/.ai-dev/tools.json +10 -0
  473. package/test-projects/python-cli/ai-context/ai_context.md +95 -0
  474. package/test-projects/python-cli/ai-context/ai_rules.md +47 -0
  475. package/test-projects/python-cli/ai-context/architecture.md +55 -0
  476. package/test-projects/python-cli/ai-context/cache.json +149 -0
  477. package/test-projects/python-cli/ai-context/context/features/cli.json +16 -0
  478. package/test-projects/python-cli/ai-context/context/flows/list_.json +9 -0
  479. package/test-projects/python-cli/ai-context/context/flows/remove_.json +9 -0
  480. package/test-projects/python-cli/ai-context/conventions.md +51 -0
  481. package/test-projects/python-cli/ai-context/dependencies.json +66 -0
  482. package/test-projects/python-cli/ai-context/entrypoints.md +4 -0
  483. package/test-projects/python-cli/ai-context/files.json +184 -0
  484. package/test-projects/python-cli/ai-context/graph/knowledge-graph.json +83 -0
  485. package/test-projects/python-cli/ai-context/graph/module-graph.json +31 -0
  486. package/test-projects/python-cli/ai-context/graph/symbol-graph.json +358 -0
  487. package/test-projects/python-cli/ai-context/graph/symbol-references.json +11 -0
  488. package/test-projects/python-cli/ai-context/index-state.json +259 -0
  489. package/test-projects/{nestjs-backend/ai → python-cli/ai-context}/index.db +0 -0
  490. package/test-projects/python-cli/ai-context/modules.json +21 -0
  491. package/test-projects/python-cli/ai-context/project.json +15 -0
  492. package/test-projects/python-cli/ai-context/repo_map.json +367 -0
  493. package/test-projects/python-cli/ai-context/repo_map.md +93 -0
  494. package/test-projects/python-cli/ai-context/schema.json +5 -0
  495. package/test-projects/python-cli/ai-context/summary.md +14 -0
  496. package/test-projects/python-cli/ai-context/symbols.json +1 -0
  497. package/test-projects/python-cli/ai-context/tech_stack.md +32 -0
  498. package/test-projects/python-cli/ai-context/tools.json +10 -0
  499. package/test-projects/rails-app/.ai-dev/ai_context.md +94 -0
  500. package/test-projects/rails-app/.ai-dev/ai_rules.md +47 -0
  501. package/test-projects/rails-app/.ai-dev/architecture.md +49 -0
  502. package/test-projects/rails-app/.ai-dev/cache.json +193 -0
  503. package/test-projects/rails-app/.ai-dev/context/features/app.json +24 -0
  504. package/test-projects/rails-app/.ai-dev/context/features/config.json +13 -0
  505. package/test-projects/rails-app/.ai-dev/context/flows/application.json +9 -0
  506. package/test-projects/rails-app/.ai-dev/context/flows/application_.json +9 -0
  507. package/test-projects/rails-app/.ai-dev/context/flows/comments.json +11 -0
  508. package/test-projects/rails-app/.ai-dev/context/flows/comments_.json +11 -0
  509. package/test-projects/rails-app/.ai-dev/context/flows/posts.json +11 -0
  510. package/test-projects/rails-app/.ai-dev/context/flows/posts_.json +11 -0
  511. package/test-projects/rails-app/.ai-dev/context/flows/routes.json +9 -0
  512. package/test-projects/rails-app/.ai-dev/context/flows/users.json +11 -0
  513. package/test-projects/rails-app/.ai-dev/context/flows/users_.json +11 -0
  514. package/test-projects/rails-app/.ai-dev/conventions.md +51 -0
  515. package/test-projects/rails-app/.ai-dev/dependencies.json +6 -0
  516. package/test-projects/rails-app/.ai-dev/entrypoints.md +4 -0
  517. package/test-projects/rails-app/.ai-dev/files.json +239 -0
  518. package/test-projects/rails-app/.ai-dev/graph/knowledge-graph.json +130 -0
  519. package/test-projects/rails-app/.ai-dev/graph/module-graph.json +27 -0
  520. package/test-projects/rails-app/.ai-dev/graph/symbol-graph.json +5 -0
  521. package/test-projects/rails-app/.ai-dev/graph/symbol-references.json +1 -0
  522. package/test-projects/rails-app/.ai-dev/index-state.json +336 -0
  523. package/test-projects/rails-app/.ai-dev/index.db +0 -0
  524. package/test-projects/rails-app/.ai-dev/modules.json +26 -0
  525. package/test-projects/rails-app/.ai-dev/project.json +22 -0
  526. package/test-projects/rails-app/.ai-dev/repo_map.json +486 -0
  527. package/test-projects/rails-app/.ai-dev/repo_map.md +117 -0
  528. package/test-projects/rails-app/.ai-dev/schema.json +5 -0
  529. package/test-projects/rails-app/.ai-dev/summary.md +13 -0
  530. package/test-projects/rails-app/.ai-dev/symbols.json +1 -0
  531. package/test-projects/rails-app/.ai-dev/tech_stack.md +32 -0
  532. package/test-projects/rails-app/.ai-dev/tools.json +10 -0
  533. package/test-projects/rails-app/Gemfile +38 -0
  534. package/test-projects/rails-app/README.md +140 -0
  535. package/test-projects/rails-app/Rakefile +8 -0
  536. package/test-projects/rails-app/ai-context/ai_context.md +94 -0
  537. package/test-projects/rails-app/ai-context/ai_rules.md +47 -0
  538. package/test-projects/rails-app/ai-context/architecture.md +49 -0
  539. package/test-projects/rails-app/ai-context/cache.json +193 -0
  540. package/test-projects/rails-app/ai-context/context/features/app.json +24 -0
  541. package/test-projects/rails-app/ai-context/context/features/config.json +13 -0
  542. package/test-projects/rails-app/ai-context/context/flows/application.json +9 -0
  543. package/test-projects/rails-app/ai-context/context/flows/application_.json +9 -0
  544. package/test-projects/rails-app/ai-context/context/flows/comments.json +11 -0
  545. package/test-projects/rails-app/ai-context/context/flows/comments_.json +11 -0
  546. package/test-projects/rails-app/ai-context/context/flows/posts.json +11 -0
  547. package/test-projects/rails-app/ai-context/context/flows/posts_.json +11 -0
  548. package/test-projects/rails-app/ai-context/context/flows/routes.json +9 -0
  549. package/test-projects/rails-app/ai-context/context/flows/users.json +11 -0
  550. package/test-projects/rails-app/ai-context/context/flows/users_.json +11 -0
  551. package/test-projects/rails-app/ai-context/conventions.md +51 -0
  552. package/test-projects/rails-app/ai-context/dependencies.json +6 -0
  553. package/test-projects/rails-app/ai-context/entrypoints.md +4 -0
  554. package/test-projects/rails-app/ai-context/files.json +239 -0
  555. package/test-projects/rails-app/ai-context/graph/knowledge-graph.json +130 -0
  556. package/test-projects/rails-app/ai-context/graph/module-graph.json +27 -0
  557. package/test-projects/rails-app/ai-context/graph/symbol-graph.json +5 -0
  558. package/test-projects/rails-app/ai-context/graph/symbol-references.json +1 -0
  559. package/test-projects/rails-app/ai-context/index-state.json +336 -0
  560. package/test-projects/rails-app/ai-context/index.db +0 -0
  561. package/test-projects/rails-app/ai-context/modules.json +26 -0
  562. package/test-projects/rails-app/ai-context/project.json +22 -0
  563. package/test-projects/rails-app/ai-context/repo_map.json +486 -0
  564. package/test-projects/rails-app/ai-context/repo_map.md +117 -0
  565. package/test-projects/rails-app/ai-context/schema.json +5 -0
  566. package/test-projects/rails-app/ai-context/summary.md +13 -0
  567. package/test-projects/rails-app/ai-context/symbols.json +1 -0
  568. package/test-projects/rails-app/ai-context/tech_stack.md +32 -0
  569. package/test-projects/rails-app/ai-context/tools.json +10 -0
  570. package/test-projects/rails-app/app/controllers/api/comments_controller.rb +75 -0
  571. package/test-projects/rails-app/app/controllers/api/posts_controller.rb +68 -0
  572. package/test-projects/rails-app/app/controllers/api/users_controller.rb +54 -0
  573. package/test-projects/rails-app/app/controllers/application_controller.rb +31 -0
  574. package/test-projects/rails-app/app/models/comment.rb +34 -0
  575. package/test-projects/rails-app/app/models/post.rb +36 -0
  576. package/test-projects/rails-app/app/models/user.rb +28 -0
  577. package/test-projects/rails-app/app/services/post_service.rb +92 -0
  578. package/test-projects/rails-app/app/services/user_service.rb +76 -0
  579. package/test-projects/rails-app/config/application.rb +27 -0
  580. package/test-projects/rails-app/config/environment.rb +7 -0
  581. package/test-projects/rails-app/config/routes.rb +15 -0
  582. package/test-projects/react-app/{ai → .ai-dev}/ai_context.md +5 -4
  583. package/test-projects/react-app/{ai → .ai-dev}/ai_rules.md +2 -2
  584. package/test-projects/react-app/{ai → .ai-dev}/architecture.md +6 -0
  585. package/test-projects/react-app/{ai → .ai-dev}/cache.json +57 -33
  586. package/test-projects/react-app/.ai-dev/context/flows/UsersPage.json +14 -0
  587. package/test-projects/react-app/.ai-dev/entrypoints.md +4 -0
  588. package/test-projects/react-app/{ai → .ai-dev}/files.json +15 -0
  589. package/test-projects/react-app/{ai → .ai-dev}/graph/knowledge-graph.json +32 -3
  590. package/test-projects/react-app/{ai → .ai-dev}/index-state.json +105 -84
  591. package/test-projects/react-app/{ai → .ai-dev}/index.db +0 -0
  592. package/test-projects/react-app/{ai → .ai-dev}/project.json +2 -1
  593. package/test-projects/react-app/{ai/repo-map.json → .ai-dev/repo_map.json} +88 -2
  594. package/test-projects/react-app/.ai-dev/repo_map.md +94 -0
  595. package/test-projects/react-app/.ai-dev/schema.json +5 -0
  596. package/test-projects/react-app/{ai → .ai-dev}/summary.md +4 -2
  597. package/test-projects/react-app/.ai-dev/symbols.json +1 -0
  598. package/test-projects/react-app/{ai → .ai-dev}/tech_stack.md +2 -1
  599. package/test-projects/react-app/.ai-dev/tools.json +10 -0
  600. package/test-projects/react-app/ai-context/ai_context.md +96 -0
  601. package/test-projects/react-app/ai-context/ai_rules.md +49 -0
  602. package/test-projects/react-app/ai-context/architecture.md +39 -0
  603. package/test-projects/react-app/ai-context/cache.json +153 -0
  604. package/test-projects/react-app/ai-context/context/features/src.json +18 -0
  605. package/test-projects/react-app/ai-context/context/flows/UsersPage.json +14 -0
  606. package/test-projects/react-app/ai-context/context/flows/dashboard.json +9 -0
  607. package/test-projects/react-app/ai-context/context/flows/login.json +9 -0
  608. package/test-projects/react-app/ai-context/context/flows/users.json +9 -0
  609. package/test-projects/{nestjs-backend/ai → react-app/ai-context}/conventions.md +2 -2
  610. package/test-projects/react-app/ai-context/dependencies.json +128 -0
  611. package/test-projects/react-app/ai-context/entrypoints.md +4 -0
  612. package/test-projects/react-app/ai-context/files.json +189 -0
  613. package/test-projects/react-app/ai-context/graph/knowledge-graph.json +112 -0
  614. package/test-projects/react-app/ai-context/graph/module-graph.json +31 -0
  615. package/test-projects/react-app/ai-context/graph/symbol-graph.json +868 -0
  616. package/test-projects/react-app/ai-context/graph/symbol-references.json +31 -0
  617. package/test-projects/react-app/ai-context/index-state.json +266 -0
  618. package/test-projects/react-app/ai-context/index.db +0 -0
  619. package/test-projects/react-app/ai-context/modules.json +17 -0
  620. package/test-projects/react-app/ai-context/project.json +16 -0
  621. package/test-projects/react-app/ai-context/repo_map.json +391 -0
  622. package/test-projects/react-app/ai-context/repo_map.md +94 -0
  623. package/test-projects/react-app/ai-context/schema.json +5 -0
  624. package/test-projects/react-app/ai-context/summary.md +13 -0
  625. package/test-projects/react-app/ai-context/symbols.json +1 -0
  626. package/test-projects/react-app/ai-context/tech_stack.md +39 -0
  627. package/test-projects/react-app/ai-context/tools.json +10 -0
  628. package/test-projects/salesforce-cli/{ai → .ai-dev}/ai_context.md +5 -4
  629. package/test-projects/salesforce-cli/{ai → .ai-dev}/ai_rules.md +2 -2
  630. package/test-projects/salesforce-cli/{ai → .ai-dev}/architecture.md +6 -0
  631. package/test-projects/salesforce-cli/{ai → .ai-dev}/cache.json +52 -32
  632. package/test-projects/salesforce-cli/.ai-dev/conventions.md +51 -0
  633. package/test-projects/salesforce-cli/.ai-dev/dependencies.json +6 -0
  634. package/test-projects/salesforce-cli/.ai-dev/entrypoints.md +4 -0
  635. package/test-projects/salesforce-cli/{ai → .ai-dev}/files.json +10 -0
  636. package/test-projects/salesforce-cli/{ai → .ai-dev}/graph/knowledge-graph.json +1 -1
  637. package/test-projects/salesforce-cli/.ai-dev/graph/symbol-references.json +1 -0
  638. package/test-projects/salesforce-cli/{ai → .ai-dev}/index-state.json +90 -76
  639. package/test-projects/salesforce-cli/{ai → .ai-dev}/index.db +0 -0
  640. package/test-projects/salesforce-cli/{ai → .ai-dev}/project.json +1 -1
  641. package/test-projects/salesforce-cli/{ai/repo-map.json → .ai-dev/repo_map.json} +79 -2
  642. package/test-projects/salesforce-cli/.ai-dev/repo_map.md +80 -0
  643. package/test-projects/salesforce-cli/.ai-dev/schema.json +5 -0
  644. package/test-projects/salesforce-cli/{ai → .ai-dev}/summary.md +4 -2
  645. package/test-projects/salesforce-cli/.ai-dev/symbols.json +1 -0
  646. package/test-projects/salesforce-cli/{ai → .ai-dev}/tech_stack.md +2 -1
  647. package/test-projects/salesforce-cli/.ai-dev/tools.json +10 -0
  648. package/test-projects/salesforce-cli/ai-context/ai_context.md +89 -0
  649. package/test-projects/salesforce-cli/ai-context/ai_rules.md +47 -0
  650. package/test-projects/salesforce-cli/ai-context/architecture.md +39 -0
  651. package/test-projects/salesforce-cli/ai-context/cache.json +125 -0
  652. package/test-projects/salesforce-cli/ai-context/context/features/force-app.json +14 -0
  653. package/test-projects/salesforce-cli/ai-context/context/flows/account.json +9 -0
  654. package/test-projects/salesforce-cli/ai-context/context/flows/opportunity.json +9 -0
  655. package/test-projects/salesforce-cli/ai-context/conventions.md +51 -0
  656. package/test-projects/salesforce-cli/ai-context/dependencies.json +6 -0
  657. package/test-projects/salesforce-cli/ai-context/entrypoints.md +4 -0
  658. package/test-projects/{express-api/ai → salesforce-cli/ai-context}/files.json +27 -42
  659. package/test-projects/salesforce-cli/ai-context/graph/knowledge-graph.json +64 -0
  660. package/test-projects/salesforce-cli/ai-context/graph/module-graph.json +13 -0
  661. package/test-projects/salesforce-cli/ai-context/graph/symbol-graph.json +148 -0
  662. package/test-projects/salesforce-cli/ai-context/graph/symbol-references.json +1 -0
  663. package/test-projects/salesforce-cli/ai-context/index-state.json +217 -0
  664. package/test-projects/{express-api/ai → salesforce-cli/ai-context}/index.db +0 -0
  665. package/test-projects/salesforce-cli/ai-context/modules.json +12 -0
  666. package/test-projects/salesforce-cli/ai-context/project.json +14 -0
  667. package/test-projects/salesforce-cli/ai-context/repo_map.json +328 -0
  668. package/test-projects/salesforce-cli/ai-context/repo_map.md +80 -0
  669. package/test-projects/salesforce-cli/ai-context/schema.json +5 -0
  670. package/test-projects/salesforce-cli/ai-context/summary.md +13 -0
  671. package/test-projects/salesforce-cli/ai-context/symbols.json +1 -0
  672. package/test-projects/{python-cli/ai → salesforce-cli/ai-context}/tech_stack.md +3 -2
  673. package/test-projects/salesforce-cli/ai-context/tools.json +10 -0
  674. package/test-projects/spring-boot-app/.ai-dev/ai_context.md +91 -0
  675. package/test-projects/spring-boot-app/.ai-dev/ai_rules.md +48 -0
  676. package/test-projects/spring-boot-app/.ai-dev/architecture.md +39 -0
  677. package/test-projects/spring-boot-app/.ai-dev/cache.json +173 -0
  678. package/test-projects/spring-boot-app/.ai-dev/context/features/src.json +26 -0
  679. package/test-projects/spring-boot-app/.ai-dev/context/flows/PostController.json +19 -0
  680. package/test-projects/spring-boot-app/.ai-dev/context/flows/UserController.json +19 -0
  681. package/test-projects/spring-boot-app/.ai-dev/context/flows/comment.json +11 -0
  682. package/test-projects/spring-boot-app/.ai-dev/context/flows/post.json +14 -0
  683. package/test-projects/spring-boot-app/.ai-dev/context/flows/user.json +14 -0
  684. package/test-projects/spring-boot-app/.ai-dev/conventions.md +52 -0
  685. package/test-projects/spring-boot-app/.ai-dev/dependencies.json +326 -0
  686. package/test-projects/spring-boot-app/.ai-dev/entrypoints.md +4 -0
  687. package/test-projects/spring-boot-app/.ai-dev/files.json +214 -0
  688. package/test-projects/spring-boot-app/.ai-dev/graph/knowledge-graph.json +231 -0
  689. package/test-projects/spring-boot-app/.ai-dev/graph/module-graph.json +22 -0
  690. package/test-projects/spring-boot-app/.ai-dev/graph/symbol-graph.json +794 -0
  691. package/test-projects/spring-boot-app/.ai-dev/graph/symbol-references.json +70 -0
  692. package/test-projects/spring-boot-app/.ai-dev/index-state.json +301 -0
  693. package/test-projects/spring-boot-app/.ai-dev/index.db +0 -0
  694. package/test-projects/spring-boot-app/.ai-dev/modules.json +21 -0
  695. package/test-projects/spring-boot-app/.ai-dev/project.json +17 -0
  696. package/test-projects/spring-boot-app/.ai-dev/repo_map.json +461 -0
  697. package/test-projects/spring-boot-app/.ai-dev/repo_map.md +109 -0
  698. package/test-projects/spring-boot-app/.ai-dev/schema.json +5 -0
  699. package/test-projects/spring-boot-app/.ai-dev/summary.md +12 -0
  700. package/test-projects/spring-boot-app/.ai-dev/symbols.json +1 -0
  701. package/test-projects/spring-boot-app/.ai-dev/tech_stack.md +32 -0
  702. package/test-projects/spring-boot-app/.ai-dev/tools.json +10 -0
  703. package/test-projects/spring-boot-app/.classpath +57 -0
  704. package/test-projects/spring-boot-app/.factorypath +69 -0
  705. package/test-projects/spring-boot-app/.project +34 -0
  706. package/test-projects/spring-boot-app/.settings/org.eclipse.core.resources.prefs +4 -0
  707. package/test-projects/spring-boot-app/.settings/org.eclipse.jdt.apt.core.prefs +4 -0
  708. package/test-projects/spring-boot-app/.settings/org.eclipse.jdt.core.prefs +10 -0
  709. package/test-projects/spring-boot-app/.settings/org.eclipse.m2e.core.prefs +4 -0
  710. package/test-projects/spring-boot-app/README.md +122 -0
  711. package/test-projects/spring-boot-app/ai-context/ai_context.md +91 -0
  712. package/test-projects/spring-boot-app/ai-context/ai_rules.md +48 -0
  713. package/test-projects/spring-boot-app/ai-context/architecture.md +39 -0
  714. package/test-projects/spring-boot-app/ai-context/cache.json +173 -0
  715. package/test-projects/spring-boot-app/ai-context/context/features/src.json +26 -0
  716. package/test-projects/spring-boot-app/ai-context/context/flows/PostController.json +19 -0
  717. package/test-projects/spring-boot-app/ai-context/context/flows/UserController.json +19 -0
  718. package/test-projects/spring-boot-app/ai-context/context/flows/comment.json +11 -0
  719. package/test-projects/spring-boot-app/ai-context/context/flows/post.json +14 -0
  720. package/test-projects/spring-boot-app/ai-context/context/flows/user.json +14 -0
  721. package/test-projects/spring-boot-app/ai-context/conventions.md +52 -0
  722. package/test-projects/spring-boot-app/ai-context/dependencies.json +326 -0
  723. package/test-projects/spring-boot-app/ai-context/entrypoints.md +4 -0
  724. package/test-projects/spring-boot-app/ai-context/files.json +214 -0
  725. package/test-projects/spring-boot-app/ai-context/graph/knowledge-graph.json +231 -0
  726. package/test-projects/spring-boot-app/ai-context/graph/module-graph.json +22 -0
  727. package/test-projects/spring-boot-app/ai-context/graph/symbol-graph.json +794 -0
  728. package/test-projects/spring-boot-app/ai-context/graph/symbol-references.json +70 -0
  729. package/test-projects/spring-boot-app/ai-context/index-state.json +301 -0
  730. package/test-projects/spring-boot-app/ai-context/index.db +0 -0
  731. package/test-projects/spring-boot-app/ai-context/modules.json +21 -0
  732. package/test-projects/spring-boot-app/ai-context/project.json +17 -0
  733. package/test-projects/spring-boot-app/ai-context/repo_map.json +461 -0
  734. package/test-projects/spring-boot-app/ai-context/repo_map.md +109 -0
  735. package/test-projects/spring-boot-app/ai-context/schema.json +5 -0
  736. package/test-projects/spring-boot-app/ai-context/summary.md +12 -0
  737. package/test-projects/spring-boot-app/ai-context/symbols.json +1 -0
  738. package/test-projects/spring-boot-app/ai-context/tech_stack.md +32 -0
  739. package/test-projects/spring-boot-app/ai-context/tools.json +10 -0
  740. package/test-projects/spring-boot-app/pom.xml +79 -0
  741. package/test-projects/spring-boot-app/src/main/java/com/example/demo/DemoApplication.java +12 -0
  742. package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/CommentController.java +89 -0
  743. package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/PostController.java +92 -0
  744. package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/UserController.java +84 -0
  745. package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/Comment.java +38 -0
  746. package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/Post.java +56 -0
  747. package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/User.java +44 -0
  748. package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/CommentRepository.java +21 -0
  749. package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/PostRepository.java +18 -0
  750. package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/UserRepository.java +15 -0
  751. package/test-projects/spring-boot-app/src/main/java/com/example/demo/services/PostService.java +83 -0
  752. package/test-projects/spring-boot-app/src/main/java/com/example/demo/services/UserService.java +62 -0
  753. package/test-projects/spring-boot-app/src/main/resources/application.properties +22 -0
  754. package/test-projects/spring-boot-app/target/classes/com/example/demo/DemoApplication.class +0 -0
  755. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController$CommentCreateRequest.class +0 -0
  756. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController$CommentUpdateRequest.class +0 -0
  757. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController.class +0 -0
  758. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController$PostCreateRequest.class +0 -0
  759. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController$PostUpdateRequest.class +0 -0
  760. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController.class +0 -0
  761. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController$UserCreateRequest.class +0 -0
  762. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController$UserUpdateRequest.class +0 -0
  763. package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController.class +0 -0
  764. package/test-projects/spring-boot-app/target/classes/com/example/demo/models/Comment.class +0 -0
  765. package/test-projects/spring-boot-app/target/classes/com/example/demo/models/Post.class +0 -0
  766. package/test-projects/spring-boot-app/target/classes/com/example/demo/models/User.class +0 -0
  767. package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/CommentRepository.class +0 -0
  768. package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/PostRepository.class +0 -0
  769. package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/UserRepository.class +0 -0
  770. package/test-projects/spring-boot-app/target/classes/com/example/demo/services/PostService.class +0 -0
  771. package/test-projects/spring-boot-app/target/classes/com/example/demo/services/UserService.class +0 -0
  772. package/test_adapters.mjs +87 -0
  773. package/tests/e2e/README.md +20 -20
  774. package/tests/phase2-fixes.test.ts +200 -0
  775. package/ANALISIS_MEJORAS.md +0 -327
  776. package/TEST_RESULTS.md +0 -198
  777. package/TEST_RESULTS_COMPARATIVE.md +0 -159
  778. package/TEST_RESULTS_COMPLETE.md +0 -127
  779. package/TEST_RESULTS_COMPREHENSIVE.md +0 -208
  780. package/ai/cache.json +0 -1109
  781. package/ai/context/features/test-projects.json +0 -56
  782. package/ai/context/flows/add_.json +0 -9
  783. package/ai/context/flows/auth..json +0 -10
  784. package/ai/context/flows/list_.json +0 -9
  785. package/ai/context/flows/remove_.json +0 -9
  786. package/ai/context/flows/user.json +0 -14
  787. package/ai/context/flows/users..json +0 -10
  788. package/ai/dependencies.json +0 -485
  789. package/ai/files.json +0 -2029
  790. package/ai/git/recent-features.json +0 -3
  791. package/ai/git/recent-flows.json +0 -3
  792. package/ai/graph/module-graph.json +0 -389
  793. package/ai/graph/symbol-graph.json +0 -85206
  794. package/ai/graph/symbol-references.json +0 -2707
  795. package/ai/hierarchy.json +0 -7
  796. package/ai/index-state.json +0 -1939
  797. package/ai/modules.json +0 -299
  798. package/ai/repo-map.json +0 -2867
  799. package/test-projects/express-api/ai/cache.json +0 -125
  800. package/test-projects/express-api/ai/graph/knowledge-graph.json +0 -98
  801. package/test-projects/express-api/ai/graph/module-graph.json +0 -44
  802. package/test-projects/express-api/ai/graph/symbol-graph.json +0 -882
  803. package/test-projects/express-api/ai/graph/symbol-references.json +0 -51
  804. package/test-projects/express-api/ai/index-state.json +0 -238
  805. package/test-projects/express-api/ai/symbols.json +0 -1174
  806. package/test-projects/nestjs-backend/ai/graph/knowledge-graph.json +0 -74
  807. package/test-projects/nestjs-backend/ai/repo_map.json +0 -141
  808. package/test-projects/nestjs-backend/ai/repo_map.md +0 -39
  809. package/test-projects/nestjs-backend/ai/symbols.json +0 -527
  810. package/test-projects/python-cli/ai/context/flows/add_.json +0 -9
  811. package/test-projects/python-cli/ai/repo_map.json +0 -99
  812. package/test-projects/python-cli/ai/repo_map.md +0 -32
  813. package/test-projects/python-cli/ai/symbols.json +0 -475
  814. package/test-projects/react-app/ai/repo_map.json +0 -114
  815. package/test-projects/react-app/ai/repo_map.md +0 -31
  816. package/test-projects/react-app/ai/schema.json +0 -5
  817. package/test-projects/react-app/ai/symbols.json +0 -985
  818. package/test-projects/salesforce-cli/ai/repo_map.json +0 -69
  819. package/test-projects/salesforce-cli/ai/repo_map.md +0 -21
  820. package/test-projects/salesforce-cli/ai/schema.json +0 -5
  821. package/test-projects/salesforce-cli/ai/symbols.json +0 -245
  822. /package/{ai → .ai-dev}/ccp/jira-123/context.json +0 -0
  823. /package/{ai → .ai-dev}/context/features/commands.json +0 -0
  824. /package/{ai → .ai-dev}/context/features/src.json +0 -0
  825. /package/{ai → .ai-dev}/context/flows/account.json +0 -0
  826. /package/{ai → .ai-dev}/context/flows/ai-first.json +0 -0
  827. /package/{ai → .ai-dev}/context/flows/dashboard.json +0 -0
  828. /package/{ai → .ai-dev}/context/flows/doctor.json +0 -0
  829. /package/{ai → .ai-dev}/context/flows/explore.json +0 -0
  830. /package/{ai → .ai-dev}/context/flows/login.json +0 -0
  831. /package/{ai → .ai-dev}/context/flows/opportunity.json +0 -0
  832. /package/{ai → .ai-dev}/context/flows/users.json +0 -0
  833. /package/{ai → .ai-dev}/context/repo.json +0 -0
  834. /package/{ai → .ai-dev}/context/utils.json +0 -0
  835. /package/{ai → .ai-dev}/conventions.md +0 -0
  836. /package/{ai → .ai-dev}/embeddings.json +0 -0
  837. /package/{ai → .ai-dev}/entrypoints.md +0 -0
  838. /package/{ai/symbols.json → .ai-dev/git/recent-features.json} +0 -0
  839. /package/{ai → .ai-dev}/tools.json +0 -0
  840. /package/{test-projects/express-api/ai → ai-context}/tools.json +0 -0
  841. /package/test-projects/{salesforce-cli/ai → django-app/.ai-dev}/conventions.md +0 -0
  842. /package/test-projects/{python-cli/ai → django-app/.ai-dev}/entrypoints.md +0 -0
  843. /package/test-projects/{salesforce-cli/ai → django-app/.ai-dev}/graph/symbol-references.json +0 -0
  844. /package/test-projects/{nestjs-backend/ai → django-app/.ai-dev}/tools.json +0 -0
  845. /package/test-projects/{react-app/ai → django-app/ai-context}/entrypoints.md +0 -0
  846. /package/test-projects/{python-cli/ai → django-app/ai-context}/tools.json +0 -0
  847. /package/test-projects/express-api/{ai → .ai-dev}/ai_context.md +0 -0
  848. /package/test-projects/express-api/{ai → .ai-dev}/ai_rules.md +0 -0
  849. /package/test-projects/express-api/{ai → .ai-dev}/architecture.md +0 -0
  850. /package/test-projects/express-api/{ai → .ai-dev}/context/features/controllers.json +0 -0
  851. /package/test-projects/express-api/{ai → .ai-dev}/context/features/services.json +0 -0
  852. /package/test-projects/express-api/{ai → .ai-dev}/context/flows/auth.json +0 -0
  853. /package/test-projects/express-api/{ai → .ai-dev}/context/flows/user.json +0 -0
  854. /package/test-projects/express-api/{ai → .ai-dev}/conventions.md +0 -0
  855. /package/test-projects/express-api/{ai → .ai-dev}/dependencies.json +0 -0
  856. /package/test-projects/express-api/{ai → .ai-dev}/entrypoints.md +0 -0
  857. /package/test-projects/express-api/{ai → .ai-dev}/modules.json +0 -0
  858. /package/test-projects/express-api/{ai → .ai-dev}/repo_map.md +0 -0
  859. /package/test-projects/express-api/{ai → .ai-dev}/summary.md +0 -0
  860. /package/test-projects/express-api/{ai → .ai-dev}/tech_stack.md +0 -0
  861. /package/test-projects/{react-app/ai → express-api/.ai-dev}/tools.json +0 -0
  862. /package/test-projects/{salesforce-cli/ai → express-api/ai-context}/tools.json +0 -0
  863. /package/test-projects/{salesforce-cli/ai → fastapi-app/.ai-dev}/entrypoints.md +0 -0
  864. /package/test-projects/{salesforce-cli/ai → laravel-app/.ai-dev}/dependencies.json +0 -0
  865. /package/test-projects/nestjs-backend/{ai → .ai-dev}/context/features/src.json +0 -0
  866. /package/test-projects/nestjs-backend/{ai/context/flows/auth..json → .ai-dev/context/flows/auth.json} +0 -0
  867. /package/test-projects/nestjs-backend/{ai → .ai-dev}/context/flows/users..json +0 -0
  868. /package/test-projects/nestjs-backend/{ai → .ai-dev}/dependencies.json +0 -0
  869. /package/test-projects/nestjs-backend/{ai → .ai-dev}/entrypoints.md +0 -0
  870. /package/test-projects/nestjs-backend/{ai → .ai-dev}/graph/module-graph.json +0 -0
  871. /package/test-projects/nestjs-backend/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
  872. /package/test-projects/nestjs-backend/{ai → .ai-dev}/graph/symbol-references.json +0 -0
  873. /package/test-projects/nestjs-backend/{ai → .ai-dev}/modules.json +0 -0
  874. /package/test-projects/python-cli/{ai → .ai-dev}/context/features/cli.json +0 -0
  875. /package/test-projects/python-cli/{ai → .ai-dev}/context/flows/list_.json +0 -0
  876. /package/test-projects/python-cli/{ai → .ai-dev}/context/flows/remove_.json +0 -0
  877. /package/test-projects/python-cli/{ai → .ai-dev}/conventions.md +0 -0
  878. /package/test-projects/python-cli/{ai → .ai-dev}/dependencies.json +0 -0
  879. /package/test-projects/python-cli/{ai → .ai-dev}/graph/module-graph.json +0 -0
  880. /package/test-projects/python-cli/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
  881. /package/test-projects/python-cli/{ai → .ai-dev}/graph/symbol-references.json +0 -0
  882. /package/test-projects/python-cli/{ai → .ai-dev}/modules.json +0 -0
  883. /package/test-projects/react-app/{ai → .ai-dev}/context/features/src.json +0 -0
  884. /package/test-projects/react-app/{ai → .ai-dev}/context/flows/dashboard.json +0 -0
  885. /package/test-projects/react-app/{ai → .ai-dev}/context/flows/login.json +0 -0
  886. /package/test-projects/react-app/{ai → .ai-dev}/context/flows/users.json +0 -0
  887. /package/test-projects/react-app/{ai → .ai-dev}/conventions.md +0 -0
  888. /package/test-projects/react-app/{ai → .ai-dev}/dependencies.json +0 -0
  889. /package/test-projects/react-app/{ai → .ai-dev}/graph/module-graph.json +0 -0
  890. /package/test-projects/react-app/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
  891. /package/test-projects/react-app/{ai → .ai-dev}/graph/symbol-references.json +0 -0
  892. /package/test-projects/react-app/{ai → .ai-dev}/modules.json +0 -0
  893. /package/test-projects/salesforce-cli/{ai → .ai-dev}/context/features/force-app.json +0 -0
  894. /package/test-projects/salesforce-cli/{ai → .ai-dev}/context/flows/account.json +0 -0
  895. /package/test-projects/salesforce-cli/{ai → .ai-dev}/context/flows/opportunity.json +0 -0
  896. /package/test-projects/salesforce-cli/{ai → .ai-dev}/graph/module-graph.json +0 -0
  897. /package/test-projects/salesforce-cli/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
  898. /package/test-projects/salesforce-cli/{ai → .ai-dev}/modules.json +0 -0
@@ -86,7 +86,7 @@ function detectChangesWithGit(rootDir: string): ChangedFile[] {
86
86
 
87
87
  function detectChangesWithTimestamps(rootDir: string): ChangedFile[] {
88
88
  const changes: ChangedFile[] = [];
89
- const aiDir = path.join(rootDir, "ai");
89
+ const aiDir = path.join(rootDir, "ai-context");
90
90
  const state = loadIndexState(aiDir);
91
91
 
92
92
  if (!state) return [];
@@ -114,18 +114,56 @@ function detectChangesWithTimestamps(rootDir: string): ChangedFile[] {
114
114
 
115
115
  export function updateSymbols(rootDir: string, changedFiles: ChangedFile[], aiDir: string): number {
116
116
  const symbolsPath = path.join(aiDir, "symbols.json");
117
- let existingSymbols: Array<{name: string; file: string; type?: string}> = [];
117
+
118
+ // Read existing symbols.json structure
119
+ interface SymbolsIndex {
120
+ [id: string]: { name: string; type: string; file: string; line?: number; module?: string; export?: boolean };
121
+ }
122
+ interface SymbolsData {
123
+ symbols: SymbolsIndex;
124
+ total: number;
125
+ byType: { [type: string]: Array<{ id: string; name: string; type: string; file: string; line?: number; export?: boolean }> };
126
+ byFile: { [file: string]: Array<{ id: string; name: string; type: string; file: string; line?: number; export?: boolean }> };
127
+ exported: Array<{ id: string; name: string; type: string; file: string; line?: number; export?: boolean }>;
128
+ }
129
+
130
+ let symbolsData: SymbolsData | null = null;
118
131
 
119
132
  if (fs.existsSync(symbolsPath)) {
120
133
  try {
121
134
  const raw = readJsonFile(symbolsPath);
122
- if (Array.isArray(raw)) existingSymbols = raw as typeof existingSymbols;
123
- } catch { existingSymbols = []; }
135
+ if (!Array.isArray(raw) && raw && typeof raw === 'object') {
136
+ symbolsData = raw as unknown as SymbolsData;
137
+ }
138
+ } catch { }
139
+ }
140
+
141
+ // If no valid symbols.json exists, nothing to update
142
+ if (!symbolsData) {
143
+ return 0;
124
144
  }
125
145
 
126
146
  const changedPaths = new Set(changedFiles.map(f => f.path));
127
- existingSymbols = existingSymbols.filter(s => !changedPaths.has(s.file));
128
147
 
148
+ // Remove symbols from changed files
149
+ for (const filePath of changedPaths) {
150
+ delete symbolsData.byFile[filePath];
151
+ for (const type of Object.keys(symbolsData.byType)) {
152
+ symbolsData.byType[type] = symbolsData.byType[type].filter(
153
+ sym => sym.file !== filePath
154
+ );
155
+ }
156
+ symbolsData.exported = symbolsData.exported.filter(sym => sym.file !== filePath);
157
+ // Remove from symbols index
158
+ const keysToDelete = Object.keys(symbolsData.symbols).filter(
159
+ id => id.startsWith(filePath + '#')
160
+ );
161
+ for (const key of keysToDelete) {
162
+ delete symbolsData.symbols[key];
163
+ }
164
+ }
165
+
166
+ // Extract and add new symbols from changed files
129
167
  for (const changed of changedFiles) {
130
168
  if (changed.status === "deleted") continue;
131
169
  const fullPath = path.join(rootDir, changed.path);
@@ -133,20 +171,72 @@ export function updateSymbols(rootDir: string, changedFiles: ChangedFile[], aiDi
133
171
 
134
172
  try {
135
173
  const fileInfo: FileInfo = {
136
- path: changed.path,
174
+ path: fullPath,
137
175
  relativePath: changed.path,
138
176
  extension: path.extname(changed.path),
139
177
  name: path.basename(changed.path, path.extname(changed.path))
140
178
  };
141
179
  const symbols = extractSymbols([fileInfo]);
180
+
142
181
  for (const symbol of symbols.symbols || []) {
143
- existingSymbols.push({ name: symbol.name, file: changed.path, type: symbol.type });
182
+ const id = `${changed.path}#${symbol.name}`;
183
+
184
+ // Add to symbols index
185
+ symbolsData.symbols[id] = {
186
+ name: symbol.name,
187
+ type: symbol.type,
188
+ file: changed.path,
189
+ line: symbol.line,
190
+ module: changed.path.split('/')[0],
191
+ export: symbol.export
192
+ };
193
+
194
+ // Add to byFile
195
+ if (!symbolsData.byFile[changed.path]) {
196
+ symbolsData.byFile[changed.path] = [];
197
+ }
198
+ symbolsData.byFile[changed.path].push({
199
+ id,
200
+ name: symbol.name,
201
+ type: symbol.type,
202
+ file: changed.path,
203
+ line: symbol.line,
204
+ export: symbol.export
205
+ });
206
+
207
+ // Add to byType
208
+ if (!symbolsData.byType[symbol.type]) {
209
+ symbolsData.byType[symbol.type] = [];
210
+ }
211
+ symbolsData.byType[symbol.type].push({
212
+ id,
213
+ name: symbol.name,
214
+ type: symbol.type,
215
+ file: changed.path,
216
+ line: symbol.line,
217
+ export: symbol.export
218
+ });
219
+
220
+ // Add to exported if applicable
221
+ if (symbol.export) {
222
+ symbolsData.exported.push({
223
+ id,
224
+ name: symbol.name,
225
+ type: symbol.type,
226
+ file: changed.path,
227
+ line: symbol.line,
228
+ export: symbol.export
229
+ });
230
+ }
144
231
  }
145
232
  } catch { /* skip */ }
146
233
  }
147
234
 
148
- writeFile(symbolsPath, JSON.stringify(existingSymbols, null, 2));
149
- return existingSymbols.length;
235
+ // Update total
236
+ symbolsData.total = Object.keys(symbolsData.symbols).length;
237
+
238
+ writeFile(symbolsPath, JSON.stringify(symbolsData, null, 2));
239
+ return symbolsData.total;
150
240
  }
151
241
 
152
242
  // ============================================================
@@ -282,7 +372,7 @@ export function updateKnowledgeGraph(rootDir: string, aiDir: string): boolean {
282
372
  // ============================================================
283
373
 
284
374
  export function runIncrementalUpdate(rootDir: string, aiDir?: string): IncrementalUpdateResult {
285
- const targetAiDir = aiDir || path.join(rootDir, "ai");
375
+ const targetAiDir = aiDir || path.join(rootDir, "ai-context");
286
376
  const errors: string[] = [];
287
377
 
288
378
  if (!fs.existsSync(targetAiDir)) {
@@ -346,7 +436,7 @@ export function runIncrementalUpdate(rootDir: string, aiDir?: string): Increment
346
436
  }
347
437
 
348
438
  function updateIndexState(rootDir: string, changedFiles: ChangedFile[]): void {
349
- const aiDir = path.join(rootDir, "ai");
439
+ const aiDir = path.join(rootDir, "ai-context");
350
440
  let state = loadIndexState(aiDir);
351
441
 
352
442
  if (!state) {
@@ -147,7 +147,7 @@ export function createEdges(aiDir: string): KnowledgeEdge[] {
147
147
  }
148
148
 
149
149
  export function buildKnowledgeGraph(rootDir: string, aiDir?: string): KnowledgeGraph {
150
- const targetAiDir = aiDir || path.join(rootDir, "ai");
150
+ const targetAiDir = aiDir || path.join(rootDir, "ai-context");
151
151
  const graphDir = path.join(targetAiDir, "graph");
152
152
  ensureDir(graphDir);
153
153
  const nodes = createNodes(targetAiDir);
@@ -99,6 +99,15 @@ const SOURCE_EXTENSIONS = new Set([
99
99
  // HELPER FUNCTIONS
100
100
  // ============================================================
101
101
 
102
+ function sanitizeFlowName(name: string): string {
103
+ return name
104
+ .replace(/\.\.+/g, ".")
105
+ .replace(/_+$/g, "")
106
+ .replace(/[^\w\-]/g, "_")
107
+ .replace(/_+/g, "_")
108
+ .replace(/^_+|_+$/g, "") || "unnamed";
109
+ }
110
+
102
111
  function isSourceFile(filePath: string): boolean {
103
112
  const ext = path.extname(filePath).toLowerCase();
104
113
  return SOURCE_EXTENSIONS.has(ext);
@@ -370,7 +379,7 @@ function flowsFromGraph(graphData: any): Flow[] {
370
379
  // Must have at least 3 files and 2 layers
371
380
  if (fileSet.size >= 3 && layerSet.size >= 2) {
372
381
  flows.push({
373
- name: path.basename(ep.file || ""),
382
+ name: sanitizeFlowName(path.basename(ep.file || "").replace(/\.[^.]+$/, "")),
374
383
  entrypoint: ep.file || "",
375
384
  files: Array.from(fileSet).slice(0, MAX_FLOW_FILES),
376
385
  depth: Math.min(MAX_FLOW_DEPTH, [...visited].length),
@@ -421,7 +430,7 @@ function flowsFromFolders(files: string[]): Flow[] {
421
430
  const entrypoint = sorted.find(isFlowEntrypoint) || sorted[0];
422
431
 
423
432
  flows.push({
424
- name: feature,
433
+ name: sanitizeFlowName(feature),
425
434
  entrypoint,
426
435
  files: sorted.slice(0, MAX_FLOW_FILES),
427
436
  depth: layers.size,
@@ -486,7 +495,7 @@ function flowsFromImports(
486
495
 
487
496
  if (fileSet.size >= 3 && layerSet.size >= 2) {
488
497
  flows.push({
489
- name: path.basename(ep, path.extname(ep)),
498
+ name: sanitizeFlowName(path.basename(ep, path.extname(ep))),
490
499
  entrypoint: ep,
491
500
  files: Array.from(fileSet),
492
501
  depth: Math.min(MAX_FLOW_DEPTH, [...visited].length),
@@ -592,7 +601,8 @@ export function generateSemanticContexts(aiDir: string): SemanticContexts {
592
601
  // Write flows
593
602
  ensureDir(flowsDir);
594
603
  for (const flow of flows) {
595
- const filePath = path.join(flowsDir, `${flow.name}.json`);
604
+ const safeName = sanitizeFlowName(flow.name);
605
+ const filePath = path.join(flowsDir, `${safeName}.json`);
596
606
  writeFile(filePath, JSON.stringify(flow, null, 2));
597
607
  }
598
608
 
@@ -0,0 +1,92 @@
1
+ # AI Context
2
+
3
+ > This file provides a comprehensive overview of the repository for AI coding assistants.
4
+
5
+ ---
6
+
7
+ ## Quick Overview
8
+
9
+ - **Pattern**: Flat / Simple Structure
10
+ - **Languages**: Markdown, JSON, Python
11
+ - **Frameworks**: None
12
+ - **Total Files**: 41
13
+
14
+ ---
15
+
16
+ ## Table of Contents
17
+
18
+ 1. [Tech Stack](#tech-stack)
19
+ 2. [Architecture](#architecture)
20
+ 3. [Key Entrypoints](#key-entrypoints)
21
+ 4. [Code Conventions](#code-conventions)
22
+ 5. [AI Rules](#ai-rules)
23
+ 6. [Repository Map](#repository-map)
24
+
25
+ ---
26
+
27
+ ## Tech Stack
28
+
29
+ **Languages**: Markdown, JSON, Python
30
+
31
+ ---
32
+
33
+ ## Architecture
34
+
35
+ ## Architectural Pattern
36
+ **Primary**: Flat / Simple Structure
37
+
38
+ ## Key Modules
39
+ | Module | Responsibility |
40
+ |--------|----------------|
41
+ | `README.md` | Contains 0 files |
42
+ | `ai` | Contains 23 files |
43
+ | `blog` | Contains 6 files |
44
+ | `django_app` | Contains 4 files |
45
+ | `manage.py` | Contains 0 files |
46
+ | `users` | Contains 6 files |
47
+
48
+
49
+ ---
50
+
51
+ ## Key Entrypoints
52
+
53
+ ---
54
+
55
+ ## Code Conventions
56
+
57
+ ## Naming Conventions
58
+ - **Files**: PascalCase
59
+
60
+ ## Project Structure
61
+
62
+ ## Code Style
63
+ - **Semicolons**: Required
64
+
65
+
66
+ ---
67
+
68
+ ## AI Rules
69
+
70
+ - Language: Use Markdown, JSON, Python
71
+ - Architecture: Follow Flat / Simple Structure pattern
72
+ - File naming: PascalCase
73
+
74
+ ---
75
+
76
+ ## Repository Map
77
+
78
+ See repo_map.md for the full structure.
79
+
80
+ ---
81
+
82
+ ## Notes for AI Assistants
83
+
84
+ 1. Follow the established naming conventions (see conventions.md)
85
+ 2. Use the detected frameworks and libraries
86
+ 3. Target the correct entrypoints for modifications
87
+ 4. Maintain the detected architecture patterns
88
+ 5. Follow AI rules in ai_rules.md
89
+
90
+ ---
91
+
92
+ *Generated by ai-first*
@@ -0,0 +1,47 @@
1
+ # AI Rules
2
+
3
+ > Guidelines for AI assistants working on this project
4
+
5
+ ---
6
+
7
+ ## Guidelines
8
+
9
+ - Language: Use Markdown, JSON, Python
10
+ - Architecture: Follow Flat / Simple Structure pattern
11
+ - File naming: PascalCase
12
+
13
+ ## Patterns
14
+
15
+ - Layer structure:
16
+
17
+ ## Constraints
18
+
19
+ - Always use semicolons
20
+
21
+ ---
22
+
23
+ ## Quick Reference
24
+
25
+ | Category | Value |
26
+ |----------|-------|
27
+ | Language | Markdown, JSON, Python |
28
+ | Framework | N/A |
29
+ | Architecture | Flat / Simple Structure |
30
+ | Naming | PascalCase |
31
+ | Indentation | unknown |
32
+
33
+ ---
34
+
35
+ ## Best Practices
36
+
37
+ 1. Follow the established naming conventions
38
+ 2. Keep functions small and focused
39
+ 3. Write tests for new features
40
+ 4. Use descriptive variable names
41
+ 5. Keep the architecture consistent
42
+ 6. Document complex logic
43
+ 7. Review code before committing
44
+
45
+ ---
46
+
47
+ *Generated by ai-first*
@@ -0,0 +1,57 @@
1
+ # Architecture
2
+
3
+ ## Architectural Pattern
4
+ **Primary**: Flat / Simple Structure
5
+
6
+ ## Key Modules
7
+ | Module | Responsibility |
8
+ |--------|----------------|
9
+ | `README.md` | Contains 0 files |
10
+ | `ai` | Contains 23 files |
11
+ | `blog` | Contains 6 files |
12
+ | `django_app` | Contains 4 files |
13
+ | `manage.py` | Contains 0 files |
14
+ | `users` | Contains 6 files |
15
+
16
+
17
+ ## Module Details
18
+
19
+ ### README.md
20
+ - **Path**: `README.md`
21
+ - **Responsibility**: Contains 0 files
22
+
23
+
24
+ ### ai
25
+ - **Path**: `ai`
26
+ - **Responsibility**: Contains 23 files
27
+
28
+
29
+ ### blog
30
+ - **Path**: `blog`
31
+ - **Responsibility**: Contains 6 files
32
+
33
+
34
+ ### django_app
35
+ - **Path**: `django_app`
36
+ - **Responsibility**: Contains 4 files
37
+
38
+
39
+ ### manage.py
40
+ - **Path**: `manage.py`
41
+ - **Responsibility**: Contains 0 files
42
+
43
+
44
+ ### users
45
+ - **Path**: `users`
46
+ - **Responsibility**: Contains 6 files
47
+
48
+
49
+
50
+ ## Recommendations
51
+
52
+ - Keep the architecture consistent as the project grows
53
+ - Follow the established layer structure
54
+ - Use dependency injection to manage module relationships
55
+
56
+ ---
57
+ *Generated by ai-first*
@@ -0,0 +1,169 @@
1
+ {
2
+ "files": {
3
+ "README.md": {
4
+ "hash": "2b099275e8f719d2a008071b600752a7",
5
+ "mtime": 1773847503082.22
6
+ },
7
+ "ai/ai_context.md": {
8
+ "hash": "80d8f629165bedf465c5a4c6f835331f",
9
+ "mtime": 1773861708617.3313
10
+ },
11
+ "ai/ai_rules.md": {
12
+ "hash": "d2b7ddc70e63ad287b892635b384f5ae",
13
+ "mtime": 1773861708617.3313
14
+ },
15
+ "ai/architecture.md": {
16
+ "hash": "83ecb99ada1f854a47092136f1e3375a",
17
+ "mtime": 1773861708608.3313
18
+ },
19
+ "ai/cache.json": {
20
+ "hash": "29106f930a901a1723c2c25d22e43f31",
21
+ "mtime": 1773847532764.63
22
+ },
23
+ "ai/context/flows/views.json": {
24
+ "hash": "a914f6473aa639c9261d9491913a5440",
25
+ "mtime": 1773861708619.3315
26
+ },
27
+ "ai/conventions.md": {
28
+ "hash": "d11ac646a8916e3c6cc376f610368317",
29
+ "mtime": 1773861708611.3313
30
+ },
31
+ "ai/dependencies.json": {
32
+ "hash": "ef1c6db344eea60efd35525d7edfbdc5",
33
+ "mtime": 1773861708615.3313
34
+ },
35
+ "ai/entrypoints.md": {
36
+ "hash": "34c8965a66697d9f1d428bb0904f5d8d",
37
+ "mtime": 1773861708610.3313
38
+ },
39
+ "ai/files.json": {
40
+ "hash": "41fa4833d5f289c1eeb59d8cf9a39e47",
41
+ "mtime": 1773861708707.3328
42
+ },
43
+ "ai/graph/module-graph.json": {
44
+ "hash": "b226564aa5093d79889b9d70969a7018",
45
+ "mtime": 1773861708697.3328
46
+ },
47
+ "ai/graph/symbol-graph.json": {
48
+ "hash": "b1bd34e7d1007ce43b7fe133c1c2ba93",
49
+ "mtime": 1773861708707.3328
50
+ },
51
+ "ai/graph/symbol-references.json": {
52
+ "hash": "99914b932bd37a50b983c5e7c90ae93b",
53
+ "mtime": 1773861708707.3328
54
+ },
55
+ "ai/index-state.json": {
56
+ "hash": "bfc0668aa599dec27819bd72c7bfe674",
57
+ "mtime": 1773854929728.3672
58
+ },
59
+ "ai/modules.json": {
60
+ "hash": "cba831f3ad2e9f04973d35fad2f07b55",
61
+ "mtime": 1773861708687.3325
62
+ },
63
+ "ai/project.json": {
64
+ "hash": "4998af676768b4699bde7b0f13a209bb",
65
+ "mtime": 1773861708619.3315
66
+ },
67
+ "ai/repo-map.json": {
68
+ "hash": "aebfe0546551a708a7d16f89c5da2c7b",
69
+ "mtime": 1773861708688.3325
70
+ },
71
+ "ai/repo_map.json": {
72
+ "hash": "71959a6f4c6326dc065661e0ee89bd43",
73
+ "mtime": 1773861708607.3313
74
+ },
75
+ "ai/repo_map.md": {
76
+ "hash": "3a12588f63d086c3f93d5a1c559e6b1b",
77
+ "mtime": 1773861708606.3313
78
+ },
79
+ "ai/schema.json": {
80
+ "hash": "64d7066e2b581ecad488b78bf5f2a248",
81
+ "mtime": 1773861708619.3315
82
+ },
83
+ "ai/summary.md": {
84
+ "hash": "456491ddfdf18af4e2258c280a63fc8d",
85
+ "mtime": 1773861708607.3313
86
+ },
87
+ "ai/symbols.json": {
88
+ "hash": "a5f3112d44cfa4dc256b75bda253df0e",
89
+ "mtime": 1773861708613.3313
90
+ },
91
+ "ai/tech_stack.md": {
92
+ "hash": "876902a6b64c33c4d65f658e9fd2bb27",
93
+ "mtime": 1773861708610.3313
94
+ },
95
+ "ai/tools.json": {
96
+ "hash": "b1356e52c74e9b3b6a0d397b790a4968",
97
+ "mtime": 1773861708619.3315
98
+ },
99
+ "blog/__init__.py": {
100
+ "hash": "d41d8cd98f00b204e9800998ecf8427e",
101
+ "mtime": 1773847262320.9067
102
+ },
103
+ "blog/admin.py": {
104
+ "hash": "ef8b15c55e00e9ef835b4cc1a3ae8307",
105
+ "mtime": 1773847452965.5286
106
+ },
107
+ "blog/models.py": {
108
+ "hash": "11cf32800211bc954798a3775a0c1429",
109
+ "mtime": 1773847281082.164
110
+ },
111
+ "blog/serializers.py": {
112
+ "hash": "efb817010fdd412250c980c9d7b738a2",
113
+ "mtime": 1773847304708.4883
114
+ },
115
+ "blog/urls.py": {
116
+ "hash": "235d6b0d52e581825c76a37dba5d46f4",
117
+ "mtime": 1773847343339.019
118
+ },
119
+ "blog/views.py": {
120
+ "hash": "b51bcfc62e8a9cc4e36d6e04d0d66ac2",
121
+ "mtime": 1773847331379.8545
122
+ },
123
+ "django_app/__init__.py": {
124
+ "hash": "d41d8cd98f00b204e9800998ecf8427e",
125
+ "mtime": 1773847262320.9067
126
+ },
127
+ "django_app/settings.py": {
128
+ "hash": "ec0ff12dd114d0f70b04dee4e6753ded",
129
+ "mtime": 1773847230399.4692
130
+ },
131
+ "django_app/urls.py": {
132
+ "hash": "646e11e6cbfc20b5a1c457bd04058b6f",
133
+ "mtime": 1773847241419.62
134
+ },
135
+ "django_app/wsgi.py": {
136
+ "hash": "8997e7b6236b6d5cc5ab76625293b138",
137
+ "mtime": 1773847252217.768
138
+ },
139
+ "manage.py": {
140
+ "hash": "557480f24dd7cddb10ad7fdcf39b6c79",
141
+ "mtime": 1773847204930.1206
142
+ },
143
+ "users/__init__.py": {
144
+ "hash": "d41d8cd98f00b204e9800998ecf8427e",
145
+ "mtime": 1773847262320.9067
146
+ },
147
+ "users/admin.py": {
148
+ "hash": "3a42200ccb8543463198e6df6bbf3601",
149
+ "mtime": 1773847468180.7383
150
+ },
151
+ "users/models.py": {
152
+ "hash": "861e708ed26ccbcb76365faf6d540ac6",
153
+ "mtime": 1773847363660.2983
154
+ },
155
+ "users/serializers.py": {
156
+ "hash": "709f852da00f6f58d0b9cdb84bb7fe24",
157
+ "mtime": 1773847389572.655
158
+ },
159
+ "users/urls.py": {
160
+ "hash": "c331ed123fa4e1121d48eead9befbb0d",
161
+ "mtime": 1773847438434.3281
162
+ },
163
+ "users/views.py": {
164
+ "hash": "91fa1403cd82ec70898d487250d9673b",
165
+ "mtime": 1773847426896.1692
166
+ }
167
+ },
168
+ "lastIndexed": "2026-03-18T19:21:48.709Z"
169
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "views",
3
+ "entrypoint": "blog/views.py",
4
+ "files": [
5
+ "blog/views.py",
6
+ "users/views.py"
7
+ ],
8
+ "depth": 0,
9
+ "layers": []
10
+ }