--- name: write_jupyter_registry_kernel kind: function lang: bash domain: infra version: "1.0.0" purity: impure signature: "write_jupyter_registry_kernel([project_dir: string]) -> string" description: "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." tags: [jupyter, ipython, kernel, registry, setup, infra] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: project_dir desc: "directorio del proyecto Jupyter (default: directorio actual)" output: "ruta del archivo startup generado" tested: false tests: [] test_file_path: "" file_path: "bash/functions/infra/write_jupyter_registry_kernel.sh" --- ## Ejemplo ```bash source write_jupyter_registry_kernel.sh path=$(write_jupyter_registry_kernel /home/lucas/analysis/finanzas) echo "Startup creado en: $path" ``` Luego en cualquier notebook del proyecto: ```python # Ya disponible automaticamente al abrir el notebook: # Buscar funciones fn_search("finance") # Consultar registry.db directamente fn_query("SELECT id, signature FROM functions WHERE domain = ?", ("core",)) # Ver codigo de una funcion print(fn_code("filter_list_py_core")) # Importar funciones Python del registry directamente from core import filter_list, map_list from finance import sma, ema, rsi ``` ## Notas Genera `.ipython/profile_default/startup/00_fn_registry.py` que se ejecuta automaticamente al iniciar cualquier kernel IPython en el proyecto. No requiere imports manuales — las funciones `fn_query`, `fn_search` y `fn_code` estan disponibles inmediatamente en cada notebook. El `sys.path` se configura para que cada dominio de `python/functions/` sea importable directamente (`from core import filter_list`). Detecta `FN_REGISTRY_ROOT` buscando la raiz del repo git o subiendo directorios hasta encontrar `registry.db`.