borgmcp 2.7.3 → 2.9.0

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 (78) hide show
  1. package/README.md +96 -230
  2. package/dist/assimilate-cmd.d.ts +1 -0
  3. package/dist/assimilate-cmd.d.ts.map +1 -1
  4. package/dist/assimilate-cmd.js +18 -4
  5. package/dist/assimilate-cmd.js.map +1 -1
  6. package/dist/assimilate-deps.d.ts.map +1 -1
  7. package/dist/assimilate-deps.js +3 -0
  8. package/dist/assimilate-deps.js.map +1 -1
  9. package/dist/cli-help.d.ts.map +1 -1
  10. package/dist/cli-help.js +2 -3
  11. package/dist/cli-help.js.map +1 -1
  12. package/dist/config.d.ts +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +3 -0
  15. package/dist/config.js.map +1 -1
  16. package/dist/drone-lifecycle.d.ts +8 -0
  17. package/dist/drone-lifecycle.d.ts.map +1 -1
  18. package/dist/drone-lifecycle.js +19 -0
  19. package/dist/drone-lifecycle.js.map +1 -1
  20. package/dist/first-run-server.d.ts +10 -2
  21. package/dist/first-run-server.d.ts.map +1 -1
  22. package/dist/first-run-server.js +54 -7
  23. package/dist/first-run-server.js.map +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +14 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/log-stream.d.ts +4 -0
  28. package/dist/log-stream.d.ts.map +1 -1
  29. package/dist/log-stream.js +28 -4
  30. package/dist/log-stream.js.map +1 -1
  31. package/dist/remote-client.d.ts +2 -2
  32. package/dist/remote-client.d.ts.map +1 -1
  33. package/dist/remote-client.js +43 -8
  34. package/dist/remote-client.js.map +1 -1
  35. package/dist/runtime-metadata.d.ts +1 -1
  36. package/dist/runtime-metadata.d.ts.map +1 -1
  37. package/dist/runtime-metadata.js +3 -3
  38. package/dist/runtime-metadata.js.map +1 -1
  39. package/dist/server-errors.d.ts +9 -1
  40. package/dist/server-errors.d.ts.map +1 -1
  41. package/dist/server-errors.js +19 -0
  42. package/dist/server-errors.js.map +1 -1
  43. package/dist/server-handshake.d.ts +5 -1
  44. package/dist/server-handshake.d.ts.map +1 -1
  45. package/dist/server-handshake.js +18 -0
  46. package/dist/server-handshake.js.map +1 -1
  47. package/dist/server-trust.d.ts.map +1 -1
  48. package/dist/server-trust.js +10 -0
  49. package/dist/server-trust.js.map +1 -1
  50. package/dist/setup.js +5 -2
  51. package/dist/setup.js.map +1 -1
  52. package/dist/tool-manifest.d.ts.map +1 -1
  53. package/dist/tool-manifest.js +8 -5
  54. package/dist/tool-manifest.js.map +1 -1
  55. package/dist/update-cmd.d.ts +1 -0
  56. package/dist/update-cmd.d.ts.map +1 -1
  57. package/dist/update-cmd.js +130 -19
  58. package/dist/update-cmd.js.map +1 -1
  59. package/docs/EXTRACTION_PROVENANCE.md +7 -7
  60. package/docs/LOCAL_SERVER.md +3 -3
  61. package/docs/RELEASING.md +16 -6
  62. package/package.json +2 -2
  63. package/src/assimilate-cmd.ts +25 -6
  64. package/src/assimilate-deps.ts +3 -0
  65. package/src/cli-help.ts +2 -3
  66. package/src/config.ts +4 -0
  67. package/src/drone-lifecycle.ts +25 -0
  68. package/src/first-run-server.ts +71 -8
  69. package/src/index.ts +15 -1
  70. package/src/log-stream.ts +26 -5
  71. package/src/remote-client.ts +58 -7
  72. package/src/runtime-metadata.ts +4 -3
  73. package/src/server-errors.ts +25 -0
  74. package/src/server-handshake.ts +30 -1
  75. package/src/server-trust.ts +11 -0
  76. package/src/setup.ts +5 -2
  77. package/src/tool-manifest.ts +8 -5
  78. package/src/update-cmd.ts +153 -19
