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.
- package/{ai → .ai-dev}/ai_context.md +8 -8
- package/{ai → .ai-dev}/ai_rules.md +2 -2
- package/{ai → .ai-dev}/architecture.md +38 -23
- package/.ai-dev/cache.json +2349 -0
- package/.ai-dev/context/features/test-projects.json +69 -0
- package/.ai-dev/context/flows/api.json +9 -0
- package/{ai → .ai-dev}/context/flows/auth.json +2 -1
- package/.ai-dev/context/flows/category.json +12 -0
- package/.ai-dev/context/flows/comment.json +16 -0
- package/.ai-dev/context/flows/post.json +18 -0
- package/.ai-dev/context/flows/routes.json +19 -0
- package/.ai-dev/context/flows/user.json +20 -0
- package/.ai-dev/context/flows/views.json +14 -0
- package/.ai-dev/dependencies.json +2946 -0
- package/.ai-dev/files.json +2944 -0
- package/{ai → .ai-dev}/git/commit-activity.json +39 -126
- package/{ai → .ai-dev}/git/recent-files.json +6 -6
- package/.ai-dev/git/recent-flows.json +1 -0
- package/.ai-dev/graph/knowledge-graph.json +44314 -0
- package/.ai-dev/graph/module-graph.json +866 -0
- package/.ai-dev/graph/symbol-graph.json +200622 -0
- package/.ai-dev/graph/symbol-references.json +6778 -0
- package/.ai-dev/hierarchy.json +20 -0
- package/.ai-dev/index-state.json +4123 -0
- package/.ai-dev/index.db +0 -0
- package/.ai-dev/modules.json +532 -0
- package/{ai → .ai-dev}/project.json +8 -7
- package/{ai → .ai-dev}/repo_map.json +3403 -918
- package/{ai → .ai-dev}/repo_map.md +604 -45
- package/{test-projects/nestjs-backend/ai → .ai-dev}/schema.json +1 -1
- package/{ai → .ai-dev}/summary.md +15 -5
- package/.ai-dev/symbols.json +7 -0
- package/{ai → .ai-dev}/tech_stack.md +7 -3
- package/.github/workflows/publish.yml +55 -0
- package/CHANGELOG.md +125 -0
- package/PLAN_MEJORAS.md +216 -0
- package/README.es.md +82 -99
- package/README.md +70 -89
- package/STATUS_ADAPTADORES +126 -0
- package/TEST_RESULTS_PHASE1.md +420 -0
- package/ai/graph/knowledge-graph.json +6 -44411
- package/ai-context/ai_context.md +130 -0
- package/ai-context/ai_rules.md +54 -0
- package/ai-context/architecture.md +136 -0
- package/ai-context/cache.json +2349 -0
- package/ai-context/ccp/jira-123/context.json +7 -0
- package/ai-context/context/features/commands.json +18 -0
- package/ai-context/context/features/src.json +61 -0
- package/ai-context/context/features/test-projects.json +69 -0
- package/ai-context/context/flows/account.json +9 -0
- package/ai-context/context/flows/ai-first.json +9 -0
- package/ai-context/context/flows/api.json +9 -0
- package/ai-context/context/flows/auth.json +13 -0
- package/ai-context/context/flows/category.json +12 -0
- package/ai-context/context/flows/comment.json +16 -0
- package/ai-context/context/flows/dashboard.json +9 -0
- package/ai-context/context/flows/doctor.json +9 -0
- package/ai-context/context/flows/explore.json +9 -0
- package/ai-context/context/flows/login.json +9 -0
- package/ai-context/context/flows/opportunity.json +9 -0
- package/ai-context/context/flows/post.json +18 -0
- package/ai-context/context/flows/routes.json +19 -0
- package/ai-context/context/flows/user.json +20 -0
- package/ai-context/context/flows/users.json +9 -0
- package/ai-context/context/flows/views.json +14 -0
- package/ai-context/context/repo.json +56 -0
- package/ai-context/context/utils.json +7 -0
- package/ai-context/conventions.md +53 -0
- package/ai-context/dependencies.json +2946 -0
- package/ai-context/embeddings.json +23828 -0
- package/ai-context/entrypoints.md +42 -0
- package/ai-context/files.json +2944 -0
- package/ai-context/git/commit-activity.json +8646 -0
- package/ai-context/git/recent-features.json +1 -0
- package/ai-context/git/recent-files.json +52 -0
- package/ai-context/git/recent-flows.json +1 -0
- package/ai-context/graph/knowledge-graph.json +44314 -0
- package/ai-context/graph/module-graph.json +866 -0
- package/ai-context/graph/symbol-graph.json +200622 -0
- package/ai-context/graph/symbol-references.json +6778 -0
- package/ai-context/hierarchy.json +20 -0
- package/ai-context/index-state.json +4123 -0
- package/ai-context/index.db +0 -0
- package/ai-context/modules.json +532 -0
- package/ai-context/project.json +30 -0
- package/ai-context/repo_map.json +5818 -0
- package/ai-context/repo_map.md +1327 -0
- package/{test-projects/python-cli/ai → ai-context}/schema.json +1 -1
- package/ai-context/summary.md +42 -0
- package/ai-context/symbols.json +7 -0
- package/ai-context/tech_stack.md +46 -0
- package/dist/analyzers/symbols.d.ts.map +1 -1
- package/dist/analyzers/symbols.js +135 -7
- package/dist/analyzers/symbols.js.map +1 -1
- package/dist/commands/ai-first.d.ts.map +1 -1
- package/dist/commands/ai-first.js +35 -15
- package/dist/commands/ai-first.js.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/explore.js +1 -1
- package/dist/commands/explore.js.map +1 -1
- package/dist/core/ccp.js +1 -1
- package/dist/core/ccp.js.map +1 -1
- package/dist/core/embeddings.d.ts +11 -6
- package/dist/core/embeddings.d.ts.map +1 -1
- package/dist/core/embeddings.js +88 -38
- package/dist/core/embeddings.js.map +1 -1
- package/dist/core/gitAnalyzer.js +3 -3
- package/dist/core/gitAnalyzer.js.map +1 -1
- package/dist/core/incrementalAnalyzer.d.ts.map +1 -1
- package/dist/core/incrementalAnalyzer.js +76 -14
- package/dist/core/incrementalAnalyzer.js.map +1 -1
- package/dist/core/knowledgeGraphBuilder.js +1 -1
- package/dist/core/knowledgeGraphBuilder.js.map +1 -1
- package/dist/core/semanticContexts.d.ts.map +1 -1
- package/dist/core/semanticContexts.js +13 -4
- package/dist/core/semanticContexts.js.map +1 -1
- package/docs/guide/getting-started.md +8 -8
- package/docs/guide/quick-start.md +8 -8
- package/examples/01-express-api.md +3 -3
- package/examples/02-react-app.md +3 -3
- package/examples/03-python-django.md +3 -3
- package/examples/README.md +3 -3
- package/package.json +1 -1
- package/src/analyzers/symbols.ts +144 -7
- package/src/commands/ai-first.ts +37 -15
- package/src/commands/doctor.ts +1 -1
- package/src/commands/explore.ts +1 -1
- package/src/core/ccp.ts +1 -1
- package/src/core/embeddings.ts +106 -40
- package/src/core/gitAnalyzer.ts +3 -3
- package/src/core/incrementalAnalyzer.ts +101 -11
- package/src/core/knowledgeGraphBuilder.ts +1 -1
- package/src/core/semanticContexts.ts +14 -4
- package/test-projects/django-app/.ai-dev/ai_context.md +92 -0
- package/test-projects/django-app/.ai-dev/ai_rules.md +47 -0
- package/test-projects/django-app/.ai-dev/architecture.md +57 -0
- package/test-projects/django-app/.ai-dev/cache.json +169 -0
- package/test-projects/django-app/.ai-dev/context/flows/views.json +10 -0
- package/test-projects/django-app/.ai-dev/dependencies.json +312 -0
- package/test-projects/django-app/.ai-dev/files.json +209 -0
- package/test-projects/django-app/.ai-dev/graph/knowledge-graph.json +36 -0
- package/test-projects/django-app/.ai-dev/graph/module-graph.json +145 -0
- package/test-projects/django-app/.ai-dev/graph/symbol-graph.json +1488 -0
- package/test-projects/django-app/.ai-dev/index-state.json +294 -0
- package/test-projects/django-app/.ai-dev/index.db +0 -0
- package/test-projects/django-app/.ai-dev/modules.json +35 -0
- package/test-projects/django-app/.ai-dev/project.json +11 -0
- package/test-projects/django-app/.ai-dev/repo_map.json +412 -0
- package/test-projects/django-app/.ai-dev/repo_map.md +105 -0
- package/test-projects/{express-api/ai → django-app/.ai-dev}/schema.json +1 -1
- package/test-projects/django-app/.ai-dev/summary.md +15 -0
- package/test-projects/django-app/.ai-dev/symbols.json +1 -0
- package/test-projects/django-app/.ai-dev/tech_stack.md +32 -0
- package/test-projects/django-app/README.md +91 -0
- package/test-projects/django-app/ai-context/ai_context.md +92 -0
- package/test-projects/django-app/ai-context/ai_rules.md +47 -0
- package/test-projects/django-app/ai-context/architecture.md +57 -0
- package/test-projects/django-app/ai-context/cache.json +169 -0
- package/test-projects/django-app/ai-context/context/flows/views.json +10 -0
- package/test-projects/django-app/ai-context/conventions.md +51 -0
- package/test-projects/django-app/ai-context/dependencies.json +312 -0
- package/test-projects/django-app/ai-context/files.json +209 -0
- package/test-projects/django-app/ai-context/graph/knowledge-graph.json +36 -0
- package/test-projects/django-app/ai-context/graph/module-graph.json +145 -0
- package/test-projects/django-app/ai-context/graph/symbol-graph.json +1488 -0
- package/test-projects/django-app/ai-context/graph/symbol-references.json +1 -0
- package/test-projects/django-app/ai-context/index-state.json +294 -0
- package/test-projects/django-app/ai-context/index.db +0 -0
- package/test-projects/django-app/ai-context/modules.json +35 -0
- package/test-projects/django-app/ai-context/project.json +11 -0
- package/test-projects/django-app/ai-context/repo_map.json +412 -0
- package/test-projects/django-app/ai-context/repo_map.md +105 -0
- package/{ai → test-projects/django-app/ai-context}/schema.json +1 -1
- package/test-projects/django-app/ai-context/summary.md +15 -0
- package/test-projects/django-app/ai-context/symbols.json +1 -0
- package/test-projects/django-app/ai-context/tech_stack.md +32 -0
- package/test-projects/django-app/blog/__init__.py +0 -0
- package/test-projects/django-app/blog/admin.py +31 -0
- package/test-projects/django-app/blog/models.py +55 -0
- package/test-projects/django-app/blog/serializers.py +69 -0
- package/test-projects/django-app/blog/urls.py +14 -0
- package/test-projects/django-app/blog/views.py +96 -0
- package/test-projects/django-app/django_app/__init__.py +0 -0
- package/test-projects/django-app/django_app/settings.py +90 -0
- package/test-projects/django-app/django_app/urls.py +11 -0
- package/test-projects/django-app/django_app/wsgi.py +9 -0
- package/test-projects/django-app/manage.py +23 -0
- package/test-projects/django-app/requirements.txt +3 -0
- package/test-projects/django-app/users/__init__.py +0 -0
- package/test-projects/django-app/users/admin.py +42 -0
- package/test-projects/django-app/users/models.py +54 -0
- package/test-projects/django-app/users/serializers.py +113 -0
- package/test-projects/django-app/users/urls.py +13 -0
- package/test-projects/django-app/users/views.py +135 -0
- package/test-projects/express-api/{ai → .ai-dev}/project.json +2 -2
- package/test-projects/express-api/{ai → .ai-dev}/repo_map.json +1 -1
- package/test-projects/express-api/.ai-dev/schema.json +5 -0
- package/test-projects/express-api/.ai-dev/symbols.json +7 -0
- package/test-projects/express-api/ai-context/ai_context.md +112 -0
- package/test-projects/express-api/ai-context/ai_rules.md +50 -0
- package/test-projects/express-api/ai-context/architecture.md +62 -0
- package/test-projects/express-api/ai-context/context/features/controllers.json +13 -0
- package/test-projects/express-api/ai-context/context/features/services.json +13 -0
- package/test-projects/express-api/ai-context/context/flows/auth.json +12 -0
- package/test-projects/express-api/ai-context/context/flows/user.json +13 -0
- package/test-projects/express-api/ai-context/conventions.md +51 -0
- package/test-projects/express-api/ai-context/dependencies.json +54 -0
- package/test-projects/express-api/ai-context/entrypoints.md +17 -0
- package/test-projects/express-api/ai-context/modules.json +30 -0
- package/test-projects/express-api/ai-context/project.json +15 -0
- package/test-projects/express-api/ai-context/repo_map.json +100 -0
- package/test-projects/express-api/ai-context/repo_map.md +36 -0
- package/test-projects/express-api/ai-context/schema.json +5 -0
- package/test-projects/express-api/ai-context/summary.md +14 -0
- package/test-projects/express-api/ai-context/symbols.json +7 -0
- package/test-projects/express-api/ai-context/tech_stack.md +38 -0
- package/test-projects/express-api/index.js +9 -0
- package/test-projects/fastapi-app/.ai-dev/ai_context.md +89 -0
- package/test-projects/fastapi-app/.ai-dev/ai_rules.md +47 -0
- package/test-projects/fastapi-app/.ai-dev/architecture.md +39 -0
- package/test-projects/fastapi-app/.ai-dev/cache.json +125 -0
- package/test-projects/fastapi-app/.ai-dev/conventions.md +51 -0
- package/test-projects/fastapi-app/.ai-dev/dependencies.json +244 -0
- package/test-projects/fastapi-app/.ai-dev/files.json +154 -0
- package/test-projects/fastapi-app/.ai-dev/graph/knowledge-graph.json +15 -0
- package/test-projects/fastapi-app/.ai-dev/graph/module-graph.json +78 -0
- package/test-projects/fastapi-app/.ai-dev/graph/symbol-graph.json +1724 -0
- package/test-projects/fastapi-app/.ai-dev/graph/symbol-references.json +51 -0
- package/test-projects/fastapi-app/.ai-dev/index-state.json +217 -0
- package/test-projects/fastapi-app/.ai-dev/index.db +0 -0
- package/test-projects/fastapi-app/.ai-dev/modules.json +16 -0
- package/test-projects/fastapi-app/.ai-dev/project.json +9 -0
- package/test-projects/{express-api/ai/repo-map.json → fastapi-app/.ai-dev/repo_map.json} +121 -114
- package/test-projects/fastapi-app/.ai-dev/repo_map.md +74 -0
- package/test-projects/fastapi-app/.ai-dev/schema.json +5 -0
- package/test-projects/fastapi-app/.ai-dev/summary.md +12 -0
- package/test-projects/fastapi-app/.ai-dev/symbols.json +1 -0
- package/test-projects/fastapi-app/.ai-dev/tech_stack.md +32 -0
- package/test-projects/fastapi-app/.ai-dev/tools.json +10 -0
- package/test-projects/fastapi-app/README.md +118 -0
- package/test-projects/fastapi-app/ai-context/ai_context.md +89 -0
- package/test-projects/fastapi-app/ai-context/ai_rules.md +47 -0
- package/test-projects/fastapi-app/ai-context/architecture.md +39 -0
- package/test-projects/fastapi-app/ai-context/cache.json +125 -0
- package/test-projects/fastapi-app/ai-context/conventions.md +51 -0
- package/test-projects/fastapi-app/ai-context/dependencies.json +244 -0
- package/test-projects/fastapi-app/ai-context/entrypoints.md +4 -0
- package/test-projects/fastapi-app/ai-context/files.json +154 -0
- package/test-projects/fastapi-app/ai-context/graph/knowledge-graph.json +15 -0
- package/test-projects/fastapi-app/ai-context/graph/module-graph.json +78 -0
- package/test-projects/fastapi-app/ai-context/graph/symbol-graph.json +1724 -0
- package/test-projects/fastapi-app/ai-context/graph/symbol-references.json +51 -0
- package/test-projects/fastapi-app/ai-context/index-state.json +217 -0
- package/test-projects/fastapi-app/ai-context/index.db +0 -0
- package/test-projects/fastapi-app/ai-context/modules.json +16 -0
- package/test-projects/fastapi-app/ai-context/project.json +9 -0
- package/test-projects/fastapi-app/ai-context/repo_map.json +298 -0
- package/test-projects/fastapi-app/ai-context/repo_map.md +74 -0
- package/test-projects/fastapi-app/ai-context/schema.json +5 -0
- package/test-projects/fastapi-app/ai-context/summary.md +12 -0
- package/test-projects/fastapi-app/ai-context/symbols.json +1 -0
- package/test-projects/fastapi-app/ai-context/tech_stack.md +32 -0
- package/test-projects/fastapi-app/ai-context/tools.json +10 -0
- package/test-projects/fastapi-app/app/database.py +21 -0
- package/test-projects/fastapi-app/app/dependencies.py +107 -0
- package/test-projects/fastapi-app/app/main.py +47 -0
- package/test-projects/fastapi-app/app/models.py +149 -0
- package/test-projects/fastapi-app/app/routers/auth.py +117 -0
- package/test-projects/fastapi-app/app/routers/posts.py +272 -0
- package/test-projects/fastapi-app/app/schemas.py +191 -0
- package/test-projects/fastapi-app/requirements.txt +10 -0
- package/test-projects/flask-app/.ai-dev/ai_context.md +94 -0
- package/test-projects/flask-app/.ai-dev/ai_rules.md +47 -0
- package/test-projects/flask-app/.ai-dev/architecture.md +49 -0
- package/test-projects/flask-app/.ai-dev/cache.json +157 -0
- package/test-projects/flask-app/.ai-dev/context/features/app.json +25 -0
- package/test-projects/flask-app/.ai-dev/context/flows/routes.json +14 -0
- package/test-projects/flask-app/.ai-dev/conventions.md +51 -0
- package/test-projects/flask-app/.ai-dev/dependencies.json +298 -0
- package/test-projects/flask-app/.ai-dev/entrypoints.md +4 -0
- package/test-projects/flask-app/.ai-dev/files.json +194 -0
- package/test-projects/flask-app/.ai-dev/graph/knowledge-graph.json +60 -0
- package/test-projects/flask-app/.ai-dev/graph/module-graph.json +95 -0
- package/test-projects/flask-app/.ai-dev/graph/symbol-graph.json +1448 -0
- package/test-projects/flask-app/.ai-dev/graph/symbol-references.json +45 -0
- package/test-projects/flask-app/.ai-dev/index-state.json +273 -0
- package/test-projects/flask-app/.ai-dev/index.db +0 -0
- package/test-projects/flask-app/.ai-dev/modules.json +21 -0
- package/test-projects/flask-app/.ai-dev/project.json +13 -0
- package/test-projects/flask-app/.ai-dev/repo_map.json +400 -0
- package/test-projects/flask-app/.ai-dev/repo_map.md +98 -0
- package/test-projects/flask-app/.ai-dev/schema.json +5 -0
- package/test-projects/flask-app/.ai-dev/summary.md +13 -0
- package/test-projects/flask-app/.ai-dev/symbols.json +1 -0
- package/test-projects/flask-app/.ai-dev/tech_stack.md +32 -0
- package/test-projects/flask-app/.ai-dev/tools.json +10 -0
- package/test-projects/flask-app/README.md +129 -0
- package/test-projects/flask-app/ai-context/ai_context.md +94 -0
- package/test-projects/flask-app/ai-context/ai_rules.md +47 -0
- package/test-projects/flask-app/ai-context/architecture.md +49 -0
- package/test-projects/flask-app/ai-context/cache.json +157 -0
- package/test-projects/flask-app/ai-context/context/features/app.json +25 -0
- package/test-projects/flask-app/ai-context/context/flows/routes.json +14 -0
- package/test-projects/flask-app/ai-context/conventions.md +51 -0
- package/test-projects/flask-app/ai-context/dependencies.json +298 -0
- package/test-projects/flask-app/ai-context/entrypoints.md +4 -0
- package/test-projects/flask-app/ai-context/files.json +194 -0
- package/test-projects/flask-app/ai-context/graph/knowledge-graph.json +60 -0
- package/test-projects/flask-app/ai-context/graph/module-graph.json +95 -0
- package/test-projects/flask-app/ai-context/graph/symbol-graph.json +1448 -0
- package/test-projects/flask-app/ai-context/graph/symbol-references.json +45 -0
- package/test-projects/flask-app/ai-context/index-state.json +273 -0
- package/test-projects/flask-app/ai-context/index.db +0 -0
- package/test-projects/flask-app/ai-context/modules.json +21 -0
- package/test-projects/flask-app/ai-context/project.json +13 -0
- package/test-projects/flask-app/ai-context/repo_map.json +400 -0
- package/test-projects/flask-app/ai-context/repo_map.md +98 -0
- package/test-projects/flask-app/ai-context/schema.json +5 -0
- package/test-projects/flask-app/ai-context/summary.md +13 -0
- package/test-projects/flask-app/ai-context/symbols.json +1 -0
- package/test-projects/flask-app/ai-context/tech_stack.md +32 -0
- package/test-projects/flask-app/ai-context/tools.json +10 -0
- package/test-projects/flask-app/app/__init__.py +46 -0
- package/test-projects/flask-app/app/api/__init__.py +7 -0
- package/test-projects/flask-app/app/api/routes.py +122 -0
- package/test-projects/flask-app/app/auth/__init__.py +7 -0
- package/test-projects/flask-app/app/auth/forms.py +52 -0
- package/test-projects/flask-app/app/auth/routes.py +68 -0
- package/test-projects/flask-app/app/blog/__init__.py +7 -0
- package/test-projects/flask-app/app/blog/forms.py +35 -0
- package/test-projects/flask-app/app/blog/routes.py +140 -0
- package/test-projects/flask-app/app/main/__init__.py +7 -0
- package/test-projects/flask-app/app/main/routes.py +88 -0
- package/test-projects/flask-app/app/models.py +177 -0
- package/test-projects/flask-app/config.py +64 -0
- package/test-projects/flask-app/requirements.txt +10 -0
- package/test-projects/laravel-app/.ai-dev/ai_context.md +97 -0
- package/test-projects/laravel-app/.ai-dev/ai_rules.md +47 -0
- package/test-projects/laravel-app/.ai-dev/architecture.md +60 -0
- package/test-projects/laravel-app/.ai-dev/cache.json +161 -0
- package/test-projects/laravel-app/.ai-dev/context/features/app.json +21 -0
- package/test-projects/laravel-app/.ai-dev/context/flows/.json +9 -0
- package/test-projects/laravel-app/.ai-dev/context/flows/category.json +12 -0
- package/test-projects/laravel-app/.ai-dev/context/flows/comment.json +12 -0
- package/test-projects/laravel-app/.ai-dev/context/flows/post.json +12 -0
- package/test-projects/laravel-app/.ai-dev/context/flows/unnamed.json +9 -0
- package/test-projects/laravel-app/.ai-dev/conventions.md +51 -0
- package/test-projects/laravel-app/.ai-dev/entrypoints.md +4 -0
- package/test-projects/laravel-app/.ai-dev/files.json +199 -0
- package/test-projects/laravel-app/.ai-dev/graph/knowledge-graph.json +98 -0
- package/test-projects/laravel-app/.ai-dev/graph/module-graph.json +30 -0
- package/test-projects/laravel-app/.ai-dev/graph/symbol-graph.json +5 -0
- package/test-projects/laravel-app/.ai-dev/graph/symbol-references.json +1 -0
- package/test-projects/laravel-app/.ai-dev/index-state.json +280 -0
- package/test-projects/laravel-app/.ai-dev/index.db +0 -0
- package/test-projects/laravel-app/.ai-dev/modules.json +29 -0
- package/test-projects/laravel-app/.ai-dev/project.json +17 -0
- package/test-projects/laravel-app/.ai-dev/repo_map.json +419 -0
- package/test-projects/laravel-app/.ai-dev/repo_map.md +106 -0
- package/test-projects/laravel-app/.ai-dev/schema.json +5 -0
- package/test-projects/laravel-app/.ai-dev/summary.md +15 -0
- package/test-projects/laravel-app/.ai-dev/symbols.json +1 -0
- package/test-projects/laravel-app/.ai-dev/tech_stack.md +34 -0
- package/test-projects/laravel-app/.ai-dev/tools.json +10 -0
- package/test-projects/laravel-app/README.md +107 -0
- package/test-projects/laravel-app/ai-context/ai_context.md +97 -0
- package/test-projects/laravel-app/ai-context/ai_rules.md +47 -0
- package/test-projects/laravel-app/ai-context/architecture.md +60 -0
- package/test-projects/laravel-app/ai-context/cache.json +161 -0
- package/test-projects/laravel-app/ai-context/context/features/app.json +21 -0
- package/test-projects/laravel-app/ai-context/context/flows/.json +9 -0
- package/test-projects/laravel-app/ai-context/context/flows/category.json +12 -0
- package/test-projects/laravel-app/ai-context/context/flows/comment.json +12 -0
- package/test-projects/laravel-app/ai-context/context/flows/post.json +12 -0
- package/test-projects/laravel-app/ai-context/context/flows/unnamed.json +9 -0
- package/test-projects/laravel-app/ai-context/conventions.md +51 -0
- package/test-projects/laravel-app/ai-context/dependencies.json +6 -0
- package/test-projects/laravel-app/ai-context/entrypoints.md +4 -0
- package/test-projects/laravel-app/ai-context/files.json +199 -0
- package/test-projects/laravel-app/ai-context/graph/knowledge-graph.json +98 -0
- package/test-projects/laravel-app/ai-context/graph/module-graph.json +30 -0
- package/test-projects/laravel-app/ai-context/graph/symbol-graph.json +5 -0
- package/test-projects/laravel-app/ai-context/graph/symbol-references.json +1 -0
- package/test-projects/laravel-app/ai-context/index-state.json +280 -0
- package/test-projects/laravel-app/ai-context/index.db +0 -0
- package/test-projects/laravel-app/ai-context/modules.json +29 -0
- package/test-projects/laravel-app/ai-context/project.json +17 -0
- package/test-projects/laravel-app/ai-context/repo_map.json +419 -0
- package/test-projects/laravel-app/ai-context/repo_map.md +106 -0
- package/test-projects/laravel-app/ai-context/schema.json +5 -0
- package/test-projects/laravel-app/ai-context/summary.md +15 -0
- package/test-projects/laravel-app/ai-context/symbols.json +1 -0
- package/test-projects/laravel-app/ai-context/tech_stack.md +34 -0
- package/test-projects/laravel-app/ai-context/tools.json +10 -0
- package/test-projects/laravel-app/app/Http/Controllers/Api/CategoryController.php +88 -0
- package/test-projects/laravel-app/app/Http/Controllers/Api/CommentController.php +56 -0
- package/test-projects/laravel-app/app/Http/Controllers/Api/PostController.php +174 -0
- package/test-projects/laravel-app/app/Http/Controllers/Controller.php +12 -0
- package/test-projects/laravel-app/app/Models/Category.php +34 -0
- package/test-projects/laravel-app/app/Models/Comment.php +51 -0
- package/test-projects/laravel-app/app/Models/Post.php +108 -0
- package/test-projects/laravel-app/app/Models/User.php +85 -0
- package/test-projects/laravel-app/bootstrap/app.php +25 -0
- package/test-projects/laravel-app/composer.json +35 -0
- package/test-projects/laravel-app/routes/api.php +40 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/ai_context.md +7 -6
- package/test-projects/nestjs-backend/{ai → .ai-dev}/ai_rules.md +4 -4
- package/test-projects/nestjs-backend/{ai → .ai-dev}/architecture.md +6 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/cache.json +65 -33
- package/test-projects/nestjs-backend/.ai-dev/context/flows/auth.controller.json +14 -0
- package/test-projects/nestjs-backend/.ai-dev/context/flows/users.controller.json +14 -0
- package/test-projects/nestjs-backend/.ai-dev/context/flows/users.json +10 -0
- package/test-projects/nestjs-backend/.ai-dev/conventions.md +52 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/files.json +25 -0
- package/test-projects/nestjs-backend/.ai-dev/graph/knowledge-graph.json +132 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/index-state.json +122 -87
- package/{ai → test-projects/nestjs-backend/.ai-dev}/index.db +0 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/project.json +6 -2
- package/test-projects/nestjs-backend/{ai/repo-map.json → .ai-dev/repo_map.json} +106 -2
- package/test-projects/nestjs-backend/.ai-dev/repo_map.md +104 -0
- package/test-projects/nestjs-backend/.ai-dev/schema.json +5 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/summary.md +4 -2
- package/test-projects/nestjs-backend/.ai-dev/symbols.json +1 -0
- package/test-projects/nestjs-backend/{ai → .ai-dev}/tech_stack.md +2 -1
- package/test-projects/nestjs-backend/.ai-dev/tools.json +10 -0
- package/test-projects/nestjs-backend/ai-context/ai_context.md +111 -0
- package/test-projects/nestjs-backend/ai-context/ai_rules.md +52 -0
- package/test-projects/nestjs-backend/ai-context/architecture.md +49 -0
- package/test-projects/nestjs-backend/ai-context/cache.json +169 -0
- package/test-projects/nestjs-backend/ai-context/context/features/src.json +23 -0
- package/test-projects/nestjs-backend/ai-context/context/flows/auth.controller.json +14 -0
- package/test-projects/nestjs-backend/ai-context/context/flows/auth.json +10 -0
- package/test-projects/nestjs-backend/ai-context/context/flows/users..json +10 -0
- package/test-projects/nestjs-backend/ai-context/context/flows/users.controller.json +14 -0
- package/test-projects/nestjs-backend/ai-context/context/flows/users.json +10 -0
- package/test-projects/nestjs-backend/ai-context/conventions.md +52 -0
- package/test-projects/nestjs-backend/ai-context/dependencies.json +152 -0
- package/test-projects/nestjs-backend/ai-context/entrypoints.md +18 -0
- package/test-projects/nestjs-backend/ai-context/files.json +209 -0
- package/test-projects/nestjs-backend/ai-context/graph/knowledge-graph.json +132 -0
- package/test-projects/nestjs-backend/ai-context/graph/module-graph.json +29 -0
- package/test-projects/nestjs-backend/ai-context/graph/symbol-graph.json +304 -0
- package/test-projects/nestjs-backend/ai-context/graph/symbol-references.json +5 -0
- package/test-projects/nestjs-backend/ai-context/index-state.json +294 -0
- package/test-projects/nestjs-backend/ai-context/index.db +0 -0
- package/test-projects/nestjs-backend/ai-context/modules.json +19 -0
- package/test-projects/nestjs-backend/ai-context/project.json +18 -0
- package/test-projects/nestjs-backend/ai-context/repo_map.json +427 -0
- package/test-projects/nestjs-backend/ai-context/repo_map.md +104 -0
- package/test-projects/nestjs-backend/ai-context/schema.json +5 -0
- package/test-projects/nestjs-backend/ai-context/summary.md +13 -0
- package/test-projects/nestjs-backend/ai-context/symbols.json +1 -0
- package/test-projects/nestjs-backend/ai-context/tech_stack.md +38 -0
- package/test-projects/nestjs-backend/ai-context/tools.json +10 -0
- package/test-projects/python-cli/{ai → .ai-dev}/ai_context.md +5 -4
- package/test-projects/python-cli/{ai → .ai-dev}/ai_rules.md +2 -2
- package/test-projects/python-cli/{ai → .ai-dev}/architecture.md +6 -0
- package/test-projects/python-cli/{ai → .ai-dev}/cache.json +53 -33
- package/test-projects/python-cli/.ai-dev/entrypoints.md +4 -0
- package/test-projects/python-cli/{ai → .ai-dev}/files.json +10 -0
- package/test-projects/python-cli/{ai → .ai-dev}/graph/knowledge-graph.json +1 -1
- package/test-projects/python-cli/{ai → .ai-dev}/index-state.json +97 -83
- package/test-projects/python-cli/{ai → .ai-dev}/index.db +0 -0
- package/test-projects/python-cli/{ai → .ai-dev}/project.json +1 -1
- package/test-projects/python-cli/{ai/repo-map.json → .ai-dev/repo_map.json} +79 -2
- package/test-projects/python-cli/.ai-dev/repo_map.md +93 -0
- package/test-projects/python-cli/.ai-dev/schema.json +5 -0
- package/test-projects/python-cli/{ai → .ai-dev}/summary.md +4 -1
- package/test-projects/python-cli/.ai-dev/symbols.json +1 -0
- package/test-projects/python-cli/.ai-dev/tech_stack.md +32 -0
- package/test-projects/python-cli/.ai-dev/tools.json +10 -0
- package/test-projects/python-cli/ai-context/ai_context.md +95 -0
- package/test-projects/python-cli/ai-context/ai_rules.md +47 -0
- package/test-projects/python-cli/ai-context/architecture.md +55 -0
- package/test-projects/python-cli/ai-context/cache.json +149 -0
- package/test-projects/python-cli/ai-context/context/features/cli.json +16 -0
- package/test-projects/python-cli/ai-context/context/flows/list_.json +9 -0
- package/test-projects/python-cli/ai-context/context/flows/remove_.json +9 -0
- package/test-projects/python-cli/ai-context/conventions.md +51 -0
- package/test-projects/python-cli/ai-context/dependencies.json +66 -0
- package/test-projects/python-cli/ai-context/entrypoints.md +4 -0
- package/test-projects/python-cli/ai-context/files.json +184 -0
- package/test-projects/python-cli/ai-context/graph/knowledge-graph.json +83 -0
- package/test-projects/python-cli/ai-context/graph/module-graph.json +31 -0
- package/test-projects/python-cli/ai-context/graph/symbol-graph.json +358 -0
- package/test-projects/python-cli/ai-context/graph/symbol-references.json +11 -0
- package/test-projects/python-cli/ai-context/index-state.json +259 -0
- package/test-projects/{nestjs-backend/ai → python-cli/ai-context}/index.db +0 -0
- package/test-projects/python-cli/ai-context/modules.json +21 -0
- package/test-projects/python-cli/ai-context/project.json +15 -0
- package/test-projects/python-cli/ai-context/repo_map.json +367 -0
- package/test-projects/python-cli/ai-context/repo_map.md +93 -0
- package/test-projects/python-cli/ai-context/schema.json +5 -0
- package/test-projects/python-cli/ai-context/summary.md +14 -0
- package/test-projects/python-cli/ai-context/symbols.json +1 -0
- package/test-projects/python-cli/ai-context/tech_stack.md +32 -0
- package/test-projects/python-cli/ai-context/tools.json +10 -0
- package/test-projects/rails-app/.ai-dev/ai_context.md +94 -0
- package/test-projects/rails-app/.ai-dev/ai_rules.md +47 -0
- package/test-projects/rails-app/.ai-dev/architecture.md +49 -0
- package/test-projects/rails-app/.ai-dev/cache.json +193 -0
- package/test-projects/rails-app/.ai-dev/context/features/app.json +24 -0
- package/test-projects/rails-app/.ai-dev/context/features/config.json +13 -0
- package/test-projects/rails-app/.ai-dev/context/flows/application.json +9 -0
- package/test-projects/rails-app/.ai-dev/context/flows/application_.json +9 -0
- package/test-projects/rails-app/.ai-dev/context/flows/comments.json +11 -0
- package/test-projects/rails-app/.ai-dev/context/flows/comments_.json +11 -0
- package/test-projects/rails-app/.ai-dev/context/flows/posts.json +11 -0
- package/test-projects/rails-app/.ai-dev/context/flows/posts_.json +11 -0
- package/test-projects/rails-app/.ai-dev/context/flows/routes.json +9 -0
- package/test-projects/rails-app/.ai-dev/context/flows/users.json +11 -0
- package/test-projects/rails-app/.ai-dev/context/flows/users_.json +11 -0
- package/test-projects/rails-app/.ai-dev/conventions.md +51 -0
- package/test-projects/rails-app/.ai-dev/dependencies.json +6 -0
- package/test-projects/rails-app/.ai-dev/entrypoints.md +4 -0
- package/test-projects/rails-app/.ai-dev/files.json +239 -0
- package/test-projects/rails-app/.ai-dev/graph/knowledge-graph.json +130 -0
- package/test-projects/rails-app/.ai-dev/graph/module-graph.json +27 -0
- package/test-projects/rails-app/.ai-dev/graph/symbol-graph.json +5 -0
- package/test-projects/rails-app/.ai-dev/graph/symbol-references.json +1 -0
- package/test-projects/rails-app/.ai-dev/index-state.json +336 -0
- package/test-projects/rails-app/.ai-dev/index.db +0 -0
- package/test-projects/rails-app/.ai-dev/modules.json +26 -0
- package/test-projects/rails-app/.ai-dev/project.json +22 -0
- package/test-projects/rails-app/.ai-dev/repo_map.json +486 -0
- package/test-projects/rails-app/.ai-dev/repo_map.md +117 -0
- package/test-projects/rails-app/.ai-dev/schema.json +5 -0
- package/test-projects/rails-app/.ai-dev/summary.md +13 -0
- package/test-projects/rails-app/.ai-dev/symbols.json +1 -0
- package/test-projects/rails-app/.ai-dev/tech_stack.md +32 -0
- package/test-projects/rails-app/.ai-dev/tools.json +10 -0
- package/test-projects/rails-app/Gemfile +38 -0
- package/test-projects/rails-app/README.md +140 -0
- package/test-projects/rails-app/Rakefile +8 -0
- package/test-projects/rails-app/ai-context/ai_context.md +94 -0
- package/test-projects/rails-app/ai-context/ai_rules.md +47 -0
- package/test-projects/rails-app/ai-context/architecture.md +49 -0
- package/test-projects/rails-app/ai-context/cache.json +193 -0
- package/test-projects/rails-app/ai-context/context/features/app.json +24 -0
- package/test-projects/rails-app/ai-context/context/features/config.json +13 -0
- package/test-projects/rails-app/ai-context/context/flows/application.json +9 -0
- package/test-projects/rails-app/ai-context/context/flows/application_.json +9 -0
- package/test-projects/rails-app/ai-context/context/flows/comments.json +11 -0
- package/test-projects/rails-app/ai-context/context/flows/comments_.json +11 -0
- package/test-projects/rails-app/ai-context/context/flows/posts.json +11 -0
- package/test-projects/rails-app/ai-context/context/flows/posts_.json +11 -0
- package/test-projects/rails-app/ai-context/context/flows/routes.json +9 -0
- package/test-projects/rails-app/ai-context/context/flows/users.json +11 -0
- package/test-projects/rails-app/ai-context/context/flows/users_.json +11 -0
- package/test-projects/rails-app/ai-context/conventions.md +51 -0
- package/test-projects/rails-app/ai-context/dependencies.json +6 -0
- package/test-projects/rails-app/ai-context/entrypoints.md +4 -0
- package/test-projects/rails-app/ai-context/files.json +239 -0
- package/test-projects/rails-app/ai-context/graph/knowledge-graph.json +130 -0
- package/test-projects/rails-app/ai-context/graph/module-graph.json +27 -0
- package/test-projects/rails-app/ai-context/graph/symbol-graph.json +5 -0
- package/test-projects/rails-app/ai-context/graph/symbol-references.json +1 -0
- package/test-projects/rails-app/ai-context/index-state.json +336 -0
- package/test-projects/rails-app/ai-context/index.db +0 -0
- package/test-projects/rails-app/ai-context/modules.json +26 -0
- package/test-projects/rails-app/ai-context/project.json +22 -0
- package/test-projects/rails-app/ai-context/repo_map.json +486 -0
- package/test-projects/rails-app/ai-context/repo_map.md +117 -0
- package/test-projects/rails-app/ai-context/schema.json +5 -0
- package/test-projects/rails-app/ai-context/summary.md +13 -0
- package/test-projects/rails-app/ai-context/symbols.json +1 -0
- package/test-projects/rails-app/ai-context/tech_stack.md +32 -0
- package/test-projects/rails-app/ai-context/tools.json +10 -0
- package/test-projects/rails-app/app/controllers/api/comments_controller.rb +75 -0
- package/test-projects/rails-app/app/controllers/api/posts_controller.rb +68 -0
- package/test-projects/rails-app/app/controllers/api/users_controller.rb +54 -0
- package/test-projects/rails-app/app/controllers/application_controller.rb +31 -0
- package/test-projects/rails-app/app/models/comment.rb +34 -0
- package/test-projects/rails-app/app/models/post.rb +36 -0
- package/test-projects/rails-app/app/models/user.rb +28 -0
- package/test-projects/rails-app/app/services/post_service.rb +92 -0
- package/test-projects/rails-app/app/services/user_service.rb +76 -0
- package/test-projects/rails-app/config/application.rb +27 -0
- package/test-projects/rails-app/config/environment.rb +7 -0
- package/test-projects/rails-app/config/routes.rb +15 -0
- package/test-projects/react-app/{ai → .ai-dev}/ai_context.md +5 -4
- package/test-projects/react-app/{ai → .ai-dev}/ai_rules.md +2 -2
- package/test-projects/react-app/{ai → .ai-dev}/architecture.md +6 -0
- package/test-projects/react-app/{ai → .ai-dev}/cache.json +57 -33
- package/test-projects/react-app/.ai-dev/context/flows/UsersPage.json +14 -0
- package/test-projects/react-app/.ai-dev/entrypoints.md +4 -0
- package/test-projects/react-app/{ai → .ai-dev}/files.json +15 -0
- package/test-projects/react-app/{ai → .ai-dev}/graph/knowledge-graph.json +32 -3
- package/test-projects/react-app/{ai → .ai-dev}/index-state.json +105 -84
- package/test-projects/react-app/{ai → .ai-dev}/index.db +0 -0
- package/test-projects/react-app/{ai → .ai-dev}/project.json +2 -1
- package/test-projects/react-app/{ai/repo-map.json → .ai-dev/repo_map.json} +88 -2
- package/test-projects/react-app/.ai-dev/repo_map.md +94 -0
- package/test-projects/react-app/.ai-dev/schema.json +5 -0
- package/test-projects/react-app/{ai → .ai-dev}/summary.md +4 -2
- package/test-projects/react-app/.ai-dev/symbols.json +1 -0
- package/test-projects/react-app/{ai → .ai-dev}/tech_stack.md +2 -1
- package/test-projects/react-app/.ai-dev/tools.json +10 -0
- package/test-projects/react-app/ai-context/ai_context.md +96 -0
- package/test-projects/react-app/ai-context/ai_rules.md +49 -0
- package/test-projects/react-app/ai-context/architecture.md +39 -0
- package/test-projects/react-app/ai-context/cache.json +153 -0
- package/test-projects/react-app/ai-context/context/features/src.json +18 -0
- package/test-projects/react-app/ai-context/context/flows/UsersPage.json +14 -0
- package/test-projects/react-app/ai-context/context/flows/dashboard.json +9 -0
- package/test-projects/react-app/ai-context/context/flows/login.json +9 -0
- package/test-projects/react-app/ai-context/context/flows/users.json +9 -0
- package/test-projects/{nestjs-backend/ai → react-app/ai-context}/conventions.md +2 -2
- package/test-projects/react-app/ai-context/dependencies.json +128 -0
- package/test-projects/react-app/ai-context/entrypoints.md +4 -0
- package/test-projects/react-app/ai-context/files.json +189 -0
- package/test-projects/react-app/ai-context/graph/knowledge-graph.json +112 -0
- package/test-projects/react-app/ai-context/graph/module-graph.json +31 -0
- package/test-projects/react-app/ai-context/graph/symbol-graph.json +868 -0
- package/test-projects/react-app/ai-context/graph/symbol-references.json +31 -0
- package/test-projects/react-app/ai-context/index-state.json +266 -0
- package/test-projects/react-app/ai-context/index.db +0 -0
- package/test-projects/react-app/ai-context/modules.json +17 -0
- package/test-projects/react-app/ai-context/project.json +16 -0
- package/test-projects/react-app/ai-context/repo_map.json +391 -0
- package/test-projects/react-app/ai-context/repo_map.md +94 -0
- package/test-projects/react-app/ai-context/schema.json +5 -0
- package/test-projects/react-app/ai-context/summary.md +13 -0
- package/test-projects/react-app/ai-context/symbols.json +1 -0
- package/test-projects/react-app/ai-context/tech_stack.md +39 -0
- package/test-projects/react-app/ai-context/tools.json +10 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/ai_context.md +5 -4
- package/test-projects/salesforce-cli/{ai → .ai-dev}/ai_rules.md +2 -2
- package/test-projects/salesforce-cli/{ai → .ai-dev}/architecture.md +6 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/cache.json +52 -32
- package/test-projects/salesforce-cli/.ai-dev/conventions.md +51 -0
- package/test-projects/salesforce-cli/.ai-dev/dependencies.json +6 -0
- package/test-projects/salesforce-cli/.ai-dev/entrypoints.md +4 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/files.json +10 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/graph/knowledge-graph.json +1 -1
- package/test-projects/salesforce-cli/.ai-dev/graph/symbol-references.json +1 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/index-state.json +90 -76
- package/test-projects/salesforce-cli/{ai → .ai-dev}/index.db +0 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/project.json +1 -1
- package/test-projects/salesforce-cli/{ai/repo-map.json → .ai-dev/repo_map.json} +79 -2
- package/test-projects/salesforce-cli/.ai-dev/repo_map.md +80 -0
- package/test-projects/salesforce-cli/.ai-dev/schema.json +5 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/summary.md +4 -2
- package/test-projects/salesforce-cli/.ai-dev/symbols.json +1 -0
- package/test-projects/salesforce-cli/{ai → .ai-dev}/tech_stack.md +2 -1
- package/test-projects/salesforce-cli/.ai-dev/tools.json +10 -0
- package/test-projects/salesforce-cli/ai-context/ai_context.md +89 -0
- package/test-projects/salesforce-cli/ai-context/ai_rules.md +47 -0
- package/test-projects/salesforce-cli/ai-context/architecture.md +39 -0
- package/test-projects/salesforce-cli/ai-context/cache.json +125 -0
- package/test-projects/salesforce-cli/ai-context/context/features/force-app.json +14 -0
- package/test-projects/salesforce-cli/ai-context/context/flows/account.json +9 -0
- package/test-projects/salesforce-cli/ai-context/context/flows/opportunity.json +9 -0
- package/test-projects/salesforce-cli/ai-context/conventions.md +51 -0
- package/test-projects/salesforce-cli/ai-context/dependencies.json +6 -0
- package/test-projects/salesforce-cli/ai-context/entrypoints.md +4 -0
- package/test-projects/{express-api/ai → salesforce-cli/ai-context}/files.json +27 -42
- package/test-projects/salesforce-cli/ai-context/graph/knowledge-graph.json +64 -0
- package/test-projects/salesforce-cli/ai-context/graph/module-graph.json +13 -0
- package/test-projects/salesforce-cli/ai-context/graph/symbol-graph.json +148 -0
- package/test-projects/salesforce-cli/ai-context/graph/symbol-references.json +1 -0
- package/test-projects/salesforce-cli/ai-context/index-state.json +217 -0
- package/test-projects/{express-api/ai → salesforce-cli/ai-context}/index.db +0 -0
- package/test-projects/salesforce-cli/ai-context/modules.json +12 -0
- package/test-projects/salesforce-cli/ai-context/project.json +14 -0
- package/test-projects/salesforce-cli/ai-context/repo_map.json +328 -0
- package/test-projects/salesforce-cli/ai-context/repo_map.md +80 -0
- package/test-projects/salesforce-cli/ai-context/schema.json +5 -0
- package/test-projects/salesforce-cli/ai-context/summary.md +13 -0
- package/test-projects/salesforce-cli/ai-context/symbols.json +1 -0
- package/test-projects/{python-cli/ai → salesforce-cli/ai-context}/tech_stack.md +3 -2
- package/test-projects/salesforce-cli/ai-context/tools.json +10 -0
- package/test-projects/spring-boot-app/.ai-dev/ai_context.md +91 -0
- package/test-projects/spring-boot-app/.ai-dev/ai_rules.md +48 -0
- package/test-projects/spring-boot-app/.ai-dev/architecture.md +39 -0
- package/test-projects/spring-boot-app/.ai-dev/cache.json +173 -0
- package/test-projects/spring-boot-app/.ai-dev/context/features/src.json +26 -0
- package/test-projects/spring-boot-app/.ai-dev/context/flows/PostController.json +19 -0
- package/test-projects/spring-boot-app/.ai-dev/context/flows/UserController.json +19 -0
- package/test-projects/spring-boot-app/.ai-dev/context/flows/comment.json +11 -0
- package/test-projects/spring-boot-app/.ai-dev/context/flows/post.json +14 -0
- package/test-projects/spring-boot-app/.ai-dev/context/flows/user.json +14 -0
- package/test-projects/spring-boot-app/.ai-dev/conventions.md +52 -0
- package/test-projects/spring-boot-app/.ai-dev/dependencies.json +326 -0
- package/test-projects/spring-boot-app/.ai-dev/entrypoints.md +4 -0
- package/test-projects/spring-boot-app/.ai-dev/files.json +214 -0
- package/test-projects/spring-boot-app/.ai-dev/graph/knowledge-graph.json +231 -0
- package/test-projects/spring-boot-app/.ai-dev/graph/module-graph.json +22 -0
- package/test-projects/spring-boot-app/.ai-dev/graph/symbol-graph.json +794 -0
- package/test-projects/spring-boot-app/.ai-dev/graph/symbol-references.json +70 -0
- package/test-projects/spring-boot-app/.ai-dev/index-state.json +301 -0
- package/test-projects/spring-boot-app/.ai-dev/index.db +0 -0
- package/test-projects/spring-boot-app/.ai-dev/modules.json +21 -0
- package/test-projects/spring-boot-app/.ai-dev/project.json +17 -0
- package/test-projects/spring-boot-app/.ai-dev/repo_map.json +461 -0
- package/test-projects/spring-boot-app/.ai-dev/repo_map.md +109 -0
- package/test-projects/spring-boot-app/.ai-dev/schema.json +5 -0
- package/test-projects/spring-boot-app/.ai-dev/summary.md +12 -0
- package/test-projects/spring-boot-app/.ai-dev/symbols.json +1 -0
- package/test-projects/spring-boot-app/.ai-dev/tech_stack.md +32 -0
- package/test-projects/spring-boot-app/.ai-dev/tools.json +10 -0
- package/test-projects/spring-boot-app/.classpath +57 -0
- package/test-projects/spring-boot-app/.factorypath +69 -0
- package/test-projects/spring-boot-app/.project +34 -0
- package/test-projects/spring-boot-app/.settings/org.eclipse.core.resources.prefs +4 -0
- package/test-projects/spring-boot-app/.settings/org.eclipse.jdt.apt.core.prefs +4 -0
- package/test-projects/spring-boot-app/.settings/org.eclipse.jdt.core.prefs +10 -0
- package/test-projects/spring-boot-app/.settings/org.eclipse.m2e.core.prefs +4 -0
- package/test-projects/spring-boot-app/README.md +122 -0
- package/test-projects/spring-boot-app/ai-context/ai_context.md +91 -0
- package/test-projects/spring-boot-app/ai-context/ai_rules.md +48 -0
- package/test-projects/spring-boot-app/ai-context/architecture.md +39 -0
- package/test-projects/spring-boot-app/ai-context/cache.json +173 -0
- package/test-projects/spring-boot-app/ai-context/context/features/src.json +26 -0
- package/test-projects/spring-boot-app/ai-context/context/flows/PostController.json +19 -0
- package/test-projects/spring-boot-app/ai-context/context/flows/UserController.json +19 -0
- package/test-projects/spring-boot-app/ai-context/context/flows/comment.json +11 -0
- package/test-projects/spring-boot-app/ai-context/context/flows/post.json +14 -0
- package/test-projects/spring-boot-app/ai-context/context/flows/user.json +14 -0
- package/test-projects/spring-boot-app/ai-context/conventions.md +52 -0
- package/test-projects/spring-boot-app/ai-context/dependencies.json +326 -0
- package/test-projects/spring-boot-app/ai-context/entrypoints.md +4 -0
- package/test-projects/spring-boot-app/ai-context/files.json +214 -0
- package/test-projects/spring-boot-app/ai-context/graph/knowledge-graph.json +231 -0
- package/test-projects/spring-boot-app/ai-context/graph/module-graph.json +22 -0
- package/test-projects/spring-boot-app/ai-context/graph/symbol-graph.json +794 -0
- package/test-projects/spring-boot-app/ai-context/graph/symbol-references.json +70 -0
- package/test-projects/spring-boot-app/ai-context/index-state.json +301 -0
- package/test-projects/spring-boot-app/ai-context/index.db +0 -0
- package/test-projects/spring-boot-app/ai-context/modules.json +21 -0
- package/test-projects/spring-boot-app/ai-context/project.json +17 -0
- package/test-projects/spring-boot-app/ai-context/repo_map.json +461 -0
- package/test-projects/spring-boot-app/ai-context/repo_map.md +109 -0
- package/test-projects/spring-boot-app/ai-context/schema.json +5 -0
- package/test-projects/spring-boot-app/ai-context/summary.md +12 -0
- package/test-projects/spring-boot-app/ai-context/symbols.json +1 -0
- package/test-projects/spring-boot-app/ai-context/tech_stack.md +32 -0
- package/test-projects/spring-boot-app/ai-context/tools.json +10 -0
- package/test-projects/spring-boot-app/pom.xml +79 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/DemoApplication.java +12 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/CommentController.java +89 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/PostController.java +92 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/controllers/UserController.java +84 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/Comment.java +38 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/Post.java +56 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/models/User.java +44 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/CommentRepository.java +21 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/PostRepository.java +18 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/repositories/UserRepository.java +15 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/services/PostService.java +83 -0
- package/test-projects/spring-boot-app/src/main/java/com/example/demo/services/UserService.java +62 -0
- package/test-projects/spring-boot-app/src/main/resources/application.properties +22 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/DemoApplication.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController$CommentCreateRequest.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController$CommentUpdateRequest.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/CommentController.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController$PostCreateRequest.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController$PostUpdateRequest.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/PostController.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController$UserCreateRequest.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController$UserUpdateRequest.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/controllers/UserController.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/models/Comment.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/models/Post.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/models/User.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/CommentRepository.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/PostRepository.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/repositories/UserRepository.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/services/PostService.class +0 -0
- package/test-projects/spring-boot-app/target/classes/com/example/demo/services/UserService.class +0 -0
- package/test_adapters.mjs +87 -0
- package/tests/e2e/README.md +20 -20
- package/tests/phase2-fixes.test.ts +200 -0
- package/ANALISIS_MEJORAS.md +0 -327
- package/TEST_RESULTS.md +0 -198
- package/TEST_RESULTS_COMPARATIVE.md +0 -159
- package/TEST_RESULTS_COMPLETE.md +0 -127
- package/TEST_RESULTS_COMPREHENSIVE.md +0 -208
- package/ai/cache.json +0 -1109
- package/ai/context/features/test-projects.json +0 -56
- package/ai/context/flows/add_.json +0 -9
- package/ai/context/flows/auth..json +0 -10
- package/ai/context/flows/list_.json +0 -9
- package/ai/context/flows/remove_.json +0 -9
- package/ai/context/flows/user.json +0 -14
- package/ai/context/flows/users..json +0 -10
- package/ai/dependencies.json +0 -485
- package/ai/files.json +0 -2029
- package/ai/git/recent-features.json +0 -3
- package/ai/git/recent-flows.json +0 -3
- package/ai/graph/module-graph.json +0 -389
- package/ai/graph/symbol-graph.json +0 -85206
- package/ai/graph/symbol-references.json +0 -2707
- package/ai/hierarchy.json +0 -7
- package/ai/index-state.json +0 -1939
- package/ai/modules.json +0 -299
- package/ai/repo-map.json +0 -2867
- package/test-projects/express-api/ai/cache.json +0 -125
- package/test-projects/express-api/ai/graph/knowledge-graph.json +0 -98
- package/test-projects/express-api/ai/graph/module-graph.json +0 -44
- package/test-projects/express-api/ai/graph/symbol-graph.json +0 -882
- package/test-projects/express-api/ai/graph/symbol-references.json +0 -51
- package/test-projects/express-api/ai/index-state.json +0 -238
- package/test-projects/express-api/ai/symbols.json +0 -1174
- package/test-projects/nestjs-backend/ai/graph/knowledge-graph.json +0 -74
- package/test-projects/nestjs-backend/ai/repo_map.json +0 -141
- package/test-projects/nestjs-backend/ai/repo_map.md +0 -39
- package/test-projects/nestjs-backend/ai/symbols.json +0 -527
- package/test-projects/python-cli/ai/context/flows/add_.json +0 -9
- package/test-projects/python-cli/ai/repo_map.json +0 -99
- package/test-projects/python-cli/ai/repo_map.md +0 -32
- package/test-projects/python-cli/ai/symbols.json +0 -475
- package/test-projects/react-app/ai/repo_map.json +0 -114
- package/test-projects/react-app/ai/repo_map.md +0 -31
- package/test-projects/react-app/ai/schema.json +0 -5
- package/test-projects/react-app/ai/symbols.json +0 -985
- package/test-projects/salesforce-cli/ai/repo_map.json +0 -69
- package/test-projects/salesforce-cli/ai/repo_map.md +0 -21
- package/test-projects/salesforce-cli/ai/schema.json +0 -5
- package/test-projects/salesforce-cli/ai/symbols.json +0 -245
- /package/{ai → .ai-dev}/ccp/jira-123/context.json +0 -0
- /package/{ai → .ai-dev}/context/features/commands.json +0 -0
- /package/{ai → .ai-dev}/context/features/src.json +0 -0
- /package/{ai → .ai-dev}/context/flows/account.json +0 -0
- /package/{ai → .ai-dev}/context/flows/ai-first.json +0 -0
- /package/{ai → .ai-dev}/context/flows/dashboard.json +0 -0
- /package/{ai → .ai-dev}/context/flows/doctor.json +0 -0
- /package/{ai → .ai-dev}/context/flows/explore.json +0 -0
- /package/{ai → .ai-dev}/context/flows/login.json +0 -0
- /package/{ai → .ai-dev}/context/flows/opportunity.json +0 -0
- /package/{ai → .ai-dev}/context/flows/users.json +0 -0
- /package/{ai → .ai-dev}/context/repo.json +0 -0
- /package/{ai → .ai-dev}/context/utils.json +0 -0
- /package/{ai → .ai-dev}/conventions.md +0 -0
- /package/{ai → .ai-dev}/embeddings.json +0 -0
- /package/{ai → .ai-dev}/entrypoints.md +0 -0
- /package/{ai/symbols.json → .ai-dev/git/recent-features.json} +0 -0
- /package/{ai → .ai-dev}/tools.json +0 -0
- /package/{test-projects/express-api/ai → ai-context}/tools.json +0 -0
- /package/test-projects/{salesforce-cli/ai → django-app/.ai-dev}/conventions.md +0 -0
- /package/test-projects/{python-cli/ai → django-app/.ai-dev}/entrypoints.md +0 -0
- /package/test-projects/{salesforce-cli/ai → django-app/.ai-dev}/graph/symbol-references.json +0 -0
- /package/test-projects/{nestjs-backend/ai → django-app/.ai-dev}/tools.json +0 -0
- /package/test-projects/{react-app/ai → django-app/ai-context}/entrypoints.md +0 -0
- /package/test-projects/{python-cli/ai → django-app/ai-context}/tools.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/ai_context.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/ai_rules.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/architecture.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/context/features/controllers.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/context/features/services.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/context/flows/auth.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/context/flows/user.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/conventions.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/dependencies.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/entrypoints.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/modules.json +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/repo_map.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/summary.md +0 -0
- /package/test-projects/express-api/{ai → .ai-dev}/tech_stack.md +0 -0
- /package/test-projects/{react-app/ai → express-api/.ai-dev}/tools.json +0 -0
- /package/test-projects/{salesforce-cli/ai → express-api/ai-context}/tools.json +0 -0
- /package/test-projects/{salesforce-cli/ai → fastapi-app/.ai-dev}/entrypoints.md +0 -0
- /package/test-projects/{salesforce-cli/ai → laravel-app/.ai-dev}/dependencies.json +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/context/features/src.json +0 -0
- /package/test-projects/nestjs-backend/{ai/context/flows/auth..json → .ai-dev/context/flows/auth.json} +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/context/flows/users..json +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/dependencies.json +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/entrypoints.md +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/graph/module-graph.json +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/graph/symbol-references.json +0 -0
- /package/test-projects/nestjs-backend/{ai → .ai-dev}/modules.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/context/features/cli.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/context/flows/list_.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/context/flows/remove_.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/conventions.md +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/dependencies.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/graph/module-graph.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/graph/symbol-references.json +0 -0
- /package/test-projects/python-cli/{ai → .ai-dev}/modules.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/context/features/src.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/context/flows/dashboard.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/context/flows/login.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/context/flows/users.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/conventions.md +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/dependencies.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/graph/module-graph.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/graph/symbol-references.json +0 -0
- /package/test-projects/react-app/{ai → .ai-dev}/modules.json +0 -0
- /package/test-projects/salesforce-cli/{ai → .ai-dev}/context/features/force-app.json +0 -0
- /package/test-projects/salesforce-cli/{ai → .ai-dev}/context/flows/account.json +0 -0
- /package/test-projects/salesforce-cli/{ai → .ai-dev}/context/flows/opportunity.json +0 -0
- /package/test-projects/salesforce-cli/{ai → .ai-dev}/graph/module-graph.json +0 -0
- /package/test-projects/salesforce-cli/{ai → .ai-dev}/graph/symbol-graph.json +0 -0
- /package/test-projects/salesforce-cli/{ai → .ai-dev}/modules.json +0 -0
package/examples/README.md
CHANGED
|
@@ -40,7 +40,7 @@ touch examples/0X-your-framework.md
|
|
|
40
40
|
git clone <repo>
|
|
41
41
|
cd <repo>
|
|
42
42
|
npx ai-first init
|
|
43
|
-
# Read ai/ai_context.md
|
|
43
|
+
# Read ai-context/ai_context.md
|
|
44
44
|
# Now you understand the project in 2 minutes
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -50,13 +50,13 @@ npx ai-first init
|
|
|
50
50
|
npx ai-first init
|
|
51
51
|
|
|
52
52
|
# Then ask:
|
|
53
|
-
"Read ai/ai_context.md and help me add feature X"
|
|
53
|
+
"Read ai-context/ai_context.md and help me add feature X"
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### For Technical Leads
|
|
57
57
|
```
|
|
58
58
|
# Onboard new team members
|
|
59
59
|
npx ai-first init
|
|
60
|
-
# New hire reads ai/ai_context.md
|
|
60
|
+
# New hire reads ai-context/ai_context.md
|
|
61
61
|
# Instant project understanding
|
|
62
62
|
```
|
package/package.json
CHANGED
package/src/analyzers/symbols.ts
CHANGED
|
@@ -66,20 +66,24 @@ function parseFileForSymbols(file: FileInfo): Symbol[] {
|
|
|
66
66
|
const content = readFile(file.path);
|
|
67
67
|
const lines = content.split("\n");
|
|
68
68
|
|
|
69
|
-
if (file.extension === "ts" || file.extension === "tsx" || file.extension === "js" || file.extension === "jsx") {
|
|
69
|
+
if (file.extension === ".ts" || file.extension === ".tsx" || file.extension === ".js" || file.extension === ".jsx") {
|
|
70
70
|
parseJavaScriptTypeScript(file, content, lines, symbols);
|
|
71
|
-
} else if (file.extension === "py") {
|
|
71
|
+
} else if (file.extension === ".py") {
|
|
72
72
|
parsePython(file, content, lines, symbols);
|
|
73
|
-
} else if (file.extension === "go") {
|
|
73
|
+
} else if (file.extension === ".go") {
|
|
74
74
|
parseGo(file, content, lines, symbols);
|
|
75
|
-
} else if (file.extension === "rs") {
|
|
75
|
+
} else if (file.extension === ".rs") {
|
|
76
76
|
parseRust(file, content, lines, symbols);
|
|
77
|
-
} else if (file.extension === "java") {
|
|
77
|
+
} else if (file.extension === ".java") {
|
|
78
78
|
parseJava(file, content, lines, symbols);
|
|
79
|
-
} else if (file.extension === "cs") {
|
|
79
|
+
} else if (file.extension === ".cs") {
|
|
80
80
|
parseCSharp(file, content, lines, symbols);
|
|
81
|
-
} else if (file.extension === "cls" || file.extension === "trigger") {
|
|
81
|
+
} else if (file.extension === ".cls" || file.extension === ".trigger") {
|
|
82
82
|
parseApex(file, content, lines, symbols);
|
|
83
|
+
} else if (file.extension === ".php") {
|
|
84
|
+
parsePHP(file, content, lines, symbols);
|
|
85
|
+
} else if (file.extension === ".rb") {
|
|
86
|
+
parseRuby(file, content, lines, symbols);
|
|
83
87
|
}
|
|
84
88
|
} catch {}
|
|
85
89
|
|
|
@@ -311,6 +315,139 @@ function parseJava(file: FileInfo, content: string, lines: string[], symbols: Sy
|
|
|
311
315
|
}
|
|
312
316
|
}
|
|
313
317
|
|
|
318
|
+
/**
|
|
319
|
+
* Parse PHP files
|
|
320
|
+
*/
|
|
321
|
+
function parsePHP(file: FileInfo, content: string, lines: string[], symbols: Symbol[]): void {
|
|
322
|
+
for (let i = 0; i < lines.length; i++) {
|
|
323
|
+
const line = lines[i].trim();
|
|
324
|
+
|
|
325
|
+
// Classes: class ClassName, public class ClassName
|
|
326
|
+
const classMatch = line.match(/^(?:public\s+|private\s+|protected\s+)?class\s+(\w+)/);
|
|
327
|
+
if (classMatch) {
|
|
328
|
+
symbols.push({
|
|
329
|
+
id: generateSymbolId(file.relativePath, classMatch[1]),
|
|
330
|
+
name: classMatch[1],
|
|
331
|
+
type: "class",
|
|
332
|
+
file: file.relativePath,
|
|
333
|
+
line: i + 1,
|
|
334
|
+
export: true,
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Interfaces: interface InterfaceName
|
|
339
|
+
const interfaceMatch = line.match(/^(?:public\s+)?interface\s+(\w+)/);
|
|
340
|
+
if (interfaceMatch) {
|
|
341
|
+
symbols.push({
|
|
342
|
+
id: generateSymbolId(file.relativePath, interfaceMatch[1]),
|
|
343
|
+
name: interfaceMatch[1],
|
|
344
|
+
type: "interface",
|
|
345
|
+
file: file.relativePath,
|
|
346
|
+
line: i + 1,
|
|
347
|
+
export: true,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Functions: function functionName
|
|
352
|
+
const funcMatch = line.match(/^(?:public\s+|private\s+|protected\s+)?function\s+(\w+)/);
|
|
353
|
+
if (funcMatch) {
|
|
354
|
+
symbols.push({
|
|
355
|
+
id: generateSymbolId(file.relativePath, funcMatch[1]),
|
|
356
|
+
name: funcMatch[1],
|
|
357
|
+
type: "function",
|
|
358
|
+
file: file.relativePath,
|
|
359
|
+
line: i + 1,
|
|
360
|
+
export: true,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// Constants: const CONST_NAME
|
|
365
|
+
const constMatch = line.match(/^const\s+(\w+)/);
|
|
366
|
+
if (constMatch) {
|
|
367
|
+
symbols.push({
|
|
368
|
+
id: generateSymbolId(file.relativePath, constMatch[1]),
|
|
369
|
+
name: constMatch[1],
|
|
370
|
+
type: "const",
|
|
371
|
+
file: file.relativePath,
|
|
372
|
+
line: i + 1,
|
|
373
|
+
export: true,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Parse Ruby files
|
|
381
|
+
*/
|
|
382
|
+
function parseRuby(file: FileInfo, content: string, lines: string[], symbols: Symbol[]): void {
|
|
383
|
+
for (let i = 0; i < lines.length; i++) {
|
|
384
|
+
const line = lines[i].trim();
|
|
385
|
+
|
|
386
|
+
// Classes: class ClassName
|
|
387
|
+
const classMatch = line.match(/^class\s+(\w+)/);
|
|
388
|
+
if (classMatch) {
|
|
389
|
+
symbols.push({
|
|
390
|
+
id: generateSymbolId(file.relativePath, classMatch[1]),
|
|
391
|
+
name: classMatch[1],
|
|
392
|
+
type: "class",
|
|
393
|
+
file: file.relativePath,
|
|
394
|
+
line: i + 1,
|
|
395
|
+
export: true,
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Modules: module ModuleName
|
|
400
|
+
const moduleMatch = line.match(/^module\s+(\w+)/);
|
|
401
|
+
if (moduleMatch) {
|
|
402
|
+
symbols.push({
|
|
403
|
+
id: generateSymbolId(file.relativePath, moduleMatch[1]),
|
|
404
|
+
name: moduleMatch[1],
|
|
405
|
+
type: "module",
|
|
406
|
+
file: file.relativePath,
|
|
407
|
+
line: i + 1,
|
|
408
|
+
export: true,
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
const methodMatch = line.match(/^def\s+(\w+)/);
|
|
413
|
+
if (methodMatch) {
|
|
414
|
+
symbols.push({
|
|
415
|
+
id: generateSymbolId(file.relativePath, methodMatch[1]),
|
|
416
|
+
name: methodMatch[1],
|
|
417
|
+
type: "function",
|
|
418
|
+
file: file.relativePath,
|
|
419
|
+
line: i + 1,
|
|
420
|
+
export: true,
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
const classMethodMatch = line.match(/^def\s+self\.(\w+)/);
|
|
425
|
+
if (classMethodMatch) {
|
|
426
|
+
symbols.push({
|
|
427
|
+
id: generateSymbolId(file.relativePath, classMethodMatch[1]),
|
|
428
|
+
name: classMethodMatch[1],
|
|
429
|
+
type: "function",
|
|
430
|
+
file: file.relativePath,
|
|
431
|
+
line: i + 1,
|
|
432
|
+
export: true,
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
// Constants: CONST_NAME =
|
|
437
|
+
const constMatch = line.match(/^([A-Z][A-Z0-9_]*)\s*=/);
|
|
438
|
+
if (constMatch) {
|
|
439
|
+
symbols.push({
|
|
440
|
+
id: generateSymbolId(file.relativePath, constMatch[1]),
|
|
441
|
+
name: constMatch[1],
|
|
442
|
+
type: "const",
|
|
443
|
+
file: file.relativePath,
|
|
444
|
+
line: i + 1,
|
|
445
|
+
export: true,
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
314
451
|
/**
|
|
315
452
|
* Parse Apex (Salesforce) files
|
|
316
453
|
*/
|
package/src/commands/ai-first.ts
CHANGED
|
@@ -18,7 +18,7 @@ import { generateAIRules, generateAIRulesFile } from "../analyzers/aiRules.js";
|
|
|
18
18
|
import { generateModuleGraph } from "../core/moduleGraph.js";
|
|
19
19
|
import { loadIndexState, computeFileHash, getFilesToIndex, getChangedFilesGit } from "../core/indexState.js";
|
|
20
20
|
import { chunkFiles } from "../core/chunker.js";
|
|
21
|
-
import { generateEmbeddings, saveEmbeddings } from "../core/embeddings.js";
|
|
21
|
+
import { generateEmbeddings, saveEmbeddings, createEmbeddingsTable } from "../core/embeddings.js";
|
|
22
22
|
import { generateContextModules, createCCP, listCCPs, getCCP } from "../core/ccp.js";
|
|
23
23
|
import { generateSemanticContexts } from "../core/semanticContexts.js";
|
|
24
24
|
import { doctorMain } from "./doctor.js";
|
|
@@ -28,6 +28,7 @@ import { detectGitRepository, generateGitContext, analyzeGitActivity, getRecentF
|
|
|
28
28
|
import { buildKnowledgeGraph, loadKnowledgeGraph } from "../core/knowledgeGraphBuilder.js";
|
|
29
29
|
import { runIncrementalUpdate, detectChangedFiles } from "../core/incrementalAnalyzer.js";
|
|
30
30
|
import { generateAllSchema } from "../core/schema.js";
|
|
31
|
+
import { Database } from "sql.js";
|
|
31
32
|
import ora from "ora";
|
|
32
33
|
import process from "process";
|
|
33
34
|
|
|
@@ -53,7 +54,7 @@ export interface AIFirstResult {
|
|
|
53
54
|
export async function runAIFirst(options: AIFirstOptions = {}): Promise<AIFirstResult> {
|
|
54
55
|
const {
|
|
55
56
|
rootDir = process.cwd(),
|
|
56
|
-
outputDir = path.join(rootDir, "ai"),
|
|
57
|
+
outputDir = path.join(rootDir, "ai-context"),
|
|
57
58
|
} = options;
|
|
58
59
|
|
|
59
60
|
const filesCreated: string[] = [];
|
|
@@ -419,7 +420,12 @@ Example queries (for AI agents):
|
|
|
419
420
|
outputPath = path.join(rootDir, "ai", "index.db");
|
|
420
421
|
}
|
|
421
422
|
|
|
422
|
-
const aiDir = path.join(rootDir, "ai");
|
|
423
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
424
|
+
|
|
425
|
+
// Create output directory if it doesn't exist
|
|
426
|
+
if (!fs.existsSync(aiDir)) {
|
|
427
|
+
fs.mkdirSync(aiDir, { recursive: true });
|
|
428
|
+
}
|
|
423
429
|
|
|
424
430
|
// Load existing index state for incremental indexing
|
|
425
431
|
const existingState = loadIndexState(aiDir);
|
|
@@ -516,7 +522,23 @@ Example queries (for AI agents):
|
|
|
516
522
|
console.log(` Created ${chunks.length} chunks`);
|
|
517
523
|
|
|
518
524
|
const { embeddings, model } = await generateEmbeddings(chunks);
|
|
519
|
-
|
|
525
|
+
|
|
526
|
+
const initSqlJs = (await import("sql.js")).default;
|
|
527
|
+
const SQL = await initSqlJs();
|
|
528
|
+
const dbPath = outputPath || path.join(rootDir, "ai", "index.db");
|
|
529
|
+
let db: Database;
|
|
530
|
+
if (fs.existsSync(dbPath)) {
|
|
531
|
+
const fileBuffer = fs.readFileSync(dbPath);
|
|
532
|
+
db = new SQL.Database(fileBuffer);
|
|
533
|
+
} else {
|
|
534
|
+
db = new SQL.Database();
|
|
535
|
+
}
|
|
536
|
+
createEmbeddingsTable(db);
|
|
537
|
+
saveEmbeddings(db, embeddings, model, 384);
|
|
538
|
+
const data = db.export();
|
|
539
|
+
const buffer = Buffer.from(data);
|
|
540
|
+
fs.writeFileSync(dbPath, buffer);
|
|
541
|
+
db.close();
|
|
520
542
|
console.log(" ✅ Semantic indexing complete");
|
|
521
543
|
} catch (error) {
|
|
522
544
|
console.log(" ⚠️ Semantic indexing failed:", error);
|
|
@@ -614,7 +636,7 @@ Features:
|
|
|
614
636
|
// Context command - generate AI context files OR symbol-specific context packet
|
|
615
637
|
args.shift();
|
|
616
638
|
let rootDir = process.cwd();
|
|
617
|
-
let outputDir = path.join(rootDir, "ai");
|
|
639
|
+
let outputDir = path.join(rootDir, "ai-context");
|
|
618
640
|
let symbolArg: string | undefined;
|
|
619
641
|
let depth = 1;
|
|
620
642
|
let maxSymbols = 50;
|
|
@@ -628,7 +650,7 @@ Features:
|
|
|
628
650
|
case "--root":
|
|
629
651
|
case "-r":
|
|
630
652
|
rootDir = args[++i];
|
|
631
|
-
outputDir = path.join(rootDir, "ai");
|
|
653
|
+
outputDir = path.join(rootDir, "ai-context");
|
|
632
654
|
break;
|
|
633
655
|
case "--output":
|
|
634
656
|
case "-o":
|
|
@@ -1098,7 +1120,7 @@ Options:
|
|
|
1098
1120
|
|
|
1099
1121
|
console.log("\n🗺️ Generating repository map...\n");
|
|
1100
1122
|
const scan = scanRepo(rootDir);
|
|
1101
|
-
const aiDir = path.join(rootDir, "ai");
|
|
1123
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
1102
1124
|
|
|
1103
1125
|
// files.json
|
|
1104
1126
|
const filesJson = { files: scan.files.map(f => ({ path: f.relativePath, name: f.name, ext: f.extension })) };
|
|
@@ -1119,8 +1141,8 @@ Options:
|
|
|
1119
1141
|
|
|
1120
1142
|
// repo-map.json (use local generateRepoMapJson function)
|
|
1121
1143
|
const repoMapData = JSON.parse(generateRepoMapJson(scan.files.map(f => ({ relativePath: f.relativePath, name: f.name, extension: f.extension }))));
|
|
1122
|
-
fs.writeFileSync(path.join(aiDir, "
|
|
1123
|
-
console.log(" ✅
|
|
1144
|
+
fs.writeFileSync(path.join(aiDir, "repo_map.json"), JSON.stringify(repoMapData, null, 2));
|
|
1145
|
+
console.log(" ✅ repo_map.json");
|
|
1124
1146
|
|
|
1125
1147
|
// module-graph.json
|
|
1126
1148
|
const { generateModuleGraph } = await import("../core/moduleGraph.js");
|
|
@@ -1183,7 +1205,7 @@ Examples:
|
|
|
1183
1205
|
args.shift();
|
|
1184
1206
|
|
|
1185
1207
|
let rootDir = process.cwd();
|
|
1186
|
-
let aiDir = path.join(rootDir, "ai");
|
|
1208
|
+
let aiDir = path.join(rootDir, "ai-context");
|
|
1187
1209
|
let limit = 50;
|
|
1188
1210
|
let showActivity = false;
|
|
1189
1211
|
let showJson = false;
|
|
@@ -1194,7 +1216,7 @@ Examples:
|
|
|
1194
1216
|
case "--root":
|
|
1195
1217
|
case "-r":
|
|
1196
1218
|
rootDir = args[++i];
|
|
1197
|
-
aiDir = path.join(rootDir, "ai");
|
|
1219
|
+
aiDir = path.join(rootDir, "ai-context");
|
|
1198
1220
|
break;
|
|
1199
1221
|
case "--limit":
|
|
1200
1222
|
case "-n":
|
|
@@ -1290,7 +1312,7 @@ Examples:
|
|
|
1290
1312
|
args.shift();
|
|
1291
1313
|
|
|
1292
1314
|
let rootDir = process.cwd();
|
|
1293
|
-
let aiDir = path.join(rootDir, "ai");
|
|
1315
|
+
let aiDir = path.join(rootDir, "ai-context");
|
|
1294
1316
|
let showJson = false;
|
|
1295
1317
|
let showStats = false;
|
|
1296
1318
|
|
|
@@ -1300,7 +1322,7 @@ Examples:
|
|
|
1300
1322
|
case "--root":
|
|
1301
1323
|
case "-r":
|
|
1302
1324
|
rootDir = args[++i];
|
|
1303
|
-
aiDir = path.join(rootDir, "ai");
|
|
1325
|
+
aiDir = path.join(rootDir, "ai-context");
|
|
1304
1326
|
break;
|
|
1305
1327
|
case "--json":
|
|
1306
1328
|
showJson = true;
|
|
@@ -1373,7 +1395,7 @@ Examples:
|
|
|
1373
1395
|
args.shift();
|
|
1374
1396
|
|
|
1375
1397
|
let rootDir = process.cwd();
|
|
1376
|
-
let aiDir = path.join(rootDir, "ai");
|
|
1398
|
+
let aiDir = path.join(rootDir, "ai-context");
|
|
1377
1399
|
let useGit = true;
|
|
1378
1400
|
let showJson = false;
|
|
1379
1401
|
|
|
@@ -1383,7 +1405,7 @@ Examples:
|
|
|
1383
1405
|
case "--root":
|
|
1384
1406
|
case "-r":
|
|
1385
1407
|
rootDir = args[++i];
|
|
1386
|
-
aiDir = path.join(rootDir, "ai");
|
|
1408
|
+
aiDir = path.join(rootDir, "ai-context");
|
|
1387
1409
|
break;
|
|
1388
1410
|
case "--no-git":
|
|
1389
1411
|
useGit = false;
|
package/src/commands/doctor.ts
CHANGED
|
@@ -30,7 +30,7 @@ export async function runDoctor(rootDir: string, fixMode: boolean): Promise<Doct
|
|
|
30
30
|
const largeFiles = scanResult.files.filter(f => { try { return fs.statSync(f.path).size > 1024 * 1024; } catch { return false; } });
|
|
31
31
|
checks.push({ name: 'Large files', status: largeFiles.length === 0 ? 'pass' : 'warn', message: largeFiles.length === 0 ? 'No large files' : `${largeFiles.length} large files` });
|
|
32
32
|
|
|
33
|
-
const aiDir = path.join(rootDir, "ai");
|
|
33
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
34
34
|
checks.push({ name: 'AI directory', status: fs.existsSync(aiDir) ? 'pass' : 'warn', message: fs.existsSync(aiDir) ? 'Found' : 'Not found' });
|
|
35
35
|
checks.push({ name: 'Semantic index', status: fs.existsSync(path.join(aiDir, "index")) ? 'pass' : 'warn', message: fs.existsSync(path.join(aiDir, "index")) ? 'Found' : 'Not found' });
|
|
36
36
|
checks.push({ name: 'Module graph', status: fs.existsSync(path.join(aiDir, "graph", "module-graph.json")) ? 'pass' : 'warn', message: 'Run ai-first explore all' });
|
package/src/commands/explore.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { generateModuleGraph } from "../core/moduleGraph.js";
|
|
|
6
6
|
export interface ExploreResult { success: boolean; modules?: string[]; dependencies?: string[]; error?: string; }
|
|
7
7
|
|
|
8
8
|
export async function runExplore(rootDir: string, moduleName: string | undefined): Promise<ExploreResult> {
|
|
9
|
-
const aiDir = path.join(rootDir, "ai");
|
|
9
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
10
10
|
const graphFile = path.join(aiDir, "graph", "module-graph.json");
|
|
11
11
|
|
|
12
12
|
if (!moduleName || moduleName === 'all') {
|
package/src/core/ccp.ts
CHANGED
|
@@ -147,7 +147,7 @@ export function createCCP(
|
|
|
147
147
|
include?: string[];
|
|
148
148
|
} = {}
|
|
149
149
|
): { success: boolean; path: string; error?: string } {
|
|
150
|
-
const aiDir = path.join(rootDir, "ai");
|
|
150
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
151
151
|
const ccpDir = path.join(aiDir, "ccp", name);
|
|
152
152
|
|
|
153
153
|
try {
|
package/src/core/embeddings.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
1
|
import crypto from "crypto";
|
|
2
|
+
import { Database } from "sql.js";
|
|
4
3
|
import { Chunk } from "./chunker.js";
|
|
5
4
|
|
|
6
5
|
export interface Embedding {
|
|
@@ -24,6 +23,26 @@ export interface EmbeddingsIndex {
|
|
|
24
23
|
embeddings: Embedding[];
|
|
25
24
|
}
|
|
26
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Create embeddings table in the database
|
|
28
|
+
*/
|
|
29
|
+
export function createEmbeddingsTable(db: Database): void {
|
|
30
|
+
db.run(`
|
|
31
|
+
CREATE TABLE IF NOT EXISTS embeddings (
|
|
32
|
+
id TEXT PRIMARY KEY,
|
|
33
|
+
vector TEXT NOT NULL,
|
|
34
|
+
metadata TEXT NOT NULL,
|
|
35
|
+
chunk_id TEXT,
|
|
36
|
+
file_path TEXT,
|
|
37
|
+
start_line INTEGER,
|
|
38
|
+
end_line INTEGER,
|
|
39
|
+
type TEXT,
|
|
40
|
+
language TEXT
|
|
41
|
+
)
|
|
42
|
+
`);
|
|
43
|
+
db.run("CREATE INDEX IF NOT EXISTS idx_embeddings_file_path ON embeddings(file_path)");
|
|
44
|
+
}
|
|
45
|
+
|
|
27
46
|
/**
|
|
28
47
|
* Generate a simple hash-based embedding (for testing/fallback)
|
|
29
48
|
* This creates a deterministic embedding based on content
|
|
@@ -86,40 +105,72 @@ export async function generateEmbeddings(
|
|
|
86
105
|
}
|
|
87
106
|
|
|
88
107
|
/**
|
|
89
|
-
* Save embeddings to
|
|
108
|
+
* Save embeddings to SQLite database
|
|
90
109
|
*/
|
|
91
110
|
export function saveEmbeddings(
|
|
111
|
+
db: Database,
|
|
92
112
|
embeddings: Embedding[],
|
|
93
|
-
aiDir: string,
|
|
94
113
|
model: string,
|
|
95
114
|
dimensions: number
|
|
96
115
|
): void {
|
|
97
|
-
|
|
98
|
-
version: "1.0.0",
|
|
99
|
-
model,
|
|
100
|
-
dimensions,
|
|
101
|
-
generated: new Date().toISOString(),
|
|
102
|
-
embeddings
|
|
103
|
-
};
|
|
116
|
+
db.run("DELETE FROM embeddings");
|
|
104
117
|
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
for (const embedding of embeddings) {
|
|
119
|
+
const vectorJson = JSON.stringify(embedding.vector);
|
|
120
|
+
const metadataJson = JSON.stringify(embedding.metadata);
|
|
121
|
+
|
|
122
|
+
db.run(
|
|
123
|
+
`INSERT INTO embeddings (id, vector, metadata, chunk_id, file_path, start_line, end_line, type, language)
|
|
124
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
125
|
+
[
|
|
126
|
+
embedding.id,
|
|
127
|
+
vectorJson,
|
|
128
|
+
metadataJson,
|
|
129
|
+
embedding.metadata.chunkId,
|
|
130
|
+
embedding.metadata.filePath,
|
|
131
|
+
embedding.metadata.startLine,
|
|
132
|
+
embedding.metadata.endLine,
|
|
133
|
+
embedding.metadata.type,
|
|
134
|
+
embedding.metadata.language
|
|
135
|
+
]
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
console.log(` ✅ Saved ${embeddings.length} embeddings to database`);
|
|
108
140
|
}
|
|
109
141
|
|
|
110
142
|
/**
|
|
111
|
-
* Load embeddings from
|
|
143
|
+
* Load embeddings from SQLite database
|
|
112
144
|
*/
|
|
113
|
-
export function loadEmbeddings(
|
|
114
|
-
const embeddingsPath = path.join(aiDir, "embeddings.json");
|
|
115
|
-
|
|
116
|
-
if (!fs.existsSync(embeddingsPath)) {
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
|
|
145
|
+
export function loadEmbeddings(db: Database): EmbeddingsIndex | null {
|
|
120
146
|
try {
|
|
121
|
-
const
|
|
122
|
-
|
|
147
|
+
const result = db.exec("SELECT id, vector, metadata FROM embeddings");
|
|
148
|
+
|
|
149
|
+
if (result.length === 0 || result[0].values.length === 0) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const embeddings: Embedding[] = [];
|
|
154
|
+
|
|
155
|
+
for (const row of result[0].values) {
|
|
156
|
+
const id = row[0] as string;
|
|
157
|
+
const vectorJson = row[1] as string;
|
|
158
|
+
const metadataJson = row[2] as string;
|
|
159
|
+
|
|
160
|
+
embeddings.push({
|
|
161
|
+
id,
|
|
162
|
+
vector: JSON.parse(vectorJson),
|
|
163
|
+
metadata: JSON.parse(metadataJson)
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return {
|
|
168
|
+
version: "1.0.0",
|
|
169
|
+
model: "simple-fallback",
|
|
170
|
+
dimensions: embeddings.length > 0 ? embeddings[0].vector.length : 384,
|
|
171
|
+
generated: new Date().toISOString(),
|
|
172
|
+
embeddings
|
|
173
|
+
};
|
|
123
174
|
} catch {
|
|
124
175
|
return null;
|
|
125
176
|
}
|
|
@@ -143,30 +194,45 @@ function cosineSimilarity(a: number[], b: number[]): number {
|
|
|
143
194
|
}
|
|
144
195
|
|
|
145
196
|
/**
|
|
146
|
-
* Search embeddings for similar chunks
|
|
197
|
+
* Search embeddings for similar chunks using SQLite database
|
|
147
198
|
*/
|
|
148
199
|
export function searchEmbeddings(
|
|
200
|
+
db: Database,
|
|
149
201
|
query: string,
|
|
150
|
-
|
|
202
|
+
dimensions: number = 384,
|
|
151
203
|
topK: number = 5
|
|
152
204
|
): { chunkId: string; filePath: string; score: number; content: string }[] {
|
|
153
|
-
|
|
154
|
-
const queryEmbedding = generateSimpleEmbedding(query, embeddingsIndex.dimensions);
|
|
205
|
+
const queryEmbedding = generateSimpleEmbedding(query, dimensions);
|
|
155
206
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
207
|
+
const result = db.exec("SELECT id, vector, metadata FROM embeddings");
|
|
208
|
+
|
|
209
|
+
if (result.length === 0 || result[0].values.length === 0) {
|
|
210
|
+
return [];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const searchResults: { chunkId: string; filePath: string; score: number; startLine: number; endLine: number; type: string }[] = [];
|
|
214
|
+
|
|
215
|
+
for (const row of result[0].values) {
|
|
216
|
+
const id = row[0] as string;
|
|
217
|
+
const vectorJson = row[1] as string;
|
|
218
|
+
const metadataJson = row[2] as string;
|
|
219
|
+
|
|
220
|
+
const vector = JSON.parse(vectorJson);
|
|
221
|
+
const metadata = JSON.parse(metadataJson);
|
|
222
|
+
|
|
223
|
+
searchResults.push({
|
|
224
|
+
chunkId: id,
|
|
225
|
+
filePath: metadata.filePath,
|
|
226
|
+
score: cosineSimilarity(queryEmbedding, vector),
|
|
227
|
+
startLine: metadata.startLine,
|
|
228
|
+
endLine: metadata.endLine,
|
|
229
|
+
type: metadata.type
|
|
230
|
+
});
|
|
231
|
+
}
|
|
165
232
|
|
|
166
|
-
|
|
167
|
-
results.sort((a, b) => b.score - a.score);
|
|
233
|
+
searchResults.sort((a, b) => b.score - a.score);
|
|
168
234
|
|
|
169
|
-
return
|
|
235
|
+
return searchResults.slice(0, topK).map(r => ({
|
|
170
236
|
chunkId: r.chunkId,
|
|
171
237
|
filePath: r.filePath,
|
|
172
238
|
score: r.score,
|
package/src/core/gitAnalyzer.ts
CHANGED
|
@@ -240,7 +240,7 @@ function loadFlows(aiDir: string): Map<string, string[]> {
|
|
|
240
240
|
* Map changed files to features
|
|
241
241
|
*/
|
|
242
242
|
export function mapFilesToFeatures(rootDir: string, files: string[]): string[] {
|
|
243
|
-
const aiDir = path.join(rootDir, "ai");
|
|
243
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
244
244
|
const featuresMap = loadFeatures(aiDir);
|
|
245
245
|
|
|
246
246
|
const featureSet = new Set<string>();
|
|
@@ -267,7 +267,7 @@ export function mapFilesToFeatures(rootDir: string, files: string[]): string[] {
|
|
|
267
267
|
* Map changed files to flows
|
|
268
268
|
*/
|
|
269
269
|
export function mapFilesToFlows(rootDir: string, files: string[]): string[] {
|
|
270
|
-
const aiDir = path.join(rootDir, "ai");
|
|
270
|
+
const aiDir = path.join(rootDir, "ai-context");
|
|
271
271
|
const flowsMap = loadFlows(aiDir);
|
|
272
272
|
|
|
273
273
|
const flowSet = new Set<string>();
|
|
@@ -354,7 +354,7 @@ export function generateGitContext(rootDir: string, aiDir?: string): {
|
|
|
354
354
|
recentFlows: string[];
|
|
355
355
|
activity: GitActivity | null;
|
|
356
356
|
} {
|
|
357
|
-
const targetAiDir = aiDir || path.join(rootDir, "ai");
|
|
357
|
+
const targetAiDir = aiDir || path.join(rootDir, "ai-context");
|
|
358
358
|
const gitDir = path.join(targetAiDir, "git");
|
|
359
359
|
|
|
360
360
|
ensureDir(gitDir);
|