synapse-mcp 1.0.0 → 1.0.2

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 (413) hide show
  1. package/README.md +1820 -147
  2. package/dist/constants.d.ts +10 -4
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +18 -8
  5. package/dist/constants.js.map +1 -1
  6. package/dist/events/emitter.d.ts +63 -0
  7. package/dist/events/emitter.d.ts.map +1 -0
  8. package/dist/events/emitter.js +112 -0
  9. package/dist/events/emitter.js.map +1 -0
  10. package/dist/events/index.d.ts +3 -0
  11. package/dist/events/index.d.ts.map +1 -0
  12. package/dist/events/index.js +3 -0
  13. package/dist/events/index.js.map +1 -0
  14. package/dist/events/types.d.ts +51 -0
  15. package/dist/events/types.d.ts.map +1 -0
  16. package/dist/events/types.js +3 -0
  17. package/dist/events/types.js.map +1 -0
  18. package/dist/formatters/compose.d.ts +185 -0
  19. package/dist/formatters/compose.d.ts.map +1 -0
  20. package/dist/formatters/compose.js +397 -0
  21. package/dist/formatters/compose.js.map +1 -0
  22. package/dist/formatters/container.d.ts +84 -0
  23. package/dist/formatters/container.d.ts.map +1 -0
  24. package/dist/formatters/container.js +323 -0
  25. package/dist/formatters/container.js.map +1 -0
  26. package/dist/formatters/diagnostics.d.ts +20 -0
  27. package/dist/formatters/diagnostics.d.ts.map +1 -0
  28. package/dist/formatters/diagnostics.js +73 -0
  29. package/dist/formatters/diagnostics.js.map +1 -0
  30. package/dist/formatters/docker.d.ts +139 -0
  31. package/dist/formatters/docker.d.ts.map +1 -0
  32. package/dist/formatters/docker.js +216 -0
  33. package/dist/formatters/docker.js.map +1 -0
  34. package/dist/formatters/host.d.ts +137 -0
  35. package/dist/formatters/host.d.ts.map +1 -0
  36. package/dist/formatters/host.js +198 -0
  37. package/dist/formatters/host.js.map +1 -0
  38. package/dist/formatters/index.d.ts +17 -270
  39. package/dist/formatters/index.d.ts.map +1 -1
  40. package/dist/formatters/index.js +21 -456
  41. package/dist/formatters/index.js.map +1 -1
  42. package/dist/formatters/scout.d.ts +424 -0
  43. package/dist/formatters/scout.d.ts.map +1 -0
  44. package/dist/formatters/scout.js +687 -0
  45. package/dist/formatters/scout.js.map +1 -0
  46. package/dist/formatters/strategy.d.ts +105 -0
  47. package/dist/formatters/strategy.d.ts.map +1 -0
  48. package/dist/formatters/strategy.js +120 -0
  49. package/dist/formatters/strategy.js.map +1 -0
  50. package/dist/formatters/utils.d.ts +84 -0
  51. package/dist/formatters/utils.d.ts.map +1 -0
  52. package/dist/formatters/utils.js +129 -0
  53. package/dist/formatters/utils.js.map +1 -0
  54. package/dist/health-rate-limiter.d.ts +59 -0
  55. package/dist/health-rate-limiter.d.ts.map +1 -0
  56. package/dist/health-rate-limiter.js +159 -0
  57. package/dist/health-rate-limiter.js.map +1 -0
  58. package/dist/index.js +61 -100
  59. package/dist/index.js.map +1 -1
  60. package/dist/middleware/async-handler.d.ts +62 -0
  61. package/dist/middleware/async-handler.d.ts.map +1 -0
  62. package/dist/middleware/async-handler.js +58 -0
  63. package/dist/middleware/async-handler.js.map +1 -0
  64. package/dist/middleware/auth.d.ts +32 -0
  65. package/dist/middleware/auth.d.ts.map +1 -0
  66. package/dist/middleware/auth.js +63 -0
  67. package/dist/middleware/auth.js.map +1 -0
  68. package/dist/middleware/csrf-protection.d.ts +58 -0
  69. package/dist/middleware/csrf-protection.d.ts.map +1 -0
  70. package/dist/middleware/csrf-protection.js +123 -0
  71. package/dist/middleware/csrf-protection.js.map +1 -0
  72. package/dist/middleware/error-handler.d.ts +49 -0
  73. package/dist/middleware/error-handler.d.ts.map +1 -0
  74. package/dist/middleware/error-handler.js +90 -0
  75. package/dist/middleware/error-handler.js.map +1 -0
  76. package/dist/middleware/error-mapper.d.ts +44 -0
  77. package/dist/middleware/error-mapper.d.ts.map +1 -0
  78. package/dist/middleware/error-mapper.js +127 -0
  79. package/dist/middleware/error-mapper.js.map +1 -0
  80. package/dist/middleware/index.d.ts +13 -0
  81. package/dist/middleware/index.d.ts.map +1 -0
  82. package/dist/middleware/index.js +13 -0
  83. package/dist/middleware/index.js.map +1 -0
  84. package/dist/middleware/request-id.d.ts +22 -0
  85. package/dist/middleware/request-id.d.ts.map +1 -0
  86. package/dist/middleware/request-id.js +31 -0
  87. package/dist/middleware/request-id.js.map +1 -0
  88. package/dist/middleware/types.d.ts +33 -0
  89. package/dist/middleware/types.d.ts.map +1 -0
  90. package/dist/middleware/types.js +2 -0
  91. package/dist/middleware/types.js.map +1 -0
  92. package/dist/schemas/common.d.ts +205 -8
  93. package/dist/schemas/common.d.ts.map +1 -1
  94. package/dist/schemas/common.js +290 -17
  95. package/dist/schemas/common.js.map +1 -1
  96. package/dist/schemas/flux/compose.d.ts +307 -44
  97. package/dist/schemas/flux/compose.d.ts.map +1 -1
  98. package/dist/schemas/flux/compose.js +74 -48
  99. package/dist/schemas/flux/compose.js.map +1 -1
  100. package/dist/schemas/flux/container.d.ts +423 -56
  101. package/dist/schemas/flux/container.d.ts.map +1 -1
  102. package/dist/schemas/flux/container.js +83 -61
  103. package/dist/schemas/flux/container.js.map +1 -1
  104. package/dist/schemas/flux/docker.d.ts +254 -37
  105. package/dist/schemas/flux/docker.d.ts.map +1 -1
  106. package/dist/schemas/flux/docker.js +69 -39
  107. package/dist/schemas/flux/docker.js.map +1 -1
  108. package/dist/schemas/flux/host.d.ts +312 -29
  109. package/dist/schemas/flux/host.d.ts.map +1 -1
  110. package/dist/schemas/flux/host.js +74 -31
  111. package/dist/schemas/flux/host.js.map +1 -1
  112. package/dist/schemas/flux/index.d.ts +503 -11
  113. package/dist/schemas/flux/index.d.ts.map +1 -1
  114. package/dist/schemas/flux/index.js +34 -70
  115. package/dist/schemas/flux/index.js.map +1 -1
  116. package/dist/schemas/host-config.d.ts +76 -0
  117. package/dist/schemas/host-config.d.ts.map +1 -0
  118. package/dist/schemas/host-config.js +105 -0
  119. package/dist/schemas/host-config.js.map +1 -0
  120. package/dist/schemas/scout/index.d.ts +80 -23
  121. package/dist/schemas/scout/index.d.ts.map +1 -1
  122. package/dist/schemas/scout/index.js +26 -11
  123. package/dist/schemas/scout/index.js.map +1 -1
  124. package/dist/schemas/scout/logs.d.ts +17 -5
  125. package/dist/schemas/scout/logs.d.ts.map +1 -1
  126. package/dist/schemas/scout/logs.js +41 -31
  127. package/dist/schemas/scout/logs.js.map +1 -1
  128. package/dist/schemas/scout/simple.d.ts +126 -11
  129. package/dist/schemas/scout/simple.d.ts.map +1 -1
  130. package/dist/schemas/scout/simple.js +112 -57
  131. package/dist/schemas/scout/simple.js.map +1 -1
  132. package/dist/schemas/scout/zfs.d.ts +17 -5
  133. package/dist/schemas/scout/zfs.d.ts.map +1 -1
  134. package/dist/schemas/scout/zfs.js +34 -25
  135. package/dist/schemas/scout/zfs.js.map +1 -1
  136. package/dist/services/cache-layer.d.ts +160 -0
  137. package/dist/services/cache-layer.d.ts.map +1 -0
  138. package/dist/services/cache-layer.js +138 -0
  139. package/dist/services/cache-layer.js.map +1 -0
  140. package/dist/services/compose-cache.d.ts +75 -0
  141. package/dist/services/compose-cache.d.ts.map +1 -0
  142. package/dist/services/compose-cache.js +178 -0
  143. package/dist/services/compose-cache.js.map +1 -0
  144. package/dist/services/compose-discovery.d.ts +46 -0
  145. package/dist/services/compose-discovery.d.ts.map +1 -0
  146. package/dist/services/compose-discovery.js +219 -0
  147. package/dist/services/compose-discovery.js.map +1 -0
  148. package/dist/services/compose-project-lister.d.ts +27 -0
  149. package/dist/services/compose-project-lister.d.ts.map +1 -0
  150. package/dist/services/compose-project-lister.js +71 -0
  151. package/dist/services/compose-project-lister.js.map +1 -0
  152. package/dist/services/compose-scanner.d.ts +63 -0
  153. package/dist/services/compose-scanner.d.ts.map +1 -0
  154. package/dist/services/compose-scanner.js +253 -0
  155. package/dist/services/compose-scanner.js.map +1 -0
  156. package/dist/services/compose.d.ts +64 -28
  157. package/dist/services/compose.d.ts.map +1 -1
  158. package/dist/services/compose.js +220 -98
  159. package/dist/services/compose.js.map +1 -1
  160. package/dist/services/config-loader.d.ts +23 -0
  161. package/dist/services/config-loader.d.ts.map +1 -0
  162. package/dist/services/config-loader.js +124 -0
  163. package/dist/services/config-loader.js.map +1 -0
  164. package/dist/services/config-service.d.ts +38 -0
  165. package/dist/services/config-service.d.ts.map +1 -0
  166. package/dist/services/config-service.js +225 -0
  167. package/dist/services/config-service.js.map +1 -0
  168. package/dist/services/container-host-map-cache.d.ts +121 -0
  169. package/dist/services/container-host-map-cache.d.ts.map +1 -0
  170. package/dist/services/container-host-map-cache.js +188 -0
  171. package/dist/services/container-host-map-cache.js.map +1 -0
  172. package/dist/services/container.d.ts +194 -6
  173. package/dist/services/container.d.ts.map +1 -1
  174. package/dist/services/container.js +386 -11
  175. package/dist/services/container.js.map +1 -1
  176. package/dist/services/diagnostics.d.ts +57 -0
  177. package/dist/services/diagnostics.d.ts.map +1 -0
  178. package/dist/services/diagnostics.js +271 -0
  179. package/dist/services/diagnostics.js.map +1 -0
  180. package/dist/services/docker/container-service.d.ts +123 -0
  181. package/dist/services/docker/container-service.d.ts.map +1 -0
  182. package/dist/services/docker/container-service.js +347 -0
  183. package/dist/services/docker/container-service.js.map +1 -0
  184. package/dist/services/docker/image-service.d.ts +82 -0
  185. package/dist/services/docker/image-service.d.ts.map +1 -0
  186. package/dist/services/docker/image-service.js +193 -0
  187. package/dist/services/docker/image-service.js.map +1 -0
  188. package/dist/services/docker/index.d.ts +80 -0
  189. package/dist/services/docker/index.d.ts.map +1 -0
  190. package/dist/services/docker/index.js +103 -0
  191. package/dist/services/docker/index.js.map +1 -0
  192. package/dist/services/docker/network-service.d.ts +22 -0
  193. package/dist/services/docker/network-service.d.ts.map +1 -0
  194. package/dist/services/docker/network-service.js +43 -0
  195. package/dist/services/docker/network-service.js.map +1 -0
  196. package/dist/services/docker/system-service.d.ts +49 -0
  197. package/dist/services/docker/system-service.d.ts.map +1 -0
  198. package/dist/services/docker/system-service.js +215 -0
  199. package/dist/services/docker/system-service.js.map +1 -0
  200. package/dist/services/docker/utils/client-factory.d.ts +56 -0
  201. package/dist/services/docker/utils/client-factory.d.ts.map +1 -0
  202. package/dist/services/docker/utils/client-factory.js +139 -0
  203. package/dist/services/docker/utils/client-factory.js.map +1 -0
  204. package/dist/services/docker/utils/client-manager.d.ts +88 -0
  205. package/dist/services/docker/utils/client-manager.d.ts.map +1 -0
  206. package/dist/services/docker/utils/client-manager.js +124 -0
  207. package/dist/services/docker/utils/client-manager.js.map +1 -0
  208. package/dist/services/docker/utils/exec-handler.d.ts +94 -0
  209. package/dist/services/docker/utils/exec-handler.d.ts.map +1 -0
  210. package/dist/services/docker/utils/exec-handler.js +197 -0
  211. package/dist/services/docker/utils/exec-handler.js.map +1 -0
  212. package/dist/services/docker/utils/formatters.d.ts +13 -0
  213. package/dist/services/docker/utils/formatters.d.ts.map +1 -0
  214. package/dist/services/docker/utils/formatters.js +33 -0
  215. package/dist/services/docker/utils/formatters.js.map +1 -0
  216. package/dist/services/docker/utils/log-parser.d.ts +10 -0
  217. package/dist/services/docker/utils/log-parser.d.ts.map +1 -0
  218. package/dist/services/docker/utils/log-parser.js +48 -0
  219. package/dist/services/docker/utils/log-parser.js.map +1 -0
  220. package/dist/services/docker/utils/stats-calculator.d.ts +68 -0
  221. package/dist/services/docker/utils/stats-calculator.d.ts.map +1 -0
  222. package/dist/services/docker/utils/stats-calculator.js +61 -0
  223. package/dist/services/docker/utils/stats-calculator.js.map +1 -0
  224. package/dist/services/docker/volume-service.d.ts +22 -0
  225. package/dist/services/docker/volume-service.d.ts.map +1 -0
  226. package/dist/services/docker/volume-service.js +48 -0
  227. package/dist/services/docker/volume-service.js.map +1 -0
  228. package/dist/services/docker-interfaces.d.ts +283 -0
  229. package/dist/services/docker-interfaces.d.ts.map +1 -0
  230. package/dist/services/docker-interfaces.js +13 -0
  231. package/dist/services/docker-interfaces.js.map +1 -0
  232. package/dist/services/docker.d.ts +42 -5
  233. package/dist/services/docker.d.ts.map +1 -1
  234. package/dist/services/docker.js +335 -127
  235. package/dist/services/docker.js.map +1 -1
  236. package/dist/services/file-service.d.ts +6 -2
  237. package/dist/services/file-service.d.ts.map +1 -1
  238. package/dist/services/file-service.js +156 -52
  239. package/dist/services/file-service.js.map +1 -1
  240. package/dist/services/host-config-repository.d.ts +133 -0
  241. package/dist/services/host-config-repository.d.ts.map +1 -0
  242. package/dist/services/host-config-repository.js +323 -0
  243. package/dist/services/host-config-repository.js.map +1 -0
  244. package/dist/services/host-resolver.d.ts +49 -0
  245. package/dist/services/host-resolver.d.ts.map +1 -0
  246. package/dist/services/host-resolver.js +176 -0
  247. package/dist/services/host-resolver.js.map +1 -0
  248. package/dist/services/interfaces.d.ts +61 -194
  249. package/dist/services/interfaces.d.ts.map +1 -1
  250. package/dist/services/local-executor.d.ts +31 -0
  251. package/dist/services/local-executor.d.ts.map +1 -0
  252. package/dist/services/local-executor.js +71 -0
  253. package/dist/services/local-executor.js.map +1 -0
  254. package/dist/services/ssh-config-loader.d.ts +35 -0
  255. package/dist/services/ssh-config-loader.d.ts.map +1 -0
  256. package/dist/services/ssh-config-loader.js +218 -0
  257. package/dist/services/ssh-config-loader.js.map +1 -0
  258. package/dist/services/ssh-pool.d.ts +26 -1
  259. package/dist/services/ssh-pool.d.ts.map +1 -1
  260. package/dist/services/ssh-pool.js +166 -25
  261. package/dist/services/ssh-pool.js.map +1 -1
  262. package/dist/services/ssh-service.d.ts +3 -0
  263. package/dist/services/ssh-service.d.ts.map +1 -1
  264. package/dist/services/ssh-service.js +53 -31
  265. package/dist/services/ssh-service.js.map +1 -1
  266. package/dist/services/ssh.d.ts +2 -6
  267. package/dist/services/ssh.d.ts.map +1 -1
  268. package/dist/services/ssh.js +9 -40
  269. package/dist/services/ssh.js.map +1 -1
  270. package/dist/tools/definitions/flux.d.ts +13 -0
  271. package/dist/tools/definitions/flux.d.ts.map +1 -0
  272. package/dist/tools/definitions/flux.js +101 -0
  273. package/dist/tools/definitions/flux.js.map +1 -0
  274. package/dist/tools/definitions/index.d.ts +8 -0
  275. package/dist/tools/definitions/index.d.ts.map +1 -0
  276. package/dist/tools/definitions/index.js +8 -0
  277. package/dist/tools/definitions/index.js.map +1 -0
  278. package/dist/tools/definitions/scout.d.ts +13 -0
  279. package/dist/tools/definitions/scout.d.ts.map +1 -0
  280. package/dist/tools/definitions/scout.js +78 -0
  281. package/dist/tools/definitions/scout.js.map +1 -0
  282. package/dist/tools/flux.d.ts +16 -8
  283. package/dist/tools/flux.d.ts.map +1 -1
  284. package/dist/tools/flux.js +27 -66
  285. package/dist/tools/flux.js.map +1 -1
  286. package/dist/tools/handlers/base-handler.d.ts +172 -0
  287. package/dist/tools/handlers/base-handler.d.ts.map +1 -0
  288. package/dist/tools/handlers/base-handler.js +234 -0
  289. package/dist/tools/handlers/base-handler.js.map +1 -0
  290. package/dist/tools/handlers/compose-handlers.d.ts +108 -0
  291. package/dist/tools/handlers/compose-handlers.d.ts.map +1 -0
  292. package/dist/tools/handlers/compose-handlers.js +293 -0
  293. package/dist/tools/handlers/compose-handlers.js.map +1 -0
  294. package/dist/tools/handlers/compose-utils.d.ts +35 -0
  295. package/dist/tools/handlers/compose-utils.d.ts.map +1 -0
  296. package/dist/tools/handlers/compose-utils.js +76 -0
  297. package/dist/tools/handlers/compose-utils.js.map +1 -0
  298. package/dist/tools/handlers/compose.d.ts +23 -0
  299. package/dist/tools/handlers/compose.d.ts.map +1 -0
  300. package/dist/tools/handlers/compose.js +125 -0
  301. package/dist/tools/handlers/compose.js.map +1 -0
  302. package/dist/tools/handlers/container.d.ts +23 -0
  303. package/dist/tools/handlers/container.d.ts.map +1 -0
  304. package/dist/tools/handlers/container.js +333 -0
  305. package/dist/tools/handlers/container.js.map +1 -0
  306. package/dist/tools/handlers/docker.d.ts +24 -0
  307. package/dist/tools/handlers/docker.d.ts.map +1 -0
  308. package/dist/tools/handlers/docker.js +155 -0
  309. package/dist/tools/handlers/docker.js.map +1 -0
  310. package/dist/tools/handlers/host.d.ts +23 -0
  311. package/dist/tools/handlers/host.d.ts.map +1 -0
  312. package/dist/tools/handlers/host.js +196 -0
  313. package/dist/tools/handlers/host.js.map +1 -0
  314. package/dist/tools/handlers/scout-logs.d.ts +24 -0
  315. package/dist/tools/handlers/scout-logs.d.ts.map +1 -0
  316. package/dist/tools/handlers/scout-logs.js +119 -0
  317. package/dist/tools/handlers/scout-logs.js.map +1 -0
  318. package/dist/tools/handlers/scout-simple.d.ts +23 -0
  319. package/dist/tools/handlers/scout-simple.d.ts.map +1 -0
  320. package/dist/tools/handlers/scout-simple.js +286 -0
  321. package/dist/tools/handlers/scout-simple.js.map +1 -0
  322. package/dist/tools/handlers/scout-zfs.d.ts +23 -0
  323. package/dist/tools/handlers/scout-zfs.d.ts.map +1 -0
  324. package/dist/tools/handlers/scout-zfs.js +82 -0
  325. package/dist/tools/handlers/scout-zfs.js.map +1 -0
  326. package/dist/tools/index.d.ts +32 -2
  327. package/dist/tools/index.d.ts.map +1 -1
  328. package/dist/tools/index.js +41 -35
  329. package/dist/tools/index.js.map +1 -1
  330. package/dist/tools/registry.d.ts +135 -0
  331. package/dist/tools/registry.d.ts.map +1 -0
  332. package/dist/tools/registry.js +151 -0
  333. package/dist/tools/registry.js.map +1 -0
  334. package/dist/tools/scout.d.ts +16 -8
  335. package/dist/tools/scout.d.ts.map +1 -1
  336. package/dist/tools/scout.js +36 -78
  337. package/dist/tools/scout.js.map +1 -1
  338. package/dist/types.d.ts +629 -1
  339. package/dist/types.d.ts.map +1 -1
  340. package/dist/types.js.map +1 -1
  341. package/dist/utils/command-security.d.ts +82 -0
  342. package/dist/utils/command-security.d.ts.map +1 -0
  343. package/dist/utils/command-security.js +122 -0
  344. package/dist/utils/command-security.js.map +1 -0
  345. package/dist/utils/error-sanitization.d.ts +77 -0
  346. package/dist/utils/error-sanitization.d.ts.map +1 -0
  347. package/dist/utils/error-sanitization.js +107 -0
  348. package/dist/utils/error-sanitization.js.map +1 -0
  349. package/dist/utils/errors.d.ts +30 -6
  350. package/dist/utils/errors.d.ts.map +1 -1
  351. package/dist/utils/errors.js +91 -12
  352. package/dist/utils/errors.js.map +1 -1
  353. package/dist/utils/help-handler.d.ts +23 -0
  354. package/dist/utils/help-handler.d.ts.map +1 -0
  355. package/dist/utils/help-handler.js +21 -0
  356. package/dist/utils/help-handler.js.map +1 -0
  357. package/dist/utils/help.d.ts +1 -1
  358. package/dist/utils/help.d.ts.map +1 -1
  359. package/dist/utils/help.js +57 -16
  360. package/dist/utils/help.js.map +1 -1
  361. package/dist/utils/host-utils.d.ts +31 -0
  362. package/dist/utils/host-utils.d.ts.map +1 -0
  363. package/dist/utils/host-utils.js +80 -0
  364. package/dist/utils/host-utils.js.map +1 -0
  365. package/dist/utils/index.d.ts +8 -2
  366. package/dist/utils/index.d.ts.map +1 -1
  367. package/dist/utils/index.js +8 -2
  368. package/dist/utils/index.js.map +1 -1
  369. package/dist/utils/init-detection.d.ts +36 -0
  370. package/dist/utils/init-detection.d.ts.map +1 -0
  371. package/dist/utils/init-detection.js +79 -0
  372. package/dist/utils/init-detection.js.map +1 -0
  373. package/dist/utils/logger.d.ts +11 -0
  374. package/dist/utils/logger.d.ts.map +1 -0
  375. package/dist/utils/logger.js +32 -0
  376. package/dist/utils/logger.js.map +1 -0
  377. package/dist/utils/pagination.d.ts +20 -0
  378. package/dist/utils/pagination.d.ts.map +1 -0
  379. package/dist/utils/pagination.js +29 -0
  380. package/dist/utils/pagination.js.map +1 -0
  381. package/dist/utils/path-security.d.ts +132 -18
  382. package/dist/utils/path-security.d.ts.map +1 -1
  383. package/dist/utils/path-security.js +164 -35
  384. package/dist/utils/path-security.js.map +1 -1
  385. package/dist/utils/sorting.d.ts +33 -0
  386. package/dist/utils/sorting.d.ts.map +1 -0
  387. package/dist/utils/sorting.js +57 -0
  388. package/dist/utils/sorting.js.map +1 -0
  389. package/dist/utils/text-filters.d.ts +13 -0
  390. package/dist/utils/text-filters.d.ts.map +1 -0
  391. package/dist/utils/text-filters.js +18 -0
  392. package/dist/utils/text-filters.js.map +1 -0
  393. package/dist/utils/time.d.ts +11 -0
  394. package/dist/utils/time.d.ts.map +1 -0
  395. package/dist/utils/time.js +13 -0
  396. package/dist/utils/time.js.map +1 -0
  397. package/dist/utils/validation.d.ts +25 -0
  398. package/dist/utils/validation.d.ts.map +1 -0
  399. package/dist/utils/validation.js +56 -0
  400. package/dist/utils/validation.js.map +1 -0
  401. package/package.json +45 -19
  402. package/dist/schemas/discriminator.d.ts +0 -20
  403. package/dist/schemas/discriminator.d.ts.map +0 -1
  404. package/dist/schemas/discriminator.js +0 -25
  405. package/dist/schemas/discriminator.js.map +0 -1
  406. package/dist/schemas/unified.d.ts +0 -674
  407. package/dist/schemas/unified.d.ts.map +0 -1
  408. package/dist/schemas/unified.js +0 -453
  409. package/dist/schemas/unified.js.map +0 -1
  410. package/dist/tools/unified.d.ts +0 -7
  411. package/dist/tools/unified.d.ts.map +0 -1
  412. package/dist/tools/unified.js +0 -827
  413. package/dist/tools/unified.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Format bytes to human readable
