ncloud-mcp-server 1.0.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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/README_EN.md +159 -0
  4. package/dist/auth/signature.d.ts +16 -0
  5. package/dist/auth/signature.js +18 -0
  6. package/dist/auth/signature.js.map +1 -0
  7. package/dist/auth/signature.test.d.ts +1 -0
  8. package/dist/auth/signature.test.js +90 -0
  9. package/dist/auth/signature.test.js.map +1 -0
  10. package/dist/client/ncloud-client.d.ts +27 -0
  11. package/dist/client/ncloud-client.js +270 -0
  12. package/dist/client/ncloud-client.js.map +1 -0
  13. package/dist/client/ncloud-client.test.d.ts +1 -0
  14. package/dist/client/ncloud-client.test.js +477 -0
  15. package/dist/client/ncloud-client.test.js.map +1 -0
  16. package/dist/client/s3-compatible-client.d.ts +49 -0
  17. package/dist/client/s3-compatible-client.js +210 -0
  18. package/dist/client/s3-compatible-client.js.map +1 -0
  19. package/dist/client/swift-compatible-client.d.ts +68 -0
  20. package/dist/client/swift-compatible-client.js +173 -0
  21. package/dist/client/swift-compatible-client.js.map +1 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +362 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/tools/acg.d.ts +3 -0
  26. package/dist/tools/acg.js +220 -0
  27. package/dist/tools/acg.js.map +1 -0
  28. package/dist/tools/activity-tracer.d.ts +3 -0
  29. package/dist/tools/activity-tracer.js +77 -0
  30. package/dist/tools/activity-tracer.js.map +1 -0
  31. package/dist/tools/analytics-cdss.d.ts +3 -0
  32. package/dist/tools/analytics-cdss.js +618 -0
  33. package/dist/tools/analytics-cdss.js.map +1 -0
  34. package/dist/tools/analytics-datacatalog.d.ts +10 -0
  35. package/dist/tools/analytics-datacatalog.js +409 -0
  36. package/dist/tools/analytics-datacatalog.js.map +1 -0
  37. package/dist/tools/analytics-dataflow.d.ts +16 -0
  38. package/dist/tools/analytics-dataflow.js +478 -0
  39. package/dist/tools/analytics-dataflow.js.map +1 -0
  40. package/dist/tools/analytics-dataforest.d.ts +10 -0
  41. package/dist/tools/analytics-dataforest.js +379 -0
  42. package/dist/tools/analytics-dataforest.js.map +1 -0
  43. package/dist/tools/analytics-dataquery.d.ts +16 -0
  44. package/dist/tools/analytics-dataquery.js +143 -0
  45. package/dist/tools/analytics-dataquery.js.map +1 -0
  46. package/dist/tools/analytics-datastream.d.ts +13 -0
  47. package/dist/tools/analytics-datastream.js +359 -0
  48. package/dist/tools/analytics-datastream.js.map +1 -0
  49. package/dist/tools/analytics-hadoop.d.ts +12 -0
  50. package/dist/tools/analytics-hadoop.js +450 -0
  51. package/dist/tools/analytics-hadoop.js.map +1 -0
  52. package/dist/tools/analytics-ses.d.ts +3 -0
  53. package/dist/tools/analytics-ses.js +653 -0
  54. package/dist/tools/analytics-ses.js.map +1 -0
  55. package/dist/tools/api-gateway.d.ts +3 -0
  56. package/dist/tools/api-gateway.js +202 -0
  57. package/dist/tools/api-gateway.js.map +1 -0
  58. package/dist/tools/autoscaling.d.ts +3 -0
  59. package/dist/tools/autoscaling.js +430 -0
  60. package/dist/tools/autoscaling.js.map +1 -0
  61. package/dist/tools/billing.d.ts +14 -0
  62. package/dist/tools/billing.js +545 -0
  63. package/dist/tools/billing.js.map +1 -0
  64. package/dist/tools/certificate-manager.d.ts +18 -0
  65. package/dist/tools/certificate-manager.js +84 -0
  66. package/dist/tools/certificate-manager.js.map +1 -0
  67. package/dist/tools/cloud-advisor.d.ts +3 -0
  68. package/dist/tools/cloud-advisor.js +202 -0
  69. package/dist/tools/cloud-advisor.js.map +1 -0
  70. package/dist/tools/cloud-functions.d.ts +3 -0
  71. package/dist/tools/cloud-functions.js +497 -0
  72. package/dist/tools/cloud-functions.js.map +1 -0
  73. package/dist/tools/cloud-insight-integration.d.ts +3 -0
  74. package/dist/tools/cloud-insight-integration.js +90 -0
  75. package/dist/tools/cloud-insight-integration.js.map +1 -0
  76. package/dist/tools/cloud-insight-plugin.d.ts +3 -0
  77. package/dist/tools/cloud-insight-plugin.js +600 -0
  78. package/dist/tools/cloud-insight-plugin.js.map +1 -0
  79. package/dist/tools/cloud-insight-rule.d.ts +3 -0
  80. package/dist/tools/cloud-insight-rule.js +570 -0
  81. package/dist/tools/cloud-insight-rule.js.map +1 -0
  82. package/dist/tools/cloud-insight.d.ts +3 -0
  83. package/dist/tools/cloud-insight.js +246 -0
  84. package/dist/tools/cloud-insight.js.map +1 -0
  85. package/dist/tools/common.d.ts +3 -0
  86. package/dist/tools/common.js +120 -0
  87. package/dist/tools/common.js.map +1 -0
  88. package/dist/tools/compute-initscript.d.ts +3 -0
  89. package/dist/tools/compute-initscript.js +62 -0
  90. package/dist/tools/compute-initscript.js.map +1 -0
  91. package/dist/tools/compute-loginkey.d.ts +3 -0
  92. package/dist/tools/compute-loginkey.js +59 -0
  93. package/dist/tools/compute-loginkey.js.map +1 -0
  94. package/dist/tools/compute-placement.d.ts +3 -0
  95. package/dist/tools/compute-placement.js +196 -0
  96. package/dist/tools/compute-placement.js.map +1 -0
  97. package/dist/tools/compute-publicip.d.ts +3 -0
  98. package/dist/tools/compute-publicip.js +97 -0
  99. package/dist/tools/compute-publicip.js.map +1 -0
  100. package/dist/tools/compute-server.d.ts +3 -0
  101. package/dist/tools/compute-server.js +445 -0
  102. package/dist/tools/compute-server.js.map +1 -0
  103. package/dist/tools/compute-server.test.d.ts +1 -0
  104. package/dist/tools/compute-server.test.js +224 -0
  105. package/dist/tools/compute-server.test.js.map +1 -0
  106. package/dist/tools/compute-storage.d.ts +3 -0
  107. package/dist/tools/compute-storage.js +240 -0
  108. package/dist/tools/compute-storage.js.map +1 -0
  109. package/dist/tools/containers-nks.d.ts +13 -0
  110. package/dist/tools/containers-nks.js +576 -0
  111. package/dist/tools/containers-nks.js.map +1 -0
  112. package/dist/tools/containers-registry.d.ts +3 -0
  113. package/dist/tools/containers-registry.js +181 -0
  114. package/dist/tools/containers-registry.js.map +1 -0
  115. package/dist/tools/database-cache.d.ts +3 -0
  116. package/dist/tools/database-cache.js +388 -0
  117. package/dist/tools/database-cache.js.map +1 -0
  118. package/dist/tools/database-mongodb.d.ts +3 -0
  119. package/dist/tools/database-mongodb.js +460 -0
  120. package/dist/tools/database-mongodb.js.map +1 -0
  121. package/dist/tools/database-mssql.d.ts +3 -0
  122. package/dist/tools/database-mssql.js +345 -0
  123. package/dist/tools/database-mssql.js.map +1 -0
  124. package/dist/tools/database-mysql.d.ts +3 -0
  125. package/dist/tools/database-mysql.js +500 -0
  126. package/dist/tools/database-mysql.js.map +1 -0
  127. package/dist/tools/database-postgresql.d.ts +3 -0
  128. package/dist/tools/database-postgresql.js +432 -0
  129. package/dist/tools/database-postgresql.js.map +1 -0
  130. package/dist/tools/global-dns.d.ts +3 -0
  131. package/dist/tools/global-dns.js +207 -0
  132. package/dist/tools/global-dns.js.map +1 -0
  133. package/dist/tools/global-edge.d.ts +3 -0
  134. package/dist/tools/global-edge.js +386 -0
  135. package/dist/tools/global-edge.js.map +1 -0
  136. package/dist/tools/global-traffic-manager.d.ts +3 -0
  137. package/dist/tools/global-traffic-manager.js +497 -0
  138. package/dist/tools/global-traffic-manager.js.map +1 -0
  139. package/dist/tools/index.d.ts +63 -0
  140. package/dist/tools/index.js +64 -0
  141. package/dist/tools/index.js.map +1 -0
  142. package/dist/tools/kms.d.ts +8 -0
  143. package/dist/tools/kms.js +529 -0
  144. package/dist/tools/kms.js.map +1 -0
  145. package/dist/tools/loadbalancer.d.ts +3 -0
  146. package/dist/tools/loadbalancer.js +341 -0
  147. package/dist/tools/loadbalancer.js.map +1 -0
  148. package/dist/tools/log-analytics.d.ts +3 -0
  149. package/dist/tools/log-analytics.js +183 -0
  150. package/dist/tools/log-analytics.js.map +1 -0
  151. package/dist/tools/media-imageoptimizer.d.ts +3 -0
  152. package/dist/tools/media-imageoptimizer.js +187 -0
  153. package/dist/tools/media-imageoptimizer.js.map +1 -0
  154. package/dist/tools/media-livestation.d.ts +3 -0
  155. package/dist/tools/media-livestation.js +252 -0
  156. package/dist/tools/media-livestation.js.map +1 -0
  157. package/dist/tools/media-vodstation.d.ts +3 -0
  158. package/dist/tools/media-vodstation.js +197 -0
  159. package/dist/tools/media-vodstation.js.map +1 -0
  160. package/dist/tools/nat-gateway.d.ts +3 -0
  161. package/dist/tools/nat-gateway.js +91 -0
  162. package/dist/tools/nat-gateway.js.map +1 -0
  163. package/dist/tools/network-acl.d.ts +3 -0
  164. package/dist/tools/network-acl.js +322 -0
  165. package/dist/tools/network-acl.js.map +1 -0
  166. package/dist/tools/network-interface.d.ts +3 -0
  167. package/dist/tools/network-interface.js +193 -0
  168. package/dist/tools/network-interface.js.map +1 -0
  169. package/dist/tools/private-ca.d.ts +8 -0
  170. package/dist/tools/private-ca.js +368 -0
  171. package/dist/tools/private-ca.js.map +1 -0
  172. package/dist/tools/resource-manager.d.ts +3 -0
  173. package/dist/tools/resource-manager.js +151 -0
  174. package/dist/tools/resource-manager.js.map +1 -0
  175. package/dist/tools/route-table.d.ts +3 -0
  176. package/dist/tools/route-table.js +205 -0
  177. package/dist/tools/route-table.js.map +1 -0
  178. package/dist/tools/security-monitoring.d.ts +3 -0
  179. package/dist/tools/security-monitoring.js +182 -0
  180. package/dist/tools/security-monitoring.js.map +1 -0
  181. package/dist/tools/sens.d.ts +3 -0
  182. package/dist/tools/sens.js +240 -0
  183. package/dist/tools/sens.js.map +1 -0
  184. package/dist/tools/sourcebuild.d.ts +3 -0
  185. package/dist/tools/sourcebuild.js +481 -0
  186. package/dist/tools/sourcebuild.js.map +1 -0
  187. package/dist/tools/sourcecommit.d.ts +13 -0
  188. package/dist/tools/sourcecommit.js +228 -0
  189. package/dist/tools/sourcecommit.js.map +1 -0
  190. package/dist/tools/sourcedeploy.d.ts +3 -0
  191. package/dist/tools/sourcedeploy.js +448 -0
  192. package/dist/tools/sourcedeploy.js.map +1 -0
  193. package/dist/tools/sourcepipeline.d.ts +12 -0
  194. package/dist/tools/sourcepipeline.js +357 -0
  195. package/dist/tools/sourcepipeline.js.map +1 -0
  196. package/dist/tools/storage-archive.d.ts +3 -0
  197. package/dist/tools/storage-archive.js +337 -0
  198. package/dist/tools/storage-archive.js.map +1 -0
  199. package/dist/tools/storage-nas.d.ts +3 -0
  200. package/dist/tools/storage-nas.js +288 -0
  201. package/dist/tools/storage-nas.js.map +1 -0
  202. package/dist/tools/storage-ncloud.d.ts +3 -0
  203. package/dist/tools/storage-ncloud.js +864 -0
  204. package/dist/tools/storage-ncloud.js.map +1 -0
  205. package/dist/tools/storage-object.d.ts +3 -0
  206. package/dist/tools/storage-object.js +982 -0
  207. package/dist/tools/storage-object.js.map +1 -0
  208. package/dist/tools/sub-account.d.ts +3 -0
  209. package/dist/tools/sub-account.js +311 -0
  210. package/dist/tools/sub-account.js.map +1 -0
  211. package/dist/tools/target-group.d.ts +3 -0
  212. package/dist/tools/target-group.js +207 -0
  213. package/dist/tools/target-group.js.map +1 -0
  214. package/dist/tools/vpc-peering.d.ts +3 -0
  215. package/dist/tools/vpc-peering.js +109 -0
  216. package/dist/tools/vpc-peering.js.map +1 -0
  217. package/dist/tools/vpc.d.ts +3 -0
  218. package/dist/tools/vpc.js +194 -0
  219. package/dist/tools/vpc.js.map +1 -0
  220. package/package.json +53 -0
