Commit Graph

78 Commits

Author SHA1 Message Date
egutierrez 8581d3959a refactor: mover .go de tipos Go a functions/{domain}/ para compilación unificada
Los archivos .go de tipos ahora viven junto a las funciones en functions/{domain}/
(mismo paquete Go), resolviendo errores de compilación por tipos no encontrados
(Option, Pair, Result, etc.). Los .md de metadata permanecen en types/{domain}/
con file_path actualizado a functions/. Se elimina types.go duplicado de infra.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 23:23:00 +01:00
egutierrez 5a7b6e3980 merge: quick/frontend-setup-metabase-docs — frontend setup, metabase Go/Py, documentación en registry 2026-03-28 20:33:20 +01:00
egutierrez 6982079b5f chore: gitignore para node_modules, dist y __pycache__
Añade .gitignore en frontend/ y python/ para excluir artefactos
generados. Elimina node_modules/, dist/ y __pycache__/ del tracking.
2026-03-28 20:33:04 +01:00
egutierrez cd7fcd8cca feat: setup frontend con pnpm, vite, react, tailwind y shadcn
Inicializa directorio frontend/ con stack React moderno:
pnpm + vite 8 + react 19 + tailwind v4 + shadcn v4 (base-nova).
Estructura functions/core (TS puro) y functions/ui (componentes React).
El indexer descubre frontend/functions/ y frontend/types/ automáticamente.
Elimina functions/components/ (legacy) y actualiza referencias en
CLAUDE.md y template de componentes.
2026-03-28 20:32:40 +01:00
egutierrez be5a7b582e feat: funciones Python para API Metabase
Añade módulo Python con funciones para la API de Metabase en dominio infra.
Incluye cliente HTTP, auth, y CRUD de cards, dashboards y users.
Proyecto gestionado con uv (pyproject.toml).
2026-03-28 20:32:28 +01:00
egutierrez 9e6bea681f feat: funciones Go para API Metabase y tipo MetabaseClient
Añade funciones Go stub para la API de Metabase en dominio infra:
auth, CRUD de cards, dashboards y users, execute_query y execute_card.
Incluye tipo MetabaseClient y helper HTTP compartido.
Todas las funciones son impuras con stubs not-implemented.
2026-03-28 20:32:24 +01:00
egutierrez 49eecd0c87 feat: campos documentation, notes y code en registry
Añade campos documentation, notes y code a functions y types.
El parser extrae el contenido del .md y el código fuente del archivo
referenciado en file_path. El indexer los almacena en SQLite y los
incluye en FTS5 para búsqueda sobre código y documentación.
Nueva migración 003_documentation.sql para añadir las columnas.
2026-03-28 20:32:15 +01:00
egutierrez 476696dd10 merge: quick/ops-db-cleanup — operations.db en apps, reglas y mejoras launcher 2026-03-28 19:16:55 +01:00
egutierrez f7915e72e2 chore: gitignore operations.db en todas las ubicaciones
Cambia patrón de /operations.db (solo raíz) a **/operations.db para ignorar los archivos de datos vivos en cualquier app. La template en fn_operations/project_template/ sigue trackeada por estar ya en el índice.
2026-03-28 19:16:40 +01:00
egutierrez 989ce5ba0f chore: gitignore para operations.db en raíz
Añade reglas para ignorar operations.db, journal y wal en la raíz del repo, reforzando la regla de que solo deben existir dentro de apps/.
2026-03-28 19:15:08 +01:00
egutierrez ba6436ae2f chore: ajustar tags de pipelines según regla tag_launcher
Añade tag 'launcher' a init_metabase para que aparezca en la TUI. Elimina tag 'launcher' de pipeline_launcher ya que es una TUI interactiva, no un subproceso lanzable.
2026-03-28 19:15:01 +01:00
egutierrez aea21d713c feat: formulario de flags y filtro launcher en pipeline_launcher
Parsea flags de -help de cada pipeline para mostrar formulario de argumentos antes de ejecutar. Filtra pipelines por tag 'launcher'. Corrige selección en historial delegando enter al list antes de leer item.
2026-03-28 19:14:56 +01:00
egutierrez b4cd800027 docs: reorganizar CLAUDE.md y extraer reglas a .claude/rules/
Simplifica CLAUDE.md eliminando contenido redundante y extrae las reglas operativas a archivos independientes en .claude/rules/ con un INDEX.md. Cada regla es atómica y referenciable.
2026-03-28 19:14:49 +01:00
egutierrez e28d95ce6f fix: operations.db en ubicación correcta según reglas
Elimina operations.db de docker_tui (no lo usaba) y corrige pipeline_launcher para que resuelva operations.db en su propia carpeta (apps/pipeline_launcher/) en vez de la raíz del registro.
2026-03-28 19:13:53 +01:00
egutierrez a91945e8ce merge: quick/pipelines-apps-tui — proposals, assertions, pipelines y apps TUI
Añade sistema de proposals al registry, executions/assertions con bucle
reactivo a fn_operations, pipelines init_metabase y pipeline_launcher TUI,
funciones docker network, y reorganiza apps en carpeta apps/.
2026-03-28 17:14:58 +01:00
egutierrez 54950af0eb docs: actualizar CLAUDE.md con apps/, proposals, assertions y bucle reactivo
Documenta la nueva estructura apps/ para aplicaciones ejecutables,
el sistema de proposals, executions/assertions, motor de evaluación SQL,
bucle reactivo (EJECUTAR→EVALUAR→REACCIONAR→PROPONER) y CLI completo
para fn ops assertion/execution y fn proposal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:14:35 +01:00
egutierrez 5d3b56fe8e refactor: mover apps TUI de fn_operations/ a apps/
Separa aplicaciones ejecutables (docker_tui, pipeline_launcher) de la
librería fn_operations. La carpeta apps/ contiene módulos Go independientes,
fn_operations/ queda como librería pura de models/store/operations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:14:22 +01:00
egutierrez edfff680b3 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>
2026-03-28 17:14:11 +01:00
egutierrez a8f5b3c828 feat: pipeline init_metabase para desplegar Metabase + Postgres
Pipeline ejecutable que orquesta: crear red Docker, pull de imágenes,
iniciar Postgres con volume persistente, health check con retry
exponencial (pg_isready), e iniciar Metabase conectado via red interna.
Configurable con flags: --project, --metabase-port, --pg-user, etc.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:13:58 +01:00
egutierrez 79a2a21c5e feat: docker_create_network y docker_remove_network en infra
Funciones para crear y eliminar redes Docker. DockerCreateNetwork
usa bridge como driver por defecto. Necesarias para pipelines que
orquestan múltiples contenedores en red compartida.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:13:45 +01:00
egutierrez 9ba1f86c34 feat: executions, assertions y bucle reactivo en fn_operations
Añade Execution, Assertion, AssertionResult al paquete fn_operations.
Motor de evaluación de assertions con reescritura SQL automática.
Bucle reactivo: ExecuteAndReact evalúa assertions y cambia status de
entities (corrupted/stale) + auto-crea proposals en registry.
CLI fn ops: assertion (add/list/show/delete/eval) y execution (add/list/show).
Migración 002_executions_assertions.sql con FTS para assertions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:13:37 +01:00
egutierrez 8d98faccd9 feat: proposals en registry
Añade sistema de proposals al registry: modelos (ProposalKind, ProposalStatus),
CRUD completo (Insert/Get/Update/Delete/List/Search con FTS), validación,
migración 002_proposals.sql y subcomando CLI fn proposal (add/list/show/update).
Motor de migraciones con embed.FS reemplaza schema estático.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:13:24 +01:00
egutierrez 093367107e merge: quick/snapshot-check-update — snapshot check/update con diff 2026-03-28 13:41:39 +01:00
egutierrez 801d9b906a chore: build.sh para docker_tui y operations.db actualizado
Script de build standalone y operations.db con snapshots sincronizados.
2026-03-28 13:41:35 +01:00
egutierrez 9ea13870cf feat: CLI fn ops snapshot check y snapshot update
Comando check compara versiones locales vs registry y marca outdated.
Comando update re-snapshottea por ID o --all, muestra diff de definition
y description. Requiere registry accesible via FN_REGISTRY_ROOT.
2026-03-28 13:41:35 +01:00
egutierrez 0095de2ce7 feat: CheckSnapshots y UpdateSnapshot en fn_operations library
Añade UpdateTypeSnapshot al store, CheckSnapshots para comparar snapshots
locales vs registry (up_to_date/outdated/missing), y UpdateSnapshot para
re-snapshot con retorno de old/new para diffing.
2026-03-28 13:41:35 +01:00
egutierrez 762fcbeb58 merge: quick/pipeline-y-handleback — pipeline registrado y navegacion HandleBack 2026-03-28 04:52:24 +01:00
egutierrez 1e6751d6c0 refactor: navegacion consistente con HandleBack en todas las vistas
Cada vista expone HandleBack() bool que retrocede un nivel interno (logs ->
lista) o indica que esta en estado base. El model principal intercepta q/0/esc
y delega a HandleBack: si retorna true, sale de la TUI; si false, la vista
retrocedio internamente. Elimina manejo duplicado de esc/q/0 en sub-estados.
2026-03-28 04:52:21 +01:00
egutierrez 4fa80f7722 feat: registrar pipeline docker_tui_go_infra en registry
Pipeline que compone funciones TUI, shell e infra Docker. Documenta
uses_functions y uses_types completos para trazabilidad en fn_operations.
2026-03-28 04:52:11 +01:00
egutierrez ec331e186c merge: quick/fn-operations-docker-tui — fn_operations library, CLI ops y Docker TUI 2026-03-28 04:38:22 +01:00
egutierrez 263791c229 feat: 5 tipos Docker — container, image, volume, network, compose_project
Tipos producto para modelar recursos Docker en el registry.
Usados como type_ref en las entities de fn_operations.
2026-03-28 04:38:08 +01:00
egutierrez 3716c8fc6d feat: Docker TUI — aplicacion Bubble Tea para gestionar Docker
TUI fullscreen con 5 vistas: Containers (start/stop/restart/logs),
Images (list/remove), Volumes (list/remove), Networks (list/remove),
Compose (up/down/logs). Usa DevFactory (tui, shell, core). Navegacion
por tabs, filtrado en containers/images, scroll en logs.
Incluye operations.db con entities y relations del proyecto.
2026-03-28 04:38:04 +01:00
egutierrez 5b83b3f128 feat: CLI fn ops — init, entity, relation, graph, snapshot
Subcomando ops integrado en el CLI fn. Soporta CRUD de entities con
snapshot automatico de tipos, CRUD de relations con validacion de ciclos,
dump ASCII del grafo, y listado de tipos snapshotted. Variable de entorno
FN_REGISTRY_ROOT para acceder al registry desde cualquier directorio.
2026-03-28 04:37:59 +01:00
egutierrez 2d3f4b4448 feat: migracion SQL, template DB y generador para fn_operations
001_init.sql como espejo del schema, gentemplate para crear operations.db
vacias con schema aplicado, y template lista para copiar con fn ops init.
2026-03-28 04:37:54 +01:00
egutierrez 67401cb967 feat: fn_operations library — entities, relations, types_snapshot con FTS y ciclos
Paquete Go completo con modelos (Entity, Relation, RelationInput, TypeSnapshot),
DB SQLite con WAL + FTS5 en entities, CRUD para las 4 tablas, validacion de
integridad, deteccion de ciclos solo en relaciones causales (via != ''), y
operaciones de alto nivel con snapshot automatico de tipos del registry.
9 tests, todos pasan.
2026-03-28 04:37:50 +01:00
egutierrez 4acb411915 merge: quick/ingest-tui-core-shell-devfactory — ingesta DevFactory al registry (tui, core, shell) 2026-03-28 03:58:57 +01:00
egutierrez 0402e0fdbe feat: 10 funciones infra Docker y 2 tipos — operaciones de contenedores e imagenes
Funciones Docker: list/start/stop/remove containers, list/pull/remove images,
inspect, logs, run. Tipos: ContainerInfo e ImageInfo. Pre-existentes en el
dominio infra, ahora registrados.
2026-03-28 03:58:43 +01:00
egutierrez 2f95dcc076 feat: tipo CmdResult y 6 funciones shell — ejecucion de comandos del sistema
Tipo cmd_result (product: Stdout, Stderr, ExitCode). Funciones: Run,
RunWithTimeout, RunShell, RunShellTimeout, RunPipe (impuras) y Which (pura).
Stubs que documentan devfactory/shell para el registry.
2026-03-28 03:58:25 +01:00
egutierrez 133982cfaf feat: 21 funciones core — composicion funcional y operaciones de slice
Composicion: Pipe2, Pipe3, Compose2, Identity, Curry2, Uncurry2, Partial2,
Flip, Const. Slices: Find, FindIndex, Any, All, GroupBy, Flatten,
FlatMapSlice, Unique, Zip, Reduce, Take, Drop.
Stubs que documentan devfactory/core para el registry.
2026-03-28 03:58:17 +01:00
egutierrez 62dcadceb8 feat: 29 funciones TUI — constructores, runners y helpers del dominio tui
16 constructores puros (NewList, NewSpinner, NewProgress, DefaultStyles...),
4 runners impuros (RunModel, RunFullscreen, RunWithMouseSupport, Confirm),
5 print helpers impuros (PrintSuccess/Error/Warning/Info/Muted) y
4 utilidades puras (Quit, ClearScreen, HideCursor, ShowCursor).
Stubs que documentan devfactory/tui para el registry.
2026-03-28 03:58:12 +01:00
egutierrez fdcde03382 feat: 11 tipos TUI — componentes Bubble Tea del dominio tui
Tipos producto para ListItem, ListModel, FilteredListModel, SpinnerModel,
SpinnerWithTimeoutModel, ProgressModel, MultiProgressModel, Theme, Styles,
BaseModel y ConfirmModel. Stubs que documentan las definiciones de
devfactory/tui para el registry.
2026-03-28 03:58:08 +01:00
egutierrez c7df092eb8 docs: añadir spec fn_operations con entities, relations y types_snapshot
Schema de inteligencia operacional para proyectos. Define tablas entities,
relations, relation_inputs y types_snapshot con reglas de integridad,
referencias cruzadas al registry central y ejemplos de uso.
2026-03-28 03:58:03 +01:00
egutierrez 1b1097eabe merge: quick/claude-md-rewrite — CLAUDE.md con guia SQL y reglas de registro 2026-03-28 02:34:30 +01:00
egutierrez 3693aed210 docs: reescribir CLAUDE.md con guia de exploracion SQL y reglas para añadir funciones
Reescribe completamente .claude/CLAUDE.md para que el agente LLM:
- Consulte SIEMPRE registry.db antes de escribir codigo (queries SQL listas)
- Sepa exactamente como crear funciones y tipos nuevos (formato, reglas, flujo)
- Entienda las reglas de integridad que el indexer valida
- Conozca la convencion de returns (IDs del registry, no tipos nativos)
- Tenga ejemplos de queries FTS, por dominio, por purity, por tags, por dependencias

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:34:23 +01:00
egutierrez 7443098774 merge: quick/fase-funciones-y-wal — 54 funciones, 12 tipos, WAL mode 2026-03-28 02:23:51 +01:00
egutierrez bd9383fd82 feat: 16 funciones cybersecurity — análisis, crypto e IO de seguridad
12 funciones puras con implementación real:
HashSHA256, HashMD5, EntropyShannon, IsBase64, IsHex, ExtractURLs,
ParseIPCIDR, IPInRange, NormalizeURL, DetectSQLInjection,
LevenshteinDistance, JaccardSimilarity

