Alert(props: { variant?: 'default' | 'destructive' }): JSX.Element

Alerta accesible con variantes default y destructive. Sistema de slots para título, descripción, icono y acción.

Retorna True si todos los elementos de la lista cumplen el predicado.

Devuelve true si todos los elementos del slice cumplen el predicado.

Genera un dashboard de analytics completo con header, fila de KPIs con deltas y grid de charts configurables.

func AnnualizedVolatility(returns []float64, periodsPerYear float64) float64

Calcula la volatilidad anualizada a partir de una serie de retornos y la frecuencia de los periodos.

def annualized_volatility(returns: list, periods_per_year: float) -> float

Retorna True si al menos un elemento de la lista cumple el predicado.

Devuelve true si al menos un elemento del slice cumple el predicado.

Inyecta un tema como CSS variables en document.documentElement. Maneja clase dark automáticamente. Mapea 40 tokens semánticos.

Gráfico de área Recharts con gradientes automáticos, multi-series, stacking y tooltips temáticos.

Verifica que un comando está disponible en el PATH. Sale con exit code 1 si no se encuentra, con mensaje a stderr.

Verifica que un contenedor Docker está corriendo. Sale con exit code 1 si no está activo, con mensaje a stderr.

Verifica que un archivo existe en el filesystem. Imprime su tamaño en bytes a stdout. Sale con exit code 1 si el archivo no existe.

Calcula la autocorrelación de una serie temporal con un desfase (lag) dado, usando correlación de Pearson.

Calcula la autocorrelacion de una serie temporal para un lag dado.

Badge(props: BadgeProps & VariantProps<typeof badgeVariants>): JSX.Element

Badge con 10 variantes semánticas (default, secondary, destructive, outline, ghost, link, success, warning, error, info) y 2 tamaños.

Gráfico de barras Recharts con multi-series, orientación horizontal/vertical, tooltips temáticos y bordes redondeados.

func BollingerBands(data []float64, period int, numStdDev float64) (upper, middle, lower []float64)

Calcula las bandas de Bollinger (upper, middle, lower) para una serie de precios.

def bollinger_bands(data: list, period: int, num_std: float) -> tuple

Calcula las Bandas de Bollinger (upper, middle, lower) de una serie de precios.

Button(props: ButtonProps & VariantProps<typeof buttonVariants>): JSX.Element

Botón accesible con 6 variantes (default, outline, secondary, ghost, destructive, link) y 8 tamaños. Base-UI primitivo con CVA.

Card(props: { size?: 'default' | 'sm'; variant?: 'default' | 'borderless' | 'ghost'; className?: string; children: ReactNode }): JSX.Element

Contenedor card con header, title, description, action, content y footer. Sistema de slots composable. Variantes default, borderless y ghost para dashboards dark.

Hace click en el primer elemento que coincide con el selector CSS. Obtiene coordenadas del centro via getBoundingClientRect, hace scroll al elemento y despacha eventos mousedown+mouseup via Input.dispatchMouseEvent.

Cierra la conexion WebSocket CDP y opcionalmente mata el proceso Chrome por PID. Si c es nil, solo mata el proceso. Si pid <= 0, solo cierra la conexion. Siempre intenta ambas operaciones aunque una falle.

Se conecta al endpoint CDP en localhost:{port}. Obtiene el webSocketDebuggerUrl via HTTP /json/version, realiza el handshake WebSocket RFC 6455 sobre TCP puro (sin dependencias externas) y retorna una CDPConn lista para usar. Inicia goroutine de lectura de mensajes.

Ejecuta una expresion JavaScript arbitraria en la pagina actual via Runtime.evaluate. Retorna el resultado serializado como string. Soporta await (awaitPromise=true). Reporta excepciones JS como error.

Retorna el HTML completo de la pagina actual (document.documentElement.outerHTML) via Runtime.evaluate. Captura el DOM vivo post-JavaScript, no el HTML fuente original.

Navega a la URL indicada usando el comando Page.navigate del protocolo CDP. Verifica que no haya errorText en la respuesta. Recibe una *CDPConn obtenida de CdpConnect.

func CdpScreenshot(c *CDPConn, outputPath string, opts CdpScreenshotOpts) error

Captura un screenshot de la pagina actual via Page.captureScreenshot y lo guarda en el archivo indicado. Soporta PNG y JPEG, viewport o pagina completa. Crea el directorio destino si no existe.

Escribe texto en el elemento activo de la pagina caracter por caracter via Input.dispatchKeyEvent. Envia eventos keyDown, char y keyUp por cada caracter con 10ms de pausa entre ellos. Usar CdpClick primero para enfocar el elemento.

func CdpWaitElement(c *CDPConn, selector string, timeout time.Duration) error

Espera hasta que un selector CSS exista en el DOM. Hace polling con Runtime.evaluate cada 200ms. Retorna nil cuando el elemento aparece o error si se agota el timeout. Util despues de navegacion o acciones que producen cambios dinamicos.

Espera a que la pagina actual termine de cargar completamente. Hace polling de document.readyState via Runtime.evaluate cada 200ms hasta que sea "complete", o hasta que se agote el timeout. Retorna error inmediato si CdpEvaluate falla (la conexion puede estar rota).

Paleta de colores para gráficos basada en CSS variables del tema activo. Colores accesibles por índice cíclico.

ChartContainer(props: { children: ReactNode; height?: number | string }): JSX.Element

Base para todos los charts Recharts: container responsive, tooltip temático, legend y utilidades de colores por serie.

Lanza Google Chrome con remote debugging habilitado en el puerto indicado. Busca chrome.exe en PATH (WSL2) o en rutas conocidas de Windows. Espera hasta 15s a que el puerto CDP este listo antes de retornar. Retorna el PID del proceso.

Divide un slice en trozos (sub-slices) de tamanio N. El ultimo trozo puede contener menos de N elementos. Retorna nil si el slice esta vacio. Entra en panic si size <= 0.

Divide una lista en sublistas de tamanio fijo. El ultimo chunk puede ser menor.

Devuelve el codigo de escape ANSI para limpiar la pantalla del terminal.

func ClickHouseOpen(host string, port int, user, password, database string) (*sql.DB, error)

Conecta a ClickHouse construyendo DSN clickhouse://user:pass@host:port/database.

Recorta cada valor del slice para que quede dentro del rango [min, max].

Combina clases CSS con clsx y resuelve conflictos Tailwind con tailwind-merge. Utilidad fundamental para composición de estilos.

Compone funciones de derecha a izquierda. compose(f, g)(x) == f(g(x)).

func Compose2[A, B, C any](f2 func(B) C, f1 func(A) B) func(A) C

Compone dos funciones de derecha a izquierda. compose2(g, f)(x) = g(f(x)).

Muestra un dialogo de confirmacion Si/No en terminal y devuelve la eleccion del usuario.

Devuelve una funcion que siempre retorna el valor dado, ignorando su argumento.

Genera una página CRUD completa con header, tabla con columnas configurables, botones de acción (add/edit/delete) y schema de formulario.

