@kya-os/mcp-i 0.1.0-alpha.3.9 → 1.2.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 (328) hide show
  1. package/README.md +350 -213
  2. package/dist/149.js +1 -0
  3. package/dist/189.js +1 -0
  4. package/dist/261.js +1 -0
  5. package/dist/28.js +1 -0
  6. package/dist/295.js +1 -0
  7. package/dist/460.js +1 -0
  8. package/dist/570.js +1 -0
  9. package/dist/634.js +1 -0
  10. package/dist/647.js +1 -0
  11. package/dist/67.js +1 -0
  12. package/dist/739.js +1 -0
  13. package/dist/742.js +1 -0
  14. package/dist/904.js +1 -0
  15. package/dist/938.js +1 -0
  16. package/dist/auth/api-key.d.ts +16 -0
  17. package/dist/auth/api-key.js +82 -0
  18. package/dist/auth/jwt.d.ts +43 -0
  19. package/dist/auth/jwt.js +51 -0
  20. package/dist/auth/oauth/factory.d.ts +12 -0
  21. package/dist/auth/oauth/factory.js +36 -0
  22. package/dist/auth/oauth/index.d.ts +5 -0
  23. package/dist/auth/oauth/index.js +27 -0
  24. package/dist/auth/oauth/providers/proxy-provider.d.ts +13 -0
  25. package/dist/auth/oauth/providers/proxy-provider.js +159 -0
  26. package/dist/auth/oauth/router.d.ts +4 -0
  27. package/dist/auth/oauth/router.js +294 -0
  28. package/dist/auth/oauth/storage/memory-storage.d.ts +12 -0
  29. package/dist/auth/oauth/storage/memory-storage.js +40 -0
  30. package/dist/auth/oauth/types.d.ts +112 -0
  31. package/dist/cache/__tests__/cloudflare-kv-nonce-cache.test.d.ts +4 -0
  32. package/dist/cache/__tests__/cloudflare-kv-nonce-cache.test.js +176 -0
  33. package/dist/cache/__tests__/concurrency.test.d.ts +5 -0
  34. package/dist/cache/__tests__/concurrency.test.js +300 -0
  35. package/dist/cache/__tests__/dynamodb-nonce-cache.test.d.ts +4 -0
  36. package/dist/cache/__tests__/dynamodb-nonce-cache.test.js +176 -0
  37. package/dist/cache/__tests__/memory-nonce-cache.test.d.ts +4 -0
  38. package/dist/cache/__tests__/memory-nonce-cache.test.js +132 -0
  39. package/dist/cache/__tests__/nonce-cache-factory-simple.test.d.ts +4 -0
  40. package/dist/cache/__tests__/nonce-cache-factory-simple.test.js +133 -0
  41. package/dist/cache/__tests__/nonce-cache-factory.test.d.ts +4 -0
  42. package/dist/cache/__tests__/nonce-cache-factory.test.js +252 -0
  43. package/dist/cache/__tests__/redis-nonce-cache.test.d.ts +4 -0
  44. package/dist/cache/__tests__/redis-nonce-cache.test.js +95 -0
  45. package/dist/cache/cloudflare-kv-nonce-cache.d.ts +14 -0
  46. package/dist/cache/cloudflare-kv-nonce-cache.js +93 -0
  47. package/dist/cache/dynamodb-nonce-cache.d.ts +15 -0
  48. package/dist/cache/dynamodb-nonce-cache.js +92 -0
  49. package/dist/cache/index.d.ts +16 -0
  50. package/dist/cache/index.js +32 -0
  51. package/dist/cache/memory-nonce-cache.d.ts +44 -0
  52. package/dist/cache/memory-nonce-cache.js +105 -0
  53. package/dist/cache/nonce-cache-factory.d.ts +20 -0
  54. package/dist/cache/nonce-cache-factory.js +208 -0
  55. package/dist/cache/redis-nonce-cache.d.ts +14 -0
  56. package/dist/cache/redis-nonce-cache.js +53 -0
  57. package/dist/compiler/compiler-context.d.ts +23 -0
  58. package/dist/compiler/compiler-context.js +24 -0
  59. package/dist/compiler/config/constants.d.ts +41 -0
  60. package/dist/compiler/config/constants.js +45 -0
  61. package/dist/compiler/config/index.d.ts +252 -0
  62. package/dist/compiler/config/index.js +15 -0
  63. package/dist/compiler/config/injection.d.ts +26 -0
  64. package/dist/compiler/config/injection.js +58 -0
  65. package/dist/compiler/config/schemas/experimental/index.d.ts +91 -0
  66. package/dist/compiler/config/schemas/experimental/index.js +16 -0
  67. package/dist/compiler/config/schemas/experimental/oauth.d.ts +74 -0
  68. package/dist/compiler/config/schemas/experimental/oauth.js +25 -0
  69. package/dist/compiler/config/schemas/index.d.ts +6 -0
  70. package/dist/compiler/config/schemas/index.js +17 -0
  71. package/dist/compiler/config/schemas/paths.d.ts +9 -0
  72. package/dist/compiler/config/schemas/paths.js +12 -0
  73. package/dist/compiler/config/schemas/transport/http.d.ts +82 -0
  74. package/dist/compiler/config/schemas/transport/http.js +33 -0
  75. package/dist/compiler/config/schemas/transport/stdio.d.ts +9 -0
  76. package/dist/compiler/config/schemas/transport/stdio.js +15 -0
  77. package/dist/compiler/config/schemas/webpack.d.ts +3 -0
  78. package/dist/compiler/config/schemas/webpack.js +15 -0
  79. package/dist/compiler/config/types.d.ts +1 -0
  80. package/dist/compiler/config/types.js +2 -0
  81. package/dist/compiler/config/utils.d.ts +20 -0
  82. package/dist/compiler/config/utils.js +36 -0
  83. package/dist/compiler/generate-env-code.d.ts +1 -0
  84. package/dist/compiler/generate-env-code.js +8 -0
  85. package/dist/compiler/generate-import-code.d.ts +1 -0
  86. package/dist/compiler/generate-import-code.js +24 -0
  87. package/dist/compiler/get-webpack-config/get-entries.d.ts +3 -0
  88. package/dist/compiler/get-webpack-config/get-entries.js +29 -0
  89. package/dist/compiler/get-webpack-config/get-externals.d.ts +7 -0
  90. package/dist/compiler/get-webpack-config/get-externals.js +88 -0
  91. package/dist/compiler/get-webpack-config/get-injected-variables.d.ts +8 -0
  92. package/dist/compiler/get-webpack-config/get-injected-variables.js +25 -0
  93. package/dist/compiler/get-webpack-config/index.d.ts +4 -0
  94. package/dist/compiler/get-webpack-config/index.js +101 -0
  95. package/dist/compiler/get-webpack-config/plugins.d.ts +8 -0
  96. package/dist/compiler/get-webpack-config/plugins.js +132 -0
  97. package/dist/compiler/get-webpack-config/resolve-tsconfig-paths.d.ts +9 -0
  98. package/dist/compiler/get-webpack-config/resolve-tsconfig-paths.js +40 -0
  99. package/dist/compiler/index.d.ts +6 -0
  100. package/dist/compiler/index.js +194 -0
  101. package/dist/compiler/on-first-build.d.ts +3 -0
  102. package/dist/compiler/on-first-build.js +58 -0
  103. package/dist/compiler/parse-xmcp-config.d.ts +9 -0
  104. package/dist/compiler/parse-xmcp-config.js +155 -0
  105. package/dist/compiler/start-http-server.d.ts +1 -0
  106. package/dist/compiler/start-http-server.js +34 -0
  107. package/dist/index.d.ts +12 -0
  108. package/dist/index.js +38 -0
  109. package/dist/index.js.LICENSE.txt +49 -0
  110. package/dist/runtime/__tests__/audit.test.d.ts +4 -0
  111. package/dist/runtime/__tests__/audit.test.js +328 -0
  112. package/dist/runtime/__tests__/identity.test.d.ts +4 -0
  113. package/dist/runtime/__tests__/identity.test.js +164 -0
  114. package/dist/runtime/__tests__/mcpi-runtime.test.d.ts +4 -0
  115. package/dist/runtime/__tests__/mcpi-runtime.test.js +372 -0
  116. package/dist/runtime/__tests__/proof.test.d.ts +4 -0
  117. package/dist/runtime/__tests__/proof.test.js +302 -0
  118. package/dist/runtime/__tests__/session.test.d.ts +4 -0
  119. package/dist/runtime/__tests__/session.test.js +254 -0
  120. package/dist/runtime/__tests__/well-known.test.d.ts +4 -0
  121. package/dist/runtime/__tests__/well-known.test.js +312 -0
  122. package/dist/runtime/adapter-express.js +2 -0
  123. package/dist/runtime/adapter-express.js.LICENSE.txt +252 -0
  124. package/dist/runtime/adapter-nextjs.js +2 -0
  125. package/dist/runtime/adapter-nextjs.js.LICENSE.txt +53 -0
  126. package/dist/runtime/adapters/express/index.d.ts +2 -0
  127. package/dist/runtime/adapters/express/index.js +48 -0
  128. package/dist/runtime/adapters/nextjs/index.d.ts +8 -0
  129. package/dist/runtime/adapters/nextjs/index.js +18 -0
  130. package/dist/runtime/audit.d.ts +93 -0
  131. package/dist/runtime/audit.js +212 -0
  132. package/dist/runtime/debug.d.ts +118 -0
  133. package/dist/runtime/debug.js +612 -0
  134. package/dist/runtime/delegation-hooks.d.ts +85 -0
  135. package/dist/runtime/delegation-hooks.js +116 -0
  136. package/dist/runtime/demo.d.ts +71 -0
  137. package/dist/runtime/demo.js +135 -0
  138. package/dist/runtime/headers.d.ts +1 -0
  139. package/dist/runtime/headers.js +9 -0
  140. package/dist/runtime/http.js +2 -0
  141. package/dist/runtime/http.js.LICENSE.txt +252 -0
  142. package/dist/runtime/identity.d.ts +105 -0
  143. package/dist/runtime/identity.js +232 -0
  144. package/dist/runtime/index.d.ts +16 -0
  145. package/dist/runtime/index.js +56 -0
  146. package/dist/runtime/mcpi-runtime.d.ts +164 -0
  147. package/dist/runtime/mcpi-runtime.js +352 -0
  148. package/dist/runtime/proof.d.ts +87 -0
  149. package/dist/runtime/proof.js +223 -0
  150. package/dist/runtime/session.d.ts +88 -0
  151. package/dist/runtime/session.js +216 -0
  152. package/dist/runtime/stdio.js +2 -0
  153. package/dist/runtime/stdio.js.LICENSE.txt +1 -0
  154. package/dist/runtime/templates/home.d.ts +2 -0
  155. package/dist/runtime/templates/home.js +50 -0
  156. package/dist/runtime/transports/http/base-streamable-http.d.ts +25 -0
  157. package/dist/runtime/transports/http/base-streamable-http.js +16 -0
  158. package/dist/runtime/transports/http/http-context.d.ts +9 -0
  159. package/dist/runtime/transports/http/http-context.js +8 -0
  160. package/dist/runtime/transports/http/index.js +55 -0
  161. package/dist/runtime/transports/http/setup-cors.d.ts +4 -0
  162. package/dist/runtime/transports/http/setup-cors.js +24 -0
  163. package/dist/runtime/transports/http/stateless-streamable-http.d.ts +39 -0
  164. package/dist/runtime/transports/http/stateless-streamable-http.js +331 -0
  165. package/dist/runtime/transports/stdio/index.d.ts +1 -0
  166. package/dist/runtime/transports/stdio/index.js +51 -0
  167. package/dist/runtime/utils/server.d.ts +42 -0
  168. package/dist/runtime/utils/server.js +39 -0
  169. package/dist/runtime/utils/tools.d.ts +8 -0
  170. package/dist/runtime/utils/tools.js +115 -0
  171. package/dist/runtime/verifier-middleware.d.ts +76 -0
  172. package/dist/runtime/verifier-middleware.js +322 -0
  173. package/dist/runtime/well-known.d.ts +151 -0
  174. package/dist/runtime/well-known.js +258 -0
  175. package/dist/storage/config.d.ts +28 -0
  176. package/dist/storage/config.js +79 -0
  177. package/dist/storage/delegation.d.ts +59 -0
  178. package/dist/storage/delegation.js +130 -0
  179. package/dist/storage/merkle-verifier.d.ts +84 -0
  180. package/dist/storage/merkle-verifier.js +261 -0
  181. package/dist/test/__tests__/nonce-cache-integration.test.d.ts +1 -0
  182. package/dist/test/__tests__/nonce-cache-integration.test.js +116 -0
  183. package/dist/test/__tests__/nonce-cache.test.d.ts +1 -0
  184. package/dist/test/__tests__/nonce-cache.test.js +122 -0
  185. package/dist/test/__tests__/runtime-integration.test.d.ts +4 -0
  186. package/dist/test/__tests__/runtime-integration.test.js +192 -0
  187. package/dist/test/__tests__/test-infrastructure.test.d.ts +4 -0
  188. package/dist/test/__tests__/test-infrastructure.test.js +178 -0
  189. package/dist/test/deterministic-keys.d.ts +31 -0
  190. package/dist/test/deterministic-keys.js +108 -0
  191. package/dist/test/examples/test-usage-example.d.ts +140 -0
  192. package/dist/test/examples/test-usage-example.js +175 -0
  193. package/dist/test/index.d.ts +11 -0
  194. package/dist/test/index.js +27 -0
  195. package/dist/test/local-verification.d.ts +28 -0
  196. package/dist/test/local-verification.js +342 -0
  197. package/dist/test/mock-identity-provider.d.ts +96 -0
  198. package/dist/test/mock-identity-provider.js +243 -0
  199. package/dist/test/runtime-integration.d.ts +63 -0
  200. package/dist/test/runtime-integration.js +140 -0
  201. package/dist/test/test-environment.d.ts +26 -0
  202. package/dist/test/test-environment.js +50 -0
  203. package/dist/types/declarations.d.ts +1 -0
  204. package/dist/types/declarations.js +6 -0
  205. package/dist/types/middleware.d.ts +2 -0
  206. package/dist/types/middleware.js +2 -0
  207. package/dist/types/tool.d.ts +80 -0
  208. package/dist/types/tool.js +2 -0
  209. package/dist/utils/cli-icons.d.ts +3 -0
  210. package/dist/utils/cli-icons.js +7 -0
  211. package/dist/utils/constants.d.ts +6 -0
  212. package/dist/utils/constants.js +13 -0
  213. package/dist/utils/context.d.ts +33 -0
  214. package/dist/utils/context.js +58 -0
  215. package/dist/utils/file-watcher.d.ts +19 -0
  216. package/dist/utils/file-watcher.js +49 -0
  217. package/dist/utils/fs-utils.d.ts +2 -0
  218. package/dist/utils/fs-utils.js +22 -0
  219. package/dist/utils/path-validation.d.ts +3 -0
  220. package/dist/utils/path-validation.js +56 -0
  221. package/dist/utils/spawn-process.d.ts +9 -0
  222. package/dist/utils/spawn-process.js +50 -0
  223. package/dist/utils/subscribable.d.ts +12 -0
  224. package/dist/utils/subscribable.js +44 -0
  225. package/package.json +91 -77
  226. package/dist/cjs/auto.js +0 -16
  227. package/dist/cjs/cli-mode.d.ts +0 -16
  228. package/dist/cjs/cli-mode.js +0 -32
  229. package/dist/cjs/crypto.d.ts +0 -16
  230. package/dist/cjs/crypto.js +0 -212
  231. package/dist/cjs/dev-helper.d.ts +0 -3
  232. package/dist/cjs/dev-helper.js +0 -46
  233. package/dist/cjs/encrypted-storage.d.ts +0 -11
  234. package/dist/cjs/encrypted-storage.js +0 -73
  235. package/dist/cjs/index.d.ts +0 -56
  236. package/dist/cjs/index.js +0 -727
  237. package/dist/cjs/logger.d.ts +0 -32
  238. package/dist/cjs/logger.js +0 -85
  239. package/dist/cjs/nextjs.d.ts +0 -10
  240. package/dist/cjs/nextjs.js +0 -83
  241. package/dist/cjs/platform-info.d.ts +0 -36
  242. package/dist/cjs/platform-info.js +0 -274
  243. package/dist/cjs/polling.d.ts +0 -13
  244. package/dist/cjs/polling.js +0 -52
  245. package/dist/cjs/registry/index.d.ts +0 -12
  246. package/dist/cjs/registry/index.js +0 -56
  247. package/dist/cjs/registry/knowthat.d.ts +0 -17
  248. package/dist/cjs/registry/knowthat.js +0 -173
  249. package/dist/cjs/rotation.d.ts +0 -35
  250. package/dist/cjs/rotation.js +0 -102
  251. package/dist/cjs/storage.d.ts +0 -41
  252. package/dist/cjs/storage.js +0 -163
  253. package/dist/cjs/transport.d.ts +0 -35
  254. package/dist/cjs/transport.js +0 -300
  255. package/dist/cjs/types.d.ts +0 -206
  256. package/dist/cjs/vercel-adapter.d.ts +0 -8
  257. package/dist/cjs/vercel-adapter.js +0 -67
  258. package/dist/esm/auto.d.ts +0 -13
  259. package/dist/esm/auto.d.ts.map +0 -1
  260. package/dist/esm/auto.js +0 -30
  261. package/dist/esm/auto.js.map +0 -1
  262. package/dist/esm/cli-mode.d.ts +0 -52
  263. package/dist/esm/cli-mode.d.ts.map +0 -1
  264. package/dist/esm/cli-mode.js +0 -59
  265. package/dist/esm/cli-mode.js.map +0 -1
  266. package/dist/esm/crypto.d.ts +0 -51
  267. package/dist/esm/crypto.d.ts.map +0 -1
  268. package/dist/esm/crypto.js +0 -230
  269. package/dist/esm/crypto.js.map +0 -1
  270. package/dist/esm/dev-helper.d.ts +0 -15
  271. package/dist/esm/dev-helper.d.ts.map +0 -1
  272. package/dist/esm/dev-helper.js +0 -63
  273. package/dist/esm/dev-helper.js.map +0 -1
  274. package/dist/esm/encrypted-storage.d.ts +0 -19
  275. package/dist/esm/encrypted-storage.d.ts.map +0 -1
  276. package/dist/esm/encrypted-storage.js +0 -48
  277. package/dist/esm/encrypted-storage.js.map +0 -1
  278. package/dist/esm/index.d.ts +0 -129
  279. package/dist/esm/index.d.ts.map +0 -1
  280. package/dist/esm/index.js +0 -853
  281. package/dist/esm/index.js.map +0 -1
  282. package/dist/esm/logger.d.ts +0 -46
  283. package/dist/esm/logger.d.ts.map +0 -1
  284. package/dist/esm/logger.js +0 -100
  285. package/dist/esm/logger.js.map +0 -1
  286. package/dist/esm/nextjs.d.ts +0 -22
  287. package/dist/esm/nextjs.d.ts.map +0 -1
  288. package/dist/esm/nextjs.js +0 -83
  289. package/dist/esm/nextjs.js.map +0 -1
  290. package/dist/esm/package.json +0 -1
  291. package/dist/esm/platform-info.d.ts +0 -74
  292. package/dist/esm/platform-info.d.ts.map +0 -1
  293. package/dist/esm/platform-info.js +0 -293
  294. package/dist/esm/platform-info.js.map +0 -1
  295. package/dist/esm/polling.d.ts +0 -29
  296. package/dist/esm/polling.d.ts.map +0 -1
  297. package/dist/esm/polling.js +0 -76
  298. package/dist/esm/polling.js.map +0 -1
  299. package/dist/esm/registry/index.d.ts +0 -43
  300. package/dist/esm/registry/index.d.ts.map +0 -1
  301. package/dist/esm/registry/index.js +0 -89
  302. package/dist/esm/registry/index.js.map +0 -1
  303. package/dist/esm/registry/knowthat.d.ts +0 -44
  304. package/dist/esm/registry/knowthat.d.ts.map +0 -1
  305. package/dist/esm/registry/knowthat.js +0 -220
  306. package/dist/esm/registry/knowthat.js.map +0 -1
  307. package/dist/esm/rotation.d.ts +0 -57
  308. package/dist/esm/rotation.d.ts.map +0 -1
  309. package/dist/esm/rotation.js +0 -133
  310. package/dist/esm/rotation.js.map +0 -1
  311. package/dist/esm/storage.d.ts +0 -65
  312. package/dist/esm/storage.d.ts.map +0 -1
  313. package/dist/esm/storage.js +0 -160
  314. package/dist/esm/storage.js.map +0 -1
  315. package/dist/esm/transport.d.ts +0 -52
  316. package/dist/esm/transport.d.ts.map +0 -1
  317. package/dist/esm/transport.js +0 -340
  318. package/dist/esm/transport.js.map +0 -1
  319. package/dist/esm/types.d.ts +0 -293
  320. package/dist/esm/types.d.ts.map +0 -1
  321. package/dist/esm/types.js +0 -5
  322. package/dist/esm/types.js.map +0 -1
  323. package/dist/esm/vercel-adapter.d.ts +0 -26
  324. package/dist/esm/vercel-adapter.d.ts.map +0 -1
  325. package/dist/esm/vercel-adapter.js +0 -80
  326. package/dist/esm/vercel-adapter.js.map +0 -1
  327. /package/dist/{cjs → auth/oauth}/types.js +0 -0
  328. /package/dist/{cjs/auto.d.ts → runtime/transports/http/index.d.ts} +0 -0
