@kya-os/mcp 1.10.1 → 1.12.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.
Files changed (297) hide show
  1. package/AUDITABILITY.md +441 -0
  2. package/CHANGELOG.md +108 -0
  3. package/CONFORMANCE.md +600 -0
  4. package/README.md +69 -6
  5. package/SPEC.md +1820 -0
  6. package/dist/audit/adapters/legacy-audit-log.d.ts +20 -0
  7. package/dist/audit/adapters/legacy-audit-log.d.ts.map +1 -0
  8. package/dist/audit/adapters/legacy-audit-log.js +56 -0
  9. package/dist/audit/adapters/legacy-audit-log.js.map +1 -0
  10. package/dist/audit/adapters/mcp.d.ts +105 -0
  11. package/dist/audit/adapters/mcp.d.ts.map +1 -0
  12. package/dist/audit/adapters/mcp.js +213 -0
  13. package/dist/audit/adapters/mcp.js.map +1 -0
  14. package/dist/audit/assurance.d.ts +22 -0
  15. package/dist/audit/assurance.d.ts.map +1 -0
  16. package/dist/audit/assurance.js +39 -0
  17. package/dist/audit/assurance.js.map +1 -0
  18. package/dist/audit/checkpoint-coordinator.d.ts +51 -0
  19. package/dist/audit/checkpoint-coordinator.d.ts.map +1 -0
  20. package/dist/audit/checkpoint-coordinator.js +112 -0
  21. package/dist/audit/checkpoint-coordinator.js.map +1 -0
  22. package/dist/audit/checkpoint.d.ts +59 -0
  23. package/dist/audit/checkpoint.d.ts.map +1 -0
  24. package/dist/audit/checkpoint.js +219 -0
  25. package/dist/audit/checkpoint.js.map +1 -0
  26. package/dist/audit/cli.d.ts +8 -0
  27. package/dist/audit/cli.d.ts.map +1 -0
  28. package/dist/audit/cli.js +85 -0
  29. package/dist/audit/cli.js.map +1 -0
  30. package/dist/audit/crypto.d.ts +37 -0
  31. package/dist/audit/crypto.d.ts.map +1 -0
  32. package/dist/audit/crypto.js +68 -0
  33. package/dist/audit/crypto.js.map +1 -0
  34. package/dist/audit/errors.d.ts +29 -0
  35. package/dist/audit/errors.d.ts.map +1 -0
  36. package/dist/audit/errors.js +33 -0
  37. package/dist/audit/errors.js.map +1 -0
  38. package/dist/audit/evidence.d.ts +45 -0
  39. package/dist/audit/evidence.d.ts.map +1 -0
  40. package/dist/audit/evidence.js +151 -0
  41. package/dist/audit/evidence.js.map +1 -0
  42. package/dist/audit/index.d.ts +30 -0
  43. package/dist/audit/index.d.ts.map +1 -0
  44. package/dist/audit/index.js +30 -0
  45. package/dist/audit/index.js.map +1 -0
  46. package/dist/audit/integrity.d.ts +19 -0
  47. package/dist/audit/integrity.d.ts.map +1 -0
  48. package/dist/audit/integrity.js +64 -0
  49. package/dist/audit/integrity.js.map +1 -0
  50. package/dist/audit/merkle.d.ts +31 -0
  51. package/dist/audit/merkle.d.ts.map +1 -0
  52. package/dist/audit/merkle.js +195 -0
  53. package/dist/audit/merkle.js.map +1 -0
  54. package/dist/audit/mirror-service.d.ts +19 -0
  55. package/dist/audit/mirror-service.d.ts.map +1 -0
  56. package/dist/audit/mirror-service.js +54 -0
  57. package/dist/audit/mirror-service.js.map +1 -0
  58. package/dist/audit/projection.d.ts +90 -0
  59. package/dist/audit/projection.d.ts.map +1 -0
  60. package/dist/audit/projection.js +142 -0
  61. package/dist/audit/projection.js.map +1 -0
  62. package/dist/audit/providers/anchor.d.ts +23 -0
  63. package/dist/audit/providers/anchor.d.ts.map +1 -0
  64. package/dist/audit/providers/anchor.js +25 -0
  65. package/dist/audit/providers/anchor.js.map +1 -0
  66. package/dist/audit/providers/evidence.d.ts +36 -0
  67. package/dist/audit/providers/evidence.d.ts.map +1 -0
  68. package/dist/audit/providers/evidence.js +2 -0
  69. package/dist/audit/providers/evidence.js.map +1 -0
  70. package/dist/audit/providers/journal.d.ts +35 -0
  71. package/dist/audit/providers/journal.d.ts.map +1 -0
  72. package/dist/audit/providers/journal.js +2 -0
  73. package/dist/audit/providers/journal.js.map +1 -0
  74. package/dist/audit/providers/memory-journal.d.ts +24 -0
  75. package/dist/audit/providers/memory-journal.d.ts.map +1 -0
  76. package/dist/audit/providers/memory-journal.js +73 -0
  77. package/dist/audit/providers/memory-journal.js.map +1 -0
  78. package/dist/audit/providers/observer.d.ts +30 -0
  79. package/dist/audit/providers/observer.d.ts.map +1 -0
  80. package/dist/audit/providers/observer.js +100 -0
  81. package/dist/audit/providers/observer.js.map +1 -0
  82. package/dist/audit/providers/outbox.d.ts +37 -0
  83. package/dist/audit/providers/outbox.d.ts.map +1 -0
  84. package/dist/audit/providers/outbox.js +52 -0
  85. package/dist/audit/providers/outbox.js.map +1 -0
  86. package/dist/audit/providers/recorder-client.d.ts +22 -0
  87. package/dist/audit/providers/recorder-client.d.ts.map +1 -0
  88. package/dist/audit/providers/recorder-client.js +17 -0
  89. package/dist/audit/providers/recorder-client.js.map +1 -0
  90. package/dist/audit/providers/source-state.d.ts +37 -0
  91. package/dist/audit/providers/source-state.d.ts.map +1 -0
  92. package/dist/audit/providers/source-state.js +94 -0
  93. package/dist/audit/providers/source-state.js.map +1 -0
  94. package/dist/audit/read-contract.d.ts +445 -0
  95. package/dist/audit/read-contract.d.ts.map +1 -0
  96. package/dist/audit/read-contract.js +126 -0
  97. package/dist/audit/read-contract.js.map +1 -0
  98. package/dist/audit/read-service.d.ts +99 -0
  99. package/dist/audit/read-service.d.ts.map +1 -0
  100. package/dist/audit/read-service.js +124 -0
  101. package/dist/audit/read-service.js.map +1 -0
  102. package/dist/audit/recorder-service.d.ts +78 -0
  103. package/dist/audit/recorder-service.d.ts.map +1 -0
  104. package/dist/audit/recorder-service.js +331 -0
  105. package/dist/audit/recorder-service.js.map +1 -0
  106. package/dist/audit/reference-recorder.d.ts +43 -0
  107. package/dist/audit/reference-recorder.d.ts.map +1 -0
  108. package/dist/audit/reference-recorder.js +131 -0
  109. package/dist/audit/reference-recorder.js.map +1 -0
  110. package/dist/audit/replay-bundle.d.ts +52 -0
  111. package/dist/audit/replay-bundle.d.ts.map +1 -0
  112. package/dist/audit/replay-bundle.js +551 -0
  113. package/dist/audit/replay-bundle.js.map +1 -0
  114. package/dist/audit/schemas.d.ts +1145 -0
  115. package/dist/audit/schemas.d.ts.map +1 -0
  116. package/dist/audit/schemas.js +483 -0
  117. package/dist/audit/schemas.js.map +1 -0
  118. package/dist/audit/service.d.ts +91 -0
  119. package/dist/audit/service.d.ts.map +1 -0
  120. package/dist/audit/service.js +222 -0
  121. package/dist/audit/service.js.map +1 -0
  122. package/dist/audit/testing/index.d.ts +2 -0
  123. package/dist/audit/testing/index.d.ts.map +1 -0
  124. package/dist/audit/testing/index.js +2 -0
  125. package/dist/audit/testing/index.js.map +1 -0
  126. package/dist/audit/testing/provider-contracts.d.ts +51 -0
  127. package/dist/audit/testing/provider-contracts.d.ts.map +1 -0
  128. package/dist/audit/testing/provider-contracts.js +391 -0
  129. package/dist/audit/testing/provider-contracts.js.map +1 -0
  130. package/dist/audit/types.d.ts +356 -0
  131. package/dist/audit/types.d.ts.map +1 -0
  132. package/dist/audit/types.js +49 -0
  133. package/dist/audit/types.js.map +1 -0
  134. package/dist/audit/verifier.d.ts +73 -0
  135. package/dist/audit/verifier.d.ts.map +1 -0
  136. package/dist/audit/verifier.js +322 -0
  137. package/dist/audit/verifier.js.map +1 -0
  138. package/dist/card/builder.d.ts +1 -1
  139. package/dist/card/builder.js +1 -1
  140. package/dist/card/emit.d.ts +3 -3
  141. package/dist/card/emit.d.ts.map +1 -1
  142. package/dist/card/emit.js.map +1 -1
  143. package/dist/card/index.d.ts +1 -1
  144. package/dist/card/index.js +1 -1
  145. package/dist/card/middleware.d.ts +6 -4
  146. package/dist/card/middleware.d.ts.map +1 -1
  147. package/dist/card/middleware.js +11 -7
  148. package/dist/card/middleware.js.map +1 -1
  149. package/dist/card/proof/build.d.ts +3 -3
  150. package/dist/card/proof/build.js +3 -3
  151. package/dist/card/proof/canonical.d.ts.map +1 -1
  152. package/dist/card/proof/canonical.js +19 -1
  153. package/dist/card/proof/canonical.js.map +1 -1
  154. package/dist/card/proof/http-sig.d.ts +1 -1
  155. package/dist/card/proof/http-sig.js +1 -1
  156. package/dist/card/proof/index.d.ts +2 -2
  157. package/dist/card/proof/index.js +2 -2
  158. package/dist/card/proof/nonce-cache.d.ts +1 -1
  159. package/dist/card/proof/nonce-cache.js +1 -1
  160. package/dist/card/proof/types.d.ts +16 -7
  161. package/dist/card/proof/types.d.ts.map +1 -1
  162. package/dist/card/proof/types.js +16 -7
  163. package/dist/card/proof/types.js.map +1 -1
  164. package/dist/card/proof/verify.d.ts +2 -2
  165. package/dist/card/proof/verify.js +2 -2
  166. package/dist/card/schema.d.ts +14 -6
  167. package/dist/card/schema.d.ts.map +1 -1
  168. package/dist/card/schema.js +14 -3
  169. package/dist/card/schema.js.map +1 -1
  170. package/dist/card/verify.d.ts +1 -1
  171. package/dist/card/verify.d.ts.map +1 -1
  172. package/dist/delegation/delegation-graph.d.ts +4 -0
  173. package/dist/delegation/delegation-graph.d.ts.map +1 -1
  174. package/dist/delegation/delegation-graph.js +28 -2
  175. package/dist/delegation/delegation-graph.js.map +1 -1
  176. package/dist/delegation/statuslist-manager.d.ts +5 -0
  177. package/dist/delegation/statuslist-manager.d.ts.map +1 -1
  178. package/dist/delegation/statuslist-manager.js.map +1 -1
  179. package/dist/delegation/storage/memory-graph-storage.d.ts +4 -2
  180. package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -1
  181. package/dist/delegation/storage/memory-graph-storage.js +18 -0
  182. package/dist/delegation/storage/memory-graph-storage.js.map +1 -1
  183. package/dist/delegation/storage/memory-statuslist-storage.d.ts +5 -2
  184. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -1
  185. package/dist/delegation/storage/memory-statuslist-storage.js +21 -2
  186. package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -1
  187. package/dist/delegation/utils.d.ts.map +1 -1
  188. package/dist/delegation/utils.js +2 -42
  189. package/dist/delegation/utils.js.map +1 -1
  190. package/dist/delegation/vc-verification-checks.d.ts.map +1 -1
  191. package/dist/delegation/vc-verification-checks.js +16 -1
  192. package/dist/delegation/vc-verification-checks.js.map +1 -1
  193. package/dist/delegation/vc-verifier.d.ts +4 -0
  194. package/dist/delegation/vc-verifier.d.ts.map +1 -1
  195. package/dist/delegation/vc-verifier.js +44 -13
  196. package/dist/delegation/vc-verifier.js.map +1 -1
  197. package/dist/errors.d.ts +1 -1
  198. package/dist/errors.js +1 -1
  199. package/dist/extension/declaration.d.ts +60 -0
  200. package/dist/extension/declaration.d.ts.map +1 -0
  201. package/dist/extension/declaration.js +75 -0
  202. package/dist/extension/declaration.js.map +1 -0
  203. package/dist/extension/gate.d.ts +110 -0
  204. package/dist/extension/gate.d.ts.map +1 -0
  205. package/dist/extension/gate.js +133 -0
  206. package/dist/extension/gate.js.map +1 -0
  207. package/dist/extension/index.d.ts +14 -0
  208. package/dist/extension/index.d.ts.map +1 -0
  209. package/dist/extension/index.js +14 -0
  210. package/dist/extension/index.js.map +1 -0
  211. package/dist/extension/settings.d.ts +70 -0
  212. package/dist/extension/settings.d.ts.map +1 -0
  213. package/dist/extension/settings.js +96 -0
  214. package/dist/extension/settings.js.map +1 -0
  215. package/dist/index.d.ts +4 -2
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +6 -2
  218. package/dist/index.js.map +1 -1
  219. package/dist/middleware/kya-os-transport.d.ts +1 -1
  220. package/dist/middleware/kya-os-transport.d.ts.map +1 -1
  221. package/dist/middleware/kya-os-transport.js +11 -4
  222. package/dist/middleware/kya-os-transport.js.map +1 -1
  223. package/dist/middleware/with-kya-os-server.d.ts +6 -0
  224. package/dist/middleware/with-kya-os-server.d.ts.map +1 -1
  225. package/dist/middleware/with-kya-os-server.js +2 -0
  226. package/dist/middleware/with-kya-os-server.js.map +1 -1
  227. package/dist/middleware/with-kya-os.config-types.d.ts +15 -0
  228. package/dist/middleware/with-kya-os.config-types.d.ts.map +1 -1
  229. package/dist/middleware/with-kya-os.config-types.js.map +1 -1
  230. package/dist/middleware/with-kya-os.d.ts.map +1 -1
  231. package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +1 -1
  232. package/dist/middleware/with-kya-os.delegation-gate.js +96 -3
  233. package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -1
  234. package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -1
  235. package/dist/middleware/with-kya-os.delegation-verify.js +2 -2
  236. package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -1
  237. package/dist/middleware/with-kya-os.deps.d.ts +2 -0
  238. package/dist/middleware/with-kya-os.deps.d.ts.map +1 -1
  239. package/dist/middleware/with-kya-os.js +23 -0
  240. package/dist/middleware/with-kya-os.js.map +1 -1
  241. package/dist/middleware/with-kya-os.policy-gate.d.ts.map +1 -1
  242. package/dist/middleware/with-kya-os.policy-gate.js +29 -4
  243. package/dist/middleware/with-kya-os.policy-gate.js.map +1 -1
  244. package/dist/middleware/with-kya-os.protocol.d.ts.map +1 -1
  245. package/dist/middleware/with-kya-os.protocol.js +10 -0
  246. package/dist/middleware/with-kya-os.protocol.js.map +1 -1
  247. package/dist/middleware/with-kya-os.session.d.ts.map +1 -1
  248. package/dist/middleware/with-kya-os.session.js +208 -2
  249. package/dist/middleware/with-kya-os.session.js.map +1 -1
  250. package/dist/middleware/with-kya-os.types.d.ts +6 -0
  251. package/dist/middleware/with-kya-os.types.d.ts.map +1 -1
  252. package/dist/middleware/with-kya-os.types.js.map +1 -1
  253. package/dist/proof/generator.d.ts +14 -2
  254. package/dist/proof/generator.d.ts.map +1 -1
  255. package/dist/proof/generator.js +20 -7
  256. package/dist/proof/generator.js.map +1 -1
  257. package/dist/proof/index.d.ts +1 -1
  258. package/dist/proof/index.d.ts.map +1 -1
  259. package/dist/proof/index.js +1 -1
  260. package/dist/proof/index.js.map +1 -1
  261. package/dist/proof/verifier.d.ts +15 -2
  262. package/dist/proof/verifier.d.ts.map +1 -1
  263. package/dist/proof/verifier.js +48 -12
  264. package/dist/proof/verifier.js.map +1 -1
  265. package/dist/session/manager.js +1 -1
  266. package/dist/session/manager.js.map +1 -1
  267. package/dist/types/protocol.d.ts +22 -0
  268. package/dist/types/protocol.d.ts.map +1 -1
  269. package/dist/types/protocol.js +31 -5
  270. package/dist/types/protocol.js.map +1 -1
  271. package/dist/utils/canonical-json.d.ts +15 -0
  272. package/dist/utils/canonical-json.d.ts.map +1 -0
  273. package/dist/utils/canonical-json.js +109 -0
  274. package/dist/utils/canonical-json.js.map +1 -0
  275. package/dist/utils/crypto-service.d.ts.map +1 -1
  276. package/dist/utils/crypto-service.js +5 -0
  277. package/dist/utils/crypto-service.js.map +1 -1
  278. package/dist/utils/index.d.ts +1 -0
  279. package/dist/utils/index.d.ts.map +1 -1
  280. package/dist/utils/index.js +1 -0
  281. package/dist/utils/index.js.map +1 -1
  282. package/package.json +29 -11
  283. package/schemas/README.md +28 -1
  284. package/schemas/audit-anchor-receipt.schema.json +16 -0
  285. package/schemas/audit-bundle-manifest.schema.json +71 -0
  286. package/schemas/audit-checkpoint.schema.json +37 -0
  287. package/schemas/audit-consistency-proof.schema.json +17 -0
  288. package/schemas/audit-entry.schema.json +33 -0
  289. package/schemas/audit-event.schema.json +168 -0
  290. package/schemas/audit-inclusion-proof.schema.json +17 -0
  291. package/schemas/audit-observation.schema.json +40 -0
  292. package/schemas/audit-receipt.schema.json +32 -0
  293. package/schemas/audit-verification-policy.schema.json +71 -0
  294. package/schemas/audit-verification-report.schema.json +29 -0
  295. package/schemas/kya-os-card.schema.json +6 -6
  296. package/schemas/mcp-extension-settings.json +37 -0
  297. package/schemas/well-known-mcpi.json +17 -0
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Reading a peer's `org.kya-os/decentralized-authority` declaration (SPEC-MCP-EXTENSION.md §3.1).
3
+ *
4
+ * Two carriage forms are normalized into one shape:
5
+ *
6
+ * - stateless (2026-07-28): the request's
7
+ * `params._meta["io.modelcontextprotocol/clientCapabilities"].extensions[id]`
8
+ * - initialize-era (2025-11-25): `capabilities.extensions[id]` from the
9
+ * initialize exchange, supplied by the host as `initializeCapabilities`
10
+ *
11
+ * Precedence: the per-request stateless entry, when PRESENT, is final - a
12
+ * malformed stateless entry is classified as `malformed` (never a silent
13
+ * fallback to the initialize-era entry), because the per-request carriage
14
+ * supersedes initialize-era state. What a malformed entry MEANS is the gate's
15
+ * call (§3.2): degrade-to-absent in optional mode, -32602 in required mode.
16
+ */
17
+ import { isRecord } from '../utils/guards.js';
18
+ import { KYA_OS_EXTENSION_ID, MCP_CLIENT_CAPABILITIES_META_KEY, parseExtensionSettings, } from './settings.js';
19
+ /**
20
+ * Classify the peer's declaration from either carriage, distinguishing a
21
+ * present-but-malformed entry from a genuinely absent one. That distinction is
22
+ * what lets the gate answer malformed with `-32602` in required mode (§3.2)
23
+ * while still degrading it to core behavior in optional mode - so a corrupted,
24
+ * untrusted, proof-excluded `_meta` member never turns an otherwise-valid
25
+ * optional-mode request into a rejection.
26
+ */
27
+ export function classifyExtensionDeclaration(input) {
28
+ const id = input.extensionId ?? KYA_OS_EXTENSION_ID;
29
+ const stateless = extensionsEntry(clientCapabilitiesFromMeta(input.meta), id);
30
+ if (stateless.present) {
31
+ const settings = parseExtensionSettings(stateless.value);
32
+ return settings === undefined
33
+ ? { status: 'malformed', carriage: 'stateless' }
34
+ : { status: 'declared', declaration: { settings, carriage: 'stateless' } };
35
+ }
36
+ const legacy = extensionsEntry(input.initializeCapabilities, id);
37
+ if (legacy.present) {
38
+ const settings = parseExtensionSettings(legacy.value);
39
+ return settings === undefined
40
+ ? { status: 'malformed', carriage: 'initialize' }
41
+ : { status: 'declared', declaration: { settings, carriage: 'initialize' } };
42
+ }
43
+ return { status: 'absent' };
44
+ }
45
+ /**
46
+ * Read and validate the peer's declaration from either carriage.
47
+ * Returns `undefined` when there is no usable declaration - including a
48
+ * malformed one; callers that must distinguish malformed from absent (the gate)
49
+ * use {@link classifyExtensionDeclaration} instead.
50
+ */
51
+ export function readExtensionDeclaration(input) {
52
+ const classification = classifyExtensionDeclaration(input);
53
+ return classification.status === 'declared' ? classification.declaration : undefined;
54
+ }
55
+ /** Pull `io.modelcontextprotocol/clientCapabilities` out of a `_meta` bag. */
56
+ function clientCapabilitiesFromMeta(meta) {
57
+ return isRecord(meta) ? meta[MCP_CLIENT_CAPABILITIES_META_KEY] : undefined;
58
+ }
59
+ /**
60
+ * Locate the extension's entry inside a capabilities object. Presence is
61
+ * detected with `hasOwnProperty` so an explicit empty-object declaration
62
+ * (`{ "org.kya-os/decentralized-authority": {} }` - legal per SEP-2133) is distinguishable
63
+ * from an absent one.
64
+ */
65
+ function extensionsEntry(capabilities, id) {
66
+ if (!isRecord(capabilities))
67
+ return { present: false };
68
+ const extensions = capabilities['extensions'];
69
+ if (!isRecord(extensions))
70
+ return { present: false };
71
+ if (!Object.prototype.hasOwnProperty.call(extensions, id))
72
+ return { present: false };
73
+ return { present: true, value: extensions[id] };
74
+ }
75
+ //# sourceMappingURL=declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../src/extension/declaration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AA2BvB;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAA2B;IAE3B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,IAAI,mBAAmB,CAAC;IAEpD,MAAM,SAAS,GAAG,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,QAAQ,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE;YAChD,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,QAAQ,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE;YACjD,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA2B;IAE3B,MAAM,cAAc,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,cAAc,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC;AAED,8EAA8E;AAC9E,SAAS,0BAA0B,CAAC,IAAa;IAC/C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,YAAqB,EACrB,EAAU;IAEV,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The `org.kya-os/decentralized-authority` admission gate (SPEC-MCP-EXTENSION.md §4-§5).
3
+ *
4
+ * Mirrors the `requireProof` guard idiom (`src/card/middleware.ts`): the host
5
+ * builds a guard once from its server settings and runs it per request. Nothing
6
+ * in the default path changes for hosts that never install the gate - the
7
+ * extension is strictly opt-in.
8
+ *
9
+ * - `required: false` (default): an undeclared peer gets core MCP behavior;
10
+ * the gate always admits and merely reports the declaration when present. A
11
+ * malformed declaration also degrades to core behavior here (§3.2), so a
12
+ * corrupted untrusted `_meta` member can never reject a valid request.
13
+ * - `required: true`: a request without a declaration is rejected with the
14
+ * core MCP error `-32021` (`MissingRequiredClientCapabilityError`); a
15
+ * present-but-malformed one is rejected with `-32602` (Invalid params,
16
+ * `malformed_declaration`). Both carry this extension's `reason`/`extension`
17
+ * pair, and exempt methods (`server/discover`, `ping` by default) are never
18
+ * gated so discovery stays reachable.
19
+ *
20
+ * A stripped declaration is an ABSENT declaration (fail closed, §4.3) - never
21
+ * silent acceptance, never a guess.
22
+ */
23
+ import { type ExtensionDeclaration } from './declaration.js';
24
+ import { type KyaOsExtensionSettings } from './settings.js';
25
+ /**
26
+ * Default JSON-RPC code for KYA-OS domain failures (SPEC-MCP-EXTENSION.md §5).
27
+ * The number is deliberately NOT the dispatch surface - clients dispatch on
28
+ * `error.data.reason` - and it sits outside the JSON-RPC reserved range
29
+ * (`-32768..-32000`), per the 2026-07-28 allocation policy: new codes MUST NOT
30
+ * be allocated in the legacy `-32000..-32019` sub-range and new
31
+ * implementations SHOULD NOT use that sub-range at all.
32
+ */
33
+ export declare const KYA_OS_DOMAIN_ERROR_CODE = -31000;
34
+ /**
35
+ * Methods a required-mode server never gates (SPEC-MCP-EXTENSION.md §4.2):
36
+ * `server/discover` MUST stay reachable so a non-declaring client can learn
37
+ * the requirement it fails; `ping` is exempted for peers on earlier protocol
38
+ * revisions.
39
+ */
40
+ export declare const DEFAULT_EXEMPT_METHODS: readonly string[];
41
+ /** A JSON-RPC error object (the `error` member of a JSON-RPC response). */
42
+ export interface JsonRpcErrorObject {
43
+ code: number;
44
+ message: string;
45
+ data: {
46
+ /** The snake_case KYA-OS reason code - the mandatory dispatch surface (§5.2). */
47
+ reason: string;
48
+ /** The core schema's -32021 payload: the capabilities the server requires (§4.2). */
49
+ requiredCapabilities?: Record<string, unknown>;
50
+ /** The extension id, on negotiation failures. */
51
+ extension?: string;
52
+ /** The proof profile, on proof-gate failures. */
53
+ profile?: string;
54
+ /** Fine-grained verification reasons (SPEC-ENTITY-CARD Appendix D.1), for diagnostics. */
55
+ reasons?: string[];
56
+ };
57
+ }
58
+ /** The gate verdict: admitted (with the declaration when one was made) or a JSON-RPC rejection. */
59
+ export type ExtensionGateResult = {
60
+ ok: true;
61
+ declaration?: ExtensionDeclaration;
62
+ } | {
63
+ ok: false;
64
+ error: JsonRpcErrorObject;
65
+ };
66
+ /** Per-request admission guard built by {@link requireExtension}. */
67
+ export type ExtensionGuard = (input: {
68
+ meta?: unknown;
69
+ initializeCapabilities?: unknown;
70
+ /** The request's JSON-RPC method; exempt methods are never gated in required mode (§4.2). */
71
+ method?: string;
72
+ }) => ExtensionGateResult;
73
+ /**
74
+ * Build the admission guard from the server's own settings (validated here,
75
+ * throwing on malformed OWN settings - a programmer error, unlike peer input).
76
+ */
77
+ export declare function requireExtension(serverSettings?: KyaOsExtensionSettings, opts?: {
78
+ extensionId?: string;
79
+ exemptMethods?: readonly string[];
80
+ }): ExtensionGuard;
81
+ /** The `-32021` rejection for a required-but-undeclared extension (SPEC-MCP-EXTENSION.md §4.2). */
82
+ export declare function missingRequiredCapabilityError(extensionId?: string): JsonRpcErrorObject;
83
+ /** JSON-RPC "Invalid params" - the core code a present-but-malformed declaration rejects with (§3.2). */
84
+ export declare const INVALID_PARAMS_CODE = -32602;
85
+ /**
86
+ * The `-32602` rejection for a required-mode request whose declaration is present
87
+ * but malformed (SPEC-MCP-EXTENSION.md §3.2). Distinct from
88
+ * {@link missingRequiredCapabilityError}: a garbled declaration is a client-
89
+ * integrity error, not a missing one. In optional mode the gate never reaches
90
+ * here - a malformed declaration degrades to core behavior instead.
91
+ */
92
+ export declare function malformedDeclarationError(extensionId?: string): JsonRpcErrorObject;
93
+ /** The 401-shaped proof-gate error shape (`requireProof`, `src/card/middleware.ts`), structurally. */
94
+ export interface ProofGateErrorLike {
95
+ /** A snake_case gate code (`proof_missing` | `proof_invalid` | `proof_level_insufficient`). */
96
+ code: string;
97
+ message: string;
98
+ reasons?: string[];
99
+ }
100
+ /**
101
+ * Map a proof-gate rejection onto the JSON-RPC surface per SPEC-MCP-EXTENSION.md
102
+ * §5.2: the snake_case code rides `error.data.reason` VERBATIM, the numeric code
103
+ * stays implementation-defined, and codes inside the MCP-reserved range
104
+ * (`-32099..-32020`) are refused outright.
105
+ */
106
+ export declare function proofGateToJsonRpcError(gateError: ProofGateErrorLike, opts?: {
107
+ code?: number;
108
+ profile?: string;
109
+ }): JsonRpcErrorObject;
110
+ //# sourceMappingURL=gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/extension/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAOL,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AAEvB;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAM/C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAgC,CAAC;AAErF,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,iFAAiF;QACjF,MAAM,EAAE,MAAM,CAAC;QACf,qFAAqF;QACrF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iDAAiD;QACjD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,0FAA0F;QAC1F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,mGAAmG;AACnG,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,oBAAoB,CAAA;CAAE,GAChD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE7C,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,mBAAmB,CAAC;AAE1B;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,GAAE,sBAA2B,EAC3C,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACrE,cAAc,CA6BhB;AAED,mGAAmG;AACnG,wBAAgB,8BAA8B,CAC5C,WAAW,GAAE,MAA4B,GACxC,kBAAkB,CAUpB;AAED,yGAAyG;AACzG,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,GAAE,MAA4B,GACxC,kBAAkB,CASpB;AAED,sGAAsG;AACtG,MAAM,WAAW,kBAAkB;IACjC,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,kBAAkB,EAC7B,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,kBAAkB,CAkBpB"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * The `org.kya-os/decentralized-authority` admission gate (SPEC-MCP-EXTENSION.md §4-§5).
3
+ *
4
+ * Mirrors the `requireProof` guard idiom (`src/card/middleware.ts`): the host
5
+ * builds a guard once from its server settings and runs it per request. Nothing
6
+ * in the default path changes for hosts that never install the gate - the
7
+ * extension is strictly opt-in.
8
+ *
9
+ * - `required: false` (default): an undeclared peer gets core MCP behavior;
10
+ * the gate always admits and merely reports the declaration when present. A
11
+ * malformed declaration also degrades to core behavior here (§3.2), so a
12
+ * corrupted untrusted `_meta` member can never reject a valid request.
13
+ * - `required: true`: a request without a declaration is rejected with the
14
+ * core MCP error `-32021` (`MissingRequiredClientCapabilityError`); a
15
+ * present-but-malformed one is rejected with `-32602` (Invalid params,
16
+ * `malformed_declaration`). Both carry this extension's `reason`/`extension`
17
+ * pair, and exempt methods (`server/discover`, `ping` by default) are never
18
+ * gated so discovery stays reachable.
19
+ *
20
+ * A stripped declaration is an ABSENT declaration (fail closed, §4.3) - never
21
+ * silent acceptance, never a guess.
22
+ */
23
+ import { PROOF_PROFILE_ID } from '../card/schema.js';
24
+ import { classifyExtensionDeclaration, } from './declaration.js';
25
+ import { EXTENSION_NOT_DECLARED_REASON, KYA_OS_EXTENSION_ID, MALFORMED_DECLARATION_REASON, MISSING_REQUIRED_CLIENT_CAPABILITY_CODE, buildExtensionSettings, resolveExtensionSettings, } from './settings.js';
26
+ /**
27
+ * Default JSON-RPC code for KYA-OS domain failures (SPEC-MCP-EXTENSION.md §5).
28
+ * The number is deliberately NOT the dispatch surface - clients dispatch on
29
+ * `error.data.reason` - and it sits outside the JSON-RPC reserved range
30
+ * (`-32768..-32000`), per the 2026-07-28 allocation policy: new codes MUST NOT
31
+ * be allocated in the legacy `-32000..-32019` sub-range and new
32
+ * implementations SHOULD NOT use that sub-range at all.
33
+ */
34
+ export const KYA_OS_DOMAIN_ERROR_CODE = -31000;
35
+ /** The MCP-reserved code range this extension MUST NOT allocate from (§5.1). */
36
+ const MCP_RESERVED_MIN = -32099;
37
+ const MCP_RESERVED_MAX = -32020;
38
+ /**
39
+ * Methods a required-mode server never gates (SPEC-MCP-EXTENSION.md §4.2):
40
+ * `server/discover` MUST stay reachable so a non-declaring client can learn
41
+ * the requirement it fails; `ping` is exempted for peers on earlier protocol
42
+ * revisions.
43
+ */
44
+ export const DEFAULT_EXEMPT_METHODS = ['server/discover', 'ping'];
45
+ /**
46
+ * Build the admission guard from the server's own settings (validated here,
47
+ * throwing on malformed OWN settings - a programmer error, unlike peer input).
48
+ */
49
+ export function requireExtension(serverSettings = {}, opts = {}) {
50
+ const settings = resolveExtensionSettings(buildExtensionSettings(serverSettings));
51
+ const extensionId = opts.extensionId ?? KYA_OS_EXTENSION_ID;
52
+ const exemptMethods = opts.exemptMethods ?? DEFAULT_EXEMPT_METHODS;
53
+ return (input) => {
54
+ const classification = classifyExtensionDeclaration({ ...input, extensionId });
55
+ if (classification.status === 'declared') {
56
+ return { ok: true, declaration: classification.declaration };
57
+ }
58
+ // Optional mode: both absent AND malformed degrade to core MCP behavior. The
59
+ // declaration is an untrusted, intermediary-mutable, proof-excluded `_meta`
60
+ // member (§7), so rejecting on a malformed one would let a corrupting
61
+ // intermediary turn an otherwise-valid request into a failure while a mere
62
+ // strip lets it through - the "corrupt vs. strip" asymmetry (§3.2).
63
+ if (!settings.required) {
64
+ return { ok: true };
65
+ }
66
+ // Discovery/ping stay reachable so a non-declaring client can learn the requirement.
67
+ if (input.method !== undefined && exemptMethods.includes(input.method)) {
68
+ return { ok: true };
69
+ }
70
+ // Required mode rejects an absent declaration anyway, so surfacing the
71
+ // distinction carries no new DoS: a present-but-malformed declaration is a
72
+ // client-integrity error (-32602); a genuinely absent one is the
73
+ // missing-capability error (-32021).
74
+ return classification.status === 'malformed'
75
+ ? { ok: false, error: malformedDeclarationError(extensionId) }
76
+ : { ok: false, error: missingRequiredCapabilityError(extensionId) };
77
+ };
78
+ }
79
+ /** The `-32021` rejection for a required-but-undeclared extension (SPEC-MCP-EXTENSION.md §4.2). */
80
+ export function missingRequiredCapabilityError(extensionId = KYA_OS_EXTENSION_ID) {
81
+ return {
82
+ code: MISSING_REQUIRED_CLIENT_CAPABILITY_CODE,
83
+ message: `Missing required client capability: ${extensionId}`,
84
+ data: {
85
+ requiredCapabilities: { extensions: { [extensionId]: {} } },
86
+ reason: EXTENSION_NOT_DECLARED_REASON,
87
+ extension: extensionId,
88
+ },
89
+ };
90
+ }
91
+ /** JSON-RPC "Invalid params" - the core code a present-but-malformed declaration rejects with (§3.2). */
92
+ export const INVALID_PARAMS_CODE = -32602;
93
+ /**
94
+ * The `-32602` rejection for a required-mode request whose declaration is present
95
+ * but malformed (SPEC-MCP-EXTENSION.md §3.2). Distinct from
96
+ * {@link missingRequiredCapabilityError}: a garbled declaration is a client-
97
+ * integrity error, not a missing one. In optional mode the gate never reaches
98
+ * here - a malformed declaration degrades to core behavior instead.
99
+ */
100
+ export function malformedDeclarationError(extensionId = KYA_OS_EXTENSION_ID) {
101
+ return {
102
+ code: INVALID_PARAMS_CODE,
103
+ message: `Invalid params: the ${extensionId} settings declaration is present but malformed`,
104
+ data: {
105
+ reason: MALFORMED_DECLARATION_REASON,
106
+ extension: extensionId,
107
+ },
108
+ };
109
+ }
110
+ /**
111
+ * Map a proof-gate rejection onto the JSON-RPC surface per SPEC-MCP-EXTENSION.md
112
+ * §5.2: the snake_case code rides `error.data.reason` VERBATIM, the numeric code
113
+ * stays implementation-defined, and codes inside the MCP-reserved range
114
+ * (`-32099..-32020`) are refused outright.
115
+ */
116
+ export function proofGateToJsonRpcError(gateError, opts = {}) {
117
+ if (opts.code !== undefined && opts.code >= MCP_RESERVED_MIN && opts.code <= MCP_RESERVED_MAX) {
118
+ throw new Error(`JSON-RPC code ${opts.code} is inside the MCP-reserved range (${MCP_RESERVED_MIN}..${MCP_RESERVED_MAX}); ` +
119
+ 'KYA-OS domain errors use implementation-defined codes (SPEC-MCP-EXTENSION.md §5.1)');
120
+ }
121
+ return {
122
+ code: opts.code ?? KYA_OS_DOMAIN_ERROR_CODE,
123
+ message: gateError.message,
124
+ data: {
125
+ reason: gateError.code,
126
+ profile: opts.profile ?? PROOF_PROFILE_ID,
127
+ ...(gateError.reasons && gateError.reasons.length > 0
128
+ ? { reasons: [...gateError.reasons] }
129
+ : {}),
130
+ },
131
+ };
132
+ }
133
+ //# sourceMappingURL=gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/extension/gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * KYA-OS MCP extension negotiation (`org.kya-os/decentralized-authority`).
3
+ *
4
+ * The MCP binding surface of SPEC-MCP-EXTENSION.md: the extension id and
5
+ * settings object (§1, §3), the declaration reader for both carriage forms
6
+ * (§3.1), the admission gate with core `-32021` required-mode enforcement
7
+ * (§4), and the JSON-RPC error mapping that keeps snake_case reason codes as
8
+ * the dispatch surface (§5). Strictly additive: nothing here runs unless the
9
+ * host opts in.
10
+ */
11
+ export { KYA_OS_EXTENSION_ID, MCP_CLIENT_CAPABILITIES_META_KEY, MISSING_REQUIRED_CLIENT_CAPABILITY_CODE, EXTENSION_NOT_DECLARED_REASON, ExtensionSettingsSchema, DEFAULT_EXTENSION_SETTINGS, parseExtensionSettings, resolveExtensionSettings, buildExtensionSettings, buildExtensionsEntry, type KyaOsExtensionSettings, type ResolvedExtensionSettings, } from './settings.js';
12
+ export { readExtensionDeclaration, type DeclarationCarriage, type ExtensionDeclaration, type ReadDeclarationInput, } from './declaration.js';
13
+ export { KYA_OS_DOMAIN_ERROR_CODE, DEFAULT_EXEMPT_METHODS, requireExtension, missingRequiredCapabilityError, proofGateToJsonRpcError, type ExtensionGateResult, type ExtensionGuard, type JsonRpcErrorObject, type ProofGateErrorLike, } from './gate.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * KYA-OS MCP extension negotiation (`org.kya-os/decentralized-authority`).
3
+ *
4
+ * The MCP binding surface of SPEC-MCP-EXTENSION.md: the extension id and
5
+ * settings object (§1, §3), the declaration reader for both carriage forms
6
+ * (§3.1), the admission gate with core `-32021` required-mode enforcement
7
+ * (§4), and the JSON-RPC error mapping that keeps snake_case reason codes as
8
+ * the dispatch surface (§5). Strictly additive: nothing here runs unless the
9
+ * host opts in.
10
+ */
11
+ export { KYA_OS_EXTENSION_ID, MCP_CLIENT_CAPABILITIES_META_KEY, MISSING_REQUIRED_CLIENT_CAPABILITY_CODE, EXTENSION_NOT_DECLARED_REASON, ExtensionSettingsSchema, DEFAULT_EXTENSION_SETTINGS, parseExtensionSettings, resolveExtensionSettings, buildExtensionSettings, buildExtensionsEntry, } from './settings.js';
12
+ export { readExtensionDeclaration, } from './declaration.js';
13
+ export { KYA_OS_DOMAIN_ERROR_CODE, DEFAULT_EXEMPT_METHODS, requireExtension, missingRequiredCapabilityError, proofGateToJsonRpcError, } from './gate.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,GAIzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,GAKxB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * KYA-OS MCP extension negotiation - identifiers and the settings object
3
+ * (SPEC-MCP-EXTENSION.md §1, §3; wire schema: `schemas/mcp-extension-settings.json`).
4
+ *
5
+ * The extension is declared under `capabilities.extensions["org.kya-os/decentralized-authority"]`
6
+ * as a small settings object. Per SEP-2133 an empty object means "supported, with
7
+ * default configuration". Every identifier lives here as a single constant
8
+ * (mirroring `KYA_OS_PROOF_META_KEY`), so a future re-pointing of the extension id
9
+ * (SEP-2133 graduation) is a constant change, never a call-site sweep.
10
+ */
11
+ import { z } from 'zod';
12
+ /** The proposed reverse-DNS MCP extension id (SPEC-MCP-EXTENSION.md §1.1). */
13
+ export declare const KYA_OS_EXTENSION_ID = "org.kya-os/decentralized-authority";
14
+ /** The per-request `_meta` key carrying MCP `ClientCapabilities` (SEP-2575, stateless carriage). */
15
+ export declare const MCP_CLIENT_CAPABILITIES_META_KEY = "io.modelcontextprotocol/clientCapabilities";
16
+ /** Core MCP `MissingRequiredClientCapabilityError` code (2026-07-28 error allocation policy). */
17
+ export declare const MISSING_REQUIRED_CLIENT_CAPABILITY_CODE = -32021;
18
+ /**
19
+ * The reason codes this extension defines itself (SPEC-MCP-EXTENSION.md §5.2),
20
+ * each riding the `data.reason` member of a core JSON-RPC error:
21
+ * `extension_not_declared` inside a `-32021` (required mode, no declaration) and
22
+ * `malformed_declaration` inside a `-32602` (required mode, a present-but-
23
+ * unparseable declaration). Every other reason code is defined by
24
+ * SPEC-ENTITY-CARD Appendix D or SPEC.md Appendix A.
25
+ */
26
+ export declare const EXTENSION_NOT_DECLARED_REASON = "extension_not_declared";
27
+ export declare const MALFORMED_DECLARATION_REASON = "malformed_declaration";
28
+ /**
29
+ * Zod mirror of `schemas/mcp-extension-settings.json`: every member OPTIONAL,
30
+ * unknown members tolerated (and stripped on parse) for forward compatibility.
31
+ * `required` is meaningful only on a server declaration and ignored client-side
32
+ * (SPEC-MCP-EXTENSION.md §3.2).
33
+ */
34
+ export declare const ExtensionSettingsSchema: z.ZodObject<{
35
+ version: z.ZodOptional<z.ZodString>;
36
+ proofProfiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
+ didMethods: z.ZodOptional<z.ZodArray<z.ZodString>>;
38
+ required: z.ZodOptional<z.ZodBoolean>;
39
+ }, z.core.$strip>;
40
+ /** A declared (wire-shaped) settings object; all members optional, `{}` legal. */
41
+ export type KyaOsExtensionSettings = z.infer<typeof ExtensionSettingsSchema>;
42
+ /** Settings with every default applied (SPEC-MCP-EXTENSION.md §3.2 defaults column). */
43
+ export interface ResolvedExtensionSettings {
44
+ version: string;
45
+ proofProfiles: string[];
46
+ didMethods: string[];
47
+ required: boolean;
48
+ }
49
+ /** The §3.2 defaults an empty declaration resolves to. */
50
+ export declare const DEFAULT_EXTENSION_SETTINGS: ResolvedExtensionSettings;
51
+ /**
52
+ * Parse a PEER's settings value. A malformed value returns `undefined` - the
53
+ * declaration is treated as ABSENT (fail closed to non-declaration, never a
54
+ * guess at intent; SPEC-MCP-EXTENSION.md §3.2). `{}` parses successfully.
55
+ */
56
+ export declare function parseExtensionSettings(value: unknown): KyaOsExtensionSettings | undefined;
57
+ /** Apply the §3.2 defaults to a declared settings object. */
58
+ export declare function resolveExtensionSettings(settings?: KyaOsExtensionSettings): ResolvedExtensionSettings;
59
+ /**
60
+ * Validate OWN settings before putting them on the wire. Unlike a peer's input
61
+ * (parsed fail-closed), malformed own settings are a programmer error and throw.
62
+ */
63
+ export declare function buildExtensionSettings(settings?: KyaOsExtensionSettings): KyaOsExtensionSettings;
64
+ /**
65
+ * Build the `extensions` map fragment - `{ "org.kya-os/decentralized-authority": settings }` -
66
+ * ready to merge into `ClientCapabilities.extensions` / `ServerCapabilities.extensions`
67
+ * (or the per-request `_meta` carriage; SPEC-MCP-EXTENSION.md §3.1).
68
+ */
69
+ export declare function buildExtensionsEntry(settings?: KyaOsExtensionSettings, extensionId?: string): Record<string, KyaOsExtensionSettings>;
70
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/extension/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,uCAAuC,CAAC;AAExE,oGAAoG;AACpG,eAAO,MAAM,gCAAgC,+CAA+C,CAAC;AAE7F,iGAAiG;AACjG,eAAO,MAAM,uCAAuC,SAAS,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAOpE;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAalC,CAAC;AAEH,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,wFAAwF;AACxF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,EAAE,yBAKxC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAGzF;AAED,6DAA6D;AAC7D,wBAAgB,wBAAwB,CACtC,QAAQ,GAAE,sBAA2B,GACpC,yBAAyB,CAO3B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,GAAE,sBAA2B,GACpC,sBAAsB,CAMxB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,sBAA2B,EACrC,WAAW,GAAE,MAA4B,GACxC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAExC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * KYA-OS MCP extension negotiation - identifiers and the settings object
3
+ * (SPEC-MCP-EXTENSION.md §1, §3; wire schema: `schemas/mcp-extension-settings.json`).
4
+ *
5
+ * The extension is declared under `capabilities.extensions["org.kya-os/decentralized-authority"]`
6
+ * as a small settings object. Per SEP-2133 an empty object means "supported, with
7
+ * default configuration". Every identifier lives here as a single constant
8
+ * (mirroring `KYA_OS_PROOF_META_KEY`), so a future re-pointing of the extension id
9
+ * (SEP-2133 graduation) is a constant change, never a call-site sweep.
10
+ */
11
+ import { z } from 'zod';
12
+ import { PROOF_PROFILE_ID } from '../card/schema.js';
13
+ /** The proposed reverse-DNS MCP extension id (SPEC-MCP-EXTENSION.md §1.1). */
14
+ export const KYA_OS_EXTENSION_ID = 'org.kya-os/decentralized-authority';
15
+ /** The per-request `_meta` key carrying MCP `ClientCapabilities` (SEP-2575, stateless carriage). */
16
+ export const MCP_CLIENT_CAPABILITIES_META_KEY = 'io.modelcontextprotocol/clientCapabilities';
17
+ /** Core MCP `MissingRequiredClientCapabilityError` code (2026-07-28 error allocation policy). */
18
+ export const MISSING_REQUIRED_CLIENT_CAPABILITY_CODE = -32021;
19
+ /**
20
+ * The reason codes this extension defines itself (SPEC-MCP-EXTENSION.md §5.2),
21
+ * each riding the `data.reason` member of a core JSON-RPC error:
22
+ * `extension_not_declared` inside a `-32021` (required mode, no declaration) and
23
+ * `malformed_declaration` inside a `-32602` (required mode, a present-but-
24
+ * unparseable declaration). Every other reason code is defined by
25
+ * SPEC-ENTITY-CARD Appendix D or SPEC.md Appendix A.
26
+ */
27
+ export const EXTENSION_NOT_DECLARED_REASON = 'extension_not_declared';
28
+ export const MALFORMED_DECLARATION_REASON = 'malformed_declaration';
29
+ const SEMVER = /^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$/;
30
+ const DID_METHOD = /^did:[a-z0-9]+$/;
31
+ const unique = (values) => new Set(values).size === values.length;
32
+ /**
33
+ * Zod mirror of `schemas/mcp-extension-settings.json`: every member OPTIONAL,
34
+ * unknown members tolerated (and stripped on parse) for forward compatibility.
35
+ * `required` is meaningful only on a server declaration and ignored client-side
36
+ * (SPEC-MCP-EXTENSION.md §3.2).
37
+ */
38
+ export const ExtensionSettingsSchema = z.object({
39
+ version: z.string().regex(SEMVER, 'version must be a semver string').optional(),
40
+ proofProfiles: z
41
+ .array(z.string().min(1))
42
+ .min(1)
43
+ .refine(unique, 'proofProfiles must be unique')
44
+ .optional(),
45
+ didMethods: z
46
+ .array(z.string().regex(DID_METHOD, 'didMethods entries look like "did:web"'))
47
+ .min(1)
48
+ .refine(unique, 'didMethods must be unique')
49
+ .optional(),
50
+ required: z.boolean().optional(),
51
+ });
52
+ /** The §3.2 defaults an empty declaration resolves to. */
53
+ export const DEFAULT_EXTENSION_SETTINGS = {
54
+ version: '1.0.0',
55
+ proofProfiles: [PROOF_PROFILE_ID],
56
+ didMethods: ['did:key', 'did:web'],
57
+ required: false,
58
+ };
59
+ /**
60
+ * Parse a PEER's settings value. A malformed value returns `undefined` - the
61
+ * declaration is treated as ABSENT (fail closed to non-declaration, never a
62
+ * guess at intent; SPEC-MCP-EXTENSION.md §3.2). `{}` parses successfully.
63
+ */
64
+ export function parseExtensionSettings(value) {
65
+ const parsed = ExtensionSettingsSchema.safeParse(value);
66
+ return parsed.success ? parsed.data : undefined;
67
+ }
68
+ /** Apply the §3.2 defaults to a declared settings object. */
69
+ export function resolveExtensionSettings(settings = {}) {
70
+ return {
71
+ version: settings.version ?? DEFAULT_EXTENSION_SETTINGS.version,
72
+ proofProfiles: settings.proofProfiles ?? [...DEFAULT_EXTENSION_SETTINGS.proofProfiles],
73
+ didMethods: settings.didMethods ?? [...DEFAULT_EXTENSION_SETTINGS.didMethods],
74
+ required: settings.required ?? DEFAULT_EXTENSION_SETTINGS.required,
75
+ };
76
+ }
77
+ /**
78
+ * Validate OWN settings before putting them on the wire. Unlike a peer's input
79
+ * (parsed fail-closed), malformed own settings are a programmer error and throw.
80
+ */
81
+ export function buildExtensionSettings(settings = {}) {
82
+ const parsed = ExtensionSettingsSchema.safeParse(settings);
83
+ if (!parsed.success) {
84
+ throw new Error(`invalid ${KYA_OS_EXTENSION_ID} settings: ${parsed.error.message}`);
85
+ }
86
+ return parsed.data;
87
+ }
88
+ /**
89
+ * Build the `extensions` map fragment - `{ "org.kya-os/decentralized-authority": settings }` -
90
+ * ready to merge into `ClientCapabilities.extensions` / `ServerCapabilities.extensions`
91
+ * (or the per-request `_meta` carriage; SPEC-MCP-EXTENSION.md §3.1).
92
+ */
93
+ export function buildExtensionsEntry(settings = {}, extensionId = KYA_OS_EXTENSION_ID) {
94
+ return { [extensionId]: buildExtensionSettings(settings) };
95
+ }
96
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/extension/settings.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Delegation, proof, and session for Model Context Protocol Identity.
5
5
  * This package is a DIF TAAWG protocol reference implementation.
