ai-first-cli 1.3.5 → 1.3.6

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 (51) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.es.md +55 -0
  3. package/README.md +40 -15
  4. package/ai/graph/knowledge-graph.json +1 -1
  5. package/dist/analyzers/architecture.d.ts.map +1 -1
  6. package/dist/analyzers/architecture.js +72 -5
  7. package/dist/analyzers/architecture.js.map +1 -1
  8. package/dist/analyzers/entrypoints.d.ts.map +1 -1
  9. package/dist/analyzers/entrypoints.js +253 -0
  10. package/dist/analyzers/entrypoints.js.map +1 -1
  11. package/dist/analyzers/symbols.d.ts.map +1 -1
  12. package/dist/analyzers/symbols.js +47 -2
  13. package/dist/analyzers/symbols.js.map +1 -1
  14. package/dist/analyzers/techStack.d.ts.map +1 -1
  15. package/dist/analyzers/techStack.js +43 -0
  16. package/dist/analyzers/techStack.js.map +1 -1
  17. package/dist/utils/fileUtils.d.ts.map +1 -1
  18. package/dist/utils/fileUtils.js +5 -0
  19. package/dist/utils/fileUtils.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/analyzers/architecture.ts +75 -6
  22. package/src/analyzers/entrypoints.ts +285 -0
  23. package/src/analyzers/symbols.ts +52 -2
  24. package/src/analyzers/techStack.ts +44 -0
  25. package/src/utils/fileUtils.ts +5 -0
  26. package/tests/entrypoints-languages.test.ts +373 -0
  27. package/tests/framework-detection.test.ts +296 -0
  28. package/BETA_EVALUATION_REPORT.md +0 -151
  29. package/ai-context/context/flows/App.json +0 -17
  30. package/ai-context/context/flows/DashboardPage.json +0 -14
  31. package/ai-context/context/flows/LoginPage.json +0 -14
  32. package/ai-context/context/flows/admin.json +0 -10
  33. package/ai-context/context/flows/androidresources.json +0 -11
  34. package/ai-context/context/flows/authController.json +0 -14
  35. package/ai-context/context/flows/entrypoints.json +0 -9
  36. package/ai-context/context/flows/fastapiAdapter.json +0 -14
  37. package/ai-context/context/flows/fastapiadapter.json +0 -11
  38. package/ai-context/context/flows/index.json +0 -19
  39. package/ai-context/context/flows/indexer.json +0 -9
  40. package/ai-context/context/flows/indexstate.json +0 -9
  41. package/ai-context/context/flows/init.json +0 -22
  42. package/ai-context/context/flows/main.json +0 -18
  43. package/ai-context/context/flows/mainactivity.json +0 -9
  44. package/ai-context/context/flows/models.json +0 -15
  45. package/ai-context/context/flows/posts.json +0 -15
  46. package/ai-context/context/flows/repoMapper.json +0 -20
  47. package/ai-context/context/flows/repomapper.json +0 -11
  48. package/ai-context/context/flows/serializers.json +0 -10
  49. package/dist/scripts/ai-context-evaluator.js +0 -367
  50. package/quick-evaluation-report-1774396002305.md +0 -64
  51. package/quick-evaluator.ts +0 -200