@@ -0,0 +1,9 @@
1
+ import { ChildProcess } from "child_process";
2
+ /**
3
+ * Pass in a ChildProcess, and this will spawn a watchdog process that
4
+ * will make sure it exits if the parent does, thus preventing any
5
+ * dangling detached zombie processes.
6
+ *
7
+ * If the child ends before the parent, then the watchdog will terminate.
8
+ */
9
+ export declare const watchdog: (child: ChildProcess) => ChildProcess;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // Based on https://www.npmjs.com/package/foreground-child
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.watchdog = void 0;
5
+ // this spawns a child process that listens for SIGHUP when the
6
+ // parent process exits, and after 200ms, sends a SIGKILL to the
7
+ // child, in case it did not terminate.
8
+ const child_process_1 = require("child_process");
9
+ const watchdogCode = String.raw `
10
+ const pid = parseInt(process.argv[1], 10)
11
+ process.title = 'node (foreground-child watchdog pid=' + pid + ')'
12
+ if (!isNaN(pid)) {
13
+ let barked = false
14
+ // keepalive
15
+ const interval = setInterval(() => {}, 60000)
16
+ const bark = () => {
17
+ clearInterval(interval)
18
+ if (barked) return
19
+ barked = true
20
+ process.removeListener('SIGHUP', bark)
21
+ setTimeout(() => {
22
+ try {
23
+ process.kill(pid, 'SIGKILL')
24
+ setTimeout(() => process.exit(), 200)
25
+ } catch (_) {}
26
+ }, 500)
27
+ })
28
+ process.on('SIGHUP', bark)
29
+ }
30
+ `;
31
+ /**
32
+ * Pass in a ChildProcess, and this will spawn a watchdog process that
33
+ * will make sure it exits if the parent does, thus preventing any
34
+ * dangling detached zombie processes.
35
+ *
36
+ * If the child ends before the parent, then the watchdog will terminate.
37
+ */
38
+ const watchdog = (child) => {
39
+ let dogExited = false;
40
+ const dog = (0, child_process_1.spawn)(process.execPath, ["-e", watchdogCode, String(child.pid)], {
41
+ stdio: "ignore",
42
+ });
43
+ dog.on("exit", () => (dogExited = true));
44
+ child.on("exit", () => {
45
+ if (!dogExited)
46
+ dog.kill("SIGKILL");
47
+ });
48
+ return dog;
49
+ };
50
+ exports.watchdog = watchdog;
@@ -0,0 +1,12 @@
1
+ type AnyFunction = (...args: any[]) => any;
2
+ export interface Subscribable<T extends AnyFunction = AnyFunction> {
3
+ addCallback: (callback: T, id?: string) => string;
4
+ removeCallback: (id: string | T) => void;
5
+ getCallbacks: () => T[];
6
+ getCallback: (id: string) => T;
7
+ getCallbackIds: () => string[];
8
+ clearCallbacks: () => void;
9
+ runCallbacks: T;
10
+ }
11
+ export declare const subscribable: <T extends AnyFunction = AnyFunction>() => Subscribable<T>;
12
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subscribable = void 0;
4
+ const subscribable = () => {
5
+ const callbacks = {};
6
+ const addCallback = (callback, id) => {
7
+ const _id = id || crypto.randomUUID();
8
+ callbacks[_id] = callback;
9
+ return _id;
10
+ };
11
+ const removeCallback = (id) => {
12
+ if (typeof id === "function") {
13
+ const key = Object.keys(callbacks).find((k) => callbacks[k] === id);
14
+ if (key)
15
+ delete callbacks[key];
16
+ return;
17
+ }
18
+ delete callbacks[id];
19
+ };
20
+ const getCallbacks = () => Object.values(callbacks);
21
+ const getCallback = (id) => callbacks[id];
22
+ const clearCallbacks = () => {
23
+ Object.keys(callbacks).forEach((id) => {
24
+ removeCallback(id);
25
+ });
26
+ };
27
+ const runCallbacks = (...params) => {
28
+ let response = undefined;
29
+ Object.values(callbacks).forEach((callback) => {
30
+ response = callback(...params);
31
+ });
32
+ return response;
33
+ };
34
+ return {
35
+ addCallback,
36
+ removeCallback,
37
+ getCallback,
38
+ getCallbacks,
39
+ getCallbackIds: () => Object.keys(callbacks),
40
+ clearCallbacks,
41
+ runCallbacks: runCallbacks,
42
+ };
43
+ };
44
+ exports.subscribable = subscribable;
package/package.json CHANGED
@@ -1,103 +1,117 @@
1
1
  {
2
2
  "name": "@kya-os/mcp-i",
3
- "version": "0.1.0-alpha.3.9",
4
- "description": "COMING SOON:Production-ready MCP Identity with automatic registration, key rotation, and optimized performance",
5
- "main": "dist/cjs/index.js",
6
- "module": "dist/esm/index.js",
7
- "types": "dist/cjs/index.d.ts",
3
+ "version": "1.2.0",
4
+ "description": "The TypeScript MCP framework with identity features built-in",
5
+ "type": "commonjs",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
- "import": "./dist/esm/index.js",
11
- "require": "./dist/cjs/index.js",
12
- "types": "./dist/cjs/index.d.ts"
10
+ "require": "./dist/index.js",
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
13
  },