package/README.md CHANGED
@@ -2,66 +2,37 @@
2
2
 
3
3
  Multi-agent coordination for AI coding agents.
4
4
 
5
- Borg MCP lets Claude Code, Codex, and OpenCode sessions join the same project coordination space, take on named roles, and coordinate through one shared activity log. Borg MCP is an MCP server, so install Claude Code, Codex, or OpenCode first. That shared space is a **cube**. Each running agent session is a **drone**. You are the **Queen**: the human who owns the cube and decides what should happen. Drones operate under **roles** such as Builder, Code Reviewer, Coordinator, Product Design, or Security Auditor.
5
+ Borg MCP lets Claude Code, Codex, and OpenCode sessions coordinate in the same
6
+ project. A shared coordination space is a **cube**, and each connected agent
7
+ session is a **drone**. Roles are yours to define, with names such as builder,
8
+ reviewer, coordinator, or designer.
6
9
 
7
10
  ## What you get
8
11
 
9
- - Shared cube context: cube directive, role playbooks, roster, and recent log entries.
10
- - Role-based coordination: assign drones to roles and keep their instructions in one place.
11
- - Live activity log: post status, dispatches, review gates, and findings without copy-paste handoffs.
12
- - Wake-path support: inbox monitoring and stream diagnostics help keep agent sessions responsive.
13
- - Claude Code, Codex, and OpenCode launcher support: start one or more agent sessions from the same repo.
14
- - Self-hosted authority: attach to a trusted `borgmcp-server` endpoint you run
15
- on localhost or your LAN. No account or subscription — local-only.
12
+ - Shared project context, role instructions, a roster, and an activity log.
13
+ - Direct and broadcast messages between agent sessions.
14
+ - Live wake-up support so agents can react to new activity.
15
+ - Launchers for Claude Code, Codex, and OpenCode, including sibling worktrees.
16
+ - A self-hosted server for localhost or LAN use, with no account or subscription.
16
17
 
17
18
  ## Install
18
19
 
19
- Install the current exact local-only client release from npm:
20
+ Install the client from npm:
20
21
 
21
22
  ```bash
22
- npm install -g borgmcp@2.7.3
23
+ npm install -g borgmcp
23
24
  ```
24
25
 
25
- Verify the install:
26
+ You also need at least one supported agent CLI: Claude Code, Codex, or OpenCode.
27
+
28
+ Verify the installation:
26
29
 
27
30
  ```bash
28
31
  borg --version
29
32
  borg --help
30
33
  ```
31
34
 
32
- ## Update
33
-
34
- Use the whole-product update command for an existing npm-global installation:
35
-
36
- ```bash
37
- borg update
38
- ```
39
-
40
- Before changing either package, Borg reads the exact published `borgmcp` and
41
- `borgmcp-server` manifests and requires the same exact `borgmcp-shared` pin. It
42
- then verifies that the running client and any installed server controller belong
43
- to one stable npm executable, global prefix, and global root. Registry lookup and
44
- installation are bound to `https://registry.npmjs.org/`. An alternate configured
45
- registry, changed npm context, or unsupported or ambiguous package-manager
46
- provenance fails without changing either package; use that package manager's
47
- manual update flow instead.
48
-
49
- After confirmation, Borg installs the client first and continues under the
50
- verified new client. If a local server was already installed, it installs the
51
- matching server controller, delegates runtime verification and activation to
52
- the server updater, and verifies the final installed, prepared, running, and
53
- protocol identities. A server that was stopped remains stopped and is reported
54
- as `prepared; still stopped`. If no local server was installed, that phase is
55
- explicitly skipped. Use `borg update --yes` for a non-interactive invocation.
56
-
57
- Partial completion is reported with `borg update --yes` as the idempotent retry.
58
- During interactive setup or a first `borg assimilate` with no selected server,
59
- Borg offers to install the exact compatible `borgmcp-server` release. It never
60
- installs an absent server from a non-interactive invocation. Borg does not start
61
- a stopped server or restart agent processes. Restart active agent sessions
62
- yourself after the client changes.
63
-
64
- ## First-time setup
35
+ ## Quick Start
65
36
 
66
37
  Run the setup wizard:
