borgmcp-server 0.1.1 → 0.1.4

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 (48) hide show
  1. package/README.md +69 -22
  2. package/dist/cli.js +62 -11
  3. package/dist/cli.js.map +1 -1
  4. package/dist/coordination-api.d.ts +2 -1
  5. package/dist/coordination-api.js +232 -18
  6. package/dist/coordination-api.js.map +1 -1
  7. package/dist/credentials.d.ts +10 -2
  8. package/dist/credentials.js +44 -6
  9. package/dist/credentials.js.map +1 -1
  10. package/dist/debug-log.d.ts +77 -0
  11. package/dist/debug-log.js +125 -0
  12. package/dist/debug-log.js.map +1 -0
  13. package/dist/https-server.d.ts +3 -0
  14. package/dist/https-server.js +80 -4
  15. package/dist/https-server.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/migrations.d.ts +4 -0
  18. package/dist/migrations.js +71 -0
  19. package/dist/migrations.js.map +1 -1
  20. package/dist/operator-error.d.ts +2 -1
  21. package/dist/operator-error.js +23 -5
  22. package/dist/operator-error.js.map +1 -1
  23. package/dist/role-section.d.ts +14 -0
  24. package/dist/role-section.js +87 -0
  25. package/dist/role-section.js.map +1 -0
  26. package/dist/service.d.ts +10 -3
  27. package/dist/service.js +218 -15
  28. package/dist/service.js.map +1 -1
  29. package/dist/start-options.d.ts +5 -1
  30. package/dist/start-options.js +17 -3
  31. package/dist/start-options.js.map +1 -1
  32. package/dist/store.d.ts +65 -1
  33. package/dist/store.js +398 -26
  34. package/dist/store.js.map +1 -1
  35. package/npm-shrinkwrap.json +2 -2
  36. package/package.json +1 -1
  37. package/src/cli.ts +61 -11
  38. package/src/coordination-api.ts +236 -14
  39. package/src/credentials.ts +71 -5
  40. package/src/debug-log.ts +165 -0
  41. package/src/https-server.ts +75 -2
  42. package/src/index.ts +1 -1
  43. package/src/migrations.ts +74 -0
  44. package/src/operator-error.ts +40 -6
  45. package/src/role-section.ts +108 -0
  46. package/src/service.ts +239 -18
  47. package/src/start-options.ts +21 -4
  48. package/src/store.ts +462 -28
