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.
Files changed (152) hide show
  1. package/README.md +25 -0
  2. package/dist/handlers/app-handlers.d.ts +3 -0
  3. package/dist/handlers/app-handlers.d.ts.map +1 -0
  4. package/dist/handlers/app-handlers.js +48 -0
  5. package/dist/handlers/app-handlers.js.map +1 -0
  6. package/dist/handlers/consolidated-handlers.d.ts +9 -0
  7. package/dist/handlers/consolidated-handlers.d.ts.map +1 -0
  8. package/dist/handlers/consolidated-handlers.js +400 -0
  9. package/dist/handlers/consolidated-handlers.js.map +1 -0
  10. package/dist/handlers/database-handlers.d.ts +3 -0
  11. package/dist/handlers/database-handlers.d.ts.map +1 -0
  12. package/dist/handlers/database-handlers.js +75 -0
  13. package/dist/handlers/database-handlers.js.map +1 -0
  14. package/dist/handlers/deployment-handlers.d.ts +3 -0
  15. package/dist/handlers/deployment-handlers.d.ts.map +1 -0
  16. package/dist/handlers/deployment-handlers.js +43 -0
  17. package/dist/handlers/deployment-handlers.js.map +1 -0
  18. package/dist/handlers/disk-handlers.d.ts +3 -0
  19. package/dist/handlers/disk-handlers.d.ts.map +1 -0
  20. package/dist/handlers/disk-handlers.js +48 -0
  21. package/dist/handlers/disk-handlers.js.map +1 -0
  22. package/dist/handlers/dns-handlers.d.ts +3 -0
  23. package/dist/handlers/dns-handlers.d.ts.map +1 -0
  24. package/dist/handlers/dns-handlers.js +63 -0
  25. package/dist/handlers/dns-handlers.js.map +1 -0
  26. package/dist/handlers/domain-handlers.d.ts +3 -0
  27. package/dist/handlers/domain-handlers.d.ts.map +1 -0
  28. package/dist/handlers/domain-handlers.js +28 -0
  29. package/dist/handlers/domain-handlers.js.map +1 -0
  30. package/dist/handlers/env-handlers.d.ts +3 -0
  31. package/dist/handlers/env-handlers.d.ts.map +1 -0
  32. package/dist/handlers/env-handlers.js +32 -0
  33. package/dist/handlers/env-handlers.js.map +1 -0
  34. package/dist/handlers/index.d.ts +8 -0
  35. package/dist/handlers/index.d.ts.map +1 -0
  36. package/dist/handlers/index.js +94 -0
  37. package/dist/handlers/index.js.map +1 -0
  38. package/dist/handlers/mail-handlers.d.ts +3 -0
  39. package/dist/handlers/mail-handlers.d.ts.map +1 -0
  40. package/dist/handlers/mail-handlers.js +51 -0
  41. package/dist/handlers/mail-handlers.js.map +1 -0
  42. package/dist/handlers/network-handlers.d.ts +3 -0
  43. package/dist/handlers/network-handlers.d.ts.map +1 -0
  44. package/dist/handlers/network-handlers.js +28 -0
  45. package/dist/handlers/network-handlers.js.map +1 -0
  46. package/dist/handlers/observability-handlers.d.ts +3 -0
  47. package/dist/handlers/observability-handlers.d.ts.map +1 -0
  48. package/dist/handlers/observability-handlers.js +24 -0
  49. package/dist/handlers/observability-handlers.js.map +1 -0
  50. package/dist/handlers/plan-handlers.d.ts +3 -0
  51. package/dist/handlers/plan-handlers.d.ts.map +1 -0
  52. package/dist/handlers/plan-handlers.js +20 -0
  53. package/dist/handlers/plan-handlers.js.map +1 -0
  54. package/dist/handlers/settings-handlers.d.ts +3 -0
  55. package/dist/handlers/settings-handlers.d.ts.map +1 -0
  56. package/dist/handlers/settings-handlers.js +29 -0
  57. package/dist/handlers/settings-handlers.js.map +1 -0
  58. package/dist/handlers/storage-handlers.d.ts +3 -0
  59. package/dist/handlers/storage-handlers.d.ts.map +1 -0
  60. package/dist/handlers/storage-handlers.js +48 -0
  61. package/dist/handlers/storage-handlers.js.map +1 -0
  62. package/dist/handlers/types.d.ts +27 -0
  63. package/dist/handlers/types.d.ts.map +1 -0
  64. package/dist/handlers/types.js +31 -0
  65. package/dist/handlers/types.js.map +1 -0
  66. package/dist/handlers/user-handlers.d.ts +3 -0
  67. package/dist/handlers/user-handlers.d.ts.map +1 -0
  68. package/dist/handlers/user-handlers.js +16 -0
  69. package/dist/handlers/user-handlers.js.map +1 -0
  70. package/dist/handlers/vm-handlers.d.ts +3 -0
  71. package/dist/handlers/vm-handlers.d.ts.map +1 -0
  72. package/dist/handlers/vm-handlers.js +68 -0
  73. package/dist/handlers/vm-handlers.js.map +1 -0
  74. package/dist/index.js +6 -2986
  75. package/dist/index.js.map +1 -1
  76. package/dist/services/observability.js +1 -1
  77. package/dist/services/observability.js.map +1 -1
  78. package/dist/tools/app-tools.d.ts +6 -0
  79. package/dist/tools/app-tools.d.ts.map +1 -0
  80. package/dist/tools/app-tools.js +133 -0
  81. package/dist/tools/app-tools.js.map +1 -0
  82. package/dist/tools/consolidated-tools.d.ts +6 -0
  83. package/dist/tools/consolidated-tools.d.ts.map +1 -0
  84. package/dist/tools/consolidated-tools.js +256 -0
  85. package/dist/tools/consolidated-tools.js.map +1 -0
  86. package/dist/tools/database-tools.d.ts +6 -0
  87. package/dist/tools/database-tools.d.ts.map +1 -0
  88. package/dist/tools/database-tools.js +252 -0
  89. package/dist/tools/database-tools.js.map +1 -0
  90. package/dist/tools/deployment-tools.d.ts +6 -0
  91. package/dist/tools/deployment-tools.d.ts.map +1 -0
  92. package/dist/tools/deployment-tools.js +140 -0
  93. package/dist/tools/deployment-tools.js.map +1 -0
  94. package/dist/tools/disk-tools.d.ts +6 -0
  95. package/dist/tools/disk-tools.d.ts.map +1 -0
  96. package/dist/tools/disk-tools.js +167 -0
  97. package/dist/tools/disk-tools.js.map +1 -0
  98. package/dist/tools/dns-tools.d.ts +6 -0
  99. package/dist/tools/dns-tools.d.ts.map +1 -0
  100. package/dist/tools/dns-tools.js +184 -0
  101. package/dist/tools/dns-tools.js.map +1 -0
  102. package/dist/tools/domain-tools.d.ts +6 -0
  103. package/dist/tools/domain-tools.d.ts.map +1 -0
  104. package/dist/tools/domain-tools.js +63 -0
  105. package/dist/tools/domain-tools.js.map +1 -0
  106. package/dist/tools/env-tools.d.ts +6 -0
  107. package/dist/tools/env-tools.d.ts.map +1 -0
  108. package/dist/tools/env-tools.js +112 -0
  109. package/dist/tools/env-tools.js.map +1 -0
  110. package/dist/tools/index.d.ts +28 -0
  111. package/dist/tools/index.d.ts.map +1 -0
  112. package/dist/tools/index.js +72 -0
  113. package/dist/tools/index.js.map +1 -0
  114. package/dist/tools/mail-tools.d.ts +6 -0
  115. package/dist/tools/mail-tools.d.ts.map +1 -0
  116. package/dist/tools/mail-tools.js +148 -0
  117. package/dist/tools/mail-tools.js.map +1 -0
  118. package/dist/tools/network-tools.d.ts +6 -0
  119. package/dist/tools/network-tools.d.ts.map +1 -0
  120. package/dist/tools/network-tools.js +63 -0
  121. package/dist/tools/network-tools.js.map +1 -0
  122. package/dist/tools/observability-tools.d.ts +6 -0
  123. package/dist/tools/observability-tools.d.ts.map +1 -0
  124. package/dist/tools/observability-tools.js +49 -0
  125. package/dist/tools/observability-tools.js.map +1 -0
  126. package/dist/tools/plan-tools.d.ts +6 -0
  127. package/dist/tools/plan-tools.d.ts.map +1 -0
  128. package/dist/tools/plan-tools.js +38 -0
  129. package/dist/tools/plan-tools.js.map +1 -0
  130. package/dist/tools/settings-tools.d.ts +6 -0
  131. package/dist/tools/settings-tools.d.ts.map +1 -0
  132. package/dist/tools/settings-tools.js +77 -0
  133. package/dist/tools/settings-tools.js.map +1 -0
  134. package/dist/tools/storage-tools.d.ts +6 -0
  135. package/dist/tools/storage-tools.d.ts.map +1 -0
  136. package/dist/tools/storage-tools.js +166 -0
  137. package/dist/tools/storage-tools.js.map +1 -0
  138. package/dist/tools/types.d.ts +34 -0
  139. package/dist/tools/types.d.ts.map +1 -0
  140. package/dist/tools/types.js +27 -0
  141. package/dist/tools/types.js.map +1 -0
  142. package/dist/tools/user-tools.d.ts +6 -0
  143. package/dist/tools/user-tools.d.ts.map +1 -0
  144. package/dist/tools/user-tools.js +13 -0
  145. package/dist/tools/user-tools.js.map +1 -0
  146. package/dist/tools/vm-tools.d.ts +6 -0
  147. package/dist/tools/vm-tools.d.ts.map +1 -0
  148. package/dist/tools/vm-tools.js +240 -0
  149. package/dist/tools/vm-tools.js.map +1 -0
  150. package/dist/utils/errors.js +2 -2
  151. package/dist/utils/errors.js.map +1 -1
  152. 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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleDiskTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=disk-handlers.d.ts.map
