borgmcp 2.9.0 → 2.10.2
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/dist/assimilate-cmd.d.ts +13 -0
- package/dist/assimilate-cmd.d.ts.map +1 -1
- package/dist/assimilate-cmd.js +177 -11
- package/dist/assimilate-cmd.js.map +1 -1
- package/dist/assimilate-deps.d.ts.map +1 -1
- package/dist/assimilate-deps.js +26 -1
- package/dist/assimilate-deps.js.map +1 -1
- package/dist/assimilate-welcome.d.ts.map +1 -1
- package/dist/assimilate-welcome.js +1 -0
- package/dist/assimilate-welcome.js.map +1 -1
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +27 -0
- package/dist/claude.js.map +1 -1
- package/dist/cli-help.d.ts +1 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +13 -0
- package/dist/cli-help.js.map +1 -1
- package/dist/config.d.ts +11 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +169 -13
- package/dist/config.js.map +1 -1
- package/dist/invitation-artifact.d.ts +33 -0
- package/dist/invitation-artifact.d.ts.map +1 -0
- package/dist/invitation-artifact.js +89 -0
- package/dist/invitation-artifact.js.map +1 -0
- package/dist/launch-gate.d.ts +5 -4
- package/dist/launch-gate.d.ts.map +1 -1
- package/dist/launch-gate.js +7 -8
- package/dist/launch-gate.js.map +1 -1
- package/dist/parse-assimilate-args.d.ts.map +1 -1
- package/dist/parse-assimilate-args.js +9 -3
- package/dist/parse-assimilate-args.js.map +1 -1
- package/dist/recover-enrollment-cmd.d.ts +17 -0
- package/dist/recover-enrollment-cmd.d.ts.map +1 -0
- package/dist/recover-enrollment-cmd.js +62 -0
- package/dist/recover-enrollment-cmd.js.map +1 -0
- package/dist/regen-format.d.ts +9 -0
- package/dist/regen-format.d.ts.map +1 -1
- package/dist/regen-format.js +15 -0
- package/dist/regen-format.js.map +1 -1
- package/dist/regen.js +27 -3
- package/dist/regen.js.map +1 -1
- package/dist/seat-store.d.ts.map +1 -1
- package/dist/seat-store.js +7 -0
- package/dist/seat-store.js.map +1 -1
- package/dist/server-facade.d.ts +1 -1
- package/dist/server-facade.d.ts.map +1 -1
- package/dist/server-facade.js +13 -2
- package/dist/server-facade.js.map +1 -1
- package/dist/server-handshake.d.ts +19 -3
- package/dist/server-handshake.d.ts.map +1 -1
- package/dist/server-handshake.js +86 -9
- package/dist/server-handshake.js.map +1 -1
- package/dist/server-trust.d.ts +8 -0
- package/dist/server-trust.d.ts.map +1 -1
- package/dist/server-trust.js +165 -5
- package/dist/server-trust.js.map +1 -1
- package/dist/token-store.d.ts +3 -0
- package/dist/token-store.d.ts.map +1 -1
- package/dist/token-store.js +2 -0
- package/dist/token-store.js.map +1 -1
- package/dist/unknown-subcommand.d.ts +1 -1
- package/dist/unknown-subcommand.d.ts.map +1 -1
- package/dist/unknown-subcommand.js +1 -0
- package/dist/unknown-subcommand.js.map +1 -1
- package/docs/EXTRACTION_PROVENANCE.md +11 -7
- package/docs/LOCAL_SERVER.md +12 -3
- package/docs/RELEASING.md +47 -7
- package/package.json +2 -2
- package/src/assimilate-cmd.ts +231 -26
- package/src/assimilate-deps.ts +26 -0
- package/src/assimilate-welcome.ts +1 -0
- package/src/claude.ts +22 -0
- package/src/cli-help.ts +16 -0
- package/src/config.ts +165 -10
- package/src/invitation-artifact.ts +116 -0
- package/src/launch-gate.ts +7 -8
- package/src/parse-assimilate-args.ts +11 -4
- package/src/recover-enrollment-cmd.ts +63 -0
- package/src/regen-format.ts +25 -0
- package/src/regen.ts +30 -2
- package/src/seat-store.ts +6 -0
- package/src/server-facade.ts +13 -2
- package/src/server-handshake.ts +113 -6
- package/src/server-trust.ts +180 -5
- package/src/token-store.ts +5 -0
- package/src/unknown-subcommand.ts +1 -0
package/dist/config.js
CHANGED
|
@@ -151,13 +151,59 @@ export function __setServerCredentialBackendForTest(backend) {
|
|
|
151
151
|
* invoke this directly so they do not re-acquire (and self-deadlock on) the single
|
|
152
152
|
* store lock; the public storeServerCredential wraps it in one lock hold.
|
|
153
153
|
*/
|
|
154
|
-
async function writeServerCredentialRecord(backend, record) {
|
|
154
|
+
async function writeServerCredentialRecord(backend, record, allowReplacement = false) {
|
|
155
155
|
validateServerCredentialBinding(record.origin, record.trustIdentity);
|
|
156
156
|
validateEnrollmentCredential(record.credential);
|
|
157
157
|
if (record.clientId !== undefined && record.clientId !== null) {
|
|
158
158
|
validateUuid(record.clientId, 'client identity');
|
|
159
159
|
}
|
|
160
160
|
const serverCapabilities = validateServerCapabilities(record.serverCapabilities ?? []);
|
|
161
|
+
const targetAccount = serverCredentialAccount(record.origin, record.trustIdentity);
|
|
162
|
+
const exactExisting = await backend.get(targetAccount);
|
|
163
|
+
if (exactExisting !== null && !allowReplacement) {
|
|
164
|
+
throw new Error('local Borg server enrollment already exists for this origin and replacement was not confirmed');
|
|
165
|
+
}
|
|
166
|
+
if (backend.entries) {
|
|
167
|
+
const accounts = await backend.entries();
|
|
168
|
+
const conflicts = Object.entries(accounts).filter(([account, value]) => {
|
|
169
|
+
try {
|
|
170
|
+
const parsed = JSON.parse(value);
|
|
171
|
+
return parsed.version === SERVER_CREDENTIAL_RECORD_VERSION && parsed.origin === record.origin;
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
if (conflicts.length > 0 && !allowReplacement) {
|
|
178
|
+
throw new Error('local Borg server enrollment already exists for this origin and replacement was not confirmed');
|
|
179
|
+
}
|
|
180
|
+
if (allowReplacement && conflicts.length > 0) {
|
|
181
|
+
const target = targetAccount;
|
|
182
|
+
const value = JSON.stringify({
|
|
183
|
+
version: SERVER_CREDENTIAL_RECORD_VERSION,
|
|
184
|
+
origin: record.origin,
|
|
185
|
+
trustIdentity: record.trustIdentity,
|
|
186
|
+
credential: record.credential,
|
|
187
|
+
clientId: record.clientId ?? null,
|
|
188
|
+
serverCapabilities,
|
|
189
|
+
});
|
|
190
|
+
if (backend.replaceAccounts) {
|
|
191
|
+
const next = { ...accounts };
|
|
192
|
+
for (const [account] of conflicts)
|
|
193
|
+
delete next[account];
|
|
194
|
+
next[target] = value;
|
|
195
|
+
await backend.replaceAccounts(next);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
// Set first so an injected write failure cannot remove the prior record.
|
|
199
|
+
await backend.set(target, value);
|
|
200
|
+
for (const [account] of conflicts) {
|
|
201
|
+
if (account !== target)
|
|
202
|
+
await backend.delete(account);
|
|
203
|
+
}
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
161
207
|
await backend.set(serverCredentialAccount(record.origin, record.trustIdentity), JSON.stringify({
|
|
162
208
|
version: SERVER_CREDENTIAL_RECORD_VERSION,
|
|
163
209
|
origin: record.origin,
|
|
@@ -167,6 +213,16 @@ async function writeServerCredentialRecord(backend, record) {
|
|
|
167
213
|
serverCapabilities,
|
|
168
214
|
}));
|
|
169
215
|
}
|
|
216
|
+
function encodeServerCredentialRecord(record, serverCapabilities) {
|
|
217
|
+
return JSON.stringify({
|
|
218
|
+
version: SERVER_CREDENTIAL_RECORD_VERSION,
|
|
219
|
+
origin: record.origin,
|
|
220
|
+
trustIdentity: record.trustIdentity,
|
|
221
|
+
credential: record.credential,
|
|
222
|
+
clientId: record.clientId ?? null,
|
|
223
|
+
serverCapabilities,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
170
226
|
/**
|
|
171
227
|
* Persist one self-hosted server credential in the dedicated 0600 credential store.
|
|
172
228
|
*
|
|
@@ -177,9 +233,9 @@ async function writeServerCredentialRecord(backend, record) {
|
|
|
177
233
|
* not credential sources. CR3b: the load→set→rename runs inside ONE hold of the
|
|
178
234
|
* single store lock so a concurrent writer cannot lose an unrelated account.
|
|
179
235
|
*/
|
|
180
|
-
export async function storeServerCredential(record) {
|
|
236
|
+
export async function storeServerCredential(record, options = {}) {
|
|
181
237
|
const backend = await getServerCredentialBackend();
|
|
182
|
-
await withCredentialStoreLock(() => writeServerCredentialRecord(backend, record));
|
|
238
|
+
await withCredentialStoreLock(() => writeServerCredentialRecord(backend, record, options.allowReplacement === true));
|
|
183
239
|
}
|
|
184
240
|
/** Read an authority-bound active client record, failing closed on corruption. */
|
|
185
241
|
export async function getServerCredentialRecord(origin, trustIdentity) {
|
|
@@ -222,6 +278,21 @@ export async function getServerCredentialRecord(origin, trustIdentity) {
|
|
|
222
278
|
export async function getServerCredential(origin, trustIdentity) {
|
|
223
279
|
return (await getServerCredentialRecord(origin, trustIdentity))?.credential ?? null;
|
|
224
280
|
}
|
|
281
|
+
export async function hasServerCredentialForOrigin(origin) {
|
|
282
|
+
const backend = await getServerCredentialBackend();
|
|
283
|
+
if (!backend.entries)
|
|
284
|
+
return false;
|
|
285
|
+
const accounts = await backend.entries();
|
|
286
|
+
return Object.values(accounts).some((value) => {
|
|
287
|
+
try {
|
|
288
|
+
const record = JSON.parse(value);
|
|
289
|
+
return record.version === SERVER_CREDENTIAL_RECORD_VERSION && record.origin === origin;
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
225
296
|
function decodePendingServerEnrollment(stored, origin, trustIdentity) {
|
|
226
297
|
const record = JSON.parse(stored);
|
|
227
298
|
if (record.version !== SERVER_PENDING_ENROLLMENT_RECORD_VERSION ||
|
|
@@ -231,7 +302,8 @@ function decodePendingServerEnrollment(stored, origin, trustIdentity) {
|
|
|
231
302
|
typeof record.invitation !== 'string' ||
|
|
232
303
|
typeof record.retryKey !== 'string' || !UUID_RE.test(record.retryKey) ||
|
|
233
304
|
typeof record.credential !== 'string' || !/^[A-Za-z0-9_-]{43}$/.test(record.credential) ||
|
|
234
|
-
(record.clientName !== undefined && typeof record.clientName !== 'string')
|
|
305
|
+
(record.clientName !== undefined && typeof record.clientName !== 'string')
|
|
306
|
+
|| (record.replacementCapability !== undefined && !UUID_RE.test(record.replacementCapability))) {
|
|
235
307
|
throw new Error('invalid');
|
|
236
308
|
}
|
|
237
309
|
validateInvitation(record.invitation);
|
|
@@ -243,6 +315,7 @@ function decodePendingServerEnrollment(stored, origin, trustIdentity) {
|
|
|
243
315
|
retryKey: record.retryKey,
|
|
244
316
|
credential: record.credential,
|
|
245
317
|
...(record.clientName === undefined ? {} : { clientName: record.clientName }),
|
|
318
|
+
...(record.replacementCapability === undefined ? {} : { replacementCapability: record.replacementCapability }),
|
|
246
319
|
};
|
|
247
320
|
}
|
|
248
321
|
/** Load an exact durable PENDING tuple so a new process can resume it. */
|
|
@@ -262,6 +335,31 @@ export async function getPendingServerEnrollment(origin, trustIdentity) {
|
|
|
262
335
|
}
|
|
263
336
|
});
|
|
264
337
|
}
|
|
338
|
+
/** Find the sole pending enrollment so artifact-only retries need no invitation. */
|
|
339
|
+
export async function findPendingServerEnrollment() {
|
|
340
|
+
const backend = await getServerCredentialBackend();
|
|
341
|
+
if (!backend.entries)
|
|
342
|
+
return null;
|
|
343
|
+
return withCredentialStoreLock(async () => {
|
|
344
|
+
const matches = [];
|
|
345
|
+
for (const value of Object.values(await backend.entries())) {
|
|
346
|
+
try {
|
|
347
|
+
const raw = JSON.parse(value);
|
|
348
|
+
if (raw.version !== SERVER_PENDING_ENROLLMENT_RECORD_VERSION || raw.state !== 'pending')
|
|
349
|
+
continue;
|
|
350
|
+
if (typeof raw.origin !== 'string' || typeof raw.trustIdentity !== 'string')
|
|
351
|
+
continue;
|
|
352
|
+
matches.push(decodePendingServerEnrollment(value, raw.origin, raw.trustIdentity));
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
// Ignore unrelated or corrupt records; the keyed resume path remains fail-closed.
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
if (matches.length > 1)
|
|
359
|
+
throw new Error('multiple pending Borg server enrollments require an explicit server endpoint');
|
|
360
|
+
return matches[0] ?? null;
|
|
361
|
+
});
|
|
362
|
+
}
|
|
265
363
|
/**
|
|
266
364
|
* Generate and persist an exact enrollment tuple before network I/O. A
|
|
267
365
|
* pre-existing PENDING tuple must match the invitation and presentation name;
|
|
@@ -271,6 +369,8 @@ export async function getOrCreatePendingServerEnrollment(input) {
|
|
|
271
369
|
validateServerCredentialBinding(input.origin, input.trustIdentity);
|
|
272
370
|
validateInvitation(input.invitation);
|
|
273
371
|
validateClientName(input.clientName);
|
|
372
|
+
if (input.replacementCapability !== undefined)
|
|
373
|
+
validateUuid(input.replacementCapability, 'replacement capability');
|
|
274
374
|
const backend = await getServerCredentialBackend();
|
|
275
375
|
const account = serverPendingEnrollmentAccount(input.origin, input.trustIdentity);
|
|
276
376
|
return withCredentialStoreLock(async () => {
|
|
@@ -279,7 +379,8 @@ export async function getOrCreatePendingServerEnrollment(input) {
|
|
|
279
379
|
try {
|
|
280
380
|
const record = decodePendingServerEnrollment(stored, input.origin, input.trustIdentity);
|
|
281
381
|
if (record.invitation !== input.invitation ||
|
|
282
|
-
record.clientName !== input.clientName
|
|
382
|
+
record.clientName !== input.clientName
|
|
383
|
+
|| record.replacementCapability !== input.replacementCapability) {
|
|
283
384
|
throw new Error('mismatch');
|
|
284
385
|
}
|
|
285
386
|
return record;
|
|
@@ -295,6 +396,7 @@ export async function getOrCreatePendingServerEnrollment(input) {
|
|
|
295
396
|
retryKey: randomUUID(),
|
|
296
397
|
credential: randomBytes(32).toString('base64url'),
|
|
297
398
|
...(input.clientName === undefined ? {} : { clientName: input.clientName }),
|
|
399
|
+
...(input.replacementCapability === undefined ? {} : { replacementCapability: input.replacementCapability }),
|
|
298
400
|
};
|
|
299
401
|
validateEnrollmentCredential(record.credential);
|
|
300
402
|
await backend.set(account, JSON.stringify({
|
|
@@ -320,26 +422,61 @@ export async function activatePendingServerEnrollment(input) {
|
|
|
320
422
|
throw new Error('pending Borg server enrollment is missing');
|
|
321
423
|
try {
|
|
322
424
|
const pending = decodePendingServerEnrollment(stored, input.origin, input.trustIdentity);
|
|
323
|
-
if (pending.retryKey !== input.retryKey || pending.credential !== input.credential
|
|
425
|
+
if (pending.retryKey !== input.retryKey || pending.credential !== input.credential ||
|
|
426
|
+
pending.replacementCapability !== input.replacementCapability) {
|
|
324
427
|
throw new Error('mismatch');
|
|
325
428
|
}
|
|
326
429
|
}
|
|
327
430
|
catch {
|
|
328
431
|
throw new Error('pending Borg server enrollment does not match the verified response');
|
|
329
432
|
}
|
|
330
|
-
if (!input.allowReplacement
|
|
331
|
-
|
|
433
|
+
if (!input.allowReplacement) {
|
|
434
|
+
const existing = backend.entries
|
|
435
|
+
? Object.values(await backend.entries()).some((value) => {
|
|
436
|
+
try {
|
|
437
|
+
const record = JSON.parse(value);
|
|
438
|
+
return record.version === SERVER_CREDENTIAL_RECORD_VERSION && record.origin === input.origin;
|
|
439
|
+
}
|
|
440
|
+
catch {
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
443
|
+
})
|
|
444
|
+
: await backend.get(serverCredentialAccount(input.origin, input.trustIdentity)) !== null;
|
|
445
|
+
if (existing)
|
|
446
|
+
throw new Error('local Borg server enrollment already exists');
|
|
332
447
|
}
|
|
333
|
-
|
|
334
|
-
// not re-acquire (and self-deadlock on) CREDENTIALS_LOCK (CR3b).
|
|
335
|
-
await writeServerCredentialRecord(backend, {
|
|
448
|
+
const activeRecord = {
|
|
336
449
|
origin: input.origin,
|
|
337
450
|
trustIdentity: input.trustIdentity,
|
|
338
451
|
credential: input.credential,
|
|
339
452
|
clientId: input.clientId,
|
|
340
453
|
serverCapabilities,
|
|
341
|
-
}
|
|
342
|
-
|
|
454
|
+
};
|
|
455
|
+
// Replace the active record and retire the pending tuple in one account-map
|
|
456
|
+
// write. A failed map write therefore preserves the old active + pending state.
|
|
457
|
+
if (backend.entries && backend.replaceAccounts) {
|
|
458
|
+
const accounts = await backend.entries();
|
|
459
|
+
const target = serverCredentialAccount(input.origin, input.trustIdentity);
|
|
460
|
+
const next = { ...accounts };
|
|
461
|
+
for (const [account, value] of Object.entries(accounts)) {
|
|
462
|
+
try {
|
|
463
|
+
const parsed = JSON.parse(value);
|
|
464
|
+
if (parsed.version === SERVER_CREDENTIAL_RECORD_VERSION && parsed.origin === input.origin) {
|
|
465
|
+
delete next[account];
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
catch {
|
|
469
|
+
// Preserve unrelated malformed records; the backend's normal validation remains fail-closed.
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
next[target] = encodeServerCredentialRecord(activeRecord, serverCapabilities);
|
|
473
|
+
delete next[pendingAccount];
|
|
474
|
+
await backend.replaceAccounts(next);
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
await writeServerCredentialRecord(backend, activeRecord, input.allowReplacement === true);
|
|
478
|
+
await backend.delete(pendingAccount);
|
|
479
|
+
}
|
|
343
480
|
});
|
|
344
481
|
}
|
|
345
482
|
/** Delete only the exact definitively rejected pending attempt. */
|
|
@@ -466,4 +603,23 @@ export async function clearServerCredential(origin, trustIdentity) {
|
|
|
466
603
|
await backend.delete(pendingAccount);
|
|
467
604
|
});
|
|
468
605
|
}
|
|
606
|
+
/** Clear only the failed enrollment transaction for one origin/identity. */
|
|
607
|
+
export async function clearEnrollmentTransaction(origin, trustIdentity) {
|
|
608
|
+
validateServerCredentialBinding(origin, trustIdentity);
|
|
609
|
+
const backend = await getServerCredentialBackend();
|
|
610
|
+
const pendingAccount = serverPendingEnrollmentAccount(origin, trustIdentity);
|
|
611
|
+
const credentialAccount = serverCredentialAccount(origin, trustIdentity);
|
|
612
|
+
await withCredentialStoreLock(async () => {
|
|
613
|
+
if (backend.entries && backend.replaceAccounts) {
|
|
614
|
+
const accounts = await backend.entries();
|
|
615
|
+
const next = { ...accounts };
|
|
616
|
+
delete next[pendingAccount];
|
|
617
|
+
delete next[credentialAccount];
|
|
618
|
+
await backend.replaceAccounts(next);
|
|
619
|
+
return;
|
|
620
|
+
}
|
|
621
|
+
await backend.delete(pendingAccount);
|
|
622
|
+
await backend.delete(credentialAccount);
|
|
623
|
+
});
|
|
624
|
+
}
|
|
469
625
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type InvitationArtifact } from 'borgmcp-shared/protocol';
|
|
2
|
+
export declare const COMPATIBILITY_INVITATION_ERROR = "This server did not present the certificate chain required for cross-machine enrollment. Update the Borg server on that machine and restart it, then run this command again. No invitation or credential was sent and no local trust or credential state was changed.";
|
|
3
|
+
export declare const TRUST_INVITATION_ERROR = "Borg could not verify the server identity named by this invitation. No invitation or credential was sent and no local trust or credential state was changed. Ask the server operator for a current invitation, then retry.";
|
|
4
|
+
export declare const FORMAT_INVITATION_ERROR = "This enrollment invitation is invalid or incomplete. No invitation or credential was sent and no local trust or credential state was changed. Ask the server operator for a new invitation, then retry.";
|
|
5
|
+
export declare const TRANSPORT_INVITATION_ERROR = "Borg could not reach the server named by this invitation. No invitation or credential was sent and no local trust or credential state was changed. Check that the server is running and that this machine can reach the invitation endpoint, then retry.";
|
|
6
|
+
export declare const STORAGE_INVITATION_ERROR = "Borg could not prepare local trust state for this invitation. No invitation or credential was sent and no local trust or credential state was changed. Check that Borg can write its private local state, then retry.";
|
|
7
|
+
export declare const RECOVERY_INVITATION_ERROR = "Borg could not complete or undo the enrollment change. Prior local access may be unavailable. Run `borg recover-enrollment` to clear only this server enrollment transaction. The invitation used for this attempt has been consumed; after recovery, ask the server operator for a fresh invitation and retry.";
|
|
8
|
+
export declare class InvitationArtifactCompatibilityError extends Error {
|
|
9
|
+
constructor(message?: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class InvitationArtifactLegacyError extends Error {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
export declare class InvitationArtifactFormatError extends Error {
|
|
15
|
+
constructor(message?: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class InvitationArtifactEndpointMismatchError extends Error {
|
|
18
|
+
constructor(selectedEndpoint: string, invitationEndpoint: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class InvitationArtifactStorageError extends Error {
|
|
21
|
+
constructor(message?: string);
|
|
22
|
+
}
|
|
23
|
+
export declare class InvitationArtifactRecoveryError extends Error {
|
|
24
|
+
constructor(message?: string);
|
|
25
|
+
}
|
|
26
|
+
export declare class InvitationArtifactTransportError extends Error {
|
|
27
|
+
constructor(message?: string);
|
|
28
|
+
}
|
|
29
|
+
export declare class InvitationArtifactTrustError extends Error {
|
|
30
|
+
constructor(message?: string);
|
|
31
|
+
}
|
|
32
|
+
export declare function decodeAndVerifyInvitationArtifact(value: unknown): InvitationArtifact;
|
|
33
|
+
//# sourceMappingURL=invitation-artifact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invitation-artifact.d.ts","sourceRoot":"","sources":["../src/invitation-artifact.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,8BAA8B,0QAC8N,CAAC;AAE1Q,eAAO,MAAM,sBAAsB,+NAC2L,CAAC;AAE/N,eAAO,MAAM,uBAAuB,4MACuK,CAAC;AAE5M,eAAO,MAAM,0BAA0B,6PACqN,CAAC;AAE7P,eAAO,MAAM,wBAAwB,0NACoL,CAAC;AAE1N,eAAO,MAAM,yBAAyB,oTAC6Q,CAAC;AAEpT,qBAAa,oCAAqC,SAAQ,KAAK;gBACjD,OAAO,SAAiC;CAIrD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAOvD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,OAAO,SAA0B;CAI9C;AAED,qBAAa,uCAAwC,SAAQ,KAAK;gBACpD,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM;CAMjE;AAED,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,OAAO,SAA2B;CAI/C;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,OAAO,SAA4B;CAIhD;AAED,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,OAAO,SAA6B;CAIjD;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,OAAO,SAAyB;CAI7C;AAWD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAoBpF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
2
|
+
import { decodeInvitationArtifact, encodeInvitationArtifact, getInvitationArtifactIntegrityInput, } from 'borgmcp-shared/protocol';
|
|
3
|
+
export const COMPATIBILITY_INVITATION_ERROR = 'This server did not present the certificate chain required for cross-machine enrollment. Update the Borg server on that machine and restart it, then run this command again. No invitation or credential was sent and no local trust or credential state was changed.';
|
|
4
|
+
export const TRUST_INVITATION_ERROR = 'Borg could not verify the server identity named by this invitation. No invitation or credential was sent and no local trust or credential state was changed. Ask the server operator for a current invitation, then retry.';
|
|
5
|
+
export const FORMAT_INVITATION_ERROR = 'This enrollment invitation is invalid or incomplete. No invitation or credential was sent and no local trust or credential state was changed. Ask the server operator for a new invitation, then retry.';
|
|
6
|
+
export const TRANSPORT_INVITATION_ERROR = 'Borg could not reach the server named by this invitation. No invitation or credential was sent and no local trust or credential state was changed. Check that the server is running and that this machine can reach the invitation endpoint, then retry.';
|
|
7
|
+
export const STORAGE_INVITATION_ERROR = 'Borg could not prepare local trust state for this invitation. No invitation or credential was sent and no local trust or credential state was changed. Check that Borg can write its private local state, then retry.';
|
|
8
|
+
export const RECOVERY_INVITATION_ERROR = 'Borg could not complete or undo the enrollment change. Prior local access may be unavailable. Run `borg recover-enrollment` to clear only this server enrollment transaction. The invitation used for this attempt has been consumed; after recovery, ask the server operator for a fresh invitation and retry.';
|
|
9
|
+
export class InvitationArtifactCompatibilityError extends Error {
|
|
10
|
+
constructor(message = COMPATIBILITY_INVITATION_ERROR) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'InvitationArtifactCompatibilityError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class InvitationArtifactLegacyError extends Error {
|
|
16
|
+
constructor() {
|
|
17
|
+
super('This invitation uses an older format. Update the Borg server on that machine and restart it, then ask the server operator for a new invitation and retry. No invitation or credential was sent and no local trust or credential state was changed.');
|
|
18
|
+
this.name = 'InvitationArtifactLegacyError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class InvitationArtifactFormatError extends Error {
|
|
22
|
+
constructor(message = FORMAT_INVITATION_ERROR) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = 'InvitationArtifactFormatError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class InvitationArtifactEndpointMismatchError extends Error {
|
|
28
|
+
constructor(selectedEndpoint, invitationEndpoint) {
|
|
29
|
+
super(`The enrollment invitation endpoint (${invitationEndpoint}) does not match the selected \`--host\` (${selectedEndpoint}). No invitation or credential was sent and no local trust or credential state was changed. Omit \`--host\` or select the exact invitation endpoint, then retry.`);
|
|
30
|
+
this.name = 'InvitationArtifactEndpointMismatchError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class InvitationArtifactStorageError extends Error {
|
|
34
|
+
constructor(message = STORAGE_INVITATION_ERROR) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.name = 'InvitationArtifactStorageError';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class InvitationArtifactRecoveryError extends Error {
|
|
40
|
+
constructor(message = RECOVERY_INVITATION_ERROR) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.name = 'InvitationArtifactRecoveryError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class InvitationArtifactTransportError extends Error {
|
|
46
|
+
constructor(message = TRANSPORT_INVITATION_ERROR) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.name = 'InvitationArtifactTransportError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class InvitationArtifactTrustError extends Error {
|
|
52
|
+
constructor(message = TRUST_INVITATION_ERROR) {
|
|
53
|
+
super(message);
|
|
54
|
+
this.name = 'InvitationArtifactTrustError';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function invitationIntegrity(artifact) {
|
|
58
|
+
return createHmac('sha256', artifact.secret)
|
|
59
|
+
.update(getInvitationArtifactIntegrityInput({
|
|
60
|
+
...artifact,
|
|
61
|
+
integrity: 'p'.repeat(43),
|
|
62
|
+
}))
|
|
63
|
+
.digest('base64url');
|
|
64
|
+
}
|
|
65
|
+
export function decodeAndVerifyInvitationArtifact(value) {
|
|
66
|
+
let artifact;
|
|
67
|
+
try {
|
|
68
|
+
artifact = decodeInvitationArtifact(typeof value === 'string' ? value : encodeInvitationArtifact(value));
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const message = error instanceof Error ? error.message : '';
|
|
72
|
+
if (typeof value === 'string' && value.length === 43)
|
|
73
|
+
throw new InvitationArtifactLegacyError();
|
|
74
|
+
if (/legacy|unsupported/i.test(message))
|
|
75
|
+
throw new InvitationArtifactLegacyError();
|
|
76
|
+
if (/certificate chain/i.test(message))
|
|
77
|
+
throw new InvitationArtifactCompatibilityError();
|
|
78
|
+
throw new InvitationArtifactFormatError();
|
|
79
|
+
}
|
|
80
|
+
const expected = Buffer.from(invitationIntegrity(artifact), 'utf8');
|
|
81
|
+
const actual = Buffer.from(artifact.integrity, 'utf8');
|
|
82
|
+
if (expected.length !== actual.length || !timingSafeEqual(expected, actual)) {
|
|
83
|
+
if (typeof value === 'string' && value.length === 43)
|
|
84
|
+
throw new InvitationArtifactLegacyError();
|
|
85
|
+
throw new InvitationArtifactFormatError();
|
|
86
|
+
}
|
|
87
|
+
return artifact;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=invitation-artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invitation-artifact.js","sourceRoot":"","sources":["../src/invitation-artifact.ts"],"names":[],"mappings":"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"}
|
package/dist/launch-gate.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* 2. the borg-regen SessionStart hook bin — exit-0 no-op;
|
|
12
12
|
* 3. the borg-clear-rewake clear-only hook bin — exit-0 no-op;
|
|
13
13
|
* 4. the borg-log-audit UserPromptSubmit hook bin — exit-0 no-op.
|
|
14
|
-
* Result:
|
|
14
|
+
* Result: direct agent launches keep the Borg surface inactive; `borg`
|
|
15
15
|
* launches get the full surface.
|
|
16
16
|
*
|
|
17
17
|
* Codex (V2/V2b probes): codex does NOT forward parent env to MCP
|
|
@@ -32,12 +32,13 @@
|
|
|
32
32
|
* security boundary and is unchanged by this gate.
|
|
33
33
|
*/
|
|
34
34
|
export declare const BORG_SESSION_ENV = "BORG_SESSION";
|
|
35
|
+
/** Presence-based local opt-out for the plain-session launch reminder. */
|
|
36
|
+
export declare const BORG_LAUNCH_REMINDER_DISABLED_ENV = "BORG_DISABLE_LAUNCH_REMINDER";
|
|
35
37
|
/** True when this process runs inside a borg-launched session. */
|
|
36
38
|
export declare function isBorgSession(env?: NodeJS.ProcessEnv): boolean;
|
|
37
39
|
/**
|
|
38
|
-
* The non-silent per-tool notice a
|
|
39
|
-
*
|
|
40
|
-
* wrong with the cube — and points at the borg launch path.
|
|
40
|
+
* The non-silent per-tool notice a non-borg-launched session receives when
|
|
41
|
+
* invoking a borg_* tool. Outcome first; no CLI-specific or seat language.
|
|
41
42
|
*/
|
|
42
43
|
export declare function borgSessionToolNotice(toolName: string): string;
|
|
43
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-gate.d.ts","sourceRoot":"","sources":["../src/launch-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"launch-gate.d.ts","sourceRoot":"","sources":["../src/launch-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,0EAA0E;AAC1E,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAEhF,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE3E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAMnG"}
|
package/dist/launch-gate.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* 2. the borg-regen SessionStart hook bin — exit-0 no-op;
|
|
12
12
|
* 3. the borg-clear-rewake clear-only hook bin — exit-0 no-op;
|
|
13
13
|
* 4. the borg-log-audit UserPromptSubmit hook bin — exit-0 no-op.
|
|
14
|
-
* Result:
|
|
14
|
+
* Result: direct agent launches keep the Borg surface inactive; `borg`
|
|
15
15
|
* launches get the full surface.
|
|
16
16
|
*
|
|
17
17
|
* Codex (V2/V2b probes): codex does NOT forward parent env to MCP
|
|
@@ -34,20 +34,19 @@
|
|
|
34
34
|
import { envToggleOn } from './auth-env.js';
|
|
35
35
|
import { debugLog } from './debug.js';
|
|
36
36
|
export const BORG_SESSION_ENV = 'BORG_SESSION';
|
|
37
|
+
/** Presence-based local opt-out for the plain-session launch reminder. */
|
|
38
|
+
export const BORG_LAUNCH_REMINDER_DISABLED_ENV = 'BORG_DISABLE_LAUNCH_REMINDER';
|
|
37
39
|
/** True when this process runs inside a borg-launched session. */
|
|
38
40
|
export function isBorgSession(env = process.env) {
|
|
39
41
|
return envToggleOn(env[BORG_SESSION_ENV]);
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
|
-
* The non-silent per-tool notice a
|
|
43
|
-
*
|
|
44
|
-
* wrong with the cube — and points at the borg launch path.
|
|
44
|
+
* The non-silent per-tool notice a non-borg-launched session receives when
|
|
45
|
+
* invoking a borg_* tool. Outcome first; no CLI-specific or seat language.
|
|
45
46
|
*/
|
|
46
47
|
export function borgSessionToolNotice(toolName) {
|
|
47
|
-
return (`◼ ${toolName}
|
|
48
|
-
`
|
|
49
|
-
`re-launch from a terminal with \`borg\` (or \`borg assimilate\` to set up a seat first). ` +
|
|
50
|
-
`Power users can opt in manually by launching with BORG_SESSION=1.`);
|
|
48
|
+
return (`◼ ${toolName} did not run: Borg tools are inactive because this session was not ` +
|
|
49
|
+
`launched with \`borg\`. Relaunch this session with \`borg\` to use cube coordination.`);
|
|
51
50
|
}
|
|
52
51
|
/**
|
|
53
52
|
* The per-invocation codex config override that injects BORG_SESSION into
|
package/dist/launch-gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-gate.js","sourceRoot":"","sources":["../src/launch-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"launch-gate.js","sourceRoot":"","sources":["../src/launch-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAC/C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAEhF,kEAAkE;AAClE,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChE,OAAO,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO,CACL,KAAK,QAAQ,qEAAqE;QAClF,uFAAuF,CACxF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,IAAI,EAAE,wBAAwB,gBAAgB,MAAM,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,MAAyB,OAAO,CAAC,GAAG;IACxF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,gBAAgB,OAAO,sEAAsE,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-assimilate-args.d.ts","sourceRoot":"","sources":["../src/parse-assimilate-args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-assimilate-args.d.ts","sourceRoot":"","sources":["../src/parse-assimilate-args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,CAgHlE"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { validateName } from './name-validator.js';
|
|
2
|
+
const ENROLLMENT_POSITIONAL_INPUT_ERROR = 'That argument was not accepted. If you meant a role name, use lowercase letters, digits, hyphens, or underscores, up to 48 characters. If you meant an enrollment invitation, it must be entered at the hidden prompt — re-run the same command without it.';
|
|
1
3
|
/**
|
|
2
4
|
* Parse argv for `borg assimilate [role] [--worktree <n>] [--template <n>]
|
|
3
5
|
* [--no-template] [--cube-name <n>] [--host <host>] [--enroll] [--here] [--force] [--yes]`. The `assimilate`
|
|
@@ -6,6 +8,7 @@
|
|
|
6
8
|
export function parseAssimilateArgs(rawArgs) {
|
|
7
9
|
let role;
|
|
8
10
|
const flags = {};
|
|
11
|
+
const enrollmentRequested = rawArgs.includes('--enroll');
|
|
9
12
|
for (let i = 0; i < rawArgs.length; i += 1) {
|
|
10
13
|
const arg = rawArgs[i];
|
|
11
14
|
if (arg === '--worktree') {
|
|
@@ -107,8 +110,14 @@ export function parseAssimilateArgs(rawArgs) {
|
|
|
107
110
|
}
|
|
108
111
|
else {
|
|
109
112
|
if (role !== undefined) {
|
|
113
|
+
if (enrollmentRequested) {
|
|
114
|
+
return { ok: false, error: ENROLLMENT_POSITIONAL_INPUT_ERROR };
|
|
115
|
+
}
|
|
110
116
|
return { ok: false, error: `unexpected extra argument: ${arg} (already have role "${role}")` };
|
|
111
117
|
}
|
|
118
|
+
if (enrollmentRequested && !validateName(arg).ok) {
|
|
119
|
+
return { ok: false, error: ENROLLMENT_POSITIONAL_INPUT_ERROR };
|
|
120
|
+
}
|
|
112
121
|
role = arg;
|
|
113
122
|
}
|
|
114
123
|
}
|
|
@@ -120,9 +129,6 @@ export function parseAssimilateArgs(rawArgs) {
|
|
|
120
129
|
if (flags.template !== undefined && flags.noTemplate) {
|
|
121
130
|
return { ok: false, error: '--template and --no-template are mutually exclusive' };
|
|
122
131
|
}
|
|
123
|
-
if (flags.enroll && flags.server === undefined) {
|
|
124
|
-
return { ok: false, error: '--enroll requires --host <host>' };
|
|
125
|
-
}
|
|
126
132
|
return { ok: true, role, flags };
|
|
127
133
|
}
|
|
128
134
|
//# sourceMappingURL=parse-assimilate-args.js.map
|