@continuumdao/continuum-node-sdk 1.2.16 → 1.2.18

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 (254) hide show
  1. package/dist/api/management-key.d.ts.map +1 -1
  2. package/dist/api/management-key.js +110 -2
  3. package/dist/api/management-key.js.map +1 -1
  4. package/dist/config/keys.d.ts.map +1 -1
  5. package/dist/config/keys.js +14 -4
  6. package/dist/config/keys.js.map +1 -1
  7. package/dist/core/agent/mcp-servers-catalog.d.ts +12 -1
  8. package/dist/core/agent/mcp-servers-catalog.d.ts.map +1 -1
  9. package/dist/core/agent/mcp-servers-catalog.js +67 -4
  10. package/dist/core/agent/mcp-servers-catalog.js.map +1 -1
  11. package/dist/core/agent/webhooks-catalog.d.ts +10 -0
  12. package/dist/core/agent/webhooks-catalog.d.ts.map +1 -0
  13. package/dist/core/agent/webhooks-catalog.js +19 -0
  14. package/dist/core/agent/webhooks-catalog.js.map +1 -0
  15. package/dist/core/management-signer.d.ts.map +1 -1
  16. package/dist/core/management-signer.js +7 -3
  17. package/dist/core/management-signer.js.map +1 -1
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -0
  21. package/dist/index.js.map +1 -1
  22. package/package.json +3 -3
  23. package/dist/core/signing-flow.d.ts +0 -9
  24. package/dist/core/signing-flow.d.ts.map +0 -1
  25. package/dist/core/signing-flow.js +0 -139
  26. package/dist/core/signing-flow.js.map +0 -1
  27. package/dist/data/mpc-keys.d.ts +0 -8
  28. package/dist/data/mpc-keys.d.ts.map +0 -1
  29. package/dist/data/mpc-keys.js +0 -38
  30. package/dist/data/mpc-keys.js.map +0 -1
  31. package/dist/detops/general.d.ts +0 -11
  32. package/dist/detops/general.d.ts.map +0 -1
  33. package/dist/detops/general.js +0 -34
  34. package/dist/detops/general.js.map +0 -1
  35. package/dist/detops/group-actions.d.ts +0 -71
  36. package/dist/detops/group-actions.d.ts.map +0 -1
  37. package/dist/detops/group-actions.js +0 -360
  38. package/dist/detops/group-actions.js.map +0 -1
  39. package/dist/detops/groups.d.ts +0 -33
  40. package/dist/detops/groups.d.ts.map +0 -1
  41. package/dist/detops/groups.js +0 -223
  42. package/dist/detops/groups.js.map +0 -1
  43. package/dist/detops/keygen.d.ts +0 -72
  44. package/dist/detops/keygen.d.ts.map +0 -1
  45. package/dist/detops/keygen.js +0 -245
  46. package/dist/detops/keygen.js.map +0 -1
  47. package/dist/detops/management-keys.d.ts +0 -44
  48. package/dist/detops/management-keys.d.ts.map +0 -1
  49. package/dist/detops/management-keys.js +0 -216
  50. package/dist/detops/management-keys.js.map +0 -1
  51. package/dist/detops/management-signer.d.ts +0 -129
  52. package/dist/detops/management-signer.d.ts.map +0 -1
  53. package/dist/detops/management-signer.js +0 -619
  54. package/dist/detops/management-signer.js.map +0 -1
  55. package/dist/detops/management-signing.d.ts +0 -11
  56. package/dist/detops/management-signing.d.ts.map +0 -1
  57. package/dist/detops/management-signing.js +0 -131
  58. package/dist/detops/management-signing.js.map +0 -1
  59. package/dist/detops/mpc/broadcast-sign-result.d.ts +0 -9
  60. package/dist/detops/mpc/broadcast-sign-result.d.ts.map +0 -1
  61. package/dist/detops/mpc/broadcast-sign-result.js +0 -147
  62. package/dist/detops/mpc/broadcast-sign-result.js.map +0 -1
  63. package/dist/detops/mpc/bump-sign-result.d.ts +0 -25
  64. package/dist/detops/mpc/bump-sign-result.d.ts.map +0 -1
  65. package/dist/detops/mpc/bump-sign-result.js +0 -314
  66. package/dist/detops/mpc/bump-sign-result.js.map +0 -1
  67. package/dist/detops/mpc/client.d.ts +0 -15
  68. package/dist/detops/mpc/client.d.ts.map +0 -1
  69. package/dist/detops/mpc/client.js +0 -62
  70. package/dist/detops/mpc/client.js.map +0 -1
  71. package/dist/detops/mpc/compose-request.d.ts +0 -6
  72. package/dist/detops/mpc/compose-request.d.ts.map +0 -1
  73. package/dist/detops/mpc/compose-request.js +0 -33
  74. package/dist/detops/mpc/compose-request.js.map +0 -1
  75. package/dist/detops/mpc/context.d.ts +0 -11
  76. package/dist/detops/mpc/context.d.ts.map +0 -1
  77. package/dist/detops/mpc/context.js +0 -43
  78. package/dist/detops/mpc/context.js.map +0 -1
  79. package/dist/detops/mpc/forge-request.d.ts +0 -6
  80. package/dist/detops/mpc/forge-request.d.ts.map +0 -1
  81. package/dist/detops/mpc/forge-request.js +0 -46
  82. package/dist/detops/mpc/forge-request.js.map +0 -1
  83. package/dist/detops/mpc/gas-preflight.d.ts +0 -25
  84. package/dist/detops/mpc/gas-preflight.d.ts.map +0 -1
  85. package/dist/detops/mpc/gas-preflight.js +0 -101
  86. package/dist/detops/mpc/gas-preflight.js.map +0 -1
  87. package/dist/detops/mpc/list-ready.d.ts +0 -10
  88. package/dist/detops/mpc/list-ready.d.ts.map +0 -1
  89. package/dist/detops/mpc/list-ready.js +0 -48
  90. package/dist/detops/mpc/list-ready.js.map +0 -1
  91. package/dist/detops/mpc/management-post-sig.d.ts +0 -11
  92. package/dist/detops/mpc/management-post-sig.d.ts.map +0 -1
  93. package/dist/detops/mpc/management-post-sig.js +0 -20
  94. package/dist/detops/mpc/management-post-sig.js.map +0 -1
  95. package/dist/detops/mpc/mpa-top-up.d.ts +0 -18
  96. package/dist/detops/mpc/mpa-top-up.d.ts.map +0 -1
  97. package/dist/detops/mpc/mpa-top-up.js +0 -213
  98. package/dist/detops/mpc/mpa-top-up.js.map +0 -1
  99. package/dist/detops/mpc/register-keygen.d.ts +0 -6
  100. package/dist/detops/mpc/register-keygen.d.ts.map +0 -1
  101. package/dist/detops/mpc/register-keygen.js +0 -41
  102. package/dist/detops/mpc/register-keygen.js.map +0 -1
  103. package/dist/detops/mpc/schemas.d.ts +0 -251
  104. package/dist/detops/mpc/schemas.d.ts.map +0 -1
  105. package/dist/detops/mpc/schemas.js +0 -163
  106. package/dist/detops/mpc/schemas.js.map +0 -1
  107. package/dist/detops/mpc/sign-request-body.d.ts +0 -10
  108. package/dist/detops/mpc/sign-request-body.d.ts.map +0 -1
  109. package/dist/detops/mpc/sign-request-body.js +0 -64
  110. package/dist/detops/mpc/sign-request-body.js.map +0 -1
  111. package/dist/detops/mpc/sign-request-utils.d.ts +0 -33
  112. package/dist/detops/mpc/sign-request-utils.d.ts.map +0 -1
  113. package/dist/detops/mpc/sign-request-utils.js +0 -467
  114. package/dist/detops/mpc/sign-request-utils.js.map +0 -1
  115. package/dist/detops/mpc/transfer-native.d.ts +0 -6
  116. package/dist/detops/mpc/transfer-native.d.ts.map +0 -1
  117. package/dist/detops/mpc/transfer-native.js +0 -167
  118. package/dist/detops/mpc/transfer-native.js.map +0 -1
  119. package/dist/detops/mpc/transfer-tokens.d.ts +0 -15
  120. package/dist/detops/mpc/transfer-tokens.d.ts.map +0 -1
  121. package/dist/detops/mpc/transfer-tokens.js +0 -110
  122. package/dist/detops/mpc/transfer-tokens.js.map +0 -1
  123. package/dist/detops/mpc/trigger-sign-result.d.ts +0 -8
  124. package/dist/detops/mpc/trigger-sign-result.d.ts.map +0 -1
  125. package/dist/detops/mpc/trigger-sign-result.js +0 -244
  126. package/dist/detops/mpc/trigger-sign-result.js.map +0 -1
  127. package/dist/detops/mpc/types.d.ts +0 -62
  128. package/dist/detops/mpc/types.d.ts.map +0 -1
  129. package/dist/detops/mpc/types.js +0 -2
  130. package/dist/detops/mpc/types.js.map +0 -1
  131. package/dist/detops/node-info.d.ts +0 -27
  132. package/dist/detops/node-info.d.ts.map +0 -1
  133. package/dist/detops/node-info.js +0 -96
  134. package/dist/detops/node-info.js.map +0 -1
  135. package/dist/detops/registry/address-book.d.ts +0 -25
  136. package/dist/detops/registry/address-book.d.ts.map +0 -1
  137. package/dist/detops/registry/address-book.js +0 -83
  138. package/dist/detops/registry/address-book.js.map +0 -1
  139. package/dist/detops/registry/networks.d.ts +0 -20
  140. package/dist/detops/registry/networks.d.ts.map +0 -1
  141. package/dist/detops/registry/networks.js +0 -154
  142. package/dist/detops/registry/networks.js.map +0 -1
  143. package/dist/detops/registry/tokens.d.ts +0 -29
  144. package/dist/detops/registry/tokens.d.ts.map +0 -1
  145. package/dist/detops/registry/tokens.js +0 -142
  146. package/dist/detops/registry/tokens.js.map +0 -1
  147. package/dist/detops/result.d.ts +0 -21
  148. package/dist/detops/result.d.ts.map +0 -1
  149. package/dist/detops/result.js +0 -2
  150. package/dist/detops/result.js.map +0 -1
  151. package/dist/detops/schemas.d.ts +0 -153
  152. package/dist/detops/schemas.d.ts.map +0 -1
  153. package/dist/detops/schemas.js +0 -82
  154. package/dist/detops/schemas.js.map +0 -1
  155. package/dist/detops/signing-flow.d.ts +0 -9
  156. package/dist/detops/signing-flow.d.ts.map +0 -1
  157. package/dist/detops/signing-flow.js +0 -139
  158. package/dist/detops/signing-flow.js.map +0 -1
  159. package/dist/detops/types.d.ts +0 -58
  160. package/dist/detops/types.d.ts.map +0 -1
  161. package/dist/detops/types.js +0 -46
  162. package/dist/detops/types.js.map +0 -1
  163. package/dist/internal/ed25519/management-signing.d.ts +0 -51
  164. package/dist/internal/ed25519/management-signing.d.ts.map +0 -1
  165. package/dist/internal/ed25519/management-signing.js +0 -198
  166. package/dist/internal/ed25519/management-signing.js.map +0 -1
  167. package/dist/internal/ed25519/openssh-ed25519.d.ts +0 -20
  168. package/dist/internal/ed25519/openssh-ed25519.d.ts.map +0 -1
  169. package/dist/internal/ed25519/openssh-ed25519.js +0 -129
  170. package/dist/internal/ed25519/openssh-ed25519.js.map +0 -1
  171. package/dist/internal/management-request-signing.d.ts +0 -32
  172. package/dist/internal/management-request-signing.d.ts.map +0 -1
  173. package/dist/internal/management-request-signing.js +0 -186
  174. package/dist/internal/management-request-signing.js.map +0 -1
  175. package/dist/mcp/detops/registry/address-book.d.ts +0 -4
  176. package/dist/mcp/detops/registry/address-book.d.ts.map +0 -1
  177. package/dist/mcp/detops/registry/address-book.js +0 -39
  178. package/dist/mcp/detops/registry/address-book.js.map +0 -1
  179. package/dist/mcp/detops/registry/networks.d.ts +0 -4
  180. package/dist/mcp/detops/registry/networks.d.ts.map +0 -1
  181. package/dist/mcp/detops/registry/networks.js +0 -32
  182. package/dist/mcp/detops/registry/networks.js.map +0 -1
  183. package/dist/mcp/detops/registry/tokens.d.ts +0 -4
  184. package/dist/mcp/detops/registry/tokens.d.ts.map +0 -1
  185. package/dist/mcp/detops/registry/tokens.js +0 -43
  186. package/dist/mcp/detops/registry/tokens.js.map +0 -1
  187. package/dist/mcp/ed25519/management-signing.d.ts +0 -51
  188. package/dist/mcp/ed25519/management-signing.d.ts.map +0 -1
  189. package/dist/mcp/ed25519/management-signing.js +0 -198
  190. package/dist/mcp/ed25519/management-signing.js.map +0 -1
  191. package/dist/mcp/ed25519/openssh-ed25519.d.ts +0 -20
  192. package/dist/mcp/ed25519/openssh-ed25519.d.ts.map +0 -1
  193. package/dist/mcp/ed25519/openssh-ed25519.js +0 -129
  194. package/dist/mcp/ed25519/openssh-ed25519.js.map +0 -1
  195. package/dist/mcp/groups.d.ts +0 -71
  196. package/dist/mcp/groups.d.ts.map +0 -1
  197. package/dist/mcp/groups.js +0 -360
  198. package/dist/mcp/groups.js.map +0 -1
  199. package/dist/mcp/management-keys.d.ts +0 -4
  200. package/dist/mcp/management-keys.d.ts.map +0 -1
  201. package/dist/mcp/management-keys.js +0 -75
  202. package/dist/mcp/management-keys.js.map +0 -1
  203. package/dist/mcp/normalize.d.ts +0 -15
  204. package/dist/mcp/normalize.d.ts.map +0 -1
  205. package/dist/mcp/normalize.js +0 -204
  206. package/dist/mcp/normalize.js.map +0 -1
  207. package/dist/mcp/schemas.d.ts +0 -360
  208. package/dist/mcp/schemas.d.ts.map +0 -1
  209. package/dist/mcp/schemas.js +0 -263
  210. package/dist/mcp/schemas.js.map +0 -1
  211. package/dist/mcp/signing.d.ts +0 -32
  212. package/dist/mcp/signing.d.ts.map +0 -1
  213. package/dist/mcp/signing.js +0 -186
  214. package/dist/mcp/signing.js.map +0 -1
  215. package/dist/ops/general.d.ts +0 -11
  216. package/dist/ops/general.d.ts.map +0 -1
  217. package/dist/ops/general.js +0 -34
  218. package/dist/ops/general.js.map +0 -1
  219. package/dist/ops/groups.d.ts +0 -17
  220. package/dist/ops/groups.d.ts.map +0 -1
  221. package/dist/ops/groups.js +0 -105
  222. package/dist/ops/groups.js.map +0 -1
  223. package/dist/ops/management-signing.d.ts +0 -11
  224. package/dist/ops/management-signing.d.ts.map +0 -1
  225. package/dist/ops/management-signing.js +0 -131
  226. package/dist/ops/management-signing.js.map +0 -1
  227. package/dist/ops/result.d.ts +0 -21
  228. package/dist/ops/result.d.ts.map +0 -1
  229. package/dist/ops/result.js +0 -2
  230. package/dist/ops/result.js.map +0 -1
  231. package/dist/ops/schemas.d.ts +0 -153
  232. package/dist/ops/schemas.d.ts.map +0 -1
  233. package/dist/ops/schemas.js +0 -82
  234. package/dist/ops/schemas.js.map +0 -1
  235. package/dist/ops/signing-flow.d.ts +0 -8
  236. package/dist/ops/signing-flow.d.ts.map +0 -1
  237. package/dist/ops/signing-flow.js +0 -125
  238. package/dist/ops/signing-flow.js.map +0 -1
  239. package/dist/ops/types.d.ts +0 -58
  240. package/dist/ops/types.d.ts.map +0 -1
  241. package/dist/ops/types.js +0 -46
  242. package/dist/ops/types.js.map +0 -1
  243. package/dist/registry/address-book.d.ts +0 -25
  244. package/dist/registry/address-book.d.ts.map +0 -1
  245. package/dist/registry/address-book.js +0 -103
  246. package/dist/registry/address-book.js.map +0 -1
  247. package/dist/registry/networks.d.ts +0 -18
  248. package/dist/registry/networks.d.ts.map +0 -1
  249. package/dist/registry/networks.js +0 -180
  250. package/dist/registry/networks.js.map +0 -1
  251. package/dist/registry/tokens.d.ts +0 -29
  252. package/dist/registry/tokens.d.ts.map +0 -1
  253. package/dist/registry/tokens.js +0 -157
  254. 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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"}