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.
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "city",
11
11
  "source": "./plugin",
12
- "version": "0.3.0-beta.21",
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
- ### Ahora mismo: experiencia npm real sin publicar
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
- cd /ruta/al/checkout/agents-city
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
- No hace falta ejecutar `npm publish`. La instalación anterior es global sólo en
104
- tu versión activa de Node.
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
- ### Instalación desde el registro cuando esté disponible
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
- Comprueba primero la disponibilidad y los dist-tags:
113
+ ### Probarlo sin instalar nada
109
114
 
110
115
  ```bash
111
- npm view agents-city dist-tags --json
116
+ npx agents-city@beta
112
117
  ```
113
118
 
114
- Si devuelve `E404`, usa el tarball local de la sección anterior. Cuando el
115
- registro muestre un dist-tag `beta`, la instalación será:
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
- npm install -g agents-city@beta
119
- agents-city --version
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
- Usa `@beta` mientras sea prerelease. `npm install -g agents-city` sin tag debe
124
- reservarse para el futuro release estable marcado como `latest`.
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
- ### Abrir el Hall en vez del terminal
134
+ ### Actualizar o quitar
127
135
 
128
136
  ```bash
129
- agents-city
130
- # equivalente a:
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
- El Hall se sirve en `127.0.0.1`, usa un puerto libre y abre el navegador. Desde
135
- allí puedes crear o seleccionar una ciudad y editar su configuración usando los
136
- mismos módulos que usa el CLI.
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 local
197
+ ### Actualizar una instalación
178
198
 
179
199
  ```bash
180
- cd /ruta/al/checkout/agents-city
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-0.3.0-beta.21.tgz
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-0.3.0-beta.21.tgz
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-0.3.0-beta.21.tgz
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
- ### Right now: the real npm experience without publishing
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
- cd /path/to/agents-city
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 do not need to run `npm publish`. The installation is global only for your
102
- currently active Node installation.
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
- ### Registry installation once available
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
- Check availability and dist-tags first:
111
+ ### Try it without installing anything
107
112
 
108
113
  ```bash
109
- npm view agents-city dist-tags --json
114
+ npx agents-city@beta
110
115
  ```
111
116
 
112
- If it returns `E404`, use the local tarball in the previous section. Once the
113
- registry shows a `beta` dist-tag, install it with:
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
- npm install -g agents-city@beta
117
- agents-city --version
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
- Use `@beta` while this is a prerelease. Bare `npm install -g agents-city` should
122
- be reserved for the future stable release carrying the `latest` tag.
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
- ### Open the Hall instead of the terminal wizard
132
+ ### Update, or remove
125
133
 
126
134
  ```bash
127
- agents-city
128
- # equivalent to:
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
- The Hall listens on `127.0.0.1`, chooses a free port, and opens the browser. You
133
- can create or select a city and edit its configuration there. The Hall and CLI
134
- use the same underlying modules.
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 a local installation
195
+ ### Update an installation
176
196
 
177
197
  ```bash
178
- cd /path/to/agents-city
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-0.3.0-beta.21.tgz
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-0.3.0-beta.21.tgz
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-0.3.0-beta.21.tgz
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
  ```
@@ -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
- afirma(f'· {filename} tracks the package release used by its tarball examples',
503
- package['version'] in content,
504
- f"README has no {package['version']}")
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.21" in salida.getvalue(),
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-0.3.0-beta.21.tgz
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,6 +1,6 @@
1
1
  {
2
2
  "name": "agents-city",
3
- "version": "0.3.0-beta.21",
3
+ "version": "0.3.0-beta.22",
4
4
  "description": "Run autonomous agent cities: one chair seat, role-aware repo agents, repo-owned skills, and explicit roads.",
5
5
  "bin": {
6
6
  "agents-city": "bin/agents-city.js"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "city",
3
3
  "displayName": "Agents City",
4
- "version": "0.3.0-beta.21",
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",
@@ -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.21" },
20103
+ { name: "agents-city-bus", version: "0.3.0-beta.22" },
20104
20104
  {
20105
20105
  capabilities: {
20106
20106
  ...channelEnabled ? { experimental: { "claude/channel": {} } } : {},
@@ -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.21' },
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.21' },
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.21" },
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");