@continuumdao/continuum-node-sdk 1.2.11 → 1.2.12

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 (266) hide show
  1. package/dist/api/node-read.d.ts +1 -1
  2. package/dist/api/node-read.d.ts.map +1 -1
  3. package/dist/api/node-read.js +2 -1
  4. package/dist/api/node-read.js.map +1 -1
  5. package/dist/core/agent/mcp-servers-catalog.d.ts +12 -1
  6. package/dist/core/agent/mcp-servers-catalog.d.ts.map +1 -1
  7. package/dist/core/agent/mcp-servers-catalog.js +48 -1
  8. package/dist/core/agent/mcp-servers-catalog.js.map +1 -1
  9. package/dist/core/agent/mcp-servers.d.ts.map +1 -1
  10. package/dist/core/agent/mcp-servers.js +1 -0
  11. package/dist/core/agent/mcp-servers.js.map +1 -1
  12. package/dist/core/keygen-messaging.d.ts +31 -0
  13. package/dist/core/keygen-messaging.d.ts.map +1 -0
  14. package/dist/core/keygen-messaging.js +454 -0
  15. package/dist/core/keygen-messaging.js.map +1 -0
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/mcp/agent-mcp-servers.js +1 -1
  21. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  22. package/dist/mcp/keygen-messaging.d.ts +4 -0
  23. package/dist/mcp/keygen-messaging.d.ts.map +1 -0
  24. package/dist/mcp/keygen-messaging.js +54 -0
  25. package/dist/mcp/keygen-messaging.js.map +1 -0
  26. package/dist/mcp/register.d.ts +1 -0
  27. package/dist/mcp/register.d.ts.map +1 -1
  28. package/dist/mcp/register.js +3 -0
  29. package/dist/mcp/register.js.map +1 -1
  30. package/dist/schemas/extended.d.ts +162 -1
  31. package/dist/schemas/extended.d.ts.map +1 -1
  32. package/dist/schemas/extended.js +149 -2
  33. package/dist/schemas/extended.js.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/core/signing-flow.d.ts +0 -9
  36. package/dist/core/signing-flow.d.ts.map +0 -1
  37. package/dist/core/signing-flow.js +0 -139
  38. package/dist/core/signing-flow.js.map +0 -1
  39. package/dist/data/mpc-keys.d.ts +0 -8
  40. package/dist/data/mpc-keys.d.ts.map +0 -1
  41. package/dist/data/mpc-keys.js +0 -38
  42. package/dist/data/mpc-keys.js.map +0 -1
  43. package/dist/detops/general.d.ts +0 -11
  44. package/dist/detops/general.d.ts.map +0 -1
  45. package/dist/detops/general.js +0 -34
  46. package/dist/detops/general.js.map +0 -1
  47. package/dist/detops/group-actions.d.ts +0 -71
  48. package/dist/detops/group-actions.d.ts.map +0 -1
  49. package/dist/detops/group-actions.js +0 -360
  50. package/dist/detops/group-actions.js.map +0 -1
  51. package/dist/detops/groups.d.ts +0 -33
  52. package/dist/detops/groups.d.ts.map +0 -1
  53. package/dist/detops/groups.js +0 -223
  54. package/dist/detops/groups.js.map +0 -1
  55. package/dist/detops/keygen.d.ts +0 -72
  56. package/dist/detops/keygen.d.ts.map +0 -1
  57. package/dist/detops/keygen.js +0 -245
  58. package/dist/detops/keygen.js.map +0 -1
  59. package/dist/detops/management-keys.d.ts +0 -44
  60. package/dist/detops/management-keys.d.ts.map +0 -1
  61. package/dist/detops/management-keys.js +0 -216
  62. package/dist/detops/management-keys.js.map +0 -1
  63. package/dist/detops/management-signer.d.ts +0 -129
  64. package/dist/detops/management-signer.d.ts.map +0 -1
  65. package/dist/detops/management-signer.js +0 -619
  66. package/dist/detops/management-signer.js.map +0 -1
  67. package/dist/detops/management-signing.d.ts +0 -11
  68. package/dist/detops/management-signing.d.ts.map +0 -1
  69. package/dist/detops/management-signing.js +0 -131
  70. package/dist/detops/management-signing.js.map +0 -1
  71. package/dist/detops/mpc/broadcast-sign-result.d.ts +0 -9
  72. package/dist/detops/mpc/broadcast-sign-result.d.ts.map +0 -1
  73. package/dist/detops/mpc/broadcast-sign-result.js +0 -147
  74. package/dist/detops/mpc/broadcast-sign-result.js.map +0 -1
  75. package/dist/detops/mpc/bump-sign-result.d.ts +0 -25
  76. package/dist/detops/mpc/bump-sign-result.d.ts.map +0 -1
  77. package/dist/detops/mpc/bump-sign-result.js +0 -314
  78. package/dist/detops/mpc/bump-sign-result.js.map +0 -1
  79. package/dist/detops/mpc/client.d.ts +0 -15
  80. package/dist/detops/mpc/client.d.ts.map +0 -1
  81. package/dist/detops/mpc/client.js +0 -62
  82. package/dist/detops/mpc/client.js.map +0 -1
  83. package/dist/detops/mpc/compose-request.d.ts +0 -6
  84. package/dist/detops/mpc/compose-request.d.ts.map +0 -1
  85. package/dist/detops/mpc/compose-request.js +0 -33
  86. package/dist/detops/mpc/compose-request.js.map +0 -1
  87. package/dist/detops/mpc/context.d.ts +0 -11
  88. package/dist/detops/mpc/context.d.ts.map +0 -1
  89. package/dist/detops/mpc/context.js +0 -43
  90. package/dist/detops/mpc/context.js.map +0 -1
  91. package/dist/detops/mpc/forge-request.d.ts +0 -6
  92. package/dist/detops/mpc/forge-request.d.ts.map +0 -1
  93. package/dist/detops/mpc/forge-request.js +0 -46
  94. package/dist/detops/mpc/forge-request.js.map +0 -1
  95. package/dist/detops/mpc/gas-preflight.d.ts +0 -25
  96. package/dist/detops/mpc/gas-preflight.d.ts.map +0 -1
  97. package/dist/detops/mpc/gas-preflight.js +0 -101
  98. package/dist/detops/mpc/gas-preflight.js.map +0 -1
  99. package/dist/detops/mpc/list-ready.d.ts +0 -10
  100. package/dist/detops/mpc/list-ready.d.ts.map +0 -1
  101. package/dist/detops/mpc/list-ready.js +0 -48
  102. package/dist/detops/mpc/list-ready.js.map +0 -1
  103. package/dist/detops/mpc/management-post-sig.d.ts +0 -11
  104. package/dist/detops/mpc/management-post-sig.d.ts.map +0 -1
  105. package/dist/detops/mpc/management-post-sig.js +0 -20
  106. package/dist/detops/mpc/management-post-sig.js.map +0 -1
  107. package/dist/detops/mpc/mpa-top-up.d.ts +0 -18
  108. package/dist/detops/mpc/mpa-top-up.d.ts.map +0 -1
  109. package/dist/detops/mpc/mpa-top-up.js +0 -213
  110. package/dist/detops/mpc/mpa-top-up.js.map +0 -1
  111. package/dist/detops/mpc/register-keygen.d.ts +0 -6
  112. package/dist/detops/mpc/register-keygen.d.ts.map +0 -1
  113. package/dist/detops/mpc/register-keygen.js +0 -41
  114. package/dist/detops/mpc/register-keygen.js.map +0 -1
  115. package/dist/detops/mpc/schemas.d.ts +0 -251
  116. package/dist/detops/mpc/schemas.d.ts.map +0 -1
  117. package/dist/detops/mpc/schemas.js +0 -163
  118. package/dist/detops/mpc/schemas.js.map +0 -1
  119. package/dist/detops/mpc/sign-request-body.d.ts +0 -10
  120. package/dist/detops/mpc/sign-request-body.d.ts.map +0 -1
  121. package/dist/detops/mpc/sign-request-body.js +0 -64
  122. package/dist/detops/mpc/sign-request-body.js.map +0 -1
  123. package/dist/detops/mpc/sign-request-utils.d.ts +0 -33
  124. package/dist/detops/mpc/sign-request-utils.d.ts.map +0 -1
  125. package/dist/detops/mpc/sign-request-utils.js +0 -467
  126. package/dist/detops/mpc/sign-request-utils.js.map +0 -1
  127. package/dist/detops/mpc/transfer-native.d.ts +0 -6
  128. package/dist/detops/mpc/transfer-native.d.ts.map +0 -1
  129. package/dist/detops/mpc/transfer-native.js +0 -167
  130. package/dist/detops/mpc/transfer-native.js.map +0 -1
  131. package/dist/detops/mpc/transfer-tokens.d.ts +0 -15
  132. package/dist/detops/mpc/transfer-tokens.d.ts.map +0 -1
  133. package/dist/detops/mpc/transfer-tokens.js +0 -110
  134. package/dist/detops/mpc/transfer-tokens.js.map +0 -1
  135. package/dist/detops/mpc/trigger-sign-result.d.ts +0 -8
  136. package/dist/detops/mpc/trigger-sign-result.d.ts.map +0 -1
  137. package/dist/detops/mpc/trigger-sign-result.js +0 -244
  138. package/dist/detops/mpc/trigger-sign-result.js.map +0 -1
  139. package/dist/detops/mpc/types.d.ts +0 -62
  140. package/dist/detops/mpc/types.d.ts.map +0 -1
  141. package/dist/detops/mpc/types.js +0 -2
  142. package/dist/detops/mpc/types.js.map +0 -1
  143. package/dist/detops/node-info.d.ts +0 -27
  144. package/dist/detops/node-info.d.ts.map +0 -1
  145. package/dist/detops/node-info.js +0 -96
  146. package/dist/detops/node-info.js.map +0 -1
  147. package/dist/detops/registry/address-book.d.ts +0 -25
  148. package/dist/detops/registry/address-book.d.ts.map +0 -1
  149. package/dist/detops/registry/address-book.js +0 -83
  150. package/dist/detops/registry/address-book.js.map +0 -1
  151. package/dist/detops/registry/networks.d.ts +0 -20
  152. package/dist/detops/registry/networks.d.ts.map +0 -1
  153. package/dist/detops/registry/networks.js +0 -154
  154. package/dist/detops/registry/networks.js.map +0 -1
  155. package/dist/detops/registry/tokens.d.ts +0 -29
  156. package/dist/detops/registry/tokens.d.ts.map +0 -1
  157. package/dist/detops/registry/tokens.js +0 -142
  158. package/dist/detops/registry/tokens.js.map +0 -1
  159. package/dist/detops/result.d.ts +0 -21
  160. package/dist/detops/result.d.ts.map +0 -1
  161. package/dist/detops/result.js +0 -2
  162. package/dist/detops/result.js.map +0 -1
  163. package/dist/detops/schemas.d.ts +0 -153
  164. package/dist/detops/schemas.d.ts.map +0 -1
  165. package/dist/detops/schemas.js +0 -82
  166. package/dist/detops/schemas.js.map +0 -1
  167. package/dist/detops/signing-flow.d.ts +0 -9
  168. package/dist/detops/signing-flow.d.ts.map +0 -1
  169. package/dist/detops/signing-flow.js +0 -139
  170. package/dist/detops/signing-flow.js.map +0 -1
  171. package/dist/detops/types.d.ts +0 -58
  172. package/dist/detops/types.d.ts.map +0 -1
  173. package/dist/detops/types.js +0 -46
  174. package/dist/detops/types.js.map +0 -1
  175. package/dist/internal/ed25519/management-signing.d.ts +0 -51
  176. package/dist/internal/ed25519/management-signing.d.ts.map +0 -1
  177. package/dist/internal/ed25519/management-signing.js +0 -198
  178. package/dist/internal/ed25519/management-signing.js.map +0 -1
  179. package/dist/internal/ed25519/openssh-ed25519.d.ts +0 -20
  180. package/dist/internal/ed25519/openssh-ed25519.d.ts.map +0 -1
  181. package/dist/internal/ed25519/openssh-ed25519.js +0 -129
  182. package/dist/internal/ed25519/openssh-ed25519.js.map +0 -1
  183. package/dist/internal/management-request-signing.d.ts +0 -32
  184. package/dist/internal/management-request-signing.d.ts.map +0 -1
  185. package/dist/internal/management-request-signing.js +0 -186
  186. package/dist/internal/management-request-signing.js.map +0 -1
  187. package/dist/mcp/detops/registry/address-book.d.ts +0 -4
  188. package/dist/mcp/detops/registry/address-book.d.ts.map +0 -1
  189. package/dist/mcp/detops/registry/address-book.js +0 -39
  190. package/dist/mcp/detops/registry/address-book.js.map +0 -1
  191. package/dist/mcp/detops/registry/networks.d.ts +0 -4
  192. package/dist/mcp/detops/registry/networks.d.ts.map +0 -1
  193. package/dist/mcp/detops/registry/networks.js +0 -32
  194. package/dist/mcp/detops/registry/networks.js.map +0 -1
  195. package/dist/mcp/detops/registry/tokens.d.ts +0 -4
  196. package/dist/mcp/detops/registry/tokens.d.ts.map +0 -1
  197. package/dist/mcp/detops/registry/tokens.js +0 -43
  198. package/dist/mcp/detops/registry/tokens.js.map +0 -1
  199. package/dist/mcp/ed25519/management-signing.d.ts +0 -51
  200. package/dist/mcp/ed25519/management-signing.d.ts.map +0 -1
  201. package/dist/mcp/ed25519/management-signing.js +0 -198
  202. package/dist/mcp/ed25519/management-signing.js.map +0 -1
  203. package/dist/mcp/ed25519/openssh-ed25519.d.ts +0 -20
  204. package/dist/mcp/ed25519/openssh-ed25519.d.ts.map +0 -1
  205. package/dist/mcp/ed25519/openssh-ed25519.js +0 -129
  206. package/dist/mcp/ed25519/openssh-ed25519.js.map +0 -1
  207. package/dist/mcp/groups.d.ts +0 -71
  208. package/dist/mcp/groups.d.ts.map +0 -1
  209. package/dist/mcp/groups.js +0 -360
  210. package/dist/mcp/groups.js.map +0 -1
  211. package/dist/mcp/management-keys.d.ts +0 -4
  212. package/dist/mcp/management-keys.d.ts.map +0 -1
  213. package/dist/mcp/management-keys.js +0 -75
  214. package/dist/mcp/management-keys.js.map +0 -1
  215. package/dist/mcp/normalize.d.ts +0 -15
  216. package/dist/mcp/normalize.d.ts.map +0 -1
  217. package/dist/mcp/normalize.js +0 -204
  218. package/dist/mcp/normalize.js.map +0 -1
  219. package/dist/mcp/schemas.d.ts +0 -360
  220. package/dist/mcp/schemas.d.ts.map +0 -1
  221. package/dist/mcp/schemas.js +0 -263
  222. package/dist/mcp/schemas.js.map +0 -1
  223. package/dist/mcp/signing.d.ts +0 -32
  224. package/dist/mcp/signing.d.ts.map +0 -1
  225. package/dist/mcp/signing.js +0 -186
  226. package/dist/mcp/signing.js.map +0 -1
  227. package/dist/ops/general.d.ts +0 -11
  228. package/dist/ops/general.d.ts.map +0 -1
  229. package/dist/ops/general.js +0 -34
  230. package/dist/ops/general.js.map +0 -1
  231. package/dist/ops/groups.d.ts +0 -17
  232. package/dist/ops/groups.d.ts.map +0 -1
  233. package/dist/ops/groups.js +0 -105
  234. package/dist/ops/groups.js.map +0 -1
  235. package/dist/ops/management-signing.d.ts +0 -11
  236. package/dist/ops/management-signing.d.ts.map +0 -1
  237. package/dist/ops/management-signing.js +0 -131
  238. package/dist/ops/management-signing.js.map +0 -1
  239. package/dist/ops/result.d.ts +0 -21
  240. package/dist/ops/result.d.ts.map +0 -1
  241. package/dist/ops/result.js +0 -2
  242. package/dist/ops/result.js.map +0 -1
  243. package/dist/ops/schemas.d.ts +0 -153
  244. package/dist/ops/schemas.d.ts.map +0 -1
  245. package/dist/ops/schemas.js +0 -82
  246. package/dist/ops/schemas.js.map +0 -1
  247. package/dist/ops/signing-flow.d.ts +0 -8
  248. package/dist/ops/signing-flow.d.ts.map +0 -1
  249. package/dist/ops/signing-flow.js +0 -125
  250. package/dist/ops/signing-flow.js.map +0 -1
  251. package/dist/ops/types.d.ts +0 -58
  252. package/dist/ops/types.d.ts.map +0 -1
  253. package/dist/ops/types.js +0 -46
  254. package/dist/ops/types.js.map +0 -1
  255. package/dist/registry/address-book.d.ts +0 -25
  256. package/dist/registry/address-book.d.ts.map +0 -1
  257. package/dist/registry/address-book.js +0 -103
  258. package/dist/registry/address-book.js.map +0 -1
  259. package/dist/registry/networks.d.ts +0 -18
  260. package/dist/registry/networks.d.ts.map +0 -1
  261. package/dist/registry/networks.js +0 -180
  262. package/dist/registry/networks.js.map +0 -1
  263. package/dist/registry/tokens.d.ts +0 -29
  264. package/dist/registry/tokens.d.ts.map +0 -1
  265. package/dist/registry/tokens.js +0 -157
  266. package/dist/registry/tokens.js.map +0 -1
