kubeview-mcp 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 (454) hide show
  1. package/.prettierrc.json +11 -0
  2. package/CHANGELOG.md +55 -0
  3. package/LICENSE +21 -0
  4. package/README.md +251 -0
  5. package/RELEASE.md +154 -0
  6. package/TODO.md +0 -0
  7. package/bin/kubeview-mcp.js +274 -0
  8. package/bin/setup.js +368 -0
  9. package/dist/src/cli/cli.d.ts +3 -0
  10. package/dist/src/cli/cli.d.ts.map +1 -0
  11. package/dist/src/cli/cli.js +23 -0
  12. package/dist/src/cli/cli.js.map +1 -0
  13. package/dist/src/index.d.ts +8 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +45 -0
  16. package/dist/src/index.js.map +1 -0
  17. package/dist/src/kubernetes/BaseResourceOperations.d.ts +155 -0
  18. package/dist/src/kubernetes/BaseResourceOperations.d.ts.map +1 -0
  19. package/dist/src/kubernetes/BaseResourceOperations.js +136 -0
  20. package/dist/src/kubernetes/BaseResourceOperations.js.map +1 -0
  21. package/dist/src/kubernetes/CircuitBreaker.d.ts +182 -0
  22. package/dist/src/kubernetes/CircuitBreaker.d.ts.map +1 -0
  23. package/dist/src/kubernetes/CircuitBreaker.js +369 -0
  24. package/dist/src/kubernetes/CircuitBreaker.js.map +1 -0
  25. package/dist/src/kubernetes/ConnectionManager.d.ts +60 -0
  26. package/dist/src/kubernetes/ConnectionManager.d.ts.map +1 -0
  27. package/dist/src/kubernetes/ConnectionManager.js +77 -0
  28. package/dist/src/kubernetes/ConnectionManager.js.map +1 -0
  29. package/dist/src/kubernetes/ConnectionPool.d.ts +183 -0
  30. package/dist/src/kubernetes/ConnectionPool.d.ts.map +1 -0
  31. package/dist/src/kubernetes/ConnectionPool.js +437 -0
  32. package/dist/src/kubernetes/ConnectionPool.js.map +1 -0
  33. package/dist/src/kubernetes/ErrorHandler.d.ts +172 -0
  34. package/dist/src/kubernetes/ErrorHandler.d.ts.map +1 -0
  35. package/dist/src/kubernetes/ErrorHandler.js +328 -0
  36. package/dist/src/kubernetes/ErrorHandler.js.map +1 -0
  37. package/dist/src/kubernetes/ErrorHandling.d.ts +148 -0
  38. package/dist/src/kubernetes/ErrorHandling.d.ts.map +1 -0
  39. package/dist/src/kubernetes/ErrorHandling.js +304 -0
  40. package/dist/src/kubernetes/ErrorHandling.js.map +1 -0
  41. package/dist/src/kubernetes/KubernetesClient.d.ts +162 -0
  42. package/dist/src/kubernetes/KubernetesClient.d.ts.map +1 -0
  43. package/dist/src/kubernetes/KubernetesClient.js +382 -0
  44. package/dist/src/kubernetes/KubernetesClient.js.map +1 -0
  45. package/dist/src/kubernetes/ResourceOperations.d.ts +69 -0
  46. package/dist/src/kubernetes/ResourceOperations.d.ts.map +1 -0
  47. package/dist/src/kubernetes/ResourceOperations.js +99 -0
  48. package/dist/src/kubernetes/ResourceOperations.js.map +1 -0
  49. package/dist/src/kubernetes/RetryStrategy.d.ts +137 -0
  50. package/dist/src/kubernetes/RetryStrategy.d.ts.map +1 -0
  51. package/dist/src/kubernetes/RetryStrategy.js +277 -0
  52. package/dist/src/kubernetes/RetryStrategy.js.map +1 -0
  53. package/dist/src/kubernetes/RetryableOperation.d.ts +118 -0
  54. package/dist/src/kubernetes/RetryableOperation.d.ts.map +1 -0
  55. package/dist/src/kubernetes/RetryableOperation.js +233 -0
  56. package/dist/src/kubernetes/RetryableOperation.js.map +1 -0
  57. package/dist/src/kubernetes/index.d.ts +18 -0
  58. package/dist/src/kubernetes/index.d.ts.map +1 -0
  59. package/dist/src/kubernetes/index.js +28 -0
  60. package/dist/src/kubernetes/index.js.map +1 -0
  61. package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts +60 -0
  62. package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts.map +1 -0
  63. package/dist/src/kubernetes/resources/ConfigMapOperations.js +306 -0
  64. package/dist/src/kubernetes/resources/ConfigMapOperations.js.map +1 -0
  65. package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts +55 -0
  66. package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts.map +1 -0
  67. package/dist/src/kubernetes/resources/CustomResourceOperations.js +363 -0
  68. package/dist/src/kubernetes/resources/CustomResourceOperations.js.map +1 -0
  69. package/dist/src/kubernetes/resources/DeploymentOperations.d.ts +66 -0
  70. package/dist/src/kubernetes/resources/DeploymentOperations.d.ts.map +1 -0
  71. package/dist/src/kubernetes/resources/DeploymentOperations.js +234 -0
  72. package/dist/src/kubernetes/resources/DeploymentOperations.js.map +1 -0
  73. package/dist/src/kubernetes/resources/IngressOperations.d.ts +60 -0
  74. package/dist/src/kubernetes/resources/IngressOperations.d.ts.map +1 -0
  75. package/dist/src/kubernetes/resources/IngressOperations.js +224 -0
  76. package/dist/src/kubernetes/resources/IngressOperations.js.map +1 -0
  77. package/dist/src/kubernetes/resources/MetricOperations.d.ts +218 -0
  78. package/dist/src/kubernetes/resources/MetricOperations.d.ts.map +1 -0
  79. package/dist/src/kubernetes/resources/MetricOperations.js +893 -0
  80. package/dist/src/kubernetes/resources/MetricOperations.js.map +1 -0
  81. package/dist/src/kubernetes/resources/NamespaceOperations.d.ts +38 -0
  82. package/dist/src/kubernetes/resources/NamespaceOperations.d.ts.map +1 -0
  83. package/dist/src/kubernetes/resources/NamespaceOperations.js +101 -0
  84. package/dist/src/kubernetes/resources/NamespaceOperations.js.map +1 -0
  85. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts +109 -0
  86. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts.map +1 -0
  87. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js +383 -0
  88. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js.map +1 -0
  89. package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts +97 -0
  90. package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts.map +1 -0
  91. package/dist/src/kubernetes/resources/PersistentVolumeOperations.js +321 -0
  92. package/dist/src/kubernetes/resources/PersistentVolumeOperations.js.map +1 -0
  93. package/dist/src/kubernetes/resources/PodOperations.d.ts +99 -0
  94. package/dist/src/kubernetes/resources/PodOperations.d.ts.map +1 -0
  95. package/dist/src/kubernetes/resources/PodOperations.js +333 -0
  96. package/dist/src/kubernetes/resources/PodOperations.js.map +1 -0
  97. package/dist/src/kubernetes/resources/SecretOperations.d.ts +71 -0
  98. package/dist/src/kubernetes/resources/SecretOperations.d.ts.map +1 -0
  99. package/dist/src/kubernetes/resources/SecretOperations.js +254 -0
  100. package/dist/src/kubernetes/resources/SecretOperations.js.map +1 -0
  101. package/dist/src/kubernetes/resources/ServiceOperations.d.ts +64 -0
  102. package/dist/src/kubernetes/resources/ServiceOperations.d.ts.map +1 -0
  103. package/dist/src/kubernetes/resources/ServiceOperations.js +232 -0
  104. package/dist/src/kubernetes/resources/ServiceOperations.js.map +1 -0
  105. package/dist/src/kubernetes/utils/ResourceUtils.d.ts +238 -0
  106. package/dist/src/kubernetes/utils/ResourceUtils.d.ts.map +1 -0
  107. package/dist/src/kubernetes/utils/ResourceUtils.js +439 -0
  108. package/dist/src/kubernetes/utils/ResourceUtils.js.map +1 -0
  109. package/dist/src/plugins/ArgoCDToolsPlugin.d.ts +45 -0
  110. package/dist/src/plugins/ArgoCDToolsPlugin.d.ts.map +1 -0
  111. package/dist/src/plugins/ArgoCDToolsPlugin.js +155 -0
  112. package/dist/src/plugins/ArgoCDToolsPlugin.js.map +1 -0
  113. package/dist/src/plugins/ArgoToolsPlugin.d.ts +45 -0
  114. package/dist/src/plugins/ArgoToolsPlugin.d.ts.map +1 -0
  115. package/dist/src/plugins/ArgoToolsPlugin.js +149 -0
  116. package/dist/src/plugins/ArgoToolsPlugin.js.map +1 -0
  117. package/dist/src/plugins/HelmToolsPlugin.d.ts +41 -0
  118. package/dist/src/plugins/HelmToolsPlugin.d.ts.map +1 -0
  119. package/dist/src/plugins/HelmToolsPlugin.js +146 -0
  120. package/dist/src/plugins/HelmToolsPlugin.js.map +1 -0
  121. package/dist/src/plugins/KubernetesToolsPlugin.d.ts +44 -0
  122. package/dist/src/plugins/KubernetesToolsPlugin.d.ts.map +1 -0
  123. package/dist/src/plugins/KubernetesToolsPlugin.js +159 -0
  124. package/dist/src/plugins/KubernetesToolsPlugin.js.map +1 -0
  125. package/dist/src/plugins/SamplePlugin.d.ts +12 -0
  126. package/dist/src/plugins/SamplePlugin.d.ts.map +1 -0
  127. package/dist/src/plugins/SamplePlugin.js +51 -0
  128. package/dist/src/plugins/SamplePlugin.js.map +1 -0
  129. package/dist/src/plugins/index.d.ts +5 -0
  130. package/dist/src/plugins/index.d.ts.map +1 -0
  131. package/dist/src/plugins/index.js +5 -0
  132. package/dist/src/plugins/index.js.map +1 -0
  133. package/dist/src/server/MCPServer.d.ts +93 -0
  134. package/dist/src/server/MCPServer.d.ts.map +1 -0
  135. package/dist/src/server/MCPServer.js +398 -0
  136. package/dist/src/server/MCPServer.js.map +1 -0
  137. package/dist/src/tools/argo/ArgoCronListTool.d.ts +10 -0
  138. package/dist/src/tools/argo/ArgoCronListTool.d.ts.map +1 -0
  139. package/dist/src/tools/argo/ArgoCronListTool.js +70 -0
  140. package/dist/src/tools/argo/ArgoCronListTool.js.map +1 -0
  141. package/dist/src/tools/argo/ArgoGetTool.d.ts +10 -0
  142. package/dist/src/tools/argo/ArgoGetTool.d.ts.map +1 -0
  143. package/dist/src/tools/argo/ArgoGetTool.js +80 -0
  144. package/dist/src/tools/argo/ArgoGetTool.js.map +1 -0
  145. package/dist/src/tools/argo/ArgoListTool.d.ts +10 -0
  146. package/dist/src/tools/argo/ArgoListTool.d.ts.map +1 -0
  147. package/dist/src/tools/argo/ArgoListTool.js +133 -0
  148. package/dist/src/tools/argo/ArgoListTool.js.map +1 -0
  149. package/dist/src/tools/argo/ArgoLogsTool.d.ts +10 -0
  150. package/dist/src/tools/argo/ArgoLogsTool.d.ts.map +1 -0
  151. package/dist/src/tools/argo/ArgoLogsTool.js +117 -0
  152. package/dist/src/tools/argo/ArgoLogsTool.js.map +1 -0
  153. package/dist/src/tools/argo/BaseTool.d.ts +60 -0
  154. package/dist/src/tools/argo/BaseTool.d.ts.map +1 -0
  155. package/dist/src/tools/argo/BaseTool.js +51 -0
  156. package/dist/src/tools/argo/BaseTool.js.map +1 -0
  157. package/dist/src/tools/argo/index.d.ts +7 -0
  158. package/dist/src/tools/argo/index.d.ts.map +1 -0
  159. package/dist/src/tools/argo/index.js +6 -0
  160. package/dist/src/tools/argo/index.js.map +1 -0
  161. package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts +10 -0
  162. package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts.map +1 -0
  163. package/dist/src/tools/argocd/ArgoCDAppGetTool.js +97 -0
  164. package/dist/src/tools/argocd/ArgoCDAppGetTool.js.map +1 -0
  165. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts +10 -0
  166. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts.map +1 -0
  167. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js +80 -0
  168. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js.map +1 -0
  169. package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts +10 -0
  170. package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts.map +1 -0
  171. package/dist/src/tools/argocd/ArgoCDAppListTool.js +128 -0
  172. package/dist/src/tools/argocd/ArgoCDAppListTool.js.map +1 -0
  173. package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts +10 -0
  174. package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts.map +1 -0
  175. package/dist/src/tools/argocd/ArgoCDAppLogsTool.js +143 -0
  176. package/dist/src/tools/argocd/ArgoCDAppLogsTool.js.map +1 -0
  177. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts +10 -0
  178. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts.map +1 -0
  179. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js +123 -0
  180. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js.map +1 -0
  181. package/dist/src/tools/argocd/BaseTool.d.ts +71 -0
  182. package/dist/src/tools/argocd/BaseTool.d.ts.map +1 -0
  183. package/dist/src/tools/argocd/BaseTool.js +62 -0
  184. package/dist/src/tools/argocd/BaseTool.js.map +1 -0
  185. package/dist/src/tools/argocd/index.d.ts +8 -0
  186. package/dist/src/tools/argocd/index.d.ts.map +1 -0
  187. package/dist/src/tools/argocd/index.js +7 -0
  188. package/dist/src/tools/argocd/index.js.map +1 -0
  189. package/dist/src/tools/helm/BaseTool.d.ts +51 -0
  190. package/dist/src/tools/helm/BaseTool.d.ts.map +1 -0
  191. package/dist/src/tools/helm/BaseTool.js +42 -0
  192. package/dist/src/tools/helm/BaseTool.js.map +1 -0
  193. package/dist/src/tools/helm/HelmGetHooksTool.d.ts +10 -0
  194. package/dist/src/tools/helm/HelmGetHooksTool.d.ts.map +1 -0
  195. package/dist/src/tools/helm/HelmGetHooksTool.js +38 -0
  196. package/dist/src/tools/helm/HelmGetHooksTool.js.map +1 -0
  197. package/dist/src/tools/helm/HelmGetManifestTool.d.ts +10 -0
  198. package/dist/src/tools/helm/HelmGetManifestTool.d.ts.map +1 -0
  199. package/dist/src/tools/helm/HelmGetManifestTool.js +38 -0
  200. package/dist/src/tools/helm/HelmGetManifestTool.js.map +1 -0
  201. package/dist/src/tools/helm/HelmGetNotesTool.d.ts +10 -0
  202. package/dist/src/tools/helm/HelmGetNotesTool.d.ts.map +1 -0
  203. package/dist/src/tools/helm/HelmGetNotesTool.js +38 -0
  204. package/dist/src/tools/helm/HelmGetNotesTool.js.map +1 -0
  205. package/dist/src/tools/helm/HelmGetResourcesTool.d.ts +13 -0
  206. package/dist/src/tools/helm/HelmGetResourcesTool.d.ts.map +1 -0
  207. package/dist/src/tools/helm/HelmGetResourcesTool.js +124 -0
  208. package/dist/src/tools/helm/HelmGetResourcesTool.js.map +1 -0
  209. package/dist/src/tools/helm/HelmGetValuesTool.d.ts +10 -0
  210. package/dist/src/tools/helm/HelmGetValuesTool.d.ts.map +1 -0
  211. package/dist/src/tools/helm/HelmGetValuesTool.js +54 -0
  212. package/dist/src/tools/helm/HelmGetValuesTool.js.map +1 -0
  213. package/dist/src/tools/helm/HelmHistoryTool.d.ts +10 -0
  214. package/dist/src/tools/helm/HelmHistoryTool.d.ts.map +1 -0
  215. package/dist/src/tools/helm/HelmHistoryTool.js +49 -0
  216. package/dist/src/tools/helm/HelmHistoryTool.js.map +1 -0
  217. package/dist/src/tools/helm/HelmListTool.d.ts +10 -0
  218. package/dist/src/tools/helm/HelmListTool.d.ts.map +1 -0
  219. package/dist/src/tools/helm/HelmListTool.js +107 -0
  220. package/dist/src/tools/helm/HelmListTool.js.map +1 -0
  221. package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts +14 -0
  222. package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts.map +1 -0
  223. package/dist/src/tools/helm/HelmListWithResourcesTool.js +175 -0
  224. package/dist/src/tools/helm/HelmListWithResourcesTool.js.map +1 -0
  225. package/dist/src/tools/helm/HelmStatusTool.d.ts +10 -0
  226. package/dist/src/tools/helm/HelmStatusTool.d.ts.map +1 -0
  227. package/dist/src/tools/helm/HelmStatusTool.js +54 -0
  228. package/dist/src/tools/helm/HelmStatusTool.js.map +1 -0
  229. package/dist/src/tools/helm/index.d.ts +12 -0
  230. package/dist/src/tools/helm/index.d.ts.map +1 -0
  231. package/dist/src/tools/helm/index.js +11 -0
  232. package/dist/src/tools/helm/index.js.map +1 -0
  233. package/dist/src/tools/kubernetes/BaseTool.d.ts +48 -0
  234. package/dist/src/tools/kubernetes/BaseTool.d.ts.map +1 -0
  235. package/dist/src/tools/kubernetes/BaseTool.js +55 -0
  236. package/dist/src/tools/kubernetes/BaseTool.js.map +1 -0
  237. package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts +11 -0
  238. package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts.map +1 -0
  239. package/dist/src/tools/kubernetes/GetConfigMapTool.js +28 -0
  240. package/dist/src/tools/kubernetes/GetConfigMapTool.js.map +1 -0
  241. package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts +15 -0
  242. package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts.map +1 -0
  243. package/dist/src/tools/kubernetes/GetContainerLogsTool.js +119 -0
  244. package/dist/src/tools/kubernetes/GetContainerLogsTool.js.map +1 -0
  245. package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts +11 -0
  246. package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts.map +1 -0
  247. package/dist/src/tools/kubernetes/GetDeploymentsTool.js +30 -0
  248. package/dist/src/tools/kubernetes/GetDeploymentsTool.js.map +1 -0
  249. package/dist/src/tools/kubernetes/GetEventsTool.d.ts +11 -0
  250. package/dist/src/tools/kubernetes/GetEventsTool.d.ts.map +1 -0
  251. package/dist/src/tools/kubernetes/GetEventsTool.js +123 -0
  252. package/dist/src/tools/kubernetes/GetEventsTool.js.map +1 -0
  253. package/dist/src/tools/kubernetes/GetIngressTool.d.ts +11 -0
  254. package/dist/src/tools/kubernetes/GetIngressTool.d.ts.map +1 -0
  255. package/dist/src/tools/kubernetes/GetIngressTool.js +35 -0
  256. package/dist/src/tools/kubernetes/GetIngressTool.js.map +1 -0
  257. package/dist/src/tools/kubernetes/GetMetricsTool.d.ts +11 -0
  258. package/dist/src/tools/kubernetes/GetMetricsTool.d.ts.map +1 -0
  259. package/dist/src/tools/kubernetes/GetMetricsTool.js +40 -0
  260. package/dist/src/tools/kubernetes/GetMetricsTool.js.map +1 -0
  261. package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts +11 -0
  262. package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts.map +1 -0
  263. package/dist/src/tools/kubernetes/GetNamespacesTool.js +33 -0
  264. package/dist/src/tools/kubernetes/GetNamespacesTool.js.map +1 -0
  265. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts +11 -0
  266. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts.map +1 -0
  267. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js +92 -0
  268. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js.map +1 -0
  269. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts +11 -0
  270. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts.map +1 -0
  271. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js +88 -0
  272. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js.map +1 -0
  273. package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts +11 -0
  274. package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts.map +1 -0
  275. package/dist/src/tools/kubernetes/GetPodMetricsTool.js +100 -0
  276. package/dist/src/tools/kubernetes/GetPodMetricsTool.js.map +1 -0
  277. package/dist/src/tools/kubernetes/GetPodsTool.d.ts +11 -0
  278. package/dist/src/tools/kubernetes/GetPodsTool.d.ts.map +1 -0
  279. package/dist/src/tools/kubernetes/GetPodsTool.js +35 -0
  280. package/dist/src/tools/kubernetes/GetPodsTool.js.map +1 -0
  281. package/dist/src/tools/kubernetes/GetResourceTool.d.ts +12 -0
  282. package/dist/src/tools/kubernetes/GetResourceTool.d.ts.map +1 -0
  283. package/dist/src/tools/kubernetes/GetResourceTool.js +79 -0
  284. package/dist/src/tools/kubernetes/GetResourceTool.js.map +1 -0
  285. package/dist/src/tools/kubernetes/GetSecretsTool.d.ts +11 -0
  286. package/dist/src/tools/kubernetes/GetSecretsTool.d.ts.map +1 -0
  287. package/dist/src/tools/kubernetes/GetSecretsTool.js +49 -0
  288. package/dist/src/tools/kubernetes/GetSecretsTool.js.map +1 -0
  289. package/dist/src/tools/kubernetes/GetServicesTool.d.ts +11 -0
  290. package/dist/src/tools/kubernetes/GetServicesTool.d.ts.map +1 -0
  291. package/dist/src/tools/kubernetes/GetServicesTool.js +35 -0
  292. package/dist/src/tools/kubernetes/GetServicesTool.js.map +1 -0
  293. package/dist/src/tools/kubernetes/index.d.ts +17 -0
  294. package/dist/src/tools/kubernetes/index.d.ts.map +1 -0
  295. package/dist/src/tools/kubernetes/index.js +16 -0
  296. package/dist/src/tools/kubernetes/index.js.map +1 -0
  297. package/dist/src/utils/CliUtils.d.ts +24 -0
  298. package/dist/src/utils/CliUtils.d.ts.map +1 -0
  299. package/dist/src/utils/CliUtils.js +159 -0
  300. package/dist/src/utils/CliUtils.js.map +1 -0
  301. package/dist/tests/__mocks__/@kubernetes/client-node.d.ts +34 -0
  302. package/dist/tests/__mocks__/@kubernetes/client-node.d.ts.map +1 -0
  303. package/dist/tests/__mocks__/@kubernetes/client-node.js +20 -0
  304. package/dist/tests/__mocks__/@kubernetes/client-node.js.map +1 -0
  305. package/dist/tests/argo/ArgoGetTool.test.d.ts +2 -0
  306. package/dist/tests/argo/ArgoGetTool.test.d.ts.map +1 -0
  307. package/dist/tests/argo/ArgoGetTool.test.js +141 -0
  308. package/dist/tests/argo/ArgoGetTool.test.js.map +1 -0
  309. package/dist/tests/helm/BaseTool.test.d.ts +2 -0
  310. package/dist/tests/helm/BaseTool.test.d.ts.map +1 -0
  311. package/dist/tests/helm/BaseTool.test.js +241 -0
  312. package/dist/tests/helm/BaseTool.test.js.map +1 -0
  313. package/dist/tests/index.test.d.ts +2 -0
  314. package/dist/tests/index.test.d.ts.map +1 -0
  315. package/dist/tests/index.test.js +7 -0
  316. package/dist/tests/index.test.js.map +1 -0
  317. package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts +2 -0
  318. package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts.map +1 -0
  319. package/dist/tests/kubernetes/ConfigMapOperations.test.js +460 -0
  320. package/dist/tests/kubernetes/ConfigMapOperations.test.js.map +1 -0
  321. package/dist/tests/kubernetes/ConnectionManager.test.d.ts +2 -0
  322. package/dist/tests/kubernetes/ConnectionManager.test.d.ts.map +1 -0
  323. package/dist/tests/kubernetes/ConnectionManager.test.js +97 -0
  324. package/dist/tests/kubernetes/ConnectionManager.test.js.map +1 -0
  325. package/dist/tests/kubernetes/ConnectionPool.test.d.ts +2 -0
  326. package/dist/tests/kubernetes/ConnectionPool.test.d.ts.map +1 -0
  327. package/dist/tests/kubernetes/ConnectionPool.test.js +328 -0
  328. package/dist/tests/kubernetes/ConnectionPool.test.js.map +1 -0
  329. package/dist/tests/kubernetes/DeploymentOperations.test.d.ts +2 -0
  330. package/dist/tests/kubernetes/DeploymentOperations.test.d.ts.map +1 -0
  331. package/dist/tests/kubernetes/DeploymentOperations.test.js +196 -0
  332. package/dist/tests/kubernetes/DeploymentOperations.test.js.map +1 -0
  333. package/dist/tests/kubernetes/ErrorHandling.test.d.ts +2 -0
  334. package/dist/tests/kubernetes/ErrorHandling.test.d.ts.map +1 -0
  335. package/dist/tests/kubernetes/ErrorHandling.test.js +329 -0
  336. package/dist/tests/kubernetes/ErrorHandling.test.js.map +1 -0
  337. package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts +2 -0
  338. package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts.map +1 -0
  339. package/dist/tests/kubernetes/GetPodMetricsTool.test.js +150 -0
  340. package/dist/tests/kubernetes/GetPodMetricsTool.test.js.map +1 -0
  341. package/dist/tests/kubernetes/KubernetesClient.test.d.ts +2 -0
  342. package/dist/tests/kubernetes/KubernetesClient.test.d.ts.map +1 -0
  343. package/dist/tests/kubernetes/KubernetesClient.test.js +371 -0
  344. package/dist/tests/kubernetes/KubernetesClient.test.js.map +1 -0
  345. package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts +2 -0
  346. package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts.map +1 -0
  347. package/dist/tests/kubernetes/MetricOperations.parsing.test.js +49 -0
  348. package/dist/tests/kubernetes/MetricOperations.parsing.test.js.map +1 -0
  349. package/dist/tests/kubernetes/NamespaceOperations.test.d.ts +2 -0
  350. package/dist/tests/kubernetes/NamespaceOperations.test.d.ts.map +1 -0
  351. package/dist/tests/kubernetes/NamespaceOperations.test.js +115 -0
  352. package/dist/tests/kubernetes/NamespaceOperations.test.js.map +1 -0
  353. package/dist/tests/kubernetes/PodOperations.test.d.ts +2 -0
  354. package/dist/tests/kubernetes/PodOperations.test.d.ts.map +1 -0
  355. package/dist/tests/kubernetes/PodOperations.test.js +209 -0
  356. package/dist/tests/kubernetes/PodOperations.test.js.map +1 -0
  357. package/dist/tests/kubernetes/RetryStrategy.test.d.ts +2 -0
  358. package/dist/tests/kubernetes/RetryStrategy.test.d.ts.map +1 -0
  359. package/dist/tests/kubernetes/RetryStrategy.test.js +419 -0
  360. package/dist/tests/kubernetes/RetryStrategy.test.js.map +1 -0
  361. package/dist/tests/kubernetes/ServiceOperations.test.d.ts +2 -0
  362. package/dist/tests/kubernetes/ServiceOperations.test.d.ts.map +1 -0
  363. package/dist/tests/kubernetes/ServiceOperations.test.js +159 -0
  364. package/dist/tests/kubernetes/ServiceOperations.test.js.map +1 -0
  365. package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts +2 -0
  366. package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts.map +1 -0
  367. package/dist/tests/plugins/KubernetesToolsPlugin.test.js +153 -0
  368. package/dist/tests/plugins/KubernetesToolsPlugin.test.js.map +1 -0
  369. package/dist/tests/server/MCPServer.integration.test.d.ts +2 -0
  370. package/dist/tests/server/MCPServer.integration.test.d.ts.map +1 -0
  371. package/dist/tests/server/MCPServer.integration.test.js +244 -0
  372. package/dist/tests/server/MCPServer.integration.test.js.map +1 -0
  373. package/dist/tests/server/MCPServer.test.d.ts +2 -0
  374. package/dist/tests/server/MCPServer.test.d.ts.map +1 -0
  375. package/dist/tests/server/MCPServer.test.js +257 -0
  376. package/dist/tests/server/MCPServer.test.js.map +1 -0
  377. package/package.json +85 -0
  378. package/src/cli/cli.ts +25 -0
  379. package/src/cli/run-command.js +391 -0
  380. package/src/index.ts +46 -0
  381. package/src/kubernetes/BaseResourceOperations.ts +286 -0
  382. package/src/kubernetes/CircuitBreaker.ts +485 -0
  383. package/src/kubernetes/ConnectionManager.ts +114 -0
  384. package/src/kubernetes/ConnectionPool.ts +551 -0
  385. package/src/kubernetes/ErrorHandler.ts +436 -0
  386. package/src/kubernetes/ErrorHandling.ts +401 -0
  387. package/src/kubernetes/KubernetesClient.ts +500 -0
  388. package/src/kubernetes/README.md +349 -0
  389. package/src/kubernetes/ResourceOperations.ts +116 -0
  390. package/src/kubernetes/RetryStrategy.ts +365 -0
  391. package/src/kubernetes/RetryableOperation.ts +313 -0
  392. package/src/kubernetes/docs/ResourceOperations.md +606 -0
  393. package/src/kubernetes/index.ts +116 -0
  394. package/src/kubernetes/resources/ConfigMapOperations.ts +367 -0
  395. package/src/kubernetes/resources/CustomResourceOperations.ts +392 -0
  396. package/src/kubernetes/resources/DeploymentOperations.ts +294 -0
  397. package/src/kubernetes/resources/IngressOperations.ts +277 -0
  398. package/src/kubernetes/resources/MetricOperations.ts +1159 -0
  399. package/src/kubernetes/resources/NamespaceOperations.ts +129 -0
  400. package/src/kubernetes/resources/PersistentVolumeClaimOperations.ts +516 -0
  401. package/src/kubernetes/resources/PersistentVolumeOperations.ts +438 -0
  402. package/src/kubernetes/resources/PodOperations.ts +417 -0
  403. package/src/kubernetes/resources/SecretOperations.ts +304 -0
  404. package/src/kubernetes/resources/ServiceOperations.ts +283 -0
  405. package/src/kubernetes/utils/ResourceUtils.ts +553 -0
  406. package/src/plugins/ArgoCDToolsPlugin.ts +189 -0
  407. package/src/plugins/ArgoToolsPlugin.ts +180 -0
  408. package/src/plugins/HelmToolsPlugin.ts +180 -0
  409. package/src/plugins/KubernetesToolsPlugin.ts +198 -0
  410. package/src/plugins/SamplePlugin.ts +60 -0
  411. package/src/plugins/index.ts +4 -0
  412. package/src/server/MCPServer.ts +500 -0
  413. package/src/tools/argo/ArgoCronListTool.ts +78 -0
  414. package/src/tools/argo/ArgoGetTool.ts +91 -0
  415. package/src/tools/argo/ArgoListTool.ts +143 -0
  416. package/src/tools/argo/ArgoLogsTool.ts +131 -0
  417. package/src/tools/argo/BaseTool.ts +69 -0
  418. package/src/tools/argo/index.ts +6 -0
  419. package/src/tools/argocd/ArgoCDAppGetTool.ts +109 -0
  420. package/src/tools/argocd/ArgoCDAppHistoryTool.ts +91 -0
  421. package/src/tools/argocd/ArgoCDAppListTool.ts +144 -0
  422. package/src/tools/argocd/ArgoCDAppLogsTool.ts +162 -0
  423. package/src/tools/argocd/ArgoCDAppResourcesTool.ts +139 -0
  424. package/src/tools/argocd/BaseTool.ts +83 -0
  425. package/src/tools/argocd/index.ts +7 -0
  426. package/src/tools/helm/BaseTool.ts +60 -0
  427. package/src/tools/helm/HelmGetHooksTool.ts +44 -0
  428. package/src/tools/helm/HelmGetManifestTool.ts +44 -0
  429. package/src/tools/helm/HelmGetNotesTool.ts +44 -0
  430. package/src/tools/helm/HelmGetResourcesTool.ts +140 -0
  431. package/src/tools/helm/HelmGetValuesTool.ts +62 -0
  432. package/src/tools/helm/HelmHistoryTool.ts +56 -0
  433. package/src/tools/helm/HelmListTool.ts +107 -0
  434. package/src/tools/helm/HelmListWithResourcesTool.ts +194 -0
  435. package/src/tools/helm/HelmStatusTool.ts +62 -0
  436. package/src/tools/helm/index.ts +11 -0
  437. package/src/tools/kubernetes/BaseTool.ts +76 -0
  438. package/src/tools/kubernetes/GetConfigMapTool.ts +33 -0
  439. package/src/tools/kubernetes/GetContainerLogsTool.ts +140 -0
  440. package/src/tools/kubernetes/GetDeploymentsTool.ts +33 -0
  441. package/src/tools/kubernetes/GetEventsTool.ts +133 -0
  442. package/src/tools/kubernetes/GetIngressTool.ts +39 -0
  443. package/src/tools/kubernetes/GetMetricsTool.ts +53 -0
  444. package/src/tools/kubernetes/GetNamespacesTool.ts +36 -0
  445. package/src/tools/kubernetes/GetPersistentVolumeClaimsTool.ts +113 -0
  446. package/src/tools/kubernetes/GetPersistentVolumesTool.ts +107 -0
  447. package/src/tools/kubernetes/GetPodMetricsTool.ts +113 -0
  448. package/src/tools/kubernetes/GetPodsTool.ts +39 -0
  449. package/src/tools/kubernetes/GetResourceTool.ts +90 -0
  450. package/src/tools/kubernetes/GetSecretsTool.ts +55 -0
  451. package/src/tools/kubernetes/GetServicesTool.ts +39 -0
  452. package/src/tools/kubernetes/index.ts +16 -0
  453. package/src/utils/CliUtils.ts +207 -0
  454. package/tsconfig.json +36 -0
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Kubernetes MCP Server
4
+ * Main entry point for the Model Context Protocol server
5
+ */
6
+ import { MCPServer } from './server/MCPServer.js';
7
+ import { KubernetesToolsPlugin } from './plugins/KubernetesToolsPlugin.js';
8
+ import { HelmToolsPlugin } from './plugins/HelmToolsPlugin.js';
9
+ import { ArgoToolsPlugin } from './plugins/ArgoToolsPlugin.js';
10
+ import { ArgoCDToolsPlugin } from './plugins/ArgoCDToolsPlugin.js';
11
+ export const VERSION = '0.1.0';
12
+ export async function main() {
13
+ console.error(`Kubernetes MCP Server v${VERSION} - Starting...`);
14
+ try {
15
+ // Create and start the MCP server
16
+ const server = new MCPServer();
17
+ // Load the Kubernetes tools plugin
18
+ const kubernetesPlugin = new KubernetesToolsPlugin();
19
+ await server.loadPlugin(kubernetesPlugin);
20
+ // Load the Helm tools plugin
21
+ const helmPlugin = new HelmToolsPlugin();
22
+ await server.loadPlugin(helmPlugin);
23
+ // Load the Argo tools plugin
24
+ const argoPlugin = new ArgoToolsPlugin();
25
+ await server.loadPlugin(argoPlugin);
26
+ // Load the ArgoCD tools plugin
27
+ const argoCDPlugin = new ArgoCDToolsPlugin();
28
+ await server.loadPlugin(argoCDPlugin);
29
+ // Start the server
30
+ await server.start();
31
+ console.error('MCP Server is running. Waiting for connections...');
32
+ }
33
+ catch (error) {
34
+ console.error('Failed to start MCP server:', error);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ // If this file is being run directly (not imported), start the server
39
+ if (import.meta.url === `file://${process.argv[1]}`) {
40
+ main().catch((error) => {
41
+ console.error('Failed to start server:', error);
42
+ process.exit(1);
43
+ });
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,gBAAgB,CAAC,CAAC;IAEjE,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,mCAAmC;QACnC,MAAM,gBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACrD,MAAM,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,+BAA+B;QAC/B,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEtC,mBAAmB;QACnB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,155 @@
1
+ import * as k8s from '@kubernetes/client-node';
2
+ import { Logger } from 'winston';
3
+ import { KubernetesClient } from './KubernetesClient.js';
4
+ import { RetryableOperationFactory, RetryableOperation } from './RetryableOperation.js';
5
+ import { ErrorMonitor } from './ErrorHandling.js';
6
+ /**
7
+ * Common options for resource operations
8
+ */
9
+ export interface ResourceOperationOptions {
10
+ /**
11
+ * Namespace for the operation (required for namespaced resources)
12
+ */
13
+ namespace?: string;
14
+ /**
15
+ * Label selector for filtering resources
16
+ */
17
+ labelSelector?: string;
18
+ /**
19
+ * Field selector for filtering resources
20
+ */
21
+ fieldSelector?: string;
22
+ /**
23
+ * Maximum number of results to return
24
+ */
25
+ limit?: number;
26
+ /**
27
+ * Continue token for pagination
28
+ */
29
+ continueToken?: string;
30
+ /**
31
+ * Resource version for optimistic concurrency control
32
+ */
33
+ resourceVersion?: string;
34
+ /**
35
+ * Timeout in seconds for the operation
36
+ */
37
+ timeoutSeconds?: number;
38
+ /**
39
+ * Whether to propagate deletion to dependents
40
+ */
41
+ propagationPolicy?: 'Foreground' | 'Background' | 'Orphan';
42
+ /**
43
+ * Grace period seconds for deletion
44
+ */
45
+ gracePeriodSeconds?: number;
46
+ /**
47
+ * Whether to sanitize sensitive data in ConfigMaps and Secrets
48
+ */
49
+ skipSanitize?: boolean;
50
+ }
51
+ /**
52
+ * Watch event types
53
+ */
54
+ export declare enum WatchEventType {
55
+ ADDED = "ADDED",
56
+ MODIFIED = "MODIFIED",
57
+ DELETED = "DELETED",
58
+ ERROR = "ERROR"
59
+ }
60
+ /**
61
+ * Watch event interface
62
+ */
63
+ export interface WatchEvent<T> {
64
+ type: WatchEventType;
65
+ object: T;
66
+ }
67
+ /**
68
+ * Watch callback function
69
+ */
70
+ export type WatchCallback<T> = (event: WatchEvent<T>) => void;
71
+ /**
72
+ * Generic interface for resource operations
73
+ */
74
+ export interface IResourceOperations<T extends k8s.KubernetesObject> {
75
+ /**
76
+ * Create a new resource
77
+ */
78
+ create(resource: T, options?: ResourceOperationOptions): Promise<T>;
79
+ /**
80
+ * Get a resource by name
81
+ */
82
+ get(name: string, options?: ResourceOperationOptions): Promise<T>;
83
+ /**
84
+ * Update an existing resource
85
+ */
86
+ update(resource: T, options?: ResourceOperationOptions): Promise<T>;
87
+ /**
88
+ * Patch a resource
89
+ */
90
+ patch(name: string, patch: any, options?: ResourceOperationOptions): Promise<T>;
91
+ /**
92
+ * Delete a resource
93
+ */
94
+ delete(name: string, options?: ResourceOperationOptions): Promise<void>;
95
+ /**
96
+ * List resources
97
+ */
98
+ list(options?: ResourceOperationOptions): Promise<k8s.KubernetesListObject<T>>;
99
+ /**
100
+ * Watch resources for changes
101
+ */
102
+ watch(callback: WatchCallback<T>, options?: ResourceOperationOptions): () => void;
103
+ }
104
+ /**
105
+ * Error class for Kubernetes operations
106
+ */
107
+ export declare class KubernetesOperationError extends Error {
108
+ readonly statusCode?: number | undefined;
109
+ readonly resource?: string | undefined;
110
+ readonly operation?: string | undefined;
111
+ constructor(message: string, statusCode?: number | undefined, resource?: string | undefined, operation?: string | undefined);
112
+ }
113
+ /**
114
+ * Base class for resource operations with integrated retry and error handling
115
+ */
116
+ export declare abstract class BaseResourceOperations<T extends k8s.KubernetesObject> implements IResourceOperations<T> {
117
+ protected client: KubernetesClient;
118
+ protected resourceType: string;
119
+ protected logger?: Logger;
120
+ protected retryFactory: RetryableOperationFactory;
121
+ protected errorMonitor: ErrorMonitor;
122
+ constructor(client: KubernetesClient, resourceType: string);
123
+ /**
124
+ * Get or create a retryable operation for a specific action
125
+ */
126
+ protected getRetryableOperation<R>(operationName: string): RetryableOperation<R>;
127
+ /**
128
+ * Handle API errors and convert to KubernetesOperationError
129
+ */
130
+ protected handleApiError(error: any, operation: string, resourceName?: string): never;
131
+ /**
132
+ * Build list options from ResourceOperationOptions
133
+ */
134
+ protected buildListOptions(options?: ResourceOperationOptions): any;
135
+ /**
136
+ * Build delete options from ResourceOperationOptions
137
+ */
138
+ protected buildDeleteOptions(options?: ResourceOperationOptions): k8s.V1DeleteOptions;
139
+ /**
140
+ * Get error statistics for this resource type
141
+ */
142
+ getErrorStats(): import("./ErrorHandling.js").ErrorStats;
143
+ /**
144
+ * Reset circuit breakers for all operations
145
+ */
146
+ resetCircuits(): void;
147
+ abstract create(resource: T, options?: ResourceOperationOptions): Promise<T>;
148
+ abstract get(name: string, options?: ResourceOperationOptions): Promise<T>;
149
+ abstract update(resource: T, options?: ResourceOperationOptions): Promise<T>;
150
+ abstract patch(name: string, patch: any, options?: ResourceOperationOptions): Promise<T>;
151
+ abstract delete(name: string, options?: ResourceOperationOptions): Promise<void>;
152
+ abstract list(options?: ResourceOperationOptions): Promise<k8s.KubernetesListObject<T>>;
153
+ abstract watch(callback: WatchCallback<T>, options?: ResourceOperationOptions): () => void;
154
+ }
155
+ //# sourceMappingURL=BaseResourceOperations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseResourceOperations.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/BaseResourceOperations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { RetryableOperationFactory } from './RetryableOperation.js';
2
+ import { ErrorMonitor, KubernetesError, convertApiError } from './ErrorHandling.js';
3
+ /**
4
+ * Watch event types
5
+ */
6
+ export var WatchEventType;
7
+ (function (WatchEventType) {
8
+ WatchEventType["ADDED"] = "ADDED";
9
+ WatchEventType["MODIFIED"] = "MODIFIED";
10
+ WatchEventType["DELETED"] = "DELETED";
11
+ WatchEventType["ERROR"] = "ERROR";
12
+ })(WatchEventType || (WatchEventType = {}));
13
+ /**
14
+ * Error class for Kubernetes operations
15
+ */
16
+ export class KubernetesOperationError extends Error {
17
+ statusCode;
18
+ resource;
19
+ operation;
20
+ constructor(message, statusCode, resource, operation) {
21
+ super(message);
22
+ this.statusCode = statusCode;
23
+ this.resource = resource;
24
+ this.operation = operation;
25
+ this.name = 'KubernetesOperationError';
26
+ }
27
+ }
28
+ /**
29
+ * Base class for resource operations with integrated retry and error handling
30
+ */
31
+ export class BaseResourceOperations {
32
+ client;
33
+ resourceType;
34
+ logger;
35
+ retryFactory;
36
+ errorMonitor;
37
+ constructor(client, resourceType) {
38
+ this.client = client;
39
+ this.resourceType = resourceType;
40
+ this.logger = client['config'].logger;
41
+ this.errorMonitor = new ErrorMonitor(this.logger);
42
+ // Initialize retry factory with default configuration
43
+ this.retryFactory = new RetryableOperationFactory({
44
+ retry: {
45
+ maxAttempts: 3,
46
+ initialDelayMs: 100,
47
+ maxDelayMs: 5000,
48
+ backoffMultiplier: 2,
49
+ jitterFactor: 0.1,
50
+ },
51
+ circuitBreaker: {
52
+ failureThreshold: 5,
53
+ successThreshold: 2,
54
+ resetTimeout: 30000,
55
+ failureCountWindow: 10000,
56
+ },
57
+ errorMonitor: this.errorMonitor,
58
+ logger: this.logger,
59
+ }, this.logger);
60
+ }
61
+ /**
62
+ * Get or create a retryable operation for a specific action
63
+ */
64
+ getRetryableOperation(operationName) {
65
+ return this.retryFactory.create(`${this.resourceType}.${operationName}`);
66
+ }
67
+ /**
68
+ * Handle API errors and convert to KubernetesOperationError
69
+ */
70
+ handleApiError(error, operation, resourceName) {
71
+ // Convert to typed error
72
+ let typedError = error instanceof KubernetesError ? error : convertApiError(error);
73
+ // Add resource context by creating a new error with additional details
74
+ if (resourceName && typedError instanceof KubernetesError) {
75
+ const newError = new KubernetesError(typedError.message, typedError.code, typedError.statusCode, typedError.retryable, {
76
+ ...typedError.details,
77
+ resource: this.resourceType,
78
+ resourceName,
79
+ operation,
80
+ });
81
+ typedError = newError;
82
+ }
83
+ throw typedError;
84
+ }
85
+ /**
86
+ * Build list options from ResourceOperationOptions
87
+ */
88
+ buildListOptions(options) {
89
+ const listOptions = {};
90
+ if (options?.labelSelector) {
91
+ listOptions.labelSelector = options.labelSelector;
92
+ }
93
+ if (options?.fieldSelector) {
94
+ listOptions.fieldSelector = options.fieldSelector;
95
+ }
96
+ if (options?.limit) {
97
+ listOptions.limit = options.limit;
98
+ }
99
+ if (options?.continueToken) {
100
+ listOptions.continue = options.continueToken;
101
+ }
102
+ if (options?.resourceVersion) {
103
+ listOptions.resourceVersion = options.resourceVersion;
104
+ }
105
+ if (options?.timeoutSeconds) {
106
+ listOptions.timeoutSeconds = options.timeoutSeconds;
107
+ }
108
+ return listOptions;
109
+ }
110
+ /**
111
+ * Build delete options from ResourceOperationOptions
112
+ */
113
+ buildDeleteOptions(options) {
114
+ const deleteOptions = {};
115
+ if (options?.propagationPolicy) {
116
+ deleteOptions.propagationPolicy = options.propagationPolicy;
117
+ }
118
+ if (options?.gracePeriodSeconds !== undefined) {
119
+ deleteOptions.gracePeriodSeconds = options.gracePeriodSeconds;
120
+ }
121
+ return deleteOptions;
122
+ }
123
+ /**
124
+ * Get error statistics for this resource type
125
+ */
126
+ getErrorStats() {
127
+ return this.errorMonitor.getStats();
128
+ }
129
+ /**
130
+ * Reset circuit breakers for all operations
131
+ */
132
+ resetCircuits() {
133
+ this.retryFactory.resetAllCircuits();
134
+ }
135
+ }
136
+ //# sourceMappingURL=BaseResourceOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseResourceOperations.js","sourceRoot":"","sources":["../../../src/kubernetes/BaseResourceOperations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Circuit Breaker Module
3
+ *
4
+ * Implements the circuit breaker pattern for fault tolerance in distributed systems.
5
+ * Prevents cascading failures by temporarily blocking requests to failing services.
6
+ */
7
+ import { Logger } from 'winston';
8
+ import { EventEmitter } from 'events';
9
+ /**
10
+ * Circuit breaker states
11
+ */
12
+ export declare enum CircuitState {
13
+ CLOSED = "CLOSED",// Normal operation, requests pass through
14
+ OPEN = "OPEN",// Circuit broken, requests blocked
15
+ HALF_OPEN = "HALF_OPEN"
16
+ }
17
+ /**
18
+ * Circuit breaker configuration
19
+ */
20
+ export interface CircuitBreakerConfig {
21
+ /** Name of the circuit for identification */
22
+ name: string;
23
+ /** Number of failures before opening circuit */
24
+ failureThreshold: number;
25
+ /** Success threshold to close circuit from half-open */
26
+ successThreshold: number;
27
+ /** Time window for counting failures (ms) */
28
+ failureCountWindow: number;
29
+ /** Time to wait before attempting recovery (ms) */
30
+ resetTimeout: number;
31
+ /** Percentage of requests to fail before opening (0-100) */
32
+ failureRateThreshold?: number;
33
+ /** Minimum number of requests before applying rate threshold */
34
+ volumeThreshold?: number;
35
+ /** Optional timeout for operations (ms) */
36
+ operationTimeout?: number;
37
+ /** Function to determine if an error counts as failure */
38
+ isFailure?: (error: any) => boolean;
39
+ /** Fallback function when circuit is open */
40
+ fallback?: <T>() => T | Promise<T>;
41
+ }
42
+ /**
43
+ * Default circuit breaker configuration
44
+ */
45
+ export declare const DEFAULT_CIRCUIT_CONFIG: Omit<CircuitBreakerConfig, 'name'>;
46
+ /**
47
+ * Circuit breaker statistics
48
+ */
49
+ export interface CircuitStats {
50
+ state: CircuitState;
51
+ failures: number;
52
+ successes: number;
53
+ totalCalls: number;
54
+ lastFailureTime?: Date;
55
+ lastSuccessTime?: Date;
56
+ lastStateChange: Date;
57
+ consecutiveSuccesses: number;
58
+ consecutiveFailures: number;
59
+ failureRate: number;
60
+ }
61
+ /**
62
+ * Circuit breaker implementation
63
+ */
64
+ export declare class CircuitBreaker extends EventEmitter {
65
+ private state;
66
+ private readonly config;
67
+ private readonly logger?;
68
+ private stats;
69
+ private resetTimer?;
70
+ private readonly requestHistory;
71
+ private lastStateChangeTime;
72
+ constructor(config: CircuitBreakerConfig, logger?: Logger);
73
+ /**
74
+ * Execute an operation through the circuit breaker
75
+ */
76
+ execute<T>(operation: () => Promise<T>): Promise<T>;
77
+ /**
78
+ * Get current circuit statistics
79
+ */
80
+ getStats(): CircuitStats;
81
+ /**
82
+ * Get current state
83
+ */
84
+ getState(): CircuitState;
85
+ /**
86
+ * Manually reset the circuit breaker
87
+ */
88
+ reset(): void;
89
+ /**
90
+ * Force open the circuit
91
+ */
92
+ open(): void;
93
+ /**
94
+ * Initialize statistics
95
+ */
96
+ private initializeStats;
97
+ /**
98
+ * Execute operation with timeout
99
+ */
100
+ private executeWithTimeout;
101
+ /**
102
+ * Record successful operation
103
+ */
104
+ private recordSuccess;
105
+ /**
106
+ * Record failed operation
107
+ */
108
+ private recordFailure;
109
+ /**
110
+ * Check if circuit should open based on failure conditions
111
+ */
112
+ private shouldOpenCircuit;
113
+ /**
114
+ * Add request to history
115
+ */
116
+ private addToHistory;
117
+ /**
118
+ * Get recent requests within the time window
119
+ */
120
+ private getRecentRequests;
121
+ /**
122
+ * Calculate current failure rate
123
+ */
124
+ private calculateFailureRate;
125
+ /**
126
+ * Determine if error should count as failure
127
+ */
128
+ private shouldCountAsFailure;
129
+ /**
130
+ * Transition to new state
131
+ */
132
+ private transition;
133
+ /**
134
+ * Schedule circuit reset attempt
135
+ */
136
+ private scheduleReset;
137
+ /**
138
+ * Clear reset timer
139
+ */
140
+ private clearResetTimer;
141
+ /**
142
+ * Cleanup resources
143
+ */
144
+ dispose(): void;
145
+ }
146
+ /**
147
+ * Circuit breaker factory for managing multiple circuits
148
+ */
149
+ export declare class CircuitBreakerFactory {
150
+ private readonly circuits;
151
+ private readonly logger?;
152
+ constructor(logger?: Logger);
153
+ /**
154
+ * Get or create a circuit breaker
155
+ */
156
+ getOrCreate(config: CircuitBreakerConfig): CircuitBreaker;
157
+ /**
158
+ * Get existing circuit breaker
159
+ */
160
+ get(name: string): CircuitBreaker | undefined;
161
+ /**
162
+ * Get all circuit breakers
163
+ */
164
+ getAll(): Map<string, CircuitBreaker>;
165
+ /**
166
+ * Get statistics for all circuits
167
+ */
168
+ getAllStats(): Record<string, CircuitStats>;
169
+ /**
170
+ * Reset all circuits
171
+ */
172
+ resetAll(): void;
173
+ /**
174
+ * Dispose all circuits
175
+ */
176
+ dispose(): void;
177
+ }
178
+ /**
179
+ * Decorator for adding circuit breaker to methods
180
+ */
181
+ export declare function WithCircuitBreaker(config: Omit<CircuitBreakerConfig, 'name'>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
182
+ //# sourceMappingURL=CircuitBreaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircuitBreaker.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/CircuitBreaker.ts"],"names":[],"mappings":"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"}