agents-city 0.3.0-beta.21 → 0.3.0-beta.22
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/.claude-plugin/marketplace.json +1 -1
- package/README.es.md +58 -34
- package/README.md +58 -34
- package/bin/test-contracts.py +11 -4
- package/bin/test-seat.py +1 -1
- package/docs/testing.md +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/channel/bus.js +1 -1
- package/plugin/channel/bus.ts +1 -1
- package/plugin/channel/runtime/codex.ts +1 -1
- package/plugin/channel/runtime-gateway.js +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
{
|
|
10
10
|
"name": "city",
|
|
11
11
|
"source": "./plugin",
|
|
12
|
-
"version": "0.3.0-beta.
|
|
12
|
+
"version": "0.3.0-beta.22",
|
|
13
13
|
"description": "Operate one autonomous city seat, its domain, role, repo support agents, goal, recognised skills and explicit roads to other cities."
|
|
14
14
|
}
|
|
15
15
|
]
|
package/README.es.md
CHANGED
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
**Ejecuta varias ciudades autónomas de agentes en una máquina y conecta sólo
|
|
6
6
|
las que deban hablar.**
|
|
7
7
|
|
|
8
|
+
```bash
|
|
9
|
+
npm install -g agents-city@beta
|
|
10
|
+
agents-city
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Esa es toda la instalación. El segundo comando abre el ayuntamiento en tu
|
|
14
|
+
navegador y te acompaña a crear tu primera ciudad.
|
|
15
|
+
|
|
8
16
|
Agents City es un orquestador local y multimodelo para trabajo con repositorios.
|
|
9
17
|
Cada ciudad tiene una identidad, un dominio, un asiento principal, un objetivo,
|
|
10
18
|
agentes de apoyo por repo, conocimiento editable, skills reconocidas en vivo y
|
|
@@ -87,53 +95,65 @@ Las fronteras importantes son:
|
|
|
87
95
|
|
|
88
96
|
## Inicio rápido
|
|
89
97
|
|
|
90
|
-
###
|
|
91
|
-
|
|
92
|
-
Empaquetar primero es importante: prueba exactamente la lista de ficheros que
|
|
93
|
-
recibiría una persona desde npm, no el checkout completo.
|
|
98
|
+
### Instalar desde npm
|
|
94
99
|
|
|
95
100
|
```bash
|
|
96
|
-
|
|
97
|
-
npm pack
|
|
98
|
-
npm install -g ./agents-city-0.3.0-beta.21.tgz
|
|
101
|
+
npm install -g agents-city@beta
|
|
99
102
|
agents-city --version
|
|
100
|
-
agents-city seat
|
|
101
103
|
```
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
Necesitas Node.js 22 o superior, Python 3 y tmux; los detalles están en la
|
|
106
|
+
[tabla de requisitos](#requisitos-base), y `agents-city seat` se ofrece a
|
|
107
|
+
instalar tmux si falta. No se instala nada en el sistema más allá de la carpeta
|
|
108
|
+
global de npm de tu Node activo.
|
|
105
109
|
|
|
106
|
-
|
|
110
|
+
El `@beta` es deliberado: esto es una prerelease, y fijarla significa que una
|
|
111
|
+
futura versión estable no puede cambiarte la máquina sin que tú lo pidas.
|
|
107
112
|
|
|
108
|
-
|
|
113
|
+
### Probarlo sin instalar nada
|
|
109
114
|
|
|
110
115
|
```bash
|
|
111
|
-
|
|
116
|
+
npx agents-city@beta
|
|
112
117
|
```
|
|
113
118
|
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
`npx` descarga el paquete en su caché, lo ejecuta y deja intacta tu carpeta
|
|
120
|
+
global de npm — la forma más rápida de ver si esto es para ti.
|
|
121
|
+
|
|
122
|
+
### Después: el Hall, o el terminal
|
|
116
123
|
|
|
117
124
|
```bash
|
|
118
|
-
|
|
119
|
-
agents-city
|
|
120
|
-
agents-city seat
|
|
125
|
+
agents-city # el ayuntamiento en el navegador (igual que: agents-city hall)
|
|
126
|
+
agents-city seat # el asistente en terminal, si prefieres no salir de la shell
|
|
121
127
|
```
|
|
122
128
|
|
|
123
|
-
|
|
124
|
-
|
|
129
|
+
El Hall se sirve en `127.0.0.1`, elige un puerto libre y abre el navegador. Allí
|
|
130
|
+
puedes crear o seleccionar una ciudad, editar su configuración, ajustar el motor
|
|
131
|
+
de cada agente y ver el mapa en vivo. El Hall y el CLI usan los mismos módulos
|
|
132
|
+
por debajo, así que ninguno de los dos es el camino "menor".
|
|
125
133
|
|
|
126
|
-
###
|
|
134
|
+
### Actualizar o quitar
|
|
127
135
|
|
|
128
136
|
```bash
|
|
129
|
-
agents-city
|
|
130
|
-
#
|
|
131
|
-
agents-city hall
|
|
137
|
+
npm install -g agents-city@beta # actualizar a la última beta
|
|
138
|
+
npm uninstall -g agents-city # quitar el programa
|
|
132
139
|
```
|
|
133
140
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
Desinstalar deja `~/.agents-city`, tus ciudades y tus repos exactamente donde
|
|
142
|
+
están: el programa no son tus datos.
|
|
143
|
+
|
|
144
|
+
### Instalar desde el código fuente
|
|
145
|
+
|
|
146
|
+
Para quien contribuye, y para quien quiera leer el código antes de ejecutarlo.
|
|
147
|
+
Empaquetar primero es la prueba honesta: ejercita exactamente la lista de
|
|
148
|
+
ficheros que recibe una persona desde npm, no tu copia de trabajo entera.
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
git clone https://github.com/jlcases/agents-city.git
|
|
152
|
+
cd agents-city
|
|
153
|
+
npm pack
|
|
154
|
+
npm install -g ./agents-city-*.tgz
|
|
155
|
+
agents-city --version
|
|
156
|
+
```
|
|
137
157
|
|
|
138
158
|
## Requisitos e instalación
|
|
139
159
|
|
|
@@ -174,15 +194,19 @@ Agents City usa el CLI independiente `gh`:
|
|
|
174
194
|
|
|
175
195
|
`gh` no va dentro del paquete npm de Agents City.
|
|
176
196
|
|
|
177
|
-
### Actualizar una instalación
|
|
197
|
+
### Actualizar una instalación
|
|
178
198
|
|
|
179
199
|
```bash
|
|
180
|
-
|
|
181
|
-
npm pack
|
|
182
|
-
npm install -g ./agents-city-0.3.0-beta.21.tgz
|
|
200
|
+
npm install -g agents-city@beta # desde el registro
|
|
183
201
|
agents-city --version
|
|
184
202
|
```
|
|
185
203
|
|
|
204
|
+
Desde un checkout del código, empaqueta e instala el tarball:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
cd /ruta/al/checkout/agents-city && npm pack && npm install -g ./agents-city-*.tgz
|
|
208
|
+
```
|
|
209
|
+
|
|
186
210
|
Las sesiones ya abiertas conservan el código cargado en memoria. Para aplicar la
|
|
187
211
|
nueva versión a una ciudad:
|
|
188
212
|
|
|
@@ -1205,7 +1229,7 @@ asiento; nunca adquiere autoridad para ordenar directamente a un repo local.
|
|
|
1205
1229
|
```bash
|
|
1206
1230
|
cd /ruta/al/checkout/agents-city
|
|
1207
1231
|
npm pack
|
|
1208
|
-
npm install -g ./agents-city
|
|
1232
|
+
npm install -g ./agents-city-*.tgz
|
|
1209
1233
|
agents-city seat
|
|
1210
1234
|
```
|
|
1211
1235
|
|
|
@@ -1479,7 +1503,7 @@ de razonamiento»; una autenticación fallida tampoco se cuenta como muestra rá
|
|
|
1479
1503
|
```bash
|
|
1480
1504
|
cd /ruta/al/checkout/agents-city
|
|
1481
1505
|
npm pack
|
|
1482
|
-
npm install -g ./agents-city
|
|
1506
|
+
npm install -g ./agents-city-*.tgz
|
|
1483
1507
|
agents-city --version
|
|
1484
1508
|
agents-city exit producto --dry-run
|
|
1485
1509
|
agents-city exit producto
|
|
@@ -1986,7 +2010,7 @@ npm pack --dry-run
|
|
|
1986
2010
|
npm pack
|
|
1987
2011
|
|
|
1988
2012
|
CITY_TEST_PREFIX="$(mktemp -d)"
|
|
1989
|
-
npm install -g --prefix "$CITY_TEST_PREFIX" ./agents-city
|
|
2013
|
+
npm install -g --prefix "$CITY_TEST_PREFIX" ./agents-city-*.tgz
|
|
1990
2014
|
"$CITY_TEST_PREFIX/bin/agents-city" --version
|
|
1991
2015
|
"$CITY_TEST_PREFIX/bin/agents-city" --help
|
|
1992
2016
|
```
|
package/README.md
CHANGED
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
**Run several autonomous agent cities on one machine, and connect only the
|
|
6
6
|
cities that should talk.**
|
|
7
7
|
|
|
8
|
+
```bash
|
|
9
|
+
npm install -g agents-city@beta
|
|
10
|
+
agents-city
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
That is the whole installation. The second command opens the town hall in your
|
|
14
|
+
browser and walks you through creating your first city.
|
|
15
|
+
|
|
8
16
|
Agents City is a local-first, multi-model orchestrator for repository work. Each
|
|
9
17
|
city has its own identity, domain, chair seat, goal, repo support agents,
|
|
10
18
|
editable knowledge, live-recognised skills, and explicit roads to other cities.
|
|
@@ -85,53 +93,65 @@ The important boundaries are:
|
|
|
85
93
|
|
|
86
94
|
## Quick start
|
|
87
95
|
|
|
88
|
-
###
|
|
89
|
-
|
|
90
|
-
Packing first matters: this tests the exact file list a person would receive
|
|
91
|
-
from npm, not the whole checkout.
|
|
96
|
+
### Install from npm
|
|
92
97
|
|
|
93
98
|
```bash
|
|
94
|
-
|
|
95
|
-
npm pack
|
|
96
|
-
npm install -g ./agents-city-0.3.0-beta.21.tgz
|
|
99
|
+
npm install -g agents-city@beta
|
|
97
100
|
agents-city --version
|
|
98
|
-
agents-city seat
|
|
99
101
|
```
|
|
100
102
|
|
|
101
|
-
You
|
|
102
|
-
|
|
103
|
+
You need Node.js 22+, Python 3 and tmux; the
|
|
104
|
+
[requirements table](#base-requirements) has the details, and `agents-city seat`
|
|
105
|
+
offers to install tmux when it is missing. Nothing is installed system-wide
|
|
106
|
+
beyond the npm global folder of your active Node installation.
|
|
103
107
|
|
|
104
|
-
|
|
108
|
+
`@beta` is deliberate: this is a prerelease, and pinning it means a future
|
|
109
|
+
stable release cannot change your machine without you asking for it.
|
|
105
110
|
|
|
106
|
-
|
|
111
|
+
### Try it without installing anything
|
|
107
112
|
|
|
108
113
|
```bash
|
|
109
|
-
|
|
114
|
+
npx agents-city@beta
|
|
110
115
|
```
|
|
111
116
|
|
|
112
|
-
|
|
113
|
-
|
|
117
|
+
`npx` downloads the package into its cache, runs it, and leaves your global npm
|
|
118
|
+
folder untouched — the fastest way to see whether this is for you.
|
|
119
|
+
|
|
120
|
+
### Then: the Hall, or the terminal
|
|
114
121
|
|
|
115
122
|
```bash
|
|
116
|
-
|
|
117
|
-
agents-city
|
|
118
|
-
agents-city seat
|
|
123
|
+
agents-city # the town hall in your browser (same as: agents-city hall)
|
|
124
|
+
agents-city seat # the terminal wizard, if you prefer not to leave the shell
|
|
119
125
|
```
|
|
120
126
|
|
|
121
|
-
|
|
122
|
-
|
|
127
|
+
The Hall listens on `127.0.0.1`, chooses a free port, and opens the browser. You
|
|
128
|
+
can create or select a city, edit its configuration, tune each agent's engine
|
|
129
|
+
and watch the live map there. The Hall and the CLI use the same underlying
|
|
130
|
+
modules, so neither is the "lesser" path.
|
|
123
131
|
|
|
124
|
-
###
|
|
132
|
+
### Update, or remove
|
|
125
133
|
|
|
126
134
|
```bash
|
|
127
|
-
agents-city
|
|
128
|
-
#
|
|
129
|
-
agents-city hall
|
|
135
|
+
npm install -g agents-city@beta # update to the newest beta
|
|
136
|
+
npm uninstall -g agents-city # remove the program
|
|
130
137
|
```
|
|
131
138
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
139
|
+
Uninstalling leaves `~/.agents-city`, your cities and your repositories exactly
|
|
140
|
+
where they are: the program is not your data.
|
|
141
|
+
|
|
142
|
+
### Install from a source checkout instead
|
|
143
|
+
|
|
144
|
+
For contributors, and for anyone who wants to read the code before running it.
|
|
145
|
+
Packing first is the honest test: it exercises the exact file list a person
|
|
146
|
+
receives from npm, not your whole working copy.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
git clone https://github.com/jlcases/agents-city.git
|
|
150
|
+
cd agents-city
|
|
151
|
+
npm pack
|
|
152
|
+
npm install -g ./agents-city-*.tgz
|
|
153
|
+
agents-city --version
|
|
154
|
+
```
|
|
135
155
|
|
|
136
156
|
## Requirements and installation
|
|
137
157
|
|
|
@@ -172,15 +192,19 @@ onboarding, Agents City uses the separate `gh` CLI:
|
|
|
172
192
|
|
|
173
193
|
`gh` is not bundled inside the Agents City npm package.
|
|
174
194
|
|
|
175
|
-
### Update
|
|
195
|
+
### Update an installation
|
|
176
196
|
|
|
177
197
|
```bash
|
|
178
|
-
|
|
179
|
-
npm pack
|
|
180
|
-
npm install -g ./agents-city-0.3.0-beta.21.tgz
|
|
198
|
+
npm install -g agents-city@beta # from the registry
|
|
181
199
|
agents-city --version
|
|
182
200
|
```
|
|
183
201
|
|
|
202
|
+
From a source checkout, pack and install the tarball instead:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
cd /path/to/agents-city && npm pack && npm install -g ./agents-city-*.tgz
|
|
206
|
+
```
|
|
207
|
+
|
|
184
208
|
Already-running sessions retain the code loaded in memory. To apply the new
|
|
185
209
|
version to one city:
|
|
186
210
|
|
|
@@ -1194,7 +1218,7 @@ it never gains authority to command a local repo directly.
|
|
|
1194
1218
|
```bash
|
|
1195
1219
|
cd /path/to/agents-city
|
|
1196
1220
|
npm pack
|
|
1197
|
-
npm install -g ./agents-city
|
|
1221
|
+
npm install -g ./agents-city-*.tgz
|
|
1198
1222
|
agents-city seat
|
|
1199
1223
|
```
|
|
1200
1224
|
|
|
@@ -1466,7 +1490,7 @@ authentication failure is not counted as a fast sample.
|
|
|
1466
1490
|
```bash
|
|
1467
1491
|
cd /path/to/agents-city
|
|
1468
1492
|
npm pack
|
|
1469
|
-
npm install -g ./agents-city
|
|
1493
|
+
npm install -g ./agents-city-*.tgz
|
|
1470
1494
|
agents-city --version
|
|
1471
1495
|
agents-city exit product --dry-run
|
|
1472
1496
|
agents-city exit product
|
|
@@ -1964,7 +1988,7 @@ npm pack --dry-run
|
|
|
1964
1988
|
npm pack
|
|
1965
1989
|
|
|
1966
1990
|
CITY_TEST_PREFIX="$(mktemp -d)"
|
|
1967
|
-
npm install -g --prefix "$CITY_TEST_PREFIX" ./agents-city
|
|
1991
|
+
npm install -g --prefix "$CITY_TEST_PREFIX" ./agents-city-*.tgz
|
|
1968
1992
|
"$CITY_TEST_PREFIX/bin/agents-city" --version
|
|
1969
1993
|
"$CITY_TEST_PREFIX/bin/agents-city" --help
|
|
1970
1994
|
```
|
package/bin/test-contracts.py
CHANGED
|
@@ -435,7 +435,6 @@ def documentacion_publica():
|
|
|
435
435
|
runtime, or release without documenting it in both supported languages.
|
|
436
436
|
"""
|
|
437
437
|
print(' bilingual public documentation')
|
|
438
|
-
package = json.load(open(os.path.join(RAIZ, 'package.json'), encoding='utf-8'))
|
|
439
438
|
public_commands = [
|
|
440
439
|
'hall', 'seat', 'cities', 'road', 'bus', 'committee', 'benchmark',
|
|
441
440
|
'reset', 'skills', 'city', 'demo', 'setup', 'report', 'tokens', 'exit',
|
|
@@ -499,9 +498,17 @@ def documentacion_publica():
|
|
|
499
498
|
afirma(f'· {filename} carries eighteen reproducible use cases',
|
|
500
499
|
content.count(cookbook_prefix) == 18,
|
|
501
500
|
f'found {content.count(cookbook_prefix)}')
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
501
|
+
# The install instructions must not name a versioned tarball. They used
|
|
502
|
+
# to, and every release left a README telling newcomers to install a
|
|
503
|
+
# file that no longer existed — so the contract was "repeat the current
|
|
504
|
+
# version everywhere". A glob cannot go stale, which is the better
|
|
505
|
+
# answer: what is pinned here is that nobody re-introduces the trap.
|
|
506
|
+
tarballs_fijos = re.findall(r'agents-city-\d[\w.\-]*\.tgz', content)
|
|
507
|
+
afirma(f'· {filename} installs by glob, never a tarball name that goes stale',
|
|
508
|
+
not tarballs_fijos, 'pinned: ' + ', '.join(sorted(set(tarballs_fijos))))
|
|
509
|
+
afirma(f'· {filename} opens with the one command that installs from npm',
|
|
510
|
+
'npm install -g agents-city@beta' in content.split('## ')[0],
|
|
511
|
+
'the first screen does not show the npm install line')
|
|
505
512
|
afirma(f'· {filename} links to the other language',
|
|
506
513
|
'[Español](README.es.md)' in content and '[English](README.md)' in content)
|
|
507
514
|
afirma(f'· {filename} shows the real city identity key',
|
package/bin/test-seat.py
CHANGED
|
@@ -509,7 +509,7 @@ def maquinas_hostiles():
|
|
|
509
509
|
"· an old cached Claude plugin is updated through Claude's own CLI",
|
|
510
510
|
llamadas
|
|
511
511
|
and llamadas[0][:4] == ["claude", "plugin", "update", "city@agents-city"]
|
|
512
|
-
and "0.3.0-beta.
|
|
512
|
+
and "0.3.0-beta.22" in salida.getvalue(),
|
|
513
513
|
f"calls={llamadas!r} output={salida.getvalue()!r}",
|
|
514
514
|
)
|
|
515
515
|
|
package/docs/testing.md
CHANGED
|
@@ -149,7 +149,7 @@ temporary prefix before touching a global installation:
|
|
|
149
149
|
```bash
|
|
150
150
|
npm pack
|
|
151
151
|
PREFIX=$(mktemp -d)
|
|
152
|
-
npm install -g --prefix "$PREFIX" ./agents-city
|
|
152
|
+
npm install -g --prefix "$PREFIX" ./agents-city-*.tgz
|
|
153
153
|
"$PREFIX/bin/agents-city" --version
|
|
154
154
|
```
|
|
155
155
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "city",
|
|
3
3
|
"displayName": "Agents City",
|
|
4
|
-
"version": "0.3.0-beta.
|
|
4
|
+
"version": "0.3.0-beta.22",
|
|
5
5
|
"description": "One autonomous city seat with a work domain, role, goal, repo support agents, recognised skills and explicit roads to other cities.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "jlcases",
|
package/plugin/channel/bus.js
CHANGED
|
@@ -20100,7 +20100,7 @@ try {
|
|
|
20100
20100
|
}
|
|
20101
20101
|
var chair = Boolean(context && context.actors[actor]?.role === "chair" && actor === "seat");
|
|
20102
20102
|
var server = new Server(
|
|
20103
|
-
{ name: "agents-city-bus", version: "0.3.0-beta.
|
|
20103
|
+
{ name: "agents-city-bus", version: "0.3.0-beta.22" },
|
|
20104
20104
|
{
|
|
20105
20105
|
capabilities: {
|
|
20106
20106
|
...channelEnabled ? { experimental: { "claude/channel": {} } } : {},
|
package/plugin/channel/bus.ts
CHANGED
|
@@ -24,7 +24,7 @@ try {
|
|
|
24
24
|
|
|
25
25
|
const chair = Boolean(context && context.actors[actor]?.role === 'chair' && actor === 'seat');
|
|
26
26
|
const server = new Server(
|
|
27
|
-
{ name: 'agents-city-bus', version: '0.3.0-beta.
|
|
27
|
+
{ name: 'agents-city-bus', version: '0.3.0-beta.22' },
|
|
28
28
|
{
|
|
29
29
|
capabilities: {
|
|
30
30
|
...(channelEnabled ? { experimental: { 'claude/channel': {} } } : {}),
|
|
@@ -67,7 +67,7 @@ export class CodexConnector implements RuntimeConnector {
|
|
|
67
67
|
async (method, params) => this.providerRequest(method, params),
|
|
68
68
|
);
|
|
69
69
|
await this.rpc.request('initialize', {
|
|
70
|
-
clientInfo: { name: 'agents-city', title: 'Agents City', version: '0.3.0-beta.
|
|
70
|
+
clientInfo: { name: 'agents-city', title: 'Agents City', version: '0.3.0-beta.22' },
|
|
71
71
|
capabilities: { experimentalApi: true },
|
|
72
72
|
});
|
|
73
73
|
await this.rpc.notify('initialized');
|
|
@@ -4894,7 +4894,7 @@ var CodexConnector = class {
|
|
|
4894
4894
|
async (method, params) => this.providerRequest(method, params)
|
|
4895
4895
|
);
|
|
4896
4896
|
await this.rpc.request("initialize", {
|
|
4897
|
-
clientInfo: { name: "agents-city", title: "Agents City", version: "0.3.0-beta.
|
|
4897
|
+
clientInfo: { name: "agents-city", title: "Agents City", version: "0.3.0-beta.22" },
|
|
4898
4898
|
capabilities: { experimentalApi: true }
|
|
4899
4899
|
});
|
|
4900
4900
|
await this.rpc.notify("initialized");
|