borgmcp 2.0.11 → 2.1.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 (57) hide show
  1. package/README.md +11 -3
  2. package/dist/assimilate-cmd.d.ts +13 -4
  3. package/dist/assimilate-cmd.d.ts.map +1 -1
  4. package/dist/assimilate-cmd.js +134 -110
  5. package/dist/assimilate-cmd.js.map +1 -1
  6. package/dist/assimilate-deps.d.ts +7 -1
  7. package/dist/assimilate-deps.d.ts.map +1 -1
  8. package/dist/assimilate-deps.js +44 -18
  9. package/dist/assimilate-deps.js.map +1 -1
  10. package/dist/claude.d.ts +3 -1
  11. package/dist/claude.d.ts.map +1 -1
  12. package/dist/claude.js +26 -12
  13. package/dist/claude.js.map +1 -1
  14. package/dist/cli-help.d.ts +2 -0
  15. package/dist/cli-help.d.ts.map +1 -1
  16. package/dist/cli-help.js +22 -5
  17. package/dist/cli-help.js.map +1 -1
  18. package/dist/config.d.ts +7 -4
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +21 -4
  21. package/dist/config.js.map +1 -1
  22. package/dist/remote-client.js +1 -1
  23. package/dist/repository-cube-init.d.ts +57 -0
  24. package/dist/repository-cube-init.d.ts.map +1 -0
  25. package/dist/repository-cube-init.js +196 -0
  26. package/dist/repository-cube-init.js.map +1 -0
  27. package/dist/repository-identity.d.ts +29 -0
  28. package/dist/repository-identity.d.ts.map +1 -0
  29. package/dist/repository-identity.js +143 -0
  30. package/dist/repository-identity.js.map +1 -0
  31. package/dist/server-errors.d.ts +6 -0
  32. package/dist/server-errors.d.ts.map +1 -1
  33. package/dist/server-errors.js +12 -0
  34. package/dist/server-errors.js.map +1 -1
  35. package/dist/server-facade.d.ts +11 -1
  36. package/dist/server-facade.d.ts.map +1 -1
  37. package/dist/server-facade.js +33 -3
  38. package/dist/server-facade.js.map +1 -1
  39. package/dist/server-handshake.d.ts +8 -4
  40. package/dist/server-handshake.d.ts.map +1 -1
  41. package/dist/server-handshake.js +15 -6
  42. package/dist/server-handshake.js.map +1 -1
  43. package/docs/EXTRACTION_PROVENANCE.md +7 -7
  44. package/docs/LOCAL_SERVER.md +35 -6
  45. package/docs/RELEASING.md +11 -3
  46. package/package.json +2 -2
  47. package/src/assimilate-cmd.ts +166 -140
  48. package/src/assimilate-deps.ts +59 -17
  49. package/src/claude.ts +34 -14
  50. package/src/cli-help.ts +25 -5
  51. package/src/config.ts +30 -8
  52. package/src/remote-client.ts +1 -1
  53. package/src/repository-cube-init.ts +273 -0
  54. package/src/repository-identity.ts +199 -0
  55. package/src/server-errors.ts +14 -0
  56. package/src/server-facade.ts +47 -2
  57. package/src/server-handshake.ts +33 -7
package/dist/cli-help.js CHANGED
@@ -27,6 +27,7 @@ export function topLevelHelpText(version) {
27
27
  ` borg assimilate [role] Join or create a cube\n` +
28
28
  ` borg assimilate --host <host> Join or create on an explicit server\n` +
29
29
  ` borg assimilate --worktree <name> Spawn a worktree drone (in ~/.borg/worktrees/<repo>/<name>)\n` +
30
+ ` borg server cube init Initialize this repository's cube without creating a drone\n` +
30
31
  ` borg reset-local-seat Clear ONLY this worktree's saved local seat (offline; after a rejection)\n` +
31
32
  ` borg sync [--prune] Sync this worktree's branch to origin/main\n` +
32
33
  ` borg cleanup [--prune] Report (or --prune) worktrees orphaned by evicted drones\n` +
@@ -47,9 +48,23 @@ export function serverHelpText() {
47
48
  ` stop Stop the managed local server.\n` +
48
49
  ` status Report verified runtime evidence.\n` +
49
50
  ` update Verify and activate a local server artifact.\n` +
50
- ` invite Create a single-use invitation in an interactive terminal.\n\n` +
51
+ ` invite Create a single-use invitation in an interactive terminal.\n` +
52
+ ` cube init Initialize this Git repository's cube; does not create a drone.\n\n` +
51
53
  `Run borg server <command> --help for server command options.\n`);
52
54
  }
