aigency 0.0.1__tar.gz → 0.0.1.dev20250904075757__tar.gz

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 (24) hide show
  1. aigency-0.0.1.dev20250904075757/PKG-INFO +267 -0
  2. aigency-0.0.1.dev20250904075757/README.md +255 -0
  3. aigency-0.0.1.dev20250904075757/aigency.egg-info/PKG-INFO +267 -0
  4. aigency-0.0.1.dev20250904075757/pyproject.toml +14 -0
  5. aigency-0.0.1/PKG-INFO +0 -18
  6. aigency-0.0.1/README.md +0 -6
  7. aigency-0.0.1/aigency.egg-info/PKG-INFO +0 -18
  8. aigency-0.0.1/pyproject.toml +0 -20
  9. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/__init__.py +0 -0
  10. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/agents/executor.py +0 -0
  11. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/agents/generator.py +0 -0
  12. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/models/config.py +0 -0
  13. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/models/core.py +0 -0
  14. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/models/tools.py +0 -0
  15. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/tools/generator.py +0 -0
  16. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/utils/config_service.py +0 -0
  17. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/utils/logger.py +0 -0
  18. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/utils/singleton.py +0 -0
  19. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency/utils/utils.py +0 -0
  20. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency.egg-info/SOURCES.txt +0 -0
  21. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency.egg-info/dependency_links.txt +0 -0
  22. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency.egg-info/requires.txt +0 -0
  23. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/aigency.egg-info/top_level.txt +0 -0
  24. {aigency-0.0.1 → aigency-0.0.1.dev20250904075757}/setup.cfg +0 -0
