@continuumdao/continuum-node-sdk 1.2.11 → 1.2.13

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 +25 -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 +67 -4
  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,360 +0,0 @@
1
- import { z } from 'zod';
2
- import { buildManagementQueryPath, managementGet, managementPost, } from '../api/management-api.js';
3
- import { FilterSchema, GroupIdSchema, GroupRequestIdSchema, NodeIdSchema, } from '../schemas/extended.js';
4
- import { isSameNodeSet, normalizeGroupRequest, normalizeGroupResult, normalizeLegacyGroupListEntry, normalizeNodeIdList, } from '../internal/normalize.js';
5
- import { prepareSignedManagementRequest, toSelectedSigningKey, } from '../detops/management-signer.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=group-actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"group-actions.js","sourceRoot":"","sources":["../../src/detops/group-actions.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import type { NodeSdkConfig } from '../config/schema.js';
2
- import type { SdkResult } from './result.js';
3
- import { type FilterType, type GroupRequest, type GroupResult, type NodeId } from './types.js';
4
- import { type ManagementSigningMethod } from '../schemas/extended.js';
5
- import { toSelectedSigningKey } from './management-signer.js';
6
- export declare function availableNodeIds(config: NodeSdkConfig): Promise<SdkResult<{
7
- nodeIps: string[];
8
- nodeIds: string[];
9
- }>>;
10
- export declare function validGroupNodeSets(config: NodeSdkConfig): Promise<SdkResult<{
11
- nodeSets: string[][];
12
- }>>;
13
- export declare function listGroupRequests(config: NodeSdkConfig, filter?: FilterType): Promise<SdkResult<{
14
- groupRequests: GroupRequest[];
15
- }>>;
16
- export declare function listGroupResults(config: NodeSdkConfig): Promise<SdkResult<{
17
- groups: GroupResult[];
18
- }>>;
19
- export declare function createGroupRequest(config: NodeSdkConfig, input: {
20
- nodeIds: NodeId[];
21
- }, signing?: ManagementSigningMethod): Promise<SdkResult<{
22
- groupRequestId: string;
23
- selectedSigningKey?: ReturnType<typeof toSelectedSigningKey>;
24
- signingMessage: string;
25
- }>>;
26
- export declare function acceptGroupRequest(config: NodeSdkConfig, input: {
27
- requestId: string;
28
- }, signing?: ManagementSigningMethod): Promise<SdkResult<{
29
- message: string;
30
- selectedSigningKey?: ReturnType<typeof toSelectedSigningKey>;
31
- signingMessage: string;
32
- }>>;
33
- //# sourceMappingURL=groups.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/detops/groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAOvD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAK3C,OAAO,EAMN,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAEN,KAAK,uBAAuB,EAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEN,oBAAoB,EACpB,MAAM,wBAAwB,CAAC;AAWhC,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAAC,CAuB5D;AAwBD,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;CAAC,CAAC,CAAC,CA6B5C;AAED,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,UAAkB,GACxB,OAAO,CAAC,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAC,CAAC,CAAC,CAiCrD;AAMD,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAC,CAAC,CAAC,CAuB7C;AA0BD,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAC,EAC1B,OAAO,GAAE,uBAAoD,GAC3D,OAAO,CACT,SAAS,CAAC;IACT,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC,CACF,CAqEA;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,EAC1B,OAAO,GAAE,uBAAoD,GAC3D,OAAO,CACT,SAAS,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC,CACF,CAoDA"}
@@ -1,223 +0,0 @@
1
- import { buildManagementQueryPath, managementGet, managementPost, } from '../api/management-api.js';
2
- import { nodeId } from './general.js';
3
- import { GroupRequestsResponseSchema, GroupResultsResponseSchema, } from './schemas.js';
4
- import { FilterSchema, GroupRequestIdSchema, GroupRequestSchema, GroupResultSchema, NodeIdSchema, } from './types.js';
5
- import { DEFAULT_MANAGEMENT_SIGNING, } from '../schemas/extended.js';
6
- import { prepareSignedManagementRequest, toSelectedSigningKey, } from './management-signer.js';
7
- import { z } from 'zod';
8
- export async function availableNodeIds(config) {
9
- const result = await managementGet(config, '/getConfiguredNodeKeys');
10
- if (!result.ok) {
11
- return result;
12
- }
13
- const nodeIps = [];
14
- const nodeIds = [];
15
- for (const node of result.data.nodes ?? []) {
16
- const parsed = NodeIdSchema.safeParse(node.publicKey);
17
- if (!parsed.success) {
18
- continue;
19
- }
20
- nodeIps.push(node.address ?? '');
21
- nodeIds.push(parsed.data);
22
- }
23
- return { ok: true, data: { nodeIps, nodeIds } };
24
- }
25
- function combinationsIncluding(nodeIds, required, minSize) {
26
- const others = nodeIds.filter(id => id !== required);
27
- const results = [];
28
- const visit = (start, picked) => {
29
- if (picked.length >= minSize) {
30
- results.push([...picked].sort());
31
- }
32
- for (let index = start; index < others.length; index += 1) {
33
- visit(index + 1, [...picked, others[index]]);
34
- }
35
- };
36
- visit(0, [required]);
37
- return results;
38
- }
39
- export async function validGroupNodeSets(config) {
40
- const [clientNode, configured] = await Promise.all([
41
- nodeId(config),
42
- availableNodeIds(config),
43
- ]);
44
- if (!clientNode.ok) {
45
- return clientNode;
46
- }
47
- if (!configured.ok) {
48
- return configured;
49
- }
50
- const allowed = new Set(configured.data.nodeIds);
51
- allowed.add(clientNode.data.nodeId);
52
- const nodeSets = combinationsIncluding([...allowed], clientNode.data.nodeId, 2);
53
- if (nodeSets.length === 0) {
54
- return {
55
- ok: false,
56
- reason: 'No valid group node sets (need at least two configured nodes).',
57
- };
58
- }
59
- return { ok: true, data: { nodeSets } };
60
- }
61
- export async function listGroupRequests(config, filter = 'all') {
62
- const parsedFilter = FilterSchema.safeParse(filter);
63
- if (!parsedFilter.success) {
64
- return { ok: false, reason: 'Invalid group request filter.' };
65
- }
66
- const path = buildManagementQueryPath('/listNewGroupRequests', {
67
- filter: parsedFilter.data,
68
- pagesize: '100',
69
- });
70
- const result = await managementGet(config, path);
71
- if (!result.ok) {
72
- return result;
73
- }
74
- const rawRequests = Array.isArray(result.data) ? result.data : [];
75
- const groupRequestsList = [];
76
- for (const entry of rawRequests) {
77
- const parsed = GroupRequestSchema.safeParse(entry);
78
- if (parsed.success) {
79
- groupRequestsList.push(parsed.data);
80
- }
81
- }
82
- const validated = GroupRequestsResponseSchema.safeParse({
83
- groupRequests: groupRequestsList,
84
- });
85
- if (!validated.success) {
86
- return { ok: false, reason: 'Group requests response failed validation.' };
87
- }
88
- return { ok: true, data: validated.data };
89
- }
90
- export async function listGroupResults(config) {
91
- const result = await managementGet(config, '/listGroupResults');
92
- if (!result.ok) {
93
- return result;
94
- }
95
- const groups = [];
96
- for (const entry of result.data.groups ?? []) {
97
- const parsed = GroupResultSchema.safeParse(entry);
98
- if (parsed.success) {
99
- groups.push(parsed.data);
100
- }
101
- }
102
- const validated = GroupResultsResponseSchema.safeParse({ groups });
103
- if (!validated.success) {
104
- return { ok: false, reason: 'Group results response failed validation.' };
105
- }
106
- return { ok: true, data: validated.data };
107
- }
108
- function normalizeNodeIdList(nodeIds) {
109
- return Array.from(new Set(nodeIds)).sort();
110
- }
111
- function isSameNodeSet(left, right) {
112
- const leftNormalized = normalizeNodeIdList(left);
113
- const rightNormalized = normalizeNodeIdList(right);
114
- if (leftNormalized.length !== rightNormalized.length) {
115
- return false;
116
- }
117
- return leftNormalized.every((value, index) => value === rightNormalized[index]);
118
- }
119
- async function groupExistsForNodeIds(config, nodeIds) {
120
- const results = await listGroupResults(config);
121
- if (!results.ok) {
122
- return false;
123
- }
124
- return results.data.groups.some(group => isSameNodeSet(group.nodeKeys, nodeIds));
125
- }
126
- export async function createGroupRequest(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
127
- const nodeIdsParsed = z.array(NodeIdSchema).min(2).safeParse(input.nodeIds);
128
- if (!nodeIdsParsed.success) {
129
- return { ok: false, reason: 'Invalid nodeIds input.' };
130
- }
131
- const [self, configured] = await Promise.all([
132
- nodeId(config),
133
- availableNodeIds(config),
134
- ]);
135
- if (!self.ok) {
136
- return self;
137
- }
138
- if (!configured.ok) {
139
- return configured;
140
- }
141
- const allowed = new Set(configured.data.nodeIds);
142
- allowed.add(self.data.nodeId);
143
- const keyList = normalizeNodeIdList(nodeIdsParsed.data);
144
- const invalid = keyList.filter(id => !allowed.has(id));
145
- if (invalid.length > 0) {
146
- return {
147
- ok: false,
148
- reason: 'nodeIds contains values not present in configured nodes.',
149
- };
150
- }
151
- if (!keyList.includes(self.data.nodeId)) {
152
- return {
153
- ok: false,
154
- reason: 'Selected nodeIds must include the originator node ID.',
155
- };
156
- }
157
- if (await groupExistsForNodeIds(config, keyList)) {
158
- return { ok: false, reason: 'A group with this exact node set already exists.' };
159
- }
160
- const signed = await prepareSignedManagementRequest(config, signing, () => ({
161
- keyList,
162
- BrokerArray: [],
163
- }));
164
- if (!signed.ok) {
165
- return signed;
166
- }
167
- const posted = await managementPost(config, '/newGroupRequest', signed.data.body);
168
- if (!posted.ok) {
169
- return posted;
170
- }
171
- const requestIdParsed = GroupRequestIdSchema.safeParse(posted.data);
172
- return {
173
- ok: true,
174
- data: {
175
- groupRequestId: requestIdParsed.success ? requestIdParsed.data : posted.data,
176
- selectedSigningKey: signed.data.selectedSigningKey
177
- ? toSelectedSigningKey(signed.data.selectedSigningKey)
178
- : undefined,
179
- signingMessage: signed.data.signingMessage,
180
- },
181
- };
182
- }
183
- export async function acceptGroupRequest(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
184
- const requestIdParsed = GroupRequestIdSchema.safeParse(input.requestId);
185
- if (!requestIdParsed.success) {
186
- return { ok: false, reason: 'Invalid group request ID.' };
187
- }
188
- const path = buildManagementQueryPath('/getNewGroupRequestById', {
189
- id: requestIdParsed.data,
190
- });
191
- const raw = await managementGet(config, path);
192
- if (!raw.ok) {
193
- return raw;
194
- }
195
- const requestParsed = GroupRequestSchema.safeParse(raw.data);
196
- if (!requestParsed.success) {
197
- return { ok: false, reason: 'Group request response failed validation.' };
198
- }
199
- if (requestParsed.data.status !== 'pending') {
200
- return { ok: false, reason: 'Group request is not pending.' };
201
- }
202
- const signed = await prepareSignedManagementRequest(config, signing, () => ({
203
- requestId: requestIdParsed.data,
204
- }));
205
- if (!signed.ok) {
206
- return signed;
207
- }
208
- const posted = await managementPost(config, '/newGroupRequestAgree', signed.data.body);
209
- if (!posted.ok) {
210
- return posted;
211
- }
212
- return {
213
- ok: true,
214
- data: {
215
- message: posted.data,
216
- selectedSigningKey: signed.data.selectedSigningKey
217
- ? toSelectedSigningKey(signed.data.selectedSigningKey)
218
- : undefined,
219
- signingMessage: signed.data.signingMessage,
220
- },
221
- };
222
- }
223
- //# sourceMappingURL=groups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/detops/groups.ts"],"names":[],"mappings":"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"}