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.
- package/README.md +179 -153
- package/package.json +1 -1
- 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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
`
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
`
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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.
|
|
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:
|
|
249
|
+
/* resposta sem JSON: não foi a BridgeAI quem escreveu — ver abaixo */
|
|
233
250
|
}
|
|
234
|
-
morre(
|
|
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
|
/**
|