@@ -0,0 +1,388 @@
1
+ import { z } from "zod";
2
+ export function registerDatabaseCacheTools(server, client) {
3
+ // ─── Query Tools ───────────────────────────────────────────────────────────
4
+ server.tool("ncloud_list_cache_instances", "List all Cloud DB for Cache (Redis/Valkey) instances in the current region", {
5
+ cloudCacheInstanceNoList: z.array(z.string()).optional().describe("Filter by Cache instance numbers"),
6
+ cloudCacheServiceName: z.string().optional().describe("Filter by Cache service name"),
7
+ pageNo: z.number().optional().describe("Page number for pagination"),
8
+ pageSize: z.number().optional().describe("Page size for pagination"),
9
+ }, async (params) => {
10
+ try {
11
+ const result = await client.request("/vcache/v2/getCloudCacheInstanceList", params);
12
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
13
+ }
14
+ catch (error) {
15
+ return { content: [{ type: "text", text: error.message }], isError: true };
16
+ }
17
+ });
18
+ server.tool("ncloud_get_cache_instance_detail", "Get detailed information about a specific Cloud DB for Cache (Redis/Valkey) instance", {
19
+ cloudCacheInstanceNo: z.string().describe("Cloud Cache instance number to query"),
20
+ }, async (params) => {
21
+ try {
22
+ const result = await client.request("/vcache/v2/getCloudCacheInstanceDetail", params);
23
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
24
+ }
25
+ catch (error) {
26
+ return { content: [{ type: "text", text: error.message }], isError: true };
27
+ }
28
+ });
29
+ server.tool("ncloud_list_cache_backups", "List backups for a Cloud DB for Cache (Redis/Valkey) instance", {
30
+ cloudCacheInstanceNo: z.string().describe("Cloud Cache instance number"),
31
+ }, async (params) => {
32
+ try {
33
+ const result = await client.request("/vcache/v2/getCloudCacheBackupList", params);
34
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
35
+ }
36
+ catch (error) {
37
+ return { content: [{ type: "text", text: error.message }], isError: true };
38
+ }
39
+ });
40
+ // ─── Config Group Tools ────────────────────────────────────────────────────
41
+ server.tool("ncloud_list_cache_config_groups", "List all Cloud Cache config groups", {
42
+ pageNo: z.number().optional().describe("Page number for pagination"),
43
+ pageSize: z.number().optional().describe("Page size for pagination"),
44
+ }, async (params) => {
45
+ try {
46
+ const result = await client.request("/vcache/v2/getCloudCacheConfigGroupList", params);
47
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
48
+ }
49
+ catch (error) {
50
+ return { content: [{ type: "text", text: error.message }], isError: true };
51
+ }
52
+ });
53
+ server.tool("ncloud_create_cache_config_group", "Create a new Cloud Cache config group. Use dryRun=true to preview without creating.", {
54
+ cloudCacheConfigGroupName: z.string({
55
+ required_error: "필수 파라미터 'cloudCacheConfigGroupName'이 누락되었습니다.",
56
+ }).describe("Config group name"),
57
+ cloudCacheImageProductCode: z.string({
58
+ required_error: "필수 파라미터 'cloudCacheImageProductCode'이 누락되었습니다.",
59
+ }).describe("Cache image product code for the config group"),
60
+ description: z.string().optional().describe("Config group description"),
61
+ dryRun: z.boolean().optional().default(false).describe("If true, returns a preview without actually creating the config group"),
62
+ }, async (params) => {
63
+ try {
64
+ if (params.dryRun) {
65
+ const preview = {
66
+ label: "🔍 Dry-Run Preview: Cache Config Group Creation",
67
+ cloudCacheConfigGroupName: params.cloudCacheConfigGroupName,
68
+ cloudCacheImageProductCode: params.cloudCacheImageProductCode,
69
+ description: params.description,
70
+ message: "이 요청은 실제 Config Group을 생성하지 않습니다. dryRun=false로 호출하면 Config Group이 생성됩니다.",
71
+ };
72
+ return { content: [{ type: "text", text: JSON.stringify(preview, null, 2) }] };
73
+ }
74
+ const { dryRun, ...apiParams } = params;
75
+ const result = await client.request("/vcache/v2/createCloudCacheConfigGroup", apiParams);
76
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
77
+ }
78
+ catch (error) {
79
+ return { content: [{ type: "text", text: error.message }], isError: true };
80
+ }
81
+ });
82
+ server.tool("ncloud_delete_cache_config_group", "⚠️ Destructive: Permanently delete a Cloud Cache config group. Set confirm=true to execute.", {
83
+ cloudCacheConfigGroupNo: z.string().describe("Cloud Cache config group number to delete"),
84
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
85
+ }, async (params) => {
86
+ try {
87
+ if (!params.confirm) {
88
+ const message = `⚠️ This will permanently delete Cache config group [${params.cloudCacheConfigGroupNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
89
+ return { content: [{ type: "text", text: message }] };
90
+ }
91
+ const { confirm, ...apiParams } = params;
92
+ const result = await client.request("/vcache/v2/deleteCloudCacheConfigGroup", apiParams);
93
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
94
+ }
95
+ catch (error) {
96
+ return { content: [{ type: "text", text: error.message }], isError: true };
97
+ }
98
+ });
99
+ // ─── Create Tools ──────────────────────────────────────────────────────────
100
+ server.tool("ncloud_create_cache_instance", "Create a new Cloud DB for Cache (Redis/Valkey) instance. Use dryRun=true to preview without creating.", {
101
+ cloudCacheServiceName: z.string({
102
+ required_error: "필수 파라미터 'cloudCacheServiceName'이 누락되었습니다.",
103
+ }).describe("Cache service name (3-20 chars, lowercase letters and numbers)"),
104
+ vpcNo: z.string({
105
+ required_error: "필수 파라미터 'vpcNo'이 누락되었습니다.",
106
+ }).describe("VPC number"),
107
+ subnetNo: z.string({
108
+ required_error: "필수 파라미터 'subnetNo'이 누락되었습니다.",
109
+ }).describe("Subnet number"),
110
+ cloudCacheImageProductCode: z.string().optional().describe("Cache image product code (Redis/Valkey version)"),
111
+ cloudCacheProductCode: z.string().optional().describe("Cache server product (spec) code"),
112
+ cloudCacheConfigGroupNo: z.string().optional().describe("Config group number to apply"),
113
+ cloudCacheServerNamePrefix: z.string().optional().describe("Server name prefix"),
114
+ cloudCachePort: z.number().optional().describe("Cache port number (default: 6379)"),
115
+ isBackup: z.boolean().optional().describe("Whether to enable automatic backup"),
116
+ backupTime: z.string().optional().describe("Backup time (HH:mm format)"),
117
+ backupFileRetentionPeriod: z.number().optional().describe("Backup retention period in days (1-30)"),
118
+ isAutomaticFailover: z.boolean().optional().describe("Whether to enable automatic failover"),
119
+ shardCount: z.number().optional().describe("Number of shards (for cluster mode)"),
120
+ shardCopyCount: z.number().optional().describe("Number of replicas per shard"),
121
+ dryRun: z.boolean().optional().default(false).describe("If true, returns a preview without actually creating the instance"),
122
+ }, async (params) => {
123
+ try {
124
+ if (params.dryRun) {
125
+ const preview = {
126
+ label: "🔍 Dry-Run Preview: Cache Instance Creation",
127
+ cloudCacheServiceName: params.cloudCacheServiceName,
128
+ vpcNo: params.vpcNo,
129
+ subnetNo: params.subnetNo,
130
+ cloudCacheImageProductCode: params.cloudCacheImageProductCode,
131
+ cloudCacheProductCode: params.cloudCacheProductCode,
132
+ cloudCacheConfigGroupNo: params.cloudCacheConfigGroupNo,
133
+ cloudCachePort: params.cloudCachePort ?? 6379,
134
+ isBackup: params.isBackup ?? true,
135
+ isAutomaticFailover: params.isAutomaticFailover,
136
+ shardCount: params.shardCount,
137
+ shardCopyCount: params.shardCopyCount,
138
+ message: "이 요청은 실제 Cache 인스턴스를 생성하지 않습니다. dryRun=false로 호출하면 인스턴스가 생성됩니다.",
139
+ };
140
+ return { content: [{ type: "text", text: JSON.stringify(preview, null, 2) }] };
141
+ }
142
+ const { dryRun, ...apiParams } = params;
143
+ const result = await client.request("/vcache/v2/createCloudCacheInstance", apiParams);
144
+ const instance = result.cloudCacheInstanceList?.[0];
145
+ const summary = {
146
+ 리소스타입: "Cache (Redis/Valkey)",
147
+ 리소스ID: instance?.cloudCacheInstanceNo ?? "unknown",
148
+ 서비스명: params.cloudCacheServiceName,
149
+ 상태: instance?.cloudCacheInstanceStatus?.codeName ?? "creating",
150
+ 생성시각: instance?.createDate ?? new Date().toISOString(),
151
+ VPC: params.vpcNo,
152
+ 서브넷: params.subnetNo,
153
+ 포트: params.cloudCachePort ?? 6379,
154
+ };
155
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
156
+ }
157
+ catch (error) {
158
+ return { content: [{ type: "text", text: error.message }], isError: true };
159
+ }
160
+ });
161
+ // ─── Operation Tools ───────────────────────────────────────────────────────
162
+ server.tool("ncloud_reboot_cache_server", "Reboot a Cloud DB for Cache server instance", {
163
+ cloudCacheServerInstanceNo: z.string().describe("Cloud Cache server instance number to reboot"),
164
+ }, async (params) => {
165
+ try {
166
+ const result = await client.request("/vcache/v2/rebootCloudCacheServerInstance", params);
167
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
168
+ }
169
+ catch (error) {
170
+ return { content: [{ type: "text", text: error.message }], isError: true };
171
+ }
172
+ });
173
+ // ─── Manual Backup Tools ─────────────────────────────────────────────────────
174
+ server.tool("ncloud_list_cache_manual_backups", "List manual backups for Cloud DB for Cache instances", {
175
+ cloudCacheInstanceNo: z.string().optional().describe("Filter by Cloud Cache instance number"),
176
+ pageNo: z.number().optional().describe("Page number for pagination"),
177
+ pageSize: z.number().optional().describe("Page size for pagination"),
178
+ }, async (params) => {
179
+ try {
180
+ const result = await client.request("/vcache/v2/getCloudCacheManualBackupList", params);
181
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
182
+ }
183
+ catch (error) {
184
+ return { content: [{ type: "text", text: error.message }], isError: true };
185
+ }
186
+ });
187
+ server.tool("ncloud_list_cache_manual_backup_details", "Get detailed information about a specific Cloud Cache manual backup", {
188
+ cloudCacheManualBackupNo: z.string({
189
+ required_error: "필수 파라미터 'cloudCacheManualBackupNo'이 누락되었습니다.",
190
+ }).describe("Cloud Cache manual backup number"),
191
+ }, async (params) => {
192
+ try {
193
+ const result = await client.request("/vcache/v2/getCloudCacheManualBackupDetailList", params);
194
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
195
+ }
196
+ catch (error) {
197
+ return { content: [{ type: "text", text: error.message }], isError: true };
198
+ }
199
+ });
200
+ server.tool("ncloud_create_cache_manual_backup", "Create a manual backup for a Cloud DB for Cache instance", {
201
+ cloudCacheInstanceNo: z.string({
202
+ required_error: "필수 파라미터 'cloudCacheInstanceNo'이 누락되었습니다.",
203
+ }).describe("Cloud Cache instance number"),
204
+ cloudCacheManualBackupName: z.string({
205
+ required_error: "필수 파라미터 'cloudCacheManualBackupName'이 누락되었습니다.",
206
+ }).describe("Manual backup name"),
207
+ }, async (params) => {
208
+ try {
209
+ const result = await client.request("/vcache/v2/createCloudCacheManualBackup", params);
210
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
211
+ }
212
+ catch (error) {
213
+ return { content: [{ type: "text", text: error.message }], isError: true };
214
+ }
215
+ });
216
+ server.tool("ncloud_delete_cache_manual_backup", "⚠️ Destructive: Permanently delete a Cloud Cache manual backup. Set confirm=true to execute.", {
217
+ cloudCacheManualBackupNo: z.string({
218
+ required_error: "필수 파라미터 'cloudCacheManualBackupNo'이 누락되었습니다.",
219
+ }).describe("Cloud Cache manual backup number to delete"),
220
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
221
+ }, async (params) => {
222
+ try {
223
+ if (!params.confirm) {
224
+ const message = `⚠️ This will permanently delete Cache manual backup [${params.cloudCacheManualBackupNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
225
+ return { content: [{ type: "text", text: message }] };
226
+ }
227
+ const { confirm, ...apiParams } = params;
228
+ const result = await client.request("/vcache/v2/deleteCloudCacheManualBackup", apiParams);
229
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
230
+ }
231
+ catch (error) {
232
+ return { content: [{ type: "text", text: error.message }], isError: true };
233
+ }
234
+ });
235
+ // ─── Operation Tools (P2) ──────────────────────────────────────────────────
236
+ server.tool("ncloud_flush_cache_server", "⚠️ Destructive: Permanently deletes ALL data from a Cloud Cache server (FlushAll). Set confirm=true to execute.", {
237
+ cloudCacheServerInstanceNo: z.string({
238
+ required_error: "필수 파라미터 'cloudCacheServerInstanceNo'이 누락되었습니다.",
239
+ }).describe("Cloud Cache server instance number to flush"),
240
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
241
+ }, async (params) => {
242
+ try {
243
+ if (!params.confirm) {
244
+ const message = `⚠️ This will permanently delete ALL data from Cache server [${params.cloudCacheServerInstanceNo}]. This action cannot be undone. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
245
+ return { content: [{ type: "text", text: message }] };
246
+ }
247
+ const { confirm, ...apiParams } = params;
248
+ const result = await client.request("/vcache/v2/flushAllCloudCacheServerInstance", apiParams);
249
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
250
+ }
251
+ catch (error) {
252
+ return { content: [{ type: "text", text: error.message }], isError: true };
253
+ }
254
+ });
255
+ server.tool("ncloud_export_cache_backup", "Export a Cloud Cache backup file to Object Storage", {
256
+ cloudCacheInstanceNo: z.string({
257
+ required_error: "필수 파라미터 'cloudCacheInstanceNo'이 누락되었습니다.",
258
+ }).describe("Cloud Cache instance number"),
259
+ cloudCacheServerInstanceNo: z.string({
260
+ required_error: "필수 파라미터 'cloudCacheServerInstanceNo'이 누락되었습니다.",
261
+ }).describe("Cloud Cache server instance number"),
262
+ bucketName: z.string({
263
+ required_error: "필수 파라미터 'bucketName'이 누락되었습니다.",
264
+ }).describe("Object Storage bucket name"),
265
+ folderPath: z.string().optional().describe("Folder path in the bucket"),
266
+ cloudCacheExportObjectList: z.array(z.string()).describe("List of full object names to export"),
267
+ }, async (params) => {
268
+ try {
269
+ const { cloudCacheExportObjectList, ...rest } = params;
270
+ const apiParams = { ...rest };
271
+ cloudCacheExportObjectList.forEach((name, idx) => {
272
+ apiParams[`cloudCacheExportObjectList.${idx + 1}.fullObjectName`] = name;
273
+ });
274
+ const result = await client.request("/vcache/v2/exportBackupToObjectStorage", apiParams);
275
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
276
+ }
277
+ catch (error) {
278
+ return { content: [{ type: "text", text: error.message }], isError: true };
279
+ }
280
+ });
281
+ server.tool("ncloud_list_cache_backup_details", "List detailed backup information for a Cloud Cache server instance (includes file paths)", {
282
+ cloudCacheInstanceNo: z.string({
283
+ required_error: "필수 파라미터 'cloudCacheInstanceNo'이 누락되었습니다.",
284
+ }).describe("Cloud Cache instance number"),
285
+ cloudCacheServerInstanceNo: z.string({
286
+ required_error: "필수 파라미터 'cloudCacheServerInstanceNo'이 누락되었습니다.",
287
+ }).describe("Cloud Cache server instance number"),
288
+ }, async (params) => {
289
+ try {
290
+ const result = await client.request("/vcache/v2/getCloudCacheBackupDetailList", params);
291
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
292
+ }
293
+ catch (error) {
294
+ return { content: [{ type: "text", text: error.message }], isError: true };
295
+ }
296
+ });
297
+ // ─── Reference Tools (P3) ─────────────────────────────────────────────────
298
+ server.tool("ncloud_get_cache_image_products", "List available Cloud Cache image product codes (Redis/Valkey versions)", {
299
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
300
+ }, async (params) => {
301
+ try {
302
+ const result = await client.request("/vcache/v2/getCloudCacheImageProductList", params);
303
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
304
+ }
305
+ catch (error) {
306
+ return { content: [{ type: "text", text: error.message }], isError: true };
307
+ }
308
+ });
309
+ server.tool("ncloud_get_cache_products", "List available Cloud Cache server spec product codes for a given image", {
310
+ cloudCacheImageProductCode: z.string({
311
+ required_error: "필수 파라미터 'cloudCacheImageProductCode'이 누락되었습니다.",
312
+ }).describe("Cloud Cache image product code"),
313
+ }, async (params) => {
314
+ try {
315
+ const result = await client.request("/vcache/v2/getCloudCacheProductList", params);
316
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
317
+ }
318
+ catch (error) {
319
+ return { content: [{ type: "text", text: error.message }], isError: true };
320
+ }
321
+ });
322
+ server.tool("ncloud_get_cache_target_vpcs", "List VPCs available for Cloud DB for Cache", {
323
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
324
+ }, async (params) => {
325
+ try {
326
+ const result = await client.request("/vcache/v2/getCloudCacheTargetVpcList", params);
327
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
328
+ }
329
+ catch (error) {
330
+ return { content: [{ type: "text", text: error.message }], isError: true };
331
+ }
332
+ });
333
+ server.tool("ncloud_get_cache_target_subnets", "List subnets available for Cloud DB for Cache within a specific instance", {
334
+ cloudCacheInstanceNo: z.string({
335
+ required_error: "필수 파라미터 'cloudCacheInstanceNo'이 누락되었습니다.",
336
+ }).describe("Cloud Cache instance number"),
337
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
338
+ }, async (params) => {
339
+ try {
340
+ const result = await client.request("/vcache/v2/getCloudCacheTargetSubnetList", params);
341
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
342
+ }
343
+ catch (error) {
344
+ return { content: [{ type: "text", text: error.message }], isError: true };
345
+ }
346
+ });
347
+ server.tool("ncloud_list_cache_config_group_versions", "List available Cloud Cache config group versions", {
348
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
349
+ }, async (params) => {
350
+ try {
351
+ const result = await client.request("/vcache/v2/getCloudCacheConfigGroupVersionList", params);
352
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
353
+ }
354
+ catch (error) {
355
+ return { content: [{ type: "text", text: error.message }], isError: true };
356
+ }
357
+ });
358
+ server.tool("ncloud_list_cache_buckets", "List Object Storage buckets available for Cloud DB for Cache backup export", {
359
+ regionCode: z.string().optional().describe("Region code (e.g., KR, JPN, SGN)"),
360
+ }, async (params) => {
361
+ try {
362
+ const result = await client.request("/vcache/v2/getCloudCacheBucketList", params);
363
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
364
+ }
365
+ catch (error) {
366
+ return { content: [{ type: "text", text: error.message }], isError: true };
367
+ }
368
+ });
369
+ // ─── Destructive Tools (with confirm gate) ─────────────────────────────────
370
+ server.tool("ncloud_delete_cache_instance", "⚠️ Destructive: Permanently delete a Cloud DB for Cache (Redis/Valkey) instance. Set confirm=true to execute.", {
371
+ cloudCacheInstanceNo: z.string().describe("Cloud Cache instance number to delete"),
372
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
373
+ }, async (params) => {
374
+ try {
375
+ if (!params.confirm) {
376
+ const message = `⚠️ This will permanently delete Cache instance [${params.cloudCacheInstanceNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
377
+ return { content: [{ type: "text", text: message }] };
378
+ }
379
+ const { confirm, ...apiParams } = params;
380
+ const result = await client.request("/vcache/v2/deleteCloudCacheInstance", apiParams);
381
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
382
+ }
383
+ catch (error) {
384
+ return { content: [{ type: "text", text: error.message }], isError: true };
385
+ }
386
+ });
387
+ }
388
+ //# sourceMappingURL=database-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-cache.js","sourceRoot":"","sources":["../../src/tools/database-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAoB;IAChF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,4EAA4E,EAC5E;QACE,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACrG,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;YACpF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,sFAAsF,EACtF;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KAClF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,+DAA+D,EAC/D;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KACzE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAC;YAClF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,oCAAoC,EACpC;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;YACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,qFAAqF,EACrF;QACE,yBAAyB,EAAE,CAAC,CAAC,MAAM,CAAC;YAClC,cAAc,EAAE,+CAA+C;SAChE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChC,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;YACnC,cAAc,EAAE,gDAAgD;SACjE,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACvE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;KAChI,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,iDAAiD;oBACxD,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;oBAC3D,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;oBAC7D,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,OAAO,EAAE,2EAA2E;iBACrF,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1F,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,6FAA6F,EAC7F;QACE,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACzF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACtH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,uDAAuD,MAAM,CAAC,uBAAuB,4FAA4F,CAAC;gBAClM,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,uGAAuG,EACvG;QACE,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC9B,cAAc,EAAE,2CAA2C;SAC5D,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,cAAc,EAAE,2BAA2B;SAC5C,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,cAAc,EAAE,8BAA8B;SAC/C,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC5B,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC7G,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACzF,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACvF,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAChF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACnF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACxE,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACnG,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC5F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACjF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC9E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;KAC5H,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,6CAA6C;oBACpD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;oBACnD,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;oBAC7D,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;oBACnD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;oBACvD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;oBAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;oBACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;oBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,OAAO,EAAE,iEAAiE;iBAC3E,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1F,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,SAAS,CAAC,CAAC;YACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE,sBAAsB;gBAC7B,KAAK,EAAE,QAAQ,EAAE,oBAAoB,IAAI,SAAS;gBAClD,IAAI,EAAE,MAAM,CAAC,qBAAqB;gBAClC,EAAE,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,IAAI,UAAU;gBAC9D,IAAI,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtD,GAAG,EAAE,MAAM,CAAC,KAAK;gBACjB,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,EAAE,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;aAClC,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,6CAA6C,EAC7C;QACE,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KAChG,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2CAA2C,EAAE,MAAM,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gFAAgF;IAEhF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,sDAAsD,EACtD;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC7F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yCAAyC,EACzC,qEAAqE,EACrE;QACE,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC;YACjC,cAAc,EAAE,8CAA8C;SAC/D,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAChD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;YAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,0DAA0D,EAC1D;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,0CAA0C;SAC3D,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;YACnC,cAAc,EAAE,gDAAgD;SACjE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KAClC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;YACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,8FAA8F,EAC9F;QACE,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC;YACjC,cAAc,EAAE,8CAA8C;SAC/D,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACzD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACtH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,wDAAwD,MAAM,CAAC,wBAAwB,4FAA4F,CAAC;gBACpM,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;YAC1F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,iHAAiH,EACjH;QACE,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;YACnC,cAAc,EAAE,gDAAgD;SACjE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACtH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,+DAA+D,MAAM,CAAC,0BAA0B,0HAA0H,CAAC;gBAC3O,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,6CAA6C,EAAE,SAAS,CAAC,CAAC;YAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,oDAAoD,EACpD;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,0CAA0C;SAC3D,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;YACnC,cAAc,EAAE,gDAAgD;SACjE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACjD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,gCAAgC;SACjD,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvE,0BAA0B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAChG,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YACvD,MAAM,SAAS,GAAwB,EAAE,GAAG,IAAI,EAAE,CAAC;YACnD,0BAA0B,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC/C,SAAS,CAAC,8BAA8B,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,0FAA0F,EAC1F;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,0CAA0C;SAC3D,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;YACnC,cAAc,EAAE,gDAAgD;SACjE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KAClD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,6EAA6E;IAE7E,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,wEAAwE,EACxE;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,wEAAwE,EACxE;QACE,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC;YACnC,cAAc,EAAE,gDAAgD;SACjE,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC9C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,4CAA4C,EAC5C;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;YACrF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,0EAA0E,EAC1E;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,0CAA0C;SAC3D,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yCAAyC,EACzC,kDAAkD,EAClD;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;YAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,4EAA4E,EAC5E;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC/E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAC;YAClF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,+GAA+G,EAC/G;QACE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAClF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KACtH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,mDAAmD,MAAM,CAAC,oBAAoB,4FAA4F,CAAC;gBAC3L,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,SAAS,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { NcloudClient } from "../client/ncloud-client.js";
3
+ export declare function registerDatabaseMongodbTools(server: McpServer, client: NcloudClient): void;