feat: pipeline_launcher TUI para lanzar pipelines y registrar ejecuciones

TUI fullscreen con dos tabs: Pipelines (lista filtrable del registry,
lanzamiento como subproceso, registro automático en operations.db) y
History (historial de ejecuciones con status, duración y detalles).
Incluye launcher.sh en la raíz para ejecución rápida.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-28 17:14:11 +01:00
parent a8f5b3c828
commit edfff680b3
12 changed files with 949 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
package pipelines
// PipelineLauncher es una TUI fullscreen para listar, lanzar y monitorear pipelines.
//
// Tabs: Pipelines (lista filtrable + lanzamiento) y History (historial de ejecuciones).
// Registra cada ejecución en operations.db usando fn_operations.
//
// Implementation: apps/pipeline_launcher/main.go
+47
View File
@@ -0,0 +1,47 @@
---
name: pipeline_launcher
kind: pipeline
lang: go
domain: infra
version: "1.0.0"
purity: impure
signature: "func main() — TUI fullscreen para lanzar pipelines y registrar ejecuciones"
description: "TUI interactiva que lista pipelines del registry, permite lanzarlos como subprocesos y registra cada ejecución en operations.db. Dos tabs: Pipelines (filtro + launch) y History (historial)."
tags: [tui, pipeline, launcher, infra, operations, bubbletea, devfactory]
uses_functions:
- docker_tui_go_infra
uses_types:
- base_model_go_tui
- filtered_list_model_go_tui
- spinner_model_go_tui
- styles_go_tui
returns: []
returns_optional: false
error_type: "error_go_core"
imports:
- github.com/charmbracelet/bubbletea
- github.com/lucasdataproyects/devfactory
- fn-registry/registry
- fn-registry/fn_operations
tested: false
tests: []
test_file_path: ""
file_path: "apps/pipeline_launcher/main.go"
---
## Ejemplo
```bash
FN_REGISTRY_ROOT=/home/lucas/fn_registry go run apps/pipeline_launcher/main.go
```
## Notas
TUI con dos tabs:
- **Pipelines**: lista filtrable de todos los pipelines del registry. Enter lanza el pipeline seleccionado como subproceso (`go run .`), muestra spinner durante la ejecución, y al terminar muestra stdout/stderr y registra la ejecución en operations.db.
- **History**: historial de ejecuciones pasadas con status, duración y timestamp. Enter muestra detalle completo.
Teclas: Tab/Shift+Tab cambia vista, Enter ejecuta acción, r refresca, / filtra, j/k scroll, Esc vuelve.
Requiere `FN_REGISTRY_ROOT` apuntando a la raíz del fn-registry para encontrar registry.db y los file_path de los pipelines.