@nirvana-labs/nirvana-mcp 1.45.0 → 1.45.1

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 (56) hide show
  1. package/code-tool.d.mts +4 -1
  2. package/code-tool.d.mts.map +1 -1
  3. package/code-tool.d.ts +4 -1
  4. package/code-tool.d.ts.map +1 -1
  5. package/code-tool.js +14 -1
  6. package/code-tool.js.map +1 -1
  7. package/code-tool.mjs +14 -1
  8. package/code-tool.mjs.map +1 -1
  9. package/http.d.mts.map +1 -1
  10. package/http.d.ts.map +1 -1
  11. package/http.js +2 -1
  12. package/http.js.map +1 -1
  13. package/http.mjs +2 -1
  14. package/http.mjs.map +1 -1
  15. package/index.js +1 -1
  16. package/index.js.map +1 -1
  17. package/index.mjs +1 -1
  18. package/index.mjs.map +1 -1
  19. package/methods.d.mts +10 -0
  20. package/methods.d.mts.map +1 -0
  21. package/methods.d.ts +10 -0
  22. package/methods.d.ts.map +1 -0
  23. package/methods.js +466 -0
  24. package/methods.js.map +1 -0
  25. package/methods.mjs +462 -0
  26. package/methods.mjs.map +1 -0
  27. package/options.d.mts +3 -0
  28. package/options.d.mts.map +1 -1
  29. package/options.d.ts +3 -0
  30. package/options.d.ts.map +1 -1
  31. package/options.js +17 -0
  32. package/options.js.map +1 -1
  33. package/options.mjs +17 -0
  34. package/options.mjs.map +1 -1
  35. package/package.json +12 -2
  36. package/server.d.mts.map +1 -1
  37. package/server.d.ts.map +1 -1
  38. package/server.js +7 -2
  39. package/server.js.map +1 -1
  40. package/server.mjs +7 -2
  41. package/server.mjs.map +1 -1
  42. package/src/code-tool.ts +20 -1
  43. package/src/http.ts +3 -0
  44. package/src/index.ts +1 -1
  45. package/src/methods.ts +486 -0
  46. package/src/options.ts +23 -0
  47. package/src/server.ts +7 -2
  48. package/src/stdio.ts +3 -2
  49. package/stdio.d.mts +2 -1
  50. package/stdio.d.mts.map +1 -1
  51. package/stdio.d.ts +2 -1
  52. package/stdio.d.ts.map +1 -1
  53. package/stdio.js +2 -2
  54. package/stdio.js.map +1 -1
  55. package/stdio.mjs +2 -2
  56. package/stdio.mjs.map +1 -1
