puxadinho 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,22 +9,22 @@ puxadinho login
9
9
  puxadinho create render-ep12
10
10
  ```
11
11
 
12
- Este pacote é só um lançador: no primeiro uso baixa o binário Go da sua plataforma
13
- (`puxadinho_<os>_<arch>`, macOS e Linux, arm64 e amd64) da release `v<versão>`, confere o
14
- sha256 contra o `checksums.txt` que vem dentro deste pacote, guarda em
15
- `~/.cache/puxadinho/<versão>/` e executa com os mesmos argumentos e código de saída.
12
+ Este pacote é só um lançador. O binário Go da sua plataforma (macOS e Linux, arm64 e x64) vem
13
+ no pacote `@puxadinho/cli-<os>-<cpu>`, que o npm instala sozinho como dependência opcional
14
+ (o mesmo esquema do esbuild e do Biome). Se ele não vier (`--omit=optional`, lockfile de outra
15
+ plataforma), o lançador baixa uma vez esse mesmo pacote do registro do npm, confere o sha256
16
+ contra o `checksums.txt` que vem dentro deste pacote, guarda em `~/.cache/puxadinho/<versão>/`
17
+ e executa com os mesmos argumentos e código de saída.
16
18
  Sinais: Ctrl-C (SIGINT) chega direto ao binário pelo terminal e o lançador não o repete
17
19
  (um segundo SIGINT faria a CLI sair sem limpar); SIGTERM e SIGHUP são repassados.
18
20
  Requer Node 24 ou mais novo.
19
21
 
20
22
  ## Variáveis
21
23
 
22
- - `PUXADINHO_DOWNLOAD_BASE`: base das releases (padrão
23
- `https://github.com/hightech-company/puxadinho/releases/download`; aceita `file://`).
24
- O binário é buscado em `<base>/v<versão>/`.
25
-
26
- > TODO(release): o repositório acima é o `origin` atual do git; confirme o destino das
27
- > releases antes de publicar (constante `DEFAULT_BASE` em `bin/puxadinho.js`).
24
+ - `npm_config_registry`: registro de onde a reserva baixa o pacote da plataforma (padrão
25
+ `https://registry.npmjs.org`). O sha256 é sempre o do `checksums.txt` deste pacote.
26
+ - `PUXADINHO_DOWNLOAD_BASE`: espelho próprio com o layout `<base>/v<versão>/puxadinho_<os>_<arch>`
27
+ (aceita `file://`), no lugar do registro.
28
28
 
29
29
  ## Códigos de saída
30
30
 
@@ -52,18 +52,17 @@ aparecem no campo `code` como os demais.
52
52
  - `puxadinho setup claude` usa `claude mcp add --header "Authorization: Bearer <chave>"`, que expõe
53
53
  a chave por instantes na lista de processos da máquina. O Codex guarda a chave em
54
54
  `~/.codex/config.toml` (modo 0600).
55
- - O `checksums.txt` vem no pacote npm, não da origem do download: um binário trocado na release
56
- (ou no meio do caminho) não confere e é descartado.
55
+ - O `checksums.txt` vem no pacote npm, não da origem do download: um binário trocado no registro,
56
+ no espelho ou no meio do caminho não confere e é descartado.
57
57
  - A API padrão é `https://www.usepuxadinho.com.br` (troque com `PUXADINHO_API_URL` ou `--api-url`).
58
58
 
59
59
  ## Publicar uma versão
60
60
 
61
- 1. Ajuste `version` em `package.json`.
62
- 2. `pnpm --filter puxadinho build:binaries` gera `dist/v<versão>/puxadinho_*` e o `checksums.txt`
63
- (na raiz do pacote, que vai para o npm, e uma cópia em `dist/v<versão>/`)
64
- (`go build` com `-ldflags "-X puxadinho.app/go/internal/cli/api.Version=<versão>"`).
65
- 3. Crie a release `v<versão>` com os binários de `dist/v<versão>/`.
66
- 4. `pnpm --filter puxadinho publish` (o pacote leva o `checksums.txt` desses mesmos binários:
67
- publique sempre logo depois do build da release).
61
+ Suba `version` em `package.json` num commit e faça push na `main`. O workflow
62
+ `.github/workflows/npm-publish.yml` roda `pnpm release all --if-new` com Trusted Publishing (OIDC,
63
+ sem token guardado): compila os 4 binários, publica os 4 pacotes de plataforma antes deste e cria
64
+ a tag `cli-v<versão>`. Versão que já está no npm é pulada.
68
65
 