3
+ */
4
+ export declare function formatBytes(bytes: number): string;
5
+ /**
6
+ * Format uptime from created timestamp
7
+ */
8
+ export declare function formatUptime(created: string): string;
9
+ /**
10
+ * Format Docker image ID (truncate sha256: prefix and limit to 12 chars)
11
+ */
12
+ export declare function formatImageId(id: string): string;
13
+ //# sourceMappingURL=formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../../src/services/docker/utils/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGhD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Format bytes to human readable
3
+ */
4
+ export function formatBytes(bytes) {
5
+ if (bytes === 0)
6
+ return "0 B";
7
+ const k = 1024;
8
+ const sizes = ["B", "KB", "MB", "GB", "TB"];
9
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
10
+ return `${(bytes / k ** i).toFixed(1)} ${sizes[i]}`;
11
+ }
12
+ /**
13
+ * Format uptime from created timestamp
14
+ */
15
+ export function formatUptime(created) {
16
+ const diff = Date.now() - new Date(created).getTime();
17
+ const days = Math.floor(diff / 86400000);
18
+ const hours = Math.floor((diff % 86400000) / 3600000);
19
+ const minutes = Math.floor((diff % 3600000) / 60000);
20
+ if (days > 0)
21
+ return `${days}d ${hours}h`;
22
+ if (hours > 0)
23
+ return `${hours}h ${minutes}m`;
24
+ return `${minutes}m`;
25
+ }
26
+ /**
27
+ * Format Docker image ID (truncate sha256: prefix and limit to 12 chars)
28
+ */
29
+ export function formatImageId(id) {
30
+ const cleaned = id.replace(/^sha256:/, "");
31
+ return cleaned.slice(0, 12) || cleaned;
32
+ }
33
+ //# sourceMappingURL=formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../src/services/docker/utils/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAErD,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;IAC9C,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AACzC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { LogEntry } from "../../../types.js";
2
+ /**
3
+ * Parse time specification (absolute or relative) - pure helper function
4
+ */
5
+ export declare function parseTimeSpec(spec: string): number;
6
+ /**
7
+ * Parse Docker log output into structured entries - pure helper function
8
+ */
9
+ export declare function parseDockerLogs(raw: string): LogEntry[];
10
+ //# sourceMappingURL=log-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-parser.d.ts","sourceRoot":"","sources":["../../../../src/services/docker/utils/log-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBlD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuBvD"}
@@ -0,0 +1,48 @@
1
+ import { getCurrentTimestamp } from "../../../utils/time.js";
2
+ /**
3
+ * Parse time specification (absolute or relative) - pure helper function
4
+ */
5
+ export function parseTimeSpec(spec) {
6
+ // Check for relative time like "1h", "30m", "2d"
7
+ const relativeMatch = spec.match(/^(\d+)([smhd])$/);
8
+ if (relativeMatch) {
9
+ const value = Number.parseInt(relativeMatch[1], 10);
10
+ const unit = relativeMatch[2];
11
+ const multipliers = {
12
+ s: 1,
13
+ m: 60,
14
+ h: 3600,
15
+ d: 86400,
16
+ };
17
+ return Math.floor(Date.now() / 1000) - value * multipliers[unit];
18
+ }
19
+ // Absolute timestamp
20
+ return Math.floor(new Date(spec).getTime() / 1000);
21
+ }
22
+ /**
23
+ * Parse Docker log output into structured entries - pure helper function
24
+ */
25
+ export function parseDockerLogs(raw) {
26
+ const lines = raw.split("\n").filter((l) => l.trim());
27
+ const entries = [];
28
+ for (const line of lines) {
29
+ // Docker log format: timestamp message
30
+ const match = line.match(/^(\d{4}-\d{2}-\d{2}T[\d:.]+Z)\s+(.*)$/);
31
+ if (match) {
32
+ entries.push({
33
+ timestamp: match[1],
34
+ stream: "stdout", // Default, actual stream info requires demuxing
35
+ message: match[2],
36
+ });
37
+ }
38
+ else if (line.trim()) {
39
+ entries.push({
40
+ timestamp: getCurrentTimestamp(),
41
+ stream: "stdout",
42
+ message: line,
43
+ });
44
+ }
45
+ }
46
+ return entries;
47
+ }
48
+ //# sourceMappingURL=log-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-parser.js","sourceRoot":"","sources":["../../../../src/services/docker/utils/log-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,iDAAiD;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAA2B;YAC1C,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,KAAK;SACT,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAe,EAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,MAAM,EAAE,QAAQ,EAAE,gDAAgD;gBAClE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,mBAAmB,EAAE;gBAChC,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Calculate image statistics from Docker disk usage data.
3
+ * Processes image data to compute totals, active count, sizes, and reclaimable space.
4
+ *
5
+ * @param images - Array of image info from Docker df
6
+ * @returns Statistics with total, active, size, and reclaimable bytes
7
+ */
8
+ export declare function calculateImageStats(images: Array<{
9
+ Size?: number;
10
+ SharedSize?: number;
11
+ Containers?: number;
12
+ }>): {
13
+ total: number;
14
+ active: number;
15
+ size: number;
16
+ reclaimable: number;
17
+ };
18
+ /**
19
+ * Calculate container statistics from Docker disk usage data.
20
+ * Processes container data to compute totals, running count, and sizes.
21
+ *
22
+ * @param containers - Array of container info from Docker df
23
+ * @returns Statistics with total, running, size, and rootfsSize in bytes
24
+ */
25
+ export declare function calculateContainerStats(containers: Array<{
26
+ SizeRw?: number;
27
+ SizeRootFs?: number;
28
+ State?: string;
29
+ }>): {
30
+ total: number;
31
+ running: number;
32
+ size: number;
33
+ rootfsSize: number;
34
+ };
35
+ /**
36
+ * Calculate volume statistics from Docker disk usage data.
37
+ * Processes volume data to compute totals, active count, sizes, and reclaimable space.
38
+ *
39
+ * @param volumes - Array of volume info from Docker df
40
+ * @returns Statistics with total, active, size, and reclaimable bytes
41
+ */
42
+ export declare function calculateVolumeStats(volumes: Array<{
43
+ UsageData?: {
44
+ Size?: number;
45
+ RefCount?: number;
46
+ };
47
+ }>): {
48
+ total: number;
49
+ active: number;
50
+ size: number;
51
+ reclaimable: number;
52
+ };
53
+ /**
54
+ * Calculate build cache statistics from Docker disk usage data.
55
+ * Processes build cache data to compute totals, sizes, and reclaimable space.
56
+ *
57
+ * @param buildCache - Array of build cache info from Docker df
58
+ * @returns Statistics with total, size, and reclaimable bytes
59
+ */
60
+ export declare function calculateBuildCacheStats(buildCache: Array<{
61
+ Size?: number;
62
+ InUse?: boolean;
63
+ }>): {
64
+ total: number;
65
+ size: number;
66
+ reclaimable: number;
67
+ };
68
+ //# sourceMappingURL=stats-calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-calculator.d.ts","sourceRoot":"","sources":["../../../../src/services/docker/utils/stats-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACzE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,KAAK,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAOA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GACnE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Calculate image statistics from Docker disk usage data.
3
+ * Processes image data to compute totals, active count, sizes, and reclaimable space.
4
+ *
5
+ * @param images - Array of image info from Docker df
6
+ * @returns Statistics with total, active, size, and reclaimable bytes
7
+ */
8
+ export function calculateImageStats(images) {
9
+ const total = images.length;
10
+ const size = images.reduce((sum, i) => sum + (i.Size || 0), 0);
11
+ const shared = images.reduce((sum, i) => sum + (i.SharedSize || 0), 0);
12
+ const active = images.filter((i) => i.Containers && i.Containers > 0).length;
13
+ const reclaimable = size - shared;
14
+ return { total, active, size, reclaimable };
15
+ }
16
+ /**
17
+ * Calculate container statistics from Docker disk usage data.
18
+ * Processes container data to compute totals, running count, and sizes.
19
+ *
20
+ * @param containers - Array of container info from Docker df
21
+ * @returns Statistics with total, running, size, and rootfsSize in bytes
22
+ */
23
+ export function calculateContainerStats(containers) {
24
+ const total = containers.length;
25
+ const size = containers.reduce((sum, c) => sum + (c.SizeRw || 0), 0);
26
+ const rootfsSize = containers.reduce((sum, c) => sum + (c.SizeRootFs || 0), 0);
27
+ const running = containers.filter((c) => c.State === "running").length;
28
+ return { total, running, size, rootfsSize };
29
+ }
30
+ /**
31
+ * Calculate volume statistics from Docker disk usage data.
32
+ * Processes volume data to compute totals, active count, sizes, and reclaimable space.
33
+ *
34
+ * @param volumes - Array of volume info from Docker df
35
+ * @returns Statistics with total, active, size, and reclaimable bytes
36
+ */
37
+ export function calculateVolumeStats(volumes) {
38
+ const total = volumes.length;
39
+ const size = volumes.reduce((sum, v) => sum + (v.UsageData?.Size || 0), 0);
40
+ const active = volumes.filter((v) => v.UsageData?.RefCount && v.UsageData.RefCount > 0).length;
41
+ const reclaimable = volumes
42
+ .filter((v) => !v.UsageData?.RefCount)
43
+ .reduce((sum, v) => sum + (v.UsageData?.Size || 0), 0);
44
+ return { total, active, size, reclaimable };
45
+ }
46
+ /**
47
+ * Calculate build cache statistics from Docker disk usage data.
48
+ * Processes build cache data to compute totals, sizes, and reclaimable space.
49
+ *
50
+ * @param buildCache - Array of build cache info from Docker df
51
+ * @returns Statistics with total, size, and reclaimable bytes
52
+ */
53
+ export function calculateBuildCacheStats(buildCache) {
54
+ const total = buildCache.length;
55
+ const size = buildCache.reduce((sum, b) => sum + (b.Size || 0), 0);
56
+ const reclaimable = buildCache
57
+ .filter((b) => !b.InUse)
58
+ .reduce((sum, b) => sum + (b.Size || 0), 0);
59
+ return { total, size, reclaimable };
60
+ }
61
+ //# sourceMappingURL=stats-calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-calculator.js","sourceRoot":"","sources":["../../../../src/services/docker/utils/stats-calculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { DockerVolumeInfo, HostConfig } from "../../types.js";
2
+ import type { ClientManager } from "./utils/client-manager.js";
3
+ /**
4
+ * Service for Docker volume operations.
5
+ * Handles volume listing and management.
6
+ */
7
+ export declare class VolumeService {
8
+ private clientManager;
9
+ constructor(clientManager: ClientManager);
10
+ /**
11
+ * List Docker volumes across multiple hosts in parallel.
12
+ *
13
+ * @param hosts - List of Docker hosts to query
14
+ * @returns Promise resolving to array of volume information
15
+ */
16
+ listVolumes(hosts: HostConfig[]): Promise<DockerVolumeInfo[]>;
17
+ /**
18
+ * List Docker volumes from a single host (internal helper).
19
+ */
20
+ private listVolumesOnHost;
21
+ }
22
+ //# sourceMappingURL=volume-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume-service.d.ts","sourceRoot":"","sources":["../../../src/services/docker/volume-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWnE;;OAEG;YACW,iBAAiB;CAuBhC"}
@@ -0,0 +1,48 @@
1
+ import { narrowToDefaultHost } from "../../utils/host-utils.js";
2
+ /**
3
+ * Service for Docker volume operations.
4
+ * Handles volume listing and management.
5
+ */
6
+ export class VolumeService {
7
+ clientManager;
8
+ constructor(clientManager) {
9
+ this.clientManager = clientManager;
10
+ }
11
+ /**
12
+ * List Docker volumes across multiple hosts in parallel.
13
+ *
14
+ * @param hosts - List of Docker hosts to query
15
+ * @returns Promise resolving to array of volume information
16
+ */
17
+ async listVolumes(hosts) {
18
+ const targetHosts = narrowToDefaultHost(hosts);
19
+ const results = await Promise.allSettled(targetHosts.map((host) => this.listVolumesOnHost(host)));
20
+ return results
21
+ .filter((r) => r.status === "fulfilled")
22
+ .flatMap((r) => r.value);
23
+ }
24
+ /**
25
+ * List Docker volumes from a single host (internal helper).
26
+ */
27
+ async listVolumesOnHost(host) {
28
+ const docker = await this.clientManager.getClient(host);
29
+ const result = await docker.listVolumes();
30
+ const volumes = result?.Volumes ?? [];
31
+ return volumes.map((volume) => {
32
+ // Cast once to document the expected shape with CreatedAt
33
+ const volumeWithCreatedAt = volume;
34
+ return {
35
+ name: volumeWithCreatedAt.Name,
36
+ driver: volumeWithCreatedAt.Driver,
37
+ scope: volumeWithCreatedAt.Scope,
38
+ mountpoint: volumeWithCreatedAt.Mountpoint,
39
+ createdAt: typeof volumeWithCreatedAt.CreatedAt === "string"
40
+ ? volumeWithCreatedAt.CreatedAt
41
+ : undefined,
42
+ labels: volumeWithCreatedAt.Labels ?? undefined,
43
+ hostName: host.name,
44
+ };
45
+ });
46
+ }
47
+ }
48
+ //# sourceMappingURL=volume-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume-service.js","sourceRoot":"","sources":["../../../src/services/docker/volume-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAQhE;;;GAGG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAmB;QACnC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CACxD,CAAC;QAEF,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAmD,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;aACxF,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,IAAgB;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QAEtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,0DAA0D;YAC1D,MAAM,mBAAmB,GAAG,MAA6B,CAAC;YAE1D,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,IAAI;gBAC9B,MAAM,EAAE,mBAAmB,CAAC,MAAM;gBAClC,KAAK,EAAE,mBAAmB,CAAC,KAAK;gBAChC,UAAU,EAAE,mBAAmB,CAAC,UAAU;gBAC1C,SAAS,EACP,OAAO,mBAAmB,CAAC,SAAS,KAAK,QAAQ;oBAC/C,CAAC,CAAC,mBAAmB,CAAC,SAAS;oBAC/B,CAAC,CAAC,SAAS;gBACf,MAAM,EAAE,mBAAmB,CAAC,MAAM,IAAI,SAAS;gBAC/C,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Segregated Docker service interfaces following Interface Segregation Principle (ISP).
3
+ * These interfaces provide cohesive, focused Docker contracts.
4
+ *
5
+ * Each interface represents a specific area of Docker functionality:
6
+ * - IContainerOperations: Container lifecycle and inspection
7
+ * - IImageOperations: Image management and builds
8
+ * - IResourceOperations: Networks, volumes, and resource cleanup
9
+ * - IDockerSystemInfo: System information and status
10
+ * - IDockerClientProvider: Low-level client access (internal use)
11
+ */
12
+ import type Docker from "dockerode";
13
+ import type { ContainerExecResult, ContainerInfo, ContainerProcessList, ContainerStats, DockerDiskUsage, DockerNetworkInfo, DockerRawContainerInfo, DockerRawContainerInspectInfo, DockerSystemInfo, DockerVolumeInfo, HostConfig, HostStatus, ImageInfo, ListImagesOptions, LogEntry, PruneResult } from "../types.js";
14
+ /**
15
+ * Container lifecycle operations and inspection.
16
+ * Provides methods for starting, stopping, monitoring, and interacting with containers.
17
+ */
18
+ export interface IContainerOperations {
19
+ /**
20
+ * List containers across multiple hosts with optional filtering and pagination.
21
+ *
22
+ * @param hosts - Array of host configurations to query
23
+ * @param options - Filtering and pagination options
24
+ * @param options.state - Filter by container state (all, running, stopped, paused)
25
+ * @param options.nameFilter - Filter by container name (partial match)
26
+ * @param options.imageFilter - Filter by image name (partial match)
27
+ * @param options.labelFilter - Filter by label (format: "key=value")
28
+ * @param options.limit - Maximum number of containers to return
29
+ * @param options.offset - Number of containers to skip before returning results
30
+ * @returns Array of containers with their details and host information
31
+ */
32
+ listContainers(hosts: HostConfig[], options?: {
33
+ state?: "all" | "running" | "stopped" | "paused";
34
+ nameFilter?: string;
35
+ imageFilter?: string;
36
+ labelFilter?: string;
37
+ limit?: number;
38
+ offset?: number;
39
+ }): Promise<ContainerInfo[]>;
40
+ /**
41
+ * Perform a lifecycle action on a container.
42
+ *
43
+ * @param containerId - Container ID or name
44
+ * @param action - Action to perform (start, stop, restart, pause, unpause)
45
+ * @param host - Host configuration where container is located
46
+ */
47
+ containerAction(containerId: string, action: "start" | "stop" | "restart" | "pause" | "unpause", host: HostConfig): Promise<void>;
48
+ /**
49
+ * Retrieve logs from a container.
50
+ *
51
+ * @param containerId - Container ID or name
52
+ * @param host - Host configuration where container is located
53
+ * @param options - Log retrieval options
54
+ * @param options.lines - Number of lines to retrieve (default: 100)
55
+ * @param options.since - Show logs since timestamp or duration (e.g., "2023-01-01T00:00:00Z" or "10m")
56
+ * @param options.until - Show logs until timestamp or duration
57
+ * @param options.stream - Stream to retrieve (all, stdout, stderr)
58
+ * @returns Array of log entries with timestamps and content
59
+ */
60
+ getContainerLogs(containerId: string, host: HostConfig, options?: {
61
+ lines?: number;
62
+ since?: string;
63
+ until?: string;
64
+ stream?: "all" | "stdout" | "stderr";
65
+ }): Promise<LogEntry[]>;
66
+ /**
67
+ * Get resource usage statistics for a container.
68
+ *
69
+ * @param containerId - Container ID or name
70
+ * @param host - Host configuration where container is located
71
+ * @returns Resource statistics including CPU, memory, network, and I/O
72
+ */
73
+ getContainerStats(containerId: string, host: HostConfig): Promise<ContainerStats>;
74
+ /**
75
+ * Execute a command inside a container.
76
+ *
77
+ * @param containerId - Container ID or name
78
+ * @param host - Host configuration where container is located
79
+ * @param options - Exec options
80
+ * @param options.command - Command to execute (allowlisted)
81
+ * @param options.user - Run as specific user
82
+ * @param options.workdir - Working directory
83
+ * @param options.timeout - Execution timeout in ms (default 30s, max 5min)
84
+ * @returns Exec result with stdout, stderr, and exit code
85
+ * @throws Error if timeout exceeded or buffer limit exceeded
86
+ */
87
+ execContainer(containerId: string, host: HostConfig, options: {
88
+ command: string;
89
+ user?: string;
90
+ workdir?: string;
91
+ timeout?: number;
92
+ }): Promise<ContainerExecResult>;
93
+ /**
94
+ * Get running processes inside a container.
95
+ *
96
+ * @param containerId - Container ID or name
97
+ * @param host - Host configuration where container is located
98
+ * @returns Process list with titles and rows
99
+ */
100
+ getContainerProcesses(containerId: string, host: HostConfig): Promise<ContainerProcessList>;
101
+ /**
102
+ * Get detailed information about a container.
103
+ *
104
+ * @param containerId - Container ID or name
105
+ * @param host - Host configuration where container is located
106
+ * @returns Full container inspection data from Docker API
107
+ */
108
+ inspectContainer(containerId: string, host: HostConfig): Promise<DockerRawContainerInspectInfo>;
109
+ /**
110
+ * Find which host a container is running on.
111
+ * Searches across all provided hosts.
112
+ *
113
+ * @param containerId - Container ID or name to find
114
+ * @param hosts - Array of host configurations to search
115
+ * @returns Host config and container info if found, null otherwise
116
+ */
117
+ findContainerHost(containerId: string, hosts: HostConfig[]): Promise<{
118
+ host: HostConfig;
119
+ container: DockerRawContainerInfo;
120
+ } | null>;
121
+ /**
122
+ * Recreate a container with the same configuration.
123
+ * Optionally pulls the latest image before recreating.
124
+ *
125
+ * @param containerId - Container ID or name to recreate
126
+ * @param host - Host configuration where container is located
127
+ * @param options - Recreate options
128
+ * @param options.pull - Whether to pull latest image before recreating
129
+ * @returns Operation status and new container ID
130
+ */
131
+ recreateContainer(containerId: string, host: HostConfig, options?: {
132
+ pull?: boolean;
133
+ }): Promise<{
134
+ status: string;
135
+ containerId: string;
136
+ }>;
137
+ }
138
+ /**
139
+ * Image management operations.
140
+ * Provides methods for listing, pulling, removing, and building Docker images.
141
+ */
142
+ export interface IImageOperations {
143
+ /**
144
+ * List Docker images across multiple hosts with optional filtering.
145
+ *
146
+ * @param hosts - Array of host configurations to query
147
+ * @param options - Filtering options (dangling, reference, etc.)
148
+ * @returns Array of images with their details and host information
149
+ */
150
+ listImages(hosts: HostConfig[], options?: ListImagesOptions): Promise<ImageInfo[]>;
151
+ /**
152
+ * Pull a Docker image from a registry.
153
+ *
154
+ * @param imageName - Image name with optional tag (e.g., "nginx:latest")
155
+ * @param host - Host configuration where image should be pulled
156
+ * @returns Operation status
157
+ */
158
+ pullImage(imageName: string, host: HostConfig): Promise<{
159
+ status: string;
160
+ }>;
161
+ /**
162
+ * Remove a Docker image.
163
+ *
164
+ * @param imageId - Image ID or name to remove
165
+ * @param host - Host configuration where image is located
166
+ * @param options - Removal options
167
+ * @param options.force - Force removal even if image is in use
168
+ * @returns Operation status
169
+ */
170
+ removeImage(imageId: string, host: HostConfig, options?: {
171
+ force?: boolean;
172
+ }): Promise<{
173
+ status: string;
174
+ }>;
175
+ /**
176
+ * Build a Docker image from a Dockerfile.
177
+ *
178
+ * @param host - Host configuration where build should occur
179
+ * @param options - Build options
180
+ * @param options.context - Path to build context directory
181
+ * @param options.tag - Tag for the built image
182
+ * @param options.dockerfile - Path to Dockerfile (relative to context, default: "Dockerfile")
183
+ * @param options.noCache - Disable build cache
184
+ * @returns Operation status
185
+ */
186
+ buildImage(host: HostConfig, options: {
187
+ context: string;
188
+ tag: string;
189
+ dockerfile?: string;
190
+ noCache?: boolean;
191
+ }): Promise<{
192
+ status: string;
193
+ }>;
194
+ }
195
+ /**
196
+ * Docker resource operations (networks, volumes, cleanup).
197
+ * Provides methods for managing Docker resources and disk usage.
198
+ */
199
+ export interface IResourceOperations {
200
+ /**
201
+ * List Docker networks across multiple hosts.
202
+ *
203
+ * @param hosts - Array of host configurations to query
204
+ * @returns Array of network details with host information
205
+ */
206
+ listNetworks(hosts: HostConfig[]): Promise<DockerNetworkInfo[]>;
207
+ /**
208
+ * List Docker volumes across multiple hosts.
209
+ *
210
+ * @param hosts - Array of host configurations to query
211
+ * @returns Array of volume details with host information
212
+ */
213
+ listVolumes(hosts: HostConfig[]): Promise<DockerVolumeInfo[]>;
214
+ /**
215
+ * Get Docker disk usage information.
216
+ *
217
+ * @param host - Host configuration to query
218
+ * @returns Disk usage breakdown for images, containers, volumes, and build cache
219
+ */
220
+ getDockerDiskUsage(host: HostConfig): Promise<DockerDiskUsage>;
221
+ /**
222
+ * Remove unused Docker resources (prune operation).
223
+ * This is a destructive operation — callers must pass `force: true` to confirm.
224
+ *
225
+ * @param host - Host configuration where pruning should occur
226
+ * @param target - Resource type to prune (containers, images, volumes, networks, buildcache, all)
227
+ * @param options - Options for the prune operation
228
+ * @param options.force - Must be true to confirm destructive operation
229
+ * @returns Array of prune results showing what was removed and space reclaimed
230
+ * @throws Error if force is not true
231
+ */
232
+ pruneDocker(host: HostConfig, target: "containers" | "images" | "volumes" | "networks" | "buildcache" | "all", options?: {
233
+ force?: boolean;
234
+ }): Promise<PruneResult[]>;
235
+ }
236
+ /**
237
+ * Docker system information and status.
238
+ * Provides methods for checking Docker daemon status and configuration.
239
+ */
240
+ export interface IDockerSystemInfo {
241
+ /**
242
+ * Get Docker daemon system information.
243
+ *
244
+ * @param host - Host configuration to query
245
+ * @returns System info including version, OS, architecture, and resource limits
246
+ */
247
+ getDockerInfo(host: HostConfig): Promise<DockerSystemInfo>;
248
+ /**
249
+ * Get Docker daemon status and version info for multiple hosts.
250
+ *
251
+ * @param hosts - Array of host configurations to check
252
+ * @returns Array of host statuses with daemon info and reachability
253
+ */
254
+ getHostStatus(hosts: HostConfig[]): Promise<HostStatus[]>;
255
+ }
256
+ /**
257
+ * Low-level Docker client provider (internal use).
258
+ * Provides access to raw dockerode clients for advanced operations.
259
+ *
260
+ * @internal This interface is primarily for internal service implementations.
261
+ * Most consumers should use the higher-level operation interfaces instead.
262
+ */
263
+ export interface IDockerClientProvider {
264
+ /**
265
+ * Get a Docker client instance for the specified host configuration.
266
+ * Clients are cached per host to reuse connections.
267
+ *
268
+ * @param config - Host configuration containing connection details
269
+ * @returns Docker client instance (dockerode)
270
+ */
271
+ getDockerClient(config: HostConfig): Promise<Docker>;
272
+ /**
273
+ * Clear all cached Docker client connections.
274
+ * Useful for cleanup during shutdown or when connections need to be reset.
275
+ */
276
+ clearClients(): void;
277
+ }
278
+ /**
279
+ * Composed Docker contract for components that need full Docker capabilities.
280
+ * This is a type composition, not a monolithic interface declaration.
281
+ */
282
+ export type DockerOperations = IContainerOperations & IImageOperations & IResourceOperations & IDockerSystemInfo & IDockerClientProvider;
283
+ //# sourceMappingURL=docker-interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-interfaces.d.ts","sourceRoot":"","sources":["../../src/services/docker-interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Segregated Docker service interfaces following Interface Segregation Principle (ISP).
3
+ * These interfaces provide cohesive, focused Docker contracts.
4
+ *
5
+ * Each interface represents a specific area of Docker functionality:
6
+ * - IContainerOperations: Container lifecycle and inspection
7
+ * - IImageOperations: Image management and builds
8
+ * - IResourceOperations: Networks, volumes, and resource cleanup
9
+ * - IDockerSystemInfo: System information and status
10
+ * - IDockerClientProvider: Low-level client access (internal use)
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=docker-interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-interfaces.js","sourceRoot":"","sources":["../../src/services/docker-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}