borgmcp-shared 0.2.2 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,cAAc,cAAc,CAAC;AAG7B,MAAM,WAAW,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,EAAE,YAAY,CAAC;IAChB,CAAC,EAAE,YAAY,CAAC;CACjB;AAED,eAAO,MAAM,yBAAyB,EAAE,SAAS,iBAAiB,CAChE,2BAA2B,EAC3B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CACX,EAiCA,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,SAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAMjF,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,SAAS,MAAM,EAKhE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,cAAc,cAAc,CAAC;AAG7B,MAAM,WAAW,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,EAAE,YAAY,CAAC;IAChB,CAAC,EAAE,YAAY,CAAC;CACjB;AAED,eAAO,MAAM,yBAAyB,EAAE,SAAS,iBAAiB,CAChE,2BAA2B,EAC3B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CACX,EAiCA,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,SAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAMjF,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,SAAS,MAAM,EAKhE,CAAC;AAEF,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,yBAAyB,CAAC;IACjC,QAAQ,EACJ;QACA,OAAO,EAAE,4BAA4B,CAAC;QACtC,MAAM,EAAE,GAAG,CAAC;QACZ,yBAAyB,EAAE,SAAS;YAClC,YAAY;YACZ,mBAAmB;YACnB,YAAY;YACZ,WAAW;SACZ,CAAC;KACH,GACC;QACA,OAAO,EAAE,sBAAsB,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,cAAc,CAAC;KACvB,CAAC;CACL;AAOD,eAAO,MAAM,4BAA4B,EAAE,SAAS,gCAAgC,EAsEnF,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBnC,CAAC;AAEX,eAAO,MAAM,gCAAgC,EAAE,SAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAgBxF,CAAC"}
@@ -46,4 +46,115 @@ export const ROLE_SECTION_ROUND_TRIP_CONFORMANCE = [
46
46
  'Preamble.\n\nWorkflow:\n- step one\n\nProject conventions:\n- TDD.\n',
47
47
  '**Markdown heading:**\nMust remain part of the preamble.\n',
48
48
  ];
