liara-mcp 1.0.0 → 1.0.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.
- package/dist/handlers/app-handlers.d.ts +3 -0
- package/dist/handlers/app-handlers.d.ts.map +1 -0
- package/dist/handlers/app-handlers.js +48 -0
- package/dist/handlers/app-handlers.js.map +1 -0
- package/dist/handlers/database-handlers.d.ts +3 -0
- package/dist/handlers/database-handlers.d.ts.map +1 -0
- package/dist/handlers/database-handlers.js +75 -0
- package/dist/handlers/database-handlers.js.map +1 -0
- package/dist/handlers/deployment-handlers.d.ts +3 -0
- package/dist/handlers/deployment-handlers.d.ts.map +1 -0
- package/dist/handlers/deployment-handlers.js +43 -0
- package/dist/handlers/deployment-handlers.js.map +1 -0
- package/dist/handlers/disk-handlers.d.ts +3 -0
- package/dist/handlers/disk-handlers.d.ts.map +1 -0
- package/dist/handlers/disk-handlers.js +48 -0
- package/dist/handlers/disk-handlers.js.map +1 -0
- package/dist/handlers/dns-handlers.d.ts +3 -0
- package/dist/handlers/dns-handlers.d.ts.map +1 -0
- package/dist/handlers/dns-handlers.js +63 -0
- package/dist/handlers/dns-handlers.js.map +1 -0
- package/dist/handlers/domain-handlers.d.ts +3 -0
- package/dist/handlers/domain-handlers.d.ts.map +1 -0
- package/dist/handlers/domain-handlers.js +28 -0
- package/dist/handlers/domain-handlers.js.map +1 -0
- package/dist/handlers/env-handlers.d.ts +3 -0
- package/dist/handlers/env-handlers.d.ts.map +1 -0
- package/dist/handlers/env-handlers.js +32 -0
- package/dist/handlers/env-handlers.js.map +1 -0
- package/dist/handlers/index.d.ts +7 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +80 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/mail-handlers.d.ts +3 -0
- package/dist/handlers/mail-handlers.d.ts.map +1 -0
- package/dist/handlers/mail-handlers.js +51 -0
- package/dist/handlers/mail-handlers.js.map +1 -0
- package/dist/handlers/network-handlers.d.ts +3 -0
- package/dist/handlers/network-handlers.d.ts.map +1 -0
- package/dist/handlers/network-handlers.js +28 -0
- package/dist/handlers/network-handlers.js.map +1 -0
- package/dist/handlers/observability-handlers.d.ts +3 -0
- package/dist/handlers/observability-handlers.d.ts.map +1 -0
- package/dist/handlers/observability-handlers.js +24 -0
- package/dist/handlers/observability-handlers.js.map +1 -0
- package/dist/handlers/plan-handlers.d.ts +3 -0
- package/dist/handlers/plan-handlers.d.ts.map +1 -0
- package/dist/handlers/plan-handlers.js +20 -0
- package/dist/handlers/plan-handlers.js.map +1 -0
- package/dist/handlers/settings-handlers.d.ts +3 -0
- package/dist/handlers/settings-handlers.d.ts.map +1 -0
- package/dist/handlers/settings-handlers.js +29 -0
- package/dist/handlers/settings-handlers.js.map +1 -0
- package/dist/handlers/storage-handlers.d.ts +3 -0
- package/dist/handlers/storage-handlers.d.ts.map +1 -0
- package/dist/handlers/storage-handlers.js +48 -0
- package/dist/handlers/storage-handlers.js.map +1 -0
- package/dist/handlers/types.d.ts +27 -0
- package/dist/handlers/types.d.ts.map +1 -0
- package/dist/handlers/types.js +31 -0
- package/dist/handlers/types.js.map +1 -0
- package/dist/handlers/user-handlers.d.ts +3 -0
- package/dist/handlers/user-handlers.d.ts.map +1 -0
- package/dist/handlers/user-handlers.js +16 -0
- package/dist/handlers/user-handlers.js.map +1 -0
- package/dist/handlers/vm-handlers.d.ts +3 -0
- package/dist/handlers/vm-handlers.d.ts.map +1 -0
- package/dist/handlers/vm-handlers.js +68 -0
- package/dist/handlers/vm-handlers.js.map +1 -0
- package/dist/index.js +6 -2986
- package/dist/index.js.map +1 -1
- package/dist/tools/app-tools.d.ts +6 -0
- package/dist/tools/app-tools.d.ts.map +1 -0
- package/dist/tools/app-tools.js +133 -0
- package/dist/tools/app-tools.js.map +1 -0
- package/dist/tools/database-tools.d.ts +6 -0
- package/dist/tools/database-tools.d.ts.map +1 -0
- package/dist/tools/database-tools.js +252 -0
- package/dist/tools/database-tools.js.map +1 -0
- package/dist/tools/deployment-tools.d.ts +6 -0
- package/dist/tools/deployment-tools.d.ts.map +1 -0
- package/dist/tools/deployment-tools.js +140 -0
- package/dist/tools/deployment-tools.js.map +1 -0
- package/dist/tools/disk-tools.d.ts +6 -0
- package/dist/tools/disk-tools.d.ts.map +1 -0
- package/dist/tools/disk-tools.js +167 -0
- package/dist/tools/disk-tools.js.map +1 -0
- package/dist/tools/dns-tools.d.ts +6 -0
- package/dist/tools/dns-tools.d.ts.map +1 -0
- package/dist/tools/dns-tools.js +184 -0
- package/dist/tools/dns-tools.js.map +1 -0
- package/dist/tools/domain-tools.d.ts +6 -0
- package/dist/tools/domain-tools.d.ts.map +1 -0
- package/dist/tools/domain-tools.js +63 -0
- package/dist/tools/domain-tools.js.map +1 -0
- package/dist/tools/env-tools.d.ts +6 -0
- package/dist/tools/env-tools.d.ts.map +1 -0
- package/dist/tools/env-tools.js +112 -0
- package/dist/tools/env-tools.js.map +1 -0
- package/dist/tools/index.d.ts +25 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +57 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/mail-tools.d.ts +6 -0
- package/dist/tools/mail-tools.d.ts.map +1 -0
- package/dist/tools/mail-tools.js +148 -0
- package/dist/tools/mail-tools.js.map +1 -0
- package/dist/tools/network-tools.d.ts +6 -0
- package/dist/tools/network-tools.d.ts.map +1 -0
- package/dist/tools/network-tools.js +63 -0
- package/dist/tools/network-tools.js.map +1 -0
- package/dist/tools/observability-tools.d.ts +6 -0
- package/dist/tools/observability-tools.d.ts.map +1 -0
- package/dist/tools/observability-tools.js +49 -0
- package/dist/tools/observability-tools.js.map +1 -0
- package/dist/tools/plan-tools.d.ts +6 -0
- package/dist/tools/plan-tools.d.ts.map +1 -0
- package/dist/tools/plan-tools.js +38 -0
- package/dist/tools/plan-tools.js.map +1 -0
- package/dist/tools/settings-tools.d.ts +6 -0
- package/dist/tools/settings-tools.d.ts.map +1 -0
- package/dist/tools/settings-tools.js +77 -0
- package/dist/tools/settings-tools.js.map +1 -0
- package/dist/tools/storage-tools.d.ts +6 -0
- package/dist/tools/storage-tools.d.ts.map +1 -0
- package/dist/tools/storage-tools.js +166 -0
- package/dist/tools/storage-tools.js.map +1 -0
- package/dist/tools/types.d.ts +34 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +27 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/user-tools.d.ts +6 -0
- package/dist/tools/user-tools.d.ts.map +1 -0
- package/dist/tools/user-tools.js +13 -0
- package/dist/tools/user-tools.js.map +1 -0
- package/dist/tools/vm-tools.d.ts +6 -0
- package/dist/tools/vm-tools.d.ts.map +1 -0
- package/dist/tools/vm-tools.js +240 -0
- package/dist/tools/vm-tools.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/network-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA6B5B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as networkService from '../services/network.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleNetworkTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_networks': {
|
|
9
|
+
const networks = await networkService.listNetworks(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(networks);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_network': {
|
|
13
|
+
const network = await networkService.getNetwork(client, args.networkId);
|
|
14
|
+
return jsonResponse(network);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_create_network': {
|
|
17
|
+
const network = await networkService.createNetwork(client, args.name, args?.cidr);
|
|
18
|
+
return successResponse(`Network "${network.name}" created successfully.\n${JSON.stringify(network, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_delete_network': {
|
|
21
|
+
await networkService.deleteNetwork(client, args.networkId);
|
|
22
|
+
return successResponse(`Network "${args.networkId}" deleted successfully.`);
|
|
23
|
+
}
|
|
24
|
+
default:
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=network-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-handlers.js","sourceRoot":"","sources":["../../src/handlers/network-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAA2B,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAK,CAAC,SAAmB,CAAC,CAAC;YACnF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAC9C,MAAM,EACN,IAAK,CAAC,IAAc,EACpB,IAAI,EAAE,IAA0B,CACnC,CAAC;YACF,OAAO,eAAe,CAAC,YAAY,OAAO,CAAC,IAAI,4BAA4B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACnH,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC1B,MAAM,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,IAAK,CAAC,SAAmB,CAAC,CAAC;YACtE,OAAO,eAAe,CAAC,YAAY,IAAK,CAAC,SAAS,yBAAyB,CAAC,CAAC;QACjF,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/observability-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAEnE,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA2B5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as observabilityService from '../services/observability.js';
|
|
5
|
+
import { jsonResponse } from './types.js';
|
|
6
|
+
export async function handleObservabilityTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_get_metrics': {
|
|
9
|
+
const metrics = await observabilityService.getAppMetrics(client, args.appName, args?.period);
|
|
10
|
+
return jsonResponse(metrics);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_logs': {
|
|
13
|
+
const logs = await observabilityService.getAppLogs(client, args.appName, {
|
|
14
|
+
limit: args?.limit,
|
|
15
|
+
since: args?.since,
|
|
16
|
+
until: args?.until,
|
|
17
|
+
});
|
|
18
|
+
return jsonResponse(logs);
|
|
19
|
+
}
|
|
20
|
+
default:
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=observability-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability-handlers.js","sourceRoot":"","sources":["../../src/handlers/observability-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,CACpD,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAI,EAAE,MAA4B,CACrC,CAAC;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAC9C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB;gBACI,KAAK,EAAE,IAAI,EAAE,KAA2B;gBACxC,KAAK,EAAE,IAAI,EAAE,KAA2B;gBACxC,KAAK,EAAE,IAAI,EAAE,KAA2B;aAC3C,CACJ,CAAC;YACF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/plan-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAmC,MAAM,YAAY,CAAC;AAEtF,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmB5B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as planService from '../services/plans.js';
|
|
5
|
+
import { extractPagination, jsonResponse } from './types.js';
|
|
6
|
+
export async function handlePlanTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_plans': {
|
|
9
|
+
const plans = await planService.listPlans(client, args?.planType, extractPagination(args));
|
|
10
|
+
return jsonResponse(plans);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_plan': {
|
|
13
|
+
const plan = await planService.getPlan(client, args.planId);
|
|
14
|
+
return jsonResponse(plan);
|
|
15
|
+
}
|
|
16
|
+
default:
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=plan-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-handlers.js","sourceRoot":"","sources":["../../src/handlers/plan-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAA2B,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,SAAS,CACrC,MAAM,EACN,IAAI,EAAE,QAAiD,EACvD,iBAAiB,CAAC,IAAI,CAAC,CAC1B,CAAC;YACF,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,IAAK,CAAC,MAAgB,CAAC,CAAC;YACvE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/settings-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAC;AAEtE,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAkD5B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App settings tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as settingsService from '../services/settings.js';
|
|
5
|
+
import { successResponse } from './types.js';
|
|
6
|
+
export async function handleSettingsTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_set_zero_downtime': {
|
|
9
|
+
const result = await settingsService.setZeroDowntime(client, args.appName, args.enabled);
|
|
10
|
+
return successResponse(result.message || `Zero-downtime deployment ${args.enabled ? 'enabled' : 'disabled'} successfully.`);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_set_default_subdomain': {
|
|
13
|
+
const result = await settingsService.setDefaultSubdomain(client, args.appName, args.enabled);
|
|
14
|
+
return successResponse(result.message || `Default subdomain ${args.enabled ? 'enabled' : 'disabled'} successfully.`);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_set_fixed_ip': {
|
|
17
|
+
const result = await settingsService.setFixedIP(client, args.appName, args.enabled);
|
|
18
|
+
const ipInfo = result.IP ? `\nStatic IP: ${result.IP}` : '';
|
|
19
|
+
return successResponse((result.message || `Static IP ${args.enabled ? 'enabled' : 'disabled'} successfully.`) + ipInfo);
|
|
20
|
+
}
|
|
21
|
+
case 'liara_set_read_only': {
|
|
22
|
+
const result = await settingsService.setReadOnly(client, args.appName, args.enabled);
|
|
23
|
+
return successResponse(result.message || `Read-only mode ${args.enabled ? 'enabled' : 'disabled'} successfully.`);
|
|
24
|
+
}
|
|
25
|
+
default:
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=settings-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-handlers.js","sourceRoot":"","sources":["../../src/handlers/settings-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAA2B,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,eAAe,CAChD,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,OAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAClB,MAAM,CAAC,OAAO,IAAI,4BAA4B,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,gBAAgB,CACvG,CAAC;QACN,CAAC;QAED,KAAK,6BAA6B,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,CACpD,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,OAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAClB,MAAM,CAAC,OAAO,IAAI,qBAAqB,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,gBAAgB,CAChG,CAAC;QACN,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAC3C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,OAAkB,CAC3B,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,eAAe,CAClB,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,gBAAgB,CAAC,GAAG,MAAM,CACnG,CAAC;QACN,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAC5C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,OAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAClB,MAAM,CAAC,OAAO,IAAI,kBAAkB,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,gBAAgB,CAC7F,CAAC;QACN,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/storage-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAqE5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage (Bucket) tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as storageService from '../services/storage.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleStorageTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_buckets': {
|
|
9
|
+
const buckets = await storageService.listBuckets(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(buckets);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_bucket': {
|
|
13
|
+
const bucket = await storageService.getBucket(client, args.name);
|
|
14
|
+
return jsonResponse(bucket);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_create_bucket': {
|
|
17
|
+
const bucket = await storageService.createBucket(client, args);
|
|
18
|
+
return successResponse(`Bucket "${bucket.name}" created successfully.\n${JSON.stringify(bucket, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_delete_bucket': {
|
|
21
|
+
await storageService.deleteBucket(client, args.name);
|
|
22
|
+
return successResponse(`Bucket "${args.name}" deleted successfully.`);
|
|
23
|
+
}
|
|
24
|
+
case 'liara_get_bucket_credentials': {
|
|
25
|
+
const credentials = await storageService.getBucketCredentials(client, args.name);
|
|
26
|
+
return jsonResponse(credentials);
|
|
27
|
+
}
|
|
28
|
+
case 'liara_list_objects': {
|
|
29
|
+
const objects = await storageService.listObjects(client, args.bucketName, args?.prefix, args?.maxKeys);
|
|
30
|
+
return jsonResponse(objects);
|
|
31
|
+
}
|
|
32
|
+
case 'liara_upload_object': {
|
|
33
|
+
const result = await storageService.uploadObject(client, args.bucketName, args.objectKey, args.filePath);
|
|
34
|
+
return successResponse(result.message || `Object "${args.objectKey}" uploaded successfully.`);
|
|
35
|
+
}
|
|
36
|
+
case 'liara_get_object_download_url': {
|
|
37
|
+
const result = await storageService.getObjectDownloadUrl(client, args.bucketName, args.objectKey, args?.expiresIn);
|
|
38
|
+
return jsonResponse(result);
|
|
39
|
+
}
|
|
40
|
+
case 'liara_delete_object': {
|
|
41
|
+
await storageService.deleteObject(client, args.bucketName, args.objectKey);
|
|
42
|
+
return successResponse(`Object "${args.objectKey}" deleted successfully.`);
|
|
43
|
+
}
|
|
44
|
+
default:
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=storage-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-handlers.js","sourceRoot":"","sources":["../../src/handlers/storage-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAA2B,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAClF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YAC5E,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAW,CAAC,CAAC;YACtE,OAAO,eAAe,CAAC,WAAW,MAAM,CAAC,IAAI,4BAA4B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YAChE,OAAO,eAAe,CAAC,WAAW,IAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,8BAA8B,CAAC,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YAC5F,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAC5C,MAAM,EACN,IAAK,CAAC,UAAoB,EAC1B,IAAI,EAAE,MAA4B,EAClC,IAAI,EAAE,OAA6B,CACtC,CAAC;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAC5C,MAAM,EACN,IAAK,CAAC,UAAoB,EAC1B,IAAK,CAAC,SAAmB,EACzB,IAAK,CAAC,QAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,IAAK,CAAC,SAAS,0BAA0B,CAAC,CAAC;QACnG,CAAC;QAED,KAAK,+BAA+B,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,oBAAoB,CACpD,MAAM,EACN,IAAK,CAAC,UAAoB,EAC1B,IAAK,CAAC,SAAmB,EACzB,IAAI,EAAE,SAA+B,CACxC,CAAC;YACF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,cAAc,CAAC,YAAY,CAC7B,MAAM,EACN,IAAK,CAAC,UAAoB,EAC1B,IAAK,CAAC,SAAmB,CAC5B,CAAC;YACF,OAAO,eAAe,CAAC,WAAW,IAAK,CAAC,SAAS,yBAAyB,CAAC,CAAC;QAChF,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import { createLiaraClient } from '../api/client.js';
|
|
5
|
+
import { PaginationOptions } from '../api/types.js';
|
|
6
|
+
export type LiaraClient = ReturnType<typeof createLiaraClient>;
|
|
7
|
+
export interface ToolResult {
|
|
8
|
+
content: Array<{
|
|
9
|
+
type: 'text';
|
|
10
|
+
text: string;
|
|
11
|
+
}>;
|
|
12
|
+
isError?: boolean;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Extract pagination options from tool arguments
|
|
17
|
+
*/
|
|
18
|
+
export declare function extractPagination(args: any): PaginationOptions | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Create a success response
|
|
21
|
+
*/
|
|
22
|
+
export declare function successResponse(text: string): ToolResult;
|
|
23
|
+
/**
|
|
24
|
+
* Create a JSON response
|
|
25
|
+
*/
|
|
26
|
+
export declare function jsonResponse(data: any): ToolResult;
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE/D,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,iBAAiB,GAAG,SAAS,CAU1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAIxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU,CAIlD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract pagination options from tool arguments
|
|
3
|
+
*/
|
|
4
|
+
export function extractPagination(args) {
|
|
5
|
+
if (args?.page || args?.perPage || args?.limit || args?.offset) {
|
|
6
|
+
return {
|
|
7
|
+
page: args.page,
|
|
8
|
+
perPage: args.perPage,
|
|
9
|
+
limit: args.limit,
|
|
10
|
+
offset: args.offset,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a success response
|
|
17
|
+
*/
|
|
18
|
+
export function successResponse(text) {
|
|
19
|
+
return {
|
|
20
|
+
content: [{ type: 'text', text }],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a JSON response
|
|
25
|
+
*/
|
|
26
|
+
export function jsonResponse(data) {
|
|
27
|
+
return {
|
|
28
|
+
content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAS;IACvC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QAC7D,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAA0B;YACrC,OAAO,EAAE,IAAI,CAAC,OAA6B;YAC3C,KAAK,EAAE,IAAI,CAAC,KAA2B;YACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;SAC5C,CAAC;IACN,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACpC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAS;IAClC,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/user-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAEnE,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,GACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAU5B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as userService from '../services/user.js';
|
|
5
|
+
import { jsonResponse } from './types.js';
|
|
6
|
+
export async function handleUserTools(client, name, _args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_get_user': {
|
|
9
|
+
const userInfo = await userService.getUserInfo(client);
|
|
10
|
+
return jsonResponse(userInfo);
|
|
11
|
+
}
|
|
12
|
+
default:
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=user-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-handlers.js","sourceRoot":"","sources":["../../src/handlers/user-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,IAAY,EACZ,KAAU;IAEV,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vm-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/vm-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA2G5B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VM (IaaS) tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as iaasService from '../services/iaas.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleVmTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_vms': {
|
|
9
|
+
const vms = await iaasService.listVMs(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(vms);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_vm': {
|
|
13
|
+
const vm = await iaasService.getVM(client, args.vmId);
|
|
14
|
+
return jsonResponse(vm);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_create_vm': {
|
|
17
|
+
const vm = await iaasService.createVM(client, args);
|
|
18
|
+
return successResponse(`VM "${vm.name}" created successfully.\n${JSON.stringify(vm, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_start_vm': {
|
|
21
|
+
await iaasService.startVM(client, args.vmId);
|
|
22
|
+
return successResponse(`VM "${args.vmId}" started successfully.`);
|
|
23
|
+
}
|
|
24
|
+
case 'liara_stop_vm': {
|
|
25
|
+
await iaasService.stopVM(client, args.vmId);
|
|
26
|
+
return successResponse(`VM "${args.vmId}" stopped successfully.`);
|
|
27
|
+
}
|
|
28
|
+
case 'liara_restart_vm': {
|
|
29
|
+
await iaasService.restartVM(client, args.vmId);
|
|
30
|
+
return successResponse(`VM "${args.vmId}" restarted successfully.`);
|
|
31
|
+
}
|
|
32
|
+
case 'liara_delete_vm': {
|
|
33
|
+
await iaasService.deleteVM(client, args.vmId);
|
|
34
|
+
return successResponse(`VM "${args.vmId}" deleted successfully.`);
|
|
35
|
+
}
|
|
36
|
+
case 'liara_resize_vm': {
|
|
37
|
+
const vm = await iaasService.resizeVM(client, args.vmId, args.planID);
|
|
38
|
+
return successResponse(`VM "${args.vmId}" resized to plan "${args.planID}" successfully.\n${JSON.stringify(vm, null, 2)}`);
|
|
39
|
+
}
|
|
40
|
+
case 'liara_create_snapshot': {
|
|
41
|
+
const snapshot = await iaasService.createSnapshot(client, args.vmId, args?.name);
|
|
42
|
+
return successResponse(`Snapshot created successfully.\n${JSON.stringify(snapshot, null, 2)}`);
|
|
43
|
+
}
|
|
44
|
+
case 'liara_list_snapshots': {
|
|
45
|
+
const snapshots = await iaasService.listSnapshots(client, args.vmId, extractPagination(args));
|
|
46
|
+
return jsonResponse(snapshots);
|
|
47
|
+
}
|
|
48
|
+
case 'liara_restore_snapshot': {
|
|
49
|
+
const result = await iaasService.restoreSnapshot(client, args.vmId, args.snapshotId);
|
|
50
|
+
return successResponse(result.message || `VM "${args.vmId}" restored from snapshot "${args.snapshotId}" successfully.`);
|
|
51
|
+
}
|
|
52
|
+
case 'liara_delete_snapshot': {
|
|
53
|
+
await iaasService.deleteSnapshot(client, args.vmId, args.snapshotId);
|
|
54
|
+
return successResponse(`Snapshot "${args.snapshotId}" deleted successfully.`);
|
|
55
|
+
}
|
|
56
|
+
case 'liara_attach_network': {
|
|
57
|
+
const result = await iaasService.attachNetwork(client, args.vmId, args.networkId);
|
|
58
|
+
return successResponse(result.message || `Network "${args.networkId}" attached to VM "${args.vmId}" successfully.`);
|
|
59
|
+
}
|
|
60
|
+
case 'liara_detach_network': {
|
|
61
|
+
await iaasService.detachNetwork(client, args.vmId, args.networkId);
|
|
62
|
+
return successResponse(`Network "${args.networkId}" detached from VM "${args.vmId}" successfully.`);
|
|
63
|
+
}
|
|
64
|
+
default:
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=vm-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vm-handlers.js","sourceRoot":"","sources":["../../src/handlers/vm-handlers.ts"],"names":[],"mappings":"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"}
|