Construye estilos oscuros combinando DarkTheme con NewStyles. Atajo conveniente para terminales con fondo negro.

Construye un tema de colores oscuro para componentes TUI. Paleta optimizada para terminales con fondo negro.

Genera un grid responsive de dashboard a partir de un array de widgets con span configurable. 1-4 columnas con auto-responsive.

Tabla de datos con sticky header, overflow scroll, heatmap por columna, formato condicional (number/datetime/currency) y hover rows. Auto-detecta columnas desde la primera fila si no se proveen.

Cierra la conexion a la base de datos. Wrapper sobre db.Close() para composabilidad en pipelines que gestionan el ciclo de vida de *sql.DB explicitamente.

func DBCreateTable(db *sql.DB, table string, columns []string) error

Ejecuta CREATE TABLE IF NOT EXISTS con las definiciones de columnas dadas. Valida que el nombre de tabla sea un identificador SQL seguro.

func DBExec(db *sql.DB, query string, args ...any) (int64, error)

Ejecuta un statement no-SELECT (INSERT, UPDATE, DELETE, DDL) y retorna el numero de filas afectadas.

func DBInsertBatch(db *sql.DB, table string, columns []string, rows [][]any) (int64, error)

Inserta multiples filas en una transaccion usando prepared statement. Retorna el total de filas afectadas. Mas eficiente que llamar DBInsertRow en un loop.

func DBInsertRow(db *sql.DB, table string, row map[string]any) (int64, error)

Genera y ejecuta un INSERT de una sola fila desde un map columna→valor. Retorna el last insert ID. Sanitiza nombres de tabla y columnas.

func DBQuery(db *sql.DB, query string, args ...any) ([]map[string]any, error)

Ejecuta un SELECT y retorna los resultados como slice de maps. Convierte valores a tipos nativos Go segun el tipo de columna reportado por el driver.

Construye estilos por defecto combinando DefaultTheme con NewStyles. Atajo conveniente para el caso comun.

Construye el tema de colores por defecto para componentes TUI. Paleta clara optimizada para terminales con fondo blanco.

func DeployApp(appDir string, imageName string, port int, envVars map[string]string) (string, error)

Orquesta el deploy completo de una app Go en Docker. Pasos: genera Dockerfile, lo escribe a disco, construye la imagen y lanza el contenedor en modo detach con port mapping. Retorna el container ID.

Genera una página de detalle de entidad con header (avatar, badge, back), grid de campos, tabs con contadores y timeline de actividad.

func DetectCycle(conn *sql.DB, table, fromCol, toCol, filterCol, fromNode, toNode string) error

Detecta ciclos en un grafo dirigido almacenado en SQLite usando BFS antes de insertar una arista.

Detecta outliers en un slice de float64 usando z-score. Devuelve true para valores cuyo |z-score| supera el umbral.

Detecta outliers por z-score. Retorna lista de bools, True donde |z-score| > threshold.

func DetectSQLInjection(input string) (isThreat bool, pattern string)

Analiza un input en busca de patrones heuristicos de inyeccion SQL y devuelve si se detecto amenaza y el patron encontrado.

Detecta patrones de SQL injection en un string. Retorna (is_threat, pattern) con el nombre del patron detectado.

Diálogo modal accesible con overlay blur, animaciones, close button y sistema de slots (header, footer, title, description).

func DockerBuildImage(contextDir, tag string, buildArgs map[string]string) (string, error)

Construye una imagen Docker desde un directorio con Dockerfile. Soporta build args opcionales. Retorna el image ID de la imagen construida.

func DockerComposeDown(composeFile string, removeVolumes bool) (string, error)

Baja un stack docker-compose desde el archivo dado. Si removeVolumes es true elimina también los volumes declarados (-v). Retorna el stdout del comando.

func DockerComposeUp(composeFile string, detach bool) (string, error)

Levanta un stack docker-compose desde el archivo dado. Si detach es true ejecuta en background (-d). Retorna el stdout del comando.

func DockerContainerLogs(nameOrID string, tail int) (string, error)

Obtiene los logs de un contenedor Docker. El parámetro tail limita a las últimas N líneas (0 devuelve todos los logs).

docker_cp_file(local_path: string, container_name: string, dest_path: string) -> string

Copia un archivo local a un contenedor Docker y verifica que el tamaño coincide. Imprime JSON con local_size y remote_size a stdout. Sale con exit code 1 si docker cp falla o los tamaños difieren.

Crea una red Docker con el nombre y driver dados. Si driver está vacío usa bridge por defecto. Devuelve el ID de la red creada.

func DockerInspectContainer(nameOrID string) (map[string]any, error)

Devuelve los detalles completos de un contenedor Docker como mapa JSON genérico. Útil para inspeccionar configuración, red, volumes, etc.

Lista contenedores Docker locales. Si all es true incluye contenedores detenidos. Parsea la salida JSON de docker ps.

Lista las imágenes Docker disponibles localmente. Parsea la salida JSON de docker images.

Descarga una imagen Docker desde el registry remoto (Docker Hub u otro configurado). Acepta formato image:tag.

Elimina un contenedor Docker. Con force=true puede eliminar contenedores en ejecución (equivale a docker rm -f).

Elimina una imagen Docker local. Con force=true fuerza la eliminación incluso si hay contenedores que la usan.

func DockerRunContainer(image string, opts DockerRunOpts) (string, error)

Ejecuta un contenedor Docker nuevo a partir de una imagen. Soporta puertos, env vars, volumes, network, detach y auto-remove. Devuelve el ID del contenedor.

Inicia un contenedor Docker existente que está detenido. Recibe nombre o ID del contenedor.

func DockerStopContainer(nameOrID string, timeoutSecs int) error

Detiene un contenedor Docker en ejecución. timeoutSecs controla el tiempo de gracia antes de SIGKILL (0 usa el default de Docker).

Pipeline que compone componentes TUI de DevFactory con comandos Docker para crear una aplicacion de terminal interactiva. Gestiona containers, images, volumes, networks y compose.

Crea un volume Docker con el nombre dado. Retorna el nombre del volume creado tal como lo confirma Docker.

Lista los volumes Docker disponibles localmente. Parsea la salida JSON de docker volume ls. Retorna slice de maps con campos Driver, Name, Scope, Labels, Mountpoint.

Elimina un volume Docker por nombre. Si force es true fuerza la eliminación aunque esté en uso.

Elimina los primeros n elementos de un slice y devuelve el resto.

Abre (o crea) una base de datos DuckDB. Path vacio o ':memory:' abre una base en memoria.

Calcula la media movil exponencial (EMA) sobre una serie de datos con un periodo dado.

Calcula la media movil exponencial (EMA) de una serie de precios.

def embedding_encode(model: SentenceTransformer, texts: list, mode: str = 'document') -> list

Genera embeddings normalizados para textos. Aplica prefijos e5 automaticamente segun mode (document/query).

Carga modelo de embeddings desde path local. Retorna instancia lista para encode.