49
+ const ENROLLMENT_INVITATION = 'I'.repeat(43);
50
+ const ENROLLMENT_CREDENTIAL = 'A'.repeat(43);
51
+ const ENROLLMENT_RETRY_KEY = '00000000-0000-4000-8000-000000000101';
52
+ export const ENROLLMENT_RETRY_CONFORMANCE = [
53
+ {
54
+ name: 'exact credential-proven retry returns stable non-secret identities',
55
+ initial: {
56
+ invitation: ENROLLMENT_INVITATION,
57
+ retry_key: ENROLLMENT_RETRY_KEY,
58
+ client_credential: ENROLLMENT_CREDENTIAL,
59
+ client_name: 'operator-laptop',
60
+ },
61
+ retry: {
62
+ invitation: ENROLLMENT_INVITATION,
63
+ retry_key: ENROLLMENT_RETRY_KEY,
64
+ client_credential: ENROLLMENT_CREDENTIAL,
65
+ client_name: 'operator-laptop',
66
+ },
67
+ expected: {
68
+ outcome: 'stable_non_secret_identity',
69
+ status: 201,
70
+ forbidden_response_fields: [
71
+ 'credential',
72
+ 'client_credential',
73
+ 'invitation',
74
+ 'retry_key',
75
+ ],
76
+ },
77
+ },
78
+ {
79
+ name: 'retry-key mismatch is uniformly invalid',
80
+ initial: {
81
+ invitation: ENROLLMENT_INVITATION,
82
+ retry_key: ENROLLMENT_RETRY_KEY,
83
+ client_credential: ENROLLMENT_CREDENTIAL,
84
+ },
85
+ retry: {
86
+ invitation: ENROLLMENT_INVITATION,
87
+ retry_key: '00000000-0000-4000-8000-000000000102',
88
+ client_credential: ENROLLMENT_CREDENTIAL,
89
+ },
90
+ expected: { outcome: 'uniform_auth_invalid', status: 401, error: 'AUTH_INVALID' },
91
+ },
92
+ {
93
+ name: 'credential mismatch is uniformly invalid',
94
+ initial: {
95
+ invitation: ENROLLMENT_INVITATION,
96
+ retry_key: ENROLLMENT_RETRY_KEY,
97
+ client_credential: ENROLLMENT_CREDENTIAL,
98
+ },
99
+ retry: {
100
+ invitation: ENROLLMENT_INVITATION,
101
+ retry_key: ENROLLMENT_RETRY_KEY,
102
+ client_credential: 'E'.repeat(43),
103
+ },
104
+ expected: { outcome: 'uniform_auth_invalid', status: 401, error: 'AUTH_INVALID' },
105
+ },
106
+ {
107
+ name: 'client-name mismatch is uniformly invalid',
108
+ initial: {
109
+ invitation: ENROLLMENT_INVITATION,
110
+ retry_key: ENROLLMENT_RETRY_KEY,
111
+ client_credential: ENROLLMENT_CREDENTIAL,
112
+ client_name: 'operator-laptop',
113
+ },
114
+ retry: {
115
+ invitation: ENROLLMENT_INVITATION,
116
+ retry_key: ENROLLMENT_RETRY_KEY,
117
+ client_credential: ENROLLMENT_CREDENTIAL,
118
+ client_name: 'different-client',
119
+ },
120
+ expected: { outcome: 'uniform_auth_invalid', status: 401, error: 'AUTH_INVALID' },
121
+ },
122
+ ];
123
+ export const ENROLLMENT_AUTHORITY_CONFORMANCE = [
124
+ {
125
+ name: 'ordinary enrollment creates no authority or cube state',
126
+ response: {
127
+ purpose: 'client',
128
+ client_id: '00000000-0000-4000-8000-000000000111',
129
+ server_capabilities: [],
130
+ },
131
+ expected_state_delta: { cubes: 0, roles: 0, grants: 0, server_capabilities: 0 },
132
+ },
133
+ {
134
+ name: 'owner enrollment grants create-cube authority without cube state',
135
+ response: {
136
+ purpose: 'owner',
137
+ client_id: '00000000-0000-4000-8000-000000000111',
138
+ server_capabilities: ['create_cube'],
139
+ },
140
+ expected_state_delta: { cubes: 0, roles: 0, grants: 0, server_capabilities: 1 },
141
+ },
142
+ ];
143
+ export const ENROLLMENT_REDACTION_CONFORMANCE = [
144
+ {
145
+ name: 'redacts invitation and client credential from diagnostics',
146
+ input: `invitation=${ENROLLMENT_INVITATION} client_credential=${ENROLLMENT_CREDENTIAL}`,
147
+ expected: 'invitation=<REDACTED> client_credential=<REDACTED>',
148
+ },
149
+ {
150
+ name: 'redacts a contextual enrollment retry key',
151
+ input: `retry_key=${ENROLLMENT_RETRY_KEY}`,
152
+ expected: 'retry_key=<REDACTED>',
153
+ },
154
+ {
155
+ name: 'preserves unrelated public UUIDs',
156
+ input: `cube_id=${ENROLLMENT_RETRY_KEY}`,
157
+ expected: `cube_id=${ENROLLMENT_RETRY_KEY}`,
158
+ },
159
+ ];
49
160
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC;AAc7B,MAAM,CAAC,MAAM,yBAAyB,GAGhC;IACJ;QACE,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE;YACL,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE;YACtD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE;SACvD;QACD,QAAQ,EAAE,CAAC,CAAC;KACb;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,KAAK,EAAE;YACL,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE;YACtD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE;SACvD;QACD,QAAQ,EAAE,CAAC,CAAC;KACb;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,KAAK,EAAE;YACL,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE;YACtD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE;SACvD;QACD,QAAQ,EAAE,CAAC;KACZ;IACD;QACE,IAAI,EAAE,wDAAwD;QAC9D,KAAK,EAAE;YACL,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE;YAC1C,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE;SAC3C;QACD,QAAQ,EAAE,CAAC,CAAC;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAiD;IACrF;QACE,IAAI,EAAE,wDAAwD;QAC9D,KAAK,EAAE,sCAAsC;QAC7C,QAAQ,EAAE,eAAe;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAsB;IACpE,EAAE;IACF,gBAAgB;IAChB,sEAAsE;IACtE,4DAA4D;CAC7D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { ErrorCode } from './errors.js';
2
2
  import { type ProtocolVersion } from './version.js';
