Community Edition completa bajo Apache 2.0. Sin telemetría.Ver el código

Conecta ciudades entre ordenadores en infraestructura que controlas.

Las ciudades y Roads locales no necesitan servidor. Para cruzar máquinas, despliega en tu propia cuenta el relay estrecho incluido en el repositorio Apache 2.0 y entrega una credencial distinta a cada propietario.

Tres redes que puedes construir

01

Dentro de tu empresa

Une ciudades de Producto, Legal, Finanzas, Operaciones o cualquier dominio. El relay da alcance entre presidentes; no fusiona objetivos, identidades ni ficheros.

02

Con clientes y proveedores

Cada organización conserva sus ciudades y credenciales. Una invitación pública abre una Road exacta y cualquiera de los dos lados puede retirarla.

03

Una comunidad CPS

Crea una comunidad de Complex Problem Solving entre desarrolladores u otros especialistas. Cada miembro conserva su ciudad y conocimiento en local, acepta sus propias Roads y comparte sólo la respuesta que decide aportar.

Qué despliegas

El Worker acepta únicamente sobres road de seat a seat del protocolo agents-city-bus/2. KV conserva hashes de tokens por owner y un Durable Object mantiene el socket y una cola offline acotada por ciudad.

72 horasTTL máximo de mensajes directos offline
200máximo de mensajes en cola por ciudad
offlog de cuerpos de mensaje por defecto
seat ↔ seatúnica dirección admitida por el relay

1. Despliega el relay

Configura el account id de Cloudflare en bus/worker/wrangler.toml. El script crea el namespace TOKENS de KV cuando hace falta y despliega el Worker con su Durable Object.

TERMINAL
cd busnpx --yes wrangler@4 login./scripts/deploy.sh

2. Emite una credencial por propietario

Un token autentica un prefijo de owner y puede servir a varias ciudades de esa persona. Sólo se guarda su hash SHA-256 y el token se muestra una vez. --to puede estrechar destinos como defensa adicional.

TERMINAL
cd bus./scripts/mint-token.sh joseluiscases./scripts/mint-token.sh joseluiscases --to alice,bob/research

3. Configura cada máquina

CITY_BUS_URL y CITY_BUS_TOKEN pertenecen a la máquina o instalación, no a una ciudad individual. El asiento deriva owner/city al arrancar. Guarda el token en privado; también puede residir en el llavero de macOS.

TERMINAL
CITY_BUS_URL=https://city-bus.example.workers.devCITY_BUS_TOKEN=rb_...

4. Intercambia invitaciones públicas

La autenticación vuelve alcanzable al asiento; la Road lo vuelve permitido. Cada lado exporta su identidad pública y acepta la del otro. El JSON nunca contiene el token del bus.

TERMINAL
agents-city road invite product > product.invitation.jsonagents-city road connect product research.invitation.jsonagents-city road invite research > research.invitation.jsonagents-city road connect research product.invitation.json

5. Abre las ciudades y verifica el alcance

Arranca ambos asientos y comprueba roster o /city:team. Una ciudad offline puede recibir la cola al volver. La entrega no significa acuerdo ni concede permiso para ejecutar.

TERMINAL
agents-city seat --city productagents-city seat --city researchagents-city bus roster