Descarga modelo de embeddings de HuggingFace y lo guarda en path local para carga rapida sin red.

def embedding_search_sqlvec(db_path: str, table: str, query_embedding: list, k: int = 10) -> list

Busca los k vecinos mas cercanos en tabla sqlite-vec. Retorna rowids y distancias ordenados.

def embedding_search_usearch(path: str, query_embedding: list, k: int = 10, dim: int = 384) -> list

Busca los k vecinos mas cercanos en indice USearch persistido. Busqueda sub-milisegundo.

def embedding_store_sqlvec(db_path: str, table: str, ids: list, embeddings: list, dim: int = 384) -> int

Inserta embeddings en tabla sqlite-vec. Crea la tabla virtual si no existe. Insercion en batches.

def embedding_store_usearch(path: str, ids: list, embeddings: list, dim: int = 384) -> int

Crea indice USearch con embeddings y lo persiste a archivo. Busqueda sub-milisegundo.

Calcula la entropia de Shannon de un slice de bytes. Retorna un valor entre 0 y 8 bits por byte.

Calcula la entropia de Shannon de datos binarios (0-8 bits por byte). Util para detectar datos cifrados o comprimidos.

exit_with_status(total_steps: int, ok_steps: int, failed_steps: int) -> int

Calcula el exit code estandar (0=success, 1=failure, 2=partial) a partir de contadores de pasos. Si failed_steps=0 imprime 0 y sale con 0. Si ok_steps=0 imprime 1 y sale con 1. Si hay ambos imprime 2 y sale con 2.

Extrae todas las URLs HTTP/HTTPS de un texto usando expresiones regulares.

Extrae todas las URLs (http/https) de un texto. Util para analisis de IoCs y threat intelligence.

func FetchDataFrame(dsn, query string) ([]map[string]any, error)

Ejecuta una consulta SQL contra un DSN y retorna los resultados como slice de mapas columna-valor.

Realiza una solicitud HTTP HEAD a una URL y devuelve los headers de la respuesta.

Obtiene datos OHLCV de un exchange para un simbolo e intervalo dados.

Calcula la Transformada Rápida de Fourier (FFT) usando el algoritmo Cooley-Tukey radix-2. Aplica zero-padding si la longitud no es potencia de 2.

Filtra un slice aplicando un predicado sin mutar el original. Retorna un nuevo slice con los elementos que cumplen la condicion.

Devuelve el primer elemento del slice que cumple el predicado, envuelto en Option.

Encuentra el primer elemento que cumple el predicado. Retorna None si no hay coincidencia.

Busca el primer puerto TCP libre en un rango dado usando ss y lsof. Retorna el numero de puerto a stdout.

func FindIndex[T any](slice []T, predicate func(T) bool) Option[int]

Devuelve el indice del primer elemento que cumple el predicado, envuelto en Option.

Encuentra el indice del primer elemento que cumple el predicado. Retorna -1 si no hay coincidencia.

Aplica una funcion que retorna listas a cada elemento y aplana el resultado un nivel.

Aplica una funcion que devuelve slices a cada elemento y aplana el resultado.

Aplana una lista de listas un nivel, concatenando las sublistas.

Intercambia el orden de los argumentos de una funcion de dos parametros.

Wrapper de campo de formulario con label, helper text, error y ARIA automáticos. Inyecta id y aria-describedby a hijos.

Familia de funciones de formato compacto: números (K/M/B), frecuencia (Hz/KHz/MHz), bytes (KB/MB/GB), duración (ms/s/min/h).

func GenerateDockerfile(binaryName string, port int, envVars map[string]string) string

Genera el texto de un Dockerfile multi-stage para una app Go. Stage build con golang:1.23-alpine, stage final con alpine:latest. Incluye ENV vars del map con orden determinista. Funcion pura sin I/O.

Genera un ID canonico determinista a partir de nombre, lenguaje y dominio.

Devuelve color para una serie de gráfico por índice cíclico, o el color explícito si se proporciona.

func GoBuildBinary(projectDir, outputPath string, ldflags string, tags string) error

Compila un binario Go desde un directorio de proyecto. Si ldflags está vacío usa -s -w (strip debug). Si outputPath está vacío usa build/{dirname} dentro del projectDir. Ejecuta con CGO_ENABLED=0.

func GroupBy[T any, K comparable](slice []T, keyFn func(T) K) map[K][]T

Agrupa elementos de un slice por clave generada con una funcion.

func GroupBy[T any, K comparable](xs []T, keyFn func(T) K) map[K][]T

Agrupa los elementos de un slice según una función clave, devolviendo un mapa de clave a slice de elementos.

Agrupa elementos de una lista por una funcion clave. Retorna dict de clave a lista.

Calcula el hash MD5 de un slice de bytes y devuelve el resultado como string hexadecimal.

Calcula el hash SHA-256 de un slice de bytes y devuelve el resultado como string hexadecimal.

func HealthCheckHTTP(url string, timeoutSecs, intervalMs int) error

Hace polling HTTP GET a un endpoint hasta recibir status 200 o hasta agotar el timeout. Útil para esperar que un servicio levante antes de continuar un pipeline.

Devuelve el codigo de escape ANSI para ocultar el cursor del terminal.

Calcula las frecuencias de un slice de float64 distribuidas en un número dado de buckets equiespaciados.

Calcula histograma con N buckets. Retorna lista de conteos por bucket.

Devuelve el valor recibido sin modificarlo. Elemento neutro de la composicion.

Rellena valores NaN en un slice de float64 usando forward-fill, reemplazando cada NaN con el último valor válido anterior.

init_jupyter_analysis(nombre: string, [...paquetes_extra: string]) -> void

Inicializa un analisis Jupyter completo en analysis/{nombre}/ con venv, paquetes, launcher, MCP y reglas para agentes Claude. Acepta paquetes extra opcionales.

Pipeline que inicializa un contenedor Metabase con su base de datos Postgres. Crea red Docker, pull de imágenes, inicia Postgres con volume persistente, espera health check y lanza Metabase conectado.

Crea un virtualenv Python con uv en el directorio dado si no existe. Fallback a python3 -m venv. Retorna la ruta del venv.

Campo de entrada accesible con soporte para iconos, grupos, validación ARIA y estados disabled/invalid.

Instala NordVPN CLI en Ubuntu/Debian (incluido WSL2). Configura repositorio oficial, instala paquete y habilita servicio nordvpnd. Idempotente.

Verifica si una direccion IP se encuentra dentro de un rango CIDR dado.

Valida si un string es una cadena base64 valida segun el encoding estandar.

Verifica si un string es base64 valido. Acepta base64 estandar y URL-safe. Requiere minimo 4 caracteres.

Valida si un string es una cadena hexadecimal valida (longitud par, caracteres 0-9 a-f A-F).

Verifica si un string es hexadecimal valido. Acepta con o sin prefijo 0x. Requiere minimo 2 caracteres.

Calcula la similitud de Jaccard entre dos conjuntos de tokens. Retorna un valor entre 0.0 y 1.0.

