@kya-os/mcp 1.6.1 → 1.9.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 (282) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +228 -3
  3. package/dist/authz/index.d.ts +1 -0
  4. package/dist/authz/index.d.ts.map +1 -1
  5. package/dist/authz/index.js +1 -0
  6. package/dist/authz/index.js.map +1 -1
  7. package/dist/authz/oidc/oidc-adapter.d.ts +10 -2
  8. package/dist/authz/oidc/oidc-adapter.d.ts.map +1 -1
  9. package/dist/authz/oidc/oidc-adapter.js +18 -9
  10. package/dist/authz/oidc/oidc-adapter.js.map +1 -1
  11. package/dist/authz/oidc/pending-flow-store.d.ts +80 -0
  12. package/dist/authz/oidc/pending-flow-store.d.ts.map +1 -0
  13. package/dist/authz/oidc/pending-flow-store.js +82 -0
  14. package/dist/authz/oidc/pending-flow-store.js.map +1 -0
  15. package/dist/card/build.d.ts +41 -0
  16. package/dist/card/build.d.ts.map +1 -0
  17. package/dist/card/build.js +47 -0
  18. package/dist/card/build.js.map +1 -0
  19. package/dist/card/builder.d.ts +99 -0
  20. package/dist/card/builder.d.ts.map +1 -0
  21. package/dist/card/builder.js +147 -0
  22. package/dist/card/builder.js.map +1 -0
  23. package/dist/card/cimd.d.ts +92 -0
  24. package/dist/card/cimd.d.ts.map +1 -0
  25. package/dist/card/cimd.js +225 -0
  26. package/dist/card/cimd.js.map +1 -0
  27. package/dist/card/delegation.d.ts +145 -0
  28. package/dist/card/delegation.d.ts.map +1 -0
  29. package/dist/card/delegation.js +293 -0
  30. package/dist/card/delegation.js.map +1 -0
  31. package/dist/card/emit.d.ts +133 -0
  32. package/dist/card/emit.d.ts.map +1 -0
  33. package/dist/card/emit.js +127 -0
  34. package/dist/card/emit.js.map +1 -0
  35. package/dist/card/index.d.ts +43 -0
  36. package/dist/card/index.d.ts.map +1 -0
  37. package/dist/card/index.js +46 -0
  38. package/dist/card/index.js.map +1 -0
  39. package/dist/card/middleware.d.ts +112 -0
  40. package/dist/card/middleware.d.ts.map +1 -0
  41. package/dist/card/middleware.js +121 -0
  42. package/dist/card/middleware.js.map +1 -0
  43. package/dist/card/proof/build.d.ts +22 -0
  44. package/dist/card/proof/build.d.ts.map +1 -0
  45. package/dist/card/proof/build.js +55 -0
  46. package/dist/card/proof/build.js.map +1 -0
  47. package/dist/card/proof/canonical.d.ts +66 -0
  48. package/dist/card/proof/canonical.d.ts.map +1 -0
  49. package/dist/card/proof/canonical.js +131 -0
  50. package/dist/card/proof/canonical.js.map +1 -0
  51. package/dist/card/proof/http-sig.d.ts +69 -0
  52. package/dist/card/proof/http-sig.d.ts.map +1 -0
  53. package/dist/card/proof/http-sig.js +101 -0
  54. package/dist/card/proof/http-sig.js.map +1 -0
  55. package/dist/card/proof/index.d.ts +25 -0
  56. package/dist/card/proof/index.d.ts.map +1 -0
  57. package/dist/card/proof/index.js +25 -0
  58. package/dist/card/proof/index.js.map +1 -0
  59. package/dist/card/proof/nonce-cache.d.ts +67 -0
  60. package/dist/card/proof/nonce-cache.d.ts.map +1 -0
  61. package/dist/card/proof/nonce-cache.js +88 -0
  62. package/dist/card/proof/nonce-cache.js.map +1 -0
  63. package/dist/card/proof/signer.d.ts +32 -0
  64. package/dist/card/proof/signer.d.ts.map +1 -0
  65. package/dist/card/proof/signer.js +59 -0
  66. package/dist/card/proof/signer.js.map +1 -0
  67. package/dist/card/proof/types.d.ts +219 -0
  68. package/dist/card/proof/types.d.ts.map +1 -0
  69. package/dist/card/proof/types.js +87 -0
  70. package/dist/card/proof/types.js.map +1 -0
  71. package/dist/card/proof/verify.d.ts +27 -0
  72. package/dist/card/proof/verify.d.ts.map +1 -0
  73. package/dist/card/proof/verify.js +236 -0
  74. package/dist/card/proof/verify.js.map +1 -0
  75. package/dist/card/resolve.d.ts +97 -0
  76. package/dist/card/resolve.d.ts.map +1 -0
  77. package/dist/card/resolve.js +223 -0
  78. package/dist/card/resolve.js.map +1 -0
  79. package/dist/card/revocation.d.ts +96 -0
  80. package/dist/card/revocation.d.ts.map +1 -0
  81. package/dist/card/revocation.js +190 -0
  82. package/dist/card/revocation.js.map +1 -0
  83. package/dist/card/schema.d.ts +177 -0
  84. package/dist/card/schema.d.ts.map +1 -0
  85. package/dist/card/schema.js +119 -0
  86. package/dist/card/schema.js.map +1 -0
  87. package/dist/card/verify.d.ts +144 -0
  88. package/dist/card/verify.d.ts.map +1 -0
  89. package/dist/card/verify.js +132 -0
  90. package/dist/card/verify.js.map +1 -0
  91. package/dist/delegation/bitstring.d.ts +9 -7
  92. package/dist/delegation/bitstring.d.ts.map +1 -1
  93. package/dist/delegation/bitstring.js +70 -37
  94. package/dist/delegation/bitstring.js.map +1 -1
  95. package/dist/delegation/did-linkage.d.ts +23 -0
  96. package/dist/delegation/did-linkage.d.ts.map +1 -0
  97. package/dist/delegation/did-linkage.js +57 -0
  98. package/dist/delegation/did-linkage.js.map +1 -0
  99. package/dist/delegation/did-resolver-registry.d.ts +7 -0
  100. package/dist/delegation/did-resolver-registry.d.ts.map +1 -0
  101. package/dist/delegation/did-resolver-registry.js +20 -0
  102. package/dist/delegation/did-resolver-registry.js.map +1 -0
  103. package/dist/delegation/did-web-resolver.d.ts +29 -18
  104. package/dist/delegation/did-web-resolver.d.ts.map +1 -1
  105. package/dist/delegation/did-web-resolver.js +65 -35
  106. package/dist/delegation/did-web-resolver.js.map +1 -1
  107. package/dist/delegation/index.d.ts +3 -0
  108. package/dist/delegation/index.d.ts.map +1 -1
  109. package/dist/delegation/index.js +3 -0
  110. package/dist/delegation/index.js.map +1 -1
  111. package/dist/delegation/statuslist-manager.d.ts.map +1 -1
  112. package/dist/delegation/statuslist-manager.js +16 -1
  113. package/dist/delegation/statuslist-manager.js.map +1 -1
  114. package/dist/delegation/vc-jwt-verify.d.ts +61 -0
  115. package/dist/delegation/vc-jwt-verify.d.ts.map +1 -0
  116. package/dist/delegation/vc-jwt-verify.js +131 -0
  117. package/dist/delegation/vc-jwt-verify.js.map +1 -0
  118. package/dist/delegation/vc-verification-checks.d.ts +50 -0
  119. package/dist/delegation/vc-verification-checks.d.ts.map +1 -0
  120. package/dist/delegation/vc-verification-checks.js +212 -0
  121. package/dist/delegation/vc-verification-checks.js.map +1 -0
  122. package/dist/delegation/vc-verifier.d.ts +24 -61
  123. package/dist/delegation/vc-verifier.d.ts.map +1 -1
  124. package/dist/delegation/vc-verifier.js +57 -180
  125. package/dist/delegation/vc-verifier.js.map +1 -1
  126. package/dist/delegation/vc-verifier.types.d.ts +88 -0
  127. package/dist/delegation/vc-verifier.types.d.ts.map +1 -0
  128. package/dist/delegation/vc-verifier.types.js +9 -0
  129. package/dist/delegation/vc-verifier.types.js.map +1 -0
  130. package/dist/index.d.ts +8 -4
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +10 -3
  133. package/dist/index.js.map +1 -1
  134. package/dist/integrations/cheqd/dlr.d.ts +44 -0
  135. package/dist/integrations/cheqd/dlr.d.ts.map +1 -0
  136. package/dist/integrations/cheqd/dlr.js +86 -0
  137. package/dist/integrations/cheqd/dlr.js.map +1 -0
  138. package/dist/integrations/cheqd/index.d.ts +5 -0
  139. package/dist/integrations/cheqd/index.d.ts.map +1 -0
  140. package/dist/integrations/cheqd/index.js +5 -0
  141. package/dist/integrations/cheqd/index.js.map +1 -0
  142. package/dist/integrations/cheqd/linkage.d.ts +20 -0
  143. package/dist/integrations/cheqd/linkage.d.ts.map +1 -0
  144. package/dist/integrations/cheqd/linkage.js +32 -0
  145. package/dist/integrations/cheqd/linkage.js.map +1 -0
  146. package/dist/integrations/cheqd/registrar.d.ts +85 -0
  147. package/dist/integrations/cheqd/registrar.d.ts.map +1 -0
  148. package/dist/integrations/cheqd/registrar.js +304 -0
  149. package/dist/integrations/cheqd/registrar.js.map +1 -0
  150. package/dist/integrations/cheqd/resolver.d.ts +38 -0
  151. package/dist/integrations/cheqd/resolver.d.ts.map +1 -0
  152. package/dist/integrations/cheqd/resolver.js +156 -0
  153. package/dist/integrations/cheqd/resolver.js.map +1 -0
  154. package/dist/middleware/index.d.ts +2 -0
  155. package/dist/middleware/index.d.ts.map +1 -1
  156. package/dist/middleware/index.js +5 -0
  157. package/dist/middleware/index.js.map +1 -1
  158. package/dist/middleware/kya-os-transport.d.ts +2 -1
  159. package/dist/middleware/kya-os-transport.d.ts.map +1 -1
  160. package/dist/middleware/kya-os-transport.js +2 -1
  161. package/dist/middleware/kya-os-transport.js.map +1 -1
  162. package/dist/middleware/with-kya-os-server.d.ts +21 -4
  163. package/dist/middleware/with-kya-os-server.d.ts.map +1 -1
  164. package/dist/middleware/with-kya-os-server.js +4 -0
  165. package/dist/middleware/with-kya-os-server.js.map +1 -1
  166. package/dist/middleware/with-kya-os.config-types.d.ts +139 -0
  167. package/dist/middleware/with-kya-os.config-types.d.ts.map +1 -0
  168. package/dist/middleware/with-kya-os.config-types.js +9 -0
  169. package/dist/middleware/with-kya-os.config-types.js.map +1 -0
  170. package/dist/middleware/with-kya-os.d.ts +10 -238
  171. package/dist/middleware/with-kya-os.d.ts.map +1 -1
  172. package/dist/middleware/with-kya-os.delegation-gate.d.ts +19 -0
  173. package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +1 -0
  174. package/dist/middleware/with-kya-os.delegation-gate.js +175 -0
  175. package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -0
  176. package/dist/middleware/with-kya-os.delegation-verify.d.ts +51 -0
  177. package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -0
  178. package/dist/middleware/with-kya-os.delegation-verify.js +165 -0
  179. package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -0
  180. package/dist/middleware/with-kya-os.deps.d.ts +40 -0
  181. package/dist/middleware/with-kya-os.deps.d.ts.map +1 -0
  182. package/dist/middleware/with-kya-os.deps.js +9 -0
  183. package/dist/middleware/with-kya-os.deps.js.map +1 -0
  184. package/dist/middleware/with-kya-os.grants.d.ts +30 -0
  185. package/dist/middleware/with-kya-os.grants.d.ts.map +1 -0
  186. package/dist/middleware/with-kya-os.grants.js +145 -0
  187. package/dist/middleware/with-kya-os.grants.js.map +1 -0
  188. package/dist/middleware/with-kya-os.helpers.d.ts +24 -0
  189. package/dist/middleware/with-kya-os.helpers.d.ts.map +1 -0
  190. package/dist/middleware/with-kya-os.helpers.js +57 -0
  191. package/dist/middleware/with-kya-os.helpers.js.map +1 -0
  192. package/dist/middleware/with-kya-os.js +65 -703
  193. package/dist/middleware/with-kya-os.js.map +1 -1
  194. package/dist/middleware/with-kya-os.policy-gate.d.ts +16 -0
  195. package/dist/middleware/with-kya-os.policy-gate.d.ts.map +1 -0
  196. package/dist/middleware/with-kya-os.policy-gate.js +98 -0
  197. package/dist/middleware/with-kya-os.policy-gate.js.map +1 -0
  198. package/dist/middleware/with-kya-os.protocol.d.ts +29 -0
  199. package/dist/middleware/with-kya-os.protocol.d.ts.map +1 -0
  200. package/dist/middleware/with-kya-os.protocol.js +121 -0
  201. package/dist/middleware/with-kya-os.protocol.js.map +1 -0
  202. package/dist/middleware/with-kya-os.session.d.ts +32 -0
  203. package/dist/middleware/with-kya-os.session.d.ts.map +1 -0
  204. package/dist/middleware/with-kya-os.session.js +201 -0
  205. package/dist/middleware/with-kya-os.session.js.map +1 -0
  206. package/dist/middleware/with-kya-os.types.d.ts +178 -0
  207. package/dist/middleware/with-kya-os.types.d.ts.map +1 -0
  208. package/dist/middleware/with-kya-os.types.js +13 -0
  209. package/dist/middleware/with-kya-os.types.js.map +1 -0
  210. package/dist/proof/generator.d.ts +21 -0
  211. package/dist/proof/generator.d.ts.map +1 -1
  212. package/dist/proof/generator.js +21 -0
  213. package/dist/proof/generator.js.map +1 -1
  214. package/dist/proof/index.d.ts +1 -1
  215. package/dist/proof/index.d.ts.map +1 -1
  216. package/dist/proof/index.js +1 -1
  217. package/dist/proof/index.js.map +1 -1
  218. package/dist/proof/verifier.d.ts +26 -3
  219. package/dist/proof/verifier.d.ts.map +1 -1
  220. package/dist/proof/verifier.js +54 -24
  221. package/dist/proof/verifier.js.map +1 -1
  222. package/dist/providers/grant-store.d.ts +10 -1
  223. package/dist/providers/grant-store.d.ts.map +1 -1
  224. package/dist/providers/grant-store.js.map +1 -1
  225. package/dist/providers/runtime-fetch.d.ts +8 -0
  226. package/dist/providers/runtime-fetch.d.ts.map +1 -1
  227. package/dist/providers/runtime-fetch.js +17 -0
  228. package/dist/providers/runtime-fetch.js.map +1 -1
  229. package/dist/providers/web-crypto.d.ts.map +1 -1
  230. package/dist/providers/web-crypto.js +15 -7
  231. package/dist/providers/web-crypto.js.map +1 -1
  232. package/dist/session/index.d.ts +1 -0
  233. package/dist/session/index.d.ts.map +1 -1
  234. package/dist/session/index.js +1 -0
  235. package/dist/session/index.js.map +1 -1
  236. package/dist/session/manager.d.ts +17 -6
  237. package/dist/session/manager.d.ts.map +1 -1
  238. package/dist/session/manager.js +16 -26
  239. package/dist/session/manager.js.map +1 -1
  240. package/dist/session/session-store.d.ts +78 -0
  241. package/dist/session/session-store.d.ts.map +1 -0
  242. package/dist/session/session-store.js +79 -0
  243. package/dist/session/session-store.js.map +1 -0
  244. package/dist/types/protocol.d.ts +9 -3
  245. package/dist/types/protocol.d.ts.map +1 -1
  246. package/dist/types/protocol.js.map +1 -1
  247. package/dist/utils/guards.d.ts +2 -0
  248. package/dist/utils/guards.d.ts.map +1 -0
  249. package/dist/utils/guards.js +4 -0
  250. package/dist/utils/guards.js.map +1 -0
  251. package/dist/utils/index.d.ts +3 -0
  252. package/dist/utils/index.d.ts.map +1 -1
  253. package/dist/utils/index.js +3 -0
  254. package/dist/utils/index.js.map +1 -1
  255. package/dist/utils/ip-classifier.d.ts +12 -0
  256. package/dist/utils/ip-classifier.d.ts.map +1 -0
  257. package/dist/utils/ip-classifier.js +153 -0
  258. package/dist/utils/ip-classifier.js.map +1 -0
  259. package/dist/utils/safe-fetch-transports.d.ts +40 -0
  260. package/dist/utils/safe-fetch-transports.d.ts.map +1 -0
  261. package/dist/utils/safe-fetch-transports.js +121 -0
  262. package/dist/utils/safe-fetch-transports.js.map +1 -0
  263. package/dist/utils/safe-fetch-types.d.ts +66 -0
  264. package/dist/utils/safe-fetch-types.d.ts.map +1 -0
  265. package/dist/utils/safe-fetch-types.js +10 -0
  266. package/dist/utils/safe-fetch-types.js.map +1 -0
  267. package/dist/utils/safe-fetch.d.ts +40 -0
  268. package/dist/utils/safe-fetch.d.ts.map +1 -0
  269. package/dist/utils/safe-fetch.js +188 -0
  270. package/dist/utils/safe-fetch.js.map +1 -0
  271. package/dist/utils/statuslist-purpose.d.ts +12 -0
  272. package/dist/utils/statuslist-purpose.d.ts.map +1 -0
  273. package/dist/utils/statuslist-purpose.js +19 -0
  274. package/dist/utils/statuslist-purpose.js.map +1 -0
  275. package/dist/utils/url.d.ts +2 -0
  276. package/dist/utils/url.d.ts.map +1 -0
  277. package/dist/utils/url.js +8 -0
  278. package/dist/utils/url.js.map +1 -0
  279. package/package.json +25 -5
  280. package/schemas/README.md +2 -1
  281. package/schemas/card-delegation-credential.json +239 -0
  282. package/schemas/kya-os-card.schema.json +284 -0