69
- `dist/` e o `checksums.txt` gerado não vão para o git; o `checksums.txt` vai para o npm.
66
+ Localmente, `pnpm release cli --dry-run` testa tudo sem publicar. `--local` publica daqui com o
67
+ seu token (só em emergência). `npm publish` direto é bloqueado no `prepack`. `dist/` e o
68
+ `checksums.txt` gerado não vão para o git; o `checksums.txt` vai para o npm.
package/bin/puxadinho.js CHANGED
@@ -28,7 +28,8 @@ async function fetchBuffer(url) {
28
28
  if (url.startsWith("file://")) {
29
29
  return fs.readFileSync(new URL(url));
30
30
  }
31
- const res = await fetch(url, { redirect: "follow" });
31
+ // Sem resposta em 2 min, desiste (a reserva não pode travar o terminal para sempre).
32
+ const res = await fetch(url, { redirect: "follow", signal: AbortSignal.timeout(120_000) });
32
33
  if (!res.ok) throw new Error(`${url} respondeu ${res.status}`);
33
34
  return Buffer.from(await res.arrayBuffer());
34
35
  }
package/checksums.txt CHANGED
@@ -1,4 +1,4 @@
1
- d4ac53727667b3020bfffe8553ec53a81b80a885eac3faf7a3825620b02de5e4 puxadinho_darwin_arm64
2
- f4c5ae7d4aacc2faf445537701e896e432d13f0864498daaad219e8007dad01b puxadinho_darwin_amd64
3
- 370ccc17ed11871a0990b2ea5ea4c74d52c1659bb5359c8a2cf3a6c4f934ef25 puxadinho_linux_amd64
4
- 3c4b04546c26f2e7ddeade16e97b60bad189fd895dd32eb3f9b0e87347a7f3e6 puxadinho_linux_arm64
1
+ 25bbca65dc8b10e658e84527b0fefda2ced2898218a98215d2ae20a7143b8a56 puxadinho_darwin_arm64
2
+ 1c1b6dff868d7af93125203a9fe502782d56a563a012a4734e058ab74fb98bcb puxadinho_darwin_amd64
3
+ a4c46039abdb7811fc7f21c6832004a6bf638ac35d6370211a6a22ef4c812e8e puxadinho_linux_amd64
4
+ 7ff4253d4da662f6d4a7e396ac68a2dcd834dc00f2c846fd04d0ff55c707319f puxadinho_linux_arm64
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "puxadinho",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "CLI do puxadinho: boxes Linux na nuvem para você e seus agentes.",
5
5
  "license": "SEE LICENSE IN README.md",
6
6
  "type": "commonjs",
@@ -19,12 +19,13 @@
19
19
  "node": ">=24"
20
20
  },
21
21
  "scripts": {
22
- "build:binaries": "node scripts/build-binaries.js"
22
+ "build:binaries": "node scripts/build-binaries.js",
23
+ "prepack": "node -e \"process.env.PUXADINHO_RELEASE||(console.error('publique com: pnpm release sdk|cli (na raiz)'),process.exit(1))\""
23
24
  },
24
25
  "optionalDependencies": {
25
- "@puxadinho/cli-darwin-arm64": "0.1.3",
26
- "@puxadinho/cli-darwin-x64": "0.1.3",
27
- "@puxadinho/cli-linux-arm64": "0.1.3",
28
- "@puxadinho/cli-linux-x64": "0.1.3"
26
+ "@puxadinho/cli-darwin-arm64": "0.1.5",
27
+ "@puxadinho/cli-darwin-x64": "0.1.5",
28
+ "@puxadinho/cli-linux-arm64": "0.1.5",
29
+ "@puxadinho/cli-linux-x64": "0.1.5"
29
30
  }
30
31
  }