Calcula el coeficiente de similitud de Jaccard entre dos listas. J(A,B) = |A interseccion B| / |A union B|.

def jupyter_discover(registry_root: str = "", ports: list[int] | None = None) -> list[dict]

Descubre instancias de Jupyter Lab activas escaneando archivos .jupyter-port en analysis/ y puertos comunes (8888-8892). Para cada instancia consulta /api/status, /api/config, /api/kernels y /api/sessions via HTTP REST.

jupyter_append_execute(notebook_path: str, code: str, server_url: str, token: str) -> dict

Ejecuta codigo en kernels de Jupyter via WebSocket. Tres modos: append (añade celda al notebook y la ejecuta), cell (ejecuta celda existente por indice), kernel (ejecuta en el kernel sin tocar ningun notebook).

def jupyter_kernel_list(server_url: str = "http://localhost:8888", token: str = "") -> list[dict]

CRUD completo de kernels Jupyter via REST API. Expone seis operaciones: list, start, restart, interrupt, shutdown y sessions. Usa solo stdlib (urllib, json), sin dependencias externas.

def jupyter_read_cells(notebook_path: str, server_url: str = 'http://localhost:8888', token: str = '', cell_index: int | None = None) -> list[dict]

Lee celdas de un notebook Jupyter abierto via el protocolo de colaboracion en tiempo real (CRDT/Y.js). Devuelve el estado actual incluyendo cambios no guardados. Expone tambien jupyter_notebook_info() para metadata rapida.

def jupyter_append_code(notebook_path: str, source: str, server_url: str = 'http://localhost:8888', token: str = '') -> dict

Operaciones de escritura sobre celdas de un notebook Jupyter via colaboracion en tiempo real (WebSocket). Expone cinco operaciones: append_code, append_markdown, insert, edit, delete. NO ejecuta celdas — solo modifica la estructura del notebook.

Card de KPI con label, valor+unidad, delta descriptivo con color semántico, icono, slot de chart inline y action. 3 tamaños.

Etiqueta de formulario accesible con soporte para estados disabled y peer-disabled.

Calcula la distancia de edicion de Levenshtein entre dos strings. Util para deteccion de typosquatting.

Calcula la distancia de Levenshtein (edit distance) entre dos strings. Util para deteccion de typosquatting en dominios.

Gráfico de líneas Recharts con multi-series, 5 tipos de curva, zoom brush, líneas de referencia, tooltips temáticos.

Genera una lista de valores equiespaciados entre start y stop (inclusivos).

Carga un archivo CSV desde disco y lo retorna como slice de mapas columna-valor.

func LoadOHLCVFromDuckDB(dbPath, query string) ([][]float64, error)

Carga datos OHLCV ejecutando una query SQL en una base de datos DuckDB.

Carga un archivo Parquet desde disco y lo retorna como slice de mapas columna-valor.

Calcula el retorno logaritmico entre un precio inicial y un precio final.

Realiza una consulta WHOIS para un dominio conectandose al servidor whois.iana.org por TCP.

LorenzStep(s LorenzState, dt float64, p LorenzParams) LorenzState

Paso del atractor de Lorenz (sistema caótico determinista). Integración Euler con parámetros configurables. Incluye LorenzSeries para generar N pasos.

func MapConcurrent[T any, U any](xs []T, fn func(T) U, workers int) []U

Aplica una funcion a cada elemento de un slice usando un pool de goroutines como workers. Los resultados preservan el orden original del slice de entrada.

Aplica una funcion a cada elemento de una lista, retornando una nueva lista.

Transforma cada elemento de un slice aplicando una funcion. Retorna un nuevo slice del mismo tamaño con los resultados.

func MaxDrawdown(values []float64) (maxDD float64, start, end int)

Calcula el maximo drawdown de una curva de equity, retornando la magnitud y los indices pico-valle.

Calcula el maximo drawdown y los indices de inicio y fin del peor periodo.

Cachea resultados de una funcion pura. Retorna una nueva funcion que almacena en un mapa interno los resultados ya calculados, evitando recalculos para la misma clave.

def metabase_add_database(client: MetabaseClient, name: str, engine: str, details: dict) -> dict

Agrega una nueva database a Metabase via POST /api/database. Soporta cualquier engine (sqlite, postgres, mysql, etc.).

Registra la operations.db de una app en Metabase como database SQLite. Verifica duplicados y muestra el mount necesario para el contenedor Docker.

func MetabaseAuth(baseURL, email, password string) (MetabaseClient, error)

Autentica contra la API de Metabase con email y password. Retorna un MetabaseClient con session token valido por 14 dias (configurable con MAX_SESSION_AGE en Metabase). Endpoint: POST /api/session.

def metabase_auth(base_url: str, email: str, password: str) -> MetabaseClient

Autentica contra la API de Metabase con email y password. Retorna un MetabaseClient con session token valido por 14 dias. Endpoint: POST /api/session.

func MetabaseCreateCard(client MetabaseClient, name string, datasetQuery map[string]any, display string, collectionID int, description string) (map[string]any, error)

Crea una nueva card/pregunta en Metabase con query SQL nativa o MBQL. Endpoint: POST /api/card.

def metabase_create_card(client: MetabaseClient, name: str, dataset_query: dict, display: str = 'table', collection_id: int = 0, description: str = '') -> dict

Crea una card/pregunta en Metabase con query SQL nativa o MBQL. Endpoint: POST /api/card.

func MetabaseCreateDashboard(client MetabaseClient, name, description string, collectionID int) (map[string]any, error)

Crea un nuevo dashboard vacio en Metabase. Para agregar cards usar MetabaseUpdateDashboard con el campo dashcards. Endpoint: POST /api/dashboard.

def metabase_create_dashboard(client: MetabaseClient, name: str, description: str = '', collection_id: int = 0) -> dict

Crea dashboard vacio en Metabase. Para agregar cards usar metabase_update_dashboard con dashcards. Endpoint: POST /api/dashboard.

Crea dashboard operativo en Metabase para una app: KPIs de entities/relations/executions/assertions, distribucion por status y tipo, relaciones frecuentes, resultados de ejecuciones y assertions.

func MetabaseCreateUser(client MetabaseClient, firstName, lastName, email, password string, groupIDs []int) (map[string]any, error)

Crea un nuevo usuario en Metabase. Si no se provee password, Metabase envia email de invitacion. Requiere permisos de superusuario. Endpoint: POST /api/user.

def metabase_create_user(client: MetabaseClient, first_name: str, last_name: str, email: str, password: str = '', group_ids: list[int] | None = None) -> dict

Crea un nuevo usuario en Metabase. Sin password envia invitacion por email. Requiere superusuario. Endpoint: POST /api/user.

func MetabaseDeactivateUser(client MetabaseClient, userID int) error

Desactiva (soft-delete) un usuario en Metabase. El usuario no se elimina permanentemente, solo se marca como inactivo. Para reactivar, usar PUT /api/user/:id/reactivate. Endpoint: DELETE /api/user/:id.

def metabase_deactivate_user(client: MetabaseClient, user_id: int) -> None

