@continuumdao/continuum-node-sdk 1.2.14 → 1.2.16

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 (301) hide show
  1. package/dist/core/agent/cron-jobs.d.ts +7 -7
  2. package/dist/core/agent/cron-jobs.d.ts.map +1 -1
  3. package/dist/core/agent/cron-jobs.js +6 -6
  4. package/dist/core/agent/cron-jobs.js.map +1 -1
  5. package/dist/core/agent/environment-variables.d.ts +2 -2
  6. package/dist/core/agent/environment-variables.d.ts.map +1 -1
  7. package/dist/core/agent/environment-variables.js +2 -2
  8. package/dist/core/agent/environment-variables.js.map +1 -1
  9. package/dist/core/agent/mcp-servers-catalog.d.ts +1 -12
  10. package/dist/core/agent/mcp-servers-catalog.d.ts.map +1 -1
  11. package/dist/core/agent/mcp-servers-catalog.js +4 -67
  12. package/dist/core/agent/mcp-servers-catalog.js.map +1 -1
  13. package/dist/core/agent/mcp-servers.d.ts +4 -4
  14. package/dist/core/agent/mcp-servers.d.ts.map +1 -1
  15. package/dist/core/agent/mcp-servers.js +4 -4
  16. package/dist/core/agent/mcp-servers.js.map +1 -1
  17. package/dist/core/agent/skills.d.ts +3 -3
  18. package/dist/core/agent/skills.d.ts.map +1 -1
  19. package/dist/core/agent/skills.js +3 -3
  20. package/dist/core/agent/skills.js.map +1 -1
  21. package/dist/core/agent/webhooks.d.ts +8 -8
  22. package/dist/core/agent/webhooks.d.ts.map +1 -1
  23. package/dist/core/agent/webhooks.js +4 -4
  24. package/dist/core/agent/webhooks.js.map +1 -1
  25. package/dist/core/groups.d.ts +3 -3
  26. package/dist/core/groups.d.ts.map +1 -1
  27. package/dist/core/groups.js +3 -3
  28. package/dist/core/groups.js.map +1 -1
  29. package/dist/core/keygen-messaging.d.ts +2 -2
  30. package/dist/core/keygen-messaging.d.ts.map +1 -1
  31. package/dist/core/keygen-messaging.js +2 -2
  32. package/dist/core/keygen-messaging.js.map +1 -1
  33. package/dist/core/keygen.d.ts +4 -4
  34. package/dist/core/keygen.d.ts.map +1 -1
  35. package/dist/core/keygen.js +4 -4
  36. package/dist/core/keygen.js.map +1 -1
  37. package/dist/core/management-signer.d.ts +8 -8
  38. package/dist/core/management-signer.d.ts.map +1 -1
  39. package/dist/core/management-signer.js +24 -24
  40. package/dist/core/management-signer.js.map +1 -1
  41. package/dist/core/registry/address-book.d.ts +3 -3
  42. package/dist/core/registry/address-book.d.ts.map +1 -1
  43. package/dist/core/registry/address-book.js +3 -3
  44. package/dist/core/registry/address-book.js.map +1 -1
  45. package/dist/core/registry/networks.d.ts +3 -3
  46. package/dist/core/registry/networks.d.ts.map +1 -1
  47. package/dist/core/registry/networks.js +3 -3
  48. package/dist/core/registry/networks.js.map +1 -1
  49. package/dist/core/registry/tokens.d.ts +3 -3
  50. package/dist/core/registry/tokens.d.ts.map +1 -1
  51. package/dist/core/registry/tokens.js +3 -3
  52. package/dist/core/registry/tokens.js.map +1 -1
  53. package/dist/core/signing-flow.d.ts +9 -0
  54. package/dist/core/signing-flow.d.ts.map +1 -0
  55. package/dist/core/signing-flow.js +139 -0
  56. package/dist/core/signing-flow.js.map +1 -0
  57. package/dist/data/mpc-keys.d.ts +8 -0
  58. package/dist/data/mpc-keys.d.ts.map +1 -0
  59. package/dist/data/mpc-keys.js +38 -0
  60. package/dist/data/mpc-keys.js.map +1 -0
  61. package/dist/detops/general.d.ts +11 -0
  62. package/dist/detops/general.d.ts.map +1 -0
  63. package/dist/detops/general.js +34 -0
  64. package/dist/detops/general.js.map +1 -0
  65. package/dist/detops/group-actions.d.ts +71 -0
  66. package/dist/detops/group-actions.d.ts.map +1 -0
  67. package/dist/detops/group-actions.js +360 -0
  68. package/dist/detops/group-actions.js.map +1 -0
  69. package/dist/detops/groups.d.ts +33 -0
  70. package/dist/detops/groups.d.ts.map +1 -0
  71. package/dist/detops/groups.js +223 -0
  72. package/dist/detops/groups.js.map +1 -0
  73. package/dist/detops/keygen.d.ts +72 -0
  74. package/dist/detops/keygen.d.ts.map +1 -0
  75. package/dist/detops/keygen.js +245 -0
  76. package/dist/detops/keygen.js.map +1 -0
  77. package/dist/detops/management-keys.d.ts +44 -0
  78. package/dist/detops/management-keys.d.ts.map +1 -0
  79. package/dist/detops/management-keys.js +216 -0
  80. package/dist/detops/management-keys.js.map +1 -0
  81. package/dist/detops/management-signer.d.ts +129 -0
  82. package/dist/detops/management-signer.d.ts.map +1 -0
  83. package/dist/detops/management-signer.js +619 -0
  84. package/dist/detops/management-signer.js.map +1 -0
  85. package/dist/detops/management-signing.d.ts +11 -0
  86. package/dist/detops/management-signing.d.ts.map +1 -0
  87. package/dist/detops/management-signing.js +131 -0
  88. package/dist/detops/management-signing.js.map +1 -0
  89. package/dist/detops/mpc/broadcast-sign-result.d.ts +9 -0
  90. package/dist/detops/mpc/broadcast-sign-result.d.ts.map +1 -0
  91. package/dist/detops/mpc/broadcast-sign-result.js +147 -0
  92. package/dist/detops/mpc/broadcast-sign-result.js.map +1 -0
  93. package/dist/detops/mpc/bump-sign-result.d.ts +25 -0
  94. package/dist/detops/mpc/bump-sign-result.d.ts.map +1 -0
  95. package/dist/detops/mpc/bump-sign-result.js +314 -0
  96. package/dist/detops/mpc/bump-sign-result.js.map +1 -0
  97. package/dist/detops/mpc/client.d.ts +15 -0
  98. package/dist/detops/mpc/client.d.ts.map +1 -0
  99. package/dist/detops/mpc/client.js +62 -0
  100. package/dist/detops/mpc/client.js.map +1 -0
  101. package/dist/detops/mpc/compose-request.d.ts +6 -0
  102. package/dist/detops/mpc/compose-request.d.ts.map +1 -0
  103. package/dist/detops/mpc/compose-request.js +33 -0
  104. package/dist/detops/mpc/compose-request.js.map +1 -0
  105. package/dist/detops/mpc/context.d.ts +11 -0
  106. package/dist/detops/mpc/context.d.ts.map +1 -0
  107. package/dist/detops/mpc/context.js +43 -0
  108. package/dist/detops/mpc/context.js.map +1 -0
  109. package/dist/detops/mpc/forge-request.d.ts +6 -0
  110. package/dist/detops/mpc/forge-request.d.ts.map +1 -0
  111. package/dist/detops/mpc/forge-request.js +46 -0
  112. package/dist/detops/mpc/forge-request.js.map +1 -0
  113. package/dist/detops/mpc/gas-preflight.d.ts +25 -0
  114. package/dist/detops/mpc/gas-preflight.d.ts.map +1 -0
  115. package/dist/detops/mpc/gas-preflight.js +101 -0
  116. package/dist/detops/mpc/gas-preflight.js.map +1 -0
  117. package/dist/detops/mpc/list-ready.d.ts +10 -0
  118. package/dist/detops/mpc/list-ready.d.ts.map +1 -0
  119. package/dist/detops/mpc/list-ready.js +48 -0
  120. package/dist/detops/mpc/list-ready.js.map +1 -0
  121. package/dist/detops/mpc/management-post-sig.d.ts +11 -0
  122. package/dist/detops/mpc/management-post-sig.d.ts.map +1 -0
  123. package/dist/detops/mpc/management-post-sig.js +20 -0
  124. package/dist/detops/mpc/management-post-sig.js.map +1 -0
  125. package/dist/detops/mpc/mpa-top-up.d.ts +18 -0
  126. package/dist/detops/mpc/mpa-top-up.d.ts.map +1 -0
  127. package/dist/detops/mpc/mpa-top-up.js +213 -0
  128. package/dist/detops/mpc/mpa-top-up.js.map +1 -0
  129. package/dist/detops/mpc/register-keygen.d.ts +6 -0
  130. package/dist/detops/mpc/register-keygen.d.ts.map +1 -0
  131. package/dist/detops/mpc/register-keygen.js +41 -0
  132. package/dist/detops/mpc/register-keygen.js.map +1 -0
  133. package/dist/detops/mpc/schemas.d.ts +251 -0
  134. package/dist/detops/mpc/schemas.d.ts.map +1 -0
  135. package/dist/detops/mpc/schemas.js +163 -0
  136. package/dist/detops/mpc/schemas.js.map +1 -0
  137. package/dist/detops/mpc/sign-request-body.d.ts +10 -0
  138. package/dist/detops/mpc/sign-request-body.d.ts.map +1 -0
  139. package/dist/detops/mpc/sign-request-body.js +64 -0
  140. package/dist/detops/mpc/sign-request-body.js.map +1 -0
  141. package/dist/detops/mpc/sign-request-utils.d.ts +33 -0
  142. package/dist/detops/mpc/sign-request-utils.d.ts.map +1 -0
  143. package/dist/detops/mpc/sign-request-utils.js +467 -0
  144. package/dist/detops/mpc/sign-request-utils.js.map +1 -0
  145. package/dist/detops/mpc/transfer-native.d.ts +6 -0
  146. package/dist/detops/mpc/transfer-native.d.ts.map +1 -0
  147. package/dist/detops/mpc/transfer-native.js +167 -0
  148. package/dist/detops/mpc/transfer-native.js.map +1 -0
  149. package/dist/detops/mpc/transfer-tokens.d.ts +15 -0
  150. package/dist/detops/mpc/transfer-tokens.d.ts.map +1 -0
  151. package/dist/detops/mpc/transfer-tokens.js +110 -0
  152. package/dist/detops/mpc/transfer-tokens.js.map +1 -0
  153. package/dist/detops/mpc/trigger-sign-result.d.ts +8 -0
  154. package/dist/detops/mpc/trigger-sign-result.d.ts.map +1 -0
  155. package/dist/detops/mpc/trigger-sign-result.js +244 -0
  156. package/dist/detops/mpc/trigger-sign-result.js.map +1 -0
  157. package/dist/detops/mpc/types.d.ts +62 -0
  158. package/dist/detops/mpc/types.d.ts.map +1 -0
  159. package/dist/detops/mpc/types.js +2 -0
  160. package/dist/detops/mpc/types.js.map +1 -0
  161. package/dist/detops/node-info.d.ts +27 -0
  162. package/dist/detops/node-info.d.ts.map +1 -0
  163. package/dist/detops/node-info.js +96 -0
  164. package/dist/detops/node-info.js.map +1 -0
  165. package/dist/detops/registry/address-book.d.ts +25 -0
  166. package/dist/detops/registry/address-book.d.ts.map +1 -0
  167. package/dist/detops/registry/address-book.js +83 -0
  168. package/dist/detops/registry/address-book.js.map +1 -0
  169. package/dist/detops/registry/networks.d.ts +20 -0
  170. package/dist/detops/registry/networks.d.ts.map +1 -0
  171. package/dist/detops/registry/networks.js +154 -0
  172. package/dist/detops/registry/networks.js.map +1 -0
  173. package/dist/detops/registry/tokens.d.ts +29 -0
  174. package/dist/detops/registry/tokens.d.ts.map +1 -0
  175. package/dist/detops/registry/tokens.js +142 -0
  176. package/dist/detops/registry/tokens.js.map +1 -0
  177. package/dist/detops/result.d.ts +21 -0
  178. package/dist/detops/result.d.ts.map +1 -0
  179. package/dist/detops/result.js +2 -0
  180. package/dist/detops/result.js.map +1 -0
  181. package/dist/detops/schemas.d.ts +153 -0
  182. package/dist/detops/schemas.d.ts.map +1 -0
  183. package/dist/detops/schemas.js +82 -0
  184. package/dist/detops/schemas.js.map +1 -0
  185. package/dist/detops/signing-flow.d.ts +9 -0
  186. package/dist/detops/signing-flow.d.ts.map +1 -0
  187. package/dist/detops/signing-flow.js +139 -0
  188. package/dist/detops/signing-flow.js.map +1 -0
  189. package/dist/detops/types.d.ts +58 -0
  190. package/dist/detops/types.d.ts.map +1 -0
  191. package/dist/detops/types.js +46 -0
  192. package/dist/detops/types.js.map +1 -0
  193. package/dist/index.d.ts +1 -1
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +1 -1
  196. package/dist/index.js.map +1 -1
  197. package/dist/internal/ed25519/management-signing.d.ts +51 -0
  198. package/dist/internal/ed25519/management-signing.d.ts.map +1 -0
  199. package/dist/internal/ed25519/management-signing.js +198 -0
  200. package/dist/internal/ed25519/management-signing.js.map +1 -0
  201. package/dist/internal/ed25519/openssh-ed25519.d.ts +20 -0
  202. package/dist/internal/ed25519/openssh-ed25519.d.ts.map +1 -0
  203. package/dist/internal/ed25519/openssh-ed25519.js +129 -0
  204. package/dist/internal/ed25519/openssh-ed25519.js.map +1 -0
  205. package/dist/internal/management-request-signing.d.ts +32 -0
  206. package/dist/internal/management-request-signing.d.ts.map +1 -0
  207. package/dist/internal/management-request-signing.js +186 -0
  208. package/dist/internal/management-request-signing.js.map +1 -0
  209. package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
  210. package/dist/mcp/defi/register-protocol-tools.js +4 -1
  211. package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
  212. package/dist/mcp/defi/uniswap-liquidity-input.d.ts.map +1 -1
  213. package/dist/mcp/defi/uniswap-liquidity-input.js +77 -2
  214. package/dist/mcp/defi/uniswap-liquidity-input.js.map +1 -1
  215. package/dist/mcp/detops/registry/address-book.d.ts +4 -0
  216. package/dist/mcp/detops/registry/address-book.d.ts.map +1 -0
  217. package/dist/mcp/detops/registry/address-book.js +39 -0
  218. package/dist/mcp/detops/registry/address-book.js.map +1 -0
  219. package/dist/mcp/detops/registry/networks.d.ts +4 -0
  220. package/dist/mcp/detops/registry/networks.d.ts.map +1 -0
  221. package/dist/mcp/detops/registry/networks.js +32 -0
  222. package/dist/mcp/detops/registry/networks.js.map +1 -0
  223. package/dist/mcp/detops/registry/tokens.d.ts +4 -0
  224. package/dist/mcp/detops/registry/tokens.d.ts.map +1 -0
  225. package/dist/mcp/detops/registry/tokens.js +43 -0
  226. package/dist/mcp/detops/registry/tokens.js.map +1 -0
  227. package/dist/mcp/ed25519/management-signing.d.ts +51 -0
  228. package/dist/mcp/ed25519/management-signing.d.ts.map +1 -0
  229. package/dist/mcp/ed25519/management-signing.js +198 -0
  230. package/dist/mcp/ed25519/management-signing.js.map +1 -0
  231. package/dist/mcp/ed25519/openssh-ed25519.d.ts +20 -0
  232. package/dist/mcp/ed25519/openssh-ed25519.d.ts.map +1 -0
  233. package/dist/mcp/ed25519/openssh-ed25519.js +129 -0
  234. package/dist/mcp/ed25519/openssh-ed25519.js.map +1 -0
  235. package/dist/mcp/groups.d.ts +71 -0
  236. package/dist/mcp/groups.d.ts.map +1 -0
  237. package/dist/mcp/groups.js +360 -0
  238. package/dist/mcp/groups.js.map +1 -0
  239. package/dist/mcp/management-keys.d.ts +4 -0
  240. package/dist/mcp/management-keys.d.ts.map +1 -0
  241. package/dist/mcp/management-keys.js +75 -0
  242. package/dist/mcp/management-keys.js.map +1 -0
  243. package/dist/mcp/management-signer.js +3 -3
  244. package/dist/mcp/management-signer.js.map +1 -1
  245. package/dist/mcp/normalize.d.ts +15 -0
  246. package/dist/mcp/normalize.d.ts.map +1 -0
  247. package/dist/mcp/normalize.js +204 -0
  248. package/dist/mcp/normalize.js.map +1 -0
  249. package/dist/mcp/schemas.d.ts +360 -0
  250. package/dist/mcp/schemas.d.ts.map +1 -0
  251. package/dist/mcp/schemas.js +263 -0
  252. package/dist/mcp/schemas.js.map +1 -0
  253. package/dist/mcp/signing.d.ts +32 -0
  254. package/dist/mcp/signing.d.ts.map +1 -0
  255. package/dist/mcp/signing.js +186 -0
  256. package/dist/mcp/signing.js.map +1 -0
  257. package/dist/ops/general.d.ts +11 -0
  258. package/dist/ops/general.d.ts.map +1 -0
  259. package/dist/ops/general.js +34 -0
  260. package/dist/ops/general.js.map +1 -0
  261. package/dist/ops/groups.d.ts +17 -0
  262. package/dist/ops/groups.d.ts.map +1 -0
  263. package/dist/ops/groups.js +105 -0
  264. package/dist/ops/groups.js.map +1 -0
  265. package/dist/ops/management-signing.d.ts +11 -0
  266. package/dist/ops/management-signing.d.ts.map +1 -0
  267. package/dist/ops/management-signing.js +131 -0
  268. package/dist/ops/management-signing.js.map +1 -0
  269. package/dist/ops/result.d.ts +21 -0
  270. package/dist/ops/result.d.ts.map +1 -0
  271. package/dist/ops/result.js +2 -0
  272. package/dist/ops/result.js.map +1 -0
  273. package/dist/ops/schemas.d.ts +153 -0
  274. package/dist/ops/schemas.d.ts.map +1 -0
  275. package/dist/ops/schemas.js +82 -0
  276. package/dist/ops/schemas.js.map +1 -0
  277. package/dist/ops/signing-flow.d.ts +8 -0
  278. package/dist/ops/signing-flow.d.ts.map +1 -0
  279. package/dist/ops/signing-flow.js +125 -0
  280. package/dist/ops/signing-flow.js.map +1 -0
  281. package/dist/ops/types.d.ts +58 -0
  282. package/dist/ops/types.d.ts.map +1 -0
  283. package/dist/ops/types.js +46 -0
  284. package/dist/ops/types.js.map +1 -0
  285. package/dist/registry/address-book.d.ts +25 -0
  286. package/dist/registry/address-book.d.ts.map +1 -0
  287. package/dist/registry/address-book.js +103 -0
  288. package/dist/registry/address-book.js.map +1 -0
  289. package/dist/registry/networks.d.ts +18 -0
  290. package/dist/registry/networks.d.ts.map +1 -0
  291. package/dist/registry/networks.js +180 -0
  292. package/dist/registry/networks.js.map +1 -0
  293. package/dist/registry/tokens.d.ts +29 -0
  294. package/dist/registry/tokens.d.ts.map +1 -0
  295. package/dist/registry/tokens.js +157 -0
  296. package/dist/registry/tokens.js.map +1 -0
  297. package/package.json +3 -2
  298. package/dist/core/agent/webhooks-catalog.d.ts +0 -10
  299. package/dist/core/agent/webhooks-catalog.d.ts.map +0 -1
  300. package/dist/core/agent/webhooks-catalog.js +0 -19
  301. package/dist/core/agent/webhooks-catalog.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management-signing.js","sourceRoot":"","sources":["../../../src/mcp/ed25519/management-signing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * OpenSSH "openssh-key-v1" unencrypted Ed25519 PEM ("BEGIN OPENSSH PRIVATE KEY") import.