6
6
  *
7
- * Related Spec: https://kya-os.ai/mcp
7
+ * Related Spec: https://kya-os.org/mcp
8
8
  *
9
9
  * ## Error handling strategy
10
10
  *
@@ -38,7 +38,7 @@ export { buildDidResolverRegistry, type DIDResolverFactory, type DIDResolverRegi
38
38
  export { base58Encode, base58Decode, isValidBase58, } from './utils/base58.js';
39
39
  export { isValidDid, getDidMethod, normalizeDid, compareDids, getServerDid, extractAgentId, extractAgentSlug, generateDidKeyFromBytes, generateDidKeyFromBase64, didKeyFragment, } from './utils/did-helpers.js';
40
40
  export { verifyOrHints, hasSensitiveScopes, MemoryResumeTokenStore, type AuthHandshakeConfig, type VerifyOrHintsResult, type AgentReputation, type ResumeTokenStore, type UnknownAgentPolicy, type DelegationVerifier, type VerifyDelegationResult, } from './auth/index.js';
41
- export { ProofGenerator, createProofResponse, extractCanonicalData, KYA_OS_PROOF_META_KEY, LEGACY_PROOF_META_KEY, type ProofAgentIdentity, type ToolRequest, type ToolResponse, type ProofOptions, } from './proof/index.js';
41
+ export { ProofGenerator, createProofResponse, extractCanonicalData, KYA_OS_PROOF_META_KEY, LEGACY_NAMESPACED_PROOF_META_KEY, LEGACY_PROOF_META_KEY, type ProofAgentIdentity, type ToolRequest, type ToolResponse, type ProofOptions, } from './proof/index.js';
42
42
  export { ProofVerifier, validateMetaStructure, extractProofFromMeta, isReservedMcpMetaKey, DEFAULT_CLOCK_SKEW_SECONDS, MIN_CLOCK_SKEW_SECONDS, MAX_CLOCK_SKEW_SECONDS, type ProofVerifierConfig, type ProofVerificationResult, } from './proof/verifier.js';
43
43
  export { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, createProofVerificationError, type ProofVerificationErrorCode, } from './proof/errors.js';
44
44
  export { SessionManager, createHandshakeRequest, validateHandshakeFormat, SessionStore, MemorySessionStore, type SessionConfig, type HandshakeResult, type MemorySessionStoreOptions, } from './session/index.js';
@@ -48,6 +48,7 @@ export { NodeCryptoProvider } from './providers/node-crypto.js';
48
48
  export { SystemClockProvider } from './providers/system-clock.js';
49
49
  export { RuntimeFetchProvider, NoopFetchProvider } from './providers/runtime-fetch.js';
50
50
  export { AuditLogProvider, MemoryAuditLogProvider, NoopAuditLogProvider, buildAuditRecord, } from './providers/audit-log.js';
51
+ export * from './audit/index.js';
51
52
  export { GrantStore, MemoryGrantStore, type Grant, type MemoryGrantStoreOptions, } from './providers/grant-store.js';
52
53
  export { PendingFlowStore, MemoryPendingFlowStore, type PendingFlow, type MemoryPendingFlowStoreOptions, } from './authz/oidc/pending-flow-store.js';
53
54
  export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsServer, withKyaOs, generateIdentity, type WithKyaOsOptions, } from './middleware/index.js';