@@ -0,0 +1,304 @@
1
+ import { base64ToBytes, base64urlEncodeFromBytes, bytesToBase64 } from '../../utils/base64.js';
2
+ import { isRecord, stripTrailingSlashes } from '../../utils/index.js';
3
+ export class CheqdDidRegistrarClient {
4
+ registrarUrl;
5
+ fetchProvider;
6
+ headers;
7
+ constructor(options) {
8
+ this.registrarUrl = stripTrailingSlashes(options.registrarUrl);
9
+ this.fetchProvider = options.fetchProvider;
10
+ this.headers = options.headers;
11
+ }
12
+ async createDid(options) {
13
+ const body = {
14
+ didDocument: options.didDocument,
15
+ ...(options.options ? { options: options.options } : {}),
16
+ };
17
+ return this.runClientManagedSecretFlow({
18
+ operation: 'create',
19
+ did: options.didDocument.id,
20
+ path: '/create',
21
+ body,
22
+ signer: options.signer,
23
+ verificationMethodId: options.verificationMethodId,
24
+ });
25
+ }
26
+ async updateDid(options) {
27
+ const body = {
28
+ did: options.did,
29
+ didDocumentOperation: ['setDidDocument'],
30
+ didDocument: [options.didDocument],
31
+ ...(options.options ? { options: options.options } : {}),
32
+ };
33
+ return this.runClientManagedSecretFlow({
34
+ operation: 'update',
35
+ did: options.did,
36
+ path: '/update',
37
+ body,
38
+ signer: options.signer,
39
+ verificationMethodId: options.verificationMethodId,
40
+ });
41
+ }
42
+ async createResource(options) {
43
+ const body = {
44
+ ...options.resource,
45
+ ...(options.options ? { options: options.options } : {}),
46
+ };
47
+ return this.runClientManagedSecretFlow({
48
+ operation: 'create-resource',
49
+ did: options.did,
50
+ path: `/${options.did}/create-resource`,
51
+ body,
52
+ signer: options.signer,
53
+ verificationMethodId: options.verificationMethodId,
54
+ });
55
+ }
56
+ async runClientManagedSecretFlow(options) {
57
+ const requestResponse = await this.post(options.path, options.body);
58
+ if (!requestResponse.ok) {
59
+ return {
60
+ success: false,
61
+ operation: options.operation,
62
+ stage: 'request',
63
+ reason: `Registrar request failed with HTTP ${requestResponse.status}`,
64
+ response: requestResponse.body,
65
+ };
66
+ }
67
+ const jobId = findStringByKey(requestResponse.body, 'jobId');
68
+ const signingRequests = extractSigningRequests(requestResponse.body, options.operation, options.did, options.body, options.verificationMethodId);
69
+ const action = findStringByKey(requestResponse.body, 'action');
70
+ if (isFinished(requestResponse.body)) {
71
+ return {
72
+ success: true,
73
+ operation: options.operation,
74
+ stage: 'complete',
75
+ ...(jobId ? { jobId } : {}),
76
+ response: requestResponse.body,
77
+ };
78
+ }
79
+ if (!jobId) {
80
+ return {
81
+ success: false,
82
+ operation: options.operation,
83
+ stage: 'request',
84
+ action,
85
+ response: requestResponse.body,
86
+ reason: 'Registrar response did not include a jobId',
87
+ };
88
+ }
89
+ if (signingRequests.length === 0) {
90
+ return {
91
+ success: false,
92
+ operation: options.operation,
93
+ stage: 'request',
94
+ jobId,
95
+ action,
96
+ response: requestResponse.body,
97
+ reason: 'Registrar response did not include a serialized payload to sign',
98
+ };
99
+ }
100
+ let signingResponse;
101
+ try {
102
+ signingResponse = (await Promise.all(signingRequests.map(async (request) => flattenSigningResponses(await options.signer(request)).map((response) => ({
103
+ ...response,
104
+ requestId: response.requestId ?? request.requestId,
105
+ }))))).flat();
106
+ }
107
+ catch (error) {
108
+ return {
109
+ success: false,
110
+ operation: options.operation,
111
+ stage: 'sign',
112
+ jobId,
113
+ action,
114
+ response: requestResponse.body,
115
+ reason: `Signing failed: ${error instanceof Error ? error.message : String(error)}`,
116
+ };
117
+ }
118
+ const submitBody = {
119
+ jobId,
120
+ secret: {
121
+ signingResponse: formatSigningResponseForRegistrar(signingResponse),
122
+ },
123
+ };
124
+ const submitResponse = await this.post(options.path, submitBody);
125
+ const success = submitResponse.ok && isFinished(submitResponse.body);
126
+ return {
127
+ success,
128
+ operation: options.operation,
129
+ stage: success ? 'complete' : 'submit',
130
+ jobId,
131
+ action,
132
+ response: submitResponse.body,
133
+ ...(success
134
+ ? {}
135
+ : {
136
+ reason: submitResponse.ok
137
+ ? 'Registrar did not finish the operation after signature submission'
138
+ : `Registrar signature submission failed with HTTP ${submitResponse.status}`,
139
+ }),
140
+ };
141
+ }
142
+ async post(path, body) {
143
+ const response = await this.fetchProvider.fetch(`${this.registrarUrl}${path}`, {
144
+ method: 'POST',
145
+ headers: {
146
+ 'Content-Type': 'application/json',
147
+ ...(await this.resolveHeaders()),
148
+ },
149
+ body: JSON.stringify(body),
150
+ });
151
+ let responseBody;
152
+ try {
153
+ responseBody = await response.json();
154
+ }
155
+ catch {
156
+ responseBody = undefined;
157
+ }
158
+ return {
159
+ ok: response.ok,
160
+ status: response.status,
161
+ body: responseBody,
162
+ };
163
+ }
164
+ async resolveHeaders() {
165
+ if (!this.headers) {
166
+ return {};
167
+ }
168
+ return typeof this.headers === 'function' ? this.headers() : this.headers;
169
+ }
170
+ }
171
+ export function createLocalEd25519CheqdRegistrarSigner(options) {
172
+ return async (request) => {
173
+ const payloadBytes = base64ToBytes(request.serializedPayload);
174
+ const signatureBytes = await options.cryptoProvider.sign(payloadBytes, options.privateKey);
175
+ const signature = options.signatureEncoding === 'base64url'
176
+ ? base64urlEncodeFromBytes(signatureBytes)
177
+ : bytesToBase64(signatureBytes);
178
+ return {
179
+ verificationMethodId: request.verificationMethodId || options.verificationMethodId,
180
+ signature,
181
+ };
182
+ };
183
+ }
184
+ function extractSigningRequests(response, operation, did, requestBody, fallbackVerificationMethodId) {
185
+ const candidates = [];
186
+ collectSigningRequestCandidates(response, candidates);
187
+ const completeCandidates = candidates.filter((candidate) => candidate.serializedPayload);
188
+ if (completeCandidates.length === 0) {
189
+ const serializedPayload = findStringByKey(response, 'serializedPayload');
190
+ if (serializedPayload) {
191
+ completeCandidates.push({
192
+ serializedPayload,
193
+ verificationMethodId: fallbackVerificationMethodId,
194
+ });
195
+ }
196
+ }
197
+ return completeCandidates
198
+ .filter((candidate) => candidate.serializedPayload)
199
+ .map((candidate) => ({
200
+ operation,
201
+ did,
202
+ ...(candidate.requestId ? { requestId: candidate.requestId } : {}),
203
+ verificationMethodId: candidate.verificationMethodId ??
204
+ candidate.kid ??
205
+ fallbackVerificationMethodId ??
206
+ inferVerificationMethodId(requestBody) ??
207
+ '',
208
+ serializedPayload: candidate.serializedPayload,
209
+ algorithm: 'Ed25519',
210
+ encoding: 'base64',
211
+ requestBody,
212
+ }))
213
+ .filter((request) => request.verificationMethodId.length > 0);
214
+ }
215
+ function collectSigningRequestCandidates(value, out, requestId) {
216
+ if (Array.isArray(value)) {
217
+ for (const entry of value) {
218
+ collectSigningRequestCandidates(entry, out);
219
+ }
220
+ return;
221
+ }
222
+ if (!isRecord(value)) {
223
+ return;
224
+ }
225
+ if (typeof value['serializedPayload'] === 'string') {
226
+ out.push({
227
+ ...value,
228
+ ...(requestId ? { requestId } : {}),
229
+ });
230
+ }
231
+ for (const [key, nested] of Object.entries(value)) {
232
+ const nestedRequestId = isRecord(nested) && typeof nested['serializedPayload'] === 'string'
233
+ ? key
234
+ : undefined;
235
+ collectSigningRequestCandidates(nested, out, nestedRequestId);
236
+ }
237
+ }
238
+ function flattenSigningResponses(response) {
239
+ return Array.isArray(response) ? response : [response];
240
+ }
241
+ function formatSigningResponseForRegistrar(responses) {
242
+ const formatted = responses.map(formatSingleSigningResponseForRegistrar);
243
+ if (!responses.some((response) => response.requestId)) {
244
+ return formatted;
245
+ }
246
+ return Object.fromEntries(responses.map((response, index) => [
247
+ response.requestId ?? `signingRequest${index}`,
248
+ formatSingleSigningResponseForRegistrar(response),
249
+ ]));
250
+ }
251
+ function formatSingleSigningResponseForRegistrar(response) {
252
+ return {
253
+ kid: response.verificationMethodId,
254
+ signature: response.signature,
255
+ ...(response.alg ? { alg: response.alg } : {}),
256
+ ...(response.purpose ? { purpose: response.purpose } : {}),
257
+ };
258
+ }
259
+ function findStringByKey(value, key) {
260
+ if (Array.isArray(value)) {
261
+ for (const entry of value) {
262
+ const found = findStringByKey(entry, key);
263
+ if (found) {
264
+ return found;
265
+ }
266
+ }
267
+ return undefined;
268
+ }
269
+ if (!isRecord(value)) {
270
+ return undefined;
271
+ }
272
+ const maybeString = value[key];
273
+ if (typeof maybeString === 'string') {
274
+ return maybeString;
275
+ }
276
+ for (const nested of Object.values(value)) {
277
+ const found = findStringByKey(nested, key);
278
+ if (found) {
279
+ return found;
280
+ }
281
+ }
282
+ return undefined;
283
+ }
284
+ function inferVerificationMethodId(value) {
285
+ if (!isRecord(value)) {
286
+ return undefined;
287
+ }
288
+ const didDocument = value['didDocument'];
289
+ if (isRecord(didDocument)) {
290
+ const verificationMethod = didDocument['verificationMethod'];
291
+ if (Array.isArray(verificationMethod)) {
292
+ const first = verificationMethod[0];
293
+ if (isRecord(first) && typeof first['id'] === 'string') {
294
+ return first['id'];
295
+ }
296
+ }
297
+ }
298
+ return undefined;
299
+ }
300
+ function isFinished(value) {
301
+ const state = findStringByKey(value, 'state');
302
+ return state === 'finished';
303
+ }
304
+ //# sourceMappingURL=registrar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registrar.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/registrar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * DID:cheqd Resolver
3
+ *
4
+ * Resolves did:cheqd DIDs through an explicitly configured resolver endpoint.
5
+ * The resolver accepts both Universal Resolver-style DID Resolution Results
6
+ * (`{ didDocument: ... }`) and raw DID Documents.
7
+ */
8
+ import type { FetchProvider } from '../../providers/base.js';
9
+ import type { DIDResolverFactory } from '../../delegation/did-resolver-registry.js';
10
+ import type { DIDDocument, DIDResolver } from '../../delegation/vc-verifier.js';
11
+ export type DidCheqdNetwork = 'mainnet' | 'testnet';
12
+ export interface ParsedDidCheqd {
13
+ network: DidCheqdNetwork;
14
+ uniqueId: string;
15
+ }
16
+ export interface DidCheqdResolverOptions {
17
+ resolverUrl: string;
18
+ cacheTtl?: number;
19
+ headers?: Record<string, string> | (() => Promise<Record<string, string>>);
20
+ }
21
+ export declare function isDidCheqd(did: string): boolean;
22
+ export declare function parseDidCheqd(did: string): ParsedDidCheqd | null;
23
+ export declare class DidCheqdResolver implements DIDResolver {
24
+ private readonly fetchProvider;
25
+ private readonly resolverUrl;
26
+ private readonly cache;
27
+ private readonly cacheTtl;
28
+ private readonly headers?;
29
+ constructor(fetchProvider: FetchProvider, options: DidCheqdResolverOptions);
30
+ resolve(did: string): Promise<DIDDocument | null>;
31
+ clearCache(): void;
32
+ clearCacheEntry(did: string): void;
33
+ private resolveHeaders;
34
+ }
35
+ export declare function createDidCheqdResolver(fetchProvider: FetchProvider, options: DidCheqdResolverOptions): DIDResolver;
36
+ export declare function cheqdResolver(options: DidCheqdResolverOptions): DIDResolverFactory;
37
+ export declare function didCheqdToResolverUrl(did: string, resolverUrl: string): string;
38
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/integrations/cheqd/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,iCAAiC,CAAC;AAIpG,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC5E;AAMD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAehE;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4D;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmE;gBAEhF,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB;IAQpE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyDvD,UAAU,IAAI,IAAI;IAIlB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;YAIpB,cAAc;CAM7B;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,uBAAuB,GAC/B,WAAW,CAEb;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,kBAAkB,CAElF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAS9E"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * DID:cheqd Resolver
3
+ *
4
+ * Resolves did:cheqd DIDs through an explicitly configured resolver endpoint.
5
+ * The resolver accepts both Universal Resolver-style DID Resolution Results
6
+ * (`{ didDocument: ... }`) and raw DID Documents.
7
+ */
8
+ import { logger } from '../../logging/index.js';
9
+ import { isRecord, stripTrailingSlashes } from '../../utils/index.js';
10
+ export function isDidCheqd(did) {
11
+ return did.startsWith('did:cheqd:');
12
+ }
13
+ export function parseDidCheqd(did) {
14
+ const match = /^did:cheqd:(mainnet|testnet):([^/?#]+)$/.exec(did);
15
+ if (!match) {
16
+ return null;
17
+ }
18
+ const uniqueId = match[2] ?? '';
19
+ if (uniqueId.length === 0) {
20
+ return null;
21
+ }
22
+ return {
23
+ network: match[1],
24
+ uniqueId,
25
+ };
26
+ }
27
+ export class DidCheqdResolver {
28
+ fetchProvider;
29
+ resolverUrl;
30
+ cache;
31
+ cacheTtl;
32
+ headers;
33
+ constructor(fetchProvider, options) {
34
+ this.fetchProvider = fetchProvider;
35
+ this.resolverUrl = options.resolverUrl;
36
+ this.cacheTtl = options.cacheTtl ?? 300_000;
37
+ this.headers = options.headers;
38
+ this.cache = new Map();
39
+ }
40
+ async resolve(did) {
41
+ if (!parseDidCheqd(did)) {
42
+ return null;
43
+ }
44
+ const cached = this.cache.get(did);
45
+ if (cached && Date.now() < cached.expiresAt) {
46
+ return cached.document;
47
+ }
48
+ try {
49
+ const response = await this.fetchProvider.fetch(didCheqdToResolverUrl(did, this.resolverUrl), {
50
+ method: 'GET',
51
+ headers: await this.resolveHeaders(),
52
+ });
53
+ if (!response.ok) {
54
+ logger.warn(`[DidCheqdResolver] HTTP ${response.status} resolving ${did}`);
55
+ return null;
56
+ }
57
+ let json;
58
+ try {
59
+ json = await response.json();
60
+ }
61
+ catch {
62
+ logger.warn(`[DidCheqdResolver] Invalid JSON resolving ${did}`);
63
+ return null;
64
+ }
65
+ const document = extractDidDocument(json);
66
+ if (!document || !isValidDIDDocument(document)) {
67
+ logger.warn(`[DidCheqdResolver] Invalid DID Document resolving ${did}`);
68
+ return null;
69
+ }
70
+ if (document.id !== did) {
71
+ logger.warn(`[DidCheqdResolver] DID Document id mismatch: expected ${did}, got ${document.id}`);
72
+ return null;
73
+ }
74
+ this.cache.set(did, {
75
+ document,
76
+ expiresAt: Date.now() + this.cacheTtl,
77
+ });
78
+ return document;
79
+ }
80
+ catch (error) {
81
+ logger.warn(`[DidCheqdResolver] Error resolving ${did}: ${error instanceof Error ? error.message : 'Unknown error'}`);
82
+ return null;
83
+ }
84
+ }
85
+ clearCache() {
86
+ this.cache.clear();
87
+ }
88
+ clearCacheEntry(did) {
89
+ this.cache.delete(did);
90
+ }
91
+ async resolveHeaders() {
92
+ if (!this.headers) {
93
+ return undefined;
94
+ }
95
+ return typeof this.headers === 'function' ? this.headers() : this.headers;
96
+ }
97
+ }
98
+ export function createDidCheqdResolver(fetchProvider, options) {
99
+ return new DidCheqdResolver(fetchProvider, options);
100
+ }
101
+ export function cheqdResolver(options) {
102
+ return (fetchProvider) => createDidCheqdResolver(fetchProvider, options);
103
+ }
104
+ export function didCheqdToResolverUrl(did, resolverUrl) {
105
+ const base = stripTrailingSlashes(resolverUrl);
106
+ if (base.includes('{did}')) {
107
+ return base.replace('{did}', did);
108
+ }
109
+ if (base.endsWith('/1.0/identifiers')) {
110
+ return `${base}/${did}`;
111
+ }
112
+ return `${base}/1.0/identifiers/${did}`;
113
+ }
114
+ function extractDidDocument(value) {
115
+ if (isRecord(value) && value['didDocument'] !== undefined) {
116
+ return value.didDocument;
117
+ }
118
+ return value;
119
+ }
120
+ function isValidDIDDocument(value) {
121
+ if (!isRecord(value)) {
122
+ return false;
123
+ }
124
+ if (typeof value['id'] !== 'string' || value['id'].length === 0) {
125
+ return false;
126
+ }
127
+ if (value['alsoKnownAs'] !== undefined && !isStringArray(value['alsoKnownAs'])) {
128
+ return false;
129
+ }
130
+ if (value['verificationMethod'] !== undefined) {
131
+ if (!Array.isArray(value['verificationMethod'])) {
132
+ return false;
133
+ }
134
+ for (const method of value['verificationMethod']) {
135
+ if (!isValidVerificationMethod(method)) {
136
+ return false;
137
+ }
138
+ }
139
+ }
140
+ return true;
141
+ }
142
+ function isValidVerificationMethod(value) {
143
+ if (!isRecord(value)) {
144
+ return false;
145
+ }
146
+ return (typeof value['id'] === 'string' &&
147
+ value['id'].length > 0 &&
148
+ typeof value['type'] === 'string' &&
149
+ value['type'].length > 0 &&
150
+ typeof value['controller'] === 'string' &&
151
+ value['controller'].length > 0);
152
+ }
153
+ function isStringArray(value) {
154
+ return Array.isArray(value) && value.every((entry) => typeof entry === 'string');
155
+ }
156
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/resolver.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,6 @@
9
9
  export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsServer, } from './with-kya-os.js';
10
10
  export { withKyaOs, generateIdentity, type WithKyaOsOptions, } from './with-kya-os-server.js';
11
11
  export { createKyaOsTransport, type Transport, type JSONRPCMessage, } from './kya-os-transport.js';
12
+ export { card, CardBuilder, type CardBuilderInit, type AccountableToOptions, type VcInput, } from '../card/builder.js';
13
+ export { withKyaOsCard, requireProof, readCardProof, type KyaOsCardMount, type ServerJsonLike, type DidDocumentLike, type ProofGuard, type ProofGateResult, type ProofGateError, type ProofGateCode, type RequireProofOptions, type MinProofLevel, } from '../card/middleware.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,IAAI,EACJ,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAC"}
@@ -9,4 +9,9 @@
9
9
  export { createKyaOsMiddleware, } from './with-kya-os.js';
10
10
  export { withKyaOs, generateIdentity, } from './with-kya-os-server.js';
11
11
  export { createKyaOsTransport, } from './kya-os-transport.js';
12
+ // Entity Card DevX surface — the 10-minute adoption path. The fluent `card()` builder and the
13
+ // `withKyaOsCard` / `requireProof` wrappers hide the RFC 9421/9449/8785 machinery behind
14
+ // ergonomics (see `src/card/builder.ts` + `src/card/middleware.ts`).
15
+ export { card, CardBuilder, } from '../card/builder.js';
16
+ export { withKyaOsCard, requireProof, readCardProof, } from '../card/middleware.js';
12
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,GAQtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,GAQtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAE/B,8FAA8F;AAC9F,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,IAAI,EACJ,WAAW,GAIZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,GAUd,MAAM,uBAAuB,CAAC"}
@@ -6,7 +6,8 @@
6
6
  * private SDK internals accessed.
7
7
  *
8
8
  * The McpServer never knows this wrapper exists. It sees a normal transport.
9
- * The connected client sees normal MCP responses with an added `_meta.proof`.
9
+ * The connected client sees normal MCP responses with the detached proof added
10
+ * under the namespaced `_meta` key `org.kya-os/proof` (see KYA_OS_PROOF_META_KEY).
10
11
  *
11
12
  * How it works:
12
13
  * 1. Incoming `tools/call` requests are captured (by id) to record tool
@@ -1 +1 @@
1
- {"version":3,"file":"kya-os-transport.d.ts","sourceRoot":"","sources":["../../src/middleware/kya-os-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAG1E,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAarD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,MAAM,EAAmC,GACjD,SAAS,CAwGX"}
1
+ {"version":3,"file":"kya-os-transport.d.ts","sourceRoot":"","sources":["../../src/middleware/kya-os-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAG1E,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAarD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,MAAM,EAAmC,GACjD,SAAS,CAwGX"}
@@ -6,7 +6,8 @@
6
6
  * private SDK internals accessed.
7
7
  *
8
8
  * The McpServer never knows this wrapper exists. It sees a normal transport.
9
- * The connected client sees normal MCP responses with an added `_meta.proof`.
9
+ * The connected client sees normal MCP responses with the detached proof added
10
+ * under the namespaced `_meta` key `org.kya-os/proof` (see KYA_OS_PROOF_META_KEY).
10
11
  *
11
12
  * How it works:
12
13
  * 1. Incoming `tools/call` requests are captured (by id) to record tool
@@ -1 +1 @@
1
- {"version":3,"file":"kya-os-transport.js","sourceRoot":"","sources":["../../src/middleware/kya-os-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kya-os-transport.js","sourceRoot":"","sources":["../../src/middleware/kya-os-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAyB7C;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAgB,EAChB,KAAsB,EACtB,UAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAElD,yDAAyD;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEhD,MAAM,OAAO,GAAc;QACzB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;QAE1B,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,SAAS,CAAC,OAAoD;YAChE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;QAC5B,CAAC;QACD,IAAI,SAAS;YACX,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,CAAC,OAAiC;YAC3C,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,OAAO,CAAC,OAA2C;YACrD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QAED,qDAAqD;QACrD,wDAAwD;QACxD,KAAK,CAAC,IAAI,CAAC,OAAuB;YAChC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5D,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgC,CAAC;oBAC3D,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;wBACpC,MAAM,OAAO,GAAqB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;wBACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;4BAChC,OAAO,GAAG;gCACR,GAAG,OAAO;gCACV,MAAM,EAAE,OAAO;6BAChB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;wBACxD,IAAI,EAAE,IAAI,CAAC,QAAQ;wBACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgC,CAAC;oBAC3D,IAAI,SAAS,EAAE,CAAC;wBACd,SAAS,CAAC,KAAK,GAAG;4BAChB,UAAU,EAAE,gDAAgD;yBAC7D,CAAC;wBACF,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;IAEF,iEAAiE;IACjE,uDAAuD;IACvD,6EAA6E;IAC7E,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,EAAE,CAAC;QACtB,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,KAAK,CAAC,SAAS,GAAG,CAAC,OAAuB,EAAE,EAAE;YAC5C,IACE,OAAO,CAAC,MAAM,KAAK,YAAY;gBAC/B,OAAO,CAAC,EAAE,KAAK,SAAS,EACxB,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAEV,CAAC;gBACd,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC;gBAC9B,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;wBACtB,QAAQ;wBACR,IAAI,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -11,6 +11,8 @@
11
11
  * await server.connect(transport); // transport is transparently wrapped
12
12
  */
13
13
  import type { CryptoProvider } from "../providers/base.js";
14
+ import type { GrantStore } from "../providers/grant-store.js";
15
+ import type { SessionConfig } from "../session/manager.js";
14
16
  import { type KyaOsIdentityConfig, type KyaOsDelegationConfig, type KyaOsMiddleware } from "./with-kya-os.js";
15
17
  import { type Transport } from "./kya-os-transport.js";
16
18
  export interface WithKyaOsOptions {
@@ -18,18 +20,33 @@ export interface WithKyaOsOptions {
18
20
  crypto: CryptoProvider;
19
21
  /** Identity config — auto-generated if omitted */
20
22
  identity?: KyaOsIdentityConfig;
21
- /** Session configuration */
22
- session?: {
23
- sessionTtlMinutes?: number;
24
- };
23
+ /**
24
+ * Session configuration. Accepts the full {@link SessionConfig} (minus the
25
+ * `nonceCache`, which is set at the top level), so an optional durable
26
+ * `sessionStore` can be injected for cross-instance session continuity.
27
+ */
28
+ session?: Omit<SessionConfig, "nonceCache">;
25
29
  /** Auto-create sessions for non-KYA-OS clients (default: true) */
26
30
  autoSession?: boolean;
27
31
  /** Attach proofs to all tool responses (default: true) */
28
32
  proofAllTools?: boolean;
33
+ /**
34
+ * Also emit the proof under the legacy bare `_meta.proof` key (default: true),
35
+ * in addition to the namespaced `org.kya-os/proof`. Set `false` for a clean
36
+ * single-key view once clients read the namespaced key. Passed through to the
37
+ * middleware.
38
+ */
39
+ emitLegacyProofKey?: boolean;
29
40
  /** Tools to skip proof generation for */
30
41
  excludeTools?: string[];
31
42
  /** Delegation verification config */
32
43
  delegation?: KyaOsDelegationConfig;
44
+ /**
45
+ * Durable store for approved grants, enabling the no-paste retry across
46
+ * instances / restarts. Defaults to in-memory; inject a durable
47
+ * {@link GrantStore} for production. Passed through to the middleware.
48
+ */
49
+ grantStore?: GrantStore;
33
50
  /**
34
51
  * How the KYA-OS protocol tool is exposed on the server.
35
52
  * - "tool" (default): auto-register `_kyaos`