@kya-os/mcp-i-core 1.2.3-canary.7 → 1.3.0-canary.clientinfo.20251126003544

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 (239) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-test$colon$coverage.log +4239 -0
  3. package/.turbo/turbo-test.log +2973 -0
  4. package/COMPLIANCE_IMPROVEMENT_REPORT.md +483 -0
  5. package/Composer 3.md +615 -0
  6. package/GPT-5.md +1169 -0
  7. package/OPUS-plan.md +352 -0
  8. package/PHASE_3_AND_4.1_SUMMARY.md +585 -0
  9. package/PHASE_3_SUMMARY.md +317 -0
  10. package/PHASE_4.1.3_SUMMARY.md +428 -0
  11. package/PHASE_4.1_COMPLETE.md +525 -0
  12. package/PHASE_4_USER_DID_IDENTITY_LINKING_PLAN.md +1240 -0
  13. package/SCHEMA_COMPLIANCE_REPORT.md +275 -0
  14. package/TEST_PLAN.md +571 -0
  15. package/coverage/coverage-final.json +57 -0
  16. package/dist/__tests__/utils/mock-providers.d.ts +1 -2
  17. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
  18. package/dist/__tests__/utils/mock-providers.js.map +1 -1
  19. package/dist/cache/oauth-config-cache.d.ts +69 -0
  20. package/dist/cache/oauth-config-cache.d.ts.map +1 -0
  21. package/dist/cache/oauth-config-cache.js +76 -0
  22. package/dist/cache/oauth-config-cache.js.map +1 -0
  23. package/dist/identity/idp-token-resolver.d.ts +53 -0
  24. package/dist/identity/idp-token-resolver.d.ts.map +1 -0
  25. package/dist/identity/idp-token-resolver.js +108 -0
  26. package/dist/identity/idp-token-resolver.js.map +1 -0
  27. package/dist/identity/idp-token-storage.interface.d.ts +42 -0
  28. package/dist/identity/idp-token-storage.interface.d.ts.map +1 -0
  29. package/dist/identity/idp-token-storage.interface.js +12 -0
  30. package/dist/identity/idp-token-storage.interface.js.map +1 -0
  31. package/dist/identity/user-did-manager.d.ts +39 -1
  32. package/dist/identity/user-did-manager.d.ts.map +1 -1
  33. package/dist/identity/user-did-manager.js +69 -3
  34. package/dist/identity/user-did-manager.js.map +1 -1
  35. package/dist/index.d.ts +24 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +43 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/runtime/audit-logger.d.ts +37 -0
  40. package/dist/runtime/audit-logger.d.ts.map +1 -0
  41. package/dist/runtime/audit-logger.js +9 -0
  42. package/dist/runtime/audit-logger.js.map +1 -0
  43. package/dist/runtime/base.d.ts +58 -2
  44. package/dist/runtime/base.d.ts.map +1 -1
  45. package/dist/runtime/base.js +266 -11
  46. package/dist/runtime/base.js.map +1 -1
  47. package/dist/services/access-control.service.d.ts.map +1 -1
  48. package/dist/services/access-control.service.js +200 -35
  49. package/dist/services/access-control.service.js.map +1 -1
  50. package/dist/services/authorization/authorization-registry.d.ts +29 -0
  51. package/dist/services/authorization/authorization-registry.d.ts.map +1 -0
  52. package/dist/services/authorization/authorization-registry.js +57 -0
  53. package/dist/services/authorization/authorization-registry.js.map +1 -0
  54. package/dist/services/authorization/types.d.ts +53 -0
  55. package/dist/services/authorization/types.d.ts.map +1 -0
  56. package/dist/services/authorization/types.js +10 -0
  57. package/dist/services/authorization/types.js.map +1 -0
  58. package/dist/services/batch-delegation.service.d.ts +53 -0
  59. package/dist/services/batch-delegation.service.d.ts.map +1 -0
  60. package/dist/services/batch-delegation.service.js +95 -0
  61. package/dist/services/batch-delegation.service.js.map +1 -0
  62. package/dist/services/index.d.ts +2 -0
  63. package/dist/services/index.d.ts.map +1 -1
  64. package/dist/services/index.js +4 -1
  65. package/dist/services/index.js.map +1 -1
  66. package/dist/services/oauth-config.service.d.ts +53 -0
  67. package/dist/services/oauth-config.service.d.ts.map +1 -0
  68. package/dist/services/oauth-config.service.js +117 -0
  69. package/dist/services/oauth-config.service.js.map +1 -0
  70. package/dist/services/oauth-provider-registry.d.ts +77 -0
  71. package/dist/services/oauth-provider-registry.d.ts.map +1 -0
  72. package/dist/services/oauth-provider-registry.js +112 -0
  73. package/dist/services/oauth-provider-registry.js.map +1 -0
  74. package/dist/services/oauth-service.d.ts +77 -0
  75. package/dist/services/oauth-service.d.ts.map +1 -0
  76. package/dist/services/oauth-service.js +348 -0
  77. package/dist/services/oauth-service.js.map +1 -0
  78. package/dist/services/oauth-token-retrieval.service.d.ts +49 -0
  79. package/dist/services/oauth-token-retrieval.service.d.ts.map +1 -0
  80. package/dist/services/oauth-token-retrieval.service.js +150 -0
  81. package/dist/services/oauth-token-retrieval.service.js.map +1 -0
  82. package/dist/services/provider-resolver.d.ts +48 -0
  83. package/dist/services/provider-resolver.d.ts.map +1 -0
  84. package/dist/services/provider-resolver.js +120 -0
  85. package/dist/services/provider-resolver.js.map +1 -0
  86. package/dist/services/provider-validator.d.ts +55 -0
  87. package/dist/services/provider-validator.d.ts.map +1 -0
  88. package/dist/services/provider-validator.js +135 -0
  89. package/dist/services/provider-validator.js.map +1 -0
  90. package/dist/services/session-registration.service.d.ts +80 -0
  91. package/dist/services/session-registration.service.d.ts.map +1 -0
  92. package/dist/services/session-registration.service.js +172 -0
  93. package/dist/services/session-registration.service.js.map +1 -0
  94. package/dist/services/tool-context-builder.d.ts +57 -0
  95. package/dist/services/tool-context-builder.d.ts.map +1 -0
  96. package/dist/services/tool-context-builder.js +125 -0
  97. package/dist/services/tool-context-builder.js.map +1 -0
  98. package/dist/services/tool-protection.service.d.ts +87 -10
  99. package/dist/services/tool-protection.service.d.ts.map +1 -1
  100. package/dist/services/tool-protection.service.js +282 -112
  101. package/dist/services/tool-protection.service.js.map +1 -1
  102. package/dist/types/oauth-required-error.d.ts +40 -0
  103. package/dist/types/oauth-required-error.d.ts.map +1 -0
  104. package/dist/types/oauth-required-error.js +40 -0
  105. package/dist/types/oauth-required-error.js.map +1 -0
  106. package/dist/utils/did-helpers.d.ts +33 -0
  107. package/dist/utils/did-helpers.d.ts.map +1 -1
  108. package/dist/utils/did-helpers.js +40 -0
  109. package/dist/utils/did-helpers.js.map +1 -1
  110. package/dist/utils/index.d.ts +1 -0
  111. package/dist/utils/index.d.ts.map +1 -1
  112. package/dist/utils/index.js +1 -0
  113. package/dist/utils/index.js.map +1 -1
  114. package/docs/API_REFERENCE.md +1362 -0
  115. package/docs/COMPLIANCE_MATRIX.md +691 -0
  116. package/docs/STATUSLIST2021_GUIDE.md +696 -0
  117. package/docs/W3C_VC_DELEGATION_GUIDE.md +710 -0
  118. package/package.json +24 -50
  119. package/scripts/audit-compliance.ts +724 -0
  120. package/src/__tests__/cache/tool-protection-cache.test.ts +640 -0
  121. package/src/__tests__/config/provider-runtime-config.test.ts +309 -0
  122. package/src/__tests__/delegation-e2e.test.ts +690 -0
  123. package/src/__tests__/identity/user-did-manager.test.ts +213 -0
  124. package/src/__tests__/index.test.ts +56 -0
  125. package/src/__tests__/integration/full-flow.test.ts +776 -0
  126. package/src/__tests__/integration.test.ts +281 -0
  127. package/src/__tests__/providers/base.test.ts +173 -0
  128. package/src/__tests__/providers/memory.test.ts +319 -0
  129. package/src/__tests__/regression/phase2-regression.test.ts +427 -0
  130. package/src/__tests__/runtime/audit-logger.test.ts +154 -0
  131. package/src/__tests__/runtime/base-extensions.test.ts +593 -0
  132. package/src/__tests__/runtime/base.test.ts +869 -0
  133. package/src/__tests__/runtime/delegation-flow.test.ts +164 -0
  134. package/src/__tests__/runtime/proof-client-did.test.ts +375 -0
  135. package/src/__tests__/runtime/route-interception.test.ts +686 -0
  136. package/src/__tests__/runtime/tool-protection-enforcement.test.ts +908 -0
  137. package/src/__tests__/services/agentshield-integration.test.ts +784 -0
  138. package/src/__tests__/services/provider-resolver-edge-cases.test.ts +487 -0
  139. package/src/__tests__/services/tool-protection-oauth-provider.test.ts +480 -0
  140. package/src/__tests__/services/tool-protection.service.test.ts +1366 -0
  141. package/src/__tests__/utils/mock-providers.ts +340 -0
  142. package/src/cache/oauth-config-cache.d.ts +69 -0
  143. package/src/cache/oauth-config-cache.d.ts.map +1 -0
  144. package/src/cache/oauth-config-cache.js +71 -0
  145. package/src/cache/oauth-config-cache.js.map +1 -0
  146. package/src/cache/oauth-config-cache.ts +123 -0
  147. package/src/cache/tool-protection-cache.ts +171 -0
  148. package/src/compliance/EXAMPLE.md +412 -0
  149. package/src/compliance/__tests__/schema-verifier.test.ts +797 -0
  150. package/src/compliance/index.ts +8 -0
  151. package/src/compliance/schema-registry.ts +460 -0
  152. package/src/compliance/schema-verifier.ts +708 -0
  153. package/src/config/__tests__/remote-config.spec.ts +268 -0
  154. package/src/config/remote-config.ts +174 -0
  155. package/src/config.ts +309 -0
  156. package/src/delegation/__tests__/audience-validator.test.ts +112 -0
  157. package/src/delegation/__tests__/bitstring.test.ts +346 -0
  158. package/src/delegation/__tests__/cascading-revocation.test.ts +628 -0
  159. package/src/delegation/__tests__/delegation-graph.test.ts +584 -0
  160. package/src/delegation/__tests__/utils.test.ts +152 -0
  161. package/src/delegation/__tests__/vc-issuer.test.ts +442 -0
  162. package/src/delegation/__tests__/vc-verifier.test.ts +922 -0
  163. package/src/delegation/audience-validator.ts +52 -0
  164. package/src/delegation/bitstring.ts +278 -0
  165. package/src/delegation/cascading-revocation.ts +370 -0
  166. package/src/delegation/delegation-graph.ts +299 -0
  167. package/src/delegation/index.ts +14 -0
  168. package/src/delegation/statuslist-manager.ts +353 -0
  169. package/src/delegation/storage/__tests__/memory-graph-storage.test.ts +366 -0
  170. package/src/delegation/storage/__tests__/memory-statuslist-storage.test.ts +228 -0
  171. package/src/delegation/storage/index.ts +9 -0
  172. package/src/delegation/storage/memory-graph-storage.ts +178 -0
  173. package/src/delegation/storage/memory-statuslist-storage.ts +77 -0
  174. package/src/delegation/utils.ts +42 -0
  175. package/src/delegation/vc-issuer.ts +232 -0
  176. package/src/delegation/vc-verifier.ts +568 -0
  177. package/src/identity/idp-token-resolver.ts +147 -0
  178. package/src/identity/idp-token-storage.interface.ts +59 -0
  179. package/src/identity/user-did-manager.ts +370 -0
  180. package/src/index.ts +271 -0
  181. package/src/providers/base.d.ts +91 -0
  182. package/src/providers/base.d.ts.map +1 -0
  183. package/src/providers/base.js +38 -0
  184. package/src/providers/base.js.map +1 -0
  185. package/src/providers/base.ts +96 -0
  186. package/src/providers/memory.ts +142 -0
  187. package/src/runtime/audit-logger.ts +39 -0
  188. package/src/runtime/base.ts +1329 -0
  189. package/src/services/__tests__/access-control.integration.test.ts +443 -0
  190. package/src/services/__tests__/access-control.proof-response-validation.test.ts +578 -0
  191. package/src/services/__tests__/access-control.service.test.ts +970 -0
  192. package/src/services/__tests__/batch-delegation.service.test.ts +351 -0
  193. package/src/services/__tests__/crypto.service.test.ts +531 -0
  194. package/src/services/__tests__/oauth-provider-registry.test.ts +142 -0
  195. package/src/services/__tests__/proof-verifier.integration.test.ts +485 -0
  196. package/src/services/__tests__/proof-verifier.test.ts +489 -0
  197. package/src/services/__tests__/provider-resolution.integration.test.ts +198 -0
  198. package/src/services/__tests__/provider-resolver.test.ts +217 -0
  199. package/src/services/__tests__/storage.service.test.ts +358 -0
  200. package/src/services/access-control.service.ts +990 -0
  201. package/src/services/authorization/authorization-registry.ts +66 -0
  202. package/src/services/authorization/types.ts +71 -0
  203. package/src/services/batch-delegation.service.ts +137 -0
  204. package/src/services/crypto.service.ts +302 -0
  205. package/src/services/errors.ts +76 -0
  206. package/src/services/index.ts +18 -0
  207. package/src/services/oauth-config.service.d.ts +53 -0
  208. package/src/services/oauth-config.service.d.ts.map +1 -0
  209. package/src/services/oauth-config.service.js +113 -0
  210. package/src/services/oauth-config.service.js.map +1 -0
  211. package/src/services/oauth-config.service.ts +166 -0
  212. package/src/services/oauth-provider-registry.d.ts +57 -0
  213. package/src/services/oauth-provider-registry.d.ts.map +1 -0
  214. package/src/services/oauth-provider-registry.js +73 -0
  215. package/src/services/oauth-provider-registry.js.map +1 -0
  216. package/src/services/oauth-provider-registry.ts +123 -0
  217. package/src/services/oauth-service.ts +510 -0
  218. package/src/services/oauth-token-retrieval.service.ts +245 -0
  219. package/src/services/proof-verifier.ts +478 -0
  220. package/src/services/provider-resolver.d.ts +48 -0
  221. package/src/services/provider-resolver.d.ts.map +1 -0
  222. package/src/services/provider-resolver.js +106 -0
  223. package/src/services/provider-resolver.js.map +1 -0
  224. package/src/services/provider-resolver.ts +144 -0
  225. package/src/services/provider-validator.ts +170 -0
  226. package/src/services/session-registration.service.ts +251 -0
  227. package/src/services/storage.service.ts +566 -0
  228. package/src/services/tool-context-builder.ts +172 -0
  229. package/src/services/tool-protection.service.ts +958 -0
  230. package/src/types/oauth-required-error.ts +63 -0
  231. package/src/types/tool-protection.ts +155 -0
  232. package/src/utils/__tests__/did-helpers.test.ts +101 -0
  233. package/src/utils/base64.ts +148 -0
  234. package/src/utils/cors.ts +83 -0
  235. package/src/utils/did-helpers.ts +150 -0
  236. package/src/utils/index.ts +8 -0
  237. package/src/utils/storage-keys.ts +278 -0
  238. package/tsconfig.json +21 -0
  239. package/vitest.config.ts +56 -0
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Schema Compliance Module
3
+ *
4
+ * Automated verification against canonical schemas from schemas.kya-os.ai
5
+ */
6
+
7
+ export * from './schema-verifier';
8
+ export * from './schema-registry';
@@ -0,0 +1,460 @@
1
+ /**
2
+ * Schema Registry
3
+ *
4
+ * Canonical list of all schemas from schemas.kya-os.ai
5
+ * Used for automated compliance verification.
6
+ *
7
+ * Auto-generated from https://schemas.kya-os.ai/schema-index.json
8
+ * Last updated: 2025-10-17
9
+ */
10
+
11
+ import type { SchemaMetadata } from './schema-verifier';
12
+
13
+ const SCHEMAS_BASE_URL = 'https://schemas.kya-os.ai/xmcp-i';
14
+
15
+ /**
16
+ * Complete registry of schemas from schemas.kya-os.ai
17
+ *
18
+ * As of 2025-10-17, there are 38 schemas covering:
19
+ * - W3C Verifiable Credentials
20
+ * - MCP-I Protocol (Handshake, Proof, Session)
21
+ * - Delegation System
22
+ * - Agent Registry
23
+ * - CLI & Runtime
24
+ * - TLKRC (Tool-Level Key Rotation)
25
+ */
26
+ export const SCHEMA_REGISTRY: SchemaMetadata[] = [
27
+ // ===================================================================
28
+ // W3C Verifiable Credentials
29
+ // ===================================================================
30
+ {
31
+ id: 'verifiable-credential',
32
+ url: `${SCHEMAS_BASE_URL}/vc/verifiable-credential.v1.0.0.json`,
33
+ version: '1.0.0',
34
+ type: 'VerifiableCredential',
35
+ description: 'W3C Verifiable Credential Data Model',
36
+ },
37
+ {
38
+ id: 'verifiable-presentation',
39
+ url: `${SCHEMAS_BASE_URL}/vc/verifiable-presentation.v1.0.0.json`,
40
+ version: '1.0.0',
41
+ type: 'VerifiablePresentation',
42
+ description: 'W3C Verifiable Presentation',
43
+ },
44
+ {
45
+ id: 'statuslist2021-credential',
46
+ url: `${SCHEMAS_BASE_URL}/vc/statuslist-2021-credential.v1.0.0.json`,
47
+ version: '1.0.0',
48
+ type: 'StatusList2021Credential',
49
+ description: 'StatusList2021 Credential for efficient revocation',
50
+ },
51
+ {
52
+ id: 'statuslist2021-credential-subject',
53
+ url: `${SCHEMAS_BASE_URL}/vc/statuslist-2021-credential-subject.v1.0.0.json`,
54
+ version: '1.0.0',
55
+ type: 'StatusList2021CredentialSubject',
56
+ description: 'StatusList2021 Credential Subject',
57
+ },
58
+
59
+ // ===================================================================
60
+ // Delegation Credentials
61
+ // ===================================================================
62
+ {
63
+ id: 'delegation-credential',
64
+ url: `${SCHEMAS_BASE_URL}/credentials/delegation/v1.0.0.json`,
65
+ version: '1.0.0',
66
+ type: 'DelegationCredential',
67
+ description: 'W3C VC-based delegation credential',
68
+ },
69
+
70
+ // ===================================================================
71
+ // Delegation System
72
+ // ===================================================================
73
+ {
74
+ id: 'delegation-record',
75
+ url: `${SCHEMAS_BASE_URL}/delegation/delegation-record.v1.0.0.json`,
76
+ version: '1.0.0',
77
+ type: 'DelegationRecord',
78
+ description: 'Internal delegation record',
79
+ },
80
+ {
81
+ id: 'delegation-constraints',
82
+ url: `${SCHEMAS_BASE_URL}/delegation/constraints.v1.0.0.json`,
83
+ version: '1.0.0',
84
+ type: 'DelegationConstraints',
85
+ description: 'CRISP constraints for delegations',
86
+ },
87
+ {
88
+ id: 'delegation-chain',
89
+ url: `${SCHEMAS_BASE_URL}/delegation/delegation-chain.v1.0.0.json`,
90
+ version: '1.0.0',
91
+ type: 'DelegationChain',
92
+ description: 'Delegation chain for hierarchy tracking',
93
+ },
94
+ {
95
+ id: 'delegation-creation-request',
96
+ url: `${SCHEMAS_BASE_URL}/delegation/delegation-creation-request.v1.0.0.json`,
97
+ version: '1.0.0',
98
+ type: 'DelegationCreationRequest',
99
+ description: 'Request to create a delegation',
100
+ },
101
+ {
102
+ id: 'delegation-verification-result',
103
+ url: `${SCHEMAS_BASE_URL}/delegation/delegation-verification-result.v1.0.0.json`,
104
+ version: '1.0.0',
105
+ type: 'DelegationVerificationResult',
106
+ description: 'Result of delegation verification',
107
+ },
108
+
109
+ // ===================================================================
110
+ // MCP-I Protocol - Handshake
111
+ // ===================================================================
112
+ {
113
+ id: 'handshake-request',
114
+ url: `${SCHEMAS_BASE_URL}/handshake/handshake-request.v1.0.0.json`,
115
+ version: '1.0.0',
116
+ type: 'HandshakeRequest',
117
+ description: 'MCP-I handshake request',
118
+ },
119
+ {
120
+ id: 'session-context',
121
+ url: `${SCHEMAS_BASE_URL}/handshake/session-context.v1.0.0.json`,
122
+ version: '1.0.0',
123
+ type: 'SessionContext',
124
+ description: 'MCP-I session context',
125
+ },
126
+ {
127
+ id: 'nonce-cache-config',
128
+ url: `${SCHEMAS_BASE_URL}/handshake/nonce-cache-config.v1.0.0.json`,
129
+ version: '1.0.0',
130
+ type: 'NonceCacheConfig',
131
+ description: 'Nonce cache configuration',
132
+ },
133
+ {
134
+ id: 'nonce-cache-entry',
135
+ url: `${SCHEMAS_BASE_URL}/handshake/nonce-cache-entry.v1.0.0.json`,
136
+ version: '1.0.0',
137
+ type: 'NonceCacheEntry',
138
+ description: 'Nonce cache entry for replay protection',
139
+ },
140
+
141
+ // ===================================================================
142
+ // MCP-I Protocol - Proof
143
+ // ===================================================================
144
+ {
145
+ id: 'detached-proof',
146
+ url: `${SCHEMAS_BASE_URL}/proof/detached-proof.v1.0.0.json`,
147
+ version: '1.0.0',
148
+ type: 'DetachedProof',
149
+ description: 'MCP-I detached proof with JWS',
150
+ },
151
+ {
152
+ id: 'proof-meta',
153
+ url: `${SCHEMAS_BASE_URL}/proof/proof-meta.v1.0.0.json`,
154
+ version: '1.0.0',
155
+ type: 'ProofMeta',
156
+ description: 'Metadata for MCP-I proofs',
157
+ },
158
+ {
159
+ id: 'proof',
160
+ url: `${SCHEMAS_BASE_URL}/proof/v1.0.0.json`,
161
+ version: '1.0.0',
162
+ type: 'Proof',
163
+ description: 'Generic proof structure',
164
+ },
165
+ {
166
+ id: 'proof-w3c',
167
+ url: `${SCHEMAS_BASE_URL}/proof/w3c/v1.0.0.json`,
168
+ version: '1.0.0',
169
+ type: 'W3CProof',
170
+ description: 'W3C-compliant proof',
171
+ },
172
+ {
173
+ id: 'audit-record',
174
+ url: `${SCHEMAS_BASE_URL}/proof/audit-record.v1.0.0.json`,
175
+ version: '1.0.0',
176
+ type: 'AuditRecord',
177
+ description: 'Audit trail record',
178
+ },
179
+ {
180
+ id: 'canonical-hashes',
181
+ url: `${SCHEMAS_BASE_URL}/proof/canonical-hashes.v1.0.0.json`,
182
+ version: '1.0.0',
183
+ type: 'CanonicalHashes',
184
+ description: 'Canonical hashes for proof generation',
185
+ },
186
+
187
+ // ===================================================================
188
+ // Agent Registry
189
+ // ===================================================================
190
+ {
191
+ id: 'registration-input',
192
+ url: `${SCHEMAS_BASE_URL}/registry/registration-input.v1.0.0.json`,
193
+ version: '1.0.0',
194
+ type: 'RegistrationInput',
195
+ description: 'Agent registration input',
196
+ },
197
+ {
198
+ id: 'registration-result',
199
+ url: `${SCHEMAS_BASE_URL}/registry/registration-result.v1.0.0.json`,
200
+ version: '1.0.0',
201
+ type: 'RegistrationResult',
202
+ description: 'Agent registration result',
203
+ },
204
+ {
205
+ id: 'agent-status',
206
+ url: `${SCHEMAS_BASE_URL}/registry/agent-status.v1.0.0.json`,
207
+ version: '1.0.0',
208
+ type: 'AgentStatus',
209
+ description: 'Agent status information',
210
+ },
211
+ {
212
+ id: 'claim-token',
213
+ url: `${SCHEMAS_BASE_URL}/registry/claim-token.v1.0.0.json`,
214
+ version: '1.0.0',
215
+ type: 'ClaimToken',
216
+ description: 'Token for claiming agent ownership',
217
+ },
218
+ {
219
+ id: 'delegation-request',
220
+ url: `${SCHEMAS_BASE_URL}/registry/delegation-request.v1.0.0.json`,
221
+ version: '1.0.0',
222
+ type: 'DelegationRequest',
223
+ description: 'Registry delegation request',
224
+ },
225
+ {
226
+ id: 'delegation-response',
227
+ url: `${SCHEMAS_BASE_URL}/registry/delegation-response.v1.0.0.json`,
228
+ version: '1.0.0',
229
+ type: 'DelegationResponse',
230
+ description: 'Registry delegation response',
231
+ },
232
+ {
233
+ id: 'registry-delegation',
234
+ url: `${SCHEMAS_BASE_URL}/registry/delegation.v1.0.0.json`,
235
+ version: '1.0.0',
236
+ type: 'RegistryDelegation',
237
+ description: 'Registry delegation object',
238
+ },
239
+ {
240
+ id: 'mirror-status',
241
+ url: `${SCHEMAS_BASE_URL}/registry/mirror-status.v1.0.0.json`,
242
+ version: '1.0.0',
243
+ type: 'MirrorStatus',
244
+ description: 'Registry mirror status',
245
+ },
246
+ {
247
+ id: 'receipt',
248
+ url: `${SCHEMAS_BASE_URL}/registry/receipt.v1.0.0.json`,
249
+ version: '1.0.0',
250
+ type: 'Receipt',
251
+ description: 'Registry receipt',
252
+ },
253
+
254
+ // ===================================================================
255
+ // Runtime
256
+ // ===================================================================
257
+ {
258
+ id: 'authorization-display',
259
+ url: `${SCHEMAS_BASE_URL}/runtime/authorization-display.v1.0.0.json`,
260
+ version: '1.0.0',
261
+ type: 'AuthorizationDisplay',
262
+ description: 'Authorization display information',
263
+ },
264
+ {
265
+ id: 'needs-authorization-error',
266
+ url: `${SCHEMAS_BASE_URL}/runtime/needs-authorization-error.v1.0.0.json`,
267
+ version: '1.0.0',
268
+ type: 'NeedsAuthorizationError',
269
+ description: 'Error indicating authorization is needed',
270
+ },
271
+ {
272
+ id: 'runtime-error',
273
+ url: `${SCHEMAS_BASE_URL}/runtime/runtime-error.v1.0.0.json`,
274
+ version: '1.0.0',
275
+ type: 'RuntimeError',
276
+ description: 'Generic runtime error',
277
+ },
278
+
279
+ // ===================================================================
280
+ // CLI
281
+ // ===================================================================
282
+ {
283
+ id: 'register-output',
284
+ url: `${SCHEMAS_BASE_URL}/cli/register-output/v1.0.0.json`,
285
+ version: '1.0.0',
286
+ type: 'RegisterOutput',
287
+ description: 'CLI registration output',
288
+ },
289
+
290
+ // ===================================================================
291
+ // TLKRC (Tool-Level Key Rotation)
292
+ // ===================================================================
293
+ {
294
+ id: 'rotation-chain',
295
+ url: `${SCHEMAS_BASE_URL}/tlkrc/rotation-chain.v1.0.0.json`,
296
+ version: '1.0.0',
297
+ type: 'RotationChain',
298
+ description: 'Key rotation chain',
299
+ },
300
+ {
301
+ id: 'rotation-event',
302
+ url: `${SCHEMAS_BASE_URL}/tlkrc/rotation-event.v1.0.0.json`,
303
+ version: '1.0.0',
304
+ type: 'RotationEvent',
305
+ description: 'Key rotation event',
306
+ },
307
+
308
+ // ===================================================================
309
+ // Verifier Service
310
+ // ===================================================================
311
+ {
312
+ id: 'verify-page',
313
+ url: `${SCHEMAS_BASE_URL}/verifier/verify-page/v1.0.0.json`,
314
+ version: '1.0.0',
315
+ type: 'VerifyPage',
316
+ description: 'Verifier page response',
317
+ },
318
+
319
+ // ===================================================================
320
+ // Well-Known
321
+ // ===================================================================
322
+ {
323
+ id: 'well-known-agent',
324
+ url: `${SCHEMAS_BASE_URL}/well-known/agent/v1.0.0.json`,
325
+ version: '1.0.0',
326
+ type: 'WellKnownAgent',
327
+ description: 'Agent well-known metadata',
328
+ },
329
+ ];
330
+
331
+ /**
332
+ * Get all schemas
333
+ */
334
+ export function getAllSchemas(): SchemaMetadata[] {
335
+ return SCHEMA_REGISTRY;
336
+ }
337
+
338
+ /**
339
+ * Get schemas by category
340
+ */
341
+ export function getSchemasByCategory(category: string): SchemaMetadata[] {
342
+ const categoryMap: Record<string, string[]> = {
343
+ 'vc': [
344
+ 'verifiable-credential',
345
+ 'verifiable-presentation',
346
+ 'statuslist2021-credential',
347
+ 'statuslist2021-credential-subject',
348
+ ],
349
+ 'delegation': [
350
+ 'delegation-credential',
351
+ 'delegation-record',
352
+ 'delegation-constraints',
353
+ 'delegation-chain',
354
+ 'delegation-creation-request',
355
+ 'delegation-verification-result',
356
+ ],
357
+ 'handshake': [
358
+ 'handshake-request',
359
+ 'session-context',
360
+ 'nonce-cache-config',
361
+ 'nonce-cache-entry',
362
+ ],
363
+ 'proof': [
364
+ 'detached-proof',
365
+ 'proof-meta',
366
+ 'proof',
367
+ 'proof-w3c',
368
+ 'audit-record',
369
+ 'canonical-hashes',
370
+ ],
371
+ 'registry': [
372
+ 'registration-input',
373
+ 'registration-result',
374
+ 'agent-status',
375
+ 'claim-token',
376
+ 'delegation-request',
377
+ 'delegation-response',
378
+ 'registry-delegation',
379
+ 'mirror-status',
380
+ 'receipt',
381
+ ],
382
+ 'runtime': [
383
+ 'authorization-display',
384
+ 'needs-authorization-error',
385
+ 'runtime-error',
386
+ ],
387
+ 'cli': ['register-output'],
388
+ 'tlkrc': ['rotation-chain', 'rotation-event'],
389
+ 'verifier': ['verify-page'],
390
+ 'well-known': ['well-known-agent'],
391
+ };
392
+
393
+ const ids = categoryMap[category] || [];
394
+ return SCHEMA_REGISTRY.filter((s) => ids.includes(s.id));
395
+ }
396
+
397
+ /**
398
+ * Get schema by ID
399
+ */
400
+ export function getSchemaById(id: string): SchemaMetadata | undefined {
401
+ return SCHEMA_REGISTRY.find((s) => s.id === id);
402
+ }
403
+
404
+ /**
405
+ * Get critical schemas (must be 100% compliant)
406
+ *
407
+ * These are the core schemas that power the MCP-I protocol and must
408
+ * be fully compliant for the system to function correctly.
409
+ */
410
+ export function getCriticalSchemas(): SchemaMetadata[] {
411
+ const criticalIds = [
412
+ // W3C VC Core
413
+ 'verifiable-credential',
414
+ 'statuslist2021-credential',
415
+
416
+ // Delegation System
417
+ 'delegation-credential',
418
+ 'delegation-record',
419
+ 'delegation-constraints',
420
+
421
+ // MCP-I Protocol
422
+ 'detached-proof',
423
+ 'proof-meta',
424
+ 'handshake-request',
425
+ 'session-context',
426
+
427
+ // Audit
428
+ 'audit-record',
429
+ ];
430
+
431
+ return SCHEMA_REGISTRY.filter((s) => criticalIds.includes(s.id));
432
+ }
433
+
434
+ /**
435
+ * Get schema statistics
436
+ */
437
+ export function getSchemaStats(): {
438
+ total: number;
439
+ byCategory: Record<string, number>;
440
+ byVersion: Record<string, number>;
441
+ } {
442
+ const byCategory: Record<string, number> = {};
443
+ const byVersion: Record<string, number> = {};
444
+
445
+ for (const schema of SCHEMA_REGISTRY) {
446
+ // Category stats (inferred from URL)
447
+ const urlParts = schema.url.replace(SCHEMAS_BASE_URL + '/', '').split('/');
448
+ const category = urlParts[0] || 'unknown';
449
+ byCategory[category] = (byCategory[category] || 0) + 1;
450
+
451
+ // Version stats
452
+ byVersion[schema.version] = (byVersion[schema.version] || 0) + 1;
453
+ }
454
+
455
+ return {
456
+ total: SCHEMA_REGISTRY.length,
457
+ byCategory,
458
+ byVersion,
459
+ };
460
+ }