chore: auto-commit (129 archivos)

- .claude/agents/fn-analizador/SKILL.md
- .claude/agents/fn-constructor/SKILL.md
- .claude/agents/fn-executor/SKILL.md
- .claude/agents/fn-mejorador/SKILL.md
- .claude/agents/fn-orquestador/SKILL.md
- .claude/agents/fn-recopilador/SKILL.md
- .claude/commands/app.md
- .claude/commands/compile.md
- .claude/commands/cpp-app.md
- .claude/commands/create_functions.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 22:23:12 +02:00
parent dbf5b45acd
commit 7913116a8e
129 changed files with 427 additions and 422 deletions
@@ -32,14 +32,14 @@ file_path: "python/functions/notebook/jupyter_discover.py"
from notebook.jupyter_discover import jupyter_discover
# Descubrir con deteccion automatica de puertos
instances = jupyter_discover(registry_root="/home/lucas/fn_registry")
instances = jupyter_discover(registry_root="$HOME/fn_registry")
# Escanear puertos especificos
instances = jupyter_discover(ports=[8888, 8900])
for inst in instances:
print(inst["url"], inst["analysis"], inst["root_dir"], inst["collaborative"])
# http://localhost:8888 estudio_mercados /home/lucas/fn_registry/analysis/estudio_mercados True
# http://localhost:8888 estudio_mercados $HOME/fn_registry/analysis/estudio_mercados True
```
## Estructura del dict retornado
@@ -51,7 +51,7 @@ Cada elemento de la lista tiene la siguiente forma:
"url": "http://localhost:8888",
"port": 8888,
"analysis": "estudio_mercados", # nombre del subdirectorio en analysis/, detectado via /proc
"root_dir": "/home/lucas/fn_registry/analysis/estudio_mercados", # path absoluto real del proceso
"root_dir": "$HOME/fn_registry/analysis/estudio_mercados", # path absoluto real del proceso
"collaborative": True, # True si YDocExtension esta activo
"kernels": [
{
@@ -75,13 +75,13 @@ Cada elemento de la lista tiene la siguiente forma:
```bash
# Descubrir con deteccion automatica
python python/functions/notebook/jupyter_discover.py --registry-root /home/lucas/fn_registry
python python/functions/notebook/jupyter_discover.py --registry-root $HOME/fn_registry
# Puertos especificos, salida JSON
python python/functions/notebook/jupyter_discover.py --port 8888 --port 8889 --json
# Usando variable de entorno
FN_REGISTRY_ROOT=/home/lucas/fn_registry python python/functions/notebook/jupyter_discover.py
FN_REGISTRY_ROOT=$HOME/fn_registry python python/functions/notebook/jupyter_discover.py
```
Ejemplo de salida en modo texto con multi-instancia:
@@ -90,7 +90,7 @@ Ejemplo de salida en modo texto con multi-instancia:
Puerto 8888 [colaborativo]
url: http://localhost:8888
analysis: estudio_mercados
root_dir: /home/lucas/fn_registry/analysis/estudio_mercados
root_dir: $HOME/fn_registry/analysis/estudio_mercados
kernels (1):
- python3 estado=idle id=abc12345...
sesiones (1):
@@ -99,7 +99,7 @@ Puerto 8888 [colaborativo]
Puerto 8889 [estandar]
url: http://localhost:8889
analysis: estudio_embeddings
root_dir: /home/lucas/fn_registry/analysis/estudio_embeddings
root_dir: $HOME/fn_registry/analysis/estudio_embeddings
kernels: ninguno
sesiones: ninguna
```
@@ -93,7 +93,7 @@ def test_extract_outputs_handles_streams_and_results():
# ---------------------------------------------------------------------------
JUPYTER_VENV_BIN = Path("/home/lucas/fn_registry/analysis/pruebas_jupyter/.venv/bin")
JUPYTER_VENV_BIN = Path(__file__).resolve().parents[4] / "analysis" / "pruebas_jupyter" / ".venv" / "bin"
def _free_port() -> int:
@@ -210,7 +210,7 @@ def test_run_cells_non_code_cell_raises():
# ---------------------------------------------------------------------------
JUPYTER_VENV_BIN = Path("/home/lucas/fn_registry/analysis/pruebas_jupyter/.venv/bin")
JUPYTER_VENV_BIN = Path(__file__).resolve().parents[4] / "analysis" / "pruebas_jupyter" / ".venv" / "bin"
def _free_port() -> int: