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.
- package/README.md +1820 -147
- package/dist/constants.d.ts +10 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -8
- package/dist/constants.js.map +1 -1
- package/dist/events/emitter.d.ts +63 -0
- package/dist/events/emitter.d.ts.map +1 -0
- package/dist/events/emitter.js +112 -0
- package/dist/events/emitter.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +51 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +3 -0
- package/dist/events/types.js.map +1 -0
- package/dist/formatters/compose.d.ts +185 -0
- package/dist/formatters/compose.d.ts.map +1 -0
- package/dist/formatters/compose.js +397 -0
- package/dist/formatters/compose.js.map +1 -0
- package/dist/formatters/container.d.ts +84 -0
- package/dist/formatters/container.d.ts.map +1 -0
- package/dist/formatters/container.js +323 -0
- package/dist/formatters/container.js.map +1 -0
- package/dist/formatters/diagnostics.d.ts +20 -0
- package/dist/formatters/diagnostics.d.ts.map +1 -0
- package/dist/formatters/diagnostics.js +73 -0
- package/dist/formatters/diagnostics.js.map +1 -0
- package/dist/formatters/docker.d.ts +139 -0
- package/dist/formatters/docker.d.ts.map +1 -0
- package/dist/formatters/docker.js +216 -0
- package/dist/formatters/docker.js.map +1 -0
- package/dist/formatters/host.d.ts +137 -0
- package/dist/formatters/host.d.ts.map +1 -0
- package/dist/formatters/host.js +198 -0
- package/dist/formatters/host.js.map +1 -0
- package/dist/formatters/index.d.ts +17 -270
- package/dist/formatters/index.d.ts.map +1 -1
- package/dist/formatters/index.js +21 -456
- package/dist/formatters/index.js.map +1 -1
- package/dist/formatters/scout.d.ts +424 -0
- package/dist/formatters/scout.d.ts.map +1 -0
- package/dist/formatters/scout.js +687 -0
- package/dist/formatters/scout.js.map +1 -0
- package/dist/formatters/strategy.d.ts +105 -0
- package/dist/formatters/strategy.d.ts.map +1 -0
- package/dist/formatters/strategy.js +120 -0
- package/dist/formatters/strategy.js.map +1 -0
- package/dist/formatters/utils.d.ts +84 -0
- package/dist/formatters/utils.d.ts.map +1 -0
- package/dist/formatters/utils.js +129 -0
- package/dist/formatters/utils.js.map +1 -0
- package/dist/health-rate-limiter.d.ts +59 -0
- package/dist/health-rate-limiter.d.ts.map +1 -0
- package/dist/health-rate-limiter.js +159 -0
- package/dist/health-rate-limiter.js.map +1 -0
- package/dist/index.js +61 -100
- package/dist/index.js.map +1 -1
- package/dist/middleware/async-handler.d.ts +62 -0
- package/dist/middleware/async-handler.d.ts.map +1 -0
- package/dist/middleware/async-handler.js +58 -0
- package/dist/middleware/async-handler.js.map +1 -0
- package/dist/middleware/auth.d.ts +32 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +63 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/csrf-protection.d.ts +58 -0
- package/dist/middleware/csrf-protection.d.ts.map +1 -0
- package/dist/middleware/csrf-protection.js +123 -0
- package/dist/middleware/csrf-protection.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +49 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +90 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/error-mapper.d.ts +44 -0
- package/dist/middleware/error-mapper.d.ts.map +1 -0
- package/dist/middleware/error-mapper.js +127 -0
- package/dist/middleware/error-mapper.js.map +1 -0
- package/dist/middleware/index.d.ts +13 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +13 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/request-id.d.ts +22 -0
- package/dist/middleware/request-id.d.ts.map +1 -0
- package/dist/middleware/request-id.js +31 -0
- package/dist/middleware/request-id.js.map +1 -0
- package/dist/middleware/types.d.ts +33 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +2 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/schemas/common.d.ts +205 -8
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/common.js +290 -17
- package/dist/schemas/common.js.map +1 -1
- package/dist/schemas/flux/compose.d.ts +307 -44
- package/dist/schemas/flux/compose.d.ts.map +1 -1
- package/dist/schemas/flux/compose.js +74 -48
- package/dist/schemas/flux/compose.js.map +1 -1
- package/dist/schemas/flux/container.d.ts +423 -56
- package/dist/schemas/flux/container.d.ts.map +1 -1
- package/dist/schemas/flux/container.js +83 -61
- package/dist/schemas/flux/container.js.map +1 -1
- package/dist/schemas/flux/docker.d.ts +254 -37
- package/dist/schemas/flux/docker.d.ts.map +1 -1
- package/dist/schemas/flux/docker.js +69 -39
- package/dist/schemas/flux/docker.js.map +1 -1
- package/dist/schemas/flux/host.d.ts +312 -29
- package/dist/schemas/flux/host.d.ts.map +1 -1
- package/dist/schemas/flux/host.js +74 -31
- package/dist/schemas/flux/host.js.map +1 -1
- package/dist/schemas/flux/index.d.ts +503 -11
- package/dist/schemas/flux/index.d.ts.map +1 -1
- package/dist/schemas/flux/index.js +34 -70
- package/dist/schemas/flux/index.js.map +1 -1
- package/dist/schemas/host-config.d.ts +76 -0
- package/dist/schemas/host-config.d.ts.map +1 -0
- package/dist/schemas/host-config.js +105 -0
- package/dist/schemas/host-config.js.map +1 -0
- package/dist/schemas/scout/index.d.ts +80 -23
- package/dist/schemas/scout/index.d.ts.map +1 -1
- package/dist/schemas/scout/index.js +26 -11
- package/dist/schemas/scout/index.js.map +1 -1
- package/dist/schemas/scout/logs.d.ts +17 -5
- package/dist/schemas/scout/logs.d.ts.map +1 -1
- package/dist/schemas/scout/logs.js +41 -31
- package/dist/schemas/scout/logs.js.map +1 -1
- package/dist/schemas/scout/simple.d.ts +126 -11
- package/dist/schemas/scout/simple.d.ts.map +1 -1
- package/dist/schemas/scout/simple.js +112 -57
- package/dist/schemas/scout/simple.js.map +1 -1
- package/dist/schemas/scout/zfs.d.ts +17 -5
- package/dist/schemas/scout/zfs.d.ts.map +1 -1
- package/dist/schemas/scout/zfs.js +34 -25
- package/dist/schemas/scout/zfs.js.map +1 -1
- package/dist/services/cache-layer.d.ts +160 -0
- package/dist/services/cache-layer.d.ts.map +1 -0
- package/dist/services/cache-layer.js +138 -0
- package/dist/services/cache-layer.js.map +1 -0
- package/dist/services/compose-cache.d.ts +75 -0
- package/dist/services/compose-cache.d.ts.map +1 -0
- package/dist/services/compose-cache.js +178 -0
- package/dist/services/compose-cache.js.map +1 -0
- package/dist/services/compose-discovery.d.ts +46 -0
- package/dist/services/compose-discovery.d.ts.map +1 -0
- package/dist/services/compose-discovery.js +219 -0
- package/dist/services/compose-discovery.js.map +1 -0
- package/dist/services/compose-project-lister.d.ts +27 -0
- package/dist/services/compose-project-lister.d.ts.map +1 -0
- package/dist/services/compose-project-lister.js +71 -0
- package/dist/services/compose-project-lister.js.map +1 -0
- package/dist/services/compose-scanner.d.ts +63 -0
- package/dist/services/compose-scanner.d.ts.map +1 -0
- package/dist/services/compose-scanner.js +253 -0
- package/dist/services/compose-scanner.js.map +1 -0
- package/dist/services/compose.d.ts +64 -28
- package/dist/services/compose.d.ts.map +1 -1
- package/dist/services/compose.js +220 -98
- package/dist/services/compose.js.map +1 -1
- package/dist/services/config-loader.d.ts +23 -0
- package/dist/services/config-loader.d.ts.map +1 -0
- package/dist/services/config-loader.js +124 -0
- package/dist/services/config-loader.js.map +1 -0
- package/dist/services/config-service.d.ts +38 -0
- package/dist/services/config-service.d.ts.map +1 -0
- package/dist/services/config-service.js +225 -0
- package/dist/services/config-service.js.map +1 -0
- package/dist/services/container-host-map-cache.d.ts +121 -0
- package/dist/services/container-host-map-cache.d.ts.map +1 -0
- package/dist/services/container-host-map-cache.js +188 -0
- package/dist/services/container-host-map-cache.js.map +1 -0
- package/dist/services/container.d.ts +194 -6
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +386 -11
- package/dist/services/container.js.map +1 -1
- package/dist/services/diagnostics.d.ts +57 -0
- package/dist/services/diagnostics.d.ts.map +1 -0
- package/dist/services/diagnostics.js +271 -0
- package/dist/services/diagnostics.js.map +1 -0
- package/dist/services/docker/container-service.d.ts +123 -0
- package/dist/services/docker/container-service.d.ts.map +1 -0
- package/dist/services/docker/container-service.js +347 -0
- package/dist/services/docker/container-service.js.map +1 -0
- package/dist/services/docker/image-service.d.ts +82 -0
- package/dist/services/docker/image-service.d.ts.map +1 -0
- package/dist/services/docker/image-service.js +193 -0
- package/dist/services/docker/image-service.js.map +1 -0
- package/dist/services/docker/index.d.ts +80 -0
- package/dist/services/docker/index.d.ts.map +1 -0
- package/dist/services/docker/index.js +103 -0
- package/dist/services/docker/index.js.map +1 -0
- package/dist/services/docker/network-service.d.ts +22 -0
- package/dist/services/docker/network-service.d.ts.map +1 -0
- package/dist/services/docker/network-service.js +43 -0
- package/dist/services/docker/network-service.js.map +1 -0
- package/dist/services/docker/system-service.d.ts +49 -0
- package/dist/services/docker/system-service.d.ts.map +1 -0
- package/dist/services/docker/system-service.js +215 -0
- package/dist/services/docker/system-service.js.map +1 -0
- package/dist/services/docker/utils/client-factory.d.ts +56 -0
- package/dist/services/docker/utils/client-factory.d.ts.map +1 -0
- package/dist/services/docker/utils/client-factory.js +139 -0
- package/dist/services/docker/utils/client-factory.js.map +1 -0
- package/dist/services/docker/utils/client-manager.d.ts +88 -0
- package/dist/services/docker/utils/client-manager.d.ts.map +1 -0
- package/dist/services/docker/utils/client-manager.js +124 -0
- package/dist/services/docker/utils/client-manager.js.map +1 -0
- package/dist/services/docker/utils/exec-handler.d.ts +94 -0
- package/dist/services/docker/utils/exec-handler.d.ts.map +1 -0
- package/dist/services/docker/utils/exec-handler.js +197 -0
- package/dist/services/docker/utils/exec-handler.js.map +1 -0
- package/dist/services/docker/utils/formatters.d.ts +13 -0
- package/dist/services/docker/utils/formatters.d.ts.map +1 -0
- package/dist/services/docker/utils/formatters.js +33 -0
- package/dist/services/docker/utils/formatters.js.map +1 -0
- package/dist/services/docker/utils/log-parser.d.ts +10 -0
- package/dist/services/docker/utils/log-parser.d.ts.map +1 -0
- package/dist/services/docker/utils/log-parser.js +48 -0
- package/dist/services/docker/utils/log-parser.js.map +1 -0
- package/dist/services/docker/utils/stats-calculator.d.ts +68 -0
- package/dist/services/docker/utils/stats-calculator.d.ts.map +1 -0
- package/dist/services/docker/utils/stats-calculator.js +61 -0
- package/dist/services/docker/utils/stats-calculator.js.map +1 -0
- package/dist/services/docker/volume-service.d.ts +22 -0
- package/dist/services/docker/volume-service.d.ts.map +1 -0
- package/dist/services/docker/volume-service.js +48 -0
- package/dist/services/docker/volume-service.js.map +1 -0
- package/dist/services/docker-interfaces.d.ts +283 -0
- package/dist/services/docker-interfaces.d.ts.map +1 -0
- package/dist/services/docker-interfaces.js +13 -0
- package/dist/services/docker-interfaces.js.map +1 -0
- package/dist/services/docker.d.ts +42 -5
- package/dist/services/docker.d.ts.map +1 -1
- package/dist/services/docker.js +335 -127
- package/dist/services/docker.js.map +1 -1
- package/dist/services/file-service.d.ts +6 -2
- package/dist/services/file-service.d.ts.map +1 -1
- package/dist/services/file-service.js +156 -52
- package/dist/services/file-service.js.map +1 -1
- package/dist/services/host-config-repository.d.ts +133 -0
- package/dist/services/host-config-repository.d.ts.map +1 -0
- package/dist/services/host-config-repository.js +323 -0
- package/dist/services/host-config-repository.js.map +1 -0
- package/dist/services/host-resolver.d.ts +49 -0
- package/dist/services/host-resolver.d.ts.map +1 -0
- package/dist/services/host-resolver.js +176 -0
- package/dist/services/host-resolver.js.map +1 -0
- package/dist/services/interfaces.d.ts +61 -194
- package/dist/services/interfaces.d.ts.map +1 -1
- package/dist/services/local-executor.d.ts +31 -0
- package/dist/services/local-executor.d.ts.map +1 -0
- package/dist/services/local-executor.js +71 -0
- package/dist/services/local-executor.js.map +1 -0
- package/dist/services/ssh-config-loader.d.ts +35 -0
- package/dist/services/ssh-config-loader.d.ts.map +1 -0
- package/dist/services/ssh-config-loader.js +218 -0
- package/dist/services/ssh-config-loader.js.map +1 -0
- package/dist/services/ssh-pool.d.ts +26 -1
- package/dist/services/ssh-pool.d.ts.map +1 -1
- package/dist/services/ssh-pool.js +166 -25
- package/dist/services/ssh-pool.js.map +1 -1
- package/dist/services/ssh-service.d.ts +3 -0
- package/dist/services/ssh-service.d.ts.map +1 -1
- package/dist/services/ssh-service.js +53 -31
- package/dist/services/ssh-service.js.map +1 -1
- package/dist/services/ssh.d.ts +2 -6
- package/dist/services/ssh.d.ts.map +1 -1
- package/dist/services/ssh.js +9 -40
- package/dist/services/ssh.js.map +1 -1
- package/dist/tools/definitions/flux.d.ts +13 -0
- package/dist/tools/definitions/flux.d.ts.map +1 -0
- package/dist/tools/definitions/flux.js +101 -0
- package/dist/tools/definitions/flux.js.map +1 -0
- package/dist/tools/definitions/index.d.ts +8 -0
- package/dist/tools/definitions/index.d.ts.map +1 -0
- package/dist/tools/definitions/index.js +8 -0
- package/dist/tools/definitions/index.js.map +1 -0
- package/dist/tools/definitions/scout.d.ts +13 -0
- package/dist/tools/definitions/scout.d.ts.map +1 -0
- package/dist/tools/definitions/scout.js +78 -0
- package/dist/tools/definitions/scout.js.map +1 -0
- package/dist/tools/flux.d.ts +16 -8
- package/dist/tools/flux.d.ts.map +1 -1
- package/dist/tools/flux.js +27 -66
- package/dist/tools/flux.js.map +1 -1
- package/dist/tools/handlers/base-handler.d.ts +172 -0
- package/dist/tools/handlers/base-handler.d.ts.map +1 -0
- package/dist/tools/handlers/base-handler.js +234 -0
- package/dist/tools/handlers/base-handler.js.map +1 -0
- package/dist/tools/handlers/compose-handlers.d.ts +108 -0
- package/dist/tools/handlers/compose-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/compose-handlers.js +293 -0
- package/dist/tools/handlers/compose-handlers.js.map +1 -0
- package/dist/tools/handlers/compose-utils.d.ts +35 -0
- package/dist/tools/handlers/compose-utils.d.ts.map +1 -0
- package/dist/tools/handlers/compose-utils.js +76 -0
- package/dist/tools/handlers/compose-utils.js.map +1 -0
- package/dist/tools/handlers/compose.d.ts +23 -0
- package/dist/tools/handlers/compose.d.ts.map +1 -0
- package/dist/tools/handlers/compose.js +125 -0
- package/dist/tools/handlers/compose.js.map +1 -0
- package/dist/tools/handlers/container.d.ts +23 -0
- package/dist/tools/handlers/container.d.ts.map +1 -0
- package/dist/tools/handlers/container.js +333 -0
- package/dist/tools/handlers/container.js.map +1 -0
- package/dist/tools/handlers/docker.d.ts +24 -0
- package/dist/tools/handlers/docker.d.ts.map +1 -0
- package/dist/tools/handlers/docker.js +155 -0
- package/dist/tools/handlers/docker.js.map +1 -0
- package/dist/tools/handlers/host.d.ts +23 -0
- package/dist/tools/handlers/host.d.ts.map +1 -0
- package/dist/tools/handlers/host.js +196 -0
- package/dist/tools/handlers/host.js.map +1 -0
- package/dist/tools/handlers/scout-logs.d.ts +24 -0
- package/dist/tools/handlers/scout-logs.d.ts.map +1 -0
- package/dist/tools/handlers/scout-logs.js +119 -0
- package/dist/tools/handlers/scout-logs.js.map +1 -0
- package/dist/tools/handlers/scout-simple.d.ts +23 -0
- package/dist/tools/handlers/scout-simple.d.ts.map +1 -0
- package/dist/tools/handlers/scout-simple.js +286 -0
- package/dist/tools/handlers/scout-simple.js.map +1 -0
- package/dist/tools/handlers/scout-zfs.d.ts +23 -0
- package/dist/tools/handlers/scout-zfs.d.ts.map +1 -0
- package/dist/tools/handlers/scout-zfs.js +82 -0
- package/dist/tools/handlers/scout-zfs.js.map +1 -0
- package/dist/tools/index.d.ts +32 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +41 -35
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +135 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +151 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/scout.d.ts +16 -8
- package/dist/tools/scout.d.ts.map +1 -1
- package/dist/tools/scout.js +36 -78
- package/dist/tools/scout.js.map +1 -1
- package/dist/types.d.ts +629 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/command-security.d.ts +82 -0
- package/dist/utils/command-security.d.ts.map +1 -0
- package/dist/utils/command-security.js +122 -0
- package/dist/utils/command-security.js.map +1 -0
- package/dist/utils/error-sanitization.d.ts +77 -0
- package/dist/utils/error-sanitization.d.ts.map +1 -0
- package/dist/utils/error-sanitization.js +107 -0
- package/dist/utils/error-sanitization.js.map +1 -0
- package/dist/utils/errors.d.ts +30 -6
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +91 -12
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/help-handler.d.ts +23 -0
- package/dist/utils/help-handler.d.ts.map +1 -0
- package/dist/utils/help-handler.js +21 -0
- package/dist/utils/help-handler.js.map +1 -0
- package/dist/utils/help.d.ts +1 -1
- package/dist/utils/help.d.ts.map +1 -1
- package/dist/utils/help.js +57 -16
- package/dist/utils/help.js.map +1 -1
- package/dist/utils/host-utils.d.ts +31 -0
- package/dist/utils/host-utils.d.ts.map +1 -0
- package/dist/utils/host-utils.js +80 -0
- package/dist/utils/host-utils.js.map +1 -0
- package/dist/utils/index.d.ts +8 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +8 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/init-detection.d.ts +36 -0
- package/dist/utils/init-detection.d.ts.map +1 -0
- package/dist/utils/init-detection.js +79 -0
- package/dist/utils/init-detection.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +32 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pagination.d.ts +20 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +29 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/path-security.d.ts +132 -18
- package/dist/utils/path-security.d.ts.map +1 -1
- package/dist/utils/path-security.js +164 -35
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/sorting.d.ts +33 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/sorting.js +57 -0
- package/dist/utils/sorting.js.map +1 -0
- package/dist/utils/text-filters.d.ts +13 -0
- package/dist/utils/text-filters.d.ts.map +1 -0
- package/dist/utils/text-filters.js +18 -0
- package/dist/utils/text-filters.js.map +1 -0
- package/dist/utils/time.d.ts +11 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +13 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/validation.d.ts +25 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +56 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +45 -19
- package/dist/schemas/discriminator.d.ts +0 -20
- package/dist/schemas/discriminator.d.ts.map +0 -1
- package/dist/schemas/discriminator.js +0 -25
- package/dist/schemas/discriminator.js.map +0 -1
- package/dist/schemas/unified.d.ts +0 -674
- package/dist/schemas/unified.d.ts.map +0 -1
- package/dist/schemas/unified.js +0 -453
- package/dist/schemas/unified.js.map +0 -1
- package/dist/tools/unified.d.ts +0 -7
- package/dist/tools/unified.d.ts.map +0 -1
- package/dist/tools/unified.js +0 -827
- package/dist/tools/unified.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,93 +1,721 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for connecting to a Docker host in a multi-host homelab setup.
|
|
3
|
+
* Supports SSH tunneling, HTTP/HTTPS connections, and local socket connections.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const config: HostConfig = {
|
|
8
|
+
* name: "homelab-main",
|
|
9
|
+
* host: "192.168.1.100",
|
|
10
|
+
* protocol: "ssh",
|
|
11
|
+
* sshUser: "admin",
|
|
12
|
+
* sshKeyPath: "/home/user/.ssh/id_rsa",
|
|
13
|
+
* tags: ["production", "homelab"]
|
|
14
|
+
* };
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
1
17
|
export interface HostConfig {
|
|
18
|
+
/** Unique identifier for this host */
|
|
2
19
|
name: string;
|
|
20
|
+
/** Hostname or IP address of the Docker host */
|
|
3
21
|
host: string;
|
|
22
|
+
/** Port number for the connection (defaults based on protocol) */
|
|
4
23
|
port?: number;
|
|
24
|
+
/** Connection protocol (ssh is recommended for security) */
|
|
5
25
|
protocol: "http" | "https" | "ssh";
|
|
26
|
+
/** SSH username for SSH protocol connections */
|
|
6
27
|
sshUser?: string;
|
|
28
|
+
/** Path to SSH private key for authentication */
|
|
7
29
|
sshKeyPath?: string;
|
|
30
|
+
/** Allow root SSH access (required for systems like Unraid that only support root) */
|
|
31
|
+
allowRoot?: boolean;
|
|
32
|
+
/** Path to Docker socket for direct API access */
|
|
8
33
|
dockerSocketPath?: string;
|
|
34
|
+
/** Tags for filtering and organizing hosts */
|
|
9
35
|
tags?: string[];
|
|
36
|
+
/** Custom paths to search for docker-compose.yml files */
|
|
37
|
+
composeSearchPaths?: string[];
|
|
10
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Detailed information about a Docker container.
|
|
41
|
+
* Returned from Docker API queries and used throughout the system.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const container: ContainerInfo = {
|
|
46
|
+
* id: "abc123def456",
|
|
47
|
+
* name: "web-server",
|
|
48
|
+
* image: "nginx:latest",
|
|
49
|
+
* state: "running",
|
|
50
|
+
* status: "Up 2 hours",
|
|
51
|
+
* created: "2026-02-01T10:30:00Z",
|
|
52
|
+
* ports: [],
|
|
53
|
+
* labels: { "app": "nginx" },
|
|
54
|
+
* hostName: "homelab-main"
|
|
55
|
+
* };
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
11
58
|
export interface ContainerInfo {
|
|
59
|
+
/** Docker container ID (shortened hash) */
|
|
12
60
|
id: string;
|
|
61
|
+
/** Container name (without leading slash) */
|
|
13
62
|
name: string;
|
|
63
|
+
/** Docker image name and tag */
|
|
14
64
|
image: string;
|
|
65
|
+
/** Current container lifecycle state */
|
|
15
66
|
state: "running" | "paused" | "exited" | "created" | "restarting" | "removing" | "dead";
|
|
67
|
+
/** Human-readable status string (e.g., "Up 2 hours", "Exited (0) 5 minutes ago") */
|
|
16
68
|
status: string;
|
|
69
|
+
/** ISO 8601 timestamp when container was created */
|
|
17
70
|
created: string;
|
|
71
|
+
/** Port mappings for this container */
|
|
18
72
|
ports: PortBinding[];
|
|
73
|
+
/** Container labels (key-value metadata) */
|
|
19
74
|
labels: Record<string, string>;
|
|
75
|
+
/** Name of the host where this container is running */
|
|
20
76
|
hostName: string;
|
|
21
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Port mapping between container and host network.
|
|
80
|
+
* Represents a published port from a Docker container.
|
|
81
|
+
*/
|
|
22
82
|
export interface PortBinding {
|
|
83
|
+
/** Port number inside the container */
|
|
23
84
|
containerPort: number;
|
|
85
|
+
/** Port number on the host machine (if published) */
|
|
24
86
|
hostPort?: number;
|
|
87
|
+
/** Network protocol for this port binding */
|
|
25
88
|
protocol: "tcp" | "udp";
|
|
89
|
+
/** Host IP address to bind to (defaults to 0.0.0.0 if not specified) */
|
|
26
90
|
hostIp?: string;
|
|
27
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Real-time resource usage statistics for a running container.
|
|
94
|
+
* Used for monitoring and alerting on container performance.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const stats: ContainerStats = {
|
|
99
|
+
* containerId: "abc123",
|
|
100
|
+
* containerName: "web-server",
|
|
101
|
+
* cpuPercent: 15.5,
|
|
102
|
+
* memoryUsage: 536870912, // 512 MB
|
|
103
|
+
* memoryLimit: 1073741824, // 1 GB
|
|
104
|
+
* memoryPercent: 50.0,
|
|
105
|
+
* networkRx: 1048576, // 1 MB
|
|
106
|
+
* networkTx: 524288, // 512 KB
|
|
107
|
+
* blockRead: 2097152, // 2 MB
|
|
108
|
+
* blockWrite: 1048576 // 1 MB
|
|
109
|
+
* };
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
28
112
|
export interface ContainerStats {
|
|
113
|
+
/** Docker container ID */
|
|
29
114
|
containerId: string;
|
|
115
|
+
/** Container name */
|
|
30
116
|
containerName: string;
|
|
117
|
+
/** CPU usage as a percentage (0-100+) */
|
|
31
118
|
cpuPercent: number;
|
|
119
|
+
/** Current memory usage in bytes */
|
|
32
120
|
memoryUsage: number;
|
|
121
|
+
/** Memory limit in bytes (container or host limit) */
|
|
33
122
|
memoryLimit: number;
|
|
123
|
+
/** Memory usage as a percentage of limit (0-100) */
|
|
34
124
|
memoryPercent: number;
|
|
125
|
+
/** Total bytes received over network */
|
|
35
126
|
networkRx: number;
|
|
127
|
+
/** Total bytes transmitted over network */
|
|
36
128
|
networkTx: number;
|
|
129
|
+
/** Total bytes read from block devices */
|
|
37
130
|
blockRead: number;
|
|
131
|
+
/** Total bytes written to block devices */
|
|
38
132
|
blockWrite: number;
|
|
39
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Result of executing a command inside a Docker container.
|
|
136
|
+
* Contains output streams and exit status.
|
|
137
|
+
*/
|
|
138
|
+
export interface ContainerExecResult {
|
|
139
|
+
/** Standard output stream from the command */
|
|
140
|
+
stdout: string;
|
|
141
|
+
/** Standard error stream from the command */
|
|
142
|
+
stderr: string;
|
|
143
|
+
/** Exit code from the command (0 indicates success) */
|
|
144
|
+
exitCode: number;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Process list from inside a Docker container.
|
|
148
|
+
* Result of running 'ps' or equivalent process listing command.
|
|
149
|
+
*/
|
|
150
|
+
export interface ContainerProcessList {
|
|
151
|
+
/** Column headers for the process list (e.g., ["PID", "USER", "CMD"]) */
|
|
152
|
+
titles: string[];
|
|
153
|
+
/** Process data rows, each row matching the titles columns */
|
|
154
|
+
processes: string[][];
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Single log entry from a Docker container.
|
|
158
|
+
* Structured format for container log messages with metadata.
|
|
159
|
+
*/
|
|
40
160
|
export interface LogEntry {
|
|
161
|
+
/** ISO 8601 timestamp when the log was generated */
|
|
41
162
|
timestamp: string;
|
|
163
|
+
/** Output stream that produced this log entry */
|
|
42
164
|
stream: "stdout" | "stderr";
|
|
165
|
+
/** Log message content */
|
|
43
166
|
message: string;
|
|
44
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Aggregated health information for a service/container.
|
|
170
|
+
* Used for monitoring dashboards and health check endpoints.
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const health: ServiceHealth = {
|
|
175
|
+
* name: "web-server",
|
|
176
|
+
* host: "homelab-main",
|
|
177
|
+
* containerId: "abc123",
|
|
178
|
+
* state: "running",
|
|
179
|
+
* uptime: "2 days",
|
|
180
|
+
* restartCount: 0,
|
|
181
|
+
* healthStatus: "healthy",
|
|
182
|
+
* lastHealthCheck: "2026-02-03T10:30:00Z"
|
|
183
|
+
* };
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
45
186
|
export interface ServiceHealth {
|
|
187
|
+
/** Service/container name */
|
|
46
188
|
name: string;
|
|
189
|
+
/** Host where the service is running */
|
|
47
190
|
host: string;
|
|
191
|
+
/** Docker container ID */
|
|
48
192
|
containerId: string;
|
|
193
|
+
/** Current container state */
|
|
49
194
|
state: string;
|
|
195
|
+
/** Human-readable uptime duration */
|
|
50
196
|
uptime: string;
|
|
197
|
+
/** Number of times the container has restarted */
|
|
51
198
|
restartCount: number;
|
|
199
|
+
/** Docker health check status (if health check is configured) */
|
|
52
200
|
healthStatus?: "healthy" | "unhealthy" | "starting" | "none";
|
|
201
|
+
/** ISO 8601 timestamp of the last health check */
|
|
53
202
|
lastHealthCheck?: string;
|
|
54
203
|
}
|
|
55
204
|
export declare enum ResponseFormat {
|
|
56
205
|
JSON = "json",
|
|
57
206
|
MARKDOWN = "markdown"
|
|
58
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Metadata for paginated API responses.
|
|
210
|
+
* Provides information about the current page and navigation.
|
|
211
|
+
*/
|
|
59
212
|
export interface PaginationMeta {
|
|
213
|
+
/** Total number of items available across all pages */
|
|
60
214
|
total: number;
|
|
215
|
+
/** Number of items in the current page */
|
|
61
216
|
count: number;
|
|
217
|
+
/** Current offset position in the full result set */
|
|
62
218
|
offset: number;
|
|
219
|
+
/** Whether more items are available after this page */
|
|
63
220
|
hasMore: boolean;
|
|
221
|
+
/** Offset value to use for fetching the next page */
|
|
64
222
|
nextOffset?: number;
|
|
65
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Generic wrapper for paginated API responses.
|
|
226
|
+
* Contains items for the current page and pagination metadata.
|
|
227
|
+
*
|
|
228
|
+
* @typeParam T - Type of items in the paginated list
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* const response: PaginatedResponse<ContainerInfo> = {
|
|
233
|
+
* items: [container1, container2, container3],
|
|
234
|
+
* pagination: {
|
|
235
|
+
* total: 50,
|
|
236
|
+
* count: 3,
|
|
237
|
+
* offset: 0,
|
|
238
|
+
* hasMore: true,
|
|
239
|
+
* nextOffset: 3
|
|
240
|
+
* }
|
|
241
|
+
* };
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
66
244
|
export interface PaginatedResponse<T> {
|
|
245
|
+
/** Array of items for the current page */
|
|
67
246
|
items: T[];
|
|
247
|
+
/** Pagination metadata for navigation */
|
|
68
248
|
pagination: PaginationMeta;
|
|
69
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Connection status and summary for a Docker host.
|
|
252
|
+
* Used in overview dashboards and health monitoring.
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const status: HostStatus = {
|
|
257
|
+
* name: "homelab-main",
|
|
258
|
+
* host: "192.168.1.100",
|
|
259
|
+
* connected: true,
|
|
260
|
+
* containerCount: 15,
|
|
261
|
+
* runningCount: 12,
|
|
262
|
+
* };
|
|
263
|
+
* ```
|
|
264
|
+
*/
|
|
70
265
|
export interface HostStatus {
|
|
266
|
+
/** Host identifier */
|
|
71
267
|
name: string;
|
|
268
|
+
/** Hostname or IP address */
|
|
72
269
|
host: string;
|
|
270
|
+
/** Whether the host is currently reachable */
|
|
73
271
|
connected: boolean;
|
|
272
|
+
/** Total number of containers on this host */
|
|
74
273
|
containerCount: number;
|
|
274
|
+
/** Number of containers currently running */
|
|
75
275
|
runningCount: number;
|
|
276
|
+
/** Error message if connection failed */
|
|
76
277
|
error?: string;
|
|
77
278
|
}
|
|
78
|
-
export interface
|
|
279
|
+
export interface ComposeProjectSummary {
|
|
79
280
|
name: string;
|
|
80
281
|
host: string;
|
|
81
282
|
services: string[];
|
|
82
283
|
status: "running" | "partial" | "stopped";
|
|
83
284
|
configPath?: string;
|
|
84
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Information about a Docker image on a host.
|
|
288
|
+
* Includes metadata and usage information.
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* const image: ImageInfo = {
|
|
293
|
+
* id: "sha256:abc123...",
|
|
294
|
+
* tags: ["nginx:latest", "nginx:1.25"],
|
|
295
|
+
* size: 142606336, // bytes
|
|
296
|
+
* created: "2026-01-15T08:00:00Z",
|
|
297
|
+
* containers: 2,
|
|
298
|
+
* hostName: "homelab-main"
|
|
299
|
+
* };
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
85
302
|
export interface ImageInfo {
|
|
303
|
+
/** Docker image ID (full SHA256 hash) */
|
|
86
304
|
id: string;
|
|
305
|
+
/** Image tags (repository:tag format) */
|
|
87
306
|
tags: string[];
|
|
307
|
+
/** Image size in bytes */
|
|
88
308
|
size: number;
|
|
309
|
+
/** ISO 8601 timestamp when image was created */
|
|
89
310
|
created: string;
|
|
311
|
+
/** Number of containers using this image */
|
|
90
312
|
containers: number;
|
|
313
|
+
/** Name of the host where this image exists */
|
|
91
314
|
hostName: string;
|
|
92
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Information about a Docker network.
|
|
318
|
+
* Represents a network configuration on a Docker host.
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* ```typescript
|
|
322
|
+
* const network: DockerNetworkInfo = {
|
|
323
|
+
* id: "abc123def456",
|
|
324
|
+
* name: "my-network",
|
|
325
|
+
* driver: "bridge",
|
|
326
|
+
* scope: "local",
|
|
327
|
+
* created: "2026-02-01T10:00:00Z",
|
|
328
|
+
* internal: false,
|
|
329
|
+
* attachable: true,
|
|
330
|
+
* ingress: false,
|
|
331
|
+
* hostName: "homelab-main"
|
|
332
|
+
* };
|
|
333
|
+
* ```
|
|
334
|
+
*/
|
|
335
|
+
export interface DockerNetworkInfo {
|
|
336
|
+
/** Docker network ID */
|
|
337
|
+
id: string;
|
|
338
|
+
/** Network name */
|
|
339
|
+
name: string;
|
|
340
|
+
/** Network driver type (e.g., "bridge", "overlay", "host") */
|
|
341
|
+
driver: string;
|
|
342
|
+
/** Network scope ("local", "swarm", or "global") */
|
|
343
|
+
scope: string;
|
|
344
|
+
/** ISO 8601 timestamp when network was created */
|
|
345
|
+
created?: string;
|
|
346
|
+
/** Whether the network is internal (isolated from external networks) */
|
|
347
|
+
internal?: boolean;
|
|
348
|
+
/** Whether manually-started containers can attach to this network */
|
|
349
|
+
attachable?: boolean;
|
|
350
|
+
/** Whether this is the cluster-wide ingress network */
|
|
351
|
+
ingress?: boolean;
|
|
352
|
+
/** Name of the host where this network exists */
|
|
353
|
+
hostName: string;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Information about a Docker volume.
|
|
357
|
+
* Represents persistent storage managed by Docker.
|
|
358
|
+
*
|
|
359
|
+
* @example
|
|
360
|
+
* ```typescript
|
|
361
|
+
* const volume: DockerVolumeInfo = {
|
|
362
|
+
* name: "postgres-data",
|
|
363
|
+
* driver: "local",
|
|
364
|
+
* scope: "local",
|
|
365
|
+
* mountpoint: "/var/lib/docker/volumes/postgres-data/_data",
|
|
366
|
+
* createdAt: "2026-02-01T10:00:00Z",
|
|
367
|
+
* labels: { "app": "database" },
|
|
368
|
+
* hostName: "homelab-main"
|
|
369
|
+
* };
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
export interface DockerVolumeInfo {
|
|
373
|
+
/** Volume name */
|
|
374
|
+
name: string;
|
|
375
|
+
/** Volume driver (e.g., "local", "nfs") */
|
|
376
|
+
driver: string;
|
|
377
|
+
/** Volume scope ("local" or "global") */
|
|
378
|
+
scope: string;
|
|
379
|
+
/** Filesystem path where the volume is mounted on the host */
|
|
380
|
+
mountpoint?: string;
|
|
381
|
+
/** ISO 8601 timestamp when volume was created */
|
|
382
|
+
createdAt?: string;
|
|
383
|
+
/** Volume labels (key-value metadata) */
|
|
384
|
+
labels?: Record<string, string>;
|
|
385
|
+
/** Name of the host where this volume exists */
|
|
386
|
+
hostName: string;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Docker Compose project information.
|
|
390
|
+
* Represents a complete Compose stack with its services and configuration.
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* ```typescript
|
|
394
|
+
* const project: ComposeProject = {
|
|
395
|
+
* name: "webapp",
|
|
396
|
+
* status: "running",
|
|
397
|
+
* configFiles: ["/home/user/webapp/docker-compose.yml"],
|
|
398
|
+
* services: [
|
|
399
|
+
* { name: "web", status: "running", health: "healthy" },
|
|
400
|
+
* { name: "db", status: "running" }
|
|
401
|
+
* ],
|
|
402
|
+
* host: "homelab-main"
|
|
403
|
+
* };
|
|
404
|
+
* ```
|
|
405
|
+
*/
|
|
406
|
+
export interface ComposeProject {
|
|
407
|
+
/** Project name (derived from directory or set in compose file) */
|
|
408
|
+
name: string;
|
|
409
|
+
/** Overall status of all services in the project */
|
|
410
|
+
status: "running" | "partial" | "stopped" | "unknown";
|
|
411
|
+
/** Paths to compose configuration files used by this project */
|
|
412
|
+
configFiles: string[];
|
|
413
|
+
/** List of services defined in this project */
|
|
414
|
+
services: ComposeServiceInfo[];
|
|
415
|
+
/** Name of the host where this project is deployed */
|
|
416
|
+
host?: string;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Information about a single service within a Docker Compose project.
|
|
420
|
+
* Includes runtime status and port publishing information.
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* ```typescript
|
|
424
|
+
* const service: ComposeServiceInfo = {
|
|
425
|
+
* name: "web",
|
|
426
|
+
* status: "running",
|
|
427
|
+
* health: "healthy",
|
|
428
|
+
* publishers: [
|
|
429
|
+
* { publishedPort: 8080, targetPort: 80, protocol: "tcp" }
|
|
430
|
+
* ]
|
|
431
|
+
* };
|
|
432
|
+
* ```
|
|
433
|
+
*/
|
|
434
|
+
export interface ComposeServiceInfo {
|
|
435
|
+
/** Service name as defined in compose file */
|
|
436
|
+
name: string;
|
|
437
|
+
/** Current service status (e.g., "running", "exited", "created") */
|
|
438
|
+
status: string;
|
|
439
|
+
/** Health check status if configured */
|
|
440
|
+
health?: string;
|
|
441
|
+
/** Exit code if the service has stopped */
|
|
442
|
+
exitCode?: number;
|
|
443
|
+
/** Published port mappings for this service */
|
|
444
|
+
publishers?: Array<{
|
|
445
|
+
/** Port number exposed on the host */
|
|
446
|
+
publishedPort: number;
|
|
447
|
+
/** Port number inside the container */
|
|
448
|
+
targetPort: number;
|
|
449
|
+
/** Network protocol ("tcp" or "udp") */
|
|
450
|
+
protocol: string;
|
|
451
|
+
}>;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Options for listing Docker images.
|
|
455
|
+
* Controls filtering behavior when querying images across hosts.
|
|
456
|
+
*/
|
|
457
|
+
export interface ListImagesOptions {
|
|
458
|
+
/** If true, only return dangling (untagged) images */
|
|
459
|
+
danglingOnly?: boolean;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Docker system information response.
|
|
463
|
+
* Contains version, platform, and resource summary for a Docker host.
|
|
464
|
+
*
|
|
465
|
+
* @example
|
|
466
|
+
* ```typescript
|
|
467
|
+
* const info: DockerSystemInfo = {
|
|
468
|
+
* dockerVersion: "24.0.7",
|
|
469
|
+
* apiVersion: "1.43",
|
|
470
|
+
* os: "Ubuntu 22.04.3 LTS",
|
|
471
|
+
* arch: "x86_64",
|
|
472
|
+
* kernelVersion: "6.17.0-12-generic",
|
|
473
|
+
* cpus: 16,
|
|
474
|
+
* memoryBytes: 34359738368,
|
|
475
|
+
* storageDriver: "overlay2",
|
|
476
|
+
* rootDir: "/var/lib/docker",
|
|
477
|
+
* containersTotal: 25,
|
|
478
|
+
* containersRunning: 18,
|
|
479
|
+
* containersPaused: 0,
|
|
480
|
+
* containersStopped: 7,
|
|
481
|
+
* images: 42
|
|
482
|
+
* };
|
|
483
|
+
* ```
|
|
484
|
+
*/
|
|
485
|
+
export interface DockerSystemInfo {
|
|
486
|
+
/** Docker daemon version string */
|
|
487
|
+
dockerVersion: string;
|
|
488
|
+
/** Docker API version */
|
|
489
|
+
apiVersion: string;
|
|
490
|
+
/** Operating system name and version */
|
|
491
|
+
os: string;
|
|
492
|
+
/** CPU architecture (e.g., "x86_64", "aarch64") */
|
|
493
|
+
arch: string;
|
|
494
|
+
/** Linux kernel version */
|
|
495
|
+
kernelVersion: string;
|
|
496
|
+
/** Number of CPU cores available */
|
|
497
|
+
cpus: number;
|
|
498
|
+
/** Total memory in bytes */
|
|
499
|
+
memoryBytes: number;
|
|
500
|
+
/** Storage driver in use (e.g., "overlay2", "aufs") */
|
|
501
|
+
storageDriver: string;
|
|
502
|
+
/** Docker data root directory */
|
|
503
|
+
rootDir: string;
|
|
504
|
+
/** Total number of containers (all states) */
|
|
505
|
+
containersTotal: number;
|
|
506
|
+
/** Number of containers currently running */
|
|
507
|
+
containersRunning: number;
|
|
508
|
+
/** Number of containers currently paused */
|
|
509
|
+
containersPaused: number;
|
|
510
|
+
/** Number of containers currently stopped */
|
|
511
|
+
containersStopped: number;
|
|
512
|
+
/** Total number of images stored */
|
|
513
|
+
images: number;
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Docker disk usage response.
|
|
517
|
+
* Provides detailed breakdown of disk space used by Docker resources.
|
|
518
|
+
*
|
|
519
|
+
* @example
|
|
520
|
+
* ```typescript
|
|
521
|
+
* const usage: DockerDiskUsage = {
|
|
522
|
+
* images: {
|
|
523
|
+
* total: 50,
|
|
524
|
+
* active: 25,
|
|
525
|
+
* size: 10737418240,
|
|
526
|
+
* reclaimable: 5368709120
|
|
527
|
+
* },
|
|
528
|
+
* containers: {
|
|
529
|
+
* total: 30,
|
|
530
|
+
* running: 20,
|
|
531
|
+
* size: 1073741824,
|
|
532
|
+
* reclaimable: 536870912
|
|
533
|
+
* },
|
|
534
|
+
* volumes: {
|
|
535
|
+
* total: 15,
|
|
536
|
+
* active: 10,
|
|
537
|
+
* size: 2147483648,
|
|
538
|
+
* reclaimable: 1073741824
|
|
539
|
+
* },
|
|
540
|
+
* buildCache: {
|
|
541
|
+
* total: 100,
|
|
542
|
+
* size: 3221225472,
|
|
543
|
+
* reclaimable: 2147483648
|
|
544
|
+
* },
|
|
545
|
+
* totalSize: 17179869184,
|
|
546
|
+
* totalReclaimable: 9126805504
|
|
547
|
+
* };
|
|
548
|
+
* ```
|
|
549
|
+
*/
|
|
550
|
+
export interface DockerDiskUsage {
|
|
551
|
+
/** Image storage statistics */
|
|
552
|
+
images: {
|
|
553
|
+
/** Total number of images */
|
|
554
|
+
total: number;
|
|
555
|
+
/** Number of images in use by containers */
|
|
556
|
+
active: number;
|
|
557
|
+
/** Total size of all images in bytes */
|
|
558
|
+
size: number;
|
|
559
|
+
/** Reclaimable space from unused images in bytes */
|
|
560
|
+
reclaimable: number;
|
|
561
|
+
};
|
|
562
|
+
/** Container storage statistics */
|
|
563
|
+
containers: {
|
|
564
|
+
/** Total number of containers */
|
|
565
|
+
total: number;
|
|
566
|
+
/** Number of running containers */
|
|
567
|
+
running: number;
|
|
568
|
+
/** Total size of container writable layers in bytes */
|
|
569
|
+
size: number;
|
|
570
|
+
/** Reclaimable space from stopped containers in bytes */
|
|
571
|
+
reclaimable: number;
|
|
572
|
+
};
|
|
573
|
+
/** Volume storage statistics */
|
|
574
|
+
volumes: {
|
|
575
|
+
/** Total number of volumes */
|
|
576
|
+
total: number;
|
|
577
|
+
/** Number of volumes in use by containers */
|
|
578
|
+
active: number;
|
|
579
|
+
/** Total size of all volumes in bytes */
|
|
580
|
+
size: number;
|
|
581
|
+
/** Reclaimable space from unused volumes in bytes */
|
|
582
|
+
reclaimable: number;
|
|
583
|
+
};
|
|
584
|
+
/** Build cache statistics */
|
|
585
|
+
buildCache: {
|
|
586
|
+
/** Total number of build cache entries */
|
|
587
|
+
total: number;
|
|
588
|
+
/** Total size of build cache in bytes */
|
|
589
|
+
size: number;
|
|
590
|
+
/** Reclaimable space from build cache in bytes */
|
|
591
|
+
reclaimable: number;
|
|
592
|
+
};
|
|
593
|
+
/** Total disk space used by Docker in bytes */
|
|
594
|
+
totalSize: number;
|
|
595
|
+
/** Total reclaimable disk space in bytes */
|
|
596
|
+
totalReclaimable: number;
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Result of a Docker prune operation.
|
|
600
|
+
* Contains statistics about space reclaimed and items deleted.
|
|
601
|
+
*
|
|
602
|
+
* @example
|
|
603
|
+
* ```typescript
|
|
604
|
+
* const result: PruneResult = {
|
|
605
|
+
* type: "images",
|
|
606
|
+
* spaceReclaimed: 1073741824, // 1 GB
|
|
607
|
+
* itemsDeleted: 5,
|
|
608
|
+
* details: ["sha256:abc123...", "sha256:def456..."]
|
|
609
|
+
* };
|
|
610
|
+
* ```
|
|
611
|
+
*/
|
|
612
|
+
export interface PruneResult {
|
|
613
|
+
/** Type of resource that was pruned */
|
|
614
|
+
type: string;
|
|
615
|
+
/** Amount of disk space reclaimed in bytes */
|
|
616
|
+
spaceReclaimed: number;
|
|
617
|
+
/** Number of items deleted during prune */
|
|
618
|
+
itemsDeleted: number;
|
|
619
|
+
/** Optional array of deleted item identifiers */
|
|
620
|
+
details?: string[];
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Raw Docker container listing info from the Docker API.
|
|
624
|
+
* Project-level type to avoid leaking dockerode's Docker.ContainerInfo into public interfaces.
|
|
625
|
+
*
|
|
626
|
+
* This represents the data returned by `docker.listContainers()` and is used
|
|
627
|
+
* in container-to-host lookups and caching.
|
|
628
|
+
*/
|
|
629
|
+
export interface DockerRawContainerInfo {
|
|
630
|
+
/** Full container ID hash */
|
|
631
|
+
Id: string;
|
|
632
|
+
/** Container names (with leading slash, e.g., ["/my-container"]) */
|
|
633
|
+
Names: string[];
|
|
634
|
+
/** Image name used by the container */
|
|
635
|
+
Image: string;
|
|
636
|
+
/** Image ID hash */
|
|
637
|
+
ImageID: string;
|
|
638
|
+
/** Container command */
|
|
639
|
+
Command: string;
|
|
640
|
+
/** Creation timestamp (Unix epoch) */
|
|
641
|
+
Created: number;
|
|
642
|
+
/** Container state (e.g., "running", "exited") */
|
|
643
|
+
State: string;
|
|
644
|
+
/** Human-readable status string */
|
|
645
|
+
Status: string;
|
|
646
|
+
/** Port mappings */
|
|
647
|
+
Ports: Array<{
|
|
648
|
+
IP?: string;
|
|
649
|
+
PrivatePort: number;
|
|
650
|
+
PublicPort?: number;
|
|
651
|
+
Type: string;
|
|
652
|
+
}>;
|
|
653
|
+
/** Container labels */
|
|
654
|
+
Labels: Record<string, string>;
|
|
655
|
+
/** Mount points */
|
|
656
|
+
Mounts: Array<{
|
|
657
|
+
Type: string;
|
|
658
|
+
Name?: string;
|
|
659
|
+
Source: string;
|
|
660
|
+
Destination: string;
|
|
661
|
+
Driver?: string;
|
|
662
|
+
Mode: string;
|
|
663
|
+
RW: boolean;
|
|
664
|
+
}>;
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Raw Docker container inspection info from the Docker API.
|
|
668
|
+
* Project-level type to avoid leaking dockerode's Docker.ContainerInspectInfo into public interfaces.
|
|
669
|
+
*
|
|
670
|
+
* This represents the detailed data returned by `container.inspect()` and is used
|
|
671
|
+
* in the inspect handler and formatters.
|
|
672
|
+
*/
|
|
673
|
+
export interface DockerRawContainerInspectInfo {
|
|
674
|
+
/** Full container ID hash */
|
|
675
|
+
Id: string;
|
|
676
|
+
/** Container name (with leading slash) */
|
|
677
|
+
Name: string;
|
|
678
|
+
/** ISO 8601 creation timestamp */
|
|
679
|
+
Created: string;
|
|
680
|
+
/** Number of times the container has been restarted */
|
|
681
|
+
RestartCount: number;
|
|
682
|
+
/** Container state information */
|
|
683
|
+
State: {
|
|
684
|
+
Status: string;
|
|
685
|
+
Running: boolean;
|
|
686
|
+
Paused: boolean;
|
|
687
|
+
Restarting: boolean;
|
|
688
|
+
OOMKilled: boolean;
|
|
689
|
+
Dead: boolean;
|
|
690
|
+
Pid: number;
|
|
691
|
+
ExitCode: number;
|
|
692
|
+
Error: string;
|
|
693
|
+
StartedAt: string;
|
|
694
|
+
FinishedAt: string;
|
|
695
|
+
};
|
|
696
|
+
/** Container configuration */
|
|
697
|
+
Config: {
|
|
698
|
+
Image: string;
|
|
699
|
+
Cmd: string[] | null;
|
|
700
|
+
WorkingDir: string;
|
|
701
|
+
Env: string[] | null;
|
|
702
|
+
Labels: Record<string, string> | null;
|
|
703
|
+
};
|
|
704
|
+
/** Network settings */
|
|
705
|
+
NetworkSettings: {
|
|
706
|
+
Ports: Record<string, Array<{
|
|
707
|
+
HostIp: string;
|
|
708
|
+
HostPort: string;
|
|
709
|
+
}> | null>;
|
|
710
|
+
Networks: Record<string, unknown>;
|
|
711
|
+
};
|
|
712
|
+
/** Mount points */
|
|
713
|
+
Mounts: Array<{
|
|
714
|
+
Type: string;
|
|
715
|
+
Source: string;
|
|
716
|
+
Destination: string;
|
|
717
|
+
Mode: string;
|
|
718
|
+
RW: boolean;
|
|
719
|
+
}>;
|
|
720
|
+
}
|
|
93
721
|
//# sourceMappingURL=types.d.ts.map
|