# CLI Jobs (Codex + Gemini) with completion hooks

Helpers para lanzar tareas de Codex/Gemini en background y registrar cuando terminan.

## Archivos

- `jobctl.sh`: runner principal (`run`, `status`, `tail`, `list`, `wait`)
- `hooks/on_task_done.sh`: hook ejecutado al terminar cada job
- estado/logs en `./.taskruns/`

## Setup

```bash
cd ~/.openclaw/workspace
chmod +x ops/cli-jobs/jobctl.sh ops/cli-jobs/hooks/on_task_done.sh
```

## Ejecutar tareas

```bash
# Codex con red (recomendado para git/github)
ops/cli-jobs/jobctl.sh run codex "clona Luca-De-Maio/MarIApp y resumime la arquitectura"

# Codex modo seguro (sin red de comandos)
ops/cli-jobs/jobctl.sh run codex-safe "revisá este archivo local"

# Gemini one-shot
ops/cli-jobs/jobctl.sh run gemini "resumí este texto en 5 bullets"
```

El comando devuelve un `job_id`.

## Ver estado y logs

```bash
ops/cli-jobs/jobctl.sh list
ops/cli-jobs/jobctl.sh status <job_id>
ops/cli-jobs/jobctl.sh tail <job_id>
ops/cli-jobs/jobctl.sh wait <job_id>
tail -n 50 ~/.openclaw/workspace/.taskruns/hook.log
```

## Hook de finalización + notificación Telegram

Cuando un job termina:

- se agrega un evento NDJSON en `~/.openclaw/workspace/.taskruns/completed.ndjson`
- se envía notificación por Telegram (silenciosa) al chat configurado

Valores por defecto del hook:

- `PIPO_NOTIFY_ENABLED=1`
- `PIPO_NOTIFY_CHANNEL=telegram`
- `PIPO_NOTIFY_TARGET=842987156`
- `PIPO_NOTIFY_PREVIEW_CHARS=220`

Override rápido (ejemplo):

```bash
PIPO_NOTIFY_TARGET=123456789 ops/cli-jobs/jobctl.sh run codex "tu tarea"
```

Desactivar notificaciones:

```bash
PIPO_NOTIFY_ENABLED=0 ops/cli-jobs/jobctl.sh run codex "tu tarea"
```