package/methods.js ADDED
@@ -0,0 +1,466 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sdkMethods = void 0;
4
+ exports.blockedMethodsForCodeTool = blockedMethodsForCodeTool;
5
+ exports.sdkMethods = [
6
+ {
7
+ clientCallName: 'client.user.get',
8
+ fullyQualifiedName: 'user.get',
9
+ httpMethod: 'get',
10
+ httpPath: '/v1/user',
11
+ },
12
+ {
13
+ clientCallName: 'client.user.security.update',
14
+ fullyQualifiedName: 'user.security.update',
15
+ httpMethod: 'patch',
16
+ httpPath: '/v1/user/security',
17
+ },
18
+ {
19
+ clientCallName: 'client.user.security.get',
20
+ fullyQualifiedName: 'user.security.get',
21
+ httpMethod: 'get',
22
+ httpPath: '/v1/user/security',
23
+ },
24
+ {
25
+ clientCallName: 'client.apiKeys.create',
26
+ fullyQualifiedName: 'apiKeys.create',
27
+ httpMethod: 'post',
28
+ httpPath: '/v1/api_keys',
29
+ },
30
+ {
31
+ clientCallName: 'client.apiKeys.update',
32
+ fullyQualifiedName: 'apiKeys.update',
33
+ httpMethod: 'patch',
34
+ httpPath: '/v1/api_keys/{api_key_id}',
35
+ },
36
+ {
37
+ clientCallName: 'client.apiKeys.list',
38
+ fullyQualifiedName: 'apiKeys.list',
39
+ httpMethod: 'get',
40
+ httpPath: '/v1/api_keys',
41
+ },
42
+ {
43
+ clientCallName: 'client.apiKeys.delete',
44
+ fullyQualifiedName: 'apiKeys.delete',
45
+ httpMethod: 'delete',
46
+ httpPath: '/v1/api_keys/{api_key_id}',
47
+ },
48
+ {
49
+ clientCallName: 'client.apiKeys.get',
50
+ fullyQualifiedName: 'apiKeys.get',
51
+ httpMethod: 'get',
52
+ httpPath: '/v1/api_keys/{api_key_id}',
53
+ },
54
+ {
55
+ clientCallName: 'client.operations.list',
56
+ fullyQualifiedName: 'operations.list',
57
+ httpMethod: 'get',
58
+ httpPath: '/v1/operations',
59
+ },
60
+ {
61
+ clientCallName: 'client.operations.get',
62
+ fullyQualifiedName: 'operations.get',
63
+ httpMethod: 'get',
64
+ httpPath: '/v1/operations/{operation_id}',
65
+ },
66
+ {
67
+ clientCallName: 'client.organizations.create',
68
+ fullyQualifiedName: 'organizations.create',
69
+ httpMethod: 'post',
70
+ httpPath: '/v1/organizations',
71
+ },
72
+ {
73
+ clientCallName: 'client.organizations.update',
74
+ fullyQualifiedName: 'organizations.update',
75
+ httpMethod: 'patch',
76
+ httpPath: '/v1/organizations/{organization_id}',
77
+ },
78
+ {
79
+ clientCallName: 'client.organizations.list',
80
+ fullyQualifiedName: 'organizations.list',
81
+ httpMethod: 'get',
82
+ httpPath: '/v1/organizations',
83
+ },
84
+ {
85
+ clientCallName: 'client.organizations.get',
86
+ fullyQualifiedName: 'organizations.get',
87
+ httpMethod: 'get',
88
+ httpPath: '/v1/organizations/{organization_id}',
89
+ },
90
+ {
91
+ clientCallName: 'client.projects.create',
92
+ fullyQualifiedName: 'projects.create',
93
+ httpMethod: 'post',
94
+ httpPath: '/v1/projects',
95
+ },
96
+ {
97
+ clientCallName: 'client.projects.update',
98
+ fullyQualifiedName: 'projects.update',
99
+ httpMethod: 'patch',
100
+ httpPath: '/v1/projects/{project_id}',
101
+ },
102
+ {
103
+ clientCallName: 'client.projects.list',
104
+ fullyQualifiedName: 'projects.list',
105
+ httpMethod: 'get',
106
+ httpPath: '/v1/projects',
107
+ },
108
+ {
109
+ clientCallName: 'client.projects.delete',
110
+ fullyQualifiedName: 'projects.delete',
111
+ httpMethod: 'delete',
112
+ httpPath: '/v1/projects/{project_id}',
113
+ },
114
+ {
115
+ clientCallName: 'client.projects.get',
116
+ fullyQualifiedName: 'projects.get',
117
+ httpMethod: 'get',
118
+ httpPath: '/v1/projects/{project_id}',
119
+ },
120
+ {
121
+ clientCallName: 'client.regions.list',
122
+ fullyQualifiedName: 'regions.list',
123
+ httpMethod: 'get',
124
+ httpPath: '/v1/regions',
125
+ },
126
+ {
127
+ clientCallName: 'client.regions.get',
128
+ fullyQualifiedName: 'regions.get',
129
+ httpMethod: 'get',
130
+ httpPath: '/v1/regions/{name}',
131
+ },
132
+ {
133
+ clientCallName: 'client.compute.vms.create',
134
+ fullyQualifiedName: 'compute.vms.create',
135
+ httpMethod: 'post',
136
+ httpPath: '/v1/compute/vms',
137
+ },
138
+ {
139
+ clientCallName: 'client.compute.vms.update',
140
+ fullyQualifiedName: 'compute.vms.update',
141
+ httpMethod: 'patch',
142
+ httpPath: '/v1/compute/vms/{vm_id}',
143
+ },
144
+ {
145
+ clientCallName: 'client.compute.vms.list',
146
+ fullyQualifiedName: 'compute.vms.list',
147
+ httpMethod: 'get',
148
+ httpPath: '/v1/compute/vms',
149
+ },
150
+ {
151
+ clientCallName: 'client.compute.vms.delete',
152
+ fullyQualifiedName: 'compute.vms.delete',
153
+ httpMethod: 'delete',
154
+ httpPath: '/v1/compute/vms/{vm_id}',
155
+ },
156
+ {
157
+ clientCallName: 'client.compute.vms.get',
158
+ fullyQualifiedName: 'compute.vms.get',
159
+ httpMethod: 'get',
160
+ httpPath: '/v1/compute/vms/{vm_id}',
161
+ },
162
+ {
163
+ clientCallName: 'client.compute.vms.restart',
164
+ fullyQualifiedName: 'compute.vms.restart',
165
+ httpMethod: 'post',
166
+ httpPath: '/v1/compute/vms/{vm_id}/restart',
167
+ },
168
+ {
169
+ clientCallName: 'client.compute.vms.availability.create',
170
+ fullyQualifiedName: 'compute.vms.availability.create',
171
+ httpMethod: 'post',
172
+ httpPath: '/v1/compute/vms/availability',
173
+ },
174
+ {
175
+ clientCallName: 'client.compute.vms.availability.update',
176
+ fullyQualifiedName: 'compute.vms.availability.update',
177
+ httpMethod: 'patch',
178
+ httpPath: '/v1/compute/vms/{vm_id}/availability',
179
+ },
180
+ {
181
+ clientCallName: 'client.compute.vms.volumes.list',
182
+ fullyQualifiedName: 'compute.vms.volumes.list',
183
+ httpMethod: 'get',
184
+ httpPath: '/v1/compute/vms/{vm_id}/volumes',
185
+ },
186
+ {
187
+ clientCallName: 'client.compute.vms.osImages.list',
188
+ fullyQualifiedName: 'compute.vms.osImages.list',
189
+ httpMethod: 'get',
190
+ httpPath: '/v1/compute/vms/os_images',
191
+ },
192
+ {
193
+ clientCallName: 'client.compute.volumes.create',
194
+ fullyQualifiedName: 'compute.volumes.create',
195
+ httpMethod: 'post',
196
+ httpPath: '/v1/compute/volumes',
197
+ },
198
+ {
199
+ clientCallName: 'client.compute.volumes.update',
200
+ fullyQualifiedName: 'compute.volumes.update',
201
+ httpMethod: 'patch',
202
+ httpPath: '/v1/compute/volumes/{volume_id}',
203
+ },
204
+ {
205
+ clientCallName: 'client.compute.volumes.list',
206
+ fullyQualifiedName: 'compute.volumes.list',
207
+ httpMethod: 'get',
208
+ httpPath: '/v1/compute/volumes',
209
+ },
210
+ {
211
+ clientCallName: 'client.compute.volumes.delete',
212
+ fullyQualifiedName: 'compute.volumes.delete',
213
+ httpMethod: 'delete',
214
+ httpPath: '/v1/compute/volumes/{volume_id}',
215
+ },
216
+ {
217
+ clientCallName: 'client.compute.volumes.attach',
218
+ fullyQualifiedName: 'compute.volumes.attach',
219
+ httpMethod: 'post',
220
+ httpPath: '/v1/compute/volumes/{volume_id}/attach',
221
+ },
222
+ {
223
+ clientCallName: 'client.compute.volumes.detach',
224
+ fullyQualifiedName: 'compute.volumes.detach',
225
+ httpMethod: 'post',
226
+ httpPath: '/v1/compute/volumes/{volume_id}/detach',
227
+ },
228
+ {
229
+ clientCallName: 'client.compute.volumes.get',
230
+ fullyQualifiedName: 'compute.volumes.get',
231
+ httpMethod: 'get',
232
+ httpPath: '/v1/compute/volumes/{volume_id}',
233
+ },
234
+ {
235
+ clientCallName: 'client.compute.volumes.availability.create',
236
+ fullyQualifiedName: 'compute.volumes.availability.create',
237
+ httpMethod: 'post',
238
+ httpPath: '/v1/compute/volumes/availability',
239
+ },
240
+ {
241
+ clientCallName: 'client.compute.volumes.availability.update',
242
+ fullyQualifiedName: 'compute.volumes.availability.update',
243
+ httpMethod: 'patch',
244
+ httpPath: '/v1/compute/volumes/{volume_id}/availability',
245
+ },
246
+ {
247
+ clientCallName: 'client.networking.vpcs.create',
248
+ fullyQualifiedName: 'networking.vpcs.create',
249
+ httpMethod: 'post',
250
+ httpPath: '/v1/networking/vpcs',
251
+ },
252
+ {
253
+ clientCallName: 'client.networking.vpcs.update',
254
+ fullyQualifiedName: 'networking.vpcs.update',
255
+ httpMethod: 'patch',
256
+ httpPath: '/v1/networking/vpcs/{vpc_id}',
257
+ },
258
+ {
259
+ clientCallName: 'client.networking.vpcs.list',
260
+ fullyQualifiedName: 'networking.vpcs.list',
261
+ httpMethod: 'get',
262
+ httpPath: '/v1/networking/vpcs',
263
+ },
264
+ {
265
+ clientCallName: 'client.networking.vpcs.delete',
266
+ fullyQualifiedName: 'networking.vpcs.delete',
267
+ httpMethod: 'delete',
268
+ httpPath: '/v1/networking/vpcs/{vpc_id}',
269
+ },
270
+ {
271
+ clientCallName: 'client.networking.vpcs.get',
272
+ fullyQualifiedName: 'networking.vpcs.get',
273
+ httpMethod: 'get',
274
+ httpPath: '/v1/networking/vpcs/{vpc_id}',
275
+ },
276
+ {
277
+ clientCallName: 'client.networking.vpcs.availability.create',
278
+ fullyQualifiedName: 'networking.vpcs.availability.create',
279
+ httpMethod: 'post',
280
+ httpPath: '/v1/networking/vpcs/availability',
281
+ },
282
+ {
283
+ clientCallName: 'client.networking.vpcs.availability.update',
284
+ fullyQualifiedName: 'networking.vpcs.availability.update',
285
+ httpMethod: 'patch',
286
+ httpPath: '/v1/networking/vpcs/{vpc_id}/availability',
287
+ },
288
+ {
289
+ clientCallName: 'client.networking.firewallRules.create',
290
+ fullyQualifiedName: 'networking.firewallRules.create',
291
+ httpMethod: 'post',
292
+ httpPath: '/v1/networking/vpcs/{vpc_id}/firewall_rules',
293
+ },
294
+ {
295
+ clientCallName: 'client.networking.firewallRules.update',
296
+ fullyQualifiedName: 'networking.firewallRules.update',
297
+ httpMethod: 'patch',
298
+ httpPath: '/v1/networking/vpcs/{vpc_id}/firewall_rules/{firewall_rule_id}',
299
+ },
300
+ {
301
+ clientCallName: 'client.networking.firewallRules.list',
302
+ fullyQualifiedName: 'networking.firewallRules.list',
303
+ httpMethod: 'get',
304
+ httpPath: '/v1/networking/vpcs/{vpc_id}/firewall_rules',
305
+ },
306
+ {
307
+ clientCallName: 'client.networking.firewallRules.delete',
308
+ fullyQualifiedName: 'networking.firewallRules.delete',
309
+ httpMethod: 'delete',
310
+ httpPath: '/v1/networking/vpcs/{vpc_id}/firewall_rules/{firewall_rule_id}',
311
+ },
312
+ {
313
+ clientCallName: 'client.networking.firewallRules.get',
314
+ fullyQualifiedName: 'networking.firewallRules.get',
315
+ httpMethod: 'get',
316
+ httpPath: '/v1/networking/vpcs/{vpc_id}/firewall_rules/{firewall_rule_id}',
317
+ },
318
+ {
319
+ clientCallName: 'client.networking.connect.connections.create',
320
+ fullyQualifiedName: 'networking.connect.connections.create',
321
+ httpMethod: 'post',
322
+ httpPath: '/v1/networking/connect/connections',
323
+ },
324
+ {
325
+ clientCallName: 'client.networking.connect.connections.update',
326
+ fullyQualifiedName: 'networking.connect.connections.update',
327
+ httpMethod: 'patch',
328
+ httpPath: '/v1/networking/connect/connections/{connection_id}',
329
+ },
330
+ {
331
+ clientCallName: 'client.networking.connect.connections.list',
332
+ fullyQualifiedName: 'networking.connect.connections.list',
333
+ httpMethod: 'get',
334
+ httpPath: '/v1/networking/connect/connections',
335
+ },
336
+ {
337
+ clientCallName: 'client.networking.connect.connections.delete',
338
+ fullyQualifiedName: 'networking.connect.connections.delete',
339
+ httpMethod: 'delete',
340
+ httpPath: '/v1/networking/connect/connections/{connection_id}',
341
+ },
342
+ {
343
+ clientCallName: 'client.networking.connect.connections.get',
344
+ fullyQualifiedName: 'networking.connect.connections.get',
345
+ httpMethod: 'get',
346
+ httpPath: '/v1/networking/connect/connections/{connection_id}',
347
+ },
348
+ {
349
+ clientCallName: 'client.networking.connect.routes.list',
350
+ fullyQualifiedName: 'networking.connect.routes.list',
351
+ httpMethod: 'get',
352
+ httpPath: '/v1/networking/connect/routes',
353
+ },
354
+ {
355
+ clientCallName: 'client.rpcNodes.flex.create',
356
+ fullyQualifiedName: 'rpcNodes.flex.create',
357
+ httpMethod: 'post',
358
+ httpPath: '/v1/rpc_nodes/flex',
359
+ },
360
+ {
361
+ clientCallName: 'client.rpcNodes.flex.update',
362
+ fullyQualifiedName: 'rpcNodes.flex.update',
363
+ httpMethod: 'patch',
364
+ httpPath: '/v1/rpc_nodes/flex/{node_id}',
365
+ },
366
+ {
367
+ clientCallName: 'client.rpcNodes.flex.list',
368
+ fullyQualifiedName: 'rpcNodes.flex.list',
369
+ httpMethod: 'get',
370
+ httpPath: '/v1/rpc_nodes/flex',
371
+ },
372
+ {
373
+ clientCallName: 'client.rpcNodes.flex.delete',
374
+ fullyQualifiedName: 'rpcNodes.flex.delete',
375
+ httpMethod: 'delete',
376
+ httpPath: '/v1/rpc_nodes/flex/{node_id}',
377
+ },
378
+ {
379
+ clientCallName: 'client.rpcNodes.flex.get',
380
+ fullyQualifiedName: 'rpcNodes.flex.get',
381
+ httpMethod: 'get',
382
+ httpPath: '/v1/rpc_nodes/flex/{node_id}',
383
+ },
384
+ {
385
+ clientCallName: 'client.rpcNodes.flex.blockchains.list',
386
+ fullyQualifiedName: 'rpcNodes.flex.blockchains.list',
387
+ httpMethod: 'get',
388
+ httpPath: '/v1/rpc_nodes/flex/blockchains',
389
+ },
390
+ {
391
+ clientCallName: 'client.rpcNodes.dedicated.list',
392
+ fullyQualifiedName: 'rpcNodes.dedicated.list',
393
+ httpMethod: 'get',
394
+ httpPath: '/v1/rpc_nodes/dedicated',
395
+ },
396
+ {
397
+ clientCallName: 'client.rpcNodes.dedicated.get',
398
+ fullyQualifiedName: 'rpcNodes.dedicated.get',
399
+ httpMethod: 'get',
400
+ httpPath: '/v1/rpc_nodes/dedicated/{node_id}',
401
+ },
402
+ {
403
+ clientCallName: 'client.rpcNodes.dedicated.blockchains.list',
404
+ fullyQualifiedName: 'rpcNodes.dedicated.blockchains.list',
405
+ httpMethod: 'get',
406
+ httpPath: '/v1/rpc_nodes/dedicated/blockchains',
407
+ },
408
+ ];
409
+ function allowedMethodsForCodeTool(options) {
410
+ if (!options) {
411
+ return undefined;
412
+ }
413
+ let allowedMethods;
414
+ if (options.codeAllowHttpGets || options.codeAllowedMethods) {
415
+ // Start with nothing allowed and then add into it from options
416
+ let allowedMethodsSet = new Set();
417
+ if (options.codeAllowHttpGets) {
418
+ // Add all methods that map to an HTTP GET
419
+ exports.sdkMethods
420
+ .filter((method) => method.httpMethod === 'get')
421
+ .forEach((method) => allowedMethodsSet.add(method));
422
+ }
423
+ if (options.codeAllowedMethods) {
424
+ // Add all methods that match any of the allowed regexps
425
+ const allowedRegexps = options.codeAllowedMethods.map((pattern) => {
426
+ try {
427
+ return new RegExp(pattern);
428
+ }
429
+ catch (e) {
430
+ throw new Error(`Invalid regex pattern for allowed method: "${pattern}": ${e instanceof Error ? e.message : e}`);
431
+ }
432
+ });
433
+ exports.sdkMethods
434
+ .filter((method) => allowedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)))
435
+ .forEach((method) => allowedMethodsSet.add(method));
436
+ }
437
+ allowedMethods = Array.from(allowedMethodsSet);
438
+ }
439
+ else {
440
+ // Start with everything allowed
441
+ allowedMethods = [...exports.sdkMethods];
442
+ }
443
+ if (options.codeBlockedMethods) {
444
+ // Filter down based on blocked regexps
445
+ const blockedRegexps = options.codeBlockedMethods.map((pattern) => {
446
+ try {
447
+ return new RegExp(pattern);
448
+ }
449
+ catch (e) {
450
+ throw new Error(`Invalid regex pattern for blocked method: "${pattern}": ${e instanceof Error ? e.message : e}`);
451
+ }
452
+ });
453
+ allowedMethods = allowedMethods.filter((method) => !blockedRegexps.some((regexp) => regexp.test(method.fullyQualifiedName)));
454
+ }
455
+ return allowedMethods;
456
+ }
457
+ function blockedMethodsForCodeTool(options) {
458
+ const allowedMethods = allowedMethodsForCodeTool(options);
459
+ if (!allowedMethods) {
460
+ return undefined;
461
+ }
462
+ const allowedSet = new Set(allowedMethods.map((method) => method.fullyQualifiedName));
463
+ // Return any methods that are not explicitly allowed
464
+ return exports.sdkMethods.filter((method) => !allowedSet.has(method.fullyQualifiedName));
465
+ }
466
+ //# sourceMappingURL=methods.js.map
package/methods.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["src/methods.ts"],"names":[],"mappings":"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"}