100 lines
4.6 KiB
Markdown
100 lines
4.6 KiB
Markdown
# AGENTS.md — Repo INFRAESTRUCTURA (infraestructura compartida Prolongo)
|
|
|
|
> Repo hermano de `biblioteca_negocio_prolongo`. Aquí vive **todo lo que hace
|
|
> funcionar** los equipos (sobremesa, portátil, VPS): watchers, automatizaciones,
|
|
> plugins, configuración de servicios y el **changelog global**.
|
|
>
|
|
> **Regla 31**: si algo sirve para "hacer funcionar" o automatizar la
|
|
> infraestructura → este repo. Si es "conocer el negocio" o memoria → biblioteca.
|
|
|
|
## Estructura
|
|
|
|
| Ruta | Qué es |
|
|
|------|--------|
|
|
| `changelog_infra.json` | Fuente de verdad del changelog global (por equipo) |
|
|
| `CHANGELOG_INFRA.md` | Versión legible (generada; no editar a mano) |
|
|
| `AGENTS.md` | Este fichero: reglas del repo de infraestructura |
|
|
| `estado/` | Estado y memoria de infraestructura (ver abajo) |
|
|
| `estado/ESTADO_DIARIO.md` | Diario de cambios de infraestructura |
|
|
| `estado/pendientes_infra.json` | Pendientes propios de infraestructura |
|
|
| `estado/telegram_mensajes.log` | Log del watcher de Telegram (runtime, gitignored) |
|
|
| `estado/recordatorios_msgbox.json` | Recordatorios locales del message box |
|
|
| `estado/telegram_tracked_users.json` | Config del watcher (contactos vigilados, etc.) |
|
|
| `scripts/infra_changelog.py` | Añadir / consultar / marcar cambios del changelog |
|
|
| `scripts/infra_paths.py` | Resolución de rutas compartidas (INFRAESTRUCTURA ↔ biblioteca) |
|
|
| `scripts/instalar_global.ps1` | Instalador global del equipo (OmniRoute + OpenCode + watchers) |
|
|
| `scripts/instalar_watchers.ps1` | Registra las tareas programadas de los watchers |
|
|
| `scripts/telegram_watcher.py` | Watcher de Telegram (chats → `estado/telegram_mensajes.log`) |
|
|
| `scripts/recordatorios_msgbox.py` | Recordatorios con message box de Windows |
|
|
| `scripts/recordatorio.cmd` | Comando corto `recordatorio` (listar/done/add/test/sync) |
|
|
| `omniroute/` | Vigilante y autostart de OmniRoute |
|
|
| `opencode/` | Plugin global de OpenCode |
|
|
| `vps/` | Configuración de servicios del VPS (Gitea, etc.) |
|
|
|
|
## Reglas del repo
|
|
|
|
1. **Solo se versiona infraestructura.** Nada de conocimiento de negocio.
|
|
2. Todo cambio de infraestructura se **anota en el changelog** (abajo) con
|
|
`transferible: si|no` para que el otro equipo sepa si debe replicarlo.
|
|
3. **Nunca** guardar secretos/tokens en el repo (van a `.env` o variables de
|
|
usuario; `.gitignore` ya cubre lo típico).
|
|
4. Los watchers se ejecutan como **tareas programadas** al iniciar sesión; si se
|
|
caen, relanzarlos a mano y, si hace falta, reinstalar con
|
|
`scripts/instalar_watchers.ps1`.
|
|
5. Este repo está registrado en **Engram** (proyecto `INFRAESTRUCTURA`),
|
|
**Gitea** (`jjminguez/INFRAESTRUCTURA`) y **Obsidian** (`03-IT/`).
|
|
|
|
## Watchers
|
|
|
|
Los watchers viven en `scripts/` y su estado en `estado/`:
|
|
|
|
```powershell
|
|
# Instalar/reinstalar tareas programadas (AtLogOn + reinicio si falla)
|
|
powershell -ExecutionPolicy Bypass -File scripts\instalar_watchers.ps1
|
|
|
|
# Verificar que corren
|
|
Get-CimInstance Win32_Process -Filter "Name='python.exe'" |
|
|
Where-Object { $_.CommandLine -match 'telegram_watcher|recordatorios_msgbox' }
|
|
```
|
|
|
|
`telegram_watcher.py` y `recordatorios_msgbox.py` resuelven las rutas con
|
|
`scripts/infra_paths.py`:
|
|
- Estado → `INFRAESTRUCTURA/estado/`
|
|
- Datos de negocio (`pendientes.json`) y módulos aún compartidos
|
|
(`idd_channel`, `netatmo_tool`, `alarma_twilio`) → repo
|
|
`biblioteca_negocio_prolongo` (hermano; override con `BIBLIOTECA_REPO`).
|
|
|
|
## Changelog global (sobremesa ↔ portátil ↔ VPS)
|
|
|
|
```powershell
|
|
# Añadir un cambio (detecta el equipo automáticamente)
|
|
python scripts\infra_changelog.py add --titulo "..." --categoria watchers --transferible si --detalle "..."
|
|
|
|
# Ver qué falta replicar en ESTE equipo
|
|
python scripts\infra_changelog.py pendientes
|
|
|
|
# Marcar como aplicado aquí
|
|
python scripts\infra_changelog.py aplicado <id>
|
|
|
|
# Resumen
|
|
python scripts\infra_changelog.py estado
|
|
```
|
|
|
|
El protocolo `re` de cada equipo lee este fichero (paso 4b), avisa de lo pendiente y lo **aplica automáticamente** con `instalar_global.ps1` antes de continuar.
|
|
|
|
## Instalación en un equipo nuevo (p. ej. el portátil)
|
|
|
|
```powershell
|
|
git clone https://git.v-encore-lab.com/jjminguez/INFRAESTRUCTURA.git
|
|
cd INFRAESTRUCTURA
|
|
powershell -ExecutionPolicy Bypass -File scripts\instalar_global.ps1
|
|
```
|
|
|
|
Prerrequisitos: Python en el PATH; Node.js + `npm i -g omniroute` para OmniRoute.
|
|
Copiar además `~/.omniroute` (credenciales), `~/.config/opencode/opencode.jsonc` y
|
|
`~/.telegram-agent` (sesión de Telegram) desde el otro equipo.
|
|
|
|
> Al arrancar el portátil, el `re` detectará automáticamente los cambios transferibles
|
|
> pendientes y los **aplicará de inmediato** ejecutando `instalar_global.ps1` y marcándolos
|
|
> como aplicados antes de continuar con la sesión.
|