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":"app-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/app-handlers.ts"],"names":[],"mappings":"AAKA,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,CAqD5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App management tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as appService from '../services/apps.js';
|
|
5
|
+
import { extractPagination, successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleAppTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_apps': {
|
|
9
|
+
const apps = await appService.listApps(client, extractPagination(args));
|
|
10
|
+
return jsonResponse(apps);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_app': {
|
|
13
|
+
const app = await appService.getApp(client, args.name);
|
|
14
|
+
return jsonResponse(app);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_create_app': {
|
|
17
|
+
const app = await appService.createApp(client, args);
|
|
18
|
+
return jsonResponse({
|
|
19
|
+
success: true,
|
|
20
|
+
data: app,
|
|
21
|
+
message: `App "${app.name}" created successfully`
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
case 'liara_delete_app': {
|
|
25
|
+
await appService.deleteApp(client, args.name);
|
|
26
|
+
return successResponse(`App "${args.name}" deleted successfully.`);
|
|
27
|
+
}
|
|
28
|
+
case 'liara_start_app': {
|
|
29
|
+
await appService.startApp(client, args.name);
|
|
30
|
+
return successResponse(`App "${args.name}" started successfully.`);
|
|
31
|
+
}
|
|
32
|
+
case 'liara_stop_app': {
|
|
33
|
+
await appService.stopApp(client, args.name);
|
|
34
|
+
return successResponse(`App "${args.name}" stopped successfully.`);
|
|
35
|
+
}
|
|
36
|
+
case 'liara_restart_app': {
|
|
37
|
+
await appService.restartApp(client, args.name);
|
|
38
|
+
return successResponse(`App "${args.name}" restarted successfully.`);
|
|
39
|
+
}
|
|
40
|
+
case 'liara_resize_app': {
|
|
41
|
+
await appService.resizeApp(client, args.name, args.planID);
|
|
42
|
+
return successResponse(`App "${args.name}" resized to plan "${args.planID}" successfully.`);
|
|
43
|
+
}
|
|
44
|
+
default:
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=app-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-handlers.js","sourceRoot":"","sources":["../../src/handlers/app-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAA2B,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YAClE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,IAAuC,CAAC,CAAC;YACxF,OAAO,YAAY,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,QAAQ,GAAG,CAAC,IAAI,wBAAwB;aACpD,CAAC,CAAC;QACP,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YACzD,OAAO,eAAe,CAAC,QAAQ,IAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YACxD,OAAO,eAAe,CAAC,QAAQ,IAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YACvD,OAAO,eAAe,CAAC,QAAQ,IAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAK,CAAC,IAAc,CAAC,CAAC;YAC1D,OAAO,eAAe,CAAC,QAAQ,IAAK,CAAC,IAAI,2BAA2B,CAAC,CAAC;QAC1E,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,UAAU,CAAC,SAAS,CACtB,MAAM,EACN,IAAK,CAAC,IAAc,EACpB,IAAK,CAAC,MAAgB,CACzB,CAAC;YACF,OAAO,eAAe,CAAC,QAAQ,IAAK,CAAC,IAAI,sBAAsB,IAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAClG,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/database-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAiC,MAAM,YAAY,CAAC;AAEpF,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA+G5B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database tool handlers
|
|
3
|
+
*/
|
|
4
|
+
import * as dbService from '../services/databases.js';
|
|
5
|
+
import { successResponse, jsonResponse } from './types.js';
|
|
6
|
+
export async function handleDatabaseTools(client, name, args) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case 'liara_list_databases': {
|
|
9
|
+
const databases = await dbService.listDatabases(client);
|
|
10
|
+
return jsonResponse(databases);
|
|
11
|
+
}
|
|
12
|
+
case 'liara_get_database': {
|
|
13
|
+
const database = await dbService.getDatabase(client, args.name);
|
|
14
|
+
return jsonResponse(database);
|
|
15
|
+
}
|
|
16
|
+
case 'liara_get_database_connection': {
|
|
17
|
+
const connection = await dbService.getDatabaseConnection(client, args.databaseName);
|
|
18
|
+
return jsonResponse(connection);
|
|
19
|
+
}
|
|
20
|
+
case 'liara_update_database': {
|
|
21
|
+
const database = await dbService.updateDatabase(client, args.name, {
|
|
22
|
+
planID: args.planID,
|
|
23
|
+
version: args.version,
|
|
24
|
+
});
|
|
25
|
+
return successResponse(`Database "${args.name}" updated successfully.\n${JSON.stringify(database, null, 2)}`);
|
|
26
|
+
}
|
|
27
|
+
case 'liara_create_database': {
|
|
28
|
+
const database = await dbService.createDatabase(client, args);
|
|
29
|
+
return successResponse(`Database "${database.name}" created successfully.\n${JSON.stringify(database, null, 2)}`);
|
|
30
|
+
}
|
|
31
|
+
case 'liara_delete_database': {
|
|
32
|
+
await dbService.deleteDatabase(client, args.name);
|
|
33
|
+
return successResponse(`Database "${args.name}" deleted successfully.`);
|
|
34
|
+
}
|
|
35
|
+
case 'liara_start_database': {
|
|
36
|
+
await dbService.startDatabase(client, args.name);
|
|
37
|
+
return successResponse(`Database "${args.name}" started successfully.`);
|
|
38
|
+
}
|
|
39
|
+
case 'liara_stop_database': {
|
|
40
|
+
await dbService.stopDatabase(client, args.name);
|
|
41
|
+
return successResponse(`Database "${args.name}" stopped successfully.`);
|
|
42
|
+
}
|
|
43
|
+
case 'liara_resize_database': {
|
|
44
|
+
await dbService.resizeDatabase(client, args.name, args.planID);
|
|
45
|
+
return successResponse(`Database "${args.name}" resized to plan "${args.planID}" successfully.`);
|
|
46
|
+
}
|
|
47
|
+
case 'liara_create_backup': {
|
|
48
|
+
const backup = await dbService.createBackup(client, args.databaseName);
|
|
49
|
+
return successResponse(`Backup created successfully.\n${JSON.stringify(backup, null, 2)}`);
|
|
50
|
+
}
|
|
51
|
+
case 'liara_list_backups': {
|
|
52
|
+
const backups = await dbService.listBackups(client, args.databaseName);
|
|
53
|
+
return jsonResponse(backups);
|
|
54
|
+
}
|
|
55
|
+
case 'liara_get_backup_download_url': {
|
|
56
|
+
const result = await dbService.getBackupDownloadUrl(client, args.databaseName, args.backupId);
|
|
57
|
+
return jsonResponse(result);
|
|
58
|
+
}
|
|
59
|
+
case 'liara_restart_database': {
|
|
60
|
+
await dbService.restartDatabase(client, args.name);
|
|
61
|
+
return successResponse(`Database "${args.name}" restarted successfully.`);
|
|
62
|
+
}
|
|
63
|
+
case 'liara_restore_backup': {
|
|
64
|
+
const result = await dbService.restoreBackup(client, args.databaseName, args.backupId);
|
|
65
|
+
return successResponse(result.message || `Database "${args.databaseName}" restored from backup "${args.backupId}" successfully.`);
|
|
66
|
+
}
|
|
67
|
+
case 'liara_delete_backup': {
|
|
68
|
+
await dbService.deleteBackup(client, args.databaseName, args.backupId);
|
|
69
|
+
return successResponse(`Backup "${args.backupId}" deleted successfully.`);
|
|
70
|
+
}
|
|
71
|
+
default:
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=database-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-handlers.js","sourceRoot":"","sources":["../../src/handlers/database-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/deployment-handlers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAEvG,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAuE5B"}
|
|
@@ -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,7 @@
|
|
|
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
|
+
*/
|
|
6
|
+
export declare function handleToolCall(client: LiaraClient, name: string, args: any): Promise<ToolResult>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE;;GAEG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,UAAU,CAAC,CA2DrB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool handlers index - exports unified handler function
|
|
3
|
+
*/
|
|
4
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { formatErrorForMcp, LiaraMcpError } from '../utils/errors.js';
|
|
6
|
+
import { handleAppTools } from './app-handlers.js';
|
|
7
|
+
import { handleEnvTools } from './env-handlers.js';
|
|
8
|
+
import { handleSettingsTools } from './settings-handlers.js';
|
|
9
|
+
import { handleDeploymentTools } from './deployment-handlers.js';
|
|
10
|
+
import { handleDatabaseTools } from './database-handlers.js';
|
|
11
|
+
import { handleStorageTools } from './storage-handlers.js';
|
|
12
|
+
import { handlePlanTools } from './plan-handlers.js';
|
|
13
|
+
import { handleDnsTools } from './dns-handlers.js';
|
|
14
|
+
import { handleDomainTools } from './domain-handlers.js';
|
|
15
|
+
import { handleMailTools } from './mail-handlers.js';
|
|
16
|
+
import { handleVmTools } from './vm-handlers.js';
|
|
17
|
+
import { handleDiskTools } from './disk-handlers.js';
|
|
18
|
+
import { handleNetworkTools } from './network-handlers.js';
|
|
19
|
+
import { handleUserTools } from './user-handlers.js';
|
|
20
|
+
import { handleObservabilityTools } from './observability-handlers.js';
|
|
21
|
+
export { extractPagination } from './types.js';
|
|
22
|
+
/**
|
|
23
|
+
* Handle a tool call and return the result
|
|
24
|
+
*/
|
|
25
|
+
export async function handleToolCall(client, name, args) {
|
|
26
|
+
try {
|
|
27
|
+
// Try each handler in order
|
|
28
|
+
const handlers = [
|
|
29
|
+
handleAppTools,
|
|
30
|
+
handleEnvTools,
|
|
31
|
+
handleSettingsTools,
|
|
32
|
+
handleDeploymentTools,
|
|
33
|
+
handleDatabaseTools,
|
|
34
|
+
handleStorageTools,
|
|
35
|
+
handlePlanTools,
|
|
36
|
+
handleDnsTools,
|
|
37
|
+
handleDomainTools,
|
|
38
|
+
handleMailTools,
|
|
39
|
+
handleVmTools,
|
|
40
|
+
handleDiskTools,
|
|
41
|
+
handleNetworkTools,
|
|
42
|
+
handleUserTools,
|
|
43
|
+
handleObservabilityTools,
|
|
44
|
+
];
|
|
45
|
+
for (const handler of handlers) {
|
|
46
|
+
const result = await handler(client, name, args);
|
|
47
|
+
if (result !== null) {
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// No handler found
|
|
52
|
+
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
const errorMessage = formatErrorForMcp(error);
|
|
56
|
+
const suggestions = (error instanceof LiaraMcpError && error.suggestions)
|
|
57
|
+
? error.suggestions
|
|
58
|
+
: undefined;
|
|
59
|
+
const errorCode = (error instanceof LiaraMcpError && error.code)
|
|
60
|
+
? error.code
|
|
61
|
+
: 'UNKNOWN_ERROR';
|
|
62
|
+
return {
|
|
63
|
+
content: [
|
|
64
|
+
{
|
|
65
|
+
type: 'text',
|
|
66
|
+
text: JSON.stringify({
|
|
67
|
+
success: false,
|
|
68
|
+
error: {
|
|
69
|
+
code: errorCode,
|
|
70
|
+
message: errorMessage,
|
|
71
|
+
...(suggestions && { suggestions })
|
|
72
|
+
}
|
|
73
|
+
}, null, 2),
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
isError: true,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAA2B,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,IAAY,EACZ,IAAS;IAET,IAAI,CAAC;QACD,4BAA4B;QAC5B,MAAM,QAAQ,GAAG;YACb,cAAc;YACd,cAAc;YACd,mBAAmB;YACnB,qBAAqB;YACrB,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,aAAa;YACb,eAAe;YACf,kBAAkB;YAClB,eAAe;YACf,wBAAwB;SAC3B,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,cAAc,EACxB,iBAAiB,IAAI,EAAE,CAC1B,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,CAAC,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,WAAW,CAAC;YACrE,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,SAAS,GAAG,CAAC,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC;YAC5D,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,eAAe,CAAC;QAEtB,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACH,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,YAAY;4BACrB,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;yBACtC;qBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd;aACJ;YACD,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -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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"}
|