Desactiva (soft-delete) un usuario en Metabase. Reactivar con PUT /api/user/:id/reactivate. Endpoint: DELETE /api/user/:id.

func MetabaseDeleteCard(client MetabaseClient, cardID int) error

Elimina permanentemente una card/pregunta de Metabase. Accion irreversible. Para soft-delete usar MetabaseUpdateCard con archived:true. Endpoint: DELETE /api/card/:id.

def metabase_delete_card(client: MetabaseClient, card_id: int) -> None

Elimina permanentemente una card/pregunta. IRREVERSIBLE. Preferir archived=True. Endpoint: DELETE /api/card/:id.

func MetabaseDeleteDashboard(client MetabaseClient, dashboardID int) error

Elimina permanentemente un dashboard de Metabase. Accion irreversible. Para soft-delete usar MetabaseUpdateDashboard con archived:true. Endpoint: DELETE /api/dashboard/:id.

def metabase_delete_dashboard(client: MetabaseClient, dashboard_id: int) -> None

Elimina permanentemente un dashboard. IRREVERSIBLE. Preferir archived=True. Endpoint: DELETE /api/dashboard/:id.

func MetabaseExecuteCard(client MetabaseClient, cardID int, parameters []map[string]any) (map[string]any, error)

Ejecuta la query de una card/pregunta guardada en Metabase y retorna los resultados. Soporta parametros para queries parametrizadas. Endpoint: POST /api/card/:id/query.

def metabase_execute_card(client: MetabaseClient, card_id: int, parameters: list[dict] | None = None) -> dict

Ejecuta la query de una card guardada y retorna resultados con columnas y filas. Soporta parametros. Endpoint: POST /api/card/:id/query.

func MetabaseExecuteQuery(client MetabaseClient, databaseID int, sql string, maxResults int) (map[string]any, error)

Ejecuta una query SQL ad-hoc contra una database de Metabase sin guardarla como card. Util para consultas rapidas y exploracion. Endpoint: POST /api/dataset.

def metabase_execute_query(client: MetabaseClient, database_id: int, sql: str, max_results: int = 0) -> dict

Ejecuta query SQL ad-hoc contra Metabase sin guardarla como card. Util para exploracion rapida. Endpoint: POST /api/dataset.

Arregla permisos SQLITE_READONLY_DIRECTORY en el contenedor Metabase. Hace chmod 777/666 en directorios y archivos .db bajo /data/ para que el usuario metabase (UID 2000) pueda crear journal files.

func MetabaseGetCard(client MetabaseClient, cardID int) (map[string]any, error)

Obtiene los detalles completos de una card/pregunta de Metabase por su ID. Incluye la query, visualizacion y metadata. Endpoint: GET /api/card/:id.

def metabase_get_card(client: MetabaseClient, card_id: int) -> dict

Obtiene detalles completos de una card/pregunta de Metabase incluyendo query, visualizacion y metadata. Endpoint: GET /api/card/:id.

func MetabaseGetDashboard(client MetabaseClient, dashboardID int) (map[string]any, error)

Obtiene un dashboard completo de Metabase incluyendo todas sus dashcards (cards posicionadas en el dashboard), tabs y parametros. Endpoint: GET /api/dashboard/:id.

def metabase_get_dashboard(client: MetabaseClient, dashboard_id: int) -> dict

Obtiene dashboard completo con dashcards (cards posicionadas), tabs y parametros. Endpoint: GET /api/dashboard/:id.

def metabase_get_database(client: MetabaseClient, database_id: int) -> dict

Obtiene los detalles de una database de Metabase por su ID. Endpoint: GET /api/database/:id.

func MetabaseGetUser(client MetabaseClient, userID int) (map[string]any, error)

Obtiene los detalles de un usuario de Metabase por su ID numerico. Endpoint: GET /api/user/:id.

def metabase_get_user(client: MetabaseClient, user_id: int) -> dict

Obtiene los detalles de un usuario de Metabase por su ID. Endpoint: GET /api/user/:id.

func MetabaseListCards(client MetabaseClient, filter string, modelID int) ([]map[string]any, error)

Lista preguntas/cards de Metabase con filtro opcional. Retorna array de cards. Endpoint: GET /api/card.

def metabase_list_cards(client: MetabaseClient, filter: str = '', model_id: int = 0) -> list[dict]

Lista preguntas/cards de Metabase. Filtros: all, mine, fav, archived, recent, popular, database, table. Endpoint: GET /api/card.

func MetabaseListDashboards(client MetabaseClient, filter string) ([]map[string]any, error)

Lista dashboards de Metabase con filtro opcional. Retorna array de dashboards resumidos (sin dashcards). Endpoint: GET /api/dashboard.

def metabase_list_dashboards(client: MetabaseClient, filter: str = '') -> list[dict]

Lista dashboards de Metabase. Filtros: all, mine, archived. Retorna resumen sin dashcards. Endpoint: GET /api/dashboard.

def metabase_list_databases(client: MetabaseClient, include_tables: bool = False) -> list

Lista las databases configuradas en Metabase. Endpoint: GET /api/database. Soporta incluir tablas con include_tables=True.

func MetabaseListUsers(client MetabaseClient, status, query string, limit, offset int) (map[string]any, error)

Lista usuarios de una instancia Metabase con filtros opcionales por estado, nombre/email y paginacion. Endpoint: GET /api/user. Requiere permisos de superusuario.

def metabase_list_users(client: MetabaseClient, status: str = '', query: str = '', limit: int = 0, offset: int = 0) -> dict

Lista usuarios de Metabase con filtros opcionales por estado, nombre/email y paginacion. Endpoint: GET /api/user.

metabase_setup(base_url: str, admin_email: str, admin_password: str, admin_first_name: str, admin_last_name: str, site_name: str, site_locale: str) -> dict

Ejecuta el setup inicial de una instancia Metabase nueva via POST /api/setup. Obtiene el setup-token automaticamente y crea el usuario admin con preferencias del sitio.

func MetabaseUpdateCard(client MetabaseClient, cardID int, fields map[string]any) (map[string]any, error)

Actualiza campos de una card/pregunta en Metabase. Solo se modifican los campos incluidos en el map. Endpoint: PUT /api/card/:id.

def metabase_update_card(client: MetabaseClient, card_id: int, **fields) -> dict

Actualiza campos de una card/pregunta via kwargs. Campos: name, description, display, dataset_query, collection_id, archived. Endpoint: PUT /api/card/:id.

func MetabaseUpdateDashboard(client MetabaseClient, dashboardID int, fields map[string]any) (map[string]any, error)

Actualiza un dashboard en Metabase incluyendo metadata, cards y tabs. El campo dashcards representa el estado completo deseado: cards nuevas con ID negativo, existentes con ID positivo, omitidas se eliminan. Endpoint: PUT /api/dashboard/:id.

def metabase_update_dashboard(client: MetabaseClient, dashboard_id: int, **fields) -> dict