@@ -1,151 +0,0 @@
1
- # 📊 Evaluación de Beta - Estado Actual vs Esperado
2
-
3
- **Fecha:** 2026-03-24
4
- **Branch:** beta-merge (listo para merge a master)
5
- **Tests:** 996/996 ✅
6
-
7
- ---
8
-
9
- ## 🔍 Análisis del Código Fuente en Beta
10
-
11
- ### 1. Detección de Frameworks (`src/analyzers/techStack.ts`)
12
-
13
- | Framework | Estado Actual | Esperado | ¿Funciona? |
14
- |-----------|--------------|----------|------------|
15
- | **NestJS** | Busca `"nest"` | Debería buscar `"@nestjs/common"` | ❌ NO |
16
- | **Spring Boot** | Detectado | Debería estar en "Frameworks" | ⚠️ Parcial |
17
- | **Express** | Detectado | OK | ✅ SÍ |
18
- | **Django** | Detectado | OK | ✅ SÍ |
19
-
20
- **Problema:** Los paquetes scoped (`@nestjs/*`) NO se detectan.
21
-
22
- ### 2. Detección de Patrones (`src/analyzers/architecture.ts`)
23
-
24
- | Proyecto | Detecta Actualmente | Debería Detectar | ¿Correcto? |
25
- |----------|---------------------|------------------|------------|
26
- | **Express** | "Microservices" | "API Server" | ❌ ERROR |
27
- | **NestJS** | "Flat / Simple" | "Modular" | ❌ ERROR |
28
- | **Spring** | "Layered" | "Layered" | ✅ OK |
29
- | **Django** | "MVC" | "MTV" | ⚠️ Cerca |
30
-
31
- **Problema:** La lógica de Microservices es muy amplia (cualquier proyecto con directorio `services/` se marca como microservicios).
32
-
33
- ### 3. Entrypoints (`src/analyzers/entrypoints.ts`)
34
-
35
- | Lenguaje | Soporte Actual | Esperado | ¿Implementado? |
36
- |----------|----------------|----------|----------------|
37
- | **TypeScript/JS** | ✅ | ✅ | SÍ |
38
- | **Python** | ✅ | ✅ | SÍ |
39
- | **Java** | ✅ | ✅ | SÍ |
40
- | **Swift** | ✅ | ✅ | SÍ |
41
- | **Go** | ❌ | ✅ | NO |
42
- | **Rust** | ❌ | ✅ | NO |
43
- | **PHP** | ❌ | ✅ | NO |
44
- | **Kotlin** | ❌ | ✅ | NO |
45
-
46
- **Problema:** Solo tiene soporte para Swift (`.swift`). Go, Rust, PHP, Kotlin NO están implementados.
47
-
48
- ---
49
-
50
- ## 📈 Resultados de Tests
51
-
52
- ### ✅ Lo que FUNCIONA:
53
-
54
- 1. **996 tests pasando** (100% éxito)
55
- 2. **Salesforce Testing Suite** - 531 tests completos
56
- - Apex Classes: ✅ 43 tests
57
- - Apex Triggers: ✅ 67 tests
58
- - LWC: ✅ 73 tests
59
- - Flows: ✅ 74 tests
60
- - Custom Objects: ✅ 147 tests
61
- - SFDX: ✅ 127 tests
62
-
63
- 3. **CLI Commands Testing** - 296 tests completos
64
- - init, index, watch, context, summarize: ✅
65
- - query, map, doctor, explore, adapters: ✅
66
- - git, graph, update, help: ✅
67
-
68
- 4. **Core functionality intacta**
69
- - Parser de Apex: ✅
70
- - Parser de TypeScript: ✅
71
- - Parser de Python: ✅
72
- - Parser de Java: ✅
73
- - Adapter registry: ✅
74
-
75
- ### ❌ Lo que NO FUNCIONA (faltan los fixes):
76
-
77
- 1. **Framework Detection Fixes**
78
- - NestJS con @nestjs/*: ❌ NO detecta
79
- - Spring Boot en Frameworks: ❌ Sale en Libraries
80
- - Express Microservices: ❌ Incorrecto
81
-
82
- 2. **Entrypoints para nuevos lenguajes**
83
- - Go (main.go, handlers): ❌ NO implementado
84
- - Rust (main.rs, Cargo.toml): ❌ NO implementado
85
- - PHP (index.php): ❌ NO implementado
86
-
87
- 3. **Symbol Extraction Mejorado**
88
- - Go structs/functions: ❌ Básico
89
- - Rust structs: ❌ NO detecta
90
-
91
- ---
92
-
93
- ## 🎯 Recomendación
94
-
95
- ### Opción 1: Mergear a Master AHORA (Recomendado)
96
- **Pros:**
97
- - ✅ 996 tests pasando (sin regresiones)
98
- - ✅ Tests de Salesforce excelentes
99
- - ✅ Tests de CLI completos
100
- - ✅ Documentación actualizada
101
- - ✅ Funcionalidad core intacta
102
-
103
- **Contras:**
104
- - ❌ Algunos proyectos de ejemplo NO tienen la calidad óptima en ai-context/
105
- - ❌ Los tests de calidad (evaluador AI) podrían mostrar scores bajos
106
-
107
- **Veredicto:** Los tests garantizan que la funcionalidad core funciona. Los fixes de calidad son mejoras incrementales que pueden venir después.
108
-
109
- ### Opción 2: Implementar Fixes Primero
110
- **Requiere:**
111
- - 2-3 horas adicionales
112
- - Implementar fixes en techStack.ts, architecture.ts, entrypoints.ts
113
- - Nuevos tests para los fixes
114
- - Regenerar ai-context de proyectos
115
-
116
- **Riesgo:** Demorar el release por mejoras que no afectan la funcionalidad core.
117
-
118
- ---
119
-
120
- ## 📋 Resumen de Tests Ejecutados
121
-
122
- ```bash
123
- Test Files: 27 passed (27)
124
- Tests: 996 passed (996)
125
- Duration: 43.96s
126
-
127
- Cobertura:
128
- - Salesforce: 531 tests ✅
129
- - CLI Commands: 296 tests ✅
130
- - Core: 169 tests ✅
131
-
132
- Build: ✅ Exitoso
133
- TypeScript: ✅ Sin errores
134
- ```
135
-
136
- ---
137
-
138
- ## 🚀 Decisión Final
139
-
140
- **Estado:** Listo para merge a master ✅
141
-
142
- **Justificación:**
143
- 1. Los 996 tests garantizan que todo funciona
144
- 2. Las mejoras de calidad son incrementalmente aplicables
145
- 3. La documentación está completa y actualizada
146
- 4. No hay regresiones en funcionalidad existente
147
-
148
- **Próximos pasos después del merge:**
149
- - Crear issue para implementar los fixes faltantes
150
- - Priorizar: NestJS detection > Entrypoints Go/Rust > Express Microservices
151
- - Target: Release v1.3.6 con mejoras de calidad
@@ -1,17 +0,0 @@
1
- {
2
- "name": "App",
3
- "entrypoint": "test-projects/react-app/src/App.tsx",
4
- "files": [
5
- "test-projects/react-app/src/App.tsx",
6
- "test-projects/react-app/src/context/AuthContext.tsx",
7
- "test-projects/react-app/src/pages/LoginPage.tsx",
8
- "test-projects/react-app/src/hooks/useAuth.ts",
9
- "test-projects/react-app/src/pages/DashboardPage.tsx",
10
- "test-projects/react-app/src/pages/UsersPage.tsx"
11
- ],
12
- "depth": 5,
13
- "layers": [
14
- "unknown",
15
- "api"
16
- ]
17
- }
@@ -1,14 +0,0 @@
1
- {
2
- "name": "DashboardPage",
3
- "entrypoint": "test-projects/react-app/src/pages/DashboardPage.tsx",
4
- "files": [
5
- "test-projects/react-app/src/pages/DashboardPage.tsx",
6
- "test-projects/react-app/src/hooks/useAuth.ts",
7
- "test-projects/react-app/src/context/AuthContext.tsx"
8
- ],
9
- "depth": 2,
10
- "layers": [
11
- "api",
12
- "unknown"
13
- ]
14
- }
@@ -1,14 +0,0 @@
1
- {
2
- "name": "LoginPage",
3
- "entrypoint": "test-projects/react-app/src/pages/LoginPage.tsx",
4
- "files": [
5
- "test-projects/react-app/src/pages/LoginPage.tsx",
6
- "test-projects/react-app/src/hooks/useAuth.ts",
7
- "test-projects/react-app/src/context/AuthContext.tsx"
8
- ],
9
- "depth": 2,
10
- "layers": [
11
- "api",
12
- "unknown"
13
- ]
14
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "admin",
3
- "entrypoint": "test-projects/django-app/blog/admin.py",
4
- "files": [
5
- "test-projects/django-app/blog/admin.py",
6
- "test-projects/django-app/users/admin.py"
7
- ],
8
- "depth": 0,
9
- "layers": []
10
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "androidresources",
3
- "entrypoint": "src/analyzers/androidResources.ts",
4
- "files": [
5
- "src/analyzers/androidResources.ts"
6
- ],
7
- "depth": 1,
8
- "layers": [
9
- "api"
10
- ]
11
- }
@@ -1,14 +0,0 @@
1
- {
2
- "name": "authController",
3
- "entrypoint": "test-projects/express-api/controllers/authController.js",
4
- "files": [
5
- "test-projects/express-api/controllers/authController.js",
6
- "tests/pythonParser.test.ts",
7
- "src/core/parsers/pythonParser.ts"
8
- ],
9
- "depth": 3,
10
- "layers": [
11
- "api",
12
- "unknown"
13
- ]
14
- }
@@ -1,9 +0,0 @@
1
- {
2
- "name": "entrypoints",
3
- "entrypoint": "src/analyzers/entrypoints.ts",
4
- "files": [
5
- "src/analyzers/entrypoints.ts"
6
- ],
7
- "depth": 0,
8
- "layers": []
9
- }
@@ -1,14 +0,0 @@
1
- {
2
- "name": "fastapiAdapter",
3
- "entrypoint": "src/core/adapters/community/fastapiAdapter.ts",
4
- "files": [
5
- "src/core/adapters/community/fastapiAdapter.ts",
6
- "src/core/adapters/sdk.ts",
7
- "src/core/adapters/baseAdapter.ts"
8
- ],
9
- "depth": 2,
10
- "layers": [
11
- "api",
12
- "unknown"
13
- ]
14
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "fastapiadapter",
3
- "entrypoint": "src/core/adapters/community/fastapiAdapter.ts",
4
- "files": [
5
- "src/core/adapters/community/fastapiAdapter.ts"
6
- ],
7
- "depth": 1,
8
- "layers": [
9
- "api"
10
- ]
11
- }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "index",
3
- "entrypoint": "docs/.vitepress/theme/index.ts",
4
- "files": [
5
- "docs/.vitepress/theme/index.ts",
6
- "src/core/adapters/community/index.ts",
7
- "src/core/adapters/index.ts",
8
- "src/core/analysis/index.ts",
9
- "src/core/generation/index.ts",
10
- "src/core/parsers/index.ts",
11
- "src/index.ts",
12
- "test-projects/express-api/index.js",
13
- "test-projects/php-vanilla/index.php"
14
- ],
15
- "depth": 1,
16
- "layers": [
17
- "api"
18
- ]
19
- }
@@ -1,9 +0,0 @@
1
- {
2
- "name": "indexer",
3
- "entrypoint": "src/core/indexer.ts",
4
- "files": [
5
- "src/core/indexer.ts"
6
- ],
7
- "depth": 0,
8
- "layers": []
9
- }
@@ -1,9 +0,0 @@
1
- {
2
- "name": "indexstate",
3
- "entrypoint": "src/core/indexState.ts",
4
- "files": [
5
- "src/core/indexState.ts"
6
- ],
7
- "depth": 0,
8
- "layers": []
9
- }
@@ -1,22 +0,0 @@
1
- {
2
- "name": "init",
3
- "entrypoint": "test-projects/flask-app/app/api/__init__.py",
4
- "files": [
5
- "test-projects/flask-app/app/api/__init__.py",
6
- "test-projects/django-app/blog/__init__.py",
7
- "test-projects/django-app/django_app/__init__.py",
8
- "test-projects/django-app/users/__init__.py",
9
- "test-projects/flask-app/app/__init__.py",
10
- "test-projects/flask-app/app/auth/__init__.py",
11
- "test-projects/flask-app/app/blog/__init__.py",
12
- "test-projects/flask-app/app/main/__init__.py",
13
- "test-projects/python-cli/__init__.py",
14
- "test-projects/python-cli/cli/__init__.py",
15
- "test-projects/python-cli/models/__init__.py"
16
- ],
17
- "depth": 2,
18
- "layers": [
19
- "api",
20
- "domain"
21
- ]
22
- }
@@ -1,18 +0,0 @@
1
- {
2
- "name": "main",
3
- "entrypoint": "test-projects/react-app/src/main.tsx",
4
- "files": [
5
- "test-projects/react-app/src/main.tsx",
6
- "test-projects/react-app/src/App.tsx",
7
- "test-projects/react-app/src/context/AuthContext.tsx",
8
- "test-projects/react-app/src/pages/LoginPage.tsx",
9
- "test-projects/react-app/src/hooks/useAuth.ts",
10
- "test-projects/react-app/src/pages/DashboardPage.tsx",
11
- "test-projects/react-app/src/pages/UsersPage.tsx"
12
- ],
13
- "depth": 5,
14
- "layers": [
15
- "unknown",
16
- "api"
17
- ]
18
- }
@@ -1,9 +0,0 @@
1
- {
2
- "name": "mainactivity",
3
- "entrypoint": "test-projects/android-kotlin-app/src/MainActivity.kt",
4
- "files": [
5
- "test-projects/android-kotlin-app/src/MainActivity.kt"
6
- ],
7
- "depth": 0,
8
- "layers": []
9
- }
@@ -1,15 +0,0 @@
1
- {
2
- "name": "models",
3
- "entrypoint": "test-projects/django-app/blog/models.py",
4
- "files": [
5
- "test-projects/django-app/blog/models.py",
6
- "test-projects/django-app/users/models.py",
7
- "test-projects/fastapi-app/app/models.py",
8
- "test-projects/flask-app/app/models.py"
9
- ],
10
- "depth": 2,
11
- "layers": [
12
- "domain",
13
- "api"
14
- ]
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "name": "posts",
3
- "entrypoint": "test-projects/fastapi-app/app/routers/posts.py",
4
- "files": [
5
- "test-projects/fastapi-app/app/routers/posts.py",
6
- "test-projects/nestjs-backend/src/main.ts",
7
- "test-projects/fastapi-app/app/database.py",
8
- "src/core/moduleGraph.ts"
9
- ],
10
- "depth": 4,
11
- "layers": [
12
- "api",
13
- "unknown"
14
- ]
15
- }
@@ -1,20 +0,0 @@
1
- {
2
- "name": "repoMapper",
3
- "entrypoint": "src/core/repoMapper.ts",
4
- "files": [
5
- "src/core/repoMapper.ts",
6
- "test-projects/react-app/src/main.tsx",
7
- "test-projects/react-app/src/App.tsx",
8
- "test-projects/react-app/src/context/AuthContext.tsx",
9
- "test-projects/react-app/src/pages/LoginPage.tsx",
10
- "test-projects/react-app/src/hooks/useAuth.ts",
11
- "test-projects/react-app/src/pages/DashboardPage.tsx",
12
- "test-projects/react-app/src/pages/UsersPage.tsx"
13
- ],
14
- "depth": 5,
15
- "layers": [
16
- "data",
17
- "unknown",
18
- "api"
19
- ]
20
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "repomapper",
3
- "entrypoint": "src/core/repoMapper.ts",
4
- "files": [
5
- "src/core/repoMapper.ts"
6
- ],
7
- "depth": 1,
8
- "layers": [
9
- "data"
10
- ]
11
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "serializers",
3
- "entrypoint": "test-projects/django-app/blog/serializers.py",
4
- "files": [
5
- "test-projects/django-app/blog/serializers.py",
6
- "test-projects/django-app/users/serializers.py"
7
- ],
8
- "depth": 0,
9
- "layers": []
10
- }