3
3
  export declare const SHARED_PACKAGE_NAME: "borgmcp-shared";
4
- export declare const SHARED_PACKAGE_VERSION: "0.2.2";
4
+ export declare const SHARED_PACKAGE_VERSION: "0.3.0";
5
5
  export declare const HEALTH_PATH: "/healthz";
6
6
  export declare const PROTOCOL_INFO_PATH: "/api/protocol";
7
7
  export declare const ENROLLMENT_EXCHANGE_PATH: "/api/enrollment/exchange";
8
+ export declare const CUBES_PATH: "/api/cubes";
8
9
  export declare const PROTOCOL_HTTP_CONTRACT: {
9
10
  readonly health: {
10
11
  readonly method: "GET";
@@ -25,6 +26,12 @@ export declare const PROTOCOL_HTTP_CONTRACT: {
25
26
  readonly authenticated: "invitation";
26
27
  readonly success_status: 201;
27
28
  };
29
+ readonly cubes: {
30
+ readonly method: "POST";
31
+ readonly path: "/api/cubes";
32
+ readonly authenticated: true;
33
+ readonly success_status: 201;
34
+ };
28
35
  readonly auth_missing_status: 401;
29
36
  readonly auth_invalid_status: 401;
30
37
  readonly cursor_expired_status: 410;
@@ -39,10 +46,10 @@ export declare const PROTOCOL_LIMIT_CEILINGS: {
39
46
  readonly max_read_page_size: 500;
40
47
  readonly max_replay_page_size: 1000;
41
48
  };
42
- export declare const KNOWN_CAPABILITIES: readonly ["coordination.core", "auth.bearer", "auth.revocation", "scope.cube-isolation", "transport.tls", "authority.no-cloud-fallback", "log.cursor", "stream.sse", "stream.replay", "acks", "claims", "decisions"];
49
+ export declare const KNOWN_CAPABILITIES: readonly ["coordination.core", "auth.bearer", "auth.revocation", "auth.retry-safe-enrollment", "scope.cube-isolation", "transport.tls", "authority.no-cloud-fallback", "log.cursor", "stream.sse", "stream.replay", "acks", "claims", "decisions"];
43
50
  export type KnownCapability = (typeof KNOWN_CAPABILITIES)[number];
44
51
  export type Capability = KnownCapability | (string & {});
45
- export declare const REQUIRED_SECURITY_CAPABILITIES: readonly ["auth.bearer", "auth.revocation", "scope.cube-isolation", "transport.tls", "authority.no-cloud-fallback"];
52
+ export declare const REQUIRED_SECURITY_CAPABILITIES: readonly ["auth.bearer", "auth.revocation", "auth.retry-safe-enrollment", "scope.cube-isolation", "transport.tls", "authority.no-cloud-fallback"];
46
53
  export interface ProtocolLimits {
47
54
  max_request_bytes: number;
48
55
  max_log_message_bytes: number;
@@ -77,12 +84,35 @@ export interface ProtocolErrorEnvelope {
77
84
  }
78
85
  export interface EnrollmentExchangeRequest {
79
86
  invitation: string;
87
+ retry_key: string;
88
+ client_credential: string;
80
89
  client_name?: string;
81
90
  }
82
- export interface EnrollmentExchangeResponse {
91
+ export declare const SERVER_CAPABILITIES: readonly ["create_cube"];
92
+ export type ServerCapability = (typeof SERVER_CAPABILITIES)[number];
93
+ export interface ClientEnrollmentExchangeResponse {
94
+ purpose: 'client';
83
95
  client_id: string;
84
- credential: string;
85
- credential_expires_at?: string | null;
96
+ server_capabilities: [];
97
+ }
98
+ export interface OwnerEnrollmentExchangeResponse {
99
+ purpose: 'owner';
100
+ client_id: string;
101
+ server_capabilities: ['create_cube'];
102
+ }
103
+ export type EnrollmentExchangeResponse = ClientEnrollmentExchangeResponse | OwnerEnrollmentExchangeResponse;
104
+ export declare const CUBE_TEMPLATES: readonly ["default"];
105
+ export type CubeTemplate = (typeof CUBE_TEMPLATES)[number];
106
+ export interface CreateCubeRequest {
107
+ retry_key: string;
108
+ name: string;
109
+ template: CubeTemplate;
110
+ }
111
+ export interface CreateCubeResponse {
112
+ cube_id: string;
113
+ human_seat_role_id: string;
114
+ default_worker_role_id: string;
115
+ access: 'manage';
86
116
  }
87
117
  export interface AckLogRequest {
88
118
  entry_id: string;
@@ -113,6 +143,10 @@ export declare function decodeEnrollmentExchangeRequest(value: unknown): Enrollm
113
143
  export declare function decodeEnrollmentExchangeRequestEnvelope(value: unknown): ProtocolEnvelope<EnrollmentExchangeRequest>;
114
144
  export declare function decodeEnrollmentExchangeResponse(value: unknown): EnrollmentExchangeResponse;
115
145
  export declare function decodeEnrollmentExchangeResponseEnvelope(value: unknown): ProtocolEnvelope<EnrollmentExchangeResponse>;
146
+ export declare function decodeCreateCubeRequest(value: unknown): CreateCubeRequest;
147
+ export declare function decodeCreateCubeRequestEnvelope(value: unknown): ProtocolEnvelope<CreateCubeRequest>;
148
+ export declare function decodeCreateCubeResponse(value: unknown): CreateCubeResponse;
149
+ export declare function decodeCreateCubeResponseEnvelope(value: unknown): ProtocolEnvelope<CreateCubeResponse>;
116
150
  export declare function decodeAppendLogRequest(value: unknown): import('./types.js').AppendLogRequest;
117
151
  export declare function decodeAckLogRequest(value: unknown): AckLogRequest;
118
152
  export declare function decodeRecordDecisionRequest(value: unknown): import('./types.js').RecordDecisionRequest;
@@ -120,6 +154,7 @@ export declare function decodeRemoveDecisionRequest(value: unknown): RemoveDecis
120
154
  export declare function decodeCanonicalTimestamp(value: unknown, path?: readonly (string | number)[]): string;
121
155
  export declare function decodeLogCursor(value: unknown, path?: readonly (string | number)[]): LogCursor;
122
156
  export declare function decodeUuid(value: unknown, path?: readonly (string | number)[]): string;
157
+ export declare function decodeEnrollmentClientCredential(value: unknown, path?: readonly (string | number)[]): string;
123
158
  export declare function decodeOpaqueIdentifier(value: unknown, path?: readonly (string | number)[]): string;
124
159
  export declare function redactProtocolDiagnostic(value: string): string;
125
160
  export declare function compareLogCursor(a: LogCursor, b: LogCursor): -1 | 0 | 1;
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEtE,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAC;AAC7D,eAAO,MAAM,sBAAsB,EAAG,OAAgB,CAAC;AAEvD,eAAO,MAAM,WAAW,EAAG,UAAmB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,EAAG,eAAwB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,EAAG,0BAAmC,CAAC;AAE5E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWzB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAC;AAEX,eAAO,MAAM,kBAAkB,sNAarB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,eAAO,MAAM,8BAA8B,qHAMD,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,eAAe,CAAC;IAClC,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,mBAAmB,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,gBAAgB,EAAE,eAAe,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,CAAC;CACH;AAGD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,IAAI,EAAE,SAAS;aACf,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;gBAFlD,OAAO,EAAE,MAAM,EACC,IAAI,GAAE,SAAmC,EACzC,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO;CAK1D;AA2CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAwDD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CA+D/D;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,oBAAoB,GAAE,SAAS,UAAU,EAAO,GAC/C,YAAY,CAad;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAM5F;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,GACrC,gBAAgB,CAAC,CAAC,CAAC,CAoBrB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAEzF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CA8DjF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,CAWzF;AAED,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,GACb,gBAAgB,CAAC,yBAAyB,CAAC,CAE7C;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAiB3F;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,OAAO,GACb,gBAAgB,CAAC,0BAA0B,CAAC,CAE9C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,YAAY,EAAE,gBAAgB,CA+B5F;AAWD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CASjE;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,OAAO,YAAY,EAAE,qBAAqB,CAW5C;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CASjF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,GACtC,MAAM,CAUR;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,GAAG,SAAS,CAOlG;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,GAAG,MAAM,CAM1F;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,GACtC,MAAM,CAER;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAMvE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAIvF"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
1
  import { ErrorCode } from './errors.js';
2
2
  import { PROTOCOL_VERSION } from './version.js';
3
3
  export const SHARED_PACKAGE_NAME = 'borgmcp-shared';
4
- export const SHARED_PACKAGE_VERSION = '0.2.2';
4
+ export const SHARED_PACKAGE_VERSION = '0.3.0';
5
5
  export const HEALTH_PATH = '/healthz';
6
6
  export const PROTOCOL_INFO_PATH = '/api/protocol';
7
7
  export const ENROLLMENT_EXCHANGE_PATH = '/api/enrollment/exchange';
8
+ export const CUBES_PATH = '/api/cubes';
8
9
  export const PROTOCOL_HTTP_CONTRACT = {
9
10
  health: { method: 'GET', path: HEALTH_PATH, authenticated: false, success_status: 204, bodyless: true },
10
11
  protocol: { method: 'GET', path: PROTOCOL_INFO_PATH, authenticated: true, success_status: 200 },
11
12
  enrollment: { method: 'POST', path: ENROLLMENT_EXCHANGE_PATH, authenticated: 'invitation', success_status: 201 },
13
+ cubes: { method: 'POST', path: CUBES_PATH, authenticated: true, success_status: 201 },
12
14
  auth_missing_status: 401,
13
15
  auth_invalid_status: 401,
14
16
  cursor_expired_status: 410,
@@ -27,6 +29,7 @@ export const KNOWN_CAPABILITIES = [
27
29
  'coordination.core',
28
30
  'auth.bearer',
29
31
  'auth.revocation',
32
+ 'auth.retry-safe-enrollment',
30
33
  'scope.cube-isolation',
31
34
  'transport.tls',
32
35
  'authority.no-cloud-fallback',
@@ -40,10 +43,13 @@ export const KNOWN_CAPABILITIES = [
40
43
  export const REQUIRED_SECURITY_CAPABILITIES = [
41
44
  'auth.bearer',
42
45
  'auth.revocation',
46
+ 'auth.retry-safe-enrollment',
43
47
  'scope.cube-isolation',
44
48
  'transport.tls',
45
49
  'authority.no-cloud-fallback',
46
50
  ];
51
+ export const SERVER_CAPABILITIES = ['create_cube'];
52
+ export const CUBE_TEMPLATES = ['default'];
47
53
  export class ProtocolContractError extends Error {
48
54
  code;
49
55
  path;
@@ -280,37 +286,90 @@ export function decodeProtocolErrorEnvelope(value) {
280
286
  }
281
287
  export function decodeEnrollmentExchangeRequest(value) {
282
288
  const input = record(value);
283
- exactKeys(input, ['invitation', 'client_name'], ['invitation']);
289
+ exactKeys(input, ['invitation', 'retry_key', 'client_credential', 'client_name'], ['invitation', 'retry_key', 'client_credential']);
284
290
  const invitation = opaqueToken(input.invitation, ['invitation']);
291
+ const retryKey = decodeUuid(input.retry_key, ['retry_key']);
292
+ const clientCredential = decodeEnrollmentClientCredential(input.client_credential, ['client_credential']);
285
293
  const clientName = input.client_name === undefined
286
294
  ? undefined
287
295
  : boundedString(input.client_name, 1, 120, ['client_name']);
288
296
  if (clientName !== undefined && !/^[A-Za-z0-9][A-Za-z0-9 ._-]*$/.test(clientName)) {
289
297
  fail('Client name contains unsupported characters.', ['client_name']);
290
298
  }
291
- return clientName === undefined ? { invitation } : { invitation, client_name: clientName };
299
+ const request = {
300
+ invitation,
301
+ retry_key: retryKey,
302
+ client_credential: clientCredential,
303
+ };
304
+ return clientName === undefined ? request : { ...request, client_name: clientName };
292
305
  }
293
306
  export function decodeEnrollmentExchangeRequestEnvelope(value) {
294
307
  return decodeProtocolEnvelope(value, decodeEnrollmentExchangeRequest);
295
308
  }
296
309
  export function decodeEnrollmentExchangeResponse(value) {
297
310
  const input = record(value);
298
- exactKeys(input, ['client_id', 'credential', 'credential_expires_at'], ['client_id', 'credential']);
299
- const clientId = opaqueIdentifier(input.client_id, ['client_id']);
300
- const credential = opaqueToken(input.credential, ['credential']);
301
- let expiresAt;
302
- if (input.credential_expires_at === null)
303
- expiresAt = null;
304
- else if (input.credential_expires_at !== undefined) {
305
- expiresAt = decodeCanonicalTimestamp(input.credential_expires_at, ['credential_expires_at']);
306
- }
307
- return expiresAt === undefined
308
- ? { client_id: clientId, credential }
309
- : { client_id: clientId, credential, credential_expires_at: expiresAt };
311
+ if (input.purpose === 'client') {
312
+ exactKeys(input, ['purpose', 'client_id', 'server_capabilities'], ['purpose', 'client_id', 'server_capabilities']);
313
+ decodeExactServerCapabilities(input.server_capabilities, [], ['server_capabilities']);
314
+ return {
315
+ purpose: 'client',
316
+ client_id: decodeUuid(input.client_id, ['client_id']),
317
+ server_capabilities: [],
318
+ };
319
+ }
320
+ if (input.purpose !== 'owner')
321
+ fail('Invalid enrollment purpose.', ['purpose']);
322
+ exactKeys(input, ['purpose', 'client_id', 'server_capabilities'], ['purpose', 'client_id', 'server_capabilities']);
323
+ decodeExactServerCapabilities(input.server_capabilities, ['create_cube'], ['server_capabilities']);
324
+ return {
325
+ purpose: 'owner',
326
+ client_id: decodeUuid(input.client_id, ['client_id']),
327
+ server_capabilities: ['create_cube'],
328
+ };
310
329
  }
311
330
  export function decodeEnrollmentExchangeResponseEnvelope(value) {
312
331
  return decodeProtocolEnvelope(value, decodeEnrollmentExchangeResponse);
313
332
  }
333
+ function decodeExactServerCapabilities(value, expected, path) {
334
+ if (!Array.isArray(value) || value.length !== expected.length ||
335
+ value.some((capability, index) => capability !== expected[index])) {
336
+ fail(`Expected server capabilities [${expected.join(', ')}].`, path);
337
+ }
338
+ }
339
+ export function decodeCreateCubeRequest(value) {
340
+ const input = record(value);
341
+ exactKeys(input, ['retry_key', 'name', 'template'], ['retry_key', 'name', 'template']);
342
+ const name = boundedString(input.name, 1, 120, ['name']);
343
+ if (!/^[A-Za-z0-9][A-Za-z0-9 ._-]*$/.test(name)) {
344
+ fail('Cube name contains unsupported characters.', ['name']);
345
+ }
346
+ if (!CUBE_TEMPLATES.includes(input.template)) {
347
+ fail('Unsupported cube template.', ['template']);
348
+ }
349
+ return {
350
+ retry_key: decodeUuid(input.retry_key, ['retry_key']),
351
+ name,
352
+ template: input.template,
353
+ };
354
+ }
355
+ export function decodeCreateCubeRequestEnvelope(value) {
356
+ return decodeProtocolEnvelope(value, decodeCreateCubeRequest);
357
+ }
358
+ export function decodeCreateCubeResponse(value) {
359
+ const input = record(value);
360
+ exactKeys(input, ['cube_id', 'human_seat_role_id', 'default_worker_role_id', 'access'], ['cube_id', 'human_seat_role_id', 'default_worker_role_id', 'access']);
361
+ if (input.access !== 'manage')
362
+ fail('Created cube access must be manage.', ['access']);
363
+ return {
364
+ cube_id: decodeUuid(input.cube_id, ['cube_id']),
365
+ human_seat_role_id: decodeUuid(input.human_seat_role_id, ['human_seat_role_id']),
366
+ default_worker_role_id: decodeUuid(input.default_worker_role_id, ['default_worker_role_id']),
367
+ access: 'manage',
368
+ };
369
+ }
370
+ export function decodeCreateCubeResponseEnvelope(value) {
371
+ return decodeProtocolEnvelope(value, decodeCreateCubeResponse);
372
+ }
314
373
  export function decodeAppendLogRequest(value) {
315
374
  const input = record(value);
316
375
  exactKeys(input, ['message', 'visibility', 'recipientDroneIds', 'class', 'to'], ['message']);
@@ -406,11 +465,19 @@ export function decodeUuid(value, path = []) {
406
465
  }
407
466
  return id.toLowerCase();
408
467
  }
468
+ export function decodeEnrollmentClientCredential(value, path = []) {
469
+ const credential = boundedString(value, 43, 43, path);
470
+ if (!/^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/.test(credential)) {
471
+ fail('Expected an unpadded base64url encoding of exactly 256 bits.', path);
472
+ }
473
+ return credential;
474
+ }
409
475
  export function decodeOpaqueIdentifier(value, path = []) {
410
476
  return opaqueIdentifier(value, path);
411
477
  }
412
478
  export function redactProtocolDiagnostic(value) {
413
479
  return value
480
+ .replace(/(\bretry[_-]?key\b["']?\s*(?:=|:)\s*["']?)[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/gi, '$1<REDACTED>')
414
481
  .replace(/[\u0000-\u001f\u007f-\u009f]/g, (character) => `\\u${character.charCodeAt(0).toString(16).padStart(4, '0')}`)
415
482
  .replace(/\bBearer\s+[A-Za-z0-9_-]{20,}/gi, 'Bearer <REDACTED>')
416
483
  .replace(/[A-Za-z0-9_-]{43,}/g, '<REDACTED>');
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,EAAG,GAAY,CAAC;AAG7C,eAAO,MAAM,2BAA2B,gBAA8B,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAM7D,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAGnF"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,EAAG,GAAY,CAAC;AAG7C,eAAO,MAAM,2BAA2B,gBAA8B,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAW7D,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAGnF"}
@@ -1,10 +1,15 @@
1
1
  export const PROTOCOL_VERSION = '1';
2
2
  export const SUPPORTED_PROTOCOL_VERSIONS = [PROTOCOL_VERSION];
3
3
  export const COMPATIBILITY_MATRIX = [
4
+ {
5
+ packageRange: '>=0.3.0 <0.4.0',
6
+ protocolVersions: SUPPORTED_PROTOCOL_VERSIONS,
7
+ notes: 'Retry-safe owner enrollment and idempotent multi-cube creation.',
8
+ },
4
9
  {
5
10
  packageRange: '>=0.2.0 <0.3.0',
6
11
  protocolVersions: SUPPORTED_PROTOCOL_VERSIONS,
7
- notes: 'Versioned envelope, codecs, and adapter conformance for Borg MCP servers.',
12
+ notes: 'Legacy server-generated enrollment credential response.',
8
13
  },
9
14
  ];
10
15
  export function isProtocolVersionSupported(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,CAAC;AAG7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,gBAAgB,CAAU,CAAC;AAevE,MAAM,CAAC,MAAM,oBAAoB,GAAkC;IACjE;QACE,YAAY,EAAE,gBAAgB;QAC9B,gBAAgB,EAAE,2BAA2B;QAC7C,KAAK,EAAE,2EAA2E;KACnF;CACF,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC7B,2BAAiD,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,CAAC;AAG7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,gBAAgB,CAAU,CAAC;AAevE,MAAM,CAAC,MAAM,oBAAoB,GAAkC;IACjE;QACE,YAAY,EAAE,gBAAgB;QAC9B,gBAAgB,EAAE,2BAA2B;QAC7C,KAAK,EAAE,iEAAiE;KACzE;IACD;QACE,YAAY,EAAE,gBAAgB;QAC9B,gBAAgB,EAAE,2BAA2B;QAC7C,KAAK,EAAE,yDAAyD;KACjE;CACF,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC7B,2BAAiD,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}
@@ -7,15 +7,17 @@ wire protocol.
7
7
 
8
8
  | Package range | Protocol generation | Status |
9
9
  | --- | --- | --- |
10
- | `>=0.2.0 <0.3.0` | `1` | Versioned envelope, runtime codecs, and adapter conformance |
10
+ | `>=0.3.0 <0.4.0` | `1` | Retry-safe owner enrollment and idempotent multi-cube creation |
11
+ | `>=0.2.0 <0.3.0` | `1` | Legacy server-generated enrollment credential response |
11
12
 
12
13
  ## Change Policy
13
14
 
14
- Consumers must pin `^0.2.0`, which npm interprets as `>=0.2.0 <0.3.0`. During
15
- the pre-1.0 series, a breaking envelope or wire-contract change requires a
16
- minor release (`0.3.0`); additive compatible contracts and corrections use a
17
- patch release (`0.2.x`). Consumers widen the minor range only after deliberate
18
- compatibility review. A broad `<1.0.0` range is unsafe because pre-1.0 minor
15
+ Consumers implementing the current contract must pin `^0.3.0`, which npm
16
+ interprets as `>=0.3.0 <0.4.0`. During the pre-1.0 series, a breaking envelope
17
+ or wire-contract change requires a minor release; additive compatible contracts
18
+ and corrections use a patch release within that minor. Consumers widen the
19
+ minor range only after deliberate compatibility review. A broad `<1.0.0` range
20
+ is unsafe because pre-1.0 minor
19
21
  versions may break the wire contract.
20
22
 
21
23
  A wire-shape change must include all of the following:
@@ -29,10 +31,39 @@ A wire-shape change must include all of the following:
29
31
 
30
32
  Removing or reinterpreting an existing field is a protocol-breaking change even
31
33
  when TypeScript permits it. Implementations must not infer compatibility from a
32
- successful build alone; they should check the declared protocol generation and
33
- run the shared conformance suite.
34
+ successful build alone. Because both package ranges use protocol generation `1`,
35
+ implementations must also check the peer package range and required capabilities,
36
+ then run the shared conformance suite.
34
37
 
35
- Model/provider selection is intentionally absent from the `0.2.x` coordination
38
+ ## 0.3.0 Enrollment Migration
39
+
40
+ The source contract for purpose-bound owner enrollment now uses a
41
+ client-generated credential and retry key and returns only the stable client ID
42
+ plus `create_cube`; ordinary enrollment returns no server capability. Setup and
43
+ enrollment create zero cubes. The separate authenticated, idempotent
44
+ `POST /api/cubes` creates the selected cube template and creator grant. These
45
+ shapes replace the server-generated credential response in `0.2.2` and are
46
+ therefore a breaking wire change selected for `0.3.0`. They must not be silently
47
+ accepted as a compatibility path. Client and server consumers must migrate
48
+ together.
49
+
50
+ The rollout order is fail-closed:
51
+
52
+ 1. Publish the reviewed `borgmcp-shared@0.3.0` registry artifact only after its
53
+ separate tag and publication gates pass.
54
+ 2. Update the first client and server releases to the reviewed registry range
55
+ `^0.3.0`; Git dependencies are not an authorized release input.
56
+ 3. Run the shared adapter conformance suite in both consumers before release.
57
+ 4. Deploy client and server support together. A `0.2.x` enrollment peer and a
58
+ `0.3.x` enrollment peer are incompatible; neither side may fall back to the
59
+ legacy server-generated credential response.
60
+
61
+ There is no mixed-version enrollment migration window because the affected
62
+ client and server surfaces have not been publicly released. Existing
63
+ `borgmcp-shared@0.2.2` coordination consumers remain on `^0.2.0` until they
64
+ deliberately adopt the new enrollment contract.
65
+
66
+ Model/provider selection is intentionally absent from the `0.3.x` coordination
36
67
  contract. Agent CLIs own model configuration; Borg servers may expose the
37
68
  separate advisory `reported_model` field for session observability, but clients
38
69
  must not use it for routing, launch configuration, or authorization.