borgmcp-server 0.1.8 → 0.1.9
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/README.md +57 -43
- package/SECURITY.md +12 -1
- package/dist/bootstrap.d.ts +8 -1
- package/dist/bootstrap.js +39 -6
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +176 -1
- package/dist/cli.js.map +1 -1
- package/dist/credentials.d.ts +1 -0
- package/dist/credentials.js +7 -0
- package/dist/credentials.js.map +1 -1
- package/dist/debug-log.d.ts +1 -1
- package/dist/debug-log.js +1 -1
- package/dist/debug-log.js.map +1 -1
- package/dist/https-server.d.ts +3 -0
- package/dist/https-server.js +25 -7
- package/dist/https-server.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/dist/managed-service.d.ts +20 -0
- package/dist/managed-service.js +80 -0
- package/dist/managed-service.js.map +1 -0
- package/dist/portable-credential-store.d.ts +16 -0
- package/dist/portable-credential-store.js +305 -0
- package/dist/portable-credential-store.js.map +1 -0
- package/dist/registry-artifact.d.ts +11 -0
- package/dist/registry-artifact.js +99 -0
- package/dist/registry-artifact.js.map +1 -0
- package/dist/runtime-identity.d.ts +19 -0
- package/dist/runtime-identity.js +61 -0
- package/dist/runtime-identity.js.map +1 -0
- package/dist/runtime-lifecycle.d.ts +56 -0
- package/dist/runtime-lifecycle.js +486 -0
- package/dist/runtime-lifecycle.js.map +1 -0
- package/dist/runtime-operator.d.ts +24 -0
- package/dist/runtime-operator.js +95 -0
- package/dist/runtime-operator.js.map +1 -0
- package/dist/service.d.ts +53 -5
- package/dist/service.js +326 -15
- package/dist/service.js.map +1 -1
- package/dist/store.d.ts +1 -0
- package/dist/store.js +8 -0
- package/dist/store.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/src/bootstrap.ts +46 -5
- package/src/cli.ts +171 -1
- package/src/credentials.ts +7 -0
- package/src/debug-log.ts +2 -1
- package/src/https-server.ts +27 -7
- package/src/index.ts +46 -1
- package/src/main.ts +1 -0
- package/src/managed-service.ts +107 -0
- package/src/portable-credential-store.ts +306 -0
- package/src/registry-artifact.ts +111 -0
- package/src/runtime-identity.ts +82 -0
- package/src/runtime-lifecycle.ts +567 -0
- package/src/runtime-operator.ts +124 -0
- package/src/service.ts +401 -20
- package/src/store.ts +10 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ HTTPS.
|
|
|
6
6
|
|
|
7
7
|
## Release status
|
|
8
8
|
|
|
9
|
-
The current public preview is `borgmcp-server@0.1.
|
|
9
|
+
The current public preview is `borgmcp-server@0.1.8`, published on npm.
|
|
10
10
|
Versions `0.1.2` and `0.1.3` were not published; their immutable tags are
|
|
11
11
|
preserved failed-release evidence and are not installation or dogfood targets.
|
|
12
12
|
Version `0.1.5` includes the reviewed owner-enrollment, idempotent multi-cube
|
|
@@ -16,18 +16,20 @@ redacted debug logging, and cube-scoped invitation baseline. Relative to
|
|
|
16
16
|
taxonomy routing, durable SSE replay and heartbeat delivery, fleet liveness
|
|
17
17
|
signals, typed terminal drone eviction, and explicit manage-access denials for
|
|
18
18
|
visible non-managing principals. Immutable `v0.1.6` failed safely before artifact
|
|
19
|
-
upload or npm publication and is not an install target. The published `0.1.
|
|
20
|
-
package is the reviewed
|
|
21
|
-
`borgmcp-shared@0.4.
|
|
22
|
-
`borgmcp-server@0.1.
|
|
23
|
-
|
|
19
|
+
upload or npm publication and is not an install target. The published `0.1.8`
|
|
20
|
+
package is the reviewed session-continuity release and consumes the audited exact
|
|
21
|
+
`borgmcp-shared@0.4.3` registry release. Current source is the unpublished
|
|
22
|
+
`borgmcp-server@0.1.9` release candidate, adding the verified immutable runtime
|
|
23
|
+
lifecycle, portable managed-service adapters, and direct local owner setup.
|
|
24
|
+
Version `0.1.8` remains the current
|
|
24
25
|
install target until the candidate passes exact-SHA review, immutable tag
|
|
25
26
|
publication, and bounded registry verification.
|
|
26
27
|
|
|
27
|
-
Setup prepares local identity and storage
|
|
28
|
-
|
|
28
|
+
Setup prepares local identity and storage, writes owner access to the private
|
|
29
|
+
portable credential file, and prints no credential or invitation; it creates no cube.
|
|
30
|
+
Version `0.1.1` completed the
|
|
29
31
|
documented exact-source, tagged-artifact, and protected-publication gates.
|
|
30
|
-
Version `0.1.
|
|
32
|
+
Version `0.1.8` completed a fresh exact-source, tagged-artifact, tokenless OIDC
|
|
31
33
|
publication, provenance, signature, and attestation gate chain.
|
|
32
34
|
|
|
33
35
|
## Repository topology
|
|
@@ -63,19 +65,49 @@ npm install --global borgmcp-server
|
|
|
63
65
|
|
|
64
66
|
The default data directory is `~/.borg/server`. Setup creates the local
|
|
65
67
|
database, credential-digest key, local certificate authority, server
|
|
66
|
-
certificate, one
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
certificate, and one same-machine owner binding. The matching client credential
|
|
69
|
+
is written atomically to the portable owner-only file at
|
|
70
|
+
`~/.borg/credentials` (mode `0600`). Its `~/.borg` parent must be owner-controlled
|
|
71
|
+
and not group/world-writable. Setup prints no credential, invitation, or credential path,
|
|
72
|
+
and creates no cube.
|
|
73
|
+
|
|
74
|
+
Credential updates share the client-compatible `~/.borg/credentials.lock` protocol.
|
|
75
|
+
A live holder is waited on for a bounded interval. A corrupt or dead-holder lock
|
|
76
|
+
fails closed and is never reclaimed automatically; remove it only after confirming
|
|
77
|
+
that no Borg process is running.
|
|
69
78
|
|
|
70
79
|
```sh
|
|
71
80
|
borg-mcp-server setup
|
|
72
81
|
borg-mcp-server start
|
|
82
|
+
borg assimilate
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Setup verifies and prepares the latest immutable npm artifact, but starts no
|
|
86
|
+
listener or managed service. Running `setup` again is idempotent: it preserves
|
|
87
|
+
the existing data and identity and never repeats credentials. After stopping the
|
|
88
|
+
server, `borg-mcp-server setup --reinitialize` explicitly destroys and recreates
|
|
89
|
+
the server identity and database; use it only when prior state may be discarded.
|
|
90
|
+
|
|
91
|
+
`borg-mcp-server start` remains a foreground command. Ctrl-C stops it, and it
|
|
92
|
+
does not install or enable persistence. Inspect exact running evidence or stage
|
|
93
|
+
and activate a verified update with:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
borg-mcp-server status
|
|
97
|
+
borg-mcp-server update
|
|
73
98
|
```
|
|
74
99
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
100
|
+
When stdout is not a terminal, `status` and `update` emit one bounded JSON
|
|
101
|
+
record. Status never derives a build identity from a source checkout. If an
|
|
102
|
+
older package does not provide embedded source identity, the field is reported
|
|
103
|
+
as unavailable.
|
|
104
|
+
|
|
105
|
+
The server library provides matching launchd and systemd adapter definitions
|
|
106
|
+
that point at the atomically selected `current` artifact and preserve
|
|
107
|
+
`BORG_SERVER_DATA_DIR`. Managed persistence is an explicit, separately reviewed
|
|
108
|
+
handoff; foreground start never installs it. The lifecycle contract and terminal
|
|
109
|
+
copy are documented in
|
|
110
|
+
[`docs/design/sprint-6-server-lifecycle.md`](docs/design/sprint-6-server-lifecycle.md).
|
|
79
111
|
|
|
80
112
|
The server listens on `https://127.0.0.1:7091` by default. Use
|
|
81
113
|
`BORG_SERVER_DATA_DIR` to select another data directory.
|
|
@@ -123,37 +155,19 @@ before running those commands.
|
|
|
123
155
|
```sh
|
|
124
156
|
borg-mcp-server client-rotate <client-id>
|
|
125
157
|
borg-mcp-server client-revoke <client-id>
|
|
126
|
-
borg-mcp-server
|
|
127
|
-
borg-mcp-server client-invite <cube-name-or-id> [--access <read|write|manage>]
|
|
128
|
-
borg-mcp-server owner-invite
|
|
158
|
+
borg-mcp-server invite
|
|
129
159
|
borg-mcp-server client-grant <client-id> <cube-id> <read|write|manage>
|
|
130
160
|
borg-mcp-server client-ungrant <client-id> <cube-id>
|
|
131
161
|
```
|
|
132
162
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
the default; explicit `manage` adds cube administration. Attach responses and
|
|
142
|
-
drone listings identify the effective `observer` or `participant` posture. The
|
|
143
|
-
command prints the resolved display name, full cube ID,
|
|
144
|
-
effective access, and capability summary before the single-use invitation.
|
|
145
|
-
|
|
146
|
-
For automation and duplicate-name environments, use the full lowercase canonical
|
|
147
|
-
cube UUID. A display name must match exactly and case-sensitively. Unknown names,
|
|
148
|
-
UUID-like malformed selectors, and duplicate names fail without creating or
|
|
149
|
-
printing an invitation; duplicate-name errors list the candidate IDs so the
|
|
150
|
-
operator can rerun unambiguously. Claiming a scoped invitation atomically creates
|
|
151
|
-
the client credential binding and exactly that cube grant. It grants no server
|
|
152
|
-
capability and no access to any other cube.
|
|
153
|
-
|
|
154
|
-
Both invitation forms are single-use and shown once. Treat setup, enrollment,
|
|
155
|
-
invitation, and rotation output as secrets; do not paste it into issues, logs, or
|
|
156
|
-
chat.
|
|
163
|
+
`invite` uses the locally stored owner credential to authorize one existing
|
|
164
|
+
single-use client invitation and prints it only in an interactive terminal. It
|
|
165
|
+
never places a credential or invitation in argv or environment, and refuses
|
|
166
|
+
non-interactive output. The invitation can then be exchanged through the existing
|
|
167
|
+
enrollment protocol. It grants no server capability or cube access.
|
|
168
|
+
|
|
169
|
+
Invitations and rotation output are secrets; do not paste them into issues, logs,
|
|
170
|
+
or chat.
|
|
157
171
|
|
|
158
172
|
## Capacity controls
|
|
159
173
|
|
package/SECURITY.md
CHANGED
|
@@ -31,8 +31,19 @@ has been coordinated.
|
|
|
31
31
|
private LAN.
|
|
32
32
|
- Restrict the data directory and all generated credentials to the service
|
|
33
33
|
account.
|
|
34
|
-
-
|
|
34
|
+
- Keep `~/.borg` owner-controlled and not group/world-writable, and keep the
|
|
35
|
+
`~/.borg/credentials` file owner-only (`0600`); setup never prints the local owner credential.
|
|
36
|
+
- Never automatically replace or reclaim `~/.borg/credentials.lock`; confirm no
|
|
37
|
+
Borg process is running before manually removing a reported stale lock.
|
|
38
|
+
- Create single-use invitations only in a private interactive terminal.
|
|
35
39
|
- Stop the server before offline credential rotation or revocation.
|
|
36
40
|
- Back up sensitive state using encrypted storage and test restoration in a
|
|
37
41
|
separate environment.
|
|
38
42
|
- Review dependency and release provenance before upgrading.
|
|
43
|
+
- Use the verified runtime lifecycle rather than pointing a service at a mutable
|
|
44
|
+
source checkout. Activation verifies npm integrity and the staged artifact
|
|
45
|
+
tree, switches the `current` target atomically, and accepts a restarted process
|
|
46
|
+
only when its authenticated runtime identity matches the selected artifact.
|
|
47
|
+
- Review generated launchd or systemd definitions before enabling them. They
|
|
48
|
+
must retain the intended data directory and execute the immutable `current`
|
|
49
|
+
artifact target.
|
package/dist/bootstrap.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import type { PortableServerCredential } from "./portable-credential-store.js";
|
|
1
2
|
export interface BootstrapResult {
|
|
2
3
|
readonly serverId: string;
|
|
3
4
|
readonly caFingerprint: string;
|
|
5
|
+
/** @deprecated Retained for offline administrative compatibility; never rendered by setup. */
|
|
4
6
|
readonly recoveryCredential: string;
|
|
7
|
+
/** @deprecated The already-consumed bootstrap invitation; never rendered by setup. */
|
|
5
8
|
readonly initialInvitation: string;
|
|
9
|
+
readonly ownerAccess: {
|
|
10
|
+
readonly clientId: string;
|
|
11
|
+
readonly serverCapabilities: readonly ["create_cube"];
|
|
12
|
+
};
|
|
6
13
|
readonly paths: {
|
|
7
14
|
readonly database: string;
|
|
8
15
|
readonly digestKey: string;
|
|
@@ -13,6 +20,6 @@ export interface BootstrapResult {
|
|
|
13
20
|
readonly config: string;
|
|
14
21
|
};
|
|
15
22
|
}
|
|
16
|
-
export declare function bootstrapServer(dataDirectory: string, bindHost?: string, clock?: () => Date): Promise<BootstrapResult>;
|
|
23
|
+
export declare function bootstrapServer(dataDirectory: string, bindHost?: string, clock?: () => Date, persistOwnerCredential?: (record: PortableServerCredential) => Promise<void>): Promise<BootstrapResult>;
|
|
17
24
|
export declare function loadDigestKey(path: string): Promise<Buffer>;
|
|
18
25
|
export declare function loadTlsPrivateKey(path: string): Promise<Buffer>;
|
package/dist/bootstrap.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createHash, randomBytes, randomUUID, X509Certificate } from "node:crypto";
|
|
2
|
-
import { lstat, readFile, stat, writeFile } from "node:fs/promises";
|
|
2
|
+
import { lstat, readFile, stat, unlink, writeFile } from "node:fs/promises";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
4
|
import { generate } from "selfsigned";
|
|
5
|
-
import { CredentialAuthority, CredentialDigester } from "./credentials.js";
|
|
5
|
+
import { CredentialAuthority, CredentialDigester, generateSecret } from "./credentials.js";
|
|
6
6
|
import { openStore } from "./store.js";
|
|
7
|
-
export async function bootstrapServer(dataDirectory, bindHost = "127.0.0.1", clock = () => new Date()) {
|
|
7
|
+
export async function bootstrapServer(dataDirectory, bindHost = "127.0.0.1", clock = () => new Date(), persistOwnerCredential = async () => undefined) {
|
|
8
8
|
const directory = resolve(dataDirectory);
|
|
9
9
|
const paths = {
|
|
10
10
|
database: join(directory, "borg.db"),
|
|
@@ -41,6 +41,7 @@ export async function bootstrapServer(dataDirectory, bindHost = "127.0.0.1", clo
|
|
|
41
41
|
.digest("hex");
|
|
42
42
|
const digestKey = randomBytes(32);
|
|
43
43
|
const runtime = await openStore({ path: paths.database, clock });
|
|
44
|
+
let completed = false;
|
|
44
45
|
try {
|
|
45
46
|
await Promise.all([
|
|
46
47
|
writePrivate(paths.digestKey, digestKey),
|
|
@@ -59,14 +60,38 @@ export async function bootstrapServer(dataDirectory, bindHost = "127.0.0.1", clo
|
|
|
59
60
|
try {
|
|
60
61
|
const authority = new CredentialAuthority(runtime.credentials, digester, clock);
|
|
61
62
|
const recoveryCredential = authority.createRecoveryCredential();
|
|
62
|
-
const
|
|
63
|
-
|
|
63
|
+
const invitation = authority.createBootstrapInvitation(15 * 60_000);
|
|
64
|
+
const credential = generateSecret();
|
|
65
|
+
const enrollment = authority.exchangeInvitation({
|
|
66
|
+
invitation,
|
|
67
|
+
retryKey: randomUUID(),
|
|
68
|
+
clientCredential: credential,
|
|
69
|
+
clientName: "Local owner",
|
|
70
|
+
});
|
|
71
|
+
if (enrollment?.purpose !== "owner" || enrollment.serverCapabilities[0] !== "create_cube") {
|
|
72
|
+
throw new Error("Local owner provisioning failed.");
|
|
73
|
+
}
|
|
74
|
+
await persistOwnerCredential(Object.freeze({
|
|
75
|
+
version: 2,
|
|
76
|
+
origin: `https://${bindHost === "::1" ? "[::1]" : bindHost}:7091`,
|
|
77
|
+
trustIdentity: `spki-sha256:${caFingerprint}`,
|
|
78
|
+
credential,
|
|
79
|
+
clientId: enrollment.clientId,
|
|
80
|
+
serverCapabilities: ["create_cube"],
|
|
81
|
+
}));
|
|
82
|
+
const result = {
|
|
64
83
|
serverId,
|
|
65
84
|
caFingerprint,
|
|
66
85
|
recoveryCredential,
|
|
67
|
-
initialInvitation,
|
|
86
|
+
initialInvitation: invitation,
|
|
87
|
+
ownerAccess: {
|
|
88
|
+
clientId: enrollment.clientId,
|
|
89
|
+
serverCapabilities: ["create_cube"],
|
|
90
|
+
},
|
|
68
91
|
paths,
|
|
69
92
|
};
|
|
93
|
+
completed = true;
|
|
94
|
+
return result;
|
|
70
95
|
}
|
|
71
96
|
finally {
|
|
72
97
|
digester.destroy();
|
|
@@ -75,6 +100,14 @@ export async function bootstrapServer(dataDirectory, bindHost = "127.0.0.1", clo
|
|
|
75
100
|
finally {
|
|
76
101
|
digestKey.fill(0);
|
|
77
102
|
runtime.close();
|
|
103
|
+
if (!completed) {
|
|
104
|
+
await Promise.all([
|
|
105
|
+
...Object.values(paths),
|
|
106
|
+
`${paths.database}-wal`,
|
|
107
|
+
`${paths.database}-shm`,
|
|
108
|
+
`${paths.database}-journal`,
|
|
109
|
+
].map((path) => unlink(path).catch(() => undefined)));
|
|
110
|
+
}
|
|
78
111
|
}
|
|
79
112
|
}
|
|
80
113
|
async function writePrivate(path, value) {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export interface CliIo {
|
|
|
3
3
|
readonly stdout: (message: string) => void;
|
|
4
4
|
readonly stderr: (message: string) => void;
|
|
5
5
|
readonly readSecret?: (prompt: string) => Promise<string>;
|
|
6
|
+
readonly isTTY?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare function runCli(args: readonly string[], service: ServerService, io: CliIo): Promise<number>;
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { RuntimeUpdateFailure } from "./runtime-operator.js";
|
|
1
2
|
const usage = `Usage: borg-mcp-server <command> [options]
|
|
2
3
|
|
|
3
4
|
Commands:
|
|
4
5
|
setup [--reinitialize] Prepare an offline server installation
|
|
5
6
|
start Start the server process
|
|
7
|
+
status [--json] Report exact local runtime evidence
|
|
8
|
+
update [--json] Verify and activate the latest server artifact
|
|
9
|
+
invite Create a single-use invitation in an interactive terminal.
|
|
6
10
|
client-rotate <client-id> Rotate one client credential offline
|
|
7
11
|
client-revoke <client-id> Revoke one client and its credentials offline
|
|
8
12
|
client-grant <client-id> <cube-id> <read|write|manage> Set one offline cube grant
|
|
@@ -44,11 +48,116 @@ export async function runCli(args, service, io) {
|
|
|
44
48
|
return 1;
|
|
45
49
|
}
|
|
46
50
|
const result = await service.setup({ reinitialize: extraArgs[0] === "--reinitialize" });
|
|
47
|
-
|
|
51
|
+
const artifactIdentity = result.artifact === undefined
|
|
52
|
+
? "borgmcp-server@unavailable"
|
|
53
|
+
: `borgmcp-server@${result.artifact.version}`;
|
|
54
|
+
const artifact = result.artifact === undefined
|
|
55
|
+
? "Artifact: unavailable"
|
|
56
|
+
: `Artifact: ${artifactIdentity} (${result.artifact.integrity})`;
|
|
57
|
+
if (io.isTTY === false) {
|
|
58
|
+
io.stdout(JSON.stringify({
|
|
59
|
+
status: "prepared",
|
|
60
|
+
artifact: artifactIdentity,
|
|
61
|
+
build_identity: result.artifact?.sourceSha ?? null,
|
|
62
|
+
owner_access: "prepared",
|
|
63
|
+
process: "stopped",
|
|
64
|
+
}));
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
if ("existing" in result) {
|
|
68
|
+
io.stdout([
|
|
69
|
+
"Local server is already prepared.",
|
|
70
|
+
artifact,
|
|
71
|
+
`Build identity: ${result.artifact?.sourceSha ?? "unavailable"}`,
|
|
72
|
+
"Data and identity: unchanged",
|
|
73
|
+
"No server process started.",
|
|
74
|
+
"Next: borg-mcp-server start",
|
|
75
|
+
].join("\n"));
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
io.stdout([
|
|
79
|
+
"Local server setup completed.",
|
|
80
|
+
artifact,
|
|
81
|
+
"Local owner access: prepared.",
|
|
82
|
+
"No server process started.",
|
|
83
|
+
"Next: start the server, then run borg assimilate.",
|
|
84
|
+
].join("\n"));
|
|
48
85
|
return 0;
|
|
49
86
|
case "start":
|
|
50
87
|
await service.start(extraArgs);
|
|
51
88
|
return 0;
|
|
89
|
+
case "status": {
|
|
90
|
+
if (extraArgs.length > 1 || (extraArgs.length === 1 && extraArgs[0] !== "--json") ||
|
|
91
|
+
service.status === undefined)
|
|
92
|
+
return invalidArguments(io);
|
|
93
|
+
const status = await service.status();
|
|
94
|
+
if (extraArgs[0] === "--json" || io.isTTY === false) {
|
|
95
|
+
io.stdout(JSON.stringify({
|
|
96
|
+
status: status.status,
|
|
97
|
+
artifact: status.artifact === null
|
|
98
|
+
? null
|
|
99
|
+
: `borgmcp-server@${status.artifact.version}`,
|
|
100
|
+
artifact_integrity: status.artifact?.integrity ?? null,
|
|
101
|
+
build_identity: status.buildIdentity,
|
|
102
|
+
endpoint: status.endpoint,
|
|
103
|
+
mode: status.mode,
|
|
104
|
+
data_identity: status.dataIdentity,
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
io.stdout(renderRuntimeStatus(status));
|
|
109
|
+
}
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
case "update": {
|
|
113
|
+
if (extraArgs.length > 1 || (extraArgs.length === 1 && extraArgs[0] !== "--json") ||
|
|
114
|
+
service.update === undefined)
|
|
115
|
+
return invalidArguments(io);
|
|
116
|
+
let result;
|
|
117
|
+
try {
|
|
118
|
+
result = await service.update();
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (!(error instanceof RuntimeUpdateFailure))
|
|
122
|
+
throw error;
|
|
123
|
+
renderUpdateFailure(error, io, extraArgs[0] === "--json" || io.isTTY === false);
|
|
124
|
+
return 1;
|
|
125
|
+
}
|
|
126
|
+
if (extraArgs[0] === "--json" || io.isTTY === false) {
|
|
127
|
+
io.stdout(JSON.stringify({
|
|
128
|
+
status: result.outcome,
|
|
129
|
+
artifact: `borgmcp-server@${result.artifact.version}`,
|
|
130
|
+
artifact_integrity: result.artifact.integrity,
|
|
131
|
+
build_identity: result.runningIdentity?.source_sha ?? result.artifact.sourceSha,
|
|
132
|
+
mode: result.outcome === "updated" ? "managed" : "stopped",
|
|
133
|
+
data_identity: result.dataIdentity,
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
else if (result.outcome === "updated") {
|
|
137
|
+
io.stdout([
|
|
138
|
+
`Verifying borgmcp-server@${result.artifact.version}...`,
|
|
139
|
+
"Artifact verified and activated.",
|
|
140
|
+
"Restarting the verified local server...",
|
|
141
|
+
`Local server is running.`,
|
|
142
|
+
`Artifact: borgmcp-server@${result.artifact.version} (${result.artifact.integrity})`,
|
|
143
|
+
`Build identity: ${result.runningIdentity?.source_sha ?? "unavailable"}`,
|
|
144
|
+
"Data and identity: preserved",
|
|
145
|
+
"Next: borg-mcp-server status",
|
|
146
|
+
].join("\n"));
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
io.stdout([
|
|
150
|
+
`Verifying borgmcp-server@${result.artifact.version}...`,
|
|
151
|
+
"Artifact verified and activated.",
|
|
152
|
+
"No server process started.",
|
|
153
|
+
`Artifact: borgmcp-server@${result.artifact.version} (${result.artifact.integrity})`,
|
|
154
|
+
`Build identity: ${result.artifact.sourceSha ?? "unavailable"}`,
|
|
155
|
+
"Data and identity: preserved",
|
|
156
|
+
"Next: borg-mcp-server start",
|
|
157
|
+
].join("\n"));
|
|
158
|
+
}
|
|
159
|
+
return 0;
|
|
160
|
+
}
|
|
52
161
|
case "client-rotate":
|
|
53
162
|
if (extraArgs.length !== 1 || service.rotateClient === undefined)
|
|
54
163
|
return invalidArguments(io);
|
|
@@ -107,6 +216,17 @@ export async function runCli(args, service, io) {
|
|
|
107
216
|
}
|
|
108
217
|
return 0;
|
|
109
218
|
}
|
|
219
|
+
case "invite": {
|
|
220
|
+
if (extraArgs.length !== 0 || service.invite === undefined)
|
|
221
|
+
return invalidArguments(io);
|
|
222
|
+
if (io.isTTY !== true) {
|
|
223
|
+
io.stderr("Invitation creation requires an interactive terminal.");
|
|
224
|
+
return 1;
|
|
225
|
+
}
|
|
226
|
+
const invitation = await service.invite();
|
|
227
|
+
io.stdout(`Invitation (single-use; shown once): ${invitation}\nShare it only with the intended recipient.`);
|
|
228
|
+
return 0;
|
|
229
|
+
}
|
|
110
230
|
case "help":
|
|
111
231
|
case "--help":
|
|
112
232
|
case "-h":
|
|
@@ -118,6 +238,61 @@ export async function runCli(args, service, io) {
|
|
|
118
238
|
return 1;
|
|
119
239
|
}
|
|
120
240
|
}
|
|
241
|
+
function renderUpdateFailure(failure, io, machine) {
|
|
242
|
+
const state = failure.code === "ARTIFACT_VERIFICATION_FAILED"
|
|
243
|
+
? "verification_failed"
|
|
244
|
+
: failure.recovery === "restored"
|
|
245
|
+
? "restored"
|
|
246
|
+
: failure.recovery === "stopped"
|
|
247
|
+
? "stopped"
|
|
248
|
+
: "recovery_failed";
|
|
249
|
+
if (machine) {
|
|
250
|
+
io.stdout(JSON.stringify({
|
|
251
|
+
status: "failed",
|
|
252
|
+
error_code: failure.code,
|
|
253
|
+
recovery: state,
|
|
254
|
+
data_identity: "preserved",
|
|
255
|
+
}));
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
if (failure.code === "ARTIFACT_VERIFICATION_FAILED") {
|
|
259
|
+
io.stderr([
|
|
260
|
+
"Update stopped: artifact verification failed.",
|
|
261
|
+
"No activation occurred.",
|
|
262
|
+
"The last verified runtime remains available.",
|
|
263
|
+
"Next: borg-mcp-server status",
|
|
264
|
+
].join("\n"));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
io.stderr([
|
|
268
|
+
"Update stopped: activation did not complete.",
|
|
269
|
+
failure.recovery === "restored"
|
|
270
|
+
? "The last verified runtime was restored."
|
|
271
|
+
: failure.recovery === "stopped"
|
|
272
|
+
? "The server stopped safely."
|
|
273
|
+
: "Recovery did not complete; inspect server status.",
|
|
274
|
+
"Data and identity: preserved",
|
|
275
|
+
"Next: borg-mcp-server status",
|
|
276
|
+
].join("\n"));
|
|
277
|
+
}
|
|
278
|
+
function renderRuntimeStatus(status) {
|
|
279
|
+
const heading = status.status === "running"
|
|
280
|
+
? status.buildIdentity === null
|
|
281
|
+
? "Local server is reachable, but its running build identity is unavailable."
|
|
282
|
+
: "Local server is running."
|
|
283
|
+
: "Local server is stopped.";
|
|
284
|
+
const artifact = status.artifact === null
|
|
285
|
+
? "Artifact: unavailable"
|
|
286
|
+
: `Artifact: borgmcp-server@${status.artifact.version} (${status.artifact.integrity})`;
|
|
287
|
+
return [
|
|
288
|
+
heading,
|
|
289
|
+
artifact,
|
|
290
|
+
`Build identity: ${status.buildIdentity ?? "unavailable"}`,
|
|
291
|
+
`Endpoint: ${status.endpoint ?? "unavailable"}`,
|
|
292
|
+
`Mode: ${status.mode}`,
|
|
293
|
+
`Data and identity: ${status.dataIdentity}`,
|
|
294
|
+
].join("\n");
|
|
295
|
+
}
|
|
121
296
|
function parseClientInviteArguments(args) {
|
|
122
297
|
if (args.length === 0)
|
|
123
298
|
return {};
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/credentials.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export declare class CredentialAuthority {
|
|
|
42
42
|
createRecoveryCredential(): string;
|
|
43
43
|
createBootstrapInvitation(ttlMs: number): string;
|
|
44
44
|
createInvitation(recoveryCredential: string, ttlMs: number): string | null;
|
|
45
|
+
createInvitationForOwnerCredential(clientCredential: string, ttlMs: number): string | null;
|
|
45
46
|
createCubeInvitation(recoveryCredential: string, cubeSelector: {
|
|
46
47
|
readonly kind: "id" | "name";
|
|
47
48
|
readonly value: string;
|
package/dist/credentials.js
CHANGED
|
@@ -151,6 +151,13 @@ export class CredentialAuthority {
|
|
|
151
151
|
return null;
|
|
152
152
|
return this.#createInvitation("client", ttlMs);
|
|
153
153
|
}
|
|
154
|
+
createInvitationForOwnerCredential(clientCredential, ttlMs) {
|
|
155
|
+
const principal = this.authenticate(`Bearer ${clientCredential}`);
|
|
156
|
+
if (principal?.kind !== "client" ||
|
|
157
|
+
!this.#store.clientHasServerCapability(principal.id, "create_cube"))
|
|
158
|
+
return null;
|
|
159
|
+
return this.#createInvitation("client", ttlMs);
|
|
160
|
+
}
|
|
154
161
|
createCubeInvitation(recoveryCredential, cubeSelector, access, ttlMs) {
|
|
155
162
|
const digest = safeDigest(this.#digester, recoveryCredential, "recovery");
|
|
156
163
|
const stored = this.#store.findRecoveryCredential(digest.lookup);
|
package/dist/credentials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|