package/dist/service.js CHANGED
@@ -3,15 +3,17 @@ import { lstat, open, readFile, unlink } from "node:fs/promises";
3
3
  import { homedir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { bootstrapServer, loadDigestKey, loadTlsPrivateKey, } from "./bootstrap.js";
6
- import { CredentialAuthority, CredentialDigester } from "./credentials.js";
6
+ import { CredentialAuthority, CredentialDigester, } from "./credentials.js";
7
7
  import { CoordinationApi } from "./coordination-api.js";
8
+ import { createDebugLogger, disabledDebugLogger } from "./debug-log.js";
9
+ import { MigrationCompatibilityError } from "./migrations.js";
8
10
  import { createEnrollmentExchange } from "./enrollment.js";
9
11
  import { DEFAULT_SERVICE_LIMITS, startHttpsServer, } from "./https-server.js";
10
12
  import { createPart2ProtocolInfo } from "./protocol-draft.js";
11
13
  import { resolveBindOptions } from "./network-policy.js";
12
- import { operatorErrors } from "./operator-error.js";
14
+ import { invitationCubeAmbiguousError, operatorErrors, } from "./operator-error.js";
13
15
  import { parseStartOptions } from "./start-options.js";
14
- import { DEFAULT_STORAGE_LIMITS, openStore } from "./store.js";
16
+ import { DEFAULT_STORAGE_LIMITS, openStore, preparePrivateDataDirectory, InvitationCubeAmbiguousError, InvitationCubeNotFoundError, } from "./store.js";
15
17
  const guardedRuntimeFailures = new Set();
16
18
  let nodeServerTestHooks;
17
19
  export function installNodeServerTestHooks(hooks) {
@@ -27,16 +29,26 @@ export function createNodeServerService(dependencies) {
27
29
  async start(args) {
28
30
  const shutdown = dependencies.installShutdownHandlers?.();
29
31
  let bind;
32
+ let debugLogger = disabledDebugLogger;
30
33
  let dataDirectory;
31
34
  let storageLimits;
32
35
  try {
33
36
  throwIfShutdown(shutdown?.signal);
34
37
  await dependencies.onStartupPhase?.("pre-lock");
35
38
  throwIfShutdown(shutdown?.signal);
36
- bind = parseStartOptions(args);
37
- const bindMode = resolveBindOptions(bind).mode;
39
+ const parsed = parseStartOptions(args);
40
+ bind = parsed.bind;
41
+ debugLogger = createDebugLogger(parsed.logLevel === "debug" ? dependencies.debugOutput : undefined);
42
+ const resolvedBind = resolveBindOptions(bind);
43
+ const bindMode = resolvedBind.mode;
38
44
  dataDirectory = dependencies.environment.BORG_SERVER_DATA_DIR;
39
45
  storageLimits = resolveStorageLimits(dependencies.environment);
46
+ debugLogger.emit({
47
+ event: "startup",
48
+ bindMode,
49
+ port: resolvedBind.port,
50
+ dataDirectory: dataDirectory === undefined ? "tls_only" : "configured",
51
+ });
40
52
  if (bindMode === "lan" && dataDirectory !== undefined) {
41
53
  await assertLanCaKeyOffline(dataDirectory);
42
54
  throwIfShutdown(shutdown?.signal);
@@ -60,7 +72,7 @@ export function createNodeServerService(dependencies) {
60
72
  }
61
73
  let runtimeLock;
62
74
  try {
63
- runtimeLock = dataDirectory === undefined ? undefined : await acquireRuntimeLock(dataDirectory);
75
+ runtimeLock = dataDirectory === undefined ? undefined : await acquireRuntimeLock(dataDirectory, "server");
64
76
  await dependencies.onStartupPhase?.("post-lock");
65
77
  throwIfShutdown(shutdown?.signal);
66
78
  }
@@ -111,8 +123,8 @@ export function createNodeServerService(dependencies) {
111
123
  finally {
112
124
  digestKey.fill(0);
113
125
  }
114
- authority = new CredentialAuthority(authRuntime.credentials, digester);
115
- coordinationApi = new CoordinationApi(authRuntime, authority);
126
+ authority = new CredentialAuthority(authRuntime.credentials, digester, () => new Date(), undefined, debugLogger);
127
+ coordinationApi = new CoordinationApi(authRuntime, authority, debugLogger);
116
128
  }
117
129
  await dependencies.onStartupPhase?.("pre-listen");
118
130
  throwIfShutdown(shutdown?.signal);
@@ -140,6 +152,7 @@ export function createNodeServerService(dependencies) {
140
152
  ...(coordinationApi === undefined
141
153
  ? {}
142
154
  : { handleCoordination: (request) => coordinationApi.handle(request) }),
155
+ debugLogger,
143
156
  });
144
157
  throwIfShutdown(shutdown?.signal);
145
158
  }
@@ -164,6 +177,7 @@ export function createNodeServerService(dependencies) {
164
177
  try {
165
178
  throwIfShutdown(shutdown?.signal);
166
179
  dependencies.onStarted(running.origin);
180
+ debugLogger.emit({ event: "lifecycle", action: "listening" });
167
181
  await dependencies.waitForShutdown(running, shutdown?.signal);
168
182
  }
169
183
  catch (error) {
@@ -172,6 +186,7 @@ export function createNodeServerService(dependencies) {
172
186
  }
173
187
  try {
174
188
  await teardownRuntime({ running, authRuntime, digester, runtimeLock });
189
+ debugLogger.emit({ event: "lifecycle", action: "stopped" });
175
190
  }
176
191
  catch (cleanupError) {
177
192
  shutdown?.dispose();
@@ -270,12 +285,66 @@ const startOnlyService = createNodeServerService({
270
285
  return handlers;
271
286
  },
272
287
  waitForShutdown,
288
+ debugOutput: (line) => console.error(line),
273
289
  });
274
290
  export const nodeServerService = {
275
291
  start: startOnlyService.start,
276
- setup: () => bootstrapServer(dataDirectory, resolveSetupBindHost(serverEnvironment)),
292
+ setup: (options) => setupNodeServerInstallation(dataDirectory, resolveSetupBindHost(serverEnvironment), options),
277
293
  ...createOfflineCredentialService(dataDirectory),
278
294
  };
295
+ const managedInstallationFiles = Object.freeze([
296
+ "borg.db",
297
+ "borg.db-wal",
298
+ "borg.db-shm",
299
+ "borg.db-journal",
300
+ "credential-digest.key",
301
+ "ca.key",
302
+ "ca.crt",
303
+ "server.key",
304
+ "server.crt",
305
+ "server.json",
306
+ ]);
307
+ export async function setupNodeServerInstallation(setupDataDirectory, bindHost, options) {
308
+ const directory = await preparePrivateDataDirectory(setupDataDirectory);
309
+ const runtimeLock = await acquireRuntimeLock(directory);
310
+ let invitationLock;
311
+ try {
312
+ invitationLock = await acquireInvitationMintLock(directory);
313
+ const existing = await inspectManagedInstallation(directory);
314
+ if (existing.length !== 0 && !options.reinitialize)
315
+ throw operatorErrors.INSTALLATION_EXISTS;
316
+ if (options.reinitialize) {
317
+ for (const path of existing)
318
+ await unlink(path);
319
+ }
320
+ return await bootstrapServer(directory, bindHost);
321
+ }
322
+ finally {
323
+ if (invitationLock === undefined)
324
+ await runtimeLock.release();
325
+ else
326
+ await invitationLock.release().finally(() => runtimeLock.release());
327
+ }
328
+ }
329
+ async function inspectManagedInstallation(directory) {
330
+ const existing = [];
331
+ for (const name of managedInstallationFiles) {
332
+ const path = join(directory, name);
333
+ try {
334
+ const metadata = await lstat(path);
335
+ if (metadata.isSymbolicLink())
336
+ throw operatorErrors.DATA_PATH_SYMLINK;
337
+ if (!metadata.isFile())
338
+ throw new Error("Managed installation paths must be regular files.");
339
+ existing.push(path);
340
+ }
341
+ catch (error) {
342
+ if (error.code !== "ENOENT")
343
+ throw error;
344
+ }
345
+ }
346
+ return existing;
347
+ }
279
348
  function resolveSetupBindHost(environment) {
280
349
  return resolveBindOptions({
281
350
  ...(environment.BORG_SERVER_BIND_HOST === undefined
@@ -287,9 +356,11 @@ function resolveSetupBindHost(environment) {
287
356
  export function createOfflineCredentialService(offlineDataDirectory) {
288
357
  const withAuthority = async (operation) => {
289
358
  const runtimeLock = await acquireRuntimeLock(offlineDataDirectory);
359
+ let invitationLock;
290
360
  let runtime;
291
361
  let digester;
292
362
  try {
363
+ invitationLock = await acquireInvitationMintLock(offlineDataDirectory);
293
364
  runtime = await openStore({ path: join(offlineDataDirectory, "borg.db") });
294
365
  const digestKey = await loadDigestKey(join(offlineDataDirectory, "credential-digest.key"));
295
366
  digester = new CredentialDigester(digestKey);
@@ -299,7 +370,44 @@ export function createOfflineCredentialService(offlineDataDirectory) {
299
370
  finally {
300
371
  digester?.destroy();
301
372
  runtime?.close();
302
- await runtimeLock.release();
373
+ if (invitationLock === undefined)
374
+ await runtimeLock.release();
375
+ else
376
+ await invitationLock.release().finally(() => runtimeLock.release());
377
+ }
378
+ };
379
+ const withInvitationAuthority = async (operation) => {
380
+ const invitationLock = await acquireInvitationMintLock(offlineDataDirectory);
381
+ let offlineRuntimeLock;
382
+ let runtime;
383
+ let digester;
384
+ try {
385
+ const runtimeState = await invitationRuntimeState(offlineDataDirectory);
386
+ if (runtimeState === "offline")
387
+ offlineRuntimeLock = await acquireRuntimeLock(offlineDataDirectory);
388
+ runtime = await openStore({
389
+ path: join(offlineDataDirectory, "borg.db"),
390
+ migrationMode: runtimeState === "live" ? "require-current" : "apply",
391
+ });
392
+ const digestKey = await loadDigestKey(join(offlineDataDirectory, "credential-digest.key"));
393
+ digester = new CredentialDigester(digestKey);
394
+ digestKey.fill(0);
395
+ return operation(new CredentialAuthority(runtime.credentials, digester));
396
+ }
397
+ catch (error) {
398
+ if (error instanceof MigrationCompatibilityError)
399
+ throw operatorErrors.INVITATION_SCHEMA_MISMATCH;
400
+ if (isSqliteContention(error))
401
+ throw operatorErrors.INVITATION_CONTENTION;
402
+ throw error;
403
+ }
404
+ finally {
405
+ digester?.destroy();
406
+ runtime?.close();
407
+ if (offlineRuntimeLock === undefined)
408
+ await invitationLock.release();
409
+ else
410
+ await offlineRuntimeLock.release().finally(() => invitationLock.release());
303
411
  }
304
412
  };
305
413
  return {
@@ -318,13 +426,26 @@ export function createOfflineCredentialService(offlineDataDirectory) {
318
426
  throw operatorErrors.GRANT_NOT_FOUND;
319
427
  }
320
428
  }),
321
- createClientInvitation: (recoveryCredential) => withAuthority((authority) => {
322
- const invitation = authority.createInvitation(recoveryCredential, 15 * 60_000);
429
+ createClientInvitation: (recoveryCredential, cubeSelector, access) => withInvitationAuthority((authority) => {
430
+ if (cubeSelector === undefined && access !== undefined) {
431
+ throw operatorErrors.INVITATION_CUBE_SELECTOR_INVALID;
432
+ }
433
+ const selector = cubeSelector === undefined ? undefined : parseInvitationCubeSelector(cubeSelector);
434
+ const invitation = selector === undefined
435
+ ? authority.createInvitation(recoveryCredential, 15 * 60_000)
436
+ : authority.createCubeInvitation(recoveryCredential, selector, access ?? "write", 15 * 60_000);
323
437
  if (invitation === null)
324
438
  throw operatorErrors.RECOVERY_INVALID;
325
439
  return invitation;
440
+ }).catch((error) => {
441
+ if (error instanceof InvitationCubeNotFoundError)
442
+ throw operatorErrors.INVITATION_CUBE_NOT_FOUND;
443
+ if (error instanceof InvitationCubeAmbiguousError) {
444
+ throw invitationCubeAmbiguousError(error.candidateIds);
445
+ }
446
+ throw error;
326
447
  }),
327
- replaceOwnerInvitation: (recoveryCredential) => withAuthority((authority) => {
448
+ replaceOwnerInvitation: (recoveryCredential) => withInvitationAuthority((authority) => {
328
449
  const invitation = authority.replaceOwnerInvitation(recoveryCredential, 15 * 60_000);
329
450
  if (invitation === null)
330
451
  throw operatorErrors.RECOVERY_INVALID;
@@ -332,6 +453,16 @@ export function createOfflineCredentialService(offlineDataDirectory) {
332
453
  }),
333
454
  };
334
455
  }
456
+ const canonicalCubeUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u;
457
+ const uuidLikeCubeSelector = /^[0-9a-fA-F-]{32,36}$/u;
458
+ function parseInvitationCubeSelector(value) {
459
+ if (canonicalCubeUuid.test(value))
460
+ return { kind: "id", value };
461
+ if (value.length === 0 || value.length > 120 || uuidLikeCubeSelector.test(value)) {
462
+ throw operatorErrors.INVITATION_CUBE_SELECTOR_INVALID;
463
+ }
464
+ return { kind: "name", value };
465
+ }
335
466
  async function teardownRuntime(resources) {
336
467
  try {
337
468
  await resources.running?.close();
@@ -369,13 +500,13 @@ export function isFatalTeardownError(error) {
369
500
  function fatalTeardownError(primary, cleanup) {
370
501
  return new FatalTeardownError(fatalTeardownCapability, primary, cleanup);
371
502
  }
372
- export async function acquireRuntimeLock(runtimeDataDirectory) {
503
+ export async function acquireRuntimeLock(runtimeDataDirectory, purpose = "exclusive-admin") {
373
504
  const path = join(runtimeDataDirectory, "runtime.lock");
374
505
  const nonce = randomUUID();
375
506
  try {
376
507
  const handle = await open(path, "wx", 0o600);
377
508
  try {
378
- await handle.writeFile(JSON.stringify({ pid: process.pid, nonce }));
509
+ await handle.writeFile(JSON.stringify({ pid: process.pid, nonce, purpose }));
379
510
  }
380
511
  catch (error) {
381
512
  await handle.close();
@@ -419,6 +550,78 @@ export async function acquireRuntimeLock(runtimeDataDirectory) {
419
550
  throw operatorErrors.RUNTIME_LOCK_STALE;
420
551
  }
421
552
  }
553
+ export async function acquireInvitationMintLock(runtimeDataDirectory) {
554
+ const path = join(runtimeDataDirectory, "invitation-mint.lock");
555
+ const nonce = randomUUID();
556
+ try {
557
+ const handle = await open(path, "wx", 0o600);
558
+ try {
559
+ await handle.writeFile(JSON.stringify({ pid: process.pid, nonce }));
560
+ }
561
+ catch (error) {
562
+ await handle.close();
563
+ await unlink(path).catch(() => undefined);
564
+ throw error;
565
+ }
566
+ return {
567
+ release: async () => {
568
+ await handle.close();
569
+ try {
570
+ const current = JSON.parse(await readFile(path, "utf8"));
571
+ if (current.nonce === nonce)
572
+ await unlink(path);
573
+ }
574
+ catch (error) {
575
+ if (error.code !== "ENOENT")
576
+ throw error;
577
+ }
578
+ },
579
+ };
580
+ }
581
+ catch (error) {
582
+ if (error.code !== "EEXIST")
583
+ throw error;
584
+ throw operatorErrors.INVITATION_BUSY;
585
+ }
586
+ }
587
+ async function invitationRuntimeState(runtimeDataDirectory) {
588
+ const path = join(runtimeDataDirectory, "runtime.lock");
589
+ let metadata;
590
+ try {
591
+ metadata = await lstat(path);
592
+ }
593
+ catch (error) {
594
+ if (error.code === "ENOENT")
595
+ return "offline";
596
+ throw error;
597
+ }
598
+ if (!metadata.isFile() || metadata.isSymbolicLink() || (metadata.mode & 0o077) !== 0) {
599
+ throw operatorErrors.RUNTIME_LOCK_UNSAFE;
600
+ }
601
+ let pid;
602
+ let purpose;
603
+ try {
604
+ const value = JSON.parse(await readFile(path, "utf8"));
605
+ if (!Number.isSafeInteger(value.pid) || value.pid <= 0)
606
+ throw new Error();
607
+ pid = value.pid;
608
+ purpose = value.purpose;
609
+ }
610
+ catch {
611
+ throw operatorErrors.RUNTIME_LOCK_INVALID;
612
+ }
613
+ if (!processIsAlive(pid))
614
+ throw operatorErrors.RUNTIME_LOCK_STALE;
615
+ if (purpose !== "server")
616
+ throw operatorErrors.RUNTIME_ACTIVE;
617
+ return "live";
618
+ }
619
+ function isSqliteContention(error) {
620
+ if (typeof error !== "object" || error === null)
621
+ return false;
622
+ const value = error;
623
+ return value.code === "ERR_SQLITE_ERROR" && (value.errcode === 5 || value.errcode === 6);
624
+ }
422
625
  function processIsAlive(pid) {
423
626
  try {
424
627
  process.kill(pid, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
1
  import type { BindOptionsInput } from "./network-policy.js";
2
- export declare function parseStartOptions(args: readonly string[]): BindOptionsInput;
2
+ export interface ParsedStartOptions {
3
+ readonly bind: BindOptionsInput;
4
+ readonly logLevel?: "debug";
5
+ }
6
+ export declare function parseStartOptions(args: readonly string[]): ParsedStartOptions;
@@ -3,6 +3,7 @@ export function parseStartOptions(args) {
3
3
  let host;
4
4
  let port;
5
5
  let lanConsent = false;
6
+ let logLevel;
6
7
  for (let index = 0; index < args.length; index += 1) {
7
8
  const argument = args[index];
8
9
  if (argument === "--lan") {
@@ -28,12 +29,25 @@ export function parseStartOptions(args) {
28
29
  index += 1;
29
30
  continue;
30
31
  }
32
+ if (argument === "--log-level") {
33
+ if (logLevel !== undefined)
34
+ throw operatorErrors.START_LOG_LEVEL_DUPLICATE;
35
+ const value = requiredValue(args, index, "START_LOG_LEVEL_MISSING");
36
+ if (value !== "debug")
37
+ throw operatorErrors.START_LOG_LEVEL_INVALID;
38
+ logLevel = value;
39
+ index += 1;
40
+ continue;
41
+ }
31
42
  throw operatorErrors.START_OPTION_UNKNOWN;
32
43
  }
33
44
  return {
34
- ...(host === undefined ? {} : { host }),
35
- ...(port === undefined ? {} : { port }),
36
- ...(lanConsent ? { lanConsent: true } : {}),
45
+ bind: {
46
+ ...(host === undefined ? {} : { host }),
47
+ ...(port === undefined ? {} : { port }),
48
+ ...(lanConsent ? { lanConsent: true } : {}),
49
+ },
50
+ ...(logLevel === undefined ? {} : { logLevel }),
37
51
  };
38
52
  }
39
53
  function requiredValue(args, index, code) {
@@ -1 +1 @@
1
- {"version":3,"file":"start-options.js","sourceRoot":"","sources":["../src/start-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA0B,MAAM,qBAAqB,CAAC;AAE7E,MAAM,UAAU,iBAAiB,CAAC,IAAuB;IACvD,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,UAAU;gBAAE,MAAM,cAAc,CAAC,mBAAmB,CAAC;YACzD,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,cAAc,CAAC,oBAAoB,CAAC;YAClE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACxD,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,cAAc,CAAC,oBAAoB,CAAC;YAClE,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,cAAc,CAAC,kBAAkB,CAAC;YACnE,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,cAAc,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAuB,EAAE,KAAa,EAAE,IAAuB;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"start-options.js","sourceRoot":"","sources":["../src/start-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA0B,MAAM,qBAAqB,CAAC;AAO7E,MAAM,UAAU,iBAAiB,CAAC,IAAuB;IACvD,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,QAA6B,CAAC;IAElC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,UAAU;gBAAE,MAAM,cAAc,CAAC,mBAAmB,CAAC;YACzD,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,cAAc,CAAC,oBAAoB,CAAC;YAClE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACxD,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,cAAc,CAAC,oBAAoB,CAAC;YAClE,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,cAAc,CAAC,kBAAkB,CAAC;YACnE,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,cAAc,CAAC,yBAAyB,CAAC;YAC3E,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC;YACpE,IAAI,KAAK,KAAK,OAAO;gBAAE,MAAM,cAAc,CAAC,uBAAuB,CAAC;YACpE,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,cAAc,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C;QACD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAuB,EAAE,KAAa,EAAE,IAAuB;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/store.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type Principal } from "./principal.js";
2
+ import { type RoleSectionPatchOp } from "./role-section.js";
2
3
  export type CubeAccess = "read" | "write" | "manage";
3
4
  export interface CubeRecord {
4
5
  readonly id: string;
@@ -63,8 +64,12 @@ export interface RoleRecord {
63
64
  readonly cube_id: string;
64
65
  readonly name: string;
65
66
  readonly short_description: string;
67
+ readonly detailed_description: string;
66
68
  readonly is_default: boolean;
69
+ readonly is_mandatory: boolean;
67
70
  readonly is_human_seat: boolean;
71
+ readonly can_broadcast: boolean;
72
+ readonly receives_all_direct: boolean;
68
73
  readonly role_class: "queen" | "worker";
69
74
  readonly created_at: string;
70
75
  }
@@ -75,6 +80,7 @@ export interface DroneRecord {
75
80
  readonly label: string;
76
81
  readonly last_seen: string;
77
82
  readonly hostname: string | null;
83
+ readonly posture: "observer" | "participant";
78
84
  readonly created_at: string;
79
85
  }
80
86
  export interface StoreDiagnostics {
@@ -89,6 +95,7 @@ export interface OpenStoreOptions {
89
95
  readonly capacityProbe?: () => StorageCapacity;
90
96
  readonly cubeLimits?: CubeLimits;
91
97
  readonly mutationHook?: (phase: string) => void;
98
+ readonly migrationMode?: "apply" | "require-current";
92
99
  }
93
100
  export interface CubeLimits {
94
101
  readonly maxCubesPerClient: number;
@@ -126,6 +133,19 @@ export interface StoredSecretDigest extends DigestPair {
126
133
  export interface StoredInvitationDigest extends StoredSecretDigest {
127
134
  readonly purpose: "owner" | "client";
128
135
  readonly ownerEpoch: number | null;
136
+ readonly cubeId: string | null;
137
+ readonly access: CubeAccess | null;
138
+ }
139
+ export interface InvitationCubeScope {
140
+ readonly cubeId: string;
141
+ readonly cubeName: string;
142
+ readonly access: CubeAccess;
143
+ }
144
+ export declare class InvitationCubeNotFoundError extends Error {
145
+ }
146
+ export declare class InvitationCubeAmbiguousError extends Error {
147
+ readonly candidateIds: readonly string[];
148
+ constructor(candidateIds: readonly string[]);
129
149
  }
130
150
  export interface EnrollmentClaimResult {
131
151
  readonly purpose: "owner" | "client";
@@ -147,7 +167,12 @@ export interface CredentialStore {
147
167
  readonly digest: DigestPair;
148
168
  readonly expiresAt: string;
149
169
  readonly purpose: "owner" | "client";
150
- }) => void;
170
+ readonly cubeSelector?: {
171
+ readonly kind: "id" | "name";
172
+ readonly value: string;
173
+ };
174
+ readonly access?: CubeAccess;
175
+ }) => InvitationCubeScope | null;
151
176
  readonly findInvitation: (lookup: Buffer) => StoredInvitationDigest | null;
152
177
  readonly claimInvitation: (input: {
153
178
  readonly invitationId: string;
@@ -176,6 +201,9 @@ export interface ScopedStore {
176
201
  readonly appendActivity: (cubeId: string, message: string) => ActivityRecord;
177
202
  readonly readActivity: (cubeId: string, limit: number) => ActivityRecord[];
178
203
  readonly listRoles: (cubeId: string) => RoleRecord[];
204
+ readonly createRole: (cubeId: string, input: CreateRoleInput) => RoleRecord;
205
+ readonly updateRole: (cubeId: string, roleId: string, input: UpdateRoleInput) => RoleRecord;
206
+ readonly patchRoleSection: (cubeId: string, roleId: string, input: RoleSectionPatchOp) => RoleRecord;
179
207
  readonly listDrones: (cubeId: string) => DroneRecord[];
180
208
  readonly appendLog: (cubeId: string, input: {
181
209
  readonly message: string;
@@ -193,6 +221,26 @@ export interface ScopedStore {
193
221
  readonly subscribeActivity: (cubeId: string, listener: (entry: EnrichedActivityRecord) => void) => (() => void);
194
222
  readonly attachSeat: (input: SeatAttachInput) => SeatAttachRecord;
195
223
  }
224
+ export interface CreateRoleInput {
225
+ readonly name: string;
226
+ readonly shortDescription?: string;
227
+ readonly detailedDescription?: string;
228
+ readonly isDefault?: boolean;
229
+ readonly isMandatory?: boolean;
230
+ readonly isHumanSeat?: boolean;
231
+ readonly canBroadcast?: boolean;
232
+ readonly receivesAllDirect?: boolean;
233
+ }
234
+ export interface UpdateRoleInput {
235
+ readonly name?: string;
236
+ readonly shortDescription?: string;
237
+ readonly detailedDescription?: string;
238
+ readonly isDefault?: boolean;
239
+ readonly isMandatory?: boolean;
240
+ readonly isHumanSeat?: boolean;
241
+ readonly canBroadcast?: boolean;
242
+ readonly receivesAllDirect?: boolean;
243
+ }
196
244
  export interface CreateCubeInput {
197
245
  readonly retryKey: string;
198
246
  readonly name: string;
@@ -233,6 +281,7 @@ export interface SeatAttachRecord {
233
281
  readonly sessionId: string;
234
282
  readonly expiresAt: string;
235
283
  readonly generation: number;
284
+ readonly posture: "observer" | "participant";
236
285
  readonly reattached: boolean;
237
286
  readonly revokedSessionIds: readonly string[];
238
287
  }
@@ -304,6 +353,18 @@ export declare class ScopedStoreError extends Error {
304
353
  readonly code = "NOT_FOUND";
305
354
  constructor();
306
355
  }
356
+ export declare class RoleConflictError extends Error {
357
+ readonly code = "ROLE_ALREADY_EXISTS";
358
+ constructor();
359
+ }
360
+ export declare class DefaultRoleRequiredError extends Error {
361
+ readonly code = "DEFAULT_ROLE_REQUIRED";
362
+ constructor();
363
+ }
364
+ export declare class RoleSectionConflictError extends Error {
365
+ readonly code = "ROLE_SECTION_CONFLICT";
366
+ constructor();
367
+ }
307
368
  export declare class CursorExpiredError extends Error {
308
369
  readonly code = "CURSOR_EXPIRED";
309
370
  constructor();
@@ -325,3 +386,6 @@ export declare class CreateCubeConflictError extends Error {
325
386
  constructor();
326
387
  }
327
388
  export declare function openStore(options: OpenStoreOptions): Promise<StoreRuntime>;
389
+ export declare function preparePrivateDataDirectory(path: string): Promise<string>;
390
+ export declare const MAX_ROLE_DETAILED_DESCRIPTION_CHARS = 51200;
391
+ export declare function assertRoleTextWriteAllowed(value: string, previous?: string): void;