@@ -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":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAA2B,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvG,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,IAAK,CAAC,OAAiB,EACvB,iBAAiB,CAAC,IAAI,CAAC,CAC1B,CAAC;YACF,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CACrC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB;gBACI,IAAI,EAAE,IAAK,CAAC,IAAc;gBAC1B,IAAI,EAAE,IAAK,CAAC,IAAc;gBAC1B,SAAS,EAAE,IAAK,CAAC,SAAmB;aACvC,CACJ,CAAC;YACF,OAAO,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,4BAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAClC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,CAC3B,CAAC;YACF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,WAAW,CAAC,UAAU,CACxB,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAAC,SAAS,IAAK,CAAC,QAAQ,yBAAyB,CAAC,CAAC;QAC7E,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CACrC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,EACxB,IAAK,CAAC,IAAc,CACvB,CAAC;YACF,OAAO,eAAe,CAAC,SAAS,IAAK,CAAC,QAAQ,gBAAgB,IAAK,CAAC,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClI,CAAC;QAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,eAAe,CACzC,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,CAC3B,CAAC;YACF,OAAO,eAAe,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,eAAe,CACjD,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,EACxB,iBAAiB,CAAC,IAAI,CAAC,CAC1B,CAAC;YACF,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,CAAC,eAAe,CAC7B,MAAM,EACN,IAAK,CAAC,OAAiB,EACvB,IAAK,CAAC,QAAkB,EACxB,IAAK,CAAC,KAAe,CACxB,CAAC;YACF,OAAO,eAAe,CAAC,eAAe,IAAK,CAAC,KAAK,yBAAyB,CAAC,CAAC;QAChF,CAAC;QAED;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleDnsTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=dns-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleDomainTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=domain-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleEnvTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=env-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleMailTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=mail-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleNetworkTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=network-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleObservabilityTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=observability-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handlePlanTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=plan-handlers.d.ts.map
@@ -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,3 @@
1
+ import { LiaraClient, ToolResult } from './types.js';
2
+ export declare function handleSettingsTools(client: LiaraClient, name: string, args: any): Promise<ToolResult | null>;
3
+ //# sourceMappingURL=settings-handlers.d.ts.map
@@ -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