@@ -1,72 +0,0 @@
1
- import { z } from 'zod';
2
- import type { NodeSdkConfig } from '../config/schema.js';
3
- import type { SdkResult } from './result.js';
4
- import { KeyGenRequestSchema, type GroupId, type Key, type KeyGenId, type MsgCheck } from '../schemas/extended.js';
5
- import { type ManagementSigningMethod } from '../schemas/extended.js';
6
- import { toSelectedSigningKey } from '../detops/management-signer.js';
7
- import type { KeyGenResultById } from './mpc/types.js';
8
- export declare const keyGenFilterSchema: z.ZodEnum<{
9
- all: "all";
10
- pending: "pending";
11
- success: "success";
12
- failed: "failed";
13
- agree: "agree";
14
- originator: "originator";
15
- }>;
16
- export type KeyGenFilter = z.infer<typeof keyGenFilterSchema>;
17
- export type KeyGenAgreementCheck = {
18
- requestId: KeyGenId;
19
- originator?: string;
20
- isOriginatorLocal: boolean;
21
- agreementRequired: boolean;
22
- note: string;
23
- };
24
- export declare function fetchKeyGenResult(config: NodeSdkConfig, keyGenId: string): Promise<SdkResult<KeyGenResultById>>;
25
- export declare function fetchGlobalNonceByKeyGenId(config: NodeSdkConfig, keyGenId: string): Promise<SdkResult<number>>;
26
- /** MCP tool: create_key_gen_request */
27
- export declare function createKeyGenRequest(config: NodeSdkConfig, input: {
28
- groupId: GroupId;
29
- gate: number;
30
- msgCheck: MsgCheck;
31
- keyType: Key;
32
- }, signing?: ManagementSigningMethod): Promise<SdkResult<{
33
- requestId: KeyGenId;
34
- selectedSigningKey?: ReturnType<typeof toSelectedSigningKey>;
35
- signingMessage: string;
36
- }>>;
37
- /** MCP tool: accept_key_gen_request */
38
- export declare function acceptKeyGenRequest(config: NodeSdkConfig, input: {
39
- requestId: KeyGenId;
40
- }, signing?: ManagementSigningMethod): Promise<SdkResult<{
41
- message: string;
42
- selectedSigningKey?: ReturnType<typeof toSelectedSigningKey>;
43
- signingMessage: string;
44
- }>>;
45
- /** MCP tool: list_key_gen_requests */
46
- export declare function listKeyGenRequests(config: NodeSdkConfig, options?: {
47
- filter?: KeyGenFilter;
48
- pagenum?: number;
49
- pagesize?: number;
50
- }): Promise<SdkResult<{
51
- localNodeId: string;
52
- requests: z.infer<typeof KeyGenRequestSchema>[];
53
- agreementChecks: KeyGenAgreementCheck[];
54
- }>>;
55
- /** MCP tool: get_key_gen_request_by_id */
56
- export declare function getKeyGenRequestById(config: NodeSdkConfig, input: {
57
- id: KeyGenId;
58
- }): Promise<SdkResult<{
59
- request: z.infer<typeof KeyGenRequestSchema>;
60
- localNodeId: string;
61
- isOriginatorLocal: boolean;
62
- agreementRequired: boolean;
63
- note: string;
64
- }>>;
65
- /** MCP tool: get_key_gen_parent_group_id */
66
- export declare function getKeyGenParentGroupId(config: NodeSdkConfig, input: {
67
- id: KeyGenId;
68
- }): Promise<SdkResult<{
69
- requestid: string;
70
- groupId: GroupId;
71
- }>>;
72
- //# sourceMappingURL=keygen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keygen.d.ts","sourceRoot":"","sources":["../../src/detops/keygen.ts"],"names":[],"mappings":"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"}
@@ -1,245 +0,0 @@
1
- import { z } from 'zod';
2
- import { buildManagementQueryPath, managementGet, managementPost, } from '../api/management-api.js';
3
- import { GroupIdSchema, KeyGenIdSchema, KeyTypeSchema, MsgCheckSchema, } from '../schemas/extended.js';
4
- import { extractStatus, normalizeKeyGenRequest, pick, } from '../internal/normalize.js';
5
- import { DEFAULT_MANAGEMENT_SIGNING, } from '../schemas/extended.js';
6
- import { prepareSignedManagementRequest, toSelectedSigningKey, } from '../detops/management-signer.js';
7
- import { nodeId } from './general.js';
8
- import { mpcAuthEnvelopeData } from './mpc/sign-request-utils.js';
9
- export const keyGenFilterSchema = z.enum([
10
- 'all',
11
- 'pending',
12
- 'success',
13
- 'failed',
14
- 'agree',
15
- 'originator',
16
- ]);
17
- export async function fetchKeyGenResult(config, keyGenId) {
18
- const path = buildManagementQueryPath('/getKeyGenResultById', { id: keyGenId });
19
- const raw = await managementGet(config, path);
20
- if (!raw.ok)
21
- return raw;
22
- const data = mpcAuthEnvelopeData(raw.data) ?? raw.data;
23
- if (!data || typeof data !== 'object' || Array.isArray(data)) {
24
- return { ok: false, reason: 'Invalid getKeyGenResultById response.' };
25
- }
26
- return { ok: true, data: data };
27
- }
28
- export async function fetchGlobalNonceByKeyGenId(config, keyGenId) {
29
- const path = buildManagementQueryPath('/getGlobalNonceByKeyGenId', {
30
- id: keyGenId,
31
- });
32
- const raw = await managementGet(config, path);
33
- if (!raw.ok)
34
- return raw;
35
- let globalNonce;
36
- if (typeof raw.data === 'number') {
37
- globalNonce = raw.data;
38
- }
39
- else {
40
- const data = mpcAuthEnvelopeData(raw.data) ?? raw.data;
41
- if (data && typeof data === 'object' && !Array.isArray(data)) {
42
- const src = data;
43
- const candidate = src.globalNonce ?? src.GlobalNonce ?? src.globalnonce;
44
- if (typeof candidate === 'number')
45
- globalNonce = candidate;
46
- }
47
- }
48
- if (typeof globalNonce !== 'number' || Number.isNaN(globalNonce)) {
49
- return { ok: false, reason: 'Invalid getGlobalNonceByKeyGenId response.' };
50
- }
51
- return { ok: true, data: globalNonce };
52
- }
53
- /** MCP tool: create_key_gen_request */
54
- export async function createKeyGenRequest(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
55
- const parsedInput = z
56
- .object({
57
- groupId: GroupIdSchema,
58
- gate: z.number().int().min(2),
59
- msgCheck: MsgCheckSchema,
60
- keyType: KeyTypeSchema,
61
- })
62
- .safeParse(input);
63
- if (!parsedInput.success) {
64
- return { ok: false, reason: 'Invalid KeyGen request input.' };
65
- }
66
- const signed = await prepareSignedManagementRequest(config, signing, ({ selectedSigningKey }) => ({
67
- ...(selectedSigningKey ? { clientPk: selectedSigningKey.value } : {}),
68
- threshold: parsedInput.data.gate - 1,
69
- groupId: parsedInput.data.groupId,
70
- msgCheck: parsedInput.data.msgCheck,
71
- keyType: parsedInput.data.keyType,
72
- }));
73
- if (!signed.ok) {
74
- return signed;
75
- }
76
- const posted = await managementPost(config, '/keyGenRequest', signed.data.body);
77
- if (!posted.ok) {
78
- return posted;
79
- }
80
- const requestIdParsed = KeyGenIdSchema.safeParse(posted.data);
81
- if (!requestIdParsed.success) {
82
- return { ok: false, reason: 'KeyGen request ID response failed validation.' };
83
- }
84
- return {
85
- ok: true,
86
- data: {
87
- requestId: requestIdParsed.data,
88
- selectedSigningKey: signed.data.selectedSigningKey
89
- ? toSelectedSigningKey(signed.data.selectedSigningKey)
90
- : undefined,
91
- signingMessage: signed.data.signingMessage,
92
- },
93
- };
94
- }
95
- /** MCP tool: accept_key_gen_request */
96
- export async function acceptKeyGenRequest(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
97
- const requestIdParsed = KeyGenIdSchema.safeParse(input.requestId);
98
- if (!requestIdParsed.success) {
99
- return { ok: false, reason: 'Invalid KeyGen request ID.' };
100
- }
101
- const path = buildManagementQueryPath('/getKeyGenRequestById', {
102
- id: requestIdParsed.data,
103
- });
104
- const requestRaw = await managementGet(config, path);
105
- if (!requestRaw.ok) {
106
- return requestRaw;
107
- }
108
- const status = extractStatus(requestRaw.data);
109
- if (status && status !== 'pending') {
110
- return { ok: false, reason: 'KeyGen request is not pending.' };
111
- }
112
- const signed = await prepareSignedManagementRequest(config, signing, ({ selectedSigningKey }) => ({
113
- ...(selectedSigningKey ? { clientPk: selectedSigningKey.value } : {}),
114
- requestId: requestIdParsed.data,
115
- }));
116
- if (!signed.ok) {
117
- return signed;
118
- }
119
- const posted = await managementPost(config, '/keyGenRequestAgree', signed.data.body);
120
- if (!posted.ok) {
121
- return posted;
122
- }
123
- return {
124
- ok: true,
125
- data: {
126
- message: posted.data,
127
- selectedSigningKey: signed.data.selectedSigningKey
128
- ? toSelectedSigningKey(signed.data.selectedSigningKey)
129
- : undefined,
130
- signingMessage: signed.data.signingMessage,
131
- },
132
- };
133
- }
134
- /** MCP tool: list_key_gen_requests */
135
- export async function listKeyGenRequests(config, options = {}) {
136
- if (options.filter !== undefined &&
137
- !keyGenFilterSchema.safeParse(options.filter).success) {
138
- return { ok: false, reason: 'Invalid KeyGen request filter.' };
139
- }
140
- const path = buildManagementQueryPath('/listKeyGenRequests', {
141
- filter: options.filter,
142
- pagenum: options.pagenum === undefined ? undefined : String(options.pagenum),
143
- pagesize: options.pagesize === undefined ? undefined : String(options.pagesize),
144
- });
145
- const raw = await managementGet(config, path);
146
- if (!raw.ok) {
147
- return raw;
148
- }
149
- const rawList = Array.isArray(raw.data) ? raw.data : [];
150
- const requests = rawList
151
- .map(entry => normalizeKeyGenRequest(entry))
152
- .filter((entry) => entry !== undefined);
153
- const self = await nodeId(config);
154
- if (!self.ok) {
155
- return self;
156
- }
157
- const agreementChecks = requests.map(request => {
158
- const isOriginatorLocal = request.originator === self.data.nodeId;
159
- const agreementRequired = request.originator ? !isOriginatorLocal : true;
160
- return {
161
- requestId: request.requestid,
162
- originator: request.originator,
163
- isOriginatorLocal,
164
- agreementRequired,
165
- note: !request.originator
166
- ? 'Originator is not provided in this response; assuming agreement may be required.'
167
- : isOriginatorLocal
168
- ? 'Originator is local node; agreement is not required.'
169
- : 'Originator is a different node; agreement is required.',
170
- };
171
- });
172
- return {
173
- ok: true,
174
- data: {
175
- localNodeId: self.data.nodeId,
176
- requests,
177
- agreementChecks,
178
- },
179
- };
180
- }
181
- /** MCP tool: get_key_gen_request_by_id */
182
- export async function getKeyGenRequestById(config, input) {
183
- const idParsed = KeyGenIdSchema.safeParse(input.id);
184
- if (!idParsed.success) {
185
- return { ok: false, reason: 'Invalid KeyGen request ID.' };
186
- }
187
- const path = buildManagementQueryPath('/getKeyGenRequestById', {
188
- id: idParsed.data,
189
- });
190
- const raw = await managementGet(config, path);
191
- if (!raw.ok) {
192
- return raw;
193
- }
194
- const request = normalizeKeyGenRequest(raw.data);
195
- if (!request) {
196
- return { ok: false, reason: 'KeyGen request response failed validation.' };
197
- }
198
- const self = await nodeId(config);
199
- if (!self.ok) {
200
- return self;
201
- }
202
- const isOriginatorLocal = request.originator === self.data.nodeId;
203
- const agreementRequired = request.originator ? !isOriginatorLocal : true;
204
- return {
205
- ok: true,
206
- data: {
207
- request,
208
- localNodeId: self.data.nodeId,
209
- isOriginatorLocal,
210
- agreementRequired,
211
- note: !request.originator
212
- ? 'Originator is not provided in this response; assuming agreement may be required.'
213
- : isOriginatorLocal
214
- ? 'Originator is local node; agreement is not required.'
215
- : 'Originator is a different node; agreement is required.',
216
- },
217
- };
218
- }
219
- /** MCP tool: get_key_gen_parent_group_id */
220
- export async function getKeyGenParentGroupId(config, input) {
221
- const idParsed = KeyGenIdSchema.safeParse(input.id);
222
- if (!idParsed.success) {
223
- return { ok: false, reason: 'Invalid KeyGen request ID.' };
224
- }
225
- const path = buildManagementQueryPath('/getKeyGenGroupId', { id: idParsed.data });
226
- const raw = await managementGet(config, path);
227
- if (!raw.ok) {
228
- return raw;
229
- }
230
- if (!raw.data || typeof raw.data !== 'object') {
231
- return { ok: false, reason: 'Invalid getKeyGenGroupId response shape.' };
232
- }
233
- const src = raw.data;
234
- const requestid = pick(src, ['requestid', 'RequestId', 'id']);
235
- const groupId = pick(src, ['groupid', 'GroupId', 'groupId']);
236
- if (typeof requestid !== 'string' || typeof groupId !== 'string') {
237
- return { ok: false, reason: 'Invalid getKeyGenGroupId response shape.' };
238
- }
239
- const groupIdParsed = GroupIdSchema.safeParse(groupId);
240
- if (!groupIdParsed.success) {
241
- return { ok: false, reason: 'Invalid group ID in response.' };
242
- }
243
- return { ok: true, data: { requestid, groupId: groupIdParsed.data } };
244
- }
245
- //# sourceMappingURL=keygen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keygen.js","sourceRoot":"","sources":["../../src/detops/keygen.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import type { NodeSdkConfig } from '../config/schema.js';
2
- import type { SdkResult } from '../detops/result.js';
3
- export declare function hasManagementSigner(config: NodeSdkConfig): Promise<SdkResult<{
4
- hasEdDSAKey: boolean;
5
- }>>;
6
- export declare function listManagementSignersDetailed(config: NodeSdkConfig): Promise<SdkResult<{
7
- preferredSigner?: string;
8
- keys: Array<{
9
- localFileName?: string;
10
- kind: 'EdDSA';
11
- value: string;
12
- nonce: number;
13
- label?: string;
14
- localPrivateKeyAvailable: boolean;
15
- localPrivateKeyError?: string;
16
- }>;
17
- }>>;
18
- export declare function createManagementSignerKeypair(config: NodeSdkConfig): Promise<SdkResult<{
19
- success: boolean;
20
- fileName: string;
21
- publicKey: string;
22
- privateKeyPath: string;
23
- publicKeyPath: string;
24
- }>>;
25
- export declare function addManagementSigner(config: NodeSdkConfig, input: {
26
- newPublicKey: string;
27
- }): Promise<SdkResult<{
28
- success: boolean;
29
- publicKey: string;
30
- nodeKey: string;
31
- }>>;
32
- export declare function setPreferredManagementSigner(config: NodeSdkConfig, input: {
33
- publicKeyHex: string;
34
- }): Promise<SdkResult<{
35
- success: boolean;
36
- publicKeyHex: string;
37
- signerPublicKey: string;
38
- nodeKey: string;
39
- Nonce: number;
40
- signedMessage: string;
41
- clientSig: string;
42
- fileName: string;
43
- }>>;
44
- //# sourceMappingURL=management-keys.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"management-keys.d.ts","sourceRoot":"","sources":["../../src/detops/management-keys.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAGvD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAoBnD,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC,CAM5C;AAED,wBAAsB,6BAA6B,CAClD,MAAM,EAAE,aAAa,GACnB,OAAO,CACT,SAAS,CAAC;IACT,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC;QACX,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,wBAAwB,EAAE,OAAO,CAAC;QAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;CACH,CAAC,CACF,CAkCA;AAED,wBAAsB,6BAA6B,CAClD,MAAM,EAAE,aAAa,GACnB,OAAO,CACT,SAAS,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC,CACF,CAgDA;AAED,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAC3B,OAAO,CACT,SAAS,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC,CACF,CAkEA;AAED,wBAAsB,4BAA4B,CACjD,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAC3B,OAAO,CACT,SAAS,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC,CACF,CA2FA"}
@@ -1,216 +0,0 @@
1
- import { promises as fs } from 'node:fs';
2
- import path from 'node:path';
3
- import { generateKeyPairSync } from 'node:crypto';
4
- import { MPA_HOME_DIR } from '../config/paths.js';
5
- import { managementGet, managementPost } from '../api/management-api.js';
6
- import { EdDSAPubKeySchema, NodeIdSchema, NonceSchema } from '../schemas/extended.js';
7
- import { ensureLocalKeyPairForPublicKey, getPrivateKeyStatus, listLocalManagementPublicKeys, normalizeEd25519PublicKeyToHex, } from '../internal/ed25519/management-signing.js';
8
- import { buildClientSigManagementPostBody, fetchManagementKeyOptions, getPreferredManagementKeyHex, prepareSignedManagementRequest, } from '../internal/management-request-signing.js';
9
- function toError(reason) {
10
- return new Error(reason);
11
- }
12
- export async function hasManagementSigner(config) {
13
- const result = await managementGet(config, '/hasPublicMgtKey');
14
- if (!result.ok) {
15
- return result;
16
- }
17
- return { ok: true, data: { hasEdDSAKey: Boolean(result.data) } };
18
- }
19
- export async function listManagementSignersDetailed(config) {
20
- const [keyOptions, preferred] = await Promise.all([
21
- fetchManagementKeyOptions(config),
22
- getPreferredManagementKeyHex(config),
23
- ]);
24
- if (!keyOptions.ok) {
25
- return keyOptions;
26
- }
27
- const preferredSigner = preferred.ok ? preferred.data.publicKeyHex : undefined;
28
- const localKeys = await listLocalManagementPublicKeys(MPA_HOME_DIR, toError);
29
- const localFileByPub = new Map(localKeys
30
- .filter(k => k.publicKeyHex)
31
- .map(k => [k.publicKeyHex, k.fileName]));
32
- const keys = await Promise.all(keyOptions.data.map(async (key) => {
33
- const privateKeyStatus = await getPrivateKeyStatus(key, {
34
- keyRoot: MPA_HOME_DIR,
35
- toMcpApiError: toError,
36
- });
37
- const normalizedPublic = normalizeEd25519PublicKeyToHex(key.value, toError);
38
- return {
39
- ...key,
40
- localFileName: localFileByPub.get(normalizedPublic),
41
- localPrivateKeyAvailable: privateKeyStatus.available,
42
- localPrivateKeyError: privateKeyStatus.reason,
43
- };
44
- }));
45
- return { ok: true, data: { preferredSigner, keys } };
46
- }
47
- export async function createManagementSignerKeypair(config) {
48
- const configured = await managementGet(config, '/getAllowedEd25519MgtKeys');
49
- const currentKeyCount = configured.ok ? configured.data.length : 0;
50
- const fileName = `added_key_${currentKeyCount}`;
51
- const keyDir = path.join(MPA_HOME_DIR, 'management_keys');
52
- await fs.mkdir(keyDir, { recursive: true });
53
- const privateKeyPath = path.join(keyDir, fileName);
54
- const publicKeyPath = `${privateKeyPath}.pub`;
55
- try {
56
- await fs.access(privateKeyPath);
57
- return { ok: false, reason: 'Private key file already exists.' };
58
- }
59
- catch {
60
- // expected
61
- }
62
- const { privateKey, publicKey } = generateKeyPairSync('ed25519');
63
- const privatePem = privateKey.export({ format: 'pem', type: 'pkcs8' }).toString();
64
- const publicJwk = publicKey.export({ format: 'jwk' });
65
- if (!publicJwk.x) {
66
- return {
67
- ok: false,
68
- reason: 'Failed to derive Ed25519 raw public key from generated keypair.',
69
- };
70
- }
71
- const newPublicKey = Buffer.from(publicJwk.x, 'base64url').toString('hex');
72
- const parsed = EdDSAPubKeySchema.safeParse(newPublicKey);
73
- if (!parsed.success) {
74
- return { ok: false, reason: 'Generated public key failed validation.' };
75
- }
76
- await fs.writeFile(privateKeyPath, privatePem, { mode: 0o600 });
77
- await fs.writeFile(publicKeyPath, `${parsed.data}\n`, { mode: 0o644 });
78
- return {
79
- ok: true,
80
- data: {
81
- success: true,
82
- fileName,
83
- publicKey: parsed.data,
84
- privateKeyPath,
85
- publicKeyPath,
86
- },
87
- };
88
- }
89
- export async function addManagementSigner(config, input) {
90
- let normalizedNewPublicKey;
91
- try {
92
- normalizedNewPublicKey = normalizeEd25519PublicKeyToHex(input.newPublicKey, toError);
93
- }
94
- catch (error) {
95
- return {
96
- ok: false,
97
- reason: error instanceof Error ? error.message : String(error),
98
- };
99
- }
100
- const parsedKey = EdDSAPubKeySchema.safeParse(normalizedNewPublicKey);
101
- if (!parsedKey.success) {
102
- return { ok: false, reason: 'Invalid new public key.' };
103
- }
104
- const signed = await prepareSignedManagementRequest(config, async ({ selectedSigningKey }) => {
105
- if (normalizeEd25519PublicKeyToHex(selectedSigningKey.value, toError) ===
106
- parsedKey.data) {
107
- throw toError('Signer key cannot be the newly created key being added.');
108
- }
109
- const nodeKeyResult = await managementGet(config, '/getNodeKey');
110
- if (!nodeKeyResult.ok) {
111
- throw toError(nodeKeyResult.reason);
112
- }
113
- const nodeKeyParsed = NodeIdSchema.safeParse(nodeKeyResult.data);
114
- if (!nodeKeyParsed.success) {
115
- throw toError('Node ID response failed validation.');
116
- }
117
- return {
118
- newPublicKey: parsedKey.data,
119
- nodeKey: nodeKeyParsed.data,
120
- Nonce: selectedSigningKey.nonce,
121
- Sig: '',
122
- };
123
- });
124
- if (!signed.ok) {
125
- return signed;
126
- }
127
- const posted = await managementPost(config, '/addManagementKey', signed.data.body);
128
- if (!posted.ok) {
129
- return posted;
130
- }
131
- return {
132
- ok: true,
133
- data: {
134
- success: true,
135
- publicKey: parsedKey.data,
136
- nodeKey: String(signed.data.unsignedBody.nodeKey),
137
- },
138
- };
139
- }
140
- export async function setPreferredManagementSigner(config, input) {
141
- let normalized;
142
- try {
143
- normalized = normalizeEd25519PublicKeyToHex(input.publicKeyHex, toError);
144
- }
145
- catch (error) {
146
- return {
147
- ok: false,
148
- reason: error instanceof Error ? error.message : String(error),
149
- };
150
- }
151
- const parsedKey = EdDSAPubKeySchema.safeParse(normalized);
152
- if (!parsedKey.success) {
153
- return { ok: false, reason: 'Invalid public key hex.' };
154
- }
155
- const keyOptions = await fetchManagementKeyOptions(config);
156
- if (!keyOptions.ok) {
157
- return keyOptions;
158
- }
159
- const allowed = keyOptions.data.some(k => normalizeEd25519PublicKeyToHex(k.value, toError) === parsedKey.data);
160
- if (!allowed) {
161
- return {
162
- ok: false,
163
- reason: 'Preferred signer must already be in allowed management keys.',
164
- };
165
- }
166
- let localMatch;
167
- try {
168
- localMatch = await ensureLocalKeyPairForPublicKey(parsedKey.data, {
169
- keyRoot: MPA_HOME_DIR,
170
- toMcpApiError: toError,
171
- });
172
- }
173
- catch (error) {
174
- return {
175
- ok: false,
176
- reason: error instanceof Error ? error.message : String(error),
177
- };
178
- }
179
- const nodeKeyResult = await managementGet(config, '/getNodeKey');
180
- if (!nodeKeyResult.ok) {
181
- return nodeKeyResult;
182
- }
183
- const nodeKeyParsed = NodeIdSchema.safeParse(nodeKeyResult.data);
184
- if (!nodeKeyParsed.success) {
185
- return { ok: false, reason: 'Node ID response failed validation.' };
186
- }
187
- const signed = await prepareSignedManagementRequest(config, ({ selectedSigningKey }) => ({
188
- nodeKey: nodeKeyParsed.data,
189
- Nonce: selectedSigningKey.nonce,
190
- publicKey: parsedKey.data,
191
- Sig: '',
192
- }));
193
- if (!signed.ok) {
194
- return signed;
195
- }
196
- const body = buildClientSigManagementPostBody(signed.data.unsignedBody, signed.data.signingMessage, signed.data.signature);
197
- const posted = await managementPost(config, '/setPreferredSigner', body);
198
- if (!posted.ok) {
199
- return posted;
200
- }
201
- const nonceParsed = NonceSchema.safeParse(signed.data.unsignedBody.Nonce);
202
- return {
203
- ok: true,
204
- data: {
205
- success: true,
206
- publicKeyHex: parsedKey.data,
207
- signerPublicKey: normalizeEd25519PublicKeyToHex(signed.data.selectedSigningKey.value, toError),
208
- nodeKey: nodeKeyParsed.data,
209
- Nonce: nonceParsed.success ? nonceParsed.data : signed.data.selectedSigningKey.nonce,
210
- signedMessage: signed.data.signingMessage,
211
- clientSig: signed.data.signature,
212
- fileName: localMatch.fileName,
213
- },
214
- };
215
- }
216
- //# sourceMappingURL=management-keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"management-keys.js","sourceRoot":"","sources":["../../src/detops/management-keys.ts"],"names":[],"mappings":"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"}