Actualiza dashboard incluyendo metadata, cards y tabs via kwargs. dashcards es el estado completo deseado: nuevas con ID negativo, existentes con positivo, omitidas se eliminan. Endpoint: PUT /api/dashboard/:id.

func MetabaseUpdateUser(client MetabaseClient, userID int, fields map[string]any) (map[string]any, error)

Actualiza campos de un usuario en Metabase. Solo se modifican los campos incluidos en el map. Requiere permisos de superusuario. Endpoint: PUT /api/user/:id.

def metabase_update_user(client: MetabaseClient, user_id: int, **fields) -> dict

Actualiza campos de un usuario en Metabase via keyword arguments. Campos: first_name, last_name, email, is_superuser, group_ids, locale. Endpoint: PUT /api/user/:id.

Escala los valores de un slice al rango [0, 1] usando normalización min-max.

Escala los valores al rango [0, 1] usando min-max normalization.

Construye un modelo base con dimensiones de terminal y estilos por defecto. Sirve como fundacion para componer modelos mas complejos.

Construye un modelo de dialogo de confirmacion con una pregunta si/no.

func NewFilteredList(items []ListItem, placeholder string) FilteredListModel

Construye un modelo de lista con campo de busqueda integrado. El placeholder se muestra en el input de filtro cuando esta vacio.

Construye un modelo de lista simple a partir de una coleccion de items. Cada item se renderiza como una fila seleccionable.

Construye un modelo de lista con seleccion multiple. Permite al usuario marcar varios items antes de confirmar.

Construye un modelo de progreso multiple vacio. Las barras individuales se agregan posteriormente via mensajes.

Construye un modelo de barra de progreso con valor total y etiqueta descriptiva.

func NewProgressWithStyles(total float64, label string, styles Styles) ProgressModel

Construye un modelo de barra de progreso con valor total, etiqueta y estilos visuales personalizados.

Construye un modelo de spinner basico con un mensaje descriptivo. Usa el estilo por defecto.

func NewSpinnerWithStyle(message string, styles Styles) SpinnerModel

Construye un modelo de spinner con mensaje y estilos visuales personalizados.

func NewSpinnerWithTimeout(message string, timeout time.Duration) SpinnerWithTimeoutModel

Construye un modelo de spinner con limite de tiempo. Si la operacion excede el timeout, el spinner se detiene automaticamente.

Construye un conjunto de estilos lipgloss a partir de un tema de colores. Los estilos resultantes se aplican a todos los componentes TUI.

Conecta a NordVPN por pais, ciudad o servidor especifico. Sin argumentos conecta al mejor servidor disponible. Devuelve JSON con resultado.

func NordVPNContainerRun(opts NordVPNContainerRunOpts) (string, error)

Ejecuta un container Docker cuyo trafico pasa por el gateway NordVPN usando --network=container:<gateway>. El container hereda la IP y tunel VPN del gateway.

func NordVPNContainerStart(opts NordVPNContainerOpts) (string, error)

Levanta un container Docker con NordVPN como gateway de red. Otros containers pueden rutear su trafico a traves de este con --network=container:<name>. Espera hasta 30s a que el tunel este activo.

func NordVPNContainerStop(gateway string, clientNames ...string) error

Detiene y elimina el container gateway NordVPN y opcionalmente los containers cliente que usan su red.

Desconecta de NordVPN. Idempotente — si no hay conexion activa retorna ok. Devuelve JSON con resultado.

Obtiene IP publica actual con fallback entre multiples servicios. Indica si la conexion VPN esta activa y el servidor usado.

Lista ciudades disponibles de un pais en NordVPN como array JSON ordenado.

Lista paises disponibles en NordVPN como array JSON ordenado alfabeticamente.

Cambia el protocolo de NordVPN entre NordLynx (WireGuard) y OpenVPN. NordLynx recomendado por velocidad.

Obtiene estado actual de NordVPN como JSON estructurado. Incluye servidor, IP, pais, protocolo y estado de conexion.

func NormalizeOHLCV(open, high, low, close []float64, factor float64) ([]float64, []float64, []float64, []float64)

Ajusta slices de precios OHLCV multiplicando cada valor por un factor dado.

Normaliza una URL: convierte el host a minusculas, elimina fragmentos y remueve parametros de tracking comunes.

Normaliza una URL: lowercase del host, elimina fragmentos, ordena parametros. Util para deduplicacion de IoCs.

Cabecera de página con título, subtítulo, acciones, back button, tabs integrados, badge y modo sticky. Incluye SimplePageHeader.

func ParseIPCIDR(cidr string) (network string, broadcast string, hosts int, err error)

Parsea una notacion CIDR IPv4 y devuelve la direccion de red, broadcast y cantidad de hosts usables.

Parsea la salida de texto de nordvpn status a un struct tipado. Elimina codigos ANSI y normaliza claves.

Aplica parcialmente el primer argumento de una funcion de dos parametros.

Divide un slice en dos segun un predicado. El primer slice contiene los elementos que cumplen el predicado, el segundo los que no. Se preserva el orden original.

Divide una lista en dos: (elementos que cumplen el predicado, elementos que no).

Genera un password aleatorio, lo almacena en el password store e imprime el valor generado.

Lista entradas del password store como JSON array. Filtra opcionalmente por prefijo.

Sincroniza el password store con el repositorio git remoto (pull + push).

Calcula el coeficiente de correlación de Pearson entre dos slices de float64.

Calcula el coeficiente de correlacion de Pearson entre dos listas de floats.

Gráfico de torta/dona Recharts con Cell por segmento, colores automáticos, labels con porcentaje, Legend y Tooltip temático. Soporte donut con innerRadius configurable.

Pasa un valor a traves de una secuencia de funciones de izquierda a derecha.

Compone dos funciones de izquierda a derecha. pipe2(f, g)(x) = g(f(x)).

func Pipe3[A, B, C, D any](f1 func(A) B, f2 func(B) C, f3 func(C) D) func(A) D

Compone funciones T -> T en secuencia de izquierda a derecha. Pipeline(f, g, h)(x) equivale a h(g(f(x))). Sin funciones retorna la identidad.

func main() — TUI fullscreen para lanzar pipelines y registrar ejecuciones

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).

func PostgresOpen(host string, port int, user, password, dbname string, sslmode string) (*sql.DB, error)

Conecta a PostgreSQL construyendo el DSN desde parametros individuales. sslmode por defecto 'disable' si vacio.

Imprime un mensaje con estilo de advertencia (naranja) en stdout.

Barra de progreso con variantes de color y tamaño, buffer, animación, modo indeterminado y display de valor.

Reduce un slice a un unico valor aplicando una funcion acumuladora de izquierda a derecha.

Reduce una lista con un acumulador y una funcion binaria fn(acc, x).

report_execution_json(flow_name: string, status: string, exit_code: int, started_at: string, ended_at: string, duration_ms: int, steps_file: string) -> string