@@ -55,4 +56,5 @@ export * from './policy/index.js';
55
56
  export { matchScope, scopeSatisfies, type ScopeMatcher, type ScopeSatisfaction, } from './delegation/scope-matcher.js';
56
57
  export { logger, createDefaultConsoleLogger, type Logger, type Level, } from './logging/index.js';
57
58
  export { ED25519_PKCS8_DER_HEADER, ED25519_SPKI_DER_HEADER_LENGTH, ED25519_KEY_SIZE, } from './utils/index.js';
59
+ export { KYA_OS_EXTENSION_ID, MCP_CLIENT_CAPABILITIES_META_KEY, MISSING_REQUIRED_CLIENT_CAPABILITY_CODE, EXTENSION_NOT_DECLARED_REASON, KYA_OS_DOMAIN_ERROR_CODE, DEFAULT_EXEMPT_METHODS, ExtensionSettingsSchema, DEFAULT_EXTENSION_SETTINGS, parseExtensionSettings, resolveExtensionSettings, buildExtensionSettings, buildExtensionsEntry, readExtensionDeclaration, requireExtension, missingRequiredCapabilityError, proofGateToJsonRpcError, type KyaOsExtensionSettings, type ResolvedExtensionSettings, type DeclarationCarriage, type ExtensionDeclaration, type ReadDeclarationInput, type ExtensionGateResult, type ExtensionGuard, type JsonRpcErrorObject, type ProofGateErrorLike, } from './extension/index.js';
58
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,IAAI,0BAA0B,GACpD,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,GACnC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,8BAA8B,GACpC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,0BAA0B,GAChC,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,cAAc,GACf,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,gCAAgC,EAChC,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,0BAA0B,GAChC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAIjC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,6BAA6B,GACnC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,SAAS,EACT,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,UAAU,EACV,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,MAAM,EACN,0BAA0B,EAC1B,KAAK,MAAM,EACX,KAAK,KAAK,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,uCAAuC,EACvC,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC"}