# HYVE CLI

O **HYVE CLI** é o programa que você roda no terminal (o comando é `hyve-system`): instala o HYVE System, autentica com sua conta do HYVE Lab e mantém tudo atualizado.

```bash
npm install -g hyve-system
```

> Requer **Node 20+**. No Windows, o instalador do Node está em [nodejs.org](https://nodejs.org).

## Começando

```bash
# entre na pasta que vai receber a subpasta hyve-system, depois:
hyve-system login      # entra com sua conta do HYVE Lab (abre o navegador)
hyve-system init       # cria e instala em ./hyve-system (Enter confirma)
hyve-system station    # abre seu painel local no navegador
```

## Comandos

| Comando | O que faz |
|---|---|
| `hyve-system login` | Autentica com sua conta do HYVE Lab via navegador (device flow). |
| `hyve-system init` | Instala o System: baixa o framework e prepara o ambiente. **Cria `./hyve-system` dentro da pasta onde você está.** Enter confirma; outro caminho digitado é usado exatamente. Recusa pastas sincronizadas por nuvem; nesse caso oferece `~/HYVE/hyve-system` como lugar seguro. O backup no GitHub é feito depois pela skill `/system-infra-setup`. `--dir <pasta>` instala direto nesse destino exato, sem perguntar. |
| `hyve-system station` | Sobe a Station (seu painel local) e abre no navegador. Depois do `init`, roda de qualquer pasta; com mais de um System na máquina, use `--dir <pasta>`. |
| `hyve-system update` | Atualiza o System pra última versão, preservando o que é seu (faz backup do que troca). |
| `hyve-system report` | Prepara um report privado e revisável. Sem `--enviar`, salva local; com `--enviar`, manda para a HYVE após preview e confirmação explícita. Use `--enviar-pendentes` para enviar reports locais já salvos. |
| `hyve-system catalog` | Lista os componentes do arsenal (curados, prontos pra usar). `--json` emite o catálogo pra a Station. |
| `hyve-system add <componente>` | Instala um componente no seu projeto (ex: `hyve-system add @hyve/contador-animado`). `--dir <pasta>` escolhe o projeto; `--overwrite` substitui arquivos existentes. |
| `hyve-system whoami` | Mostra qual conta está conectada e o status do seu acesso. |
| `hyve-system logout` | Encerra a sessão local. |
| `hyve-system --version` | Mostra a versão do HYVE CLI e do framework instalado. |
| `hyve-system --help` | Lista todos os comandos. |

## Arsenal (`catalog` / `add`)

`add` instala os arquivos do componente direto no seu projeto e, a partir daí, **eles são seus**: edite à vontade. Não há `remove`, porque o código é copiado pro seu repositório em vez de virar uma dependência que você atualiza (pra desfazer, é só apagar ou reverter os arquivos). Antes de instalar, o HYVE CLI confere a integridade do componente (assinatura) e nunca sobrescreve um arquivo existente sem `--overwrite`.

## Acesso

O HYVE CLI libera os comandos enquanto sua assinatura no HYVE Lab estiver ativa. O acesso é revalidado a cada uso: se a assinatura cair (reembolso, não-renovação), o `update` e o `init` deixam de funcionar até reativar. Seu login no Lab (Google ou email+senha) não muda.

## Atualizar o próprio HYVE CLI

```bash
npm install -g hyve-system@latest
```

## Travar de onde o System é baixado (opcional)

O `init` e o `update` baixam o System de uma URL assinada que o Lab devolve. O HYVE CLI
já exige `https:` e recusa qualquer outro esquema, inclusive nos **redirects**, que
são seguidos um a um e revalidados.

Se você quer ir além e fixar **de quais hosts** aceita baixar, defina:

```bash
export HYVE_RELEASE_URL_HOSTS="hyve.company,supabase.co"
```

Vale para o host exato e para subdomínios (`abc.supabase.co` passa;
`hyve.company.outra-coisa.com` não). Sem a variável, qualquer host `https` é aceito:
é o padrão, para que uma mudança de infra do Lab não quebre o seu update.

---

Feito pela [HYVE](https://hyve.company).
