borgmcp-shared 0.10.0 → 0.11.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.
- package/CONTRIBUTING.md +2 -2
- package/README.md +17 -17
- package/RELEASES.md +5 -0
- package/dist/conformance/adapter.d.ts +1 -5
- package/dist/conformance/adapter.d.ts.map +1 -1
- package/dist/conformance/adapter.js +1 -26
- package/dist/conformance/adapter.js.map +1 -1
- package/dist/protocol/contract.d.ts +1 -2
- package/dist/protocol/contract.d.ts.map +1 -1
- package/dist/protocol/contract.js +1 -2
- package/dist/protocol/contract.js.map +1 -1
- package/dist/protocol/errors.d.ts +0 -1
- package/dist/protocol/errors.d.ts.map +1 -1
- package/dist/protocol/errors.js +0 -1
- package/dist/protocol/errors.js.map +1 -1
- package/dist/templates.d.ts +1 -1
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +178 -53
- package/dist/templates.js.map +1 -1
- package/docs/compatibility.md +1 -1
- package/docs/release-records.json +28 -0
- package/docs/releasing.md +2 -3
- package/docs/template-lifecycle.md +66 -0
- package/package.json +2 -2
- package/src/conformance/adapter.ts +2 -38
- package/src/protocol/contract.ts +1 -2
- package/src/protocol/errors.ts +1 -3
- package/src/templates.ts +185 -53
package/CONTRIBUTING.md
CHANGED
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# borgmcp-shared
|
|
2
2
|
|
|
3
3
|
`borgmcp-shared` is the implementation-neutral contract package for Borg MCP.
|
|
4
|
-
It contains protocol types, domain helpers, built-in cube templates, and
|
|
5
|
-
|
|
4
|
+
It contains protocol types, domain helpers, built-in cube templates, and portable
|
|
5
|
+
conformance vectors that Borg MCP client and server implementations can run.
|
|
6
6
|
Its pure ESM helpers and generated TypeScript declarations run consistently
|
|
7
7
|
across host environments with zero runtime dependencies.
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ across host environments with zero runtime dependencies.
|
|
|
12
12
|
npm install borgmcp-shared
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
The package is ESM-only and supports Node.js
|
|
15
|
+
The package is ESM-only and supports Node.js 22.12.0 or newer.
|
|
16
16
|
|
|
17
17
|
## Public API
|
|
18
18
|
|
|
@@ -53,9 +53,9 @@ The supported subpaths are:
|
|
|
53
53
|
- `borgmcp-shared/drone-address`: stable short drone-address rendering.
|
|
54
54
|
- `borgmcp-shared/runtime-metadata`: pure validation and canonical repository
|
|
55
55
|
identity helpers for advisory local seat metadata.
|
|
56
|
+
- `borgmcp-shared/package.json`: package metadata.
|
|
56
57
|
|
|
57
|
-
Generated declaration files are included in
|
|
58
|
-
functions and contracts include API documentation in their TypeScript sources.
|
|
58
|
+
Generated declaration files are included in the published package.
|
|
59
59
|
|
|
60
60
|
## Handshake
|
|
61
61
|
|
|
@@ -99,17 +99,17 @@ authority: there is no capability negotiation, and client and server ship and
|
|
|
99
99
|
update together as one clean-slate product. The attach request envelope still
|
|
100
100
|
decodes its version before any payload as defense in depth.
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
`ProtocolEnvelope<T>`. Failures use `ProtocolErrorEnvelope`. The
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
validate the
|
|
102
|
+
Versioned JSON coordination requests and successful responses are carried inside
|
|
103
|
+
`ProtocolEnvelope<T>`. Failures use `ProtocolErrorEnvelope`. The credential-free
|
|
104
|
+
protocol preflight uses its exact tag-only shape; `204` liveness and
|
|
105
|
+
acknowledgement responses are bodyless. Payload codecs are exported separately
|
|
106
|
+
so adapters can validate the envelope first and then validate the
|
|
107
|
+
operation-specific payload without accepting ambiguous fields.
|
|
107
108
|
Cube managers reassign a seat with `PATCH /api/cubes/:cubeId/drones/:droneId`
|
|
108
109
|
and evict one with `DELETE` on the same path. Both operations use strict
|
|
109
110
|
versioned request and success envelopes. An evicted seat's former bearer receives
|
|
110
111
|
the terminal `410 DRONE_EVICTED` signal; revoked sessions return
|
|
111
|
-
`401 SESSION_REVOKED
|
|
112
|
-
authentication outcome, `401 AUTH_EXPIRED`.
|
|
112
|
+
`401 SESSION_REVOKED`.
|
|
113
113
|
An authenticated drone session updates only its own advisory identity with
|
|
114
114
|
`PATCH /api/cubes/:cubeId/drones/self/metadata`. The strict patch carries no
|
|
115
115
|
target seat ID. Metadata never grants authority or changes role, wake, liveness,
|
|
@@ -122,8 +122,8 @@ ordinary ungranted enrollment, cube creation, pending enrollment, and retry cont
|
|
|
122
122
|
## Conformance
|
|
123
123
|
|
|
124
124
|
Server and client implementations should run the vectors exported from
|
|
125
|
-
`borgmcp-shared/conformance` against their adapters. The vectors
|
|
126
|
-
|
|
125
|
+
`borgmcp-shared/conformance` against their adapters. The vectors are readonly
|
|
126
|
+
data, and the runner is test-runner-independent code, so they work with any test
|
|
127
127
|
runner supported by the implementation. Cases cover HTTP and canonical errors,
|
|
128
128
|
credential misuse, isolation and revocation, SSE framing/replay/cursor ordering,
|
|
129
129
|
executable enrollment authority/retry/mismatch/redaction and cube-create
|
|
@@ -145,9 +145,9 @@ historical values so existing registry entries remain compatible.
|
|
|
145
145
|
Implement `ConformanceEnvironment` with raw responses from the target adapter,
|
|
146
146
|
then call `runAdapterConformance`. The runner creates and decodes envelopes,
|
|
147
147
|
drives state transitions, and decides pass/fail; adapters do not submit expected
|
|
148
|
-
results.
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
results. A server or client adapter can run the portable suite against its
|
|
149
|
+
local/self-hosted implementation. The package does not define a second authority,
|
|
150
|
+
migration target, or fallback implementation.
|
|
151
151
|
|
|
152
152
|
The package's own suite covers built-in templates, role-section patching,
|
|
153
153
|
broadcast high-water-mark ordering, drone-address formatting, runtime metadata
|
package/RELEASES.md
CHANGED
|
@@ -31,3 +31,8 @@ Never rerun or move that tag.
|
|
|
31
31
|
`672423566ed75cf7704775cb480a75767e7c6851` peels to protected-main commit
|
|
32
32
|
`f4870596ba79702f2e4eb3a6620802d5e538052d`; successful attempt-1 workflow run
|
|
33
33
|
`30625736845` published it. Never rerun or move that tag.
|
|
34
|
+
`borgmcp-shared@0.10.0` is published and immutable: annotated tag `v0.10.0`
|
|
35
|
+
peels to protected-main commit `8e5bd088b8069951a687156c35cf68d44985ddc1`;
|
|
36
|
+
successful attempt-1 workflow run `31255563527` published registry integrity
|
|
37
|
+
`sha512-NYZJi6z0g/Txb6ge+5NgRPNRszVEi0eNmICxkoZq5bGkJWm5qEvNSt3ws90Xz8IOKuWcyHC9i6sAK6cbZxwYDw==`.
|
|
38
|
+
Never rerun or move that tag.
|
|
@@ -21,7 +21,7 @@ export interface ConformanceDroneRuntimeState {
|
|
|
21
21
|
readonly metadata_revision: number;
|
|
22
22
|
readonly cube_id: string;
|
|
23
23
|
readonly role_id: string;
|
|
24
|
-
readonly session_state: 'active' | 'revoked'
|
|
24
|
+
readonly session_state: 'active' | 'revoked';
|
|
25
25
|
readonly evicted: boolean;
|
|
26
26
|
readonly last_seen: string;
|
|
27
27
|
readonly heartbeat_count: number;
|
|
@@ -134,7 +134,6 @@ export interface ConformanceAdmin {
|
|
|
134
134
|
createDrone(principal: ConformancePrincipal, cube: ConformanceCube, role: ConformanceRole): Promise<ConformanceDrone>;
|
|
135
135
|
issueManagedDroneSession(drone: ConformanceDrone): Promise<string>;
|
|
136
136
|
revokeManagedDroneSession(drone: ConformanceDrone): Promise<void>;
|
|
137
|
-
expireManagedDroneSession(drone: ConformanceDrone): Promise<void>;
|
|
138
137
|
inspectManagedDrone(drone: ConformanceDrone): Promise<{
|
|
139
138
|
readonly role_id: string;
|
|
140
139
|
readonly evicted: boolean;
|
|
@@ -250,9 +249,6 @@ export declare const ADAPTER_CONFORMANCE_FIXTURES: readonly [{
|
|
|
250
249
|
}, {
|
|
251
250
|
readonly id: "roles.rationale-contract";
|
|
252
251
|
readonly area: "roles";
|
|
253
|
-
}, {
|
|
254
|
-
readonly id: "security.drone-session-rejection-causes";
|
|
255
|
-
readonly area: "security";
|
|
256
252
|
}, {
|
|
257
253
|
readonly id: "metadata.attach-report";
|
|
258
254
|
readonly area: "metadata";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EA8BL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,KAAK,SAAS,EAEd,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,6 @@ export const ADAPTER_CONFORMANCE_FIXTURES = [
|
|
|
22
22
|
{ id: 'drones.evict-terminal-signal', area: 'drones' },
|
|
23
23
|
{ id: 'roles.delete-contract', area: 'roles' },
|
|
24
24
|
{ id: 'roles.rationale-contract', area: 'roles' },
|
|
25
|
-
{ id: 'security.drone-session-rejection-causes', area: 'security' },
|
|
26
25
|
{ id: 'metadata.attach-report', area: 'metadata' },
|
|
27
26
|
{ id: 'metadata.self-heal-patch', area: 'metadata' },
|
|
28
27
|
{ id: 'security.metadata-invalid-atomic', area: 'security' },
|
|
@@ -1180,26 +1179,6 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
1180
1179
|
invalid_selector_code: ErrorCode.INVALID_INPUT,
|
|
1181
1180
|
};
|
|
1182
1181
|
});
|
|
1183
|
-
await record('security.drone-session-rejection-causes', async () => {
|
|
1184
|
-
const revokedDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
1185
|
-
const expiredDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
1186
|
-
const revokedCredential = await environment.admin.issueManagedDroneSession(revokedDrone);
|
|
1187
|
-
const expiredCredential = await environment.admin.issueManagedDroneSession(expiredDrone);
|
|
1188
|
-
await environment.admin.revokeManagedDroneSession(revokedDrone);
|
|
1189
|
-
await environment.admin.expireManagedDroneSession(expiredDrone);
|
|
1190
|
-
for (const [label, credential, code] of [
|
|
1191
|
-
['revoked', revokedCredential, ErrorCode.SESSION_REVOKED],
|
|
1192
|
-
['expired', expiredCredential, ErrorCode.AUTH_EXPIRED],
|
|
1193
|
-
]) {
|
|
1194
|
-
expectError(await environment.operations.read(credential, cubeA, createProtocolEnvelope(`${label}-seat-probe`, { cursor: null, limit: 1 })), 401, code, `${label} seat probe`);
|
|
1195
|
-
}
|
|
1196
|
-
return {
|
|
1197
|
-
revoked_status: 401,
|
|
1198
|
-
expired_status: 401,
|
|
1199
|
-
revoked_code: ErrorCode.SESSION_REVOKED,
|
|
1200
|
-
expired_code: ErrorCode.AUTH_EXPIRED,
|
|
1201
|
-
};
|
|
1202
|
-
});
|
|
1203
1182
|
const knownMetadata = {
|
|
1204
1183
|
agent_kind: 'opencode',
|
|
1205
1184
|
reported_model: 'openai/gpt-5.6-sol',
|
|
@@ -1342,10 +1321,6 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
1342
1321
|
const revokedSession = await environment.admin.issueManagedDroneSession(revoked);
|
|
1343
1322
|
await environment.admin.revokeManagedDroneSession(revoked);
|
|
1344
1323
|
rejectedStates.push(['revoked', revoked, revokedSession, 401, ErrorCode.SESSION_REVOKED]);
|
|
1345
|
-
const expired = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
1346
|
-
const expiredSession = await environment.admin.issueManagedDroneSession(expired);
|
|
1347
|
-
await environment.admin.expireManagedDroneSession(expired);
|
|
1348
|
-
rejectedStates.push(['expired', expired, expiredSession, 401, ErrorCode.AUTH_EXPIRED]);
|
|
1349
1324
|
const evicted = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
|
|
1350
1325
|
const evictedSession = await environment.admin.issueManagedDroneSession(evicted);
|
|
1351
1326
|
expectStatus(await environment.operations.evictDrone(credentialA, cubeA, evicted, createProtocolEnvelope('metadata-evict-seat', {})), 200, 'Metadata seat eviction');
|
|
@@ -1359,7 +1334,7 @@ export async function runAdapterConformance(environment, options = {}) {
|
|
|
1359
1334
|
own_seat_only: true,
|
|
1360
1335
|
manager_denied: true,
|
|
1361
1336
|
unknown_session_denied: true,
|
|
1362
|
-
|
|
1337
|
+
revoked_evicted_denied: true,
|
|
1363
1338
|
};
|
|
1364
1339
|
});
|
|
1365
1340
|
await record('security.metadata-cross-cube-isolation', async () => {
|