14
- "./auto": {
15
- "import": "./dist/esm/auto.js",
16
- "require": "./dist/cjs/auto.js",
17
- "types": "./dist/cjs/auto.d.ts"
14
+ "./platforms": {
15
+ "require": "./dist/identity/platforms.js",
16
+ "import": "./dist/identity/platforms.js",
17
+ "types": "./dist/identity/platforms.d.ts"
18
18
  },
19
- "./registry": {
20
- "import": "./dist/esm/registry/index.js",
21
- "require": "./dist/cjs/registry/index.js",
22
- "types": "./dist/cjs/registry/index.d.ts"
19
+ "./test": {
20
+ "require": "./dist/test/index.js",
21
+ "import": "./dist/test/index.js",
22
+ "types": "./dist/test/index.d.ts"
23
23
  },
24
- "./nextjs": {
25
- "import": "./dist/esm/nextjs.js",
26
- "require": "./dist/cjs/nextjs.js",
27
- "types": "./dist/cjs/nextjs.d.ts"
28
- },
29
- "./vercel": {
30
- "import": "./dist/esm/vercel-adapter.js",
31
- "require": "./dist/cjs/vercel-adapter.js",
32
- "types": "./dist/cjs/vercel-adapter.d.ts"
33
- },
34
- "./cli-internal": {
35
- "import": "./dist/esm/cli-mode.js",
36
- "require": "./dist/cjs/cli-mode.js",
37
- "types": "./dist/cjs/cli-mode.d.ts"
38
- },
39
- "./package.json": "./package.json"
24
+ "./headers": {
25
+ "require": "./dist/runtime/headers.js",
26
+ "import": "./dist/runtime/headers.js",
27
+ "types": "./dist/runtime/headers.d.ts"
28
+ }
40
29
  },
41
30
  "files": [
42
- "dist",
43
- "README.md",
44
- "LICENSE"
31
+ "dist/**/*",
32
+ "README.md"
45
33
  ],
46
34
  "scripts": {
47
- "build": "npm run build:cjs && npm run build:esm && npm run fix:esm && npm run add:esm-marker",
48
- "build:cjs": "tsc -p tsconfig.prod.json",
49
- "build:esm": "tsc -p tsconfig.esm.json",
50
- "fix:esm": "node scripts/fix-esm-imports.js",
51
- "add:esm-marker": "echo '{\"type\":\"module\"}' > dist/esm/package.json",
52
- "build:dev": "tsc",
53
- "clean": "rm -rf dist",
35
+ "dev": "cross-env NODE_ENV=development tsx --watch --tsconfig ./bundler.tsconfig.json ./bundler/index.ts",
36
+ "build": "cross-env NODE_ENV=production tsx --tsconfig ./bundler.tsconfig.json ./bundler/index.ts && node scripts/fix-esm-imports.js",
54
37
  "test": "vitest",
55
- "test:watch": "vitest watch",
56
- "test:coverage": "vitest run --coverage",
57
- "prepublishOnly": "npm run clean && npm run build",
58
- "size": "npm pack --dry-run && echo 'Bundled size:' && tar -tzf *.tgz | wc -c"
38
+ "lint": "eslint src/**/*.ts",
39
+ "type-check": "tsc --noEmit"
59
40
  },
60
41
  "keywords": [
61
- "mcp",
62
42
  "mcp-i",
63
- "model-context-protocol",
43
+ "mcp",
64
44
  "identity",
65
- "agent",
66
- "ai-agent",
67
- "cryptographic-identity",
68
45
  "did",
69
- "decentralized-identity",
70
- "authentication",
71
- "ed25519"
46
+ "model-context-protocol"
72
47
  ],
73
- "repository": {
74
- "type": "git",
75
- "url": "https://github.com/kya-os/mcp-i.git"
48
+ "dependencies": {
49
+ "@kya-os/contracts": "workspace:*",
50
+ "@modelcontextprotocol/inspector": "^0.16.6",
51
+ "@modelcontextprotocol/sdk": "^1.11.4",
52
+ "@swc/core": "^1.11.24",
53
+ "@types/express": "^5.0.1",
54
+ "@types/webpack-node-externals": "^3.0.4",
55
+ "@vercel/mcp-adapter": "^0.11.1",
56
+ "axios": "^1.12.0",
57
+ "chalk": "^5.2.0",
58
+ "chokidar": "^3.6.0",
59
+ "clean-webpack-plugin": "^4.0.0",
60
+ "commander": "^10.0.0",
61
+ "content-type": "^1.0.5",
62
+ "cross-env": "^7.0.3",
63
+ "del": "^7.0.0",
64
+ "dotenv": "^16.5.0",
65
+ "esbuild": "^0.25.0",
66
+ "execa": "^9.6.0",
67
+ "express": "^4.18.0",
68
+ "fork-ts-checker-webpack-plugin": "^8.0.0",
69
+ "fs-extra": "^11.3.0",
70
+ "glob": "^11.0.2",
71
+ "handlebars": "^4.7.7",
72
+ "jose": "^5.2.0",
73
+ "json5": "^2.2.3",
74
+ "jsonwebtoken": "^9.0.2",
75
+ "memfs": "^4.17.2",
76
+ "raw-body": "^3.0.0",
77
+ "swc-loader": "^0.2.6",
78
+ "tsx": "^4.19.4",
79
+ "webpack": "^5.99.7",
80
+ "webpack-node-externals": "^3.0.0",
81
+ "webpack-virtual-modules": "^0.5.0"
76
82
  },
77
- "bugs": {
78
- "url": "https://github.com/kya-os/mcp-i/issues"
83
+ "devDependencies": {
84
+ "@aws-sdk/client-dynamodb": "^3.0.0",
85
+ "@types/content-type": "^1.1.9",
86
+ "@types/fs-extra": "^11.0.4",
87
+ "@types/jsonwebtoken": "^9.0.9",
88
+ "@types/node": "^20.0.0",
89
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
90
+ "@typescript-eslint/parser": "^6.0.0",
91
+ "copy-webpack-plugin": "^12.0.2",
92
+ "eslint": "^8.0.0",
93
+ "node-loader": "^1.0.1",
94
+ "redis": "^4.0.0",
95
+ "ts-loader": "^9.4.2",
96
+ "typescript": "^5.3.0",
97
+ "vitest": "^1.0.0",
98
+ "zod": "^3.22.4"
79
99
  },
80
- "homepage": "https://github.com/kya-os/mcp-i#readme",
81
- "author": "Dylan Hobbs <dylan.hobbs@vouched.id>",
82
- "license": "MIT",
83
- "dependencies": {
84
- "@noble/ed25519": "^2.1.0"
100
+ "engines": {
101
+ "node": ">=20.0.0"
85
102
  },
86
103
  "peerDependencies": {
87
- "axios": "^1.6.0"
104
+ "swc-loader": "^0.2.6",
105
+ "zod": "^3.22.4"
88
106
  },
89
- "peerDependenciesMeta": {
90
- "axios": {
91
- "optional": true
92
- }
107
+ "author": "MCP-I Team",
108
+ "license": "MIT",
109
+ "repository": {
110
+ "type": "git",
111
+ "url": "git+https://github.com/modelcontextprotocol-identity/mcp-i.git"
93
112
  },
94
- "devDependencies": {
95
- "@types/node": "^20.0.0",
96
- "@vitest/coverage-v8": "^2.0.0",
97
- "typescript": "^5.0.0",
98
- "vitest": "^2.0.0"
113
+ "bugs": {
114
+ "url": "https://github.com/modelcontextprotocol-identity/mcp-i/issues"
99
115
  },
100
- "engines": {
101
- "node": ">=14.0.0"
102
- }
116
+ "homepage": "https://github.com/modelcontextprotocol-identity/mcp-i#readme"
103
117
  }
package/dist/cjs/auto.js DELETED
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("./index");
4
- const logger_1 = require("./logger");
5
- (async () => {
6
- try {
7
- await (0, index_1.enableMCPIdentity)();
8
- }
9
- catch (error) {
10
- const logger = (0, logger_1.getLogger)();
11
- logger.error('[MCP-I] Failed to auto-initialize:', error);
12
- if (error.stack) {
13
- logger.debug('[MCP-I] Error stack:', error.stack);
14
- }
15
- }
16
- })();
@@ -1,16 +0,0 @@
1
- import { MCPIdentityOptions, MCPIdentityProgressCallback } from './types.js';
2
- import { MCPIdentity } from './index.js';
3
- interface MCPIdentityCLIOptions extends Omit<MCPIdentityOptions, 'logLevel'> {
4
- logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent';
5
- onProgress?: MCPIdentityProgressCallback;
6
- }
7
- export declare function enableMCPIdentityCLI(options?: MCPIdentityCLIOptions): Promise<{
8
- identity: MCPIdentity;
9
- metadata: {
10
- isNewIdentity: boolean;
11
- did: string;
12
- claimUrl?: string;
13
- registryUrl: string;
14
- };
15
- }>;
16
- export type { MCPIdentityProgressEvent, MCPIdentityProgressCallback } from './types.js';
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enableMCPIdentityCLI = enableMCPIdentityCLI;
4
- const index_js_1 = require("./index.js");
5
- async function enableMCPIdentityCLI(options) {
6
- let isNewIdentity = false;
7
- let capturedClaimUrl;
8
- const wrappedProgress = (event) => {
9
- if (event.stage === 'complete' && event.data?.claimUrl) {
10
- capturedClaimUrl = event.data.claimUrl;
11
- }
12
- if (event.stage === 'generating_keys') {
13
- isNewIdentity = true;
14
- }
15
- options?.onProgress?.(event);
16
- };
17
- const identity = await (0, index_js_1.enableMCPIdentity)({
18
- ...options,
19
- logLevel: options?.logLevel || 'silent',
20
- onProgress: wrappedProgress
21
- });
22
- const did = identity.did;
23
- return {
24
- identity,
25
- metadata: {
26
- isNewIdentity,
27
- did,
28
- claimUrl: capturedClaimUrl,
29
- registryUrl: 'https://knowthat.ai/agents/' + did.split(':').pop()
30
- }
31
- };
32
- }
@@ -1,16 +0,0 @@
1
- export interface PrecomputedKeyPair {
2
- publicKey: string;
3
- privateKey: string;
4
- publicKeyBytes?: Uint8Array;
5
- privateKeyBytes?: Uint8Array;
6
- }
7
- export declare function generateKeyPair(): Promise<PrecomputedKeyPair>;
8
- export declare function sign(message: string | Buffer, privateKeyBase64: string): Promise<string>;
9
- export declare function verify(message: string | Buffer, signatureBase64: string, publicKeyBase64: string): Promise<boolean>;
10
- export declare function generateNonce(length?: number): Promise<string>;
11
- export declare function generateNonceSync(length?: number): string;
12
- export declare function constantTimeEqual(a: string, b: string): boolean;
13
- export declare function publicKeyToDid(publicKeyBase64: string): string;
14
- export declare function encrypt(data: string, password: string): Promise<string>;
15
- export declare function decrypt(encryptedData: string, password: string): Promise<string>;
16
- export declare function clearCache(): void;
@@ -1,212 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.generateKeyPair = generateKeyPair;
37
- exports.sign = sign;
38
- exports.verify = verify;
39
- exports.generateNonce = generateNonce;
40
- exports.generateNonceSync = generateNonceSync;
41
- exports.constantTimeEqual = constantTimeEqual;
42
- exports.publicKeyToDid = publicKeyToDid;
43
- exports.encrypt = encrypt;
44
- exports.decrypt = decrypt;
45
- exports.clearCache = clearCache;
46
- let ed25519 = null;
47
- let cryptoModule = null;
48
- const signatureCache = new Map();
49
- const MAX_CACHE_SIZE = 100;
50
- async function loadEd25519() {
51
- if (!ed25519) {
52
- ed25519 = await Promise.resolve().then(() => __importStar(require('@noble/ed25519')));
53
- }
54
- return ed25519;
55
- }
56
- async function loadCrypto() {
57
- if (!cryptoModule) {
58
- cryptoModule = await Promise.resolve().then(() => __importStar(require('crypto')));
59
- }
60
- return cryptoModule;
61
- }
62
- async function generateKeyPair() {
63
- const ed = await loadEd25519();
64
- const privateKeyBytes = ed.utils.randomPrivateKey();
65
- const publicKeyBytes = await ed.getPublicKeyAsync(privateKeyBytes);
66
- const publicKey = Buffer.from(publicKeyBytes).toString('base64');
67
- const privateKey = Buffer.from(privateKeyBytes).toString('base64');
68
- return {
69
- publicKey,
70
- privateKey,
71
- publicKeyBytes,
72
- privateKeyBytes
73
- };
74
- }
75
- async function sign(message, privateKeyBase64) {
76
- const messageStr = typeof message === 'string' ? message : message.toString('base64');
77
- const cacheKey = `${privateKeyBase64}:${messageStr}`;
78
- const cached = signatureCache.get(cacheKey);
79
- if (cached) {
80
- return cached;
81
- }
82
- const ed = await loadEd25519();
83
- const messageBuffer = typeof message === 'string'
84
- ? Buffer.from(message, 'utf-8')
85
- : message;
86
- const privateKey = Buffer.from(privateKeyBase64, 'base64');
87
- const signature = await ed.signAsync(messageBuffer, privateKey);
88
- const signatureBase64 = Buffer.from(signature).toString('base64');
89
- if (signatureCache.size >= MAX_CACHE_SIZE) {
90
- const firstKey = signatureCache.keys().next().value;
91
- if (firstKey) {
92
- signatureCache.delete(firstKey);
93
- }
94
- }
95
- signatureCache.set(cacheKey, signatureBase64);
96
- return signatureBase64;
97
- }
98
- async function verify(message, signatureBase64, publicKeyBase64) {
99
- try {
100
- const ed = await loadEd25519();
101
- const messageBuffer = typeof message === 'string'
102
- ? Buffer.from(message, 'utf-8')
103
- : message;
104
- const signature = Buffer.from(signatureBase64, 'base64');
105
- const publicKey = Buffer.from(publicKeyBase64, 'base64');
106
- return await ed.verifyAsync(signature, messageBuffer, publicKey);
107
- }
108
- catch {
109
- return false;
110
- }
111
- }
112
- async function generateNonce(length = 32) {
113
- const crypto = await loadCrypto();
114
- return crypto.randomBytes(length).toString('hex');
115
- }
116
- let cachedCrypto = null;
117
- function generateNonceSync(length = 32) {
118
- if (typeof globalThis.crypto !== 'undefined' && globalThis.crypto.getRandomValues) {
119
- const bytes = new Uint8Array(length);
120
- globalThis.crypto.getRandomValues(bytes);
121
- return Buffer.from(bytes).toString('hex');
122
- }
123
- else {
124
- if (!cachedCrypto) {
125
- const hex = '0123456789abcdef';
126
- let output = '';
127
- for (let i = 0; i < length * 2; i++) {
128
- output += hex[Math.floor(Math.random() * 16)];
129
- }
130
- console.warn('Using Math.random for nonce generation - not cryptographically secure!');
131
- return output;
132
- }
133
- return cachedCrypto.randomBytes(length).toString('hex');
134
- }
135
- }
136
- if (typeof process !== 'undefined' && process.versions && process.versions.node) {
137
- loadCrypto().then(crypto => {
138
- cachedCrypto = crypto;
139
- }).catch(() => {
140
- });
141
- }
142
- function constantTimeEqual(a, b) {
143
- if (a.length !== b.length) {
144
- return false;
145
- }
146
- let result = 0;
147
- for (let i = 0; i < a.length; i++) {
148
- result |= a.charCodeAt(i) ^ b.charCodeAt(i);
149
- }
150
- return result === 0;
151
- }
152
- function publicKeyToDid(publicKeyBase64) {
153
- const publicKey = Buffer.from(publicKeyBase64, 'base64');
154
- const multicodec = Buffer.from([0xed, 0x01]);
155
- const multikey = Buffer.concat([multicodec, publicKey]);
156
- return `did:key:z${multikey.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')}`;
157
- }
158
- async function encrypt(data, password) {
159
- const encoder = new TextEncoder();
160
- const salt = new Uint8Array(16);
161
- globalThis.crypto.getRandomValues(salt);
162
- const keyMaterial = await globalThis.crypto.subtle.importKey('raw', encoder.encode(password), 'PBKDF2', false, ['deriveKey']);
163
- const key = await globalThis.crypto.subtle.deriveKey({
164
- name: 'PBKDF2',
165
- salt,
166
- iterations: 100000,
167
- hash: 'SHA-256'
168
- }, keyMaterial, { name: 'AES-GCM', length: 256 }, false, ['encrypt']);
169
- const iv = new Uint8Array(12);
170
- globalThis.crypto.getRandomValues(iv);
171
- const encrypted = await globalThis.crypto.subtle.encrypt({ name: 'AES-GCM', iv }, key, encoder.encode(data));
172
- const combined = new Uint8Array(salt.length + iv.length + encrypted.byteLength);
173
- combined.set(salt);
174
- combined.set(iv, salt.length);
175
- combined.set(new Uint8Array(encrypted), salt.length + iv.length);
176
- return 'enc:' + Buffer.from(combined).toString('base64');
177
- }
178
- async function decrypt(encryptedData, password) {
179
- let dataToDecrypt = encryptedData;
180
- if (encryptedData.startsWith('enc:')) {
181
- dataToDecrypt = encryptedData.slice(4);
182
- }
183
- if (!dataToDecrypt || dataToDecrypt.length < 44) {
184
- return encryptedData;
185
- }
186
- const encoder = new TextEncoder();
187
- const decoder = new TextDecoder();
188
- try {
189
- const combined = Buffer.from(dataToDecrypt, 'base64');
190
- if (combined.length < 29) {
191
- return encryptedData;
192
- }
193
- const salt = combined.slice(0, 16);
194
- const iv = combined.slice(16, 28);
195
- const encrypted = combined.slice(28);
196
- const keyMaterial = await globalThis.crypto.subtle.importKey('raw', encoder.encode(password), 'PBKDF2', false, ['deriveKey']);
197
- const key = await globalThis.crypto.subtle.deriveKey({
198
- name: 'PBKDF2',
199
- salt: new Uint8Array(salt),
200
- iterations: 100000,
201
- hash: 'SHA-256'
202
- }, keyMaterial, { name: 'AES-GCM', length: 256 }, false, ['decrypt']);
203
- const decrypted = await globalThis.crypto.subtle.decrypt({ name: 'AES-GCM', iv: new Uint8Array(iv) }, key, new Uint8Array(encrypted));
204
- return decoder.decode(decrypted);
205
- }
206
- catch (error) {
207
- throw new Error('Failed to decrypt data: invalid password or corrupted data');
208
- }
209
- }
210
- function clearCache() {
211
- signatureCache.clear();
212
- }
@@ -1,3 +0,0 @@
1
- import { MCPIdentity } from './index';
2
- export declare function initWithDevExperience(options?: any): Promise<MCPIdentity>;
3
- export declare function showAgentStatus(identity: MCPIdentity): void;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initWithDevExperience = initWithDevExperience;
4
- exports.showAgentStatus = showAgentStatus;
5
- const index_1 = require("./index");
6
- const logger_1 = require("./logger");
7
- async function initWithDevExperience(options = {}) {
8
- const logger = (0, logger_1.getLogger)();
9
- if (process.env.NODE_ENV === 'development' && !options.mode) {
10
- options.mode = 'development';
11
- logger.info('🔧 Development mode detected - agents will be created as drafts');
12
- }
13
- if (!options.name && !process.env.MCP_SERVER_NAME) {
14
- options.name = 'Development MCP Server';
15
- logger.info('💡 Tip: Provide a name in options for better agent identification');
16
- }
17
- if (!options.storage) {
18
- logger.info('💡 Tip: Use storage: "file" for persistent identity across restarts');
19
- }
20
- const identity = await index_1.MCPIdentity.init(options);
21
- logger.info('✨ MCP Identity initialized successfully!');
22
- logger.info(`🆔 DID: ${identity.did}`);
23
- const { claimUrl } = await identity.requestEditAccess();
24
- logger.info(`🔗 Claim your agent: ${claimUrl}`);
25
- logger.info('💡 Your MCP server responses are now automatically signed with your agent identity');
26
- return identity;
27
- }
28
- function showAgentStatus(identity) {
29
- const logger = (0, logger_1.getLogger)();
30
- const capabilities = identity.getCapabilities();
31
- logger.info('📊 Agent Status:');
32
- logger.info(` DID: ${identity.did}`);
33
- logger.info(` Conformance Level: ${capabilities.conformanceLevel}`);
34
- logger.info(` Registry: ${capabilities.registry || 'knowthat.ai'}`);
35
- logger.info(` Handshake Supported: ${capabilities.handshakeSupported}`);
36
- const directories = identity.getDirectories();
37
- if (directories === 'none') {
38
- logger.info('📋 Directories: Not listing on any directories');
39
- }
40
- else if (directories === 'verified') {
41
- logger.info('📋 Directories: Listing on all verified directories');
42
- }
43
- else if (Array.isArray(directories)) {
44
- logger.info(`📋 Directories: ${directories.join(', ')}`);
45
- }
46
- }