67
38
 
@@ -69,251 +40,146 @@ Run the setup wizard:
69
40
  borg setup
70
41
  ```
71
42
 
72
- The wizard offers to install the exact compatible `borgmcp-server` release when
73
- none is present, then configures Borg MCP with the supported agent CLIs installed
74
- on your machine. The client and server remain separate local-only packages. No
75
- account, sign-in, or subscription is required.
43
+ If the local server is not installed, the wizard offers to install a compatible
44
+ version. It also configures the supported agent CLIs found on your machine.
76
45
 
77
- `borg ...` commands are terminal commands. `borg_...` commands are MCP tools
78
- you ask your agent to run inside Claude Code, Codex, or OpenCode.
79
-
80
- If multiple CLIs are installed, use `--cli` when launching or assimilating if you want to choose explicitly:
46
+ Prepare and start the server in one terminal:
81
47
 
82
48
  ```bash
83
- borg assimilate --cli claude
84
- borg assimilate --cli codex
85
- borg assimilate --cli opencode
49
+ borg server setup
50
+ borg server start
86
51
  ```
87
52
 
88
- ## Join a cube
53
+ `borg server start` stays in the foreground. Leave that terminal open while you
54
+ use Borg; press Ctrl-C when you want to stop the server.
89
55
 
90
- From inside your project repo:
56
+ In a second terminal, open your project's Git repository and join its cube:
91
57
 
92
58
  ```bash
59
+ cd ~/code/my-app
93
60
  borg assimilate
94
61
  ```
95
62
 
96
- You will be prompted for the self-hosted server to connect to. Borg first resolves an existing repository association. Without one, an exact-name accessible cube requires explicit interactive confirmation before Borg associates it with this repository; otherwise Borg shows the repository context, lets you edit the proposed cube name, offers the templates shipped by its pinned shared release with the recommended template first, and asks for creation confirmation. It then registers the current session as a drone and launches the selected agent CLI with cube context.
97
- Cube names allow letters, digits, spaces, dots, underscores, and hyphens, start with a letter or digit, and are at most 120 UTF-8 bytes. Use `--cube-name <name>` to supply one directly. Pass `--yes` to accept the repository name and recommended template non-interactively only when creating a new cube; it never adopts an existing cube by name.
63
+ Borg creates or reuses a repository-specific cube, registers the new drone, and
64
+ launches your agent CLI with the cube's context.
98
65
 
99
- To initialize the repository cube without creating a drone or launching an agent:
66
+ To run another agent at the same time, open a third terminal and change to the
67
+ same Git repository:
100
68
 
101
69
  ```bash
102
- borg server cube init
70
+ cd ~/code/my-app
71
+ borg assimilate builder
103
72
  ```
104
73
 
105
- Both commands use the same idempotent repository association. Once associated, reruns show authoritative cube details without prompting; creation flags are ignored with an explicit notice.
106
-
107
- `borg assimilate --yes` and other non-interactive runs require an explicit
108
- `--host <server>`. Without a selected local server, assimilation fails closed
109
- with an actionable `No local server selected` error. The host names a
110
- self-hosted `borgmcp-server` on localhost or your LAN.
111
-
112
- To connect directly to a local server non-interactively:
74
+ Two sessions of the same agent CLI work. To choose a CLI explicitly, use one of:
113
75
 
114
76
  ```bash
115
- borg assimilate --host 127.0.0.1:7091
77
+ borg assimilate --cli claude
78
+ borg assimilate --cli codex
79
+ borg assimilate --cli opencode
116
80
  ```
117
81
 
118
- Self-hosted onboarding is an operator-terminal journey. Install the server, set
119
- it up once, and keep it running:
82
+ `borg ...` commands run in your terminal. `borg_...` commands are MCP tools that
83
+ you or the agent use inside an agent session.
120
84
 
121
- ```bash
122
- npm install -g borgmcp-server
123
- borg server setup
124
- borg server start
125
- ```
85
+ ## Cubes And Roles
126
86
 
127
- `borg server start` and `borg-mcp-server start` are foreground commands. They
128
- must never imply that a daemon, LaunchAgent, or systemd service was installed.
129
- Managed persistence is a separate explicit handoff. See the lifecycle commands
130
- and recovery flow in [`docs/LOCAL_SERVER.md`](docs/LOCAL_SERVER.md).
87
+ On first use in a repository, Borg shows the proposed cube name and template
88
+ before creating anything. If it finds one accessible cube with the same name,
89
+ it asks before linking that cube to the repository. It never links an existing
90
+ cube by name during a non-interactive run.
131
91
 
132
- `borg update` is the normal client-and-server update journey. `borg server
133
- update` remains the server-runtime-only escape hatch and may report a separate
134
- controller install action rather than changing the global controller itself.
135
-
136
- Open a second operator terminal in the project checkout and run:
92
+ To create a repository cube without launching an agent:
137
93
 
138
94
  ```bash
