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,172 @@
1
+ /**
2
+ * Enhanced error handling with circuit breaker and observability
3
+ */
4
+ import { Logger } from 'winston';
5
+ import { ErrorContext } from './ErrorHandling.js';
6
+ import { RetryStrategy, RetryConfig } from './RetryStrategy.js';
7
+ import { CircuitBreaker, CircuitBreakerConfig, CircuitBreakerFactory } from './CircuitBreaker.js';
8
+ /**
9
+ * Error handler interface
10
+ */
11
+ export interface IErrorHandler {
12
+ /**
13
+ * Handle an error
14
+ * @returns true if error was handled, false to propagate
15
+ */
16
+ handle(error: any, context?: ErrorContext): Promise<boolean> | boolean;
17
+ /**
18
+ * Transform an error
19
+ */
20
+ transform?(error: any, context?: ErrorContext): any;
21
+ /**
22
+ * Check if handler can handle this error
23
+ */
24
+ canHandle?(error: any): boolean;
25
+ }
26
+ /**
27
+ * Error handler chain configuration
28
+ */
29
+ export interface ErrorHandlerChainConfig {
30
+ handlers: IErrorHandler[];
31
+ logger?: Logger;
32
+ stopOnFirstHandled?: boolean;
33
+ }
34
+ /**
35
+ * Composite error handler that chains multiple handlers
36
+ */
37
+ export declare class ErrorHandlerChain implements IErrorHandler {
38
+ private readonly handlers;
39
+ private readonly logger?;
40
+ private readonly stopOnFirstHandled;
41
+ constructor(config: ErrorHandlerChainConfig);
42
+ handle(error: any, context?: ErrorContext): Promise<boolean>;
43
+ transform(error: any, context?: ErrorContext): any;
44
+ canHandle(error: any): boolean;
45
+ /**
46
+ * Add a handler to the chain
47
+ */
48
+ addHandler(handler: IErrorHandler): void;
49
+ /**
50
+ * Remove a handler from the chain
51
+ */
52
+ removeHandler(handler: IErrorHandler): void;
53
+ }
54
+ /**
55
+ * Logging error handler
56
+ */
57
+ export declare class LoggingErrorHandler implements IErrorHandler {
58
+ private readonly logger;
59
+ private readonly logLevel;
60
+ constructor(logger: Logger, logLevel?: 'error' | 'warn' | 'info');
61
+ handle(error: any, context?: ErrorContext): boolean;
62
+ }
63
+ /**
64
+ * Retry error handler with configurable strategy
65
+ */
66
+ export declare class RetryErrorHandler implements IErrorHandler {
67
+ private readonly retryStrategy;
68
+ constructor(retryConfig?: Partial<RetryConfig>, logger?: Logger);
69
+ canHandle(error: any): boolean;
70
+ handle(_error: any, _context?: ErrorContext): Promise<boolean>;
71
+ /**
72
+ * Get the retry strategy for use in operations
73
+ */
74
+ getRetryStrategy(): RetryStrategy;
75
+ }
76
+ /**
77
+ * Circuit breaker error handler
78
+ */
79
+ export declare class CircuitBreakerErrorHandler implements IErrorHandler {
80
+ private readonly circuitBreakerFactory;
81
+ private readonly defaultConfig;
82
+ constructor(defaultConfig?: Partial<Omit<CircuitBreakerConfig, 'name'>>, logger?: Logger);
83
+ handle(_error: any, context?: ErrorContext): boolean;
84
+ /**
85
+ * Get or create a circuit breaker for an operation
86
+ */
87
+ getCircuitBreaker(operationName: string): CircuitBreaker;
88
+ /**
89
+ * Get circuit breaker factory
90
+ */
91
+ getFactory(): CircuitBreakerFactory;
92
+ /**
93
+ * Cleanup resources
94
+ */
95
+ dispose(): void;
96
+ }
97
+ /**
98
+ * Transformation error handler that enriches errors with context
99
+ */
100
+ export declare class ContextEnrichmentHandler implements IErrorHandler {
101
+ handle(_error: any, _context?: ErrorContext): boolean;
102
+ transform(error: any, context?: ErrorContext): any;
103
+ }
104
+ /**
105
+ * Rate limit error handler with backoff
106
+ */
107
+ export declare class RateLimitHandler implements IErrorHandler {
108
+ private readonly logger?;
109
+ private readonly rateLimits;
110
+ constructor(logger?: Logger | undefined);
111
+ canHandle(error: any): boolean;
112
+ handle(error: any, context?: ErrorContext): Promise<boolean>;
113
+ /**
114
+ * Check if operation is currently rate limited
115
+ */
116
+ isRateLimited(operation: string): boolean;
117
+ /**
118
+ * Get remaining wait time for rate limited operation
119
+ */
120
+ getRemainingWaitTime(operation: string): number;
121
+ }
122
+ /**
123
+ * Default error handler factory
124
+ */
125
+ export declare class ErrorHandlerFactory {
126
+ static createDefault(logger?: Logger): ErrorHandlerChain;
127
+ static createWithRetry(retryConfig?: Partial<RetryConfig>, logger?: Logger): ErrorHandlerChain;
128
+ static createWithCircuitBreaker(circuitConfig?: Partial<Omit<CircuitBreakerConfig, 'name'>>, logger?: Logger): ErrorHandlerChain;
129
+ static createComplete(retryConfig?: Partial<RetryConfig>, circuitConfig?: Partial<Omit<CircuitBreakerConfig, 'name'>>, logger?: Logger): {
130
+ chain: ErrorHandlerChain;
131
+ retryHandler: RetryErrorHandler;
132
+ circuitHandler: CircuitBreakerErrorHandler;
133
+ };
134
+ }
135
+ /**
136
+ * Error recovery strategies
137
+ */
138
+ export interface IErrorRecovery<T> {
139
+ /**
140
+ * Attempt to recover from an error
141
+ * @returns Recovery result or throws if recovery fails
142
+ */
143
+ recover(error: any, context?: ErrorContext): Promise<T> | T;
144
+ }
145
+ /**
146
+ * Fallback recovery strategy
147
+ */
148
+ export declare class FallbackRecovery<T> implements IErrorRecovery<T> {
149
+ private readonly fallbackValue;
150
+ private readonly condition?;
151
+ constructor(fallbackValue: T | (() => T | Promise<T>), condition?: ((error: any) => boolean) | undefined);
152
+ recover(error: any, _context?: ErrorContext): Promise<T>;
153
+ }
154
+ /**
155
+ * Cache-based recovery strategy
156
+ */
157
+ export declare class CacheRecovery<T> implements IErrorRecovery<T> {
158
+ private readonly cacheKey;
159
+ private readonly ttlMs;
160
+ private cache;
161
+ constructor(cacheKey: (context?: ErrorContext) => string, ttlMs?: number);
162
+ recover(error: any, context?: ErrorContext): Promise<T>;
163
+ /**
164
+ * Store value in cache
165
+ */
166
+ store(value: T, context?: ErrorContext): void;
167
+ /**
168
+ * Clear cache
169
+ */
170
+ clear(): void;
171
+ }
172
+ //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/ErrorHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Enhanced error handling with circuit breaker and observability
3
+ */
4
+ import { KubernetesError, createContextualError } from './ErrorHandling.js';
5
+ import { RetryStrategy, RETRY_PRESETS } from './RetryStrategy.js';
6
+ import { CircuitBreakerFactory } from './CircuitBreaker.js';
7
+ /**
8
+ * Composite error handler that chains multiple handlers
9
+ */
10
+ export class ErrorHandlerChain {
11
+ handlers;
12
+ logger;
13
+ stopOnFirstHandled;
14
+ constructor(config) {
15
+ this.handlers = config.handlers;
16
+ this.logger = config.logger;
17
+ this.stopOnFirstHandled = config.stopOnFirstHandled ?? true;
18
+ }
19
+ async handle(error, context) {
20
+ let handled = false;
21
+ for (const handler of this.handlers) {
22
+ try {
23
+ // Check if handler can handle this error
24
+ if (handler.canHandle && !handler.canHandle(error)) {
25
+ continue;
26
+ }
27
+ // Let handler process the error
28
+ const result = await handler.handle(error, context);
29
+ if (result) {
30
+ handled = true;
31
+ this.logger?.debug(`Error handled by ${handler.constructor.name}`);
32
+ if (this.stopOnFirstHandled) {
33
+ break;
34
+ }
35
+ }
36
+ }
37
+ catch (handlerError) {
38
+ this.logger?.error(`Error in handler ${handler.constructor.name}:`, handlerError);
39
+ }
40
+ }
41
+ return handled;
42
+ }
43
+ transform(error, context) {
44
+ let transformedError = error;
45
+ for (const handler of this.handlers) {
46
+ if (handler.transform) {
47
+ try {
48
+ transformedError = handler.transform(transformedError, context);
49
+ }
50
+ catch (transformError) {
51
+ this.logger?.error(`Error in transform ${handler.constructor.name}:`, transformError);
52
+ }
53
+ }
54
+ }
55
+ return transformedError;
56
+ }
57
+ canHandle(error) {
58
+ return this.handlers.some((h) => !h.canHandle || h.canHandle(error));
59
+ }
60
+ /**
61
+ * Add a handler to the chain
62
+ */
63
+ addHandler(handler) {
64
+ this.handlers.push(handler);
65
+ }
66
+ /**
67
+ * Remove a handler from the chain
68
+ */
69
+ removeHandler(handler) {
70
+ const index = this.handlers.indexOf(handler);
71
+ if (index !== -1) {
72
+ this.handlers.splice(index, 1);
73
+ }
74
+ }
75
+ }
76
+ /**
77
+ * Logging error handler
78
+ */
79
+ export class LoggingErrorHandler {
80
+ logger;
81
+ logLevel;
82
+ constructor(logger, logLevel = 'error') {
83
+ this.logger = logger;
84
+ this.logLevel = logLevel;
85
+ }
86
+ handle(error, context) {
87
+ const message = error instanceof Error ? error.message : String(error);
88
+ const details = {
89
+ error: error instanceof Error ? error.stack : error,
90
+ context,
91
+ };
92
+ this.logger[this.logLevel](message, details);
93
+ return false; // Don't stop propagation
94
+ }
95
+ }
96
+ /**
97
+ * Retry error handler with configurable strategy
98
+ */
99
+ export class RetryErrorHandler {
100
+ retryStrategy;
101
+ constructor(retryConfig = RETRY_PRESETS.STANDARD, logger) {
102
+ this.retryStrategy = new RetryStrategy(retryConfig, logger);
103
+ }
104
+ canHandle(error) {
105
+ if (error instanceof KubernetesError) {
106
+ return error.retryable;
107
+ }
108
+ return true; // Attempt retry for other errors
109
+ }
110
+ async handle(_error, _context) {
111
+ // This handler doesn't directly handle errors but provides retry capability
112
+ // It should be used in conjunction with operation execution
113
+ return false;
114
+ }
115
+ /**
116
+ * Get the retry strategy for use in operations
117
+ */
118
+ getRetryStrategy() {
119
+ return this.retryStrategy;
120
+ }
121
+ }
122
+ /**
123
+ * Circuit breaker error handler
124
+ */
125
+ export class CircuitBreakerErrorHandler {
126
+ circuitBreakerFactory;
127
+ defaultConfig;
128
+ constructor(defaultConfig, logger) {
129
+ this.circuitBreakerFactory = new CircuitBreakerFactory(logger);
130
+ this.defaultConfig = {
131
+ failureThreshold: 5,
132
+ successThreshold: 2,
133
+ failureCountWindow: 60000,
134
+ resetTimeout: 30000,
135
+ ...defaultConfig,
136
+ };
137
+ }
138
+ handle(_error, context) {
139
+ if (context?.operation) {
140
+ // Circuit breaker will track this failure internally
141
+ // when execute() was called
142
+ this.getCircuitBreaker(context.operation);
143
+ }
144
+ return false; // Don't stop propagation
145
+ }
146
+ /**
147
+ * Get or create a circuit breaker for an operation
148
+ */
149
+ getCircuitBreaker(operationName) {
150
+ return this.circuitBreakerFactory.getOrCreate({
151
+ ...this.defaultConfig,
152
+ name: operationName,
153
+ });
154
+ }
155
+ /**
156
+ * Get circuit breaker factory
157
+ */
158
+ getFactory() {
159
+ return this.circuitBreakerFactory;
160
+ }
161
+ /**
162
+ * Cleanup resources
163
+ */
164
+ dispose() {
165
+ this.circuitBreakerFactory.dispose();
166
+ }
167
+ }
168
+ /**
169
+ * Transformation error handler that enriches errors with context
170
+ */
171
+ export class ContextEnrichmentHandler {
172
+ handle(_error, _context) {
173
+ return false; // Just transform, don't handle
174
+ }
175
+ transform(error, context) {
176
+ if (context && error instanceof KubernetesError) {
177
+ return createContextualError(error, context);
178
+ }
179
+ return error;
180
+ }
181
+ }
182
+ /**
183
+ * Rate limit error handler with backoff
184
+ */
185
+ export class RateLimitHandler {
186
+ logger;
187
+ rateLimits = new Map();
188
+ constructor(logger) {
189
+ this.logger = logger;
190
+ }
191
+ canHandle(error) {
192
+ return error instanceof KubernetesError && error.code === 'RATE_LIMIT_ERROR';
193
+ }
194
+ async handle(error, context) {
195
+ if (error instanceof KubernetesError && error.details?.retryAfter) {
196
+ const key = context?.operation || 'default';
197
+ const retryAfter = error.details.retryAfter * 1000; // Convert to ms
198
+ this.rateLimits.set(key, {
199
+ resetTime: Date.now() + retryAfter,
200
+ retryAfter,
201
+ });
202
+ this.logger?.warn(`Rate limited for operation '${key}'. Retry after ${retryAfter}ms`);
203
+ // Wait for the specified time
204
+ await new Promise((resolve) => setTimeout(resolve, retryAfter));
205
+ return true; // Handled by waiting
206
+ }
207
+ return false;
208
+ }
209
+ /**
210
+ * Check if operation is currently rate limited
211
+ */
212
+ isRateLimited(operation) {
213
+ const limit = this.rateLimits.get(operation);
214
+ if (!limit)
215
+ return false;
216
+ if (Date.now() >= limit.resetTime) {
217
+ this.rateLimits.delete(operation);
218
+ return false;
219
+ }
220
+ return true;
221
+ }
222
+ /**
223
+ * Get remaining wait time for rate limited operation
224
+ */
225
+ getRemainingWaitTime(operation) {
226
+ const limit = this.rateLimits.get(operation);
227
+ if (!limit)
228
+ return 0;
229
+ const remaining = limit.resetTime - Date.now();
230
+ return Math.max(0, remaining);
231
+ }
232
+ }
233
+ /**
234
+ * Default error handler factory
235
+ */
236
+ export class ErrorHandlerFactory {
237
+ static createDefault(logger) {
238
+ return new ErrorHandlerChain({
239
+ handlers: [
240
+ new LoggingErrorHandler(logger || console),
241
+ new ContextEnrichmentHandler(),
242
+ new RateLimitHandler(logger),
243
+ ],
244
+ logger,
245
+ stopOnFirstHandled: false,
246
+ });
247
+ }
248
+ static createWithRetry(retryConfig, logger) {
249
+ const chain = this.createDefault(logger);
250
+ chain.addHandler(new RetryErrorHandler(retryConfig, logger));
251
+ return chain;
252
+ }
253
+ static createWithCircuitBreaker(circuitConfig, logger) {
254
+ const chain = this.createDefault(logger);
255
+ chain.addHandler(new CircuitBreakerErrorHandler(circuitConfig, logger));
256
+ return chain;
257
+ }
258
+ static createComplete(retryConfig, circuitConfig, logger) {
259
+ const retryHandler = new RetryErrorHandler(retryConfig, logger);
260
+ const circuitHandler = new CircuitBreakerErrorHandler(circuitConfig, logger);
261
+ const chain = new ErrorHandlerChain({
262
+ handlers: [
263
+ new LoggingErrorHandler(logger || console),
264
+ new ContextEnrichmentHandler(),
265
+ new RateLimitHandler(logger),
266
+ retryHandler,
267
+ circuitHandler,
268
+ ],
269
+ logger,
270
+ stopOnFirstHandled: false,
271
+ });
272
+ return { chain, retryHandler, circuitHandler };
273
+ }
274
+ }
275
+ /**
276
+ * Fallback recovery strategy
277
+ */
278
+ export class FallbackRecovery {
279
+ fallbackValue;
280
+ condition;
281
+ constructor(fallbackValue, condition) {
282
+ this.fallbackValue = fallbackValue;
283
+ this.condition = condition;
284
+ }
285
+ async recover(error, _context) {
286
+ if (this.condition && !this.condition(error)) {
287
+ throw error;
288
+ }
289
+ if (typeof this.fallbackValue === 'function') {
290
+ return this.fallbackValue();
291
+ }
292
+ return this.fallbackValue;
293
+ }
294
+ }
295
+ /**
296
+ * Cache-based recovery strategy
297
+ */
298
+ export class CacheRecovery {
299
+ cacheKey;
300
+ ttlMs;
301
+ cache = new Map();
302
+ constructor(cacheKey, ttlMs = 300000) {
303
+ this.cacheKey = cacheKey;
304
+ this.ttlMs = ttlMs;
305
+ }
306
+ async recover(error, context) {
307
+ const key = this.cacheKey(context);
308
+ const cached = this.cache.get(key);
309
+ if (cached && Date.now() - cached.timestamp < this.ttlMs) {
310
+ return cached.value;
311
+ }
312
+ throw error; // No valid cache entry
313
+ }
314
+ /**
315
+ * Store value in cache
316
+ */
317
+ store(value, context) {
318
+ const key = this.cacheKey(context);
319
+ this.cache.set(key, { value, timestamp: Date.now() });
320
+ }
321
+ /**
322
+ * Clear cache
323
+ */
324
+ clear() {
325
+ this.cache.clear();
326
+ }
327
+ }
328
+ //# sourceMappingURL=ErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorHandler.js","sourceRoot":"","sources":["../../../src/kubernetes/ErrorHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Kubernetes Client Error Handling Module
3
+ *
4
+ * This module provides a comprehensive error handling system for Kubernetes operations,
5
+ * including typed errors, monitoring, and conversion utilities.
6
+ */
7
+ import { Logger } from 'winston';
8
+ /**
9
+ * Base error class for all Kubernetes-related errors
10
+ */
11
+ export declare class KubernetesError extends Error {
12
+ readonly code: string;
13
+ readonly statusCode?: number;
14
+ readonly details: Record<string, any>;
15
+ readonly retryable: boolean;
16
+ readonly timestamp: Date;
17
+ constructor(message: string, code: string, statusCode?: number, retryable?: boolean, details?: Record<string, any>);
18
+ }
19
+ /**
20
+ * Error thrown when authentication fails
21
+ */
22
+ export declare class AuthenticationError extends KubernetesError {
23
+ constructor(message: string, details?: Record<string, any>);
24
+ }
25
+ /**
26
+ * Error thrown when authorization fails
27
+ */
28
+ export declare class AuthorizationError extends KubernetesError {
29
+ constructor(message: string, details?: Record<string, any>);
30
+ }
31
+ /**
32
+ * Error thrown when a resource is not found
33
+ */
34
+ export declare class ResourceNotFoundError extends KubernetesError {
35
+ constructor(message: string, details?: Record<string, any>);
36
+ }
37
+ /**
38
+ * Error thrown when a resource already exists (conflict)
39
+ */
40
+ export declare class ResourceConflictError extends KubernetesError {
41
+ constructor(message: string, details?: Record<string, any>);
42
+ }
43
+ /**
44
+ * Error thrown when request validation fails
45
+ */
46
+ export declare class ValidationError extends KubernetesError {
47
+ constructor(message: string, details?: Record<string, any>);
48
+ }
49
+ /**
50
+ * Error thrown when the server is unavailable
51
+ */
52
+ export declare class ServerUnavailableError extends KubernetesError {
53
+ constructor(message: string, details?: Record<string, any>);
54
+ }
55
+ /**
56
+ * Error thrown when a timeout occurs
57
+ */
58
+ export declare class TimeoutError extends KubernetesError {
59
+ constructor(message: string, details?: Record<string, any>);
60
+ }
61
+ /**
62
+ * Error thrown when rate limiting is encountered
63
+ */
64
+ export declare class RateLimitError extends KubernetesError {
65
+ constructor(message: string, retryAfter?: number, details?: Record<string, any>);
66
+ }
67
+ /**
68
+ * Error thrown for network-related issues
69
+ */
70
+ export declare class NetworkError extends KubernetesError {
71
+ constructor(message: string, details?: Record<string, any>);
72
+ }
73
+ /**
74
+ * Convert Kubernetes API errors to typed errors
75
+ */
76
+ export declare function convertApiError(error: any): KubernetesError;
77
+ /**
78
+ * Error statistics tracking
79
+ */
80
+ export interface ErrorStats {
81
+ total: number;
82
+ byType: Record<string, number>;
83
+ byStatusCode: Record<number, number>;
84
+ retryable: number;
85
+ nonRetryable: number;
86
+ lastError?: {
87
+ message: string;
88
+ code: string;
89
+ timestamp: Date;
90
+ };
91
+ }
92
+ /**
93
+ * Error monitor for tracking and analyzing errors
94
+ */
95
+ export declare class ErrorMonitor {
96
+ private logger?;
97
+ private stats;
98
+ private errorLog;
99
+ private readonly maxLogSize;
100
+ constructor(logger?: Logger | undefined);
101
+ /**
102
+ * Record an error
103
+ */
104
+ recordError(error: KubernetesError, operation: string): void;
105
+ /**
106
+ * Get error statistics
107
+ */
108
+ getStats(): ErrorStats;
109
+ /**
110
+ * Get recent errors
111
+ */
112
+ getRecentErrors(limit?: number): Array<{
113
+ error: KubernetesError;
114
+ operation: string;
115
+ timestamp: Date;
116
+ }>;
117
+ /**
118
+ * Clear statistics
119
+ */
120
+ clearStats(): void;
121
+ /**
122
+ * Get error rate for a specific time window
123
+ */
124
+ getErrorRate(windowMs?: number): number;
125
+ /**
126
+ * Check if a specific error type is trending
127
+ */
128
+ isErrorTrending(errorType: string, threshold?: number, windowMs?: number): boolean;
129
+ }
130
+ /**
131
+ * Error context for enhanced error information
132
+ */
133
+ export interface ErrorContext {
134
+ operation: string;
135
+ resource?: {
136
+ kind: string;
137
+ name?: string;
138
+ namespace?: string;
139
+ };
140
+ cluster?: string;
141
+ user?: string;
142
+ additionalInfo?: Record<string, any>;
143
+ }
144
+ /**
145
+ * Enhanced error with context
146
+ */
147
+ export declare function createContextualError(baseError: KubernetesError, context: ErrorContext): KubernetesError;
148
+ //# sourceMappingURL=ErrorHandling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorHandling.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/ErrorHandling.ts"],"names":[],"mappings":"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"}