Genera un JSON de reporte de ejecucion siguiendo el estandar fn-registry (docs/execution_standard.md). Recibe los metadatos del flujo y un archivo TSV con resultados de pasos (columnas: name, action, status, elapsed_ms, output, error). Imprime el JSON completo a stdout. Usa jq si esta disponible, con fallback a printf. Funcion pura: sin efectos secundarios ni I/O adicional.

Resuelve un hostname a sus direcciones IP usando el resolver DNS del sistema.

func RetryWithBackoff[T any](fn func() (T, error), maxRetries int, baseDelay time.Duration) (T, error)

Reintenta una funcion impura con backoff exponencial. El delay entre intento i e i+1 es baseDelay * 2^i. Retorna el primer resultado exitoso o el ultimo error tras agotar los reintentos.

Reescribe campos bare en una expresion SQL a llamadas json_extract sobre una columna JSON de SQLite.

Genera ventanas deslizantes de tamaño fijo sobre un slice genérico.

Calcula el Relative Strength Index (RSI) usando suavizado de Wilder.

Calcula el Relative Strength Index (RSI) de una serie de precios.

Ejecuta un comando del sistema con timeout de 30 segundos y devuelve el resultado.

func RunWithTimeout(name string, timeout time.Duration, args ...string) core.Result[CmdResult]

Ejecuta un modelo Bubble Tea y devuelve el modelo final o error.

Encadena multiples comandos con pipe y devuelve el resultado final.

func RunShellTimeout(command string, timeout time.Duration) core.Result[CmdResult]

Ejecuta pasos de un YAML generico donde cada step tiene action=command. Lee el YAML con yq, ejecuta cada paso secuencialmente con timeout configurable, captura exit code y output, respeta continue_on_error, y al final reporta JSON estandar a stdout via report_execution_json. Sale con exit code 0 (success), 1 (failure) o 2 (partial). Con --strict mapea partial a failure.

ScaffoldWailsApp(ctx context.Context, cfg ScaffoldWailsAppConfig) error

Genera proyecto Wails completo: main.go con embed, app.go con bindings base, wails.json, go.mod, y frontend vinculado a Frontend_Library.

func ScanPortTCP(host string, port int, timeoutMs int) (status string, banner string, err error)

Escanea un puerto TCP en un host dado. Devuelve el estado (open/closed/filtered) y un banner si esta abierto.

Select genérico accesible con grupos, separadores y animaciones. Base-UI primitive con posicionamiento automático.

Genera una página de configuración con navegación lateral, secciones y campos de formulario (text, number, toggle, select, textarea).

setup_metabase_volume([registry_db_path: string], [container_name: string], [dest_path: string]) -> void

Copia registry.db al contenedor Docker de Metabase verificando existencia del archivo, disponibilidad de docker, estado del contenedor y coincidencia de tamaños. Todos los argumentos son opcionales con defaults razonables.

func SharpeRatio(returns []float64, riskFreeRate float64, periodsPerYear float64) float64

Calcula el ratio de Sharpe anualizado a partir de retornos, tasa libre de riesgo y frecuencia.

def sharpe_ratio(returns: list, risk_free_rate: float, periods_per_year: float) -> float

Devuelve el codigo de escape ANSI para mostrar el cursor del terminal.

Sistema de loading skeletons: base, text, card, avatar, button, table. Variantes preconfiguradas para estados de carga.

Calcula la media movil simple (SMA) sobre una serie de datos con un periodo dado.

Mini gráfico inline SVG puro (sin Recharts) con variantes line, area y bar. Para KPI cards y tablas.

Abre (o crea) una base de datos SQLite con WAL mode y foreign keys habilitados. Hace ping para verificar la conexion. Si basePath es no-vacio y path es relativo, resuelve el path como filepath.Join(basePath, path).

Verifica conectividad SSH ejecutando un comando noop en el host remoto. Timeout de 5 segundos.

func SSHDownload(conn SSHConn, remotePath, localPath string) error

Descarga un archivo del host remoto al filesystem local via scp.

func SSHExec(conn SSHConn, command string) (string, string, int, error)

Ejecuta un comando en el host remoto via SSH. Retorna stdout, stderr y exit code separados.

func SSHTunnelOpen(conn SSHConn, localPort int, remoteHost string, remotePort int) (int, error)

Abre un tunel SSH (local port forwarding) en background. Retorna el PID del proceso para cerrarlo despues.

func SSHUpload(conn SSHConn, localPath, remotePath string) error

Aplica Z-score normalización a un slice de float64, transformando cada valor a (x - media) / desviación estándar.

Estandarizacion Z-score: transforma los datos a media=0 y desviacion=1.

Para y elimina el contenedor de una app desplegada. Si removeImage es true elimina también la imagen Docker. containerName debe coincidir con el imageName usado en deploy_app.

Abre un stream de ticks en tiempo real para un simbolo via websocket.

Sistema de tabs con orientación horizontal/vertical, variantes default y line, y soporte para iconos. Base-UI primitive.

Convierte un ThemeConfig completo a ThemeColors plano para inyectar como CSS variables. Mapea tokens semánticos a variables CSS.

ThemeProvider(props: { children: ReactNode; themes: Record<string, Theme>; defaultTheme?: string }): JSX.Element

Provider de tema React con context, persistencia en localStorage, detección de preferencia del sistema y hook useTheme.

func TickToOHLCV(prices, volumes []float64, timestamps []int64, intervalSecs int64) (open, high, low, close, vol []float64)

Agrega datos de ticks en velas OHLCV segun un intervalo de tiempo en segundos.

Tooltip accesible con animaciones, posicionamiento automático y arrow. Base-UI primitive con delay configurable.

Transforma una funcion currificada en una funcion normal de dos argumentos.

Devuelve un slice con elementos unicos preservando el orden original.

Elimina duplicados de una lista preservando el orden de aparicion.

useAnimatedCanvas(options: AnimatedCanvasOptions): AnimatedCanvasResult

Hook React para canvas animado a N fps via requestAnimationFrame. Maneja DPR, resize, throttling, y contador de FPS real.

useWailsEvent<T>(opts: UseWailsEventOptions<T>): UseWailsEventResult<T>

Hook para suscripción a eventos Go→TS y emisión TS→Go via Wails runtime. Soporta once, maxCallbacks, emit bidireccional.

useWailsMutation<TData, TVariables>(opts: UseWailsMutationOptions<TData, TVariables>): UseWailsMutationResult<TData, TVariables>

Hook para escrituras IPC Wails con optimistic updates, invalidación automática de queries, retry y callbacks completos.

useWailsQuery<T>(opts: UseWailsQueryOptions<T>): UseWailsQueryResult<T>

Hook React Query-like sobre IPC Wails. Cache automático, refetch por intervalo/foco, retry con backoff, invalidación.

useWailsStream<T>(opts: UseWailsStreamOptions<T>): UseWailsStreamResult<T>

Hook para streaming de datos Go→TS con buffer configurable, auto-complete, transform y control start/stop. Incluye useWailsLogs.

uv_add_packages(project_dir: string, ...packages: string) -> void

Instala paquetes Python en un proyecto usando uv add con fallback a pip. Inicializa pyproject.toml si no existe.