139
- borg assimilate
95
+ borg server cube init
140
96
  ```
141
97
 
142
- Setup provisions the first same-machine owner credential in the owner-only
143
- `~/.borg/credentials` file. Bare assimilation uses that credential without an
144
- invitation prompt, creates or joins the repository cube with the recommended template, attaches a drone to a
145
- role seat, and launches the selected agent. For another client or device, run
146
- `borg server invite`, then use `borg assimilate --host <server> --enroll` on the
147
- intended recipient and enter the invitation at its hidden prompt.
148
- In the launched agent, run `borg_whoami` and `borg_roster` to verify the seat and
149
- begin coordinating.
150
-
151
- An ordinary enrolled client cannot create a cube. The server operator must grant
152
- it access before it reruns `borg assimilate --host 127.0.0.1:7091`. Enrollment
153
- credentials and retry state remain in the local seat store on this machine (a
154
- 0600-permission file store). See the
155
- complete setup, recovery, second-seat, and security flow in
156
- [`docs/LOCAL_SERVER.md`](docs/LOCAL_SERVER.md).
157
- The exact saved-seat states, re-attach behavior, recovery copy, and multi-seat
158
- selection rules are in
159
- [`docs/SEAT_LIFECYCLE.md`](docs/SEAT_LIFECYCLE.md).
160
-
161
- To start another drone in a sibling worktree:
162
-
163
- ```bash
164
- borg assimilate builder --worktree drone-2
165
- ```
98
+ To supply creation defaults non-interactively, pass `--host`, `--cube-name`, and
99
+ `--yes`. The `--yes` flag accepts defaults for a new cube; it does not approve
100
+ linking an existing cube.
166
101
 
167
- To join under a specific role:
102
+ To launch a drone in a named sibling worktree:
168
103
 
169
104
  ```bash
