liara-mcp 1.0.0 → 1.1.0
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/README.md +25 -0
- 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/consolidated-handlers.d.ts +9 -0
- package/dist/handlers/consolidated-handlers.d.ts.map +1 -0
- package/dist/handlers/consolidated-handlers.js +400 -0
- package/dist/handlers/consolidated-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 +8 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +94 -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/services/observability.js +1 -1
- package/dist/services/observability.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/consolidated-tools.d.ts +6 -0
- package/dist/tools/consolidated-tools.d.ts.map +1 -0
- package/dist/tools/consolidated-tools.js +256 -0
- package/dist/tools/consolidated-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 +28 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +72 -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/dist/utils/errors.js +2 -2
- package/dist/utils/errors.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as deployService from '../services/deployment.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleDeploymentTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_upload_source': {
|
|
9
|
+
const result = await deployService.uploadSource(client, args.appName, args.filePath);
|
|
10
|
+
return successResponse(`Source uploaded successfully. Source ID: ${result.sourceID}`);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_deploy_release': {
|
|
13
|
+
const result = await deployService.deployRelease(client, args.appName, {
|
|
14
|
+
sourceID: args.sourceID,
|
|
15
|
+
envVars: args.envVars,
|
|
16
|
+
});
|
|
17
|
+
return successResponse(`Deployment initiated. Release ID: ${result.releaseID}`);
|
|
18
|
+
}
|
|
19
|
+
case 'liara_list_releases': {
|
|
20
|
+
const releases = await deployService.listReleases(client, args.appName, extractPagination(args));
|
|
21
|
+
return jsonResponse(releases);
|
|
22
|
+
}
|
|
23
|
+
case 'liara_get_release': {
|
|
24
|
+
const release = await deployService.getRelease(client, args.appName, args.releaseID);
|
|
25
|
+
return jsonResponse(release);
|
|
26
|
+
}
|
|
27
|
+
case 'liara_rollback_release': {
|
|
28
|
+
const result = await deployService.rollbackRelease(client, args.appName, args.releaseID);
|
|
29
|
+
return successResponse(result.message || `Rolled back to release "${args.releaseID}" successfully.`);
|
|
30
|
+
}
|
|
31
|
+
case 'liara_list_sources': {
|
|
32
|
+
const sources = await deployService.listSources(client, args.appName, extractPagination(args));
|
|
33
|
+
return jsonResponse(sources);
|
|
34
|
+
}
|
|
35
|
+
case 'liara_delete_source': {
|
|
36
|
+
await deployService.deleteSource(client, args.appName, args.sourceID);
|
|
37
|
+
return successResponse(`Source "${args.sourceID}" deleted successfully.`);
|
|
38
|
+
}
|
|
39
|
+
default:
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=deployment-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-handlers.js","sourceRoot":"","sources":["../../src/handlers/deployment-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAA2B,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAC3C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAAC,4CAA4C,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,CAC5C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB;gBACI,QAAQ,EAAE,IAAK,CAAC,QAAkB;gBAClC,OAAO,EAAE,IAAK,CAAC,OAAc;aAChC,CACJ,CAAC;YACF,OAAO,eAAe,CAAC,qCAAqC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,CAC7C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,iBAAiB,CAAC,IAAI,CAAC,CAC1B,CAAC;YACF,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAC1C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,SAAmB,CAC5B,CAAC;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,CAC9C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,SAAmB,CAC5B,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,2BAA2B,IAAK,CAAC,SAAS,iBAAiB,CAAC,CAAC;QAC1G,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAC3C,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,iBAAiB,CAAC,IAAI,CAAC,CAC1B,CAAC;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,aAAa,CAAC,YAAY,CAC5B,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAAC,WAAW,IAAK,CAAC,QAAQ,yBAAyB,CAAC,CAAC;QAC/E,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disk-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/disk-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoF5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disk tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as diskService from '../services/disks.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleDiskTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_disks': {
|
|
9
|
+
const disks = await diskService.listDisks(client, args.appName, extractPagination(args));
|
|
10
|
+
return jsonResponse(disks);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_create_disk': {
|
|
13
|
+
const disk = await diskService.createDisk(client, args.appName, {
|
|
14
|
+
name: args.name,
|
|
15
|
+
size: args.size,
|
|
16
|
+
mountPath: args.mountPath,
|
|
17
|
+
});
|
|
18
|
+
return successResponse(`Disk "${disk.name}" created successfully.\n${JSON.stringify(disk, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_get_disk': {
|
|
21
|
+
const disk = await diskService.getDisk(client, args.appName, args.diskName);
|
|
22
|
+
return jsonResponse(disk);
|
|
23
|
+
}
|
|
24
|
+
case 'liara_delete_disk': {
|
|
25
|
+
await diskService.deleteDisk(client, args.appName, args.diskName);
|
|
26
|
+
return successResponse(`Disk "${args.diskName}" deleted successfully.`);
|
|
27
|
+
}
|
|
28
|
+
case 'liara_resize_disk': {
|
|
29
|
+
const disk = await diskService.resizeDisk(client, args.appName, args.diskName, args.size);
|
|
30
|
+
return successResponse(`Disk "${args.diskName}" resized to ${args.size}GB successfully.\n${JSON.stringify(disk, null, 2)}`);
|
|
31
|
+
}
|
|
32
|
+
case 'liara_create_ftp_access': {
|
|
33
|
+
const ftp = await diskService.createFtpAccess(client, args.appName, args.diskName);
|
|
34
|
+
return successResponse(`FTP access created successfully.\n${JSON.stringify(ftp, null, 2)}`);
|
|
35
|
+
}
|
|
36
|
+
case 'liara_list_ftp_accesses': {
|
|
37
|
+
const ftpAccesses = await diskService.listFtpAccesses(client, args.appName, args.diskName, extractPagination(args));
|
|
38
|
+
return jsonResponse(ftpAccesses);
|
|
39
|
+
}
|
|
40
|
+
case 'liara_delete_ftp_access': {
|
|
41
|
+
await diskService.deleteFtpAccess(client, args.appName, args.diskName, args.ftpId);
|
|
42
|
+
return successResponse(`FTP access "${args.ftpId}" deleted successfully.`);
|
|
43
|
+
}
|
|
44
|
+
default:
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=disk-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disk-handlers.js","sourceRoot":"","sources":["../../src/handlers/disk-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/dns-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAsF5B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DNS tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as dnsService from '../services/dns.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleDnsTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_zones': {
|
|
9
|
+
const zones = await dnsService.listZones(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(zones);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_zone': {
|
|
13
|
+
const zone = await dnsService.getZone(client, args.zoneId);
|
|
14
|
+
return jsonResponse(zone);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_create_zone': {
|
|
17
|
+
const zone = await dnsService.createZone(client, args.name);
|
|
18
|
+
return successResponse(`Zone "${zone.name}" created successfully.
|
|
19
|
+
${JSON.stringify(zone, null, 2)}`);
|
|
20
|
+
}
|
|
21
|
+
case 'liara_delete_zone': {
|
|
22
|
+
await dnsService.deleteZone(client, args.zoneId);
|
|
23
|
+
return successResponse(`Zone "${args.zoneId}" deleted successfully.`);
|
|
24
|
+
}
|
|
25
|
+
case 'liara_list_dns_records': {
|
|
26
|
+
const records = await dnsService.listRecords(client, args.zoneId, extractPagination(args));
|
|
27
|
+
return jsonResponse(records);
|
|
28
|
+
}
|
|
29
|
+
case 'liara_create_dns_record': {
|
|
30
|
+
const record = await dnsService.createRecord(client, args.zoneId, {
|
|
31
|
+
type: args.type,
|
|
32
|
+
name: args.name,
|
|
33
|
+
value: args.value,
|
|
34
|
+
ttl: args?.ttl,
|
|
35
|
+
priority: args?.priority,
|
|
36
|
+
});
|
|
37
|
+
return successResponse(`DNS record created successfully.
|
|
38
|
+
${JSON.stringify(record, null, 2)}`);
|
|
39
|
+
}
|
|
40
|
+
case 'liara_get_dns_record': {
|
|
41
|
+
const record = await dnsService.getRecord(client, args.zoneId, args.recordId);
|
|
42
|
+
return jsonResponse(record);
|
|
43
|
+
}
|
|
44
|
+
case 'liara_update_dns_record': {
|
|
45
|
+
const record = await dnsService.updateRecord(client, args.zoneId, args.recordId, {
|
|
46
|
+
type: args?.type,
|
|
47
|
+
name: args?.name,
|
|
48
|
+
value: args?.value,
|
|
49
|
+
ttl: args?.ttl,
|
|
50
|
+
priority: args?.priority,
|
|
51
|
+
});
|
|
52
|
+
return successResponse(`DNS record updated successfully.
|
|
53
|
+
${JSON.stringify(record, null, 2)}`);
|
|
54
|
+
}
|
|
55
|
+
case 'liara_delete_dns_record': {
|
|
56
|
+
await dnsService.deleteRecord(client, args.zoneId, args.recordId);
|
|
57
|
+
return successResponse(`DNS record "${args.recordId}" deleted successfully.`);
|
|
58
|
+
}
|
|
59
|
+
default:
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=dns-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns-handlers.js","sourceRoot":"","sources":["../../src/handlers/dns-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/domain-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,iBAAiB,CACnC,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
|
+
* Domain (App Domains) tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as domainService from '../services/domains.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleDomainTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_domains': {
|
|
9
|
+
const domains = await domainService.listDomains(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(domains);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_domain': {
|
|
13
|
+
const domain = await domainService.getDomain(client, args.domainId);
|
|
14
|
+
return jsonResponse(domain);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_add_domain': {
|
|
17
|
+
const domain = await domainService.addDomain(client, args.appName, args.domain);
|
|
18
|
+
return successResponse(`Domain "${domain.name}" added successfully.\n${JSON.stringify(domain, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_remove_domain': {
|
|
21
|
+
await domainService.removeDomain(client, args.domainId);
|
|
22
|
+
return successResponse(`Domain "${args.domainId}" removed successfully.`);
|
|
23
|
+
}
|
|
24
|
+
default:
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=domain-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-handlers.js","sourceRoot":"","sources":["../../src/handlers/domain-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAA2B,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,IAAK,CAAC,QAAkB,CAAC,CAAC;YAC/E,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CACxC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,MAAgB,CACzB,CAAC;YACF,OAAO,eAAe,CAAC,WAAW,MAAM,CAAC,IAAI,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,IAAK,CAAC,QAAkB,CAAC,CAAC;YACnE,OAAO,eAAe,CAAC,WAAW,IAAK,CAAC,QAAQ,yBAAyB,CAAC,CAAC;QAC/E,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/env-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAiC,MAAM,YAAY,CAAC;AAEpF,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA+C5B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment variable tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as envService from '../services/environment.js';
|
|
5
|
+
import { successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleEnvTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_set_env_vars': {
|
|
9
|
+
const result = await envService.updateEnvVars(client, args.appName, args.variables);
|
|
10
|
+
return successResponse(result.message || 'Environment variables updated successfully.');
|
|
11
|
+
}
|
|
12
|
+
case 'liara_set_env_var': {
|
|
13
|
+
const result = await envService.setEnvVar(client, args.appName, args.key, args.value);
|
|
14
|
+
return successResponse(result.message || `Environment variable ${args.key} set successfully.`);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_get_env_vars': {
|
|
17
|
+
const envVars = await envService.getEnvVars(client, args.appName);
|
|
18
|
+
return jsonResponse(envVars);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_delete_env_var': {
|
|
21
|
+
const result = await envService.deleteEnvVar(client, args.appName, args.key);
|
|
22
|
+
return successResponse(result.message || `Environment variable ${args.key} deleted successfully.`);
|
|
23
|
+
}
|
|
24
|
+
case 'liara_delete_env_vars': {
|
|
25
|
+
const result = await envService.deleteEnvVars(client, args.appName, args.keys);
|
|
26
|
+
return successResponse(result.message || 'Environment variables deleted successfully.');
|
|
27
|
+
}
|
|
28
|
+
default:
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=env-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-handlers.js","sourceRoot":"","sources":["../../src/handlers/env-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAA2B,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CACzC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,SAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,6CAA6C,CAAC,CAAC;QAC5F,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CACrC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,GAAa,EACnB,IAAK,CAAC,KAAe,CACxB,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,wBAAwB,IAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACpG,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAK,CAAC,OAAiB,CAAC,CAAC;YAC7E,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CACxC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,GAAa,CACtB,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,wBAAwB,IAAK,CAAC,GAAG,wBAAwB,CAAC,CAAC;QACxG,CAAC;QAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CACzC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,IAAgB,CACzB,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,6CAA6C,CAAC,CAAC;QAC5F,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LiaraClient, ToolResult } from './types.js';
|
|
2
|
+
export { LiaraClient, ToolResult, extractPagination } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handle a tool call and return the result
|
|
5
|
+
* Supports both consolidated and individual tool modes
|
|
6
|
+
*/
|
|
7
|
+
export declare function handleToolCall(client: LiaraClient, name: string, args: any): Promise<ToolResult>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkBrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE;;;GAGG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,CAAC,CAsErB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool handlers index - exports unified handler function
|
|
3
|
+
* Supports both consolidated and individual tool modes
|
|
4
|
+
*/
|
|
5
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import { formatErrorForMcp, LiaraMcpError } from '../utils/errors.js';
|
|
7
|
+
import { handleConsolidatedTools } from './consolidated-handlers.js';
|
|
8
|
+
import { handleAppTools } from './app-handlers.js';
|
|
9
|
+
import { handleEnvTools } from './env-handlers.js';
|
|
10
|
+
import { handleSettingsTools } from './settings-handlers.js';
|
|
11
|
+
import { handleDeploymentTools } from './deployment-handlers.js';
|
|
12
|
+
import { handleDatabaseTools } from './database-handlers.js';
|
|
13
|
+
import { handleStorageTools } from './storage-handlers.js';
|
|
14
|
+
import { handlePlanTools } from './plan-handlers.js';
|
|
15
|
+
import { handleDnsTools } from './dns-handlers.js';
|
|
16
|
+
import { handleDomainTools } from './domain-handlers.js';
|
|
17
|
+
import { handleMailTools } from './mail-handlers.js';
|
|
18
|
+
import { handleVmTools } from './vm-handlers.js';
|
|
19
|
+
import { handleDiskTools } from './disk-handlers.js';
|
|
20
|
+
import { handleNetworkTools } from './network-handlers.js';
|
|
21
|
+
import { handleUserTools } from './user-handlers.js';
|
|
22
|
+
import { handleObservabilityTools } from './observability-handlers.js';
|
|
23
|
+
export { extractPagination } from './types.js';
|
|
24
|
+
/**
|
|
25
|
+
* Handle a tool call and return the result
|
|
26
|
+
* Supports both consolidated and individual tool modes
|
|
27
|
+
*/
|
|
28
|
+
export async function handleToolCall(client, name, args) {
|
|
29
|
+
try {
|
|
30
|
+
// Check if using consolidated tools mode
|
|
31
|
+
const useConsolidated = process.env.LIARA_MCP_CONSOLIDATED === 'true';
|
|
32
|
+
if (useConsolidated) {
|
|
33
|
+
// Try consolidated handler first
|
|
34
|
+
const consolidatedResult = await handleConsolidatedTools(client, name, args);
|
|
35
|
+
if (consolidatedResult !== null) {
|
|
36
|
+
return consolidatedResult;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Try individual handlers in order
|
|
41
|
+
const handlers = [
|
|
42
|
+
handleAppTools,
|
|
43
|
+
handleEnvTools,
|
|
44
|
+
handleSettingsTools,
|
|
45
|
+
handleDeploymentTools,
|
|
46
|
+
handleDatabaseTools,
|
|
47
|
+
handleStorageTools,
|
|
48
|
+
handlePlanTools,
|
|
49
|
+
handleDnsTools,
|
|
50
|
+
handleDomainTools,
|
|
51
|
+
handleMailTools,
|
|
52
|
+
handleVmTools,
|
|
53
|
+
handleDiskTools,
|
|
54
|
+
handleNetworkTools,
|
|
55
|
+
handleUserTools,
|
|
56
|
+
handleObservabilityTools,
|
|
57
|
+
];
|
|
58
|
+
for (const handler of handlers) {
|
|
59
|
+
const result = await handler(client, name, args);
|
|
60
|
+
if (result !== null) {
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// No handler found
|
|
66
|
+
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
const errorMessage = formatErrorForMcp(error);
|
|
70
|
+
const suggestions = (error instanceof LiaraMcpError && error.suggestions)
|
|
71
|
+
? error.suggestions
|
|
72
|
+
: undefined;
|
|
73
|
+
const errorCode = (error instanceof LiaraMcpError && error.code)
|
|
74
|
+
? error.code
|
|
75
|
+
: 'UNKNOWN_ERROR';
|
|
76
|
+
return {
|
|
77
|
+
content: [
|
|
78
|
+
{
|
|
79
|
+
type: 'text',
|
|
80
|
+
text: JSON.stringify({
|
|
81
|
+
success: false,
|
|
82
|
+
error: {
|
|
83
|
+
code: errorCode,
|
|
84
|
+
message: errorMessage,
|
|
85
|
+
...(suggestions && { suggestions })
|
|
86
|
+
}
|
|
87
|
+
}, null, 2),
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
isError: true,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/mail-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA8D5B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mail tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as mailService from '../services/mail.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleMailTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_mail_servers': {
|
|
9
|
+
const servers = await mailService.listMailServers(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(servers);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_mail_server': {
|
|
13
|
+
const server = await mailService.getMailServer(client, args.mailId);
|
|
14
|
+
return jsonResponse(server);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_create_mail_server': {
|
|
17
|
+
const server = await mailService.createMailServer(client, args.name, args?.mode, args?.planID, args?.domain);
|
|
18
|
+
return successResponse(`Mail server "${server.name}" created successfully.\n${JSON.stringify(server, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_delete_mail_server': {
|
|
21
|
+
await mailService.deleteMailServer(client, args.mailId);
|
|
22
|
+
return successResponse(`Mail server "${args.mailId}" deleted successfully.`);
|
|
23
|
+
}
|
|
24
|
+
case 'liara_send_email': {
|
|
25
|
+
const toAddresses = args.to.split(',').map(s => s.trim());
|
|
26
|
+
const result = await mailService.sendEmail(client, args.mailId, {
|
|
27
|
+
from: args.from,
|
|
28
|
+
to: toAddresses.length === 1 ? toAddresses[0] : toAddresses,
|
|
29
|
+
subject: args.subject,
|
|
30
|
+
html: args?.html,
|
|
31
|
+
text: args?.text,
|
|
32
|
+
});
|
|
33
|
+
return successResponse(result.message || 'Email sent successfully.');
|
|
34
|
+
}
|
|
35
|
+
case 'liara_start_mail_server': {
|
|
36
|
+
await mailService.startMailServer(client, args.mailId);
|
|
37
|
+
return successResponse(`Mail server "${args.mailId}" started successfully.`);
|
|
38
|
+
}
|
|
39
|
+
case 'liara_stop_mail_server': {
|
|
40
|
+
await mailService.stopMailServer(client, args.mailId);
|
|
41
|
+
return successResponse(`Mail server "${args.mailId}" stopped successfully.`);
|
|
42
|
+
}
|
|
43
|
+
case 'liara_restart_mail_server': {
|
|
44
|
+
await mailService.restartMailServer(client, args.mailId);
|
|
45
|
+
return successResponse(`Mail server "${args.mailId}" restarted successfully.`);
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=mail-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-handlers.js","sourceRoot":"","sources":["../../src/handlers/mail-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|