synapse-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +607 -0
- package/dist/constants.d.ts +23 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +58 -0
- package/dist/constants.js.map +1 -0
- package/dist/formatters/index.d.ts +275 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +461 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +178 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/common.d.ts +48 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +69 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/discriminator.d.ts +20 -0
- package/dist/schemas/discriminator.d.ts.map +1 -0
- package/dist/schemas/discriminator.js +25 -0
- package/dist/schemas/discriminator.js.map +1 -0
- package/dist/schemas/flux/compose.d.ts +93 -0
- package/dist/schemas/flux/compose.d.ts.map +1 -0
- package/dist/schemas/flux/compose.js +112 -0
- package/dist/schemas/flux/compose.js.map +1 -0
- package/dist/schemas/flux/container.d.ts +144 -0
- package/dist/schemas/flux/container.d.ts.map +1 -0
- package/dist/schemas/flux/container.js +163 -0
- package/dist/schemas/flux/container.js.map +1 -0
- package/dist/schemas/flux/docker.d.ts +91 -0
- package/dist/schemas/flux/docker.d.ts.map +1 -0
- package/dist/schemas/flux/docker.js +101 -0
- package/dist/schemas/flux/docker.js.map +1 -0
- package/dist/schemas/flux/host.d.ts +61 -0
- package/dist/schemas/flux/host.d.ts.map +1 -0
- package/dist/schemas/flux/host.js +72 -0
- package/dist/schemas/flux/host.js.map +1 -0
- package/dist/schemas/flux/index.d.ts +20 -0
- package/dist/schemas/flux/index.d.ts.map +1 -0
- package/dist/schemas/flux/index.js +88 -0
- package/dist/schemas/flux/index.js.map +1 -0
- package/dist/schemas/index.d.ts +11 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +11 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/scout/index.d.ts +151 -0
- package/dist/schemas/scout/index.d.ts.map +1 -0
- package/dist/schemas/scout/index.js +41 -0
- package/dist/schemas/scout/index.js.map +1 -0
- package/dist/schemas/scout/logs.d.ts +48 -0
- package/dist/schemas/scout/logs.d.ts.map +1 -0
- package/dist/schemas/scout/logs.js +47 -0
- package/dist/schemas/scout/logs.js.map +1 -0
- package/dist/schemas/scout/simple.d.ts +68 -0
- package/dist/schemas/scout/simple.d.ts.map +1 -0
- package/dist/schemas/scout/simple.js +75 -0
- package/dist/schemas/scout/simple.js.map +1 -0
- package/dist/schemas/scout/zfs.d.ts +37 -0
- package/dist/schemas/scout/zfs.d.ts.map +1 -0
- package/dist/schemas/scout/zfs.js +36 -0
- package/dist/schemas/scout/zfs.js.map +1 -0
- package/dist/schemas/unified.d.ts +674 -0
- package/dist/schemas/unified.d.ts.map +1 -0
- package/dist/schemas/unified.js +453 -0
- package/dist/schemas/unified.js.map +1 -0
- package/dist/services/compose.d.ts +107 -0
- package/dist/services/compose.d.ts.map +1 -0
- package/dist/services/compose.js +308 -0
- package/dist/services/compose.js.map +1 -0
- package/dist/services/container.d.ts +69 -0
- package/dist/services/container.d.ts.map +1 -0
- package/dist/services/container.js +111 -0
- package/dist/services/container.js.map +1 -0
- package/dist/services/docker.d.ts +243 -0
- package/dist/services/docker.d.ts.map +1 -0
- package/dist/services/docker.js +812 -0
- package/dist/services/docker.js.map +1 -0
- package/dist/services/file-service.d.ts +79 -0
- package/dist/services/file-service.d.ts.map +1 -0
- package/dist/services/file-service.js +226 -0
- package/dist/services/file-service.js.map +1 -0
- package/dist/services/interfaces.d.ts +537 -0
- package/dist/services/interfaces.d.ts.map +1 -0
- package/dist/services/interfaces.js +2 -0
- package/dist/services/interfaces.js.map +1 -0
- package/dist/services/ssh-pool-exec.d.ts +10 -0
- package/dist/services/ssh-pool-exec.d.ts.map +1 -0
- package/dist/services/ssh-pool-exec.js +10 -0
- package/dist/services/ssh-pool-exec.js.map +1 -0
- package/dist/services/ssh-pool.d.ts +66 -0
- package/dist/services/ssh-pool.d.ts.map +1 -0
- package/dist/services/ssh-pool.js +253 -0
- package/dist/services/ssh-pool.js.map +1 -0
- package/dist/services/ssh-service.d.ts +39 -0
- package/dist/services/ssh-service.d.ts.map +1 -0
- package/dist/services/ssh-service.js +143 -0
- package/dist/services/ssh-service.js.map +1 -0
- package/dist/services/ssh.d.ts +37 -0
- package/dist/services/ssh.d.ts.map +1 -0
- package/dist/services/ssh.js +50 -0
- package/dist/services/ssh.js.map +1 -0
- package/dist/tools/flux.d.ts +14 -0
- package/dist/tools/flux.d.ts.map +1 -0
- package/dist/tools/flux.js +86 -0
- package/dist/tools/flux.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +43 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/scout.d.ts +14 -0
- package/dist/tools/scout.d.ts.map +1 -0
- package/dist/tools/scout.js +96 -0
- package/dist/tools/scout.js.map +1 -0
- package/dist/tools/unified.d.ts +7 -0
- package/dist/tools/unified.d.ts.map +1 -0
- package/dist/tools/unified.js +827 -0
- package/dist/tools/unified.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/errors.d.ts +60 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +131 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/help.d.ts +69 -0
- package/dist/utils/help.d.ts.map +1 -0
- package/dist/utils/help.js +259 -0
- package/dist/utils/help.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/path-security.d.ts +64 -0
- package/dist/utils/path-security.d.ts.map +1 -0
- package/dist/utils/path-security.js +138 -0
- package/dist/utils/path-security.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import Docker from "dockerode";
|
|
2
|
+
import { HostConfig, ContainerInfo, ContainerStats, HostStatus, LogEntry, ImageInfo } from "../types.js";
|
|
3
|
+
import type { IDockerService } from "./interfaces.js";
|
|
4
|
+
/**
|
|
5
|
+
* Check if a string looks like a Unix socket path
|
|
6
|
+
*/
|
|
7
|
+
export declare function isSocketPath(value: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* DockerService class implementing IDockerService interface
|
|
10
|
+
* Manages Docker client connections and operations across multiple hosts
|
|
11
|
+
*/
|
|
12
|
+
export declare class DockerService implements IDockerService {
|
|
13
|
+
private dockerFactory;
|
|
14
|
+
private clientCache;
|
|
15
|
+
constructor(dockerFactory?: (config: HostConfig) => Docker);
|
|
16
|
+
/**
|
|
17
|
+
* Get or create Docker client for a host
|
|
18
|
+
*/
|
|
19
|
+
getDockerClient(config: HostConfig): Docker;
|
|
20
|
+
/**
|
|
21
|
+
* Clears all cached Docker clients.
|
|
22
|
+
*
|
|
23
|
+
* Call this during application shutdown or when you need to force new connections
|
|
24
|
+
* to all Docker hosts. The cached client instances will be removed, and any
|
|
25
|
+
* underlying HTTP/socket connections will be cleaned up by garbage collection
|
|
26
|
+
* when the client objects are no longer referenced.
|
|
27
|
+
*
|
|
28
|
+
* Note: Dockerode clients do not have an explicit close() method. The HTTP agent
|
|
29
|
+
* connections are automatically managed and will be released by the Node.js runtime
|
|
30
|
+
* when the client objects are garbage collected.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Force fresh connections on next access
|
|
35
|
+
* dockerService.clearClients();
|
|
36
|
+
*
|
|
37
|
+
* // Or during shutdown
|
|
38
|
+
* process.on('SIGTERM', () => {
|
|
39
|
+
* dockerService.clearClients();
|
|
40
|
+
* process.exit(0);
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
clearClients(): void;
|
|
45
|
+
/**
|
|
46
|
+
* List containers across all hosts with filtering (parallel execution)
|
|
47
|
+
*/
|
|
48
|
+
listContainers(hosts: HostConfig[], options?: {
|
|
49
|
+
state?: "all" | "running" | "stopped" | "paused";
|
|
50
|
+
nameFilter?: string;
|
|
51
|
+
imageFilter?: string;
|
|
52
|
+
labelFilter?: string;
|
|
53
|
+
}): Promise<ContainerInfo[]>;
|
|
54
|
+
/**
|
|
55
|
+
* List containers on a single host (internal helper)
|
|
56
|
+
*/
|
|
57
|
+
private listContainersOnHost;
|
|
58
|
+
/**
|
|
59
|
+
* Find which host a container is on
|
|
60
|
+
*/
|
|
61
|
+
findContainerHost(containerId: string, hosts: HostConfig[]): Promise<{
|
|
62
|
+
host: HostConfig;
|
|
63
|
+
container: Docker.ContainerInfo;
|
|
64
|
+
} | null>;
|
|
65
|
+
/**
|
|
66
|
+
* Perform action on container
|
|
67
|
+
*/
|
|
68
|
+
containerAction(containerId: string, action: "start" | "stop" | "restart" | "pause" | "unpause", host: HostConfig): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Get container by ID or name
|
|
71
|
+
*/
|
|
72
|
+
private getContainer;
|
|
73
|
+
/**
|
|
74
|
+
* Get container logs
|
|
75
|
+
*/
|
|
76
|
+
getContainerLogs(containerId: string, host: HostConfig, options?: {
|
|
77
|
+
lines?: number;
|
|
78
|
+
since?: string;
|
|
79
|
+
until?: string;
|
|
80
|
+
stream?: "all" | "stdout" | "stderr";
|
|
81
|
+
}): Promise<LogEntry[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Get container stats
|
|
84
|
+
*/
|
|
85
|
+
getContainerStats(containerId: string, host: HostConfig): Promise<ContainerStats>;
|
|
86
|
+
/**
|
|
87
|
+
* Get host status overview (parallel execution)
|
|
88
|
+
*/
|
|
89
|
+
getHostStatus(hosts: HostConfig[]): Promise<HostStatus[]>;
|
|
90
|
+
/**
|
|
91
|
+
* Get status for a single host (internal helper)
|
|
92
|
+
*/
|
|
93
|
+
private getHostStatusSingle;
|
|
94
|
+
/**
|
|
95
|
+
* List images across all hosts (parallel execution)
|
|
96
|
+
*/
|
|
97
|
+
listImages(hosts: HostConfig[], options?: ListImagesOptions): Promise<ImageInfo[]>;
|
|
98
|
+
/**
|
|
99
|
+
* List images from a single host (internal helper)
|
|
100
|
+
*/
|
|
101
|
+
private listImagesOnHost;
|
|
102
|
+
/**
|
|
103
|
+
* Inspect container for detailed info
|
|
104
|
+
*/
|
|
105
|
+
inspectContainer(containerId: string, host: HostConfig): Promise<Docker.ContainerInspectInfo>;
|
|
106
|
+
/**
|
|
107
|
+
* Get Docker system info
|
|
108
|
+
*/
|
|
109
|
+
getDockerInfo(host: HostConfig): Promise<DockerSystemInfo>;
|
|
110
|
+
/**
|
|
111
|
+
* Get Docker disk usage (system df)
|
|
112
|
+
*/
|
|
113
|
+
getDockerDiskUsage(host: HostConfig): Promise<DockerDiskUsage>;
|
|
114
|
+
/**
|
|
115
|
+
* Prune Docker resources
|
|
116
|
+
*/
|
|
117
|
+
pruneDocker(host: HostConfig, target: "containers" | "images" | "volumes" | "networks" | "buildcache" | "all"): Promise<PruneResult[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Pull an image on a host
|
|
120
|
+
*/
|
|
121
|
+
pullImage(imageName: string, host: HostConfig): Promise<{
|
|
122
|
+
status: string;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Recreate a container (stop, remove, pull latest, start with same config)
|
|
126
|
+
*/
|
|
127
|
+
recreateContainer(containerId: string, host: HostConfig, options?: {
|
|
128
|
+
pull?: boolean;
|
|
129
|
+
}): Promise<{
|
|
130
|
+
status: string;
|
|
131
|
+
containerId: string;
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* Remove an image
|
|
135
|
+
*/
|
|
136
|
+
removeImage(imageId: string, host: HostConfig, options?: {
|
|
137
|
+
force?: boolean;
|
|
138
|
+
}): Promise<{
|
|
139
|
+
status: string;
|
|
140
|
+
}>;
|
|
141
|
+
/**
|
|
142
|
+
* Build an image from a Dockerfile (SSH-based for remote hosts)
|
|
143
|
+
*
|
|
144
|
+
* SECURITY: Implements path traversal protection (CWE-22)
|
|
145
|
+
* - Requires absolute paths for context and dockerfile
|
|
146
|
+
* - Rejects any path containing .. or . components
|
|
147
|
+
* - Validates character set to prevent injection
|
|
148
|
+
*
|
|
149
|
+
* @param host - Docker host configuration
|
|
150
|
+
* @param options - Build options (context, tag, dockerfile, noCache)
|
|
151
|
+
* @returns Promise resolving to build status
|
|
152
|
+
* @throws Error if paths contain directory traversal or invalid characters
|
|
153
|
+
*/
|
|
154
|
+
buildImage(host: HostConfig, options: {
|
|
155
|
+
context: string;
|
|
156
|
+
tag: string;
|
|
157
|
+
dockerfile?: string;
|
|
158
|
+
noCache?: boolean;
|
|
159
|
+
}): Promise<{
|
|
160
|
+
status: string;
|
|
161
|
+
}>;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Load host configurations from config file, env var, or defaults
|
|
165
|
+
*/
|
|
166
|
+
export declare function loadHostConfigs(): HostConfig[];
|
|
167
|
+
/**
|
|
168
|
+
* List images options
|
|
169
|
+
*/
|
|
170
|
+
export interface ListImagesOptions {
|
|
171
|
+
danglingOnly?: boolean;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Format bytes to human readable
|
|
175
|
+
*/
|
|
176
|
+
export declare function formatBytes(bytes: number): string;
|
|
177
|
+
/**
|
|
178
|
+
* Format uptime from created timestamp
|
|
179
|
+
*/
|
|
180
|
+
export declare function formatUptime(created: string): string;
|
|
181
|
+
/**
|
|
182
|
+
* Format Docker image ID (truncate sha256: prefix and limit to 12 chars)
|
|
183
|
+
*/
|
|
184
|
+
export declare function formatImageId(id: string): string;
|
|
185
|
+
/**
|
|
186
|
+
* Docker system info response
|
|
187
|
+
*/
|
|
188
|
+
export interface DockerSystemInfo {
|
|
189
|
+
dockerVersion: string;
|
|
190
|
+
apiVersion: string;
|
|
191
|
+
os: string;
|
|
192
|
+
arch: string;
|
|
193
|
+
kernelVersion: string;
|
|
194
|
+
cpus: number;
|
|
195
|
+
memoryBytes: number;
|
|
196
|
+
storageDriver: string;
|
|
197
|
+
rootDir: string;
|
|
198
|
+
containersTotal: number;
|
|
199
|
+
containersRunning: number;
|
|
200
|
+
containersPaused: number;
|
|
201
|
+
containersStopped: number;
|
|
202
|
+
images: number;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Docker disk usage response
|
|
206
|
+
*/
|
|
207
|
+
export interface DockerDiskUsage {
|
|
208
|
+
images: {
|
|
209
|
+
total: number;
|
|
210
|
+
active: number;
|
|
211
|
+
size: number;
|
|
212
|
+
reclaimable: number;
|
|
213
|
+
};
|
|
214
|
+
containers: {
|
|
215
|
+
total: number;
|
|
216
|
+
running: number;
|
|
217
|
+
size: number;
|
|
218
|
+
reclaimable: number;
|
|
219
|
+
};
|
|
220
|
+
volumes: {
|
|
221
|
+
total: number;
|
|
222
|
+
active: number;
|
|
223
|
+
size: number;
|
|
224
|
+
reclaimable: number;
|
|
225
|
+
};
|
|
226
|
+
buildCache: {
|
|
227
|
+
total: number;
|
|
228
|
+
size: number;
|
|
229
|
+
reclaimable: number;
|
|
230
|
+
};
|
|
231
|
+
totalSize: number;
|
|
232
|
+
totalReclaimable: number;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Prune result
|
|
236
|
+
*/
|
|
237
|
+
export interface PruneResult {
|
|
238
|
+
type: string;
|
|
239
|
+
spaceReclaimed: number;
|
|
240
|
+
itemsDeleted: number;
|
|
241
|
+
details?: string[];
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/services/docker.ts"],"names":[],"mappings":"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"}
|