170
- borg assimilate code-reviewer --cli codex
105
+ borg assimilate builder --worktree drone-2
171
106
  ```
172
107
 
173
- ### Agent CLI approval policy
174
-
175
- Borg removes repeated approval prompts for its coordination tool set. This set
176
- includes `borg_tool`, the deferred-tool dispatcher: approving it also approves
177
- any Borg operation invoked through that dispatcher. Direct shell, file, and web
178
- actions remain outside Borg's allowlist.
179
-
180
- - Claude Code launches receive `--allowedTools mcp__borg__*`.
181
- - Codex launches query Codex's native effective-config resolver at the launch
182
- directory, including system/managed, user, selected profile, project, and
183
- command-line layers. If coordination tools are restrictive, an interactive
184
- launch asks before applying exact, launch-only `approval_mode="auto"`
185
- overrides. The consent prompt explicitly discloses the dispatcher's
186
- transitive scope. Declining or launching non-interactively changes nothing
187
- and prints the exact TOML needed for a global repair.
188
- - OpenCode launches do not use its broad `--auto` switch. Borg queries
189
- `opencode debug config` for its resolved JSONC/managed/global/custom/project/
190
- inline configuration and, with interactive consent, supplies
191
- exact launch-only `allow` rules through `OPENCODE_PERMISSION`. Other OpenCode
192
- permission rules remain in force.
193
-
194
- `borg setup` performs the same inspection and prints exact global repair
195
- snippets. Borg never silently rewrites approval policy.
196
-
197
- ## Core MCP tools
198
-
199
- After assimilation, the agent session has `borg_` tools available:
200
-
201
- - `borg_regen` - Refresh cube context, role instructions, roster, and recent log.
202
- - `borg_log` - Append to the shared activity log. Can broadcast or direct messages to drones/roles.
203
- - `borg_read-log` - Read recent log entries, optionally since an entry id or timestamp.
204
- - `borg_ack` - Acknowledge a routed log entry without adding noise to the activity log.
205
- - `borg_roster` - List drones and liveness markers in the cube.
206
- - `borg_stream-status` - Diagnose the SSE/inbox wake path.
207
- - `borg_cube`, `borg_role`, `borg_whoami` - Inspect current cube, role, and identity.
208
- - `borg_create-cube`, `borg_update-cube`, `borg_delete-cube` - Manage cubes.
209
- - `borg_create-role`, `borg_update-role`, `borg_reassign-drone` - Manage roles and drone assignments.
210
- - `borg_apply-template`, `borg_sync-roles`, `borg_patch-taxonomy-class` - Bootstrap and maintain role/message-taxonomy templates.
211
-
212
- ## Typical two-agent flow
108
+ See [`docs/LOCAL_SERVER.md`](docs/LOCAL_SERVER.md) for remote enrollment,
109
+ invitations, server recovery, and security details. See
110
+ [`docs/SEAT_LIFECYCLE.md`](docs/SEAT_LIFECYCLE.md) for saved-seat and re-attach
111
+ behavior.
213
112
 
214
- 1. Run setup from the installed package.
113
+ ## Agent Permissions
215
114
 
216
- ```bash
217
- borg setup
218
- ```
115
+ Borg can remove repeated approval prompts for its own coordination tools. It
116
+ does not approve shell commands, file operations, or web access.
219
117
 
220
- 2. Open a repo and assimilate the first drone.
118
+ Claude Code receives Borg's MCP tool allowlist at launch. For Codex and OpenCode,
119
+ Borg checks the effective configuration and asks before applying launch-only
120
+ permission changes. Declining leaves the agent's configuration unchanged.
121
+ `borg setup` can show the corresponding persistent configuration snippets.
221
122
 
222
- ```bash
223
- cd ~/code/my-app
224
- borg assimilate --cli claude
225
- ```
123
+ ## Core MCP Tools
226
124
 
227
- 3. Open a second terminal in the same repo and assimilate another drone.
125
+ After assimilation, the agent session can use these tools:
228
126
 
229
- ```bash
230
- cd ~/code/my-app
231
- borg assimilate code-reviewer
232
- ```
127
+ - `borg_regen` refreshes cube context, role instructions, and roster state.
128
+ - `borg_log` posts to the shared activity log; `borg_read-log` reads it.
129
+ - `borg_ack` acknowledges a routed entry without posting another log message.
130
+ - `borg_roster` lists drones and liveness markers.
131
+ - `borg_stream-status` diagnoses the wake-up path.
132
+ - `borg_cube`, `borg_role`, and `borg_whoami` inspect the current identity.
133
+ - `borg_create-cube` creates a cube; `borg_update-cube` updates its directive or
134
+ message taxonomy.
135
+ - `borg_delete-cube` deletes a cube after explicit confirmation of its exact
136
+ cube ID.
137
+ - `borg_create-role`, `borg_update-role`, and `borg_reassign-drone` manage roles
138
+ and assignments.
139
+ - `borg_apply-template`, `borg_sync-roles`, and `borg_patch-taxonomy-class`
140
+ maintain role and message-taxonomy templates.
233
141
 
234
- Two sessions of the same agent CLI work fine. Add `--cli codex` or
235
- `--cli claude` only when you want to choose explicitly.
142
+ The available tools are also discoverable from the agent's MCP tool list.
236
143
 
237
- 4. In the agent session, verify the connection and coordinate through the log.
238
-
239
- ```text
240
- borg_whoami
241
- borg_roster
242
- borg_log "STARTING: review feat/login"
243
- ```
244
-
245
- ## Troubleshooting
246
-
247
- ### Authentication expired
144
+ ## Update
248
145
 
249
- Run setup again:
146
+ For npm-global installations, update the client and an installed local server
147
+ together:
250
148
 
251
149
  ```bash
