borgmcp 3.13.0 → 3.14.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.
@@ -28,6 +28,8 @@ export declare function recoverEnrollmentHelpText(version: string): string;
28
28
  export declare function updateHelpText(version: string): string;
29
29
  /** Product Design-approved client-owned copy for `borg server --help`. */
30
30
  export declare function serverHelpText(): string;
31
+ /** Client-owned help for the server-owned service command namespace. */
32
+ export declare function serverServiceHelpText(): string;
31
33
  /** Client-owned help for repository cube initialization without a drone. */
32
34
  export declare function cubeInitHelpText(version: string): string;
33
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuBzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgB1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAW1D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAgBf;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAM3C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BxD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASjE;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBtD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,MAAM,CAiBvC;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBxD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmC1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQrD"}
1
+ {"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuBzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgB1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAW1D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAgBf;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAM3C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BxD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASjE;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBtD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,MAAM,CAkBvC;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBxD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmC1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQrD"}
package/dist/cli-help.js CHANGED
@@ -187,8 +187,8 @@ export function serverHelpText() {
187
187
  return (`Usage: borg server <command> [arguments]\n\n` +
188
188
  `Commands:\n` +
189
189
  ` setup Prepare local server identity and data; does not start the server.\n` +
190
- ` start Start the verified server in the foreground.\n` +
191
- ` stop Stop the managed local server.\n` +
190
+ ` start Start the verified server in the foreground; press Ctrl-C to stop.\n` +
191
+ ` service install Install and start the loopback-only per-user service so it continues after the terminal closes.\n` +
192
192
  ` status Report verified runtime evidence.\n` +
193
193
  ` update Verify and activate a local server artifact.\n` +
194
194
  ` invite Create a single-use invitation in an interactive terminal.\n` +
@@ -197,8 +197,15 @@ export function serverHelpText() {
197
197
  ` client-grant Grant a client read, write, or manage access to a cube while the server is live; committed changes take effect on the next request.\n` +
198
198
  ` dashboard View the running local server dashboard.\n` +
199
199
  ` cube init Initialize this Git repository's cube; does not create a drone.\n\n` +
200
+ `Managed-service stop and removal are server-owned and are not exposed by this client.\n\n` +
200
201
  `Run borg server <command> --help for server command options.\n`);
201
202
  }
203
+ /** Client-owned help for the server-owned service command namespace. */
204
+ export function serverServiceHelpText() {
205
+ return (`Usage: borg server service <command> [arguments]\n\n` +
206
+ `Commands:\n` +
207
+ ` install Install and start the loopback-only per-user service.\n`);
208
+ }
202
209
  /** Client-owned help for repository cube initialization without a drone. */
203
210
  export function cubeInitHelpText(version) {
204
211
  return (`borg server cube init (borgmcp ${version}) — initialize this Git repository's cube without creating a drone\n\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,yBAAyB,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpG,MAAM,yBAAyB,GAAG,+BAA+B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE1E,wDAAwD;AACxD,MAAM,UAAU,UAAU,CAAC,GAAuB;IAChD,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,CACL,yBAAyB,OAAO,gDAAgD;QAChF,UAAU;QACV,yEAAyE;QACzE,sEAAsE;QACtE,0CAA0C,CAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,CACL,4BAA4B,OAAO,+CAA+C;QAClF,UAAU;QACV,wCAAwC;QACxC,YAAY;QACZ,qEAAqE;QACrE,0EAA0E;QAC1E,kEAAkE;QAClE,6EAA6E;QAC7E,6EAA6E;QAC7E,uEAAuE;QACvE,iEAAiE;QACjE,4DAA4D;QAC5D,UAAU;QACV,kFAAkF;QAClF,+EAA+E;QAC/E,8EAA8E;QAC9E,kFAAkF;QAClF,kCAAkC;QAClC,8EAA8E;QAC9E,wEAAwE,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CACL,4BAA4B,OAAO,0DAA0D;QAC7F,UAAU;QACV,iCAAiC;QACjC,YAAY;QACZ,kEAAkE;QAClE,wCAAwC,yBAAyB,IAAI;QACrE,8EAA8E;QAC9E,kEAAkE;QAClE,yDAAyD;QACzD,8EAA8E;QAC9E,4EAA4E;QAC5E,+EAA+E;QAC/E,kEAAkE,CACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,CACL,uBAAuB,OAAO,+CAA+C;QAC7E,UAAU;QACV,yDAAyD;QACzD,YAAY;QACZ,kEAAkE;QAClE,wCAAwC,yBAAyB,IAAI;QACrE,8EAA8E;QAC9E,kEAAkE;QAClE,yEAAyE;QACzE,gEAAgE;QAChE,yDAAyD;QACzD,oFAAoF;QACpF,8EAA8E;QAC9E,8EAA8E;QAC9E,kFAAkF;QAClF,sEAAsE,CACvE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,CACL,wBAAwB,OAAO,+CAA+C;QAC9E,UAAU;QACV,gFAAgF;QAChF,0CAA0C;QAC1C,oDAAoD,CACrD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CACL,wBAAwB,OAAO,uDAAuD;QACtF,UAAU;QACV,4CAA4C;QAC5C,0DAA0D;QAC1D,0BAA0B;QAC1B,YAAY;QACZ,iFAAiF;QACjF,iDAAiD,CAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,CACL,wBAAwB,OAAO,+DAA+D;QAC9F,UAAU;QACV,8GAA8G;QAC9G,yCAAyC,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA2B,EAC3B,IAAuB,EACvB,OAAe;IAEf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,OAAO,CAAC,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,YAAY,CAAC,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtD,KAAK,YAAY,CAAC,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtD,KAAK,wBAAwB,CAAC,CAAC,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtE,KAAK,oBAAoB,CAAC,CAAC,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACrE,KAAK,SAAS,CAAC,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,QAAQ,CAAC,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,QAAQ,CAAC,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClD,KAAK,YAAY,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,QAAQ,CAAC,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,CACL,iBAAiB;QACjB,8DAA8D;QAC9D,+FAA+F,CAChG,CAAC;AACJ,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,8GAA8G;QAC9G,6EAA6E;QAC7E,oFAAoF;QACpF,oGAAoG;QACpG,kFAAkF;QAClF,yFAAyF;QACzF,kFAAkF;QAClF,0EAA0E;QAC1E,qGAAqG;QACrG,yFAAyF;QACzF,uHAAuH;QACvH,6FAA6F;QAC7F,uFAAuF;QACvF,kFAAkF;QAClF,2FAA2F;QAC3F,0FAA0F;QAC1F,uCAAuC;QACvC,sEAAsE;QACtE,uDAAuD;QACvD,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO,CACL,oCAAoC,OAAO,uDAAuD;QAClG,UAAU;QACV,qDAAqD;QACrD,sCAAsC;QACtC,4FAA4F;QAC5F,kGAAkG,CACnG,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,CACL,cAAc,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,uDAAuD;QAC3G,UAAU;QACV,gEAAgE;QAChE,+EAA+E;QAC/E,8CAA8C;QAC9C,yFAAyF;QACzF,oGAAoG;QACpG,+FAA+F;QAC/F,8FAA8F;QAC9F,yDAAyD;QACzD,4FAA4F;QAC5F,+FAA+F;QAC/F,kGAAkG;QAClG,0FAA0F;QAC1F,8FAA8F;QAC9F,mCAAmC;QACnC,2CAA2C,CAC5C,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,8CAA8C;QAC9C,aAAa;QACb,iFAAiF;QACjF,iFAAiF;QACjF,sHAAsH;QACtH,gDAAgD;QAChD,2DAA2D;QAC3D,yEAAyE;QACzE,mGAAmG;QACnG,+IAA+I;QAC/I,uJAAuJ;QACvJ,0DAA0D;QAC1D,mFAAmF;QACnF,2FAA2F;QAC3F,gEAAgE,CACjE,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,qBAAqB;IACnC,OAAO,CACL,sDAAsD;QACtD,aAAa;QACb,oEAAoE,CACrE,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,CACL,kCAAkC,OAAO,wEAAwE;QACjH,UAAU;QACV,uCAAuC;QACvC,YAAY;QACZ,4FAA4F;QAC5F,gFAAgF;QAChF,8FAA8F;QAC9F,gBAAgB,yBAAyB,iCAAiC,yBAAyB,KAAK;QACxG,oFAAoF;QACpF,uDAAuD;QACvD,0FAA0F;QAC1F,2FAA2F;QAC3F,+FAA+F,CAChG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CACL,4BAA4B,OAAO,4CAA4C;QAC/E,UAAU;QACV,qFAAqF;QACrF,sFAAsF;QACtF,4EAA4E;QAC5E,6EAA6E;QAC7E,sFAAsF;QACtF,8EAA8E;QAC9E,uGAAuG;QACvG,2DAA2D;QAC3D,UAAU;QACV,oFAAoF;QACpF,mEAAmE;QACnE,6FAA6F;QAC7F,wFAAwF;QACxF,sFAAsF;QACtF,mGAAmG;QACnG,gBAAgB,yBAAyB,kCAAkC,yBAAyB,KAAK;QACzG,yEAAyE;QACzE,6DAA6D;QAC7D,+FAA+F;QAC/F,gFAAgF;QAChF,qFAAqF;QACrF,iCAAiC;QACjC,wFAAwF;QACxF,4FAA4F;QAC5F,8FAA8F;QAC9F,0FAA0F;QAC1F,2DAA2D;QAC3D,wEAAwE;QACxE,qFAAqF;QACrF,qFAAqF,CACtF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,CACL,wCAAwC,OAAO,iEAAiE;QAChH,8FAA8F;QAC9F,+FAA+F;QAC/F,6FAA6F;QAC7F,qBAAqB;QACrB,8FAA8F;QAC9F,0FAA0F;QAC1F,UAAU;QACV,6GAA6G;QAC7G,+FAA+F;QAC/F,wGAAwG;QACxG,kEAAkE;QAClE,UAAU;QACV,0FAA0F;QAC1F,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,8 +1,11 @@
1
1
  import { type SpawnOptions } from 'node:child_process';
2
- export declare const SERVER_LIFECYCLE_COMMANDS: readonly ["setup", "start", "stop", "status", "update", "invite", "cert-reissue", "client-list", "client-grant", "dashboard"];
2
+ export declare const SERVER_LIFECYCLE_COMMANDS: readonly ["setup", "start", "status", "update", "invite", "cert-reissue", "client-list", "client-grant", "dashboard"];
3
3
  export type ServerLifecycleCommand = typeof SERVER_LIFECYCLE_COMMANDS[number];
4
+ export type ServerFacadeCommand = ServerLifecycleCommand | 'service install';
4
5
  export type ParsedServerFacadeArgs = {
5
6
  kind: 'help';
7
+ } | {
8
+ kind: 'service-help';
6
9
  } | {
7
10
  kind: 'cube-init-help';
8
11
  } | {
@@ -10,10 +13,10 @@ export type ParsedServerFacadeArgs = {
10
13
  args: string[];
11
14
  } | {
12
15
  kind: 'command-help';
13
- command: ServerLifecycleCommand;
16
+ command: ServerFacadeCommand;
14
17
  } | {
15
18
  kind: 'command';
16
- command: ServerLifecycleCommand;
19
+ command: ServerFacadeCommand;
17
20
  args: string[];
18
21
  } | {
19
22
  kind: 'error';
@@ -54,11 +57,11 @@ export type ServerFacadeProcessResult = {
54
57
  export declare function buildDefaultServerFacadeClientDeps(buildDeps?: AssimilateDepsBuilder): ServerFacadeClientDeps;
55
58
  export declare function cubeInitUsageErrorText(reason: string): string;
56
59
  export declare function unknownServerCommandText(command: string): string;
57
- export declare function serverLifecycleHelpText(command: ServerLifecycleCommand): string;
58
- export declare function missingServerExecutableText(command: ServerLifecycleCommand): string;
59
- export declare function serverCommandStartupFailureText(command: ServerLifecycleCommand): string;
60
+ export declare function serverLifecycleHelpText(command: ServerFacadeCommand): string;
61
+ export declare function missingServerExecutableText(command: ServerFacadeCommand): string;
62
+ export declare function serverCommandStartupFailureText(command: ServerFacadeCommand): string;
60
63
  export declare function runServerFacadeProcess(input: {
61
- command: ServerLifecycleCommand;
64
+ command: ServerFacadeCommand;
62
65
  args: readonly string[];
63
66
  }, deps?: ServerFacadeProcessDeps): Promise<ServerFacadeProcessResult>;
64
67
  /** Routes every facade outcome before client initialization or network work. */
@@ -1 +1 @@
1
- {"version":3,"file":"server-facade.d.ts","sourceRoot":"","sources":["../src/server-facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-facade.d.ts","sourceRoot":"","sources":["../src/server-facade.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import { spawn as spawnChild } from 'node:child_process';
2
2
  import { constants } from 'node:os';
3
3
  import chalk from 'chalk';
4
- import { cubeInitHelpText, isHelpFlag, serverHelpText } from './cli-help.js';
4
+ import { cubeInitHelpText, isHelpFlag, serverHelpText, serverServiceHelpText, } from './cli-help.js';
5
5
  import { consolePrefix } from './console-prefix.js';
6
6
  import { getPackageVersion } from './version.js';
7
7
  export const SERVER_LIFECYCLE_COMMANDS = [
8
8
  'setup',
9
9
  'start',
10
- 'stop',
11
10
  'status',
12
11
  'update',
13
12
  'invite',
@@ -30,6 +29,22 @@ export function parseServerFacadeArgs(args) {
30
29
  ? { kind: 'cube-init-help' }
31
30
  : { kind: 'cube-init', args };
32
31
  }
32
+ if (command === 'service') {
33
+ const [subcommand, ...args] = rest;
34
+ if (subcommand === undefined || isHelpFlag(subcommand)) {
35
+ return { kind: 'service-help' };
36
+ }
37
+ if (subcommand !== 'install') {
38
+ return {
39
+ kind: 'error',
40
+ reason: 'unknown-command',
41
+ command: subcommand === undefined ? command : `${command} ${subcommand}`,
42
+ };
43
+ }
44
+ return args.some(isHelpFlag)
45
+ ? { kind: 'command-help', command: 'service install' }
46
+ : { kind: 'command', command: 'service install', args };
47
+ }
33
48
  if (!SERVER_LIFECYCLE_COMMANDS.includes(command)) {
34
49
  return { kind: 'error', reason: 'unknown-command', command };
35
50
  }
@@ -104,7 +119,7 @@ function inertCommand(command) {
104
119
  }
105
120
  export function unknownServerCommandText(command) {
106
121
  return (`Unknown server command: ${inertCommand(command)}.\n` +
107
- `Available commands: setup, start, stop, status, update, invite, cert-reissue, client-list, client-grant, dashboard, cube init.\n` +
122
+ `Available commands: setup, start, service install, status, update, invite, cert-reissue, client-list, client-grant, dashboard, cube init.\n` +
108
123
  `Next: run borg server --help.\n`);
109
124
  }
110
125
  export function serverLifecycleHelpText(command) {
@@ -125,7 +140,8 @@ function isMissingServerExecutable(error) {
125
140
  return error.code === 'ENOENT';
126
141
  }
127
142
  export function runServerFacadeProcess(input, deps = defaultProcessDeps) {
128
- const child = deps.spawn('borg-mcp-server', [input.command, ...input.args], { shell: false, stdio: 'inherit' });
143
+ const command = input.command.split(' ');
144
+ const child = deps.spawn('borg-mcp-server', [...command, ...input.args], { shell: false, stdio: 'inherit' });
129
145
  return new Promise((resolve) => {
130
146
  let settled = false;
131
147
  const forwarders = new Map();
@@ -181,6 +197,10 @@ export async function runEarlyServerFacade(argv, deps = defaultProcessDeps, outp
181
197
  output.writeStdout(serverHelpText());
182
198
  return 0;
183
199
  }
200
+ if (parsed.kind === 'service-help') {
201
+ output.writeStdout(serverServiceHelpText());
202
+ return 0;
203
+ }
184
204
  if (parsed.kind === 'cube-init-help') {
185
205
  output.writeStdout(cubeInitHelpText(getPackageVersion()));
186
206
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"server-facade.js","sourceRoot":"","sources":["../src/server-facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-facade.js","sourceRoot":"","sources":["../src/server-facade.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,18 @@ must never imply that a daemon, LaunchAgent, or systemd service was installed.
26
26
  Ctrl-C stops the foreground process. Managed persistence is a separate explicit
27
27
  handoff.
28
28
 
29
+ To install and start the server as a loopback-only per-user service, run:
30
+
31
+ ```bash
32
+ borg server service install
33
+ ```
34
+
35
+ Add `--json` for machine-readable server output. The client passes this command
36
+ to the verified `borg-mcp-server` executable; service definitions, validation,
37
+ startup, replacement, and rollback remain server-owned. The service continues
38
+ after the terminal closes. Stopping or removing the managed service is also
39
+ server-owned and is not exposed by this client.
40
+
29
41
  Use installed help for the command set and exact options for your version:
30
42
 
31
43
  ```text
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "borgmcp",
3
- "version": "3.13.0",
3
+ "version": "3.14.0",
4
4
  "description": "Coordinate AI coding agents in shared cubes. Works with Claude Code, Codex, and OpenCode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/cli-help.ts CHANGED
@@ -229,8 +229,8 @@ export function serverHelpText(): string {
229
229
  `Usage: borg server <command> [arguments]\n\n` +
230
230
  `Commands:\n` +
231
231
  ` setup Prepare local server identity and data; does not start the server.\n` +
232
- ` start Start the verified server in the foreground.\n` +
233
- ` stop Stop the managed local server.\n` +
232
+ ` start Start the verified server in the foreground; press Ctrl-C to stop.\n` +
233
+ ` service install Install and start the loopback-only per-user service so it continues after the terminal closes.\n` +
234
234
  ` status Report verified runtime evidence.\n` +
235
235
  ` update Verify and activate a local server artifact.\n` +
236
236
  ` invite Create a single-use invitation in an interactive terminal.\n` +
@@ -239,10 +239,20 @@ export function serverHelpText(): string {
239
239
  ` client-grant Grant a client read, write, or manage access to a cube while the server is live; committed changes take effect on the next request.\n` +
240
240
  ` dashboard View the running local server dashboard.\n` +
241
241
  ` cube init Initialize this Git repository's cube; does not create a drone.\n\n` +
242
+ `Managed-service stop and removal are server-owned and are not exposed by this client.\n\n` +
242
243
  `Run borg server <command> --help for server command options.\n`
243
244
  );
244
245
  }
245
246
 
247
+ /** Client-owned help for the server-owned service command namespace. */
248
+ export function serverServiceHelpText(): string {
249
+ return (
250
+ `Usage: borg server service <command> [arguments]\n\n` +
251
+ `Commands:\n` +
252
+ ` install Install and start the loopback-only per-user service.\n`
253
+ );
254
+ }
255
+
246
256
  /** Client-owned help for repository cube initialization without a drone. */
247
257
  export function cubeInitHelpText(version: string): string {
248
258
  return (
@@ -1,14 +1,18 @@
1
1
  import { spawn as spawnChild, type SpawnOptions } from 'node:child_process';
2
2
  import { constants } from 'node:os';
3
3
  import chalk from 'chalk';
4
- import { cubeInitHelpText, isHelpFlag, serverHelpText } from './cli-help.js';
4
+ import {
5
+ cubeInitHelpText,
6
+ isHelpFlag,
7
+ serverHelpText,
8
+ serverServiceHelpText,
9
+ } from './cli-help.js';
5
10
  import { consolePrefix } from './console-prefix.js';
6
11
  import { getPackageVersion } from './version.js';
7
12
 
8
13
  export const SERVER_LIFECYCLE_COMMANDS = [
9
14
  'setup',
10
15
  'start',
11
- 'stop',
12
16
  'status',
13
17
  'update',
14
18
  'invite',
@@ -18,13 +22,15 @@ export const SERVER_LIFECYCLE_COMMANDS = [
18
22
  'dashboard',
19
23
  ] as const;
20
24
  export type ServerLifecycleCommand = typeof SERVER_LIFECYCLE_COMMANDS[number];
25
+ export type ServerFacadeCommand = ServerLifecycleCommand | 'service install';
21
26
 
22
27
  export type ParsedServerFacadeArgs =
23
28
  | { kind: 'help' }
29
+ | { kind: 'service-help' }
24
30
  | { kind: 'cube-init-help' }
25
31
  | { kind: 'cube-init'; args: string[] }
26
- | { kind: 'command-help'; command: ServerLifecycleCommand }
27
- | { kind: 'command'; command: ServerLifecycleCommand; args: string[] }
32
+ | { kind: 'command-help'; command: ServerFacadeCommand }
33
+ | { kind: 'command'; command: ServerFacadeCommand; args: string[] }
28
34
  | { kind: 'error'; reason: 'unknown-command'; command: string };
29
35
 
30
36
  export function isClientOwnedCubeInitArgv(argv: readonly string[]): boolean {
@@ -42,6 +48,22 @@ export function parseServerFacadeArgs(args: readonly string[]): ParsedServerFaca
42
48
  ? { kind: 'cube-init-help' }
43
49
  : { kind: 'cube-init', args };
44
50
  }
51
+ if (command === 'service') {
52
+ const [subcommand, ...args] = rest;
53
+ if (subcommand === undefined || isHelpFlag(subcommand)) {
54
+ return { kind: 'service-help' };
55
+ }
56
+ if (subcommand !== 'install') {
57
+ return {
58
+ kind: 'error',
59
+ reason: 'unknown-command',
60
+ command: subcommand === undefined ? command : `${command} ${subcommand}`,
61
+ };
62
+ }
63
+ return args.some(isHelpFlag)
64
+ ? { kind: 'command-help', command: 'service install' }
65
+ : { kind: 'command', command: 'service install', args };
66
+ }
45
67
  if (!(SERVER_LIFECYCLE_COMMANDS as readonly string[]).includes(command)) {
46
68
  return { kind: 'error', reason: 'unknown-command', command };
47
69
  }
@@ -173,19 +195,19 @@ function inertCommand(command: string): string {
173
195
  export function unknownServerCommandText(command: string): string {
174
196
  return (
175
197
  `Unknown server command: ${inertCommand(command)}.\n` +
176
- `Available commands: setup, start, stop, status, update, invite, cert-reissue, client-list, client-grant, dashboard, cube init.\n` +
198
+ `Available commands: setup, start, service install, status, update, invite, cert-reissue, client-list, client-grant, dashboard, cube init.\n` +
177
199
  `Next: run borg server --help.\n`
178
200
  );
179
201
  }
180
202
 
181
- export function serverLifecycleHelpText(command: ServerLifecycleCommand): string {
203
+ export function serverLifecycleHelpText(command: ServerFacadeCommand): string {
182
204
  return (
183
205
  `Usage: borg server ${command} [arguments]\n\n` +
184
206
  `Command arguments are server-owned and pass to the verified borg-mcp-server executable when run.\n`
185
207
  );
186
208
  }
187
209
 
188
- export function missingServerExecutableText(command: ServerLifecycleCommand): string {
210
+ export function missingServerExecutableText(command: ServerFacadeCommand): string {
189
211
  return (
190
212
  `Local server command is unavailable: borg-mcp-server was not found.\n` +
191
213
  `Next: install a verified borgmcp-server release, then rerun borg server ${command}.\n` +
@@ -193,7 +215,7 @@ export function missingServerExecutableText(command: ServerLifecycleCommand): st
193
215
  );
194
216
  }
195
217
 
196
- export function serverCommandStartupFailureText(command: ServerLifecycleCommand): string {
218
+ export function serverCommandStartupFailureText(command: ServerFacadeCommand): string {
197
219
  return (
198
220
  `Local server command could not be started.\n` +
199
221
  `Next: check local permissions and system resources, then rerun borg server ${inertCommand(command)}.\n` +
@@ -206,12 +228,13 @@ function isMissingServerExecutable(error: Error): boolean {
206
228
  }
207
229
 
208
230
  export function runServerFacadeProcess(
209
- input: { command: ServerLifecycleCommand; args: readonly string[] },
231
+ input: { command: ServerFacadeCommand; args: readonly string[] },
210
232
  deps: ServerFacadeProcessDeps = defaultProcessDeps,
211
233
  ): Promise<ServerFacadeProcessResult> {
234
+ const command = input.command.split(' ');
212
235
  const child = deps.spawn(
213
236
  'borg-mcp-server',
214
- [input.command, ...input.args],
237
+ [...command, ...input.args],
215
238
  { shell: false, stdio: 'inherit' },
216
239
  );
217
240
 
@@ -274,6 +297,10 @@ export async function runEarlyServerFacade(
274
297
  output.writeStdout(serverHelpText());
275
298
  return 0;
276
299
  }
300
+ if (parsed.kind === 'service-help') {
301
+ output.writeStdout(serverServiceHelpText());
302
+ return 0;
303
+ }
277
304
  if (parsed.kind === 'cube-init-help') {
278
305
  output.writeStdout(cubeInitHelpText(getPackageVersion()));
279
306
  return 0;