4 funciones impuras con implementación real (stdlib):
LookupWhois, ResolveDNS, FetchHTTPHeaders, ScanPortTCP

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:23:41 +01:00
egutierrez fc734029c1 feat: 15 funciones datascience — estadística, DSP e IO de datos
12 funciones puras con implementación real:
Standardize, MinMaxScale, Clip, RollingWindow, ZipSlices, GroupBy,
Histogram, Pearson, Autocorrelation, FFT (Cooley-Tukey), DetectOutliers, Impute

3 funciones impuras (stubs):
LoadCSV, LoadParquet, FetchDataFrame

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:23:36 +01:00
egutierrez 113c6dfd71 feat: 15 funciones finance — indicadores, riesgo e IO de mercado
11 funciones puras con implementación real:
SMA, EMA, RSI, BollingerBands, VWAP, LogReturn, AnnualizedVolatility,
SharpeRatio, MaxDrawdown, NormalizeOHLCV, TickToOHLCV

4 funciones impuras (stubs):
FetchOHLCV, StreamTicks, WriteOHLCVToParquet, LoadOHLCVFromDuckDB

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:23:31 +01:00
egutierrez 16e34a806e feat: 6 funciones core — retry, memoize, pipeline, map_concurrent, partition, chunk
Funciones genericas reutilizables:
- RetryWithBackoff: reintento con backoff exponencial (impure)
- Memoize: cache de funciones puras (pure)
- Pipeline: composición T→T en secuencia (pure)
- MapConcurrent: map paralelo con worker pool (impure)
- Partition: divide slice en dos por predicado (pure)
- Chunk: divide slice en trozos de tamaño N (pure)
Todas con implementación real y documentación .md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:23:26 +01:00
egutierrez 0f9a72dfc9 feat: tipos cybersecurity CIDRBlock, ThreatResult, PortResult
Tres tipos de dominio seguridad:
- CIDRBlock: rango de red parseado (product)
- ThreatResult: Clean/Suspicious/Malicious (sum)
- PortResult: Open/Closed/Filtered (sum)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:23:16 +01:00