55
+ /** Client-owned help for repository cube initialization without a drone. */
56
+ export function cubeInitHelpText() {
57
+ return (`borg server cube init — initialize this Git repository's cube without creating a drone\n\n` +
58
+ `Usage:\n` +
59
+ ` borg server cube init [options]\n\n` +
60
+ `Options:\n` +
61
+ ` --host <host> Borg server host or URL (bare hosts default to HTTPS)\n` +
62
+ ` --enroll Prompt for a hidden enrollment invitation\n` +
63
+ ` --cube-name <name> Repository cube name (otherwise edit the proposed name)\n` +
64
+ ` --template software-dev|starter New-cube template (default: software-dev)\n` +
65
+ ` --yes, -y Skip confirmation prompts\n` +
66
+ ` --help, -h Show this help\n`);
67
+ }
53
68
  /**
54
69
  * Help text for `borg assimilate --help` — the home for the full assimilate flag
55
70
  * set. Model/provider configuration belongs to the selected agent CLI.
@@ -67,15 +82,17 @@ export function assimilateHelpText(version) {
67
82
  `Flags:\n` +
68
83
  ` --worktree <name> Create + launch the drone in a sibling git worktree\n` +
69
84
  ` --here Stay in the current worktree (no sibling spawn)\n` +
70
- ` --cube-name <name> Cube to join/create (otherwise confirm repo basename)\n` +
85
+ ` --cube-name <name> Repository cube name (otherwise edit the proposed name)\n` +
71
86
  ` --host <host> Borg server host or URL (bare hosts default to HTTPS)\n` +
72
87
  ` --enroll Prompt for a hidden enrollment invitation in the operator terminal\n` +
73
- ` --template <name> Bootstrap a new cube from a bundled role template\n` +
74
- ` --no-template Create the cube with no template roles\n` +
88
+ ` --template software-dev|starter New-cube template (default: software-dev)\n` +
89
+ ` --no-template Unsupported for repository cube creation\n` +
75
90
  ` --cli claude|codex|opencode Agent CLI to launch (default: claude)\n` +
76
91
  ` --model claude:<model> Legacy Claude model override (configure models in the agent CLI)\n` +
77
92
  ` --yes, -y Skip confirmation prompts\n\n` +
78
- `An enrolled owner client may create an idempotent repository cube; ordinary clients\n` +
93
+ `Creation shows repository context, name, template, and one confirmation. An existing\n` +
94
+ `repository association skips all prompts. An enrolled owner client may create an\n` +
95
+ `idempotent repository cube; ordinary clients\n` +
79
96
  `require an explicit cube grant. Agent seats begin only after enrollment. Preview only.\n` +
80
97
  `See docs/LOCAL_SERVER.md for self-hosted setup and current status.\n\n` +
81
98
  `For local or provider-specific models, configure the selected agent CLI directly.\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,UAAU,UAAU,CAAC,GAAuB;IAChD,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,CACL,WAAW,OAAO,6DAA6D;QAC/E,uGAAuG;QACvG,gFAAgF;QAChF,sFAAsF;QACtF,2FAA2F;QAC3F,UAAU;QACV,kGAAkG;QAClG,6EAA6E;QAC7E,oDAAoD;QACpD,0EAA0E;QAC1E,qGAAqG;QACrG,uGAAuG;QACvG,yEAAyE;QACzE,uFAAuF;QACvF,0FAA0F;QAC1F,wDAAwD;QACxD,6EAA6E;QAC7E,uCAAuC;QACvC,sEAAsE;QACtE,uDAAuD;QACvD,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,8CAA8C;QAC9C,aAAa;QACb,iFAAiF;QACjF,2DAA2D;QAC3D,6CAA6C;QAC7C,gDAAgD;QAChD,2DAA2D;QAC3D,2EAA2E;QAC3E,gEAAgE,CACjE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CACL,4BAA4B,OAAO,4CAA4C;QAC/E,UAAU;QACV,sGAAsG;QACtG,4FAA4F;QAC5F,4EAA4E;QAC5E,gGAAgG;QAChG,8EAA8E;QAC9E,uGAAuG;QACvG,2DAA2D;QAC3D,UAAU;QACV,oFAAoF;QACpF,gFAAgF;QAChF,sFAAsF;QACtF,sFAAsF;QACtF,mGAAmG;QACnG,kFAAkF;QAClF,uEAAuE;QACvE,+EAA+E;QAC/E,+FAA+F;QAC/F,4DAA4D;QAC5D,uFAAuF;QACvF,0FAA0F;QAC1F,wEAAwE;QACxE,qFAAqF;QACrF,qFAAqF,CACtF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,CACL,kCAAkC,OAAO,qDAAqD;QAC9F,8FAA8F;QAC9F,+FAA+F;QAC/F,gGAAgG;QAChG,qBAAqB;QACrB,8FAA8F;QAC9F,0FAA0F;QAC1F,UAAU;QACV,iGAAiG;QACjG,0FAA0F;QAC1F,kGAAkG;QAClG,4DAA4D;QAC5D,UAAU;QACV,iGAAiG;QACjG,4FAA4F,CAC7F,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,CACL,uBAAuB,OAAO,wDAAwD;QACtF,qEAAqE;QACrE,UAAU;QACV,+DAA+D;QAC/D,6CAA6C,CAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,UAAU,UAAU,CAAC,GAAuB;IAChD,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,CACL,WAAW,OAAO,6DAA6D;QAC/E,uGAAuG;QACvG,gFAAgF;QAChF,sFAAsF;QACtF,2FAA2F;QAC3F,UAAU;QACV,kGAAkG;QAClG,6EAA6E;QAC7E,oDAAoD;QACpD,0EAA0E;QAC1E,qGAAqG;QACrG,wFAAwF;QACxF,uGAAuG;QACvG,yEAAyE;QACzE,uFAAuF;QACvF,0FAA0F;QAC1F,wDAAwD;QACxD,6EAA6E;QAC7E,uCAAuC;QACvC,sEAAsE;QACtE,uDAAuD;QACvD,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,8CAA8C;QAC9C,aAAa;QACb,iFAAiF;QACjF,2DAA2D;QAC3D,6CAA6C;QAC7C,gDAAgD;QAChD,2DAA2D;QAC3D,yEAAyE;QACzE,mFAAmF;QACnF,gEAAgE,CACjE,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CACL,4FAA4F;QAC5F,UAAU;QACV,uCAAuC;QACvC,YAAY;QACZ,4FAA4F;QAC5F,gFAAgF;QAChF,8FAA8F;QAC9F,gFAAgF;QAChF,gEAAgE;QAChE,qDAAqD,CACtD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CACL,4BAA4B,OAAO,4CAA4C;QAC/E,UAAU;QACV,sGAAsG;QACtG,4FAA4F;QAC5F,4EAA4E;QAC5E,gGAAgG;QAChG,8EAA8E;QAC9E,uGAAuG;QACvG,2DAA2D;QAC3D,UAAU;QACV,oFAAoF;QACpF,gFAAgF;QAChF,wFAAwF;QACxF,sFAAsF;QACtF,mGAAmG;QACnG,iFAAiF;QACjF,yEAAyE;QACzE,+EAA+E;QAC/E,+FAA+F;QAC/F,4DAA4D;QAC5D,wFAAwF;QACxF,oFAAoF;QACpF,gDAAgD;QAChD,0FAA0F;QAC1F,wEAAwE;QACxE,qFAAqF;QACrF,qFAAqF,CACtF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,CACL,kCAAkC,OAAO,qDAAqD;QAC9F,8FAA8F;QAC9F,+FAA+F;QAC/F,gGAAgG;QAChG,qBAAqB;QACrB,8FAA8F;QAC9F,0FAA0F;QAC1F,UAAU;QACV,iGAAiG;QACjG,0FAA0F;QAC1F,kGAAkG;QAClG,4DAA4D;QAC5D,UAAU;QACV,iGAAiG;QACjG,4FAA4F,CAC7F,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,CACL,uBAAuB,OAAO,wDAAwD;QACtF,qEAAqE;QACrE,UAAU;QACV,+DAA+D;QAC/D,6CAA6C,CAC9C,CAAC;AACJ,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ServerCapability } from 'borgmcp-shared/protocol';
1
+ import type { CreateCubeRepository, CubeTemplate, ServerCapability } from 'borgmcp-shared/protocol';
2
2
  import { type TokenBackend } from './token-store.js';
3
3
  export interface ServerCredentialRecord {
4
4
  origin: string;
@@ -29,7 +29,9 @@ export interface PendingServerCubeCreationRecord {
29
29
  repositoryBinding: string;
30
30
  retryKey: string;
31
31
  name: string;
32
- template: 'default';
32
+ workingRepoName: string;
33
+ repository: CreateCubeRepository;
34
+ template: CubeTemplate;
33
35
  }
34
36
  /**
35
37
  * S1 clean-slate local drone-session record. The client CSPRNG-generates the
@@ -100,9 +102,10 @@ export declare function getOrCreatePendingServerCubeCreation(input: {
100
102
  origin: string;
101
103
  trustIdentity: string;
102
104
  clientId: string;
103
- projectRoot: string;
104
105
  name: string;
105
- template: 'default';
106
+ workingRepoName: string;
107
+ repository: CreateCubeRepository;
108
+ template: CubeTemplate;
106
109
  }): Promise<PendingServerCubeCreationRecord>;
107
110
  export declare function clearPendingServerCubeCreation(record: PendingServerCubeCreationRecord): Promise<void>;
108
111
  export declare function clearServerCredential(origin: string, trustIdentity: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -12,7 +12,7 @@ import { makeFileBackend, } from './token-store.js';
12
12
  import { BORG_USER_ROOT, SERVER_CREDENTIALS_FILE } from './credential-paths.js';
13
13
  const SERVER_CREDENTIAL_RECORD_VERSION = 2;
14
14
  const SERVER_PENDING_ENROLLMENT_RECORD_VERSION = 1;
15
- const SERVER_CUBE_RETRY_RECORD_VERSION = 1;
15
+ const SERVER_CUBE_RETRY_RECORD_VERSION = 2;
16
16
  // The 0600 credential store (Queen rescope: replaces the OS keychain). A single
17
17
  // file holds every parent credential/enrollment record; a single flock
18
18
  // serializes every mutator + observer that must (SR-seven #4).
@@ -363,14 +363,19 @@ export async function clearPendingServerEnrollment(origin, trustIdentity, retryK
363
363
  export async function getOrCreatePendingServerCubeCreation(input) {
364
364
  validateServerCredentialBinding(input.origin, input.trustIdentity);
365
365
  validateUuid(input.clientId, 'client identity');
366
- if (input.projectRoot.length < 1 || input.projectRoot.length > 4096 || /[\u0000-\u001f\u007f]/.test(input.projectRoot)) {
366
+ if ((input.repository.kind !== 'origin' && input.repository.kind !== 'local') ||
367
+ typeof input.repository.value !== 'string' || input.repository.value.length < 1) {
367
368
  throw new Error('invalid Borg server repository binding');
368
369
  }
369
370
  if (Buffer.byteLength(input.name, 'utf8') < 1 || Buffer.byteLength(input.name, 'utf8') > 120 ||
370
371
  !/^[A-Za-z0-9][A-Za-z0-9 ._-]*$/.test(input.name)) {
371
372
  throw new Error('invalid Borg server cube name');
372
373
  }
373
- const repositoryBinding = createHash('sha256').update(input.projectRoot).digest('hex');
374
+ const repositoryBinding = createHash('sha256')
375
+ .update(input.repository.kind)
376
+ .update('\0')
377
+ .update(input.repository.value)
378
+ .digest('hex');
374
379
  const backend = await getServerCredentialBackend();
375
380
  const account = serverCubeRetryAccount(input.origin, input.trustIdentity, input.clientId, repositoryBinding);
376
381
  return withCredentialStoreLock(async () => {
@@ -385,6 +390,7 @@ export async function getOrCreatePendingServerCubeCreation(input) {
385
390
  record.clientId !== input.clientId ||
386
391
  record.repositoryBinding !== repositoryBinding ||
387
392
  record.name !== input.name ||
393
+ record.workingRepoName !== input.workingRepoName ||
388
394
  record.template !== input.template ||
389
395
  typeof record.retryKey !== 'string' || !UUID_RE.test(record.retryKey)) {
390
396
  throw new Error('mismatch');
@@ -396,6 +402,8 @@ export async function getOrCreatePendingServerCubeCreation(input) {
396
402
  repositoryBinding,
397
403
  retryKey: record.retryKey,
398
404
  name: input.name,
405
+ workingRepoName: input.workingRepoName,
406
+ repository: input.repository,
399
407
  template: input.template,
400
408
  };
401
409
  }
@@ -410,12 +418,21 @@ export async function getOrCreatePendingServerCubeCreation(input) {
410
418
  repositoryBinding,
411
419
  retryKey: randomUUID(),
412
420
  name: input.name,
421
+ workingRepoName: input.workingRepoName,
422
+ repository: input.repository,
413
423
  template: input.template,
414
424
  };
415
425
  await backend.set(account, JSON.stringify({
416
426
  version: SERVER_CUBE_RETRY_RECORD_VERSION,
417
427
  state: 'pending',
418
- ...record,
428
+ origin: record.origin,
429
+ trustIdentity: record.trustIdentity,
430
+ clientId: record.clientId,
431
+ repositoryBinding: record.repositoryBinding,
432
+ retryKey: record.retryKey,
433
+ name: record.name,
434
+ workingRepoName: record.workingRepoName,
435
+ template: record.template,
419
436
  }));
420
437
  return record;
421
438
  });
@@ -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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"}
@@ -495,7 +495,7 @@ async function authedFetch(path, init = {}) {
495
495
  if (parsed !== null && typeof parsed === 'object' &&
496
496
  parsed.error !== null && typeof parsed.error === 'object' &&
497
497
  parsed.error.code === ROLE_SECTION_CONFLICT_CODE) {
498
- // Shared 0.6.2 intentionally omits this server-local code. Re-validate the whole
498
+ // Shared 0.6.3 intentionally omits this server-local code. Re-validate the whole
499
499
  // envelope through the strict shared decoder with only the recognized
500
500
  // code substituted; no server-provided diagnostic is ever surfaced.
501
501
  decodeProtocolErrorEnvelope({
@@ -0,0 +1,57 @@
1
+ import type { CreateCubeRepository, CreateCubeResponse, CubeTemplate } from 'borgmcp-shared/protocol';
2
+ import type { GitRepositoryContext, RepositoryAssociation } from './repository-identity.js';
3
+ export interface RepositoryCubeDetail {
4
+ id: string;
5
+ name: string;
6
+ roles: any[];
7
+ drones?: Array<{
8
+ role_id: string;
9
+ }>;
10
+ }
11
+ export interface RepositoryCubeCreation {
12
+ response: CreateCubeResponse;
13
+ cube: RepositoryCubeDetail;
14
+ }
15
+ export interface RepositoryCubeInitFlags {
16
+ cubeName?: string;
17
+ template?: string;
18
+ noTemplate?: boolean;
19
+ yes?: boolean;
20
+ }
21
+ export interface RepositoryCubeInitDeps {
22
+ isTTY(): boolean;
23
+ prompt(message: string): Promise<string>;
24
+ write(text: string): void;
25
+ getIdentity(context: GitRepositoryContext): Promise<CreateCubeRepository>;
26
+ getAssociation(repository: CreateCubeRepository): Promise<RepositoryAssociation | null>;
27
+ saveAssociation(repository: CreateCubeRepository, association: RepositoryAssociation): Promise<void>;
28
+ getCube(cubeId: string): Promise<RepositoryCubeDetail>;
29
+ createCube(input: {
30
+ name: string;
31
+ workingRepoName: string;
32
+ repository: CreateCubeRepository;
33
+ template: Exclude<CubeTemplate, 'default'>;
34
+ }): Promise<RepositoryCubeCreation>;
35
+ }
36
+ export type RepositoryCubeInitResult = {
37
+ kind: 'success';
38
+ creation: RepositoryCubeCreation;
39
+ existing: boolean;
40
+ } | {
41
+ kind: 'stop';
42
+ code: number;
43
+ };
44
+ export declare class RepositoryAssociationSaveError extends Error {
45
+ constructor();
46
+ }
47
+ export declare class PromptInterruptedError extends Error {
48
+ constructor();
49
+ }
50
+ export declare function validRepositoryCubeName(value: string): boolean;
51
+ export declare function initializeRepositoryCube(input: {
52
+ mode: 'assimilate' | 'cube-init';
53
+ context: GitRepositoryContext;
54
+ serverOrigin: string;
55
+ flags: RepositoryCubeInitFlags;
56
+ }, deps: RepositoryCubeInitDeps): Promise<RepositoryCubeInitResult>;
57
+ //# sourceMappingURL=repository-cube-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-cube-init.d.ts","sourceRoot":"","sources":["../src/repository-cube-init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,IAAI,OAAO,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1E,cAAc,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACxF,eAAe,CAAC,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvD,UAAU,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,oBAAoB,CAAC;QACjC,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,qBAAa,8BAA+B,SAAQ,KAAK;;CAKxD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D;AAsDD,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACpD,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC;IACjC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,uBAAuB,CAAC;CAChC,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA6IlE"}
@@ -0,0 +1,196 @@
1
+ import { NEW_CUBE_TEMPLATE_PRESENTATIONS, LEGACY_DEFAULT_TEMPLATE_LABEL, } from 'borgmcp-shared/templates';
2
+ import { shellEscape } from './shell-escape.js';
3
+ export class RepositoryAssociationSaveError extends Error {
4
+ constructor() {
5
+ super('repository association could not be saved');
6
+ this.name = 'RepositoryAssociationSaveError';
7
+ }
8
+ }
9
+ export class PromptInterruptedError extends Error {
10
+ constructor() {
11
+ super('prompt interrupted');
12
+ this.name = 'PromptInterruptedError';
13
+ }
14
+ }
15
+ const NAME_ERROR = 'Use 1-120 letters, digits, spaces, dots, underscores, or hyphens, starting with a letter or digit.';
16
+ export function validRepositoryCubeName(value) {
17
+ return Buffer.byteLength(value, 'utf8') <= 120 && /^[A-Za-z0-9][A-Za-z0-9 ._-]*$/.test(value);
18
+ }
19
+ function presentation(template) {
20
+ if (template === 'default') {
21
+ return { name: template, label: LEGACY_DEFAULT_TEMPLATE_LABEL };
22
+ }
23
+ return NEW_CUBE_TEMPLATE_PRESENTATIONS.find((candidate) => candidate.name === template);
24
+ }
25
+ async function ask(deps, message) {
26
+ try {
27
+ return { value: await deps.prompt(message) };
28
+ }
29
+ catch (error) {
30
+ if (error instanceof PromptInterruptedError) {
31
+ deps.write('\nCube creation cancelled. Nothing was changed.\n');
32
+ return { stop: 130 };
33
+ }
34
+ deps.write('Input ended before cube creation. Nothing was changed.\n');
35
+ return { stop: 1 };
36
+ }
37
+ }
38
+ function renderResult(deps, input) {
39
+ const lines = [
40
+ input.existing ? 'Cube already initialized.' : 'Cube created.',
41
+ ` Name: ${input.response.name}`,
42
+ ` Template: ${presentation(input.response.template).label}`,
43
+ ` Repository: ${input.root}`,
44
+ ` Server: ${input.serverOrigin}`,
45
+ ];
46
+ if (input.creationOptionsUnused) {
47
+ lines.push('Creation options were not used because this repository is already initialized.');
48
+ }
49
+ if (input.mode === 'cube-init') {
50
+ lines.push('No drone was created.', `Next: borg assimilate --host ${shellEscape(input.serverOrigin)}`);
51
+ }
52
+ else {
53
+ lines.push('Continuing with role and seat setup...');
54
+ }
55
+ deps.write(`${lines.join('\n')}\n`);
56
+ }
57
+ export async function initializeRepositoryCube(input, deps) {
58
+ const repository = await deps.getIdentity(input.context);
59
+ const association = await deps.getAssociation(repository);
60
+ const creationOptionsUnused = association !== null && (input.flags.cubeName !== undefined || input.flags.template !== undefined || input.flags.yes === true);
61
+ if (association) {
62
+ const cube = await deps.getCube(association.cubeId);
63
+ const authoritativeAssociation = { ...association, name: cube.name };
64
+ if (cube.name !== association.name) {
65
+ try {
66
+ await deps.saveAssociation(repository, authoritativeAssociation);
67
+ }
68
+ catch {
69
+ throw new RepositoryAssociationSaveError();
70
+ }
71
+ }
72
+ const response = {
73
+ result: 'resolved',
74
+ cube_id: association.cubeId,
75
+ name: cube.name,
76
+ working_repo_name: association.workingRepoName,
77
+ repository,
78
+ template: association.template,
79
+ human_seat_role_id: cube.roles.find((role) => role.is_human_seat)?.id ?? '',
80
+ default_worker_role_id: cube.roles.find((role) => role.is_default)?.id ?? '',
81
+ access: 'manage',
82
+ };
83
+ renderResult(deps, {
84
+ existing: true,
85
+ response,
86
+ root: input.context.root,
87
+ serverOrigin: input.serverOrigin,
88
+ mode: input.mode,
89
+ creationOptionsUnused,
90
+ });
91
+ return { kind: 'success', creation: { response, cube }, existing: true };
92
+ }
93
+ if (input.flags.noTemplate) {
94
+ deps.write('--no-template is not supported for repository cube creation. Use --template software-dev or --template starter.\n');
95
+ return { kind: 'stop', code: 1 };
96
+ }
97
+ if (input.flags.template !== undefined && input.flags.template !== 'software-dev' && input.flags.template !== 'starter') {
98
+ const safe = input.flags.template.replace(/[\u0000-\u001f\u007f]/g, '?').slice(0, 120);
99
+ deps.write(`Unknown template '${safe}'. Use software-dev or starter.\n`);
100
+ return { kind: 'stop', code: 1 };
101
+ }
102
+ if (!deps.isTTY() && !input.flags.yes && (!input.flags.cubeName || !input.flags.template)) {
103
+ deps.write('Non-interactive cube creation requires --cube-name <name> and --template software-dev|starter, or --yes to use repository defaults.\n');
104
+ return { kind: 'stop', code: 1 };
105
+ }
106
+ deps.write(`Create a cube for this repository\n` +
107
+ `Repository: ${input.context.root}\n` +
108
+ `Server: ${input.serverOrigin}\n`);
109
+ let name = input.flags.cubeName?.trim() ?? input.context.derivedName;
110
+ if (!input.flags.cubeName && deps.isTTY() && !input.flags.yes) {
111
+ while (true) {
112
+ const answer = await ask(deps, `Cube name [${input.context.derivedName}]: `);
113
+ if ('stop' in answer)
114
+ return { kind: 'stop', code: answer.stop };
115
+ name = answer.value.trim() || input.context.derivedName;
116
+ if (validRepositoryCubeName(name))
117
+ break;
118
+ deps.write(`${NAME_ERROR}\n`);
119
+ }
120
+ }
121
+ if (!validRepositoryCubeName(name)) {
122
+ deps.write(`${NAME_ERROR}\n`);
123
+ return { kind: 'stop', code: 1 };
124
+ }
125
+ let template = input.flags.template;
126
+ if (!template && deps.isTTY() && !input.flags.yes) {
127
+ let menu = 'Choose a template:\n';
128
+ for (let i = 0; i < NEW_CUBE_TEMPLATE_PRESENTATIONS.length; i += 1) {
129
+ const p = NEW_CUBE_TEMPLATE_PRESENTATIONS[i];
130
+ const suffix = i === 0 ? ' (recommended)' : '';
131
+ menu += ` ${i + 1}. ${p.label}${suffix}\n`;
132
+ menu += ` ${p.short_description}\n`;
133
+ }
134
+ deps.write(menu);
135
+ while (!template) {
136
+ const answer = await ask(deps, 'Template [1]: ');
137
+ if ('stop' in answer)
138
+ return { kind: 'stop', code: answer.stop };
139
+ const selected = answer.value.trim();
140
+ if (selected === '' || selected === '1')
141
+ template = 'software-dev';
142
+ else if (selected === '2')
143
+ template = 'starter';
144
+ else
145
+ deps.write('Choose 1 or 2.\n');
146
+ }
147
+ }
148
+ template ??= 'software-dev';
149
+ if (deps.isTTY() && !input.flags.yes) {
150
+ deps.write(`Create this cube?\n` +
151
+ ` Name: ${name}\n` +
152
+ ` Template: ${presentation(template).label}\n` +
153
+ ` Repository: ${input.context.root}\n` +
154
+ ` Server: ${input.serverOrigin}\n`);
155
+ let confirmed = false;
156
+ while (!confirmed) {
157
+ const answer = await ask(deps, 'Create cube? [Y/n]: ');
158
+ if ('stop' in answer)
159
+ return { kind: 'stop', code: answer.stop };
160
+ const confirmation = answer.value.trim().toLowerCase();
161
+ if (confirmation === '' || confirmation === 'y' || confirmation === 'yes') {
162
+ confirmed = true;
163
+ break;
164
+ }
165
+ if (confirmation === 'n' || confirmation === 'no') {
166
+ deps.write('Cube creation cancelled. Nothing was changed.\n');
167
+ return { kind: 'stop', code: 0 };
168
+ }
169
+ deps.write('Enter y or n.\n');
170
+ }
171
+ }
172
+ deps.write('Creating cube...\n');
173
+ const workingRepoName = input.context.derivedName;
174
+ const creation = await deps.createCube({ name, workingRepoName, repository, template });
175
+ try {
176
+ await deps.saveAssociation(repository, {
177
+ cubeId: creation.response.cube_id,
178
+ name: creation.response.name,
179
+ workingRepoName: creation.response.working_repo_name,
180
+ template: creation.response.template,
181
+ });
182
+ }
183
+ catch {
184
+ throw new RepositoryAssociationSaveError();
185
+ }
186
+ renderResult(deps, {
187
+ existing: creation.response.result === 'resolved',
188
+ response: creation.response,
189
+ root: input.context.root,
190
+ serverOrigin: input.serverOrigin,
191
+ mode: input.mode,
192
+ creationOptionsUnused: false,
193
+ });
194
+ return { kind: 'success', creation, existing: creation.response.result === 'resolved' };
195
+ }
196
+ //# sourceMappingURL=repository-cube-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-cube-init.js","sourceRoot":"","sources":["../src/repository-cube-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { CreateCubeRepository, CubeTemplate } from 'borgmcp-shared/protocol';
2
+ export interface GitRepositoryContext {
3
+ root: string;
4
+ commonDir: string;
5
+ derivedName: string;
6
+ publicRepository: Extract<CreateCubeRepository, {
7
+ kind: 'origin';
8
+ }> | null;
9
+ publicRepositoryName: string | null;
10
+ }
11
+ export interface RepositoryAssociation {
12
+ cubeId: string;
13
+ name: string;
14
+ workingRepoName: string;
15
+ template: CubeTemplate;
16
+ }
17
+ export interface RepositoryIdentityDeps {
18
+ runGit?: (cwd: string, args: string[]) => {
19
+ status: number | null;
20
+ stdout?: string | null;
21
+ };
22
+ canonicalPath?: (path: string) => Promise<string>;
23
+ root?: string;
24
+ }
25
+ export declare function resolveGitRepositoryContext(cwd: string, deps?: RepositoryIdentityDeps): Promise<GitRepositoryContext | null>;
26
+ export declare function getOrCreateRepositoryIdentity(context: GitRepositoryContext, deps?: RepositoryIdentityDeps): Promise<CreateCubeRepository>;
27
+ export declare function getRepositoryAssociation(trustIdentity: string, repository: CreateCubeRepository, deps?: RepositoryIdentityDeps): Promise<RepositoryAssociation | null>;
28
+ export declare function saveRepositoryAssociation(trustIdentity: string, repository: CreateCubeRepository, association: RepositoryAssociation, deps?: RepositoryIdentityDeps): Promise<void>;
29
+ //# sourceMappingURL=repository-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-identity.d.ts","sourceRoot":"","sources":["../src/repository-identity.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAalF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAC3E,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAQD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC5F,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAYD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAyBtC;AA0ED,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oBAAoB,EAC7B,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAa/B;AAMD,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,oBAAoB,EAChC,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAIvC;AAED,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,qBAAqB,EAClC,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CAKf"}