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.
- package/CHANGELOG.md +63 -0
- package/README.es.md +55 -0
- package/README.md +40 -15
- package/ai/graph/knowledge-graph.json +1 -1
- package/dist/analyzers/architecture.d.ts.map +1 -1
- package/dist/analyzers/architecture.js +72 -5
- package/dist/analyzers/architecture.js.map +1 -1
- package/dist/analyzers/entrypoints.d.ts.map +1 -1
- package/dist/analyzers/entrypoints.js +253 -0
- package/dist/analyzers/entrypoints.js.map +1 -1
- package/dist/analyzers/symbols.d.ts.map +1 -1
- package/dist/analyzers/symbols.js +47 -2
- package/dist/analyzers/symbols.js.map +1 -1
- package/dist/analyzers/techStack.d.ts.map +1 -1
- package/dist/analyzers/techStack.js +43 -0
- package/dist/analyzers/techStack.js.map +1 -1
- package/dist/utils/fileUtils.d.ts.map +1 -1
- package/dist/utils/fileUtils.js +5 -0
- package/dist/utils/fileUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/analyzers/architecture.ts +75 -6
- package/src/analyzers/entrypoints.ts +285 -0
- package/src/analyzers/symbols.ts +52 -2
- package/src/analyzers/techStack.ts +44 -0
- package/src/utils/fileUtils.ts +5 -0
- package/tests/entrypoints-languages.test.ts +373 -0
- package/tests/framework-detection.test.ts +296 -0
- package/BETA_EVALUATION_REPORT.md +0 -151
- package/ai-context/context/flows/App.json +0 -17
- package/ai-context/context/flows/DashboardPage.json +0 -14
- package/ai-context/context/flows/LoginPage.json +0 -14
- package/ai-context/context/flows/admin.json +0 -10
- package/ai-context/context/flows/androidresources.json +0 -11
- package/ai-context/context/flows/authController.json +0 -14
- package/ai-context/context/flows/entrypoints.json +0 -9
- package/ai-context/context/flows/fastapiAdapter.json +0 -14
- package/ai-context/context/flows/fastapiadapter.json +0 -11
- package/ai-context/context/flows/index.json +0 -19
- package/ai-context/context/flows/indexer.json +0 -9
- package/ai-context/context/flows/indexstate.json +0 -9
- package/ai-context/context/flows/init.json +0 -22
- package/ai-context/context/flows/main.json +0 -18
- package/ai-context/context/flows/mainactivity.json +0 -9
- package/ai-context/context/flows/models.json +0 -15
- package/ai-context/context/flows/posts.json +0 -15
- package/ai-context/context/flows/repoMapper.json +0 -20
- package/ai-context/context/flows/repomapper.json +0 -11
- package/ai-context/context/flows/serializers.json +0 -10
- package/dist/scripts/ai-context-evaluator.js +0 -367
- package/quick-evaluation-report-1774396002305.md +0 -64
- 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,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,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,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,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,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
|
-
}
|