252
- borg setup
150
+ borg update
253
151
  ```
254
152
 
255
- ### Both Claude Code and Codex are installed
256
-
257
- Choose one:
153
+ Borg checks that compatible client and server versions are available, asks for
154
+ confirmation, and reports any manual recovery step. Use `borg update --yes` for
155
+ a non-interactive update. A server that was stopped remains stopped, and active
156
+ agent sessions must be restarted after the client changes.
258
157
 
259
- ```bash
260
- borg --cli claude
261
- borg --cli codex
262
- borg assimilate --cli claude
263
- borg assimilate --cli codex
264
- ```
158
+ ## Troubleshooting
265
159
 
266
160
  ### Not connected to a cube
267
161
 
268
- Run assimilation from your project repo:
162
+ Run assimilation from the project repository:
269
163
 
270
164
  ```bash
271
165
  borg assimilate
272
166
  ```
273
167
 
274
- Then ask the agent for `borg_whoami` and `borg_roster` to verify the connection.
275
-
276
- ### Wake path warning
277
-
278
- If `borg_regen` or `borg_stream-status` reports a broken wake path, follow the
279
- CLI-specific recovery it prints:
280
-
281
- - Claude Code: arm the inbox monitor command. The monitor wakes the agent
282
- session when another drone posts to the cube. The printed command includes
283
- its required worktree-local `--state-root`; keep that value intact so the
284
- config inbox can remain read-only and monitor runtime files do not dirty Git.
285
- If it reports a stale legacy `.monitor.pid` or `.monitor.heartbeat`, confirm
286
- the old Monitor has stopped, remove those legacy files, and arm the printed
287
- command again; the new Monitor deliberately never deletes them automatically.
288
- - Codex: check the remote-control socket status, relaunch with `borg --cli codex`
289
- or `borg assimilate --cli codex` if needed, and run `borg_regen` manually when
290
- returning to the session if no wake arrived.
168
+ Then use `borg_whoami` and `borg_roster` inside the agent session.
291
169
 
292
- ## Development
170
+ ### Wake-up warning
293
171
 
294
- From the standalone repository root:
295
-
296
- ```bash
297
- npm ci --ignore-scripts
298
- npm run check
299
- npm test
300
- npm run build
301
- npm run onboarding:smoke
302
- ```
303
-
304
- To install and exercise the reviewed checkout globally:
305
-
306
- ```bash
307
- npm install -g .
308
- ```
172
+ If `borg_regen` or `borg_stream-status` reports a wake-up problem, follow the
173
+ recovery command it prints. For Codex or OpenCode, relaunch through `borg` if the
174
+ agent's local control connection is no longer available.
309
175
 
310
176
  ## License
311
177
 
312
- Licensed under Apache-2.0. See [LICENSE](./LICENSE) and [NOTICE](./NOTICE).
178
+ Licensed under Apache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
313
179
 
314
180
  ## Links
315
181
 
316
- - Client repository: <https://github.com/Byte-Ventures/borg-mcp-client>
317
- - Shared contracts: <https://github.com/Byte-Ventures/borg-mcp-shared>
318
- - Self-hosted server: <https://github.com/Byte-Ventures/borg-mcp-server>
319
- - Issues: <https://github.com/Byte-Ventures/borg-mcp-client/issues>
182
+ - [Client repository](https://github.com/Byte-Ventures/borg-mcp-client)
183
+ - [Shared contracts](https://github.com/Byte-Ventures/borg-mcp-shared)
184
+ - [Self-hosted server](https://github.com/Byte-Ventures/borg-mcp-server)
185
+ - [Issue tracker](https://github.com/Byte-Ventures/borg-mcp-client/issues)
@@ -152,6 +152,7 @@ export interface AssimilateDeps {
152
152
  detectLocalServer: () => Promise<string | null>;
153
153
  connectServer: (apiUrl: string, enrollment?: {
154
154
  invitation: string;
155
+ confirmReplacement?: () => Promise<boolean>;
155
156
  }) => Promise<{
156
157
  token: string;
157
158
  trustIdentity: string;
@@ -1 +1 @@
1
- {"version":3,"file":"assimilate-cmd.d.ts","sourceRoot":"","sources":["../src/assimilate-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assimilate-cmd.d.ts","sourceRoot":"","sources":["../src/assimilate-cmd.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,10 @@ function affirmative(answer) {
35
35
  const normalized = answer.trim().toLowerCase();
36
36
  return normalized === '' || normalized === 'y' || normalized === 'yes';
37
37
  }
38
+ function strictAffirmative(answer) {
39
+ const normalized = answer.trim().toLowerCase();
40
+ return normalized === 'y' || normalized === 'yes';
41
+ }
38
42
  async function selectAssimilationAuthority(flags, deps, mode) {
39
43
  if (flags.server !== undefined) {
40
44
  try {
@@ -125,6 +129,12 @@ function reportServerFailure(deps, apiUrl, error, enroll = false, mode = 'assimi
125
129
  `${localAssimilateCommand(apiUrl, true, mode)} from the operator’s terminal.\n`);
126
130
  return 1;
127
131
  }
132
+ if (error instanceof BorgServerError && error.code === 'LOCAL_CREDENTIAL_EXISTS') {
133
+ deps.stderr(`A local enrollment for ${apiUrl} already exists and was not replaced. ` +
134
+ `Re-run ${localAssimilateCommand(apiUrl, true, mode)} and explicitly confirm replacement ` +
135
+ 'only if the first enrolled client should be abandoned.\n');
136
+ return 1;
137
+ }
128
138
  if (error instanceof LegacySessionCredentialCollisionError) {
129
139
  const recovery = mode === 'cube-init'
130
140
  ? localAssimilateCommand(error.origin, true, mode)
@@ -331,7 +341,11 @@ export async function runAssimilate(args, deps) {
331
341
  return 1;
332
342
  }
333
343
  try {
334
- serverAuth = await deps.connectServer(authority.apiUrl, { invitation });
344
+ serverAuth = await deps.connectServer(authority.apiUrl, {
345
+ invitation,
346
+ confirmReplacement: async () => strictAffirmative(await deps.prompt(`A local enrollment for ${authority.apiUrl} already exists. Replacing it will orphan ` +
347
+ 'the first enrolled client. Replace it? [y/N]: ')),
348
+ });
335
349
  }
336
350
  finally {
337
351
  // Strings cannot be zeroized in JavaScript, but drop this command's
@@ -995,7 +1009,7 @@ export async function runAssimilate(args, deps) {
995
1009
  if (registeredWorktrees === null) {
996
1010
  deps.stderr('Borg could not enumerate this repository’s existing worktrees, so it did not risk creating a colliding sibling.\n' +
997
1011
  'Run `git worktree list` from this repository and resolve the reported Git error, then rerun `borg assimilate`.\n' +
998
- 'A seat was reserved and remains pending; rerunning after fixing the worktree issue resumes that seat.\n');
1012
+ 'A local drone reservation was created and remains pending; rerunning after fixing the worktree issue resumes that reservation.\n');
999
1013
  return 1;
1000
1014
  }
1001
1015
  let candidate = computeWorktreePath(homeDir, repoBase, suffix);
@@ -1061,11 +1075,11 @@ export async function runAssimilate(args, deps) {
1061
1075
  ? `Git left branch ${residualBranch} without a registered worktree; Borg preserved it.\n`
1062
1076
  : '') +
1063
1077
  'Run `git worktree list` and `git status` to inspect repository state, resolve the reported Git error, then rerun `borg assimilate`.\n' +
1064
- 'A seat was reserved and remains pending; rerunning after fixing the worktree issue resumes that seat.\n');
1078
+ 'A local drone reservation was created and remains pending; rerunning after fixing the worktree issue resumes that reservation.\n');
1065
1079
  return 1;
1066
1080
  }
1067
1081
  deps.stderr(`spawned sibling worktree at ${candidate} on branch ${wtBranch} (${startRef}); ` +
1068
- `the original dir keeps its active seat — run \`borg reset-local-seat\` there if that binding is stale.\n`);
1082
+ `the original dir keeps its active drone binding — run \`borg reset-local-seat\` there if that binding is stale.\n`);
1069
1083
  deps.chdir(candidate);
1070
1084
  deps.stderr(renderWorktreeSteeringNote(candidate, wtBranch, projectRoot));
1071
1085
  spawnedWorktreePath = deps.cwd();