bridgeaibrasil 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. package/README.md +179 -153
  2. package/package.json +1 -1
  3. package/scripts/tunnel.js +23 -2
package/README.md CHANGED
@@ -1,153 +1,179 @@
1
- # BridgeAI — plugin para Claude Code
2
-
3
- **[bridgeaibrasil.com.br](https://bridgeaibrasil.com.br)** · hospedagem brasileira
4
- que o seu agente de código opera sozinho.
5
-
6
- Conecta o Claude Code à plataforma BridgeAI. Com ele, o Claude para de trabalhar no
7
- escuro: cria o projeto, enxerga o banco, os logs, o custo e o estado do que está no
8
- ar — e mostra o preço antes de gastar o seu dinheiro.
9
-
10
- Servidor, banco PostgreSQL, cache e arquivos em máquinas no Brasil, com crédito
11
- pré-pago por Pix — sem assinatura, sem fatura e sem cartão internacional. Você
12
- contrata item por item, e o que não foi pedido não é cobrado.
13
-
14
- O preço fica em
15
- **[bridgeaibrasil.com.br/precos](https://bridgeaibrasil.com.br/precos)**, e não
16
- aqui de propósito: aquela página é **gerada do mesmo catálogo que emite a
17
- cobrança**, então ela não tem como divergir. Um valor digitado neste README
18
- divergiria no primeiro dia em que o catálogo mudasse, dentro de um arquivo que
19
- ninguém relê.
20
-
21
- Feito para funcionar **junto** com o
22
- [guardrail](https://github.com/marcoshenriquemaia/claude-guardrail), não no lugar
23
- dele. O guardrail cuida de segurança e qualidade em qualquer projeto; este cuida da
24
- plataforma. Instale os dois.
25
-
26
- ---
27
-
28
- ## ⚠️ Você provavelmente não precisa deste plugin
29
-
30
- Desde 15/09/2026 a BridgeAI inteira — as ferramentas, as regras e os guias — vem
31
- do **servidor MCP**. Um comando conecta, e não há nada para reiniciar:
32
-
33
- ```
34
- claude mcp add --transport http bridgeai https://mcp.bridgeaibrasil.com.br/mcp
35
- ```
36
-
37
- Depois `/mcp` no chat → escolha **bridgeai** → autentique. É OAuth: o navegador
38
- abre uma vez e o acesso fica guardado no cliente.
39
-
40
- O passo a passo está em
41
- **[bridgeaibrasil.com.br/comecar](https://bridgeaibrasil.com.br/comecar)**.
42
-
43
- ### E as ferramentas que rodam na sua máquina
44
-
45
- O túnel — que liga o seu `npm run dev` ao banco na nuvem, sem Docker — é um
46
- comando, e também não se instala:
47
-
48
- ```
49
- npx bridgeaibrasil tunnel --dev
50
- ```
51
-
52
- ---
53
-
54
- ## Instalar o plugin mesmo assim
55
-
56
- Ele continua funcionando e continua publicado. O que ele acrescenta hoje são
57
- atalhos (`/bridgeai:publicar`, `/bridgeai:custo`) e dois hooks. **Nada do que a
58
- plataforma faz depende dele.**
59
-
60
- ```
61
- /plugin marketplace add marcoshenriquemaia/bridgeai-plugin
62
- /plugin install bridgeai@bridgeai
63
- ```
64
-
65
- Se aparecer `Run /reload-plugins to activate`, digite `/reload-plugins`.
66
-
67
- ### Criar o primeiro projeto
68
-
69
- ```
70
- /bridgeai:comecar
71
- ```
72
-
73
- Ele prepara a máquina, cria o projeto na BridgeAI e deixa rodando no seu computador.
74
- Publicar na internet é um `git push`: o passo a passo está no próprio comando.
75
-
76
- ### Precisa de Node.js
77
-
78
- O login, o túnel e as verificações rodam em Node. Confira com `node --version`; se
79
- der erro, baixe a versão LTS em [nodejs.org](https://nodejs.org). O
80
- `/bridgeai:comecar` também instala sozinho no Windows.
81
-
82
- ---
83
-
84
- ## O que vem junto
85
-
86
- ### Comandos
87
-
88
- | Comando | Para |
89
- |---|---|
90
- | `/bridgeai:entrar` | Conectar esta máquina à sua conta |
91
- | `/bridgeai:comecar` | Da máquina vazia ao projeto rodando |
92
- | `/bridgeai:publicar` | Põe o projeto no ar, sem configurar nada no GitHub |
93
- | `/bridgeai:doutor` | Quando "parou de funcionar" — confere e conserta |
94
- | `/bridgeai:custo` | Quanto está gastando e no que dá para economizar |
95
-
96
- ### Skills
97
-
98
- Carregam sozinhas quando o assunto aparece — você não precisa chamar.
99
-
100
- | Skill | Quando |
101
- |---|---|
102
- | `publicar-mobile` | App de celular: testar, distribuir, publicar nas lojas |
103
- | `painel-do-projeto` | Área administrativa, CMS, métricas |
104
-
105
- ### Proteções automáticas
106
-
107
- - **Operação sem volta exige código de aprovação.** Criar projeto, mudar de plano ou
108
- apagar um app só acontece com um código que você copia do painel. O Claude não
109
- consegue gerar esse código — e é isso que impede que uma instrução escondida
110
- dentro de um log ou de um registro do banco destrua alguma coisa.
111
- - **Custo antes de gastar.** Nenhum recurso é proposto sem o preço em reais por mês.
112
- - **Conexão com o GitHub conferida antes do envio.** Quando o acesso expira, em vez
113
- de um erro em inglês, você recebe o passo para reconectar.
114
- ---
115
-
116
- ## As regras vêm do servidor, e não daqui
117
-
118
- Desde 15/09/2026 as regras da plataforma chegam pelo campo `instructions` do
119
- servidor MCP, e não mais por um hook deste plugin. Elas passaram a valer em
120
- **qualquer** cliente MCP — Claude Code, Codex, Cursor — sem instalar nada.
121
-
122
- O mesmo vale para as skills e os templates: quem os entrega é a ferramenta
123
- `get_guide`.
124
-
125
- ⚠️ **Por isso este plugin não é mais necessário para usar a BridgeAI.** Ele
126
- continua funcionando e continua publicado; o caminho anunciado é só o servidor
127
- MCP. As ferramentas locais — o túnel, o registro de portas — estão em
128
- `npx bridgeaibrasil`, que não exige instalação.
129
-
130
- ---
131
-
132
- ## Estrutura
133
-
134
- ```
135
- .claude-plugin/plugin.json manifesto
136
- .mcp.json conexão com o MCP da BridgeAI (login por OAuth)
137
- hooks/hooks.json início de sessão e proteções
138
- commands/ os comandos acima
139
- skills/ carregadas sob demanda
140
- scripts/ túnel, portas, login e hooks — Node sem dependências
141
- bin/bridgeai.js o comando do `npx bridgeaibrasil`
142
- package.json o pacote npm com as ferramentas locais
143
- templates/publicar.yml o workflow que publica o seu projeto
144
- ```
145
-
146
- ⚠️ **`rules/` não existe mais aqui.** As regras da plataforma moram no servidor
147
- MCP (`mcp/rules/`, servidas pelo `instructions`), e duplicá-las neste hook
148
- custaria ~25 mil tokens repetidos em toda conversa de quem tem o plugin.
149
- `scripts/hooks.test.js` afirma essa ausência.
150
-
151
- ## Licença
152
-
153
- MIT.
1
+ # BridgeAI — plugin para Claude Code
2
+
3
+ **[bridgeaibrasil.com.br](https://bridgeaibrasil.com.br)** · hospedagem brasileira
4
+ que o seu agente de código opera sozinho.
5
+
6
+ Conecta o Claude Code à plataforma BridgeAI. Com ele, o Claude para de trabalhar no
7
+ escuro: cria o projeto, enxerga o banco, os logs, o custo e o estado do que está no
8
+ ar — e mostra o preço antes de gastar o seu dinheiro.
9
+
10
+ Servidor, banco PostgreSQL, cache e arquivos em máquinas no Brasil, com crédito
11
+ pré-pago por Pix — sem assinatura, sem fatura e sem cartão internacional. Você
12
+ contrata item por item, e o que não foi pedido não é cobrado.
13
+
14
+ O preço fica em
15
+ **[bridgeaibrasil.com.br/precos](https://bridgeaibrasil.com.br/precos)**, e não
16
+ aqui de propósito: aquela página é **gerada do mesmo catálogo que emite a
17
+ cobrança**, então ela não tem como divergir. Um valor digitado neste README
18
+ divergiria no primeiro dia em que o catálogo mudasse, dentro de um arquivo que
19
+ ninguém relê.
20
+
21
+ Feito para funcionar **junto** com o
22
+ [guardrail](https://github.com/marcoshenriquemaia/claude-guardrail), não no lugar
23
+ dele. O guardrail cuida de segurança e qualidade em qualquer projeto; este cuida da
24
+ plataforma. Instale os dois.
25
+
26
+ ---
27
+
28
+ ## ⚠️ Você provavelmente não precisa deste plugin
29
+
30
+ Desde 15/09/2026 a BridgeAI inteira — as ferramentas, as regras e os guias — vem
31
+ do **servidor MCP**. Um comando conecta, e não há nada para reiniciar:
32
+
33
+ ```
34
+ claude mcp add --transport http bridgeai https://mcp.bridgeaibrasil.com.br/mcp
35
+ ```
36
+
37
+ Depois `/mcp` no chat → escolha **bridgeai** → autentique. É OAuth: o navegador
38
+ abre uma vez e o acesso fica guardado no cliente.
39
+
40
+ O passo a passo está em
41
+ **[bridgeaibrasil.com.br/comecar](https://bridgeaibrasil.com.br/comecar)**.
42
+
43
+ ### E as ferramentas que rodam na sua máquina
44
+
45
+ O túnel — que liga o seu `npm run dev` ao banco na nuvem, sem Docker — é um
46
+ comando, e também não se instala:
47
+
48
+ ```
49
+ npx bridgeaibrasil tunnel --dev
50
+ ```
51
+
52
+ ### Pelo celular ou pela web (claude.ai/code)
53
+
54
+ O Claude Code também roda **na nuvem**: você abre uma sessão pelo celular ou pelo
55
+ navegador, e uma máquina da Anthropic faz o papel do seu computador — clona o
56
+ projeto do GitHub, instala, roda. **A máquina não custa nada a mais**; o trabalho
57
+ do Claude gasta o limite do seu plano, como sempre.
58
+
59
+ Lá a BridgeAI entra por dois passos, uma vez só:
60
+
61
+ 1. **Conecte a BridgeAI como conector** em
62
+ [claude.ai/customize/connectors](https://claude.ai/customize/connectors): conector
63
+ personalizado com o endereço `https://mcp.bridgeaibrasil.com.br/mcp`. O GitHub
64
+ pede para você autorizar, e a BridgeAI mostra uma tela **"Conectar a BridgeAI ao
65
+ Claude"** — confira que é a sua conta e clique em **Conectar**. Vale para web,
66
+ celular e desktop.
67
+ 2. **Libere dois domínios na rede do ambiente da nuvem** (ícone de nuvem no título da
68
+ sessão → Edit → *Network access* **Custom**, marcando a lista padrão):
69
+ `mcp.bridgeaibrasil.com.br` e `br-se1.magaluobjects.com`. Sem isso o banco de
70
+ desenvolvimento e os arquivos não chegam à máquina da nuvem.
71
+
72
+ O resto o próprio servidor ensina ao Claude: montar o `.env` e abrir o túnel.
73
+
74
+ ⚠️ **O que a nuvem não tem:** o app rodando lá não abre no seu celular — o
75
+ `localhost` é da máquina da Anthropic. O Claude mostra a tela por print; para ver de
76
+ verdade, publique.
77
+
78
+ ---
79
+
80
+ ## Instalar o plugin mesmo assim
81
+
82
+ Ele continua funcionando e continua publicado. O que ele acrescenta hoje são
83
+ atalhos (`/bridgeai:publicar`, `/bridgeai:custo`) e dois hooks. **Nada do que a
84
+ plataforma faz depende dele.**
85
+
86
+ ```
87
+ /plugin marketplace add marcoshenriquemaia/bridgeai-plugin
88
+ /plugin install bridgeai@bridgeai
89
+ ```
90
+
91
+ Se aparecer `Run /reload-plugins to activate`, digite `/reload-plugins`.
92
+
93
+ ### Criar o primeiro projeto
94
+
95
+ ```
96
+ /bridgeai:comecar
97
+ ```
98
+
99
+ Ele prepara a máquina, cria o projeto na BridgeAI e deixa rodando no seu computador.
100
+ Publicar na internet é um `git push`: o passo a passo está no próprio comando.
101
+
102
+ ### Precisa de Node.js
103
+
104
+ O login, o túnel e as verificações rodam em Node. Confira com `node --version`; se
105
+ der erro, baixe a versão LTS em [nodejs.org](https://nodejs.org). O
106
+ `/bridgeai:comecar` também instala sozinho no Windows.
107
+
108
+ ---
109
+
110
+ ## O que vem junto
111
+
112
+ ### Comandos
113
+
114
+ | Comando | Para |
115
+ |---|---|
116
+ | `/bridgeai:entrar` | Conectar esta máquina à sua conta |
117
+ | `/bridgeai:comecar` | Da máquina vazia ao projeto rodando |
118
+ | `/bridgeai:publicar` | Põe o projeto no ar, sem configurar nada no GitHub |
119
+ | `/bridgeai:doutor` | Quando "parou de funcionar" — confere e conserta |
120
+ | `/bridgeai:custo` | Quanto está gastando e no que dá para economizar |
121
+
122
+ ### Skills
123
+
124
+ Carregam sozinhas quando o assunto aparece — você não precisa chamar.
125
+
126
+ | Skill | Quando |
127
+ |---|---|
128
+ | `publicar-mobile` | App de celular: testar, distribuir, publicar nas lojas |
129
+ | `painel-do-projeto` | Área administrativa, CMS, métricas |
130
+
131
+ ### Proteções automáticas
132
+
133
+ - **Operação sem volta exige código de aprovação.** Criar projeto, mudar de plano ou
134
+ apagar um app só acontece com um código que você copia do painel. O Claude não
135
+ consegue gerar esse código — e é isso que impede que uma instrução escondida
136
+ dentro de um log ou de um registro do banco destrua alguma coisa.
137
+ - **Custo antes de gastar.** Nenhum recurso é proposto sem o preço em reais por mês.
138
+ - **Conexão com o GitHub conferida antes do envio.** Quando o acesso expira, em vez
139
+ de um erro em inglês, você recebe o passo para reconectar.
140
+ ---
141
+
142
+ ## As regras vêm do servidor, e não daqui
143
+
144
+ Desde 15/09/2026 as regras da plataforma chegam pelo campo `instructions` do
145
+ servidor MCP, e não mais por um hook deste plugin. Elas passaram a valer em
146
+ **qualquer** cliente MCP — Claude Code, Codex, Cursor — sem instalar nada.
147
+
148
+ O mesmo vale para as skills e os templates: quem os entrega é a ferramenta
149
+ `get_guide`.
150
+
151
+ ⚠️ **Por isso este plugin não é mais necessário para usar a BridgeAI.** Ele
152
+ continua funcionando e continua publicado; o caminho anunciado é só o servidor
153
+ MCP. As ferramentas locais — o túnel, o registro de portas — estão em
154
+ `npx bridgeaibrasil`, que não exige instalação.
155
+
156
+ ---
157
+
158
+ ## Estrutura
159
+
160
+ ```
161
+ .claude-plugin/plugin.json manifesto
162
+ .mcp.json conexão com o MCP da BridgeAI (login por OAuth)
163
+ hooks/hooks.json início de sessão e proteções
164
+ commands/ os comandos acima
165
+ skills/ carregadas sob demanda
166
+ scripts/ túnel, portas, login e hooks — Node sem dependências
167
+ bin/bridgeai.js o comando do `npx bridgeaibrasil`
168
+ package.json o pacote npm com as ferramentas locais
169
+ templates/publicar.yml o workflow que publica o seu projeto
170
+ ```
171
+
172
+ ⚠️ **`rules/` não existe mais aqui.** As regras da plataforma moram no servidor
173
+ MCP (`mcp/rules/`, servidas pelo `instructions`), e duplicá-las neste hook
174
+ custaria ~25 mil tokens repetidos em toda conversa de quem tem o plugin.
175
+ `scripts/hooks.test.js` afirma essa ausência.
176
+
177
+ ## Licença
178
+
179
+ MIT.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bridgeaibrasil",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "As ferramentas locais da BridgeAI: o túnel que liga a sua máquina ao banco na nuvem, o registro de portas e o abridor de páginas. Sem dependência nenhuma.",
5
5
  "bin": {
6
6
  "bridgeaibrasil": "bin/bridgeai.js"
package/scripts/tunnel.js CHANGED
@@ -225,13 +225,34 @@ async function conferir(target = 'db') {
225
225
  }
226
226
  if (res.ok) return;
227
227
 
228
+ // ⚠️ Nem todo 403 é da BridgeAI. Numa sessão do Claude Code na NUVEM, a VM
229
+ // passa por um porteiro de rede com lista de domínios, e ele recusa com 403 e
230
+ // `x-deny-reason: host_not_allowed` — sem a BridgeAI ter sido alcançada. A
231
+ // frase antiga dizia "a BridgeAI respondeu 403", e mandava a pessoa procurar
232
+ // defeito no lugar que nem recebeu o pedido. Medido em 27/09/2026.
233
+ if (res.headers.get('x-deny-reason')) {
234
+ const host = new URL(base).hostname;
235
+ morre(
236
+ `A rede desta máquina bloqueou o endereço da BridgeAI (${host}) — o pedido nem chegou lá.\n` +
237
+ '\n' +
238
+ 'Numa sessão do Claude Code na nuvem (web ou celular), libere na rede do ambiente:\n' +
239
+ 'ícone de nuvem no título da sessão → Edit → Network access "Custom", marque a\n' +
240
+ `lista padrão e acrescente ${host} e br-se1.magaluobjects.com.\n` +
241
+ 'Pode ser preciso abrir uma sessão nova depois.',
242
+ );
243
+ }
244
+
228
245
  let corpo = {};
229
246
  try {
230
247
  corpo = await res.json();
231
248
  } catch {
232
- /* resposta sem JSON: cai na frase genérica abaixo */
249
+ /* resposta sem JSON: não foi a BridgeAI quem escreveu — ver abaixo */
233
250
  }
234
- morre(corpo.error || `A BridgeAI respondeu ${res.status} e não deu para abrir o túnel.`);
251
+ morre(
252
+ corpo.error ||
253
+ `${new URL(base).hostname} respondeu ${res.status} sem a resposta da BridgeAI, e não deu para abrir o túnel.\n` +
254
+ 'Pode ser uma rede, um proxy ou um firewall no caminho.',
255
+ );
235
256
  }
236
257
 
237
258
  /**