Pins de proyecto

Archivo HubBound

El archivo HubBound a nivel proyecto — como package.json para kits y artifacts. Commitealo para que el equipo comparta los mismos pins.

Qué es

El archivo HubBound (hubbound.json en disco) vive en la raíz del proyecto y pinnea qué artifacts y kits pertenecen a ese repo, en qué versiones exactas (o latest).

Es la contraparte de scope local frente a los installs globales. Los manifiestos de perfil reusan la misma forma JSON, pero viven bajo profiles/ en la config de usuario — no en el repo.

Para qué sirve

Declarar el tooling que el proyecto espera. hubbound install sin argumentos (si hay manifesto) instala todos los pins — como npm install leyendo package.json.

install y upgrade en scope local también escriben las versiones resueltas de vuelta al archivo para mantener los pins al día.

Estructura del archivo

Lo crea hubbound init. Tres campos top-level — nombre del proyecto más dos mapas de pins.

{
  "name": "my-app",
  "artifacts": {
    "jane-a1b2c3/my-hook": "1.2.0"
  },
  "kits": {
    "jane-a1b2c3/ai-tools-bundle": "latest"
  }
}
name Label del proyecto. Por defecto es el basename del directorio al correr hubbound init. Informativo — no se usa como clave de install.
artifacts Mapa de pins de artifacts. Cada key es un tag author/name (ej. jane-a1b2c3/my-hook); cada value es la versión pineada ("1.2.0") o el literal "latest".
kits Mapa de pins de kits — misma forma que artifacts. Un kit es un bundle que trae varios artifacts/tools de una.
  • Los pins son versiones exactas (o el literal latest) — no rangos semver.
  • latest se resuelve en install/upgrade; la versión resuelta se escribe al registrar entradas.
  • HubBound encuentra el archivo caminando hacia arriba desde el directorio actual.

Comandos compatibles

Estos comandos leen y/o escriben el hubbound.json del proyecto.

$ hubbound init

$ hubbound install artifact jane-a1b2c3/my-hook

$ hubbound install

$ hubbound upgrade all

hubbound init Crea hubbound.json en el directorio actual (falla si ya existe).
hubbound install Sin args + manifesto → instala todos los pins. Con args + scope local → instala y registra el pin.
hubbound upgrade En scope local, refresca los pins en hubbound.json después de actualizar (una entidad o all).
--scope local|global Scope por defecto: local si hay hubbound.json arriba del cwd; si no, global.

vs manifiestos de perfil

Mismo schema JSON. Distinta ubicación y propósito.

  • hubbound.json de proyecto → scope local/proyecto; suele ir al repo.
  • profiles/<name>/hubbound.json → pins del perfil global; bajo la config de usuario.
  • --profile en install siempre apunta a un archivo de perfil y fuerza scope global.
  • hubbound install pelado requiere un hubbound.json de proyecto (o corré hubbound init antes).