Calcula el Volume Weighted Average Price (VWAP) a partir de precios y volumenes.

Genera código Go de bindings CRUD para Wails: struct + métodos List/Get/Create/Update/Delete con stubs not-implemented.

Compila un proyecto Wails para linux/windows/darwin. Incluye WailsDev para modo desarrollo con hot reload.

class WailsCache { get<T>(key: string[]): T | null; set<T>(key: string[], data: T): void; invalidate(key: string[]): void; subscribe(key: string[], cb: () => void): () => void }

Cache reactivo para IPC Wails con invalidación por prefijo, suscripción a cambios y tracking de staleness. Singleton global.

WailsEmitEvent(ctx context.Context, eventName string, data interface{})

Emite eventos tipados de Go al frontend con timestamp automático. Incluye WailsEmitJSON para serialización explícita.

WailsProvider(props: { children: ReactNode; cache?: WailsCache; defaultQueryOptions?: QueryOptions }): JSX.Element

Provider React para IPC Wails con cache context, opciones default y fallback a singleton. Exporta useWailsContext y useWailsCache.

WailsStreamData[T any](ctx context.Context, cfg WailsStreamConfig, data []T) error

Envía datos como stream Go→TS con protocolo {name}/{name}:complete/{name}:error. Incluye WailsStreamFunc para generadores.

Busca la ruta de un ejecutable en el PATH del sistema. Devuelve None si no existe.

win_firewall_add_rule -Name <string> -Port <int> [-Protocol <string>]

Añade una regla de entrada al firewall de Windows para permitir tráfico en un puerto TCP/UDP. Si ya existe una regla con el mismo nombre, la elimina y la recrea. Requiere privilegios de Administrador.

Elimina una regla del firewall de Windows por nombre. Si la regla no existe, termina con éxito sin hacer nada (idempotente). Requiere privilegios de Administrador.

win_portproxy_add -ListenPort <int> [-ConnectPort <int>] [-ListenAddr <string>] [-ConnectAddr <string>]

Añade una regla de port proxy v4tov4 con netsh para redirigir tráfico desde ListenAddr:ListenPort hacia ConnectAddr:ConnectPort. Si ya existe una regla para el mismo listenaddress:listenport, la elimina y la recrea. Requiere privilegios de Administrador.

Elimina una regla de port proxy v4tov4 de netsh identificada por ListenAddr:ListenPort. Si la regla no existe, termina con éxito sin hacer nada (idempotente). Requiere privilegios de Administrador.

Genera o actualiza .claude/CLAUDE.md con reglas para agentes que trabajan con Jupyter: celdas inmutables, programacion funcional, uso de MCP, acceso al fn_registry.

Escribe content en dir/Dockerfile. Crea el directorio si no existe. Retorna el path absoluto del archivo escrito. Compañera impura de generate_dockerfile.

Genera un script run-jupyter-lab.sh que lanza Jupyter Lab en modo colaborativo con autodeteccion de puerto y token deshabilitado.

Genera un script de startup de IPython que autoconfigura FN_REGISTRY_ROOT, sys.path a python/functions del registry, y helpers fn_query/fn_search/fn_code para consultar registry.db desde notebooks.

write_mcp_jupyter_config([project_dir: string], [port: int]) -> string

Genera o actualiza .mcp.json con la configuracion de jupyter-mcp-server apuntando al venv local y puerto dado. Merge con jq si ya existe.

Combina dos slices de float64 en un slice de pares [2]float64, truncando al más corto.

Combina dos listas elemento a elemento con una funcion. Se detiene en la mas corta.

Tipos base para series y datos de gráficos. Usados por todos los chart components.

Tipos base para componentes con variantes CVA. Props comunes y composición de variantes type-safe.

Cliente para la API REST de Metabase. Contiene la URL base de la instancia y el token de autenticacion (session token o API key).

Estado parseado de nordvpn status. Contiene informacion de conexion, servidor, ubicacion y protocolo.

Sistema completo de tokens de diseño: colores semánticos, tipografía, spacing, sombras, motion, breakpoints. Base del theming de Frontend Library.

Tipos base para el sistema IPC de Wails: QueryState, QueryOptions, MutationOptions, WailsEvent, defaults.

Modelo base que provee dimensiones de terminal, estilos y manejo de errores comunes a todas las vistas TUI.

Resultado de Bollinger Bands con bandas superior, media e inferior.

Rango de red CIDR parseado con network, broadcast y numero de hosts.

Resultado de la ejecucion de un comando del sistema con stdout, stderr y codigo de salida.

Proyecto Docker Compose con nombre, archivos de configuracion y lista de servicios.

Dialogo de confirmacion Si/No interactivo. Embeds BaseModel. Implementa tea.Model.

Contenedor Docker con ID, nombre, imagen, estado y puertos expuestos.

Información básica de un contenedor Docker: ID, nombre, imagen, estado, puertos, labels.

Parametros de conexion para cualquier base de datos soportada. Agnóstico al driver.

Resultado de maximo drawdown con el valor de caida y los indices de inicio y fin.

Tipo de error base del registry. Referenciado como error_type por funciones impuras.

Lista con filtrado por texto en tiempo real. Embeds ListModel y añade busqueda interactiva.

Información básica de una imagen Docker local: ID, repositorio, tag, tamaño, fecha.

Item individual de una lista TUI con titulo, descripcion y valor arbitrario.

Componente lista seleccionable con cursor, scroll y seleccion simple o multiple. Implementa tea.Model.

Gestor de multiples barras de progreso simultaneas. Implementa tea.Model.

Vela de mercado con precios de apertura, maximo, minimo, cierre y volumen.

Tipo suma generico que representa un valor opcional: Some(T) o None. Alternativa a punteros nil para modelar ausencia de valor de forma explicita.

Tipo suma que clasifica un dato como Normal o Outlier con su z-score. Usado por DetectOutliers.

Tipo producto generico que agrupa dos valores de tipos potencialmente distintos. Util para ZipSlices y operaciones que devuelven dos resultados.

Tipo suma para resultados de escaneo TCP: Open (con banner), Closed o Filtered.

Barra de progreso con porcentaje, ETA y tiempo transcurrido. Implementa tea.Model.

Tipo suma generico que representa exito (Ok) o fallo (Err). Permite componer operaciones que pueden fallar sin recurrir a multiples returns (T, error).

Indicador de carga animado con mensaje personalizable. Implementa tea.Model.

Spinner que se auto-detiene tras un timeout configurable. Embeds SpinnerModel.

Parametros de conexion SSH reutilizables. Contiene host, puerto, usuario y ruta a clave privada.

Coleccion completa de estilos lipgloss pre-configurados para tipografia, estados, componentes y layout.

Paleta de colores para terminal con 9 colores semanticos. Base del sistema de estilos.

Tipo suma para resultados de deteccion de amenazas: Clean, Suspicious o Malicious.

Evento de trade individual en un mercado. Contiene simbolo, precio, volumen y timestamp.

Volumen Docker con nombre, driver y punto de montaje en el host.