@@ -0,0 +1,267 @@
1
+ Metadata-Version: 2.4
2
+ Name: aigency
3
+ Version: 0.0.1.dev20250904075757
4
+ Summary: Add your description here
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: google-adk>=1.11.0
8
+ Requires-Dist: a2a-sdk==0.3.0
9
+ Requires-Dist: litellm<1.73.0,>=1.72.6
10
+ Requires-Dist: pyyaml==6.0.2
11
+ Requires-Dist: PyJWT==2.10.1
12
+
13
+ # aigency-lib
14
+
15
+ Una librería para crear y gestionar agentes de IA.
16
+
17
+ ## Inicio rápido
18
+
19
+ Para probar un agente simple:
20
+
21
+ ```bash
22
+ cd examples/simple_agents/hello_world_agent
23
+ docker compose up
24
+ ```
25
+
26
+ ## 🔧 Gestión de versiones
27
+
28
+ Este proyecto incluye un sistema automatizado para gestionar versiones tanto en desarrollo como en producción.
29
+
30
+ ### Version Manager
31
+
32
+ El script `scripts/version_manager.py` te ayuda a gestionar las versiones de tu paquete de forma local.
33
+
34
+ #### Comandos disponibles
35
+
36
+ ##### 1. Ver información actual
37
+ ```bash
38
+ python scripts/version_manager.py show
39
+ ```
40
+ **Qué hace:**
41
+ - Muestra la versión actual en `pyproject.toml`
42
+ - Muestra la rama git actual
43
+ - Muestra el commit actual
44
+ - Si no estás en `main`, sugiere una versión de desarrollo
45
+
46
+ **Ejemplo de salida:**
47
+ ```
48
+ Versión actual: 0.0.1
49
+ Rama: feature/new-agent
50
+ Commit: a1b2c3d
51
+ Versión dev sugerida: 0.0.1.dev20250409143022+feature/new-agent.a1b2c3d
52
+ ```
53
+
54
+ ##### 2. Crear versión de desarrollo
55
+ ```bash
56
+ python scripts/version_manager.py dev
57
+ ```
58
+ **Qué hace:**
59
+ - Toma la versión actual y crea una versión de desarrollo
60
+ - Formato: `version.devYYYYMMDDHHMMSS+branch.commit`
61
+ - Actualiza automáticamente el `pyproject.toml`
62
+
63
+ **Ejemplo:**
64
+ ```bash
65
+ # Si estás en rama "feature/auth" con commit "abc123"
66
+ python scripts/version_manager.py dev
67
+ # Resultado: 0.0.1.dev20250409143022
68
+ ```
69
+
70
+ ##### 3. Establecer versión específica
71
+ ```bash
72
+ python scripts/version_manager.py set --version "0.1.0"
73
+ ```
74
+ **Qué hace:**
75
+ - Cambia la versión a la que especifiques
76
+ - Útil para releases o para corregir versiones
77
+
78
+ **Ejemplos:**
79
+ ```bash
80
+ # Versión de release
81
+ python scripts/version_manager.py set --version "1.0.0"
82
+
83
+ # Versión beta
84
+ python scripts/version_manager.py set --version "1.0.0b1"
85
+
86
+ # Versión alpha
87
+ python scripts/version_manager.py set --version "1.0.0a1"
88
+ ```
89
+
90
+ ##### 4. Crear versión Release Candidate
91
+ ```bash
92
+ python scripts/version_manager.py rc --version "1.0.1"
93
+ ```
94
+ **Qué hace:**
95
+ - Crea una versión RC con el formato `version-rc<commit>`
96
+ - Útil para preparar releases en ramas `release/*`
97
+
98
+ ##### 5. Validar versión actual
99
+ ```bash
100
+ python scripts/version_manager.py validate
101
+ ```
102
+ **Qué hace:**
103
+ - Valida que la versión actual sea apropiada para la rama
104
+ - Verifica formato semántico en `main` y ramas `release/*`
105
+
106
+ ##### 6. Crear dev con versión base personalizada
107
+ ```bash
108
+ python scripts/version_manager.py dev --base-version "0.2.0"
109
+ ```
110
+ **Qué hace:**
111
+ - Usa una versión base diferente a la actual
112
+ - Útil cuando quieres preparar una dev version para la próxima release
113
+
114
+ ### 🚀 Flujo de trabajo recomendado
115
+
116
+ #### Para desarrollo diario:
117
+ ```bash
118
+ # 1. Ver estado actual
119
+ python scripts/version_manager.py show
120
+
121
+ # 2. Si estás en una rama feature, crear versión dev
122
+ python scripts/version_manager.py dev
123
+
124
+ # 3. Hacer tus cambios y commits
125
+ git add .
126
+ git commit -m "feat: nueva funcionalidad"
127
+
128
+ # 4. Si necesitas actualizar la versión dev (opcional)
129
+ python scripts/version_manager.py dev
130
+ ```
131
+
132
+ #### Para releases:
133
+ ```bash
134
+ # 1. En rama main, establecer versión de release
135
+ python scripts/version_manager.py set --version "1.0.0"
136
+
137
+ # 2. Commit de la versión
138
+ git add pyproject.toml
139
+ git commit -m "bump: version 1.0.0"
140
+
141
+ # 3. Usar el workflow de GitHub para publicar
142
+ ```
143
+
144
+ #### Para testing:
145
+ ```bash
146
+ # Crear versión de test específica
147
+ python scripts/version_manager.py set --version "1.0.0rc1"
148
+ ```
149
+
150
+ ### ⚠️ Limitaciones de PyPI
151
+
152
+ PyPI no permite "local versions" (versiones con `+` y identificadores locales). Por eso, hemos adaptado el formato:
153
+
154
+ - ❌ No permitido: `1.0.0.dev20250409+feature.abc123`
155
+ - ✅ Permitido: `1.0.0.dev20250409`
156
+
157
+ **Solución para Release Candidates:**
158
+ - Convertimos el hash del commit (hexadecimal) a decimal
159
+ - Ejemplo: commit `abc123` → `11256099` → versión `1.0.1rc11256099`
160
+ - Esto mantiene la unicidad del commit en un formato compatible con PyPI
161
+
162
+ **Resultado:**
163
+ - Las versiones dev incluyen timestamp único
164
+ - Las versiones RC incluyen el hash del commit (en decimal)
165
+ - Mantenemos trazabilidad sin usar local versions
166
+
167
+ ### 📋 Casos de uso prácticos
168
+
169
+ **Escenario 1: Trabajando en una feature**
170
+ ```bash
171
+ git checkout -b feature/new-auth
172
+ python scripts/version_manager.py dev
173
+ # Ahora tienes: 0.0.1.dev20250409143022
174
+ ```
175
+
176
+ **Escenario 2: Preparando release**
177
+ ```bash
178
+ git checkout main
179
+ python scripts/version_manager.py set --version "1.0.0"
180
+ git add pyproject.toml
181
+ git commit -m "release: v1.0.0"
182
+ ```
183
+
184
+ **Escenario 3: Preparando Release Candidate**
185
+ ```bash
186
+ git checkout -b release/1.0.1
187
+ python scripts/version_manager.py rc --version "1.0.1"
188
+ # Resultado: 1.0.1rc12345678 (donde 12345678 es el hash del commit en decimal)
189
+ ```
190
+
191
+ **Escenario 4: Hotfix urgente**
192
+ ```bash
193
+ git checkout -b hotfix/critical-bug
194
+ python scripts/version_manager.py dev --base-version "1.0.1"
195
+ # Resultado: 1.0.1.dev20250409143022
196
+ ```
197
+
198
+ ## 🔄 Workflow de CI/CD Inteligente
199
+
200
+ El proyecto incluye un único workflow inteligente (`python-publish.yml`) que maneja automáticamente diferentes tipos de versiones según la rama:
201
+
202
+ ### Comportamiento automático por rama:
203
+
204
+ #### 🚀 Rama `main` - Versiones de Producción
205
+ - **Trigger**: Push a `main` o ejecución manual
206
+ - **Versión**: Usa exactamente la versión del `pyproject.toml`
207
+ - **Validaciones**:
208
+ - ✅ Verifica que sea una versión semántica válida (ej: `1.0.0`)
209
+ - ✅ Verifica que no exista ya en PyPI
210
+ - ❌ Falla si contiene sufijos de desarrollo (`dev`, `rc`, `alpha`, `beta`)
211
+ - **Destino**: PyPI producción
212
+
213
+ #### 🎯 Ramas `release/*` - Release Candidates
214
+ - **Trigger**: Push a rama `release/X.Y.Z` o ejecución manual
215
+ - **Versión**: `X.Y.ZrcN` donde N es el hash del commit en decimal (ej: `1.0.1rc12345678`)
216
+ - **Validaciones**:
217
+ - ✅ Verifica que `X.Y.Z` sea una versión semántica válida
218
+ - ✅ Extrae la versión del nombre de la rama
219
+ - ✅ Usa hash del commit como identificador único
220
+ - ✅ Formato compatible con PyPI
221
+ - **Destino**: PyPI producción
222
+ - **Ejemplo**: Rama `release/1.0.1` + commit `abc123` → Versión `1.0.1rc11256099`
223
+
224
+ #### 🔧 Otras ramas - Versiones de Desarrollo
225
+ - **Trigger**: Push a cualquier otra rama o ejecución manual
226
+ - **Versión**: `current.devYYYYMMDDHHMMSS` (ej: `0.0.1.dev20250409143022`)
227
+ - **Destino**: PyPI producción
228
+ - **Nota**: Sin local versions para compatibilidad con PyPI
229
+
230
+ ### Flujo de trabajo recomendado:
231
+
232
+ ```bash
233
+ # 1. Desarrollo en feature branch
234
+ git checkout -b feature/new-functionality
235
+ # Versión automática: 0.0.1.dev20250409143022+feature-new-functionality.abc123
236
+
237
+ # 2. Preparar release
238
+ git checkout -b release/1.0.0
239
+ git push origin release/1.0.0
240
+ # Versión automática: 1.0.0rc12345678
241
+
242
+ # 3. Release final
243
+ git checkout main
244
+ python scripts/version_manager.py set --version "1.0.0"
245
+ git add pyproject.toml
246
+ git commit -m "release: v1.0.0"
247
+ git push origin main
248
+ # Versión: 1.0.0 (con validaciones)
249
+ ```
250
+
251
+ ## 📦 Instalación
252
+
253
+ ```bash
254
+ pip install aigency
255
+ ```
256
+
257
+ ## 🛠️ Desarrollo
258
+
259
+ 1. Clona el repositorio
260
+ 2. Instala las dependencias de desarrollo
261
+ 3. Usa el version manager para gestionar versiones durante el desarrollo
262
+
263
+ ```bash
264
+ git clone <repo-url>
265
+ cd aigency-lib
266
+ pip install -e .
267
+ ```
@@ -0,0 +1,255 @@
1
+ # aigency-lib
2
+
3
+ Una librería para crear y gestionar agentes de IA.
4
+
5
+ ## Inicio rápido
6
+
7
+ Para probar un agente simple:
8
+
9
+ ```bash
10
+ cd examples/simple_agents/hello_world_agent
11
+ docker compose up
12
+ ```
13
+
14
+ ## 🔧 Gestión de versiones
15
+
16
+ Este proyecto incluye un sistema automatizado para gestionar versiones tanto en desarrollo como en producción.
17
+
18
+ ### Version Manager
19
+
20
+ El script `scripts/version_manager.py` te ayuda a gestionar las versiones de tu paquete de forma local.
21
+
22
+ #### Comandos disponibles
23
+
24
+ ##### 1. Ver información actual
25
+ ```bash
26
+ python scripts/version_manager.py show
27
+ ```
28
+ **Qué hace:**
29
+ - Muestra la versión actual en `pyproject.toml`
30
+ - Muestra la rama git actual
31
+ - Muestra el commit actual
32
+ - Si no estás en `main`, sugiere una versión de desarrollo
33
+
34
+ **Ejemplo de salida:**
35
+ ```
36
+ Versión actual: 0.0.1
37
+ Rama: feature/new-agent
38
+ Commit: a1b2c3d
39
+ Versión dev sugerida: 0.0.1.dev20250409143022+feature/new-agent.a1b2c3d
40
+ ```
41
+
42
+ ##### 2. Crear versión de desarrollo
43
+ ```bash
44
+ python scripts/version_manager.py dev
45
+ ```
46
+ **Qué hace:**
47
+ - Toma la versión actual y crea una versión de desarrollo
48
+ - Formato: `version.devYYYYMMDDHHMMSS+branch.commit`
49
+ - Actualiza automáticamente el `pyproject.toml`
50
+
51
+ **Ejemplo:**
52
+ ```bash
53
+ # Si estás en rama "feature/auth" con commit "abc123"
54
+ python scripts/version_manager.py dev
55
+ # Resultado: 0.0.1.dev20250409143022
56
+ ```
57
+
58
+ ##### 3. Establecer versión específica
59
+ ```bash
60
+ python scripts/version_manager.py set --version "0.1.0"
61
+ ```
62
+ **Qué hace:**
63
+ - Cambia la versión a la que especifiques
64
+ - Útil para releases o para corregir versiones
65
+
66
+ **Ejemplos:**
67
+ ```bash
68
+ # Versión de release
69
+ python scripts/version_manager.py set --version "1.0.0"
70
+
71
+ # Versión beta
72
+ python scripts/version_manager.py set --version "1.0.0b1"
73
+
74
+ # Versión alpha
75
+ python scripts/version_manager.py set --version "1.0.0a1"
76
+ ```
77
+
78
+ ##### 4. Crear versión Release Candidate
79
+ ```bash
80
+ python scripts/version_manager.py rc --version "1.0.1"
81
+ ```
82
+ **Qué hace:**
83
+ - Crea una versión RC con el formato `version-rc<commit>`
84
+ - Útil para preparar releases en ramas `release/*`
85
+
86
+ ##### 5. Validar versión actual
87
+ ```bash
88
+ python scripts/version_manager.py validate
89
+ ```
90
+ **Qué hace:**
91
+ - Valida que la versión actual sea apropiada para la rama
92
+ - Verifica formato semántico en `main` y ramas `release/*`
93
+
94
+ ##### 6. Crear dev con versión base personalizada
95
+ ```bash
96
+ python scripts/version_manager.py dev --base-version "0.2.0"
97
+ ```
98
+ **Qué hace:**
99
+ - Usa una versión base diferente a la actual
100
+ - Útil cuando quieres preparar una dev version para la próxima release
101
+
102
+ ### 🚀 Flujo de trabajo recomendado
103
+
104
+ #### Para desarrollo diario:
105
+ ```bash
106
+ # 1. Ver estado actual
107
+ python scripts/version_manager.py show
108
+
109
+ # 2. Si estás en una rama feature, crear versión dev
110
+ python scripts/version_manager.py dev
111
+
112
+ # 3. Hacer tus cambios y commits
113
+ git add .
114
+ git commit -m "feat: nueva funcionalidad"
115
+
116
+ # 4. Si necesitas actualizar la versión dev (opcional)
117
+ python scripts/version_manager.py dev
118
+ ```
119
+
120
+ #### Para releases:
121
+ ```bash
122
+ # 1. En rama main, establecer versión de release
123
+ python scripts/version_manager.py set --version "1.0.0"
124
+
125
+ # 2. Commit de la versión
126
+ git add pyproject.toml
127
+ git commit -m "bump: version 1.0.0"
128
+
129
+ # 3. Usar el workflow de GitHub para publicar
130
+ ```
131
+
132
+ #### Para testing:
133
+ ```bash
134
+ # Crear versión de test específica
135
+ python scripts/version_manager.py set --version "1.0.0rc1"
136
+ ```
137
+
138
+ ### ⚠️ Limitaciones de PyPI
139
+
140
+ PyPI no permite "local versions" (versiones con `+` y identificadores locales). Por eso, hemos adaptado el formato:
141
+
142
+ - ❌ No permitido: `1.0.0.dev20250409+feature.abc123`
143
+ - ✅ Permitido: `1.0.0.dev20250409`
144
+
145
+ **Solución para Release Candidates:**
146
+ - Convertimos el hash del commit (hexadecimal) a decimal
147
+ - Ejemplo: commit `abc123` → `11256099` → versión `1.0.1rc11256099`
148
+ - Esto mantiene la unicidad del commit en un formato compatible con PyPI
149
+
150
+ **Resultado:**
151
+ - Las versiones dev incluyen timestamp único
152
+ - Las versiones RC incluyen el hash del commit (en decimal)
153
+ - Mantenemos trazabilidad sin usar local versions
154
+
155
+ ### 📋 Casos de uso prácticos
156
+
157
+ **Escenario 1: Trabajando en una feature**
158
+ ```bash
159
+ git checkout -b feature/new-auth
160
+ python scripts/version_manager.py dev
161
+ # Ahora tienes: 0.0.1.dev20250409143022
162
+ ```
163
+
164
+ **Escenario 2: Preparando release**
165
+ ```bash
166
+ git checkout main
167
+ python scripts/version_manager.py set --version "1.0.0"
168
+ git add pyproject.toml
169
+ git commit -m "release: v1.0.0"
170
+ ```
171
+
172
+ **Escenario 3: Preparando Release Candidate**
173
+ ```bash
174
+ git checkout -b release/1.0.1
175
+ python scripts/version_manager.py rc --version "1.0.1"
176
+ # Resultado: 1.0.1rc12345678 (donde 12345678 es el hash del commit en decimal)
177
+ ```
178
+
179
+ **Escenario 4: Hotfix urgente**
180
+ ```bash
181
+ git checkout -b hotfix/critical-bug
182
+ python scripts/version_manager.py dev --base-version "1.0.1"
183
+ # Resultado: 1.0.1.dev20250409143022
184
+ ```
185
+
186
+ ## 🔄 Workflow de CI/CD Inteligente
187
+
188
+ El proyecto incluye un único workflow inteligente (`python-publish.yml`) que maneja automáticamente diferentes tipos de versiones según la rama:
189
+
190
+ ### Comportamiento automático por rama:
191
+
192
+ #### 🚀 Rama `main` - Versiones de Producción
193
+ - **Trigger**: Push a `main` o ejecución manual
194
+ - **Versión**: Usa exactamente la versión del `pyproject.toml`
195
+ - **Validaciones**:
196
+ - ✅ Verifica que sea una versión semántica válida (ej: `1.0.0`)
197
+ - ✅ Verifica que no exista ya en PyPI
198
+ - ❌ Falla si contiene sufijos de desarrollo (`dev`, `rc`, `alpha`, `beta`)
199
+ - **Destino**: PyPI producción
200
+
201
+ #### 🎯 Ramas `release/*` - Release Candidates
202
+ - **Trigger**: Push a rama `release/X.Y.Z` o ejecución manual
203
+ - **Versión**: `X.Y.ZrcN` donde N es el hash del commit en decimal (ej: `1.0.1rc12345678`)
204
+ - **Validaciones**:
205
+ - ✅ Verifica que `X.Y.Z` sea una versión semántica válida
206
+ - ✅ Extrae la versión del nombre de la rama
207
+ - ✅ Usa hash del commit como identificador único
208
+ - ✅ Formato compatible con PyPI
209
+ - **Destino**: PyPI producción
210
+ - **Ejemplo**: Rama `release/1.0.1` + commit `abc123` → Versión `1.0.1rc11256099`
211
+
212
+ #### 🔧 Otras ramas - Versiones de Desarrollo
213
+ - **Trigger**: Push a cualquier otra rama o ejecución manual
214
+ - **Versión**: `current.devYYYYMMDDHHMMSS` (ej: `0.0.1.dev20250409143022`)
215
+ - **Destino**: PyPI producción
216
+ - **Nota**: Sin local versions para compatibilidad con PyPI
217
+
218
+ ### Flujo de trabajo recomendado:
219
+
220
+ ```bash
221
+ # 1. Desarrollo en feature branch
222
+ git checkout -b feature/new-functionality
223
+ # Versión automática: 0.0.1.dev20250409143022+feature-new-functionality.abc123
224
+
225
+ # 2. Preparar release
226
+ git checkout -b release/1.0.0
227
+ git push origin release/1.0.0
228
+ # Versión automática: 1.0.0rc12345678
229
+
230
+ # 3. Release final
231
+ git checkout main
232
+ python scripts/version_manager.py set --version "1.0.0"
233
+ git add pyproject.toml
234
+ git commit -m "release: v1.0.0"
235
+ git push origin main
236
+ # Versión: 1.0.0 (con validaciones)
237
+ ```
238
+
239
+ ## 📦 Instalación
240
+
241
+ ```bash
242
+ pip install aigency
243
+ ```
244
+
245
+ ## 🛠️ Desarrollo
246
+
247
+ 1. Clona el repositorio
248
+ 2. Instala las dependencias de desarrollo
249
+ 3. Usa el version manager para gestionar versiones durante el desarrollo
250
+
251
+ ```bash
252
+ git clone <repo-url>
253
+ cd aigency-lib
254
+ pip install -e .
255
+ ```
@@ -0,0 +1,267 @@
1
+ Metadata-Version: 2.4
2
+ Name: aigency
3
+ Version: 0.0.1.dev20250904075757
4
+ Summary: Add your description here
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: google-adk>=1.11.0
8
+ Requires-Dist: a2a-sdk==0.3.0
9
+ Requires-Dist: litellm<1.73.0,>=1.72.6
10
+ Requires-Dist: pyyaml==6.0.2
11
+ Requires-Dist: PyJWT==2.10.1
12
+
13
+ # aigency-lib
14
+
15
+ Una librería para crear y gestionar agentes de IA.
16
+
17
+ ## Inicio rápido
18
+
19
+ Para probar un agente simple:
20
+
21
+ ```bash
22
+ cd examples/simple_agents/hello_world_agent
23
+ docker compose up
24
+ ```
25
+
26
+ ## 🔧 Gestión de versiones
27
+
28
+ Este proyecto incluye un sistema automatizado para gestionar versiones tanto en desarrollo como en producción.
29
+
30
+ ### Version Manager
31
+
32
+ El script `scripts/version_manager.py` te ayuda a gestionar las versiones de tu paquete de forma local.
33
+
34
+ #### Comandos disponibles
35
+
36
+ ##### 1. Ver información actual
37
+ ```bash
38
+ python scripts/version_manager.py show
39
+ ```
40
+ **Qué hace:**
41
+ - Muestra la versión actual en `pyproject.toml`
42
+ - Muestra la rama git actual
43
+ - Muestra el commit actual
44
+ - Si no estás en `main`, sugiere una versión de desarrollo
45
+
46
+ **Ejemplo de salida:**
47
+ ```
48
+ Versión actual: 0.0.1
49
+ Rama: feature/new-agent
50
+ Commit: a1b2c3d
51
+ Versión dev sugerida: 0.0.1.dev20250409143022+feature/new-agent.a1b2c3d
52
+ ```
53
+
54
+ ##### 2. Crear versión de desarrollo
55
+ ```bash
56
+ python scripts/version_manager.py dev
57
+ ```
58
+ **Qué hace:**
59
+ - Toma la versión actual y crea una versión de desarrollo
60
+ - Formato: `version.devYYYYMMDDHHMMSS+branch.commit`
61
+ - Actualiza automáticamente el `pyproject.toml`
62
+
63
+ **Ejemplo:**
64
+ ```bash
65
+ # Si estás en rama "feature/auth" con commit "abc123"
66
+ python scripts/version_manager.py dev
67
+ # Resultado: 0.0.1.dev20250409143022
68
+ ```
69
+
70
+ ##### 3. Establecer versión específica
71
+ ```bash
72
+ python scripts/version_manager.py set --version "0.1.0"
73
+ ```
74
+ **Qué hace:**
75
+ - Cambia la versión a la que especifiques
76
+ - Útil para releases o para corregir versiones
77
+
78
+ **Ejemplos:**
79
+ ```bash
80
+ # Versión de release
81
+ python scripts/version_manager.py set --version "1.0.0"
82
+
83
+ # Versión beta
84
+ python scripts/version_manager.py set --version "1.0.0b1"
85
+
86
+ # Versión alpha
87
+ python scripts/version_manager.py set --version "1.0.0a1"
88
+ ```
89
+
90
+ ##### 4. Crear versión Release Candidate
91
+ ```bash
92
+ python scripts/version_manager.py rc --version "1.0.1"
93
+ ```
94
+ **Qué hace:**
95
+ - Crea una versión RC con el formato `version-rc<commit>`
96
+ - Útil para preparar releases en ramas `release/*`
97
+
98
+ ##### 5. Validar versión actual
99
+ ```bash
100
+ python scripts/version_manager.py validate
101
+ ```
102
+ **Qué hace:**
103
+ - Valida que la versión actual sea apropiada para la rama
104
+ - Verifica formato semántico en `main` y ramas `release/*`
105
+
106
+ ##### 6. Crear dev con versión base personalizada
107
+ ```bash
108
+ python scripts/version_manager.py dev --base-version "0.2.0"
109
+ ```
110
+ **Qué hace:**
111
+ - Usa una versión base diferente a la actual
112
+ - Útil cuando quieres preparar una dev version para la próxima release
113
+
114
+ ### 🚀 Flujo de trabajo recomendado
115
+
116
+ #### Para desarrollo diario:
117
+ ```bash
118
+ # 1. Ver estado actual
119
+ python scripts/version_manager.py show
120
+
121
+ # 2. Si estás en una rama feature, crear versión dev
122
+ python scripts/version_manager.py dev
123
+
124
+ # 3. Hacer tus cambios y commits
125
+ git add .
126
+ git commit -m "feat: nueva funcionalidad"
127
+
128
+ # 4. Si necesitas actualizar la versión dev (opcional)
129
+ python scripts/version_manager.py dev
130
+ ```
131
+
132
+ #### Para releases:
133
+ ```bash
134
+ # 1. En rama main, establecer versión de release
135
+ python scripts/version_manager.py set --version "1.0.0"
136
+
137
+ # 2. Commit de la versión
138
+ git add pyproject.toml
139
+ git commit -m "bump: version 1.0.0"
140
+
141
+ # 3. Usar el workflow de GitHub para publicar
142
+ ```
143
+
144
+ #### Para testing:
145
+ ```bash
146
+ # Crear versión de test específica
147
+ python scripts/version_manager.py set --version "1.0.0rc1"
148
+ ```
149
+
150
+ ### ⚠️ Limitaciones de PyPI
151
+
152
+ PyPI no permite "local versions" (versiones con `+` y identificadores locales). Por eso, hemos adaptado el formato:
153
+
154
+ - ❌ No permitido: `1.0.0.dev20250409+feature.abc123`
155
+ - ✅ Permitido: `1.0.0.dev20250409`
156
+
157
+ **Solución para Release Candidates:**
158
+ - Convertimos el hash del commit (hexadecimal) a decimal
159
+ - Ejemplo: commit `abc123` → `11256099` → versión `1.0.1rc11256099`
160
+ - Esto mantiene la unicidad del commit en un formato compatible con PyPI
161
+
162
+ **Resultado:**
163
+ - Las versiones dev incluyen timestamp único
164
+ - Las versiones RC incluyen el hash del commit (en decimal)
165
+ - Mantenemos trazabilidad sin usar local versions
166
+
167
+ ### 📋 Casos de uso prácticos
168
+
169
+ **Escenario 1: Trabajando en una feature**
170
+ ```bash
171
+ git checkout -b feature/new-auth
172
+ python scripts/version_manager.py dev
173
+ # Ahora tienes: 0.0.1.dev20250409143022
174
+ ```
175
+
176
+ **Escenario 2: Preparando release**
177
+ ```bash
178
+ git checkout main
179
+ python scripts/version_manager.py set --version "1.0.0"
180
+ git add pyproject.toml
181
+ git commit -m "release: v1.0.0"
182
+ ```
183
+
184
+ **Escenario 3: Preparando Release Candidate**
185
+ ```bash
186
+ git checkout -b release/1.0.1
187
+ python scripts/version_manager.py rc --version "1.0.1"
188
+ # Resultado: 1.0.1rc12345678 (donde 12345678 es el hash del commit en decimal)
189
+ ```
190
+
191
+ **Escenario 4: Hotfix urgente**
192
+ ```bash
193
+ git checkout -b hotfix/critical-bug
194
+ python scripts/version_manager.py dev --base-version "1.0.1"
195
+ # Resultado: 1.0.1.dev20250409143022
196
+ ```
197
+
198
+ ## 🔄 Workflow de CI/CD Inteligente
199
+
200
+ El proyecto incluye un único workflow inteligente (`python-publish.yml`) que maneja automáticamente diferentes tipos de versiones según la rama:
201
+
202
+ ### Comportamiento automático por rama:
203
+
204
+ #### 🚀 Rama `main` - Versiones de Producción
205
+ - **Trigger**: Push a `main` o ejecución manual
206
+ - **Versión**: Usa exactamente la versión del `pyproject.toml`
207
+ - **Validaciones**:
208
+ - ✅ Verifica que sea una versión semántica válida (ej: `1.0.0`)
209
+ - ✅ Verifica que no exista ya en PyPI
210
+ - ❌ Falla si contiene sufijos de desarrollo (`dev`, `rc`, `alpha`, `beta`)
211
+ - **Destino**: PyPI producción
212
+
213
+ #### 🎯 Ramas `release/*` - Release Candidates
214
+ - **Trigger**: Push a rama `release/X.Y.Z` o ejecución manual
215
+ - **Versión**: `X.Y.ZrcN` donde N es el hash del commit en decimal (ej: `1.0.1rc12345678`)
216
+ - **Validaciones**:
217
+ - ✅ Verifica que `X.Y.Z` sea una versión semántica válida
218
+ - ✅ Extrae la versión del nombre de la rama
219
+ - ✅ Usa hash del commit como identificador único
220
+ - ✅ Formato compatible con PyPI
221
+ - **Destino**: PyPI producción
222
+ - **Ejemplo**: Rama `release/1.0.1` + commit `abc123` → Versión `1.0.1rc11256099`
223
+
224
+ #### 🔧 Otras ramas - Versiones de Desarrollo
225
+ - **Trigger**: Push a cualquier otra rama o ejecución manual
226
+ - **Versión**: `current.devYYYYMMDDHHMMSS` (ej: `0.0.1.dev20250409143022`)
227
+ - **Destino**: PyPI producción
228
+ - **Nota**: Sin local versions para compatibilidad con PyPI
229
+
230
+ ### Flujo de trabajo recomendado:
231
+
232
+ ```bash
233
+ # 1. Desarrollo en feature branch
234
+ git checkout -b feature/new-functionality
235
+ # Versión automática: 0.0.1.dev20250409143022+feature-new-functionality.abc123
236
+
237
+ # 2. Preparar release
238
+ git checkout -b release/1.0.0
239
+ git push origin release/1.0.0
240
+ # Versión automática: 1.0.0rc12345678
241
+
242
+ # 3. Release final
243
+ git checkout main
244
+ python scripts/version_manager.py set --version "1.0.0"
245
+ git add pyproject.toml
246
+ git commit -m "release: v1.0.0"
247
+ git push origin main
248
+ # Versión: 1.0.0 (con validaciones)
249
+ ```
250
+
251
+ ## 📦 Instalación
252
+
253
+ ```bash
254
+ pip install aigency
255
+ ```
256
+
257
+ ## 🛠️ Desarrollo
258
+
259
+ 1. Clona el repositorio
260
+ 2. Instala las dependencias de desarrollo
261
+ 3. Usa el version manager para gestionar versiones durante el desarrollo
262
+
263
+ ```bash
264
+ git clone <repo-url>
265
+ cd aigency-lib
266
+ pip install -e .
267
+ ```
@@ -0,0 +1,14 @@
1
+ [project]
2
+ name = "aigency"
3
+ version = "0.0.1.dev20250904075757"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [ "google-adk>=1.11.0", "a2a-sdk==0.3.0", "litellm>=1.72.6,<1.73.0", "pyyaml==6.0.2", "PyJWT==2.10.1",]
8
+
9
+ [build-system]
10
+ requires = [ "setuptools>=61.0", "wheel",]
11
+ build-backend = "setuptools.build_meta"
12
+
13
+ [tool.setuptools.packages.find]
14
+ include = [ "aigency*",]
aigency-0.0.1/PKG-INFO DELETED
@@ -1,18 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: aigency
3
- Version: 0.0.1
4
- Summary: Add your description here
5
- Requires-Python: >=3.12
6
- Description-Content-Type: text/markdown
7
- Requires-Dist: google-adk>=1.11.0
8
- Requires-Dist: a2a-sdk==0.3.0
9
- Requires-Dist: litellm<1.73.0,>=1.72.6
10
- Requires-Dist: pyyaml==6.0.2
11
- Requires-Dist: PyJWT==2.10.1
12
-
13
- # aigency-lib
14
-
15
-
16
- aigency-lib/examples/simple_agents/hello_world_agent
17
-
18
- docker compose up
aigency-0.0.1/README.md DELETED
@@ -1,6 +0,0 @@
1
- # aigency-lib
2
-
3
-
4
- aigency-lib/examples/simple_agents/hello_world_agent
5
-
6
- docker compose up
@@ -1,18 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: aigency
3
- Version: 0.0.1
4
- Summary: Add your description here
5
- Requires-Python: >=3.12
6
- Description-Content-Type: text/markdown
7
- Requires-Dist: google-adk>=1.11.0
8
- Requires-Dist: a2a-sdk==0.3.0
9
- Requires-Dist: litellm<1.73.0,>=1.72.6
10
- Requires-Dist: pyyaml==6.0.2
11
- Requires-Dist: PyJWT==2.10.1
12
-
13
- # aigency-lib
14
-
15
-
16
- aigency-lib/examples/simple_agents/hello_world_agent
17
-
18
- docker compose up
@@ -1,20 +0,0 @@
1
- [project]
2
- name = "aigency"
3
- version = "0.0.1"
4
- description = "Add your description here"
5
- readme = "README.md"
6
- requires-python = ">=3.12"
7
- dependencies = [
8
- "google-adk>=1.11.0",
9
- "a2a-sdk==0.3.0",
10
- "litellm>=1.72.6,<1.73.0",
11
- "pyyaml==6.0.2",
12
- "PyJWT==2.10.1"
13
- ]
14
-
15
- [build-system]
16
- requires = ["setuptools>=61.0", "wheel"]
17
- build-backend = "setuptools.build_meta"
18
-
19
- [tool.setuptools.packages.find]
20
- include = ["aigency*"]