3
+ * Node.js + OpenSSL 3.6+ commonly reject this envelope via createPrivateKey(); we decode wire
4
+ * format per OpenSSH PROTOCOL.key and import via JWK.
5
+ */
6
+ import { KeyObject } from "crypto";
7
+ export declare const OPENSSH_V1_MAGIC: Buffer<ArrayBuffer>;
8
+ export declare function readSshString(buf: Buffer, offset: number): {
9
+ value: Buffer;
10
+ next: number;
11
+ };
12
+ /** @returns first 32-byte seed and 32-byte public key (from private pair string). */
13
+ export declare function parseUnencryptedOpenSshEd25519FromV1Blob(blob: Buffer): {
14
+ seed32: Buffer;
15
+ pub32: Buffer;
16
+ comment: string;
17
+ };
18
+ /** Import unencrypted ssh-keygen/OpenSSH PEM into a native KeyObject (Ed25519 only). */
19
+ export declare function importUnencryptedOpenSshEd25519PrivateKeyFromPem(pemArmored: string): KeyObject;
20
+ //# sourceMappingURL=openssh-ed25519.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openssh-ed25519.d.ts","sourceRoot":"","sources":["../../../src/mcp/ed25519/openssh-ed25519.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAoB,SAAS,EAAE,MAAM,QAAQ,CAAA;AAEpD,eAAO,MAAM,gBAAgB,qBAAkC,CAAA;AAE/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU1F;AAoBD,qFAAqF;AACrF,wBAAgB,wCAAwC,CAAC,IAAI,EAAE,MAAM,GAAG;IACtE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,CA4FA;AAMD,wFAAwF;AACxF,wBAAgB,gDAAgD,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAY9F"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * OpenSSH "openssh-key-v1" unencrypted Ed25519 PEM ("BEGIN OPENSSH PRIVATE KEY") import.
3
+ * Node.js + OpenSSL 3.6+ commonly reject this envelope via createPrivateKey(); we decode wire
4
+ * format per OpenSSH PROTOCOL.key and import via JWK.
5
+ */
6
+ import { createPrivateKey } from "crypto";
7
+ export const OPENSSH_V1_MAGIC = Buffer.from("openssh-key-v1\0");
8
+ export function readSshString(buf, offset) {
9
+ if (offset + 4 > buf.length) {
10
+ throw new Error(`SSH string header EOF at offset ${offset}`);
11
+ }
12
+ const len = buf.readUInt32BE(offset);
13
+ const next = offset + 4 + len;
14
+ if (next > buf.length || len < 0) {
15
+ throw new Error(`SSH string length ${len} out of range at offset ${offset}`);
16
+ }
17
+ return { value: buf.subarray(offset + 4, next), next };
18
+ }
19
+ function pemBase64BodyForOpenSshBlock(pemArmored) {
20
+ const m = pemArmored.match(/-----BEGIN OPENSSH PRIVATE KEY-----([\s\S]*?)-----END OPENSSH PRIVATE KEY-----/i);
21
+ if (!m) {
22
+ throw new Error("missing -----BEGIN/END OPENSSH PRIVATE KEY----- PEM block");
23
+ }
24
+ const compact = m[1].replace(/\s+/g, "");
25
+ return Buffer.from(compact, "base64");
26
+ }
27
+ function assertOpenSshPadding(privList, offsetAfterComment) {
28
+ for (let pad = 1, o = offsetAfterComment; o < privList.length; pad++, o++) {
29
+ const expected = pad & 0xff;
30
+ if (privList[o] !== expected) {
31
+ throw new Error("invalid OpenSSH private key padding (file may be truncated or encrypted incorrectly)");
32
+ }
33
+ }
34
+ }
35
+ /** @returns first 32-byte seed and 32-byte public key (from private pair string). */
36
+ export function parseUnencryptedOpenSshEd25519FromV1Blob(blob) {
37
+ if (blob.length < OPENSSH_V1_MAGIC.length || !blob.subarray(0, OPENSSH_V1_MAGIC.length).equals(OPENSSH_V1_MAGIC)) {
38
+ throw new Error("not an openssh-key-v1 blob");
39
+ }
40
+ let offset = OPENSSH_V1_MAGIC.length;
41
+ const cipherName = readSshString(blob, offset);
42
+ offset = cipherName.next;
43
+ const kdfName = readSshString(blob, offset);
44
+ offset = kdfName.next;
45
+ const kdfOptions = readSshString(blob, offset);
46
+ offset = kdfOptions.next;
47
+ if (cipherName.value.toString("utf8") !== "none" || kdfName.value.toString("utf8") !== "none") {
48
+ throw new Error("OpenSSH private key is encrypted; use `ssh-keygen -p -N '' -m PKCS8 -f <keyfile>` to write an importable PKCS#8 PEM, or provide an unencrypted key");
49
+ }
50
+ const nKeys = blob.readUInt32BE(offset);
51
+ offset += 4;
52
+ if (nKeys !== 1) {
53
+ throw new Error(`OpenSSH file has ${nKeys} keys; only single-key Ed25519 files are supported`);
54
+ }
55
+ /** Public ssh wire blobs (validated against private material). */
56
+ const pubBlob = readSshString(blob, offset);
57
+ offset = pubBlob.next;
58
+ const encryptedPrivateListMaybe = readSshString(blob, offset);
59
+ offset = encryptedPrivateListMaybe.next;
60
+ const privList = encryptedPrivateListMaybe.value;
61
+ if (privList.length < 16) {
62
+ throw new Error("OpenSSH private key list too short");
63
+ }
64
+ const check1 = privList.readUInt32BE(0);
65
+ const check2 = privList.readUInt32BE(4);
66
+ if (check1 !== check2) {
67
+ throw new Error("OpenSSH private key checkints mismatch (wrong passphrase or corrupted file)");
68
+ }
69
+ let inner = 8;
70
+ const algo = readSshString(privList, inner);
71
+ inner = algo.next;
72
+ const ak = algo.value.toString("utf8");
73
+ if (ak !== "ssh-ed25519") {
74
+ throw new Error(`OpenSSH private key algorithm is ${JSON.stringify(ak)}, expected "ssh-ed25519"`);
75
+ }
76
+ const pubFromPrivate = readSshString(privList, inner);
77
+ inner = pubFromPrivate.next;
78
+ if (pubFromPrivate.value.length !== 32) {
79
+ throw new Error(`invalid Ed25519 public key length ${pubFromPrivate.value.length}`);
80
+ }
81
+ const pair = readSshString(privList, inner);
82
+ inner = pair.next;
83
+ if (pair.value.length !== 64) {
84
+ throw new Error(`invalid Ed25519 secret+public concat length ${pair.value.length}`);
85
+ }
86
+ const seed32 = Buffer.from(pair.value.subarray(0, 32));
87
+ const duplicatePub32 = Buffer.from(pair.value.subarray(32, 64));
88
+ if (!duplicatePub32.equals(pubFromPrivate.value)) {
89
+ throw new Error("OpenSSH Ed25519 public key mismatch inside private pair (corrupted key)");
90
+ }
91
+ const cm = readSshString(privList, inner);
92
+ inner = cm.next;
93
+ /** Wire-format public blob should match pubkey from private serialization. */
94
+ const pubOuter = pubBlob.value;
95
+ let po = 0;
96
+ const pubAlgo = readSshString(pubOuter, po);
97
+ po = pubAlgo.next;
98
+ if (pubAlgo.value.toString("utf8") !== "ssh-ed25519") {
99
+ throw new Error("OpenSSH outer public blob algorithm mismatch");
100
+ }
101
+ const pubOuterKeyBytes = readSshString(pubOuter, po).value;
102
+ if (!pubOuterKeyBytes.equals(pubFromPrivate.value)) {
103
+ throw new Error("OpenSSH outer public blob does not match embedded private pubkey (corrupted key)");
104
+ }
105
+ assertOpenSshPadding(privList, inner);
106
+ return {
107
+ seed32,
108
+ pub32: pubFromPrivate.value,
109
+ comment: cm.value.toString("utf8"),
110
+ };
111
+ }
112
+ function b64Url(buf) {
113
+ return buf.toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
114
+ }
115
+ /** Import unencrypted ssh-keygen/OpenSSH PEM into a native KeyObject (Ed25519 only). */
116
+ export function importUnencryptedOpenSshEd25519PrivateKeyFromPem(pemArmored) {
117
+ const blob = pemBase64BodyForOpenSshBlock(pemArmored.trim());
118
+ const { seed32, pub32 } = parseUnencryptedOpenSshEd25519FromV1Blob(blob);
119
+ return createPrivateKey({
120
+ format: "jwk",
121
+ key: {
122
+ kty: "OKP",
123
+ crv: "Ed25519",
124
+ d: b64Url(seed32),
125
+ x: b64Url(pub32),
126
+ },
127
+ });
128
+ }
129
+ //# sourceMappingURL=openssh-ed25519.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openssh-ed25519.js","sourceRoot":"","sources":["../../../src/mcp/ed25519/openssh-ed25519.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import type { NodeSdkConfig } from '../config/schema.js';
2
+ import type { SdkResult } from '../detops/result.js';
3
+ import { type Filter, type McpGroupRequest, type McpGroupResult, type NodeId } from './schemas.js';
4
+ import { toSelectedSigningKey } from './signing.js';
5
+ export declare function listAvailableNodeIds(config: NodeSdkConfig): Promise<SdkResult<{
6
+ selfNodeId: NodeId;
7
+ nodes: Array<{
8
+ index: number;
9
+ ip: string;
10
+ nodeId: NodeId;
11
+ isSelf: boolean;
12
+ }>;
13
+ nodeIdByIp: Record<string, NodeId>;
14
+ }>>;
15
+ export declare function createGroupRequest(config: NodeSdkConfig, input: {
16
+ nodeIds: NodeId[];
17
+ }): Promise<SdkResult<{
18
+ groupRequestId: string;
19
+ selectedSigningKey: ReturnType<typeof toSelectedSigningKey>;
20
+ signingMessage: string;
21
+ }>>;
22
+ export declare function acceptGroupRequest(config: NodeSdkConfig, input: {
23
+ requestId: string;
24
+ }): Promise<SdkResult<{
25
+ message: string;
26
+ selectedSigningKey: ReturnType<typeof toSelectedSigningKey>;
27
+ signingMessage: string;
28
+ }>>;
29
+ export declare function listValidGroupNodeSetsMcp(config: NodeSdkConfig): Promise<SdkResult<{
30
+ selfNodeId: NodeId;
31
+ configuredNodeIds: NodeId[];
32
+ validPairs: NodeId[][];
33
+ }>>;
34
+ declare function buildAgreementChecks(localNodeId: NodeId, requests: McpGroupRequest[]): {
35
+ requestId: string;
36
+ originator: string;
37
+ isOriginatorLocal: boolean;
38
+ agreementRequired: boolean;
39
+ note: string;
40
+ }[];
41
+ export declare function listMcpGroupRequests(config: NodeSdkConfig, options?: {
42
+ filter?: Filter;
43
+ pagenum?: number;
44
+ pagesize?: number;
45
+ }): Promise<SdkResult<{
46
+ localNodeId: NodeId;
47
+ requests: McpGroupRequest[];
48
+ agreementChecks: ReturnType<typeof buildAgreementChecks>;
49
+ }>>;
50
+ export declare function listMcpGroupResults(config: NodeSdkConfig, options?: {
51
+ filter?: Filter;
52
+ pagenum?: number;
53
+ pagesize?: number;
54
+ }): Promise<SdkResult<{
55
+ results: McpGroupResult[];
56
+ }>>;
57
+ export declare function getMcpGroupRequestById(config: NodeSdkConfig, input: {
58
+ id: string;
59
+ }): Promise<SdkResult<{
60
+ request: McpGroupRequest;
61
+ localNodeId: NodeId;
62
+ isOriginatorLocal: boolean;
63
+ agreementRequired: boolean;
64
+ note: string;
65
+ }>>;
66
+ export declare function getMcpGroupResultById(config: NodeSdkConfig, input: {
67
+ id?: string;
68
+ group_id?: string;
69
+ }): Promise<SdkResult<McpGroupResult>>;
70
+ export {};
71
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/mcp/groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,360 @@
1
+ import { z } from 'zod';
2
+ import { buildManagementQueryPath, managementGet, managementPost, } from '../api/management-api.js';
3
+ import { FilterSchema, GroupIdSchema, GroupRequestIdSchema, NodeIdSchema, } from './schemas.js';
4
+ import { isSameNodeSet, normalizeGroupRequest, normalizeGroupResult, normalizeLegacyGroupListEntry, normalizeNodeIdList, } from './normalize.js';
5
+ import { prepareSignedManagementRequest, toSelectedSigningKey, } from './signing.js';
6
+ async function fetchNodeIdByIp(config) {
7
+ const configured = await managementGet(config, '/getConfiguredNodeKeys');
8
+ if (!configured.ok) {
9
+ return configured;
10
+ }
11
+ const entries = [];
12
+ for (const node of configured.data.nodes ?? []) {
13
+ try {
14
+ const parsed = new URL(node.address);
15
+ const ip = parsed.hostname;
16
+ const port = parsed.port || '18080';
17
+ const url = `${parsed.protocol}//${ip}:${port}/getNodeKey`;
18
+ const response = await fetch(url, { method: 'GET' });
19
+ if (!response.ok) {
20
+ continue;
21
+ }
22
+ const body = (await response.json());
23
+ const code = body.Code ?? body.code;
24
+ const data = body.Data ?? body.data;
25
+ if (code !== 0 && String(code) !== '0') {
26
+ continue;
27
+ }
28
+ const nodeIdParsed = NodeIdSchema.safeParse(data);
29
+ if (nodeIdParsed.success) {
30
+ entries.push([ip, nodeIdParsed.data]);
31
+ }
32
+ }
33
+ catch {
34
+ // skip unreachable nodes
35
+ }
36
+ }
37
+ return { ok: true, data: Object.fromEntries(entries) };
38
+ }
39
+ async function groupExistsForNodeIds(config, nodeIds) {
40
+ const list = await listMcpGroupResults(config, {});
41
+ if (!list.ok) {
42
+ return false;
43
+ }
44
+ return list.data.results.some(result => isSameNodeSet(result.KeyList, nodeIds));
45
+ }
46
+ export async function listAvailableNodeIds(config) {
47
+ const [nodeIdByIpResult, selfResult] = await Promise.all([
48
+ fetchNodeIdByIp(config),
49
+ managementGet(config, '/getNodeKey'),
50
+ ]);
51
+ if (!nodeIdByIpResult.ok) {
52
+ return nodeIdByIpResult;
53
+ }
54
+ if (!selfResult.ok) {
55
+ return selfResult;
56
+ }
57
+ const selfParsed = NodeIdSchema.safeParse(selfResult.data);
58
+ if (!selfParsed.success) {
59
+ return { ok: false, reason: 'Node ID response failed validation.' };
60
+ }
61
+ const selfNodeId = selfParsed.data;
62
+ const nodeIdByIp = nodeIdByIpResult.data;
63
+ const nodes = Object.entries(nodeIdByIp).map(([ip, nodeId], idx) => ({
64
+ index: idx + 1,
65
+ ip,
66
+ nodeId,
67
+ isSelf: nodeId === selfNodeId,
68
+ }));
69
+ return { ok: true, data: { selfNodeId, nodes, nodeIdByIp } };
70
+ }
71
+ export async function createGroupRequest(config, input) {
72
+ const nodeIdsParsed = z.array(NodeIdSchema).min(2).safeParse(input.nodeIds);
73
+ if (!nodeIdsParsed.success) {
74
+ return { ok: false, reason: 'Invalid nodeIds input.' };
75
+ }
76
+ const available = await listAvailableNodeIds(config);
77
+ if (!available.ok) {
78
+ return available;
79
+ }
80
+ const configuredSet = new Set(Object.values(available.data.nodeIdByIp));
81
+ const keyList = normalizeNodeIdList(nodeIdsParsed.data);
82
+ const invalid = keyList.filter(id => !configuredSet.has(id));
83
+ if (invalid.length > 0) {
84
+ return {
85
+ ok: false,
86
+ reason: 'nodeIds contains values not present in configured nodes.',
87
+ };
88
+ }
89
+ if (!keyList.includes(available.data.selfNodeId)) {
90
+ return {
91
+ ok: false,
92
+ reason: 'Selected nodeIds must include the originator node ID.',
93
+ };
94
+ }
95
+ if (await groupExistsForNodeIds(config, keyList)) {
96
+ return { ok: false, reason: 'A group with this exact node set already exists.' };
97
+ }
98
+ const signed = await prepareSignedManagementRequest(config, ({ selectedSigningKey }) => ({
99
+ nodeKey: available.data.selfNodeId,
100
+ Nonce: selectedSigningKey.nonce,
101
+ Sig: '',
102
+ keyList,
103
+ BrokerArray: [],
104
+ }));
105
+ if (!signed.ok) {
106
+ return signed;
107
+ }
108
+ const posted = await managementPost(config, '/newGroupRequest', signed.data.body);
109
+ if (!posted.ok) {
110
+ return posted;
111
+ }
112
+ const requestIdParsed = GroupRequestIdSchema.safeParse(posted.data);
113
+ return {
114
+ ok: true,
115
+ data: {
116
+ groupRequestId: requestIdParsed.success ? requestIdParsed.data : posted.data,
117
+ selectedSigningKey: toSelectedSigningKey(signed.data.selectedSigningKey),
118
+ signingMessage: signed.data.signingMessage,
119
+ },
120
+ };
121
+ }
122
+ export async function acceptGroupRequest(config, input) {
123
+ const requestIdParsed = GroupRequestIdSchema.safeParse(input.requestId);
124
+ if (!requestIdParsed.success) {
125
+ return { ok: false, reason: 'Invalid group request ID.' };
126
+ }
127
+ const path = buildManagementQueryPath('/getNewGroupRequestById', {
128
+ id: requestIdParsed.data,
129
+ });
130
+ const raw = await managementGet(config, path);
131
+ if (!raw.ok) {
132
+ return raw;
133
+ }
134
+ const request = normalizeGroupRequest(raw.data);
135
+ if (!request) {
136
+ return { ok: false, reason: 'Group request response failed validation.' };
137
+ }
138
+ if (request.status !== 'pending') {
139
+ return { ok: false, reason: 'Group request is not pending.' };
140
+ }
141
+ const nodeKeyResult = await managementGet(config, '/getNodeKey');
142
+ if (!nodeKeyResult.ok) {
143
+ return nodeKeyResult;
144
+ }
145
+ const nodeKeyParsed = NodeIdSchema.safeParse(nodeKeyResult.data);
146
+ if (!nodeKeyParsed.success) {
147
+ return { ok: false, reason: 'Node ID response failed validation.' };
148
+ }
149
+ const signed = await prepareSignedManagementRequest(config, ({ selectedSigningKey }) => ({
150
+ nodeKey: nodeKeyParsed.data,
151
+ requestId: requestIdParsed.data,
152
+ Nonce: selectedSigningKey.nonce,
153
+ Sig: '',
154
+ }));
155
+ if (!signed.ok) {
156
+ return signed;
157
+ }
158
+ const posted = await managementPost(config, '/newGroupRequestAgree', signed.data.body);
159
+ if (!posted.ok) {
160
+ return posted;
161
+ }
162
+ return {
163
+ ok: true,
164
+ data: {
165
+ message: posted.data,
166
+ selectedSigningKey: toSelectedSigningKey(signed.data.selectedSigningKey),
167
+ signingMessage: signed.data.signingMessage,
168
+ },
169
+ };
170
+ }
171
+ export async function listValidGroupNodeSetsMcp(config) {
172
+ const available = await listAvailableNodeIds(config);
173
+ if (!available.ok) {
174
+ return available;
175
+ }
176
+ const configuredNodeIds = normalizeNodeIdList(Object.values(available.data.nodeIdByIp));
177
+ const selfNodeId = available.data.selfNodeId;
178
+ if (!configuredNodeIds.includes(selfNodeId)) {
179
+ return {
180
+ ok: false,
181
+ reason: 'Originator node ID is not present in configured nodes.',
182
+ };
183
+ }
184
+ const others = configuredNodeIds.filter(id => id !== selfNodeId);
185
+ const validPairs = [];
186
+ for (const other of others) {
187
+ const pair = normalizeNodeIdList([selfNodeId, other]);
188
+ if (!(await groupExistsForNodeIds(config, pair))) {
189
+ validPairs.push(pair);
190
+ }
191
+ }
192
+ return { ok: true, data: { selfNodeId, configuredNodeIds, validPairs } };
193
+ }
194
+ function buildAgreementChecks(localNodeId, requests) {
195
+ return requests.map(request => {
196
+ const isOriginatorLocal = request.originator === localNodeId;
197
+ return {
198
+ requestId: request.RequestId,
199
+ originator: request.originator,
200
+ isOriginatorLocal,
201
+ agreementRequired: !isOriginatorLocal,
202
+ note: isOriginatorLocal
203
+ ? 'Originator is local node; agreement is not required.'
204
+ : 'Originator is a different node; agreement is required.',
205
+ };
206
+ });
207
+ }
208
+ export async function listMcpGroupRequests(config, options = {}) {
209
+ const filterParsed = options.filter === undefined
210
+ ? { success: true, data: 'all' }
211
+ : FilterSchema.safeParse(options.filter);
212
+ if (!filterParsed.success) {
213
+ return { ok: false, reason: 'Invalid group request filter.' };
214
+ }
215
+ const path = buildManagementQueryPath('/listNewGroupRequests', {
216
+ filter: filterParsed.data,
217
+ pagenum: options.pagenum === undefined ? undefined : String(options.pagenum),
218
+ pagesize: options.pagesize === undefined ? undefined : String(options.pagesize),
219
+ });
220
+ const raw = await managementGet(config, path);
221
+ if (!raw.ok) {
222
+ return raw;
223
+ }
224
+ const rawRequests = Array.isArray(raw.data) ? raw.data : [];
225
+ const requests = [];
226
+ for (const entry of rawRequests) {
227
+ const parsed = normalizeGroupRequest(entry);
228
+ if (parsed) {
229
+ requests.push(parsed);
230
+ }
231
+ }
232
+ const local = await managementGet(config, '/getNodeKey');
233
+ if (!local.ok) {
234
+ return local;
235
+ }
236
+ const localParsed = NodeIdSchema.safeParse(local.data);
237
+ if (!localParsed.success) {
238
+ return { ok: false, reason: 'Node ID response failed validation.' };
239
+ }
240
+ return {
241
+ ok: true,
242
+ data: {
243
+ localNodeId: localParsed.data,
244
+ requests,
245
+ agreementChecks: buildAgreementChecks(localParsed.data, requests),
246
+ },
247
+ };
248
+ }
249
+ async function fetchMcpGroupResultsRaw(config, params) {
250
+ const path = buildManagementQueryPath('/listNewGroupResults', params);
251
+ try {
252
+ const data = await managementGet(config, path);
253
+ if (data.ok && Array.isArray(data.data)) {
254
+ return data.data
255
+ .map(entry => normalizeGroupResult(entry))
256
+ .filter((entry) => entry !== undefined);
257
+ }
258
+ }
259
+ catch {
260
+ // fall through
261
+ }
262
+ const fallbackPath = buildManagementQueryPath('/listGroupResults', params);
263
+ const fallback = await managementGet(config, fallbackPath);
264
+ if (!fallback.ok) {
265
+ return [];
266
+ }
267
+ const groups = typeof fallback.data === 'object' &&
268
+ fallback.data !== null &&
269
+ Array.isArray(fallback.data.groups)
270
+ ? fallback.data.groups
271
+ : [];
272
+ return groups
273
+ .map(entry => normalizeLegacyGroupListEntry(entry))
274
+ .filter((entry) => entry !== undefined);
275
+ }
276
+ export async function listMcpGroupResults(config, options = {}) {
277
+ const params = {};
278
+ if (options.filter !== undefined) {
279
+ params.filter = options.filter;
280
+ }
281
+ if (options.pagenum !== undefined) {
282
+ params.pagenum = String(options.pagenum);
283
+ }
284
+ if (options.pagesize !== undefined) {
285
+ params.pagesize = String(options.pagesize);
286
+ }
287
+ const results = await fetchMcpGroupResultsRaw(config, params);
288
+ return { ok: true, data: { results } };
289
+ }
290
+ export async function getMcpGroupRequestById(config, input) {
291
+ const idParsed = GroupRequestIdSchema.safeParse(input.id);
292
+ if (!idParsed.success) {
293
+ return { ok: false, reason: 'Invalid group request ID.' };
294
+ }
295
+ const path = buildManagementQueryPath('/getNewGroupRequestById', {
296
+ id: idParsed.data,
297
+ });
298
+ const raw = await managementGet(config, path);
299
+ if (!raw.ok) {
300
+ return raw;
301
+ }
302
+ const request = normalizeGroupRequest(raw.data);
303
+ if (!request) {
304
+ return { ok: false, reason: 'Group request response failed validation.' };
305
+ }
306
+ const local = await managementGet(config, '/getNodeKey');
307
+ if (!local.ok) {
308
+ return local;
309
+ }
310
+ const localParsed = NodeIdSchema.safeParse(local.data);
311
+ if (!localParsed.success) {
312
+ return { ok: false, reason: 'Node ID response failed validation.' };
313
+ }
314
+ const isOriginatorLocal = request.originator === localParsed.data;
315
+ return {
316
+ ok: true,
317
+ data: {
318
+ request,
319
+ localNodeId: localParsed.data,
320
+ isOriginatorLocal,
321
+ agreementRequired: !isOriginatorLocal,
322
+ note: isOriginatorLocal
323
+ ? 'Originator is local node; agreement is not required.'
324
+ : 'Originator is a different node; agreement is required.',
325
+ },
326
+ };
327
+ }
328
+ export async function getMcpGroupResultById(config, input) {
329
+ const hasId = input.id !== undefined;
330
+ const hasGroupId = input.group_id !== undefined;
331
+ if (hasId === hasGroupId) {
332
+ return { ok: false, reason: 'Provide exactly one of id or group_id.' };
333
+ }
334
+ const params = {};
335
+ if (input.id !== undefined) {
336
+ const parsed = GroupRequestIdSchema.safeParse(input.id);
337
+ if (!parsed.success) {
338
+ return { ok: false, reason: 'Invalid group request ID.' };
339
+ }
340
+ params.id = parsed.data;
341
+ }
342
+ else if (input.group_id !== undefined) {
343
+ const parsed = GroupIdSchema.safeParse(input.group_id);
344
+ if (!parsed.success) {
345
+ return { ok: false, reason: 'Invalid group ID.' };
346
+ }
347
+ params.group_id = parsed.data;
348
+ }
349
+ const path = buildManagementQueryPath('/getNewGroupResultById', params);
350
+ const raw = await managementGet(config, path);
351
+ if (!raw.ok) {
352
+ return raw;
353
+ }
354
+ const result = normalizeGroupResult(raw.data);
355
+ if (!result) {
356
+ return { ok: false, reason: 'Group result response failed validation.' };
357
+ }
358
+ return { ok: true, data: result };
359
+ }
360
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/mcp/groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { NodeSdkConfig } from '../config/schema.js';
3
+ export declare function registerManagementKeyTools(server: McpServer, config: NodeSdkConfig): void;
4
+ //# sourceMappingURL=management-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management-keys.d.ts","sourceRoot":"","sources":["../../src/mcp/management-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAavD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,GACnB,IAAI,CA0GN"}