borgmcp-shared 0.3.0 → 0.4.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,14 +1,14 @@
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.3.0';
4
+ export const SHARED_PACKAGE_VERSION = '0.4.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
8
  export const CUBES_PATH = '/api/cubes';
9
9
  export const PROTOCOL_HTTP_CONTRACT = {
10
10
  health: { method: 'GET', path: HEALTH_PATH, authenticated: false, success_status: 204, bodyless: true },
11
- protocol: { method: 'GET', path: PROTOCOL_INFO_PATH, authenticated: true, success_status: 200 },
11
+ protocol: { method: 'GET', path: PROTOCOL_INFO_PATH, authenticated: false, success_status: 200 },
12
12
  enrollment: { method: 'POST', path: ENROLLMENT_EXCHANGE_PATH, authenticated: 'invitation', success_status: 201 },
13
13
  cubes: { method: 'POST', path: CUBES_PATH, authenticated: true, success_status: 201 },
14
14
  auth_missing_status: 401,
@@ -16,7 +16,6 @@ export const PROTOCOL_HTTP_CONTRACT = {
16
16
  cursor_expired_status: 410,
17
17
  content_too_large_status: 413,
18
18
  unsupported_protocol_status: 426,
19
- unsupported_capability_status: 501,
20
19
  redirect_policy: 'error',
21
20
  };
22
21
  export const PROTOCOL_LIMIT_CEILINGS = {
@@ -25,29 +24,6 @@ export const PROTOCOL_LIMIT_CEILINGS = {
25
24
  max_read_page_size: 500,
26
25
  max_replay_page_size: 1000,
27
26
  };
28
- export const KNOWN_CAPABILITIES = [
29
- 'coordination.core',
30
- 'auth.bearer',
31
- 'auth.revocation',
32
- 'auth.retry-safe-enrollment',
33
- 'scope.cube-isolation',
34
- 'transport.tls',
35
- 'authority.no-cloud-fallback',
36
- 'log.cursor',
37
- 'stream.sse',
38
- 'stream.replay',
39
- 'acks',
40
- 'claims',
41
- 'decisions',
42
- ];
43
- export const REQUIRED_SECURITY_CAPABILITIES = [
44
- 'auth.bearer',
45
- 'auth.revocation',
46
- 'auth.retry-safe-enrollment',
47
- 'scope.cube-isolation',
48
- 'transport.tls',
49
- 'authority.no-cloud-fallback',
50
- ];
51
27
  export const SERVER_CAPABILITIES = ['create_cube'];
52
28
  export const CUBE_TEMPLATES = ['default'];
53
29
  export class ProtocolContractError extends Error {
@@ -107,13 +83,6 @@ export function utf8ByteLength(value) {
107
83
  }
108
84
  return bytes;
109
85
  }
110
- function isSemanticVersion(value) {
111
- const match = value.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/);
112
- if (!match)
113
- return false;
114
- const prerelease = match[4];
115
- return prerelease === undefined || prerelease.split('.').every((identifier) => !/^\d+$/.test(identifier) || identifier === '0' || !identifier.startsWith('0'));
116
- }
117
86
  function boundedPositiveInteger(value, maximum, path) {
118
87
  if (!Number.isSafeInteger(value) || value <= 0 || value > maximum) {
119
88
  fail(`Expected a positive safe integer no greater than ${maximum}.`, path);
@@ -141,74 +110,16 @@ function decodeRequestId(value, path) {
141
110
  }
142
111
  return decoded;
143
112
  }
144
- function capabilityName(value, path) {
145
- const decoded = boundedString(value, 1, 64, path);
146
- if (!/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/.test(decoded)) {
147
- fail('Capability name contains unsupported characters.', path);
148
- }
149
- return decoded;
113
+ export function createProtocolTagPreflight() {
114
+ return { protocol_version: PROTOCOL_VERSION };
150
115
  }
151
- export function decodeProtocolInfo(value) {
116
+ export function decodeProtocolTagPreflight(value) {
152
117
  const input = record(value);
153
- exactKeys(input, ['protocol_version', 'package', 'capabilities', 'limits'], [
154
- 'protocol_version',
155
- 'package',
156
- 'capabilities',
157
- 'limits',
158
- ]);
118
+ exactKeys(input, ['protocol_version'], ['protocol_version']);
159
119
  if (input.protocol_version !== PROTOCOL_VERSION) {
160
- throw new ProtocolContractError(`Unsupported protocol version "${String(input.protocol_version)}".`, ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
161
- }
162
- const packageInfo = record(input.package, ['package']);
163
- exactKeys(packageInfo, ['name', 'version'], ['name', 'version'], ['package']);
164
- if (packageInfo.name !== SHARED_PACKAGE_NAME) {
165
- fail(`Expected package name "${SHARED_PACKAGE_NAME}".`, ['package', 'name']);
166
- }
167
- const packageVersion = boundedString(packageInfo.version, 5, 64, ['package', 'version']);
168
- if (!isSemanticVersion(packageVersion)) {
169
- fail('Expected a semantic package version.', ['package', 'version']);
170
- }
171
- if (!Array.isArray(input.capabilities))
172
- fail('Expected an array.', ['capabilities']);
173
- const capabilities = input.capabilities.map((capability, index) => {
174
- return capabilityName(capability, ['capabilities', index]);
175
- });
176
- if (new Set(capabilities).size !== capabilities.length) {
177
- fail('Capabilities must be unique.', ['capabilities']);
178
- }
179
- const limits = record(input.limits, ['limits']);
180
- exactKeys(limits, [
181
- 'max_request_bytes',
182
- 'max_log_message_bytes',
183
- 'max_read_page_size',
184
- 'max_replay_page_size',
185
- ], [
186
- 'max_request_bytes',
187
- 'max_log_message_bytes',
188
- 'max_read_page_size',
189
- 'max_replay_page_size',
190
- ], ['limits']);
191
- return {
192
- protocol_version: PROTOCOL_VERSION,
193
- package: { name: SHARED_PACKAGE_NAME, version: packageVersion },
194
- capabilities,
195
- limits: {
196
- max_request_bytes: boundedPositiveInteger(limits.max_request_bytes, PROTOCOL_LIMIT_CEILINGS.max_request_bytes, ['limits', 'max_request_bytes']),
197
- max_log_message_bytes: boundedPositiveInteger(limits.max_log_message_bytes, PROTOCOL_LIMIT_CEILINGS.max_log_message_bytes, ['limits', 'max_log_message_bytes']),
198
- max_read_page_size: boundedPositiveInteger(limits.max_read_page_size, PROTOCOL_LIMIT_CEILINGS.max_read_page_size, ['limits', 'max_read_page_size']),
199
- max_replay_page_size: boundedPositiveInteger(limits.max_replay_page_size, PROTOCOL_LIMIT_CEILINGS.max_replay_page_size, ['limits', 'max_replay_page_size']),
200
- },
201
- };
202
- }
203
- export function negotiateProtocol(value, requiredCapabilities = []) {
204
- const info = decodeProtocolInfo(value);
205
- const required = [...REQUIRED_SECURITY_CAPABILITIES, ...requiredCapabilities];
206
- for (const capability of new Set(required)) {
207
- if (!info.capabilities.includes(capability)) {
208
- throw new ProtocolContractError(`Required capability "${capability}" is unavailable.`, ErrorCode.UNSUPPORTED_CAPABILITY, ['capabilities']);
209
- }
120
+ throw new ProtocolContractError('Unsupported protocol version.', ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
210
121
  }
211
- return info;
122
+ return { protocol_version: PROTOCOL_VERSION };
212
123
  }
213
124
  export function createProtocolEnvelope(requestId, payload) {
214
125
  return {
@@ -225,7 +136,7 @@ export function decodeProtocolEnvelope(value, decodePayload) {
225
136
  'payload',
226
137
  ]);
227
138
  if (input.protocol_version !== PROTOCOL_VERSION) {
228
- throw new ProtocolContractError(`Unsupported protocol version "${String(input.protocol_version)}".`, ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
139
+ throw new ProtocolContractError('Unsupported protocol version.', ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
229
140
  }
230
141
  const decodedRequestId = decodeRequestId(input.request_id, ['request_id']);
231
142
  return {
@@ -234,14 +145,11 @@ export function decodeProtocolEnvelope(value, decodePayload) {
234
145
  payload: decodePayload(input.payload),
235
146
  };
236
147
  }
237
- export function decodeProtocolInfoEnvelope(value) {
238
- return decodeProtocolEnvelope(value, decodeProtocolInfo);
239
- }
240
148
  export function decodeProtocolErrorEnvelope(value) {
241
149
  const input = record(value);
242
150
  exactKeys(input, ['protocol_version', 'request_id', 'error'], ['protocol_version', 'error']);
243
151
  if (input.protocol_version !== PROTOCOL_VERSION) {
244
- throw new ProtocolContractError(`Unsupported protocol version "${String(input.protocol_version)}".`, ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
152
+ throw new ProtocolContractError('Unsupported protocol version.', ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
245
153
  }
246
154
  const error = record(input.error, ['error']);
247
155
  exactKeys(error, [
@@ -249,8 +157,6 @@ export function decodeProtocolErrorEnvelope(value) {
249
157
  'message',
250
158
  'details',
251
159
  'retry_after',
252
- 'required_capability',
253
- 'supported_versions',
254
160
  ], ['code', 'message'], ['error']);
255
161
  if (typeof error.code !== 'string' || !Object.values(ErrorCode).includes(error.code)) {
256
162
  fail('Unknown protocol error code.', ['error', 'code']);
@@ -265,18 +171,6 @@ export function decodeProtocolErrorEnvelope(value) {
265
171
  if (error.retry_after !== undefined) {
266
172
  decodedError.retry_after = boundedPositiveInteger(error.retry_after, 86_400, ['error', 'retry_after']);
267
173
  }
268
- if (error.required_capability !== undefined) {
269
- decodedError.required_capability = capabilityName(error.required_capability, ['error', 'required_capability']);
270
- }
271
- if (error.supported_versions !== undefined) {
272
- if (!Array.isArray(error.supported_versions) || error.supported_versions.length === 0 ||
273
- error.supported_versions.length > 16 ||
274
- !error.supported_versions.every((version) => version === PROTOCOL_VERSION) ||
275
- new Set(error.supported_versions).size !== error.supported_versions.length) {
276
- fail('Invalid supported protocol versions.', ['error', 'supported_versions']);
277
- }
278
- decodedError.supported_versions = [...error.supported_versions];
279
- }
280
174
  const decodedRequestId = input.request_id === undefined
281
175
  ? undefined
282
176
  : decodeRequestId(input.request_id, ['request_id']);
@@ -498,4 +392,128 @@ export function maxLogCursor(a, b) {
498
392
  return decodeLogCursor(a);
499
393
  return compareLogCursor(a, b) >= 0 ? decodeLogCursor(a) : decodeLogCursor(b);
500
394
  }
395
+ export const ATTACH_PATH = '/api/client/attach';
396
+ function decodeAttachCube(value, path) {
397
+ const input = record(value, path);
398
+ exactKeys(input, ['id', 'name'], ['id', 'name'], path);
399
+ return {
400
+ id: decodeUuid(input.id, [...path, 'id']),
401
+ name: boundedString(input.name, 1, 128, [...path, 'name']),
402
+ };
403
+ }
404
+ function decodeAttachRole(value, path) {
405
+ const input = record(value, path);
406
+ exactKeys(input, ['id', 'name', 'role_class', 'is_human_seat'], ['id', 'name'], path);
407
+ const result = {
408
+ id: decodeUuid(input.id, [...path, 'id']),
409
+ name: boundedString(input.name, 1, 128, [...path, 'name']),
410
+ };
411
+ if (input.role_class !== undefined) {
412
+ if (input.role_class !== 'queen' && input.role_class !== 'worker') {
413
+ fail('Expected role_class "queen" or "worker".', [...path, 'role_class']);
414
+ }
415
+ result.role_class = input.role_class;
416
+ }
417
+ if (input.is_human_seat !== undefined) {
418
+ if (typeof input.is_human_seat !== 'boolean') {
419
+ fail('Expected a boolean.', [...path, 'is_human_seat']);
420
+ }
421
+ result.is_human_seat = input.is_human_seat;
422
+ }
423
+ return result;
424
+ }
425
+ function decodeAttachDrone(value, path) {
426
+ const input = record(value, path);
427
+ exactKeys(input, ['id', 'label'], ['id', 'label'], path);
428
+ return {
429
+ id: decodeUuid(input.id, [...path, 'id']),
430
+ label: boundedString(input.label, 1, 128, [...path, 'label']),
431
+ };
432
+ }
433
+ function decodeAttachSession(value, path) {
434
+ const input = record(value, path);
435
+ exactKeys(input, ['id', 'expires_at'], ['id', 'expires_at'], path);
436
+ return {
437
+ id: decodeUuid(input.id, [...path, 'id']),
438
+ expires_at: decodeCanonicalTimestamp(input.expires_at, [...path, 'expires_at']),
439
+ };
440
+ }
441
+ export function decodeAttachRequest(value) {
442
+ const input = record(value);
443
+ exactKeys(input, ['cube_id', 'role_id', 'session_credential', 'prior_drone_id'], [
444
+ 'cube_id',
445
+ 'role_id',
446
+ 'session_credential',
447
+ ]);
448
+ const result = {
449
+ cube_id: decodeUuid(input.cube_id, ['cube_id']),
450
+ role_id: decodeUuid(input.role_id, ['role_id']),
451
+ session_credential: opaqueToken(input.session_credential, ['session_credential']),
452
+ };
453
+ if (input.prior_drone_id !== undefined) {
454
+ result.prior_drone_id = decodeUuid(input.prior_drone_id, ['prior_drone_id']);
455
+ }
456
+ return result;
457
+ }
458
+ export function createAttachRequestEnvelope(requestId, payload) {
459
+ return {
460
+ protocol_version: PROTOCOL_VERSION,
461
+ request_id: decodeRequestId(requestId, ['request_id']),
462
+ payload,
463
+ };
464
+ }
465
+ export function decodeAttachRequestEnvelope(value) {
466
+ const input = record(value);
467
+ exactKeys(input, ['protocol_version', 'request_id', 'payload'], [
468
+ 'protocol_version',
469
+ 'request_id',
470
+ 'payload',
471
+ ]);
472
+ if (input.protocol_version !== PROTOCOL_VERSION) {
473
+ throw new ProtocolContractError('Unsupported protocol version.', ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
474
+ }
475
+ const decodedRequestId = decodeRequestId(input.request_id, ['request_id']);
476
+ return {
477
+ protocol_version: PROTOCOL_VERSION,
478
+ request_id: decodedRequestId,
479
+ payload: decodeAttachRequest(input.payload),
480
+ };
481
+ }
482
+ export function decodeAttachResponse(value) {
483
+ const input = record(value);
484
+ exactKeys(input, ['result', 'cube', 'role', 'drone', 'session'], [
485
+ 'result',
486
+ 'cube',
487
+ 'role',
488
+ 'drone',
489
+ 'session',
490
+ ]);
491
+ if (input.result !== 'created' && input.result !== 'reused') {
492
+ fail('Expected result "created" or "reused".', ['result']);
493
+ }
494
+ return {
495
+ result: input.result,
496
+ cube: decodeAttachCube(input.cube, ['cube']),
497
+ role: decodeAttachRole(input.role, ['role']),
498
+ drone: decodeAttachDrone(input.drone, ['drone']),
499
+ session: decodeAttachSession(input.session, ['session']),
500
+ };
501
+ }
502
+ export function decodeAttachResponseEnvelope(value) {
503
+ const input = record(value);
504
+ exactKeys(input, ['protocol_version', 'request_id', 'payload'], [
505
+ 'protocol_version',
506
+ 'request_id',
507
+ 'payload',
508
+ ]);
509
+ if (input.protocol_version !== PROTOCOL_VERSION) {
510
+ throw new ProtocolContractError('Unsupported protocol version.', ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, ['protocol_version']);
511
+ }
512
+ const decodedRequestId = decodeRequestId(input.request_id, ['request_id']);
513
+ return {
514
+ protocol_version: PROTOCOL_VERSION,
515
+ request_id: decodedRequestId,
516
+ payload: decodeAttachResponse(input.payload),
517
+ };
518
+ }
501
519
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAwB,MAAM,cAAc,CAAC;AAEtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAyB,CAAC;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAmB,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAwB,CAAC;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAAmC,CAAC;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,YAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvG,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE;IAC/F,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,EAAE;IAChH,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE;IACrF,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,qBAAqB,EAAE,GAAG;IAC1B,wBAAwB,EAAE,GAAG;IAC7B,2BAA2B,EAAE,GAAG;IAChC,6BAA6B,EAAE,GAAG;IAClC,eAAe,EAAE,OAAO;CAChB,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,qBAAqB,EAAE,IAAI,GAAG,IAAI;IAClC,kBAAkB,EAAE,GAAG;IACvB,oBAAoB,EAAE,IAAI;CAClB,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mBAAmB;IACnB,aAAa;IACb,iBAAiB;IACjB,4BAA4B;IAC5B,sBAAsB;IACtB,eAAe;IACf,6BAA6B;IAC7B,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,MAAM;IACN,QAAQ;IACR,WAAW;CACH,CAAC;AAKX,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,aAAa;IACb,iBAAiB;IACjB,4BAA4B;IAC5B,sBAAsB;IACtB,eAAe;IACf,6BAA6B;CACW,CAAC;AA8C3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAAa,CAAU,CAAC;AAqB5D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,CAAU,CAAC;AA8BnD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAG5B;IACA;IAHlB,YACE,OAAe,EACC,OAAkB,SAAS,CAAC,aAAa,EACzC,OAAqC,EAAE;QAEvD,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAqC;QACzC,SAAI,GAAJ,IAAI,CAAmC;QAGvD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,SAAS,IAAI,CAAC,OAAe,EAAE,OAAqC,EAAE;IACpE,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,OAAqC,EAAE;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAChB,KAA8B,EAC9B,OAA0B,EAC1B,QAA2B,EAC3B,OAAqC,EAAE;IAEvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,GAAW,EACX,GAAW,EACX,IAAkC;IAElC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,6BAA6B,GAAG,QAAQ,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,CAAC;aACxB,IAAI,IAAI,IAAI,KAAK;YAAE,KAAK,IAAI,CAAC,CAAC;aAC9B,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;YAC5D,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YACxF,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,EAAE,CAAC;QACV,CAAC;;YAAM,KAAK,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CACvB,+HAA+H,CAChI,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5E,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAC/E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAc,EACd,OAAe,EACf,IAAkC;IAElC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,IAAK,KAAgB,GAAG,OAAO,EAAE,CAAC;QAC1F,IAAI,CAAC,oDAAoD,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAkC;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAkC;IACrE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,IAAkC;IACzE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAkC;IACxE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE;QAC1E,kBAAkB;QAClB,SAAS;QACT,cAAc;QACd,QAAQ;KACT,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,IAAI,qBAAqB,CAC7B,iCAAiC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EACnE,SAAS,CAAC,4BAA4B,EACtC,CAAC,kBAAkB,CAAC,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,IAAI,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC7C,IAAI,CAAC,0BAA0B,mBAAmB,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,sCAAsC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QAChE,OAAO,cAAc,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAe,CAAC;IAC3E,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;QACvD,IAAI,CAAC,8BAA8B,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,SAAS,CACP,MAAM,EACN;QACE,mBAAmB;QACnB,uBAAuB;QACvB,oBAAoB;QACpB,sBAAsB;KACvB,EACD;QACE,mBAAmB;QACnB,uBAAuB;QACvB,oBAAoB;QACpB,sBAAsB;KACvB,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,gBAAgB,EAAE,gBAAgB;QAClC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE;QAC/D,YAAY;QACZ,MAAM,EAAE;YACN,iBAAiB,EAAE,sBAAsB,CAAC,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAC/I,qBAAqB,EAAE,sBAAsB,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC/J,kBAAkB,EAAE,sBAAsB,CAAC,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YACnJ,oBAAoB,EAAE,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;SAC5J;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,uBAA8C,EAAE;IAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,GAAG,8BAA8B,EAAE,GAAG,oBAAoB,CAAC,CAAC;IAC9E,KAAK,MAAM,UAAU,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,qBAAqB,CAC7B,wBAAwB,UAAU,mBAAmB,EACrD,SAAS,CAAC,sBAAsB,EAChC,CAAC,cAAc,CAAC,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAI,SAAiB,EAAE,OAAU;IACrE,OAAO;QACL,gBAAgB,EAAE,gBAAgB;QAClC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;QACtD,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,aAAsC;IAEtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE;QAC9D,kBAAkB;QAClB,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,IAAI,qBAAqB,CAC7B,iCAAiC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EACnE,SAAS,CAAC,4BAA4B,EACtC,CAAC,kBAAkB,CAAC,CACrB,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3E,OAAO;QACL,gBAAgB,EAAE,gBAAgB;QAClC,UAAU,EAAE,gBAAgB;QAC5B,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7F,IAAI,KAAK,CAAC,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,IAAI,qBAAqB,CAC7B,iCAAiC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EACnE,SAAS,CAAC,4BAA4B,EACtC,CAAC,kBAAkB,CAAC,CACrB,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,SAAS,CACP,KAAK,EACL;QACE,MAAM;QACN,SAAS;QACT,SAAS;QACT,aAAa;QACb,qBAAqB;QACrB,oBAAoB;KACrB,EACD,CAAC,MAAM,EAAE,SAAS,CAAC,EACnB,CAAC,OAAO,CAAC,CACV,CAAC;IACF,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAiB,CAAC,EAAE,CAAC;QAClG,IAAI,CAAC,8BAA8B,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,YAAY,GAAmC;QACnD,IAAI,EAAE,KAAK,CAAC,IAAiB;QAC7B,OAAO,EAAE,wBAAwB,CAC/B,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAC3D;KACF,CAAC;IACF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,YAAY,CAAC,OAAO,GAAG,wBAAwB,CAC7C,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,YAAY,CAAC,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5C,YAAY,CAAC,mBAAmB,GAAG,cAAc,CAC/C,KAAK,CAAC,mBAAmB,EACzB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CACjC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;YACjF,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,EAAE;YACpC,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,gBAAgB,CAAC;YAC1E,IAAI,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC/E,IAAI,CAAC,sCAAsC,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,YAAY,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAsB,CAAC;IACvF,CAAC;IACD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,OAAO,gBAAgB,KAAK,SAAS;QACnC,CAAC,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;QAC7D,CAAC,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CACP,KAAK,EACL,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAC/D,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC,CACjD,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,gCAAgC,CACvD,KAAK,CAAC,iBAAiB,EACvB,CAAC,mBAAmB,CAAC,CACtB,CAAC;IACF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS;QAChD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9D,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClF,IAAI,CAAC,8CAA8C,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG;QACd,UAAU;QACV,SAAS,EAAE,QAAQ;QACnB,iBAAiB,EAAE,gBAAgB;KACpC,CAAC;IACF,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,KAAc;IAEd,OAAO,sBAAsB,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/B,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnH,6BAA6B,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACtF,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;YACrD,mBAAmB,EAAE,EAAE;SACxB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;QAAE,IAAI,CAAC,6BAA6B,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACnH,6BAA6B,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACnG,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;QACrD,mBAAmB,EAAE,CAAC,aAAa,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,KAAc;IAEd,OAAO,sBAAsB,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,6BAA6B,CACpC,KAAc,EACd,QAAqC,EACrC,IAAkC;IAElC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACzD,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,iCAAiC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,4CAA4C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAwB,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,4BAA4B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI;QACJ,QAAQ,EAAE,KAAK,CAAC,QAAwB;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,OAAO,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CACP,KAAK,EACL,CAAC,SAAS,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EACrE,CAAC,SAAS,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CACtE,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,qCAAqC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/C,kBAAkB,EAAE,UAAU,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,oBAAoB,CAAC,CAAC;QAChF,sBAAsB,EAAE,UAAU,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,wBAAwB,CAAC,CAAC;QAC5F,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,OAAO,sBAAsB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CACP,KAAK,EACL,CAAC,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAC7D,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,MAAM,MAAM,GAA0C;QACpD,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;KAC9D,CAAC;IACF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACtE,IAAI,CAAC,yBAAyB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5H,IAAI,CAAC,oDAAoD,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACnE,UAAU,CAAC,EAAE,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAC7C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa,EAAE,QAAgB,EAAE,SAAiB;IAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC3E,IAAI,CAAC,YAAY,KAAK,iBAAiB,QAAQ,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,GAAG,KAAK,yBAAyB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO;QAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAA+C;QACzD,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QACpD,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;KAC/D,CAAC;IACF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC;IAC9C,IAAI,QAAQ,KAAK,KAAK;QAAE,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,OAAO,QAAQ;QACb,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE;QAC1D,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,OAAqC,EAAE;IAEvC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,+CAA+C,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,gEAAgE,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;QAC7E,IAAI,CAAC,2CAA2C,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,OAAqC,EAAE;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,UAAU,EAAE,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,OAAqC,EAAE;IAChF,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,4EAA4E,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAc,EACd,OAAqC,EAAE;IAEvC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,8DAA8D,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,OAAqC,EAAE;IAEvC,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,OAAO,KAAK;SACT,OAAO,CAAC,qHAAqH,EAAE,cAAc,CAAC;SAC9I,OAAO,CAAC,+BAA+B,EAAE,CAAC,SAAS,EAAE,EAAE,CACtD,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC9D;SACA,OAAO,CAAC,iCAAiC,EAAE,mBAAmB,CAAC;SAC/D,OAAO,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAY,EAAE,CAAY;IACzD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAmB,EAAE,CAAmB;IACnE,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/protocol/contract.ts"],"names":[],"mappings":"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"}
@@ -17,17 +17,15 @@ export declare enum ErrorCode {
17
17
  DRONE_EVICTED = "DRONE_EVICTED",
18
18
  DRONE_FROZEN = "DRONE_FROZEN",
19
19
  UNSUPPORTED_PROTOCOL_VERSION = "UNSUPPORTED_PROTOCOL_VERSION",
20
- UNSUPPORTED_CAPABILITY = "UNSUPPORTED_CAPABILITY",
21
20
  CURSOR_INVALID = "CURSOR_INVALID",
22
21
  CURSOR_EXPIRED = "CURSOR_EXPIRED",
23
- SESSION_REVOKED = "SESSION_REVOKED"
22
+ SESSION_REVOKED = "SESSION_REVOKED",
23
+ SESSION_REJECTED = "SESSION_REJECTED"
24
24
  }
25
25
  export interface ErrorResponse {
26
26
  code: ErrorCode;
27
27
  message: string;
28
28
  details?: string;
29
29
  retryAfter?: number;
30
- requiredCapability?: string;
31
- supportedVersions?: readonly string[];
32
30
  }
33
31
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/protocol/errors.ts"],"names":[],"mappings":"AACA,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,sBAAsB,2BAA2B;IACjD,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,4BAA4B,iCAAiC;IAC7D,sBAAsB,2BAA2B;IACjD,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;CACpC;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/protocol/errors.ts"],"names":[],"mappings":"AACA,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,sBAAsB,2BAA2B;IACjD,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,4BAA4B,iCAAiC;IAC7D,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAOnC,gBAAgB,qBAAqB;CACtC;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -18,9 +18,9 @@ export var ErrorCode;
18
18
  ErrorCode["DRONE_EVICTED"] = "DRONE_EVICTED";
19
19
  ErrorCode["DRONE_FROZEN"] = "DRONE_FROZEN";
20
20
  ErrorCode["UNSUPPORTED_PROTOCOL_VERSION"] = "UNSUPPORTED_PROTOCOL_VERSION";
21
- ErrorCode["UNSUPPORTED_CAPABILITY"] = "UNSUPPORTED_CAPABILITY";
22
21
  ErrorCode["CURSOR_INVALID"] = "CURSOR_INVALID";
23
22
  ErrorCode["CURSOR_EXPIRED"] = "CURSOR_EXPIRED";
24
23
  ErrorCode["SESSION_REVOKED"] = "SESSION_REVOKED";
24
+ ErrorCode["SESSION_REJECTED"] = "SESSION_REJECTED";
25
25
  })(ErrorCode || (ErrorCode = {}));
26
26
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/protocol/errors.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,SAuBX;AAvBD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;IAC7B,4DAA+C,CAAA;IAC/C,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,wDAA2C,CAAA;IAC3C,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,8DAAiD,CAAA;IACjD,oCAAuB,CAAA;IACvB,wCAA2B,CAAA;IAC3B,8DAAiD,CAAA;IACjD,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,0EAA6D,CAAA;IAC7D,8DAAiD,CAAA;IACjD,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,gDAAmC,CAAA;AACrC,CAAC,EAvBW,SAAS,KAAT,SAAS,QAuBpB"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/protocol/errors.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,SA6BX;AA7BD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;IAC7B,4DAA+C,CAAA;IAC/C,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,wDAA2C,CAAA;IAC3C,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,8DAAiD,CAAA;IACjD,oCAAuB,CAAA;IACvB,wCAA2B,CAAA;IAC3B,8DAAiD,CAAA;IACjD,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,0EAA6D,CAAA;IAC7D,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,gDAAmC,CAAA;IAOnC,kDAAqC,CAAA;AACvC,CAAC,EA7BW,SAAS,KAAT,SAAS,QA6BpB"}
@@ -1,11 +1,3 @@
1
- export declare const PROTOCOL_VERSION: "1";
2
- export declare const SUPPORTED_PROTOCOL_VERSIONS: readonly ["1"];
3
- export type ProtocolVersion = (typeof SUPPORTED_PROTOCOL_VERSIONS)[number];
4
- export interface CompatibilityEntry {
5
- packageRange: string;
6
- protocolVersions: readonly ProtocolVersion[];
7
- notes: string;
8
- }
9
- export declare const COMPATIBILITY_MATRIX: readonly CompatibilityEntry[];
10
- export declare function isProtocolVersionSupported(value: unknown): value is ProtocolVersion;
1
+ export declare const PROTOCOL_VERSION: "2";
2
+ export type ProtocolVersion = typeof PROTOCOL_VERSION;
11
3
  //# sourceMappingURL=version.d.ts.map
@@ -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,EAW7D,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;AAE7C,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC"}
@@ -1,19 +1,2 @@
1
- export const PROTOCOL_VERSION = '1';
2
- export const SUPPORTED_PROTOCOL_VERSIONS = [PROTOCOL_VERSION];
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
- },
9
- {
10
- packageRange: '>=0.2.0 <0.3.0',
11
- protocolVersions: SUPPORTED_PROTOCOL_VERSIONS,
12
- notes: 'Legacy server-generated enrollment credential response.',
13
- },
14
- ];
15
- export function isProtocolVersionSupported(value) {
16
- return typeof value === 'string' &&
17
- SUPPORTED_PROTOCOL_VERSIONS.includes(value);
18
- }
1
+ export const PROTOCOL_VERSION = '2';
19
2
  //# sourceMappingURL=version.js.map
@@ -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,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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,CAAC"}
@@ -1,69 +1,57 @@
1
1
  # Protocol Compatibility
2
2
 
3
- `borgmcp-shared` versions the contracts shared by Borg MCP clients and server
4
- implementations. Package versions and protocol generations are related but are
5
- not interchangeable: a package release can add helpers without changing the
6
- wire protocol.
7
-
8
- | Package range | Protocol generation | Status |
9
- | --- | --- | --- |
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 |
3
+ `borgmcp-shared` carries the wire contract shared by the Borg MCP client and
4
+ server. The client and server are a single clean-slate product: they ship and
5
+ update together, so the contract has no negotiation surface and no
6
+ backwards-compatibility machinery.
7
+
8
+ ## Exact Protocol Tag
9
+
10
+ `PROTOCOL_VERSION` is the sole acceptance authority. The credential-free,
11
+ mutation-free `GET /api/protocol` preflight returns only the exact tag, and
12
+ `decodeProtocolTagPreflight` fails closed on any other tag, an extra field, or a
13
+ non-object body with a clear static mismatch diagnostic — so a client verifies
14
+ pinned TLS and the tag before it creates or sends any credential. Every
15
+ subsequent envelope also carries the tag and decodes it before any payload as
16
+ defense in depth. There is no capability negotiation, no supported-version list,
17
+ no compatibility matrix, and no package-range or version-range fallback. A peer
18
+ that presents a different tag is rejected — it is never adapted to.
12
19
 
13
20
  ## Change Policy
14
21
 
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
21
- versions may break the wire contract.
22
+ A wire-shape change is simply made: the protocol tag increments and both the
23
+ client and server adopt the new tag together in a coordinated release. There is
24
+ no mixed-version window in which an old client and a new server (or the reverse)
25
+ interoperate; incompatible peers fail closed rather than degrade.
22
26
 
23
- A wire-shape change must include all of the following:
27
+ A wire-shape change must include:
24
28
 
25
29
  1. A new or updated implementation-neutral conformance vector.
26
30
  2. A documented client and server rollout order.
27
- 3. A compatibility entry that identifies the affected package and protocol
28
- versions.
29
- 4. A migration window when older deployed clients or servers can still be in
30
- use.
31
+ 3. A package version bump so the new protocol tag never ships under a version
32
+ whose already-published artifact carries a different tag.
31
33
 
32
34
  Removing or reinterpreting an existing field is a protocol-breaking change even
33
35
  when TypeScript permits it. Implementations must not infer compatibility from a
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.
37
-
38
- ## 0.3.0 Enrollment Migration
36
+ successful build alone they must run the shared conformance suite against the
37
+ exact tag they implement.
39
38
 
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.
39
+ ## Coordinated Rollout
49
40
 
50
41
  The rollout order is fail-closed:
51
42
 
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.
43
+ 1. Publish the reviewed `borgmcp-shared` registry artifact only after its
44
+ separate tag and publication gates pass, under a version that has never been
45
+ published with a different protocol tag.
46
+ 2. Update the client and server releases to the reviewed registry range; Git
47
+ dependencies are not an authorized release input.
56
48
  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.
49
+ 4. Deploy client and server support together. A peer on the prior protocol tag
50
+ and a peer on the new tag are incompatible; neither side falls back.
60
51
 
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.
52
+ ## Model/Provider Selection
65
53
 
66
- Model/provider selection is intentionally absent from the `0.3.x` coordination
67
- contract. Agent CLIs own model configuration; Borg servers may expose the
68
- separate advisory `reported_model` field for session observability, but clients
69
- must not use it for routing, launch configuration, or authorization.
54
+ Model/provider selection is intentionally absent from the coordination contract.
55
+ Agent CLIs own model configuration; Borg servers may expose the separate
56
+ advisory `reported_model` field for session observability, but clients must not
57
+ use it for routing, launch configuration, or authorization.