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.
Files changed (138) hide show
  1. package/README.md +607 -0
  2. package/dist/constants.d.ts +23 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +58 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/formatters/index.d.ts +275 -0
  7. package/dist/formatters/index.d.ts.map +1 -0
  8. package/dist/formatters/index.js +461 -0
  9. package/dist/formatters/index.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +178 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/schemas/common.d.ts +48 -0
  15. package/dist/schemas/common.d.ts.map +1 -0
  16. package/dist/schemas/common.js +69 -0
  17. package/dist/schemas/common.js.map +1 -0
  18. package/dist/schemas/discriminator.d.ts +20 -0
  19. package/dist/schemas/discriminator.d.ts.map +1 -0
  20. package/dist/schemas/discriminator.js +25 -0
  21. package/dist/schemas/discriminator.js.map +1 -0
  22. package/dist/schemas/flux/compose.d.ts +93 -0
  23. package/dist/schemas/flux/compose.d.ts.map +1 -0
  24. package/dist/schemas/flux/compose.js +112 -0
  25. package/dist/schemas/flux/compose.js.map +1 -0
  26. package/dist/schemas/flux/container.d.ts +144 -0
  27. package/dist/schemas/flux/container.d.ts.map +1 -0
  28. package/dist/schemas/flux/container.js +163 -0
  29. package/dist/schemas/flux/container.js.map +1 -0
  30. package/dist/schemas/flux/docker.d.ts +91 -0
  31. package/dist/schemas/flux/docker.d.ts.map +1 -0
  32. package/dist/schemas/flux/docker.js +101 -0
  33. package/dist/schemas/flux/docker.js.map +1 -0
  34. package/dist/schemas/flux/host.d.ts +61 -0
  35. package/dist/schemas/flux/host.d.ts.map +1 -0
  36. package/dist/schemas/flux/host.js +72 -0
  37. package/dist/schemas/flux/host.js.map +1 -0
  38. package/dist/schemas/flux/index.d.ts +20 -0
  39. package/dist/schemas/flux/index.d.ts.map +1 -0
  40. package/dist/schemas/flux/index.js +88 -0
  41. package/dist/schemas/flux/index.js.map +1 -0
  42. package/dist/schemas/index.d.ts +11 -0
  43. package/dist/schemas/index.d.ts.map +1 -0
  44. package/dist/schemas/index.js +11 -0
  45. package/dist/schemas/index.js.map +1 -0
  46. package/dist/schemas/scout/index.d.ts +151 -0
  47. package/dist/schemas/scout/index.d.ts.map +1 -0
  48. package/dist/schemas/scout/index.js +41 -0
  49. package/dist/schemas/scout/index.js.map +1 -0
  50. package/dist/schemas/scout/logs.d.ts +48 -0
  51. package/dist/schemas/scout/logs.d.ts.map +1 -0
  52. package/dist/schemas/scout/logs.js +47 -0
  53. package/dist/schemas/scout/logs.js.map +1 -0
  54. package/dist/schemas/scout/simple.d.ts +68 -0
  55. package/dist/schemas/scout/simple.d.ts.map +1 -0
  56. package/dist/schemas/scout/simple.js +75 -0
  57. package/dist/schemas/scout/simple.js.map +1 -0
  58. package/dist/schemas/scout/zfs.d.ts +37 -0
  59. package/dist/schemas/scout/zfs.d.ts.map +1 -0
  60. package/dist/schemas/scout/zfs.js +36 -0
  61. package/dist/schemas/scout/zfs.js.map +1 -0
  62. package/dist/schemas/unified.d.ts +674 -0
  63. package/dist/schemas/unified.d.ts.map +1 -0
  64. package/dist/schemas/unified.js +453 -0
  65. package/dist/schemas/unified.js.map +1 -0
  66. package/dist/services/compose.d.ts +107 -0
  67. package/dist/services/compose.d.ts.map +1 -0
  68. package/dist/services/compose.js +308 -0
  69. package/dist/services/compose.js.map +1 -0
  70. package/dist/services/container.d.ts +69 -0
  71. package/dist/services/container.d.ts.map +1 -0
  72. package/dist/services/container.js +111 -0
  73. package/dist/services/container.js.map +1 -0
  74. package/dist/services/docker.d.ts +243 -0
  75. package/dist/services/docker.d.ts.map +1 -0
  76. package/dist/services/docker.js +812 -0
  77. package/dist/services/docker.js.map +1 -0
  78. package/dist/services/file-service.d.ts +79 -0
  79. package/dist/services/file-service.d.ts.map +1 -0
  80. package/dist/services/file-service.js +226 -0
  81. package/dist/services/file-service.js.map +1 -0
  82. package/dist/services/interfaces.d.ts +537 -0
  83. package/dist/services/interfaces.d.ts.map +1 -0
  84. package/dist/services/interfaces.js +2 -0
  85. package/dist/services/interfaces.js.map +1 -0
  86. package/dist/services/ssh-pool-exec.d.ts +10 -0
  87. package/dist/services/ssh-pool-exec.d.ts.map +1 -0
  88. package/dist/services/ssh-pool-exec.js +10 -0
  89. package/dist/services/ssh-pool-exec.js.map +1 -0
  90. package/dist/services/ssh-pool.d.ts +66 -0
  91. package/dist/services/ssh-pool.d.ts.map +1 -0
  92. package/dist/services/ssh-pool.js +253 -0
  93. package/dist/services/ssh-pool.js.map +1 -0
  94. package/dist/services/ssh-service.d.ts +39 -0
  95. package/dist/services/ssh-service.d.ts.map +1 -0
  96. package/dist/services/ssh-service.js +143 -0
  97. package/dist/services/ssh-service.js.map +1 -0
  98. package/dist/services/ssh.d.ts +37 -0
  99. package/dist/services/ssh.d.ts.map +1 -0
  100. package/dist/services/ssh.js +50 -0
  101. package/dist/services/ssh.js.map +1 -0
  102. package/dist/tools/flux.d.ts +14 -0
  103. package/dist/tools/flux.d.ts.map +1 -0
  104. package/dist/tools/flux.js +86 -0
  105. package/dist/tools/flux.js.map +1 -0
  106. package/dist/tools/index.d.ts +7 -0
  107. package/dist/tools/index.d.ts.map +1 -0
  108. package/dist/tools/index.js +43 -0
  109. package/dist/tools/index.js.map +1 -0
  110. package/dist/tools/scout.d.ts +14 -0
  111. package/dist/tools/scout.d.ts.map +1 -0
  112. package/dist/tools/scout.js +96 -0
  113. package/dist/tools/scout.js.map +1 -0
  114. package/dist/tools/unified.d.ts +7 -0
  115. package/dist/tools/unified.d.ts.map +1 -0
  116. package/dist/tools/unified.js +827 -0
  117. package/dist/tools/unified.js.map +1 -0
  118. package/dist/types.d.ts +93 -0
  119. package/dist/types.d.ts.map +1 -0
  120. package/dist/types.js +7 -0
  121. package/dist/types.js.map +1 -0
  122. package/dist/utils/errors.d.ts +60 -0
  123. package/dist/utils/errors.d.ts.map +1 -0
  124. package/dist/utils/errors.js +131 -0
  125. package/dist/utils/errors.js.map +1 -0
  126. package/dist/utils/help.d.ts +69 -0
  127. package/dist/utils/help.d.ts.map +1 -0
  128. package/dist/utils/help.js +259 -0
  129. package/dist/utils/help.js.map +1 -0
  130. package/dist/utils/index.d.ts +4 -0
  131. package/dist/utils/index.d.ts.map +1 -0
  132. package/dist/utils/index.js +4 -0
  133. package/dist/utils/index.js.map +1 -0
  134. package/dist/utils/path-security.d.ts +64 -0
  135. package/dist/utils/path-security.d.ts.map +1 -0
  136. package/dist/utils/path-security.js +138 -0
  137. package/dist/utils/path-security.js.map +1 -0
  138. package/package.json +85 -0
@@ -0,0 +1,453 @@
1
+ /**
2
+ * Unified Homelab Schema with Discriminated Union Optimization
3
+ *
4
+ * Performance characteristics:
5
+ * - Validation time: O(1) constant time via discriminated union
6
+ * - Average latency: <0.005ms per validation (3-4μs typical)
7
+ * - Improvement: Consistent performance across all 37 schemas (no worst-case degradation)
8
+ *
9
+ * Architecture:
10
+ * - Uses composite discriminator key: action_subaction (e.g., "container:list")
11
+ * - Automatically injected via z.preprocess() for backward compatibility
12
+ * - Supports all 37 action/subaction combinations across 6 action types
13
+ *
14
+ * Action types:
15
+ * - container: 12 subactions (list, start, stop, restart, pause, unpause, logs, stats, inspect, search, pull, recreate)
16
+ * - compose: 9 subactions (list, status, up, down, restart, logs, build, recreate, pull)
17
+ * - host: 2 subactions (status, resources)
18
+ * - docker: 3 subactions (info, df, prune)
19
+ * - image: 4 subactions (list, pull, build, remove)
20
+ * - scout: 7 subactions (read, list, tree, exec, find, transfer, diff)
21
+ */
22
+ import { z } from "zod";
23
+ import { ResponseFormat } from "../types.js";
24
+ import { DEFAULT_LIMIT, MAX_LIMIT, DEFAULT_LOG_LINES, MAX_LOG_LINES, DEFAULT_MAX_FILE_SIZE, MAX_FILE_SIZE_LIMIT, DEFAULT_COMMAND_TIMEOUT, MAX_COMMAND_TIMEOUT, DEFAULT_TREE_DEPTH, MAX_TREE_DEPTH, DEFAULT_FIND_LIMIT, MAX_FIND_LIMIT } from "../constants.js";
25
+ import { preprocessWithDiscriminator } from "./discriminator.js";
26
+ // ===== Base schemas =====
27
+ const responseFormatSchema = z
28
+ .nativeEnum(ResponseFormat)
29
+ .default(ResponseFormat.MARKDOWN)
30
+ .describe("Output format: 'markdown' or 'json'");
31
+ const paginationSchema = {
32
+ limit: z.number().int().min(1).max(MAX_LIMIT).default(DEFAULT_LIMIT),
33
+ offset: z.number().int().min(0).default(0)
34
+ };
35
+ // ===== Container subactions =====
36
+ const containerListSchema = z.object({
37
+ action_subaction: z.literal("container:list"),
38
+ action: z.literal("container"),
39
+ subaction: z.literal("list"),
40
+ host: z.string().optional(),
41
+ state: z.enum(["all", "running", "stopped", "paused"]).default("all"),
42
+ name_filter: z.string().optional(),
43
+ image_filter: z.string().optional(),
44
+ label_filter: z.string().optional(),
45
+ ...paginationSchema,
46
+ response_format: responseFormatSchema
47
+ });
48
+ // Individual container control schemas (for proper discrimination)
49
+ const containerStartSchema = z.object({
50
+ action_subaction: z.literal("container:start"),
51
+ action: z.literal("container"),
52
+ subaction: z.literal("start"),
53
+ container_id: z.string().min(1),
54
+ host: z.string().optional()
55
+ });
56
+ const containerStopSchema = z.object({
57
+ action_subaction: z.literal("container:stop"),
58
+ action: z.literal("container"),
59
+ subaction: z.literal("stop"),
60
+ container_id: z.string().min(1),
61
+ host: z.string().optional()
62
+ });
63
+ const containerRestartSchema = z.object({
64
+ action_subaction: z.literal("container:restart"),
65
+ action: z.literal("container"),
66
+ subaction: z.literal("restart"),
67
+ container_id: z.string().min(1),
68
+ host: z.string().optional()
69
+ });
70
+ const containerPauseSchema = z.object({
71
+ action_subaction: z.literal("container:pause"),
72
+ action: z.literal("container"),
73
+ subaction: z.literal("pause"),
74
+ container_id: z.string().min(1),
75
+ host: z.string().optional()
76
+ });
77
+ const containerUnpauseSchema = z.object({
78
+ action_subaction: z.literal("container:unpause"),
79
+ action: z.literal("container"),
80
+ subaction: z.literal("unpause"),
81
+ container_id: z.string().min(1),
82
+ host: z.string().optional()
83
+ });
84
+ const containerLogsSchema = z.object({
85
+ action_subaction: z.literal("container:logs"),
86
+ action: z.literal("container"),
87
+ subaction: z.literal("logs"),
88
+ container_id: z.string().min(1),
89
+ host: z.string().optional(),
90
+ lines: z.number().int().min(1).max(MAX_LOG_LINES).default(DEFAULT_LOG_LINES),
91
+ since: z.string().optional(),
92
+ until: z.string().optional(),
93
+ grep: z.string().optional(),
94
+ stream: z.enum(["all", "stdout", "stderr"]).default("all"),
95
+ response_format: responseFormatSchema
96
+ });
97
+ const containerStatsSchema = z.object({
98
+ action_subaction: z.literal("container:stats"),
99
+ action: z.literal("container"),
100
+ subaction: z.literal("stats"),
101
+ container_id: z.string().optional(),
102
+ host: z.string().optional(),
103
+ response_format: responseFormatSchema
104
+ });
105
+ const containerInspectSchema = z.object({
106
+ action_subaction: z.literal("container:inspect"),
107
+ action: z.literal("container"),
108
+ subaction: z.literal("inspect"),
109
+ container_id: z.string().min(1),
110
+ host: z.string().optional(),
111
+ summary: z
112
+ .boolean()
113
+ .default(true)
114
+ .describe("Return summary instead of full inspect (reduces output size)"),
115
+ response_format: responseFormatSchema
116
+ });
117
+ const containerSearchSchema = z.object({
118
+ action_subaction: z.literal("container:search"),
119
+ action: z.literal("container"),
120
+ subaction: z.literal("search"),
121
+ query: z.string().min(1),
122
+ host: z.string().optional(),
123
+ ...paginationSchema,
124
+ response_format: responseFormatSchema
125
+ });
126
+ const containerPullSchema = z.object({
127
+ action_subaction: z.literal("container:pull"),
128
+ action: z.literal("container"),
129
+ subaction: z.literal("pull"),
130
+ container_id: z.string().min(1),
131
+ host: z.string().optional()
132
+ });
133
+ const containerRecreateSchema = z.object({
134
+ action_subaction: z.literal("container:recreate"),
135
+ action: z.literal("container"),
136
+ subaction: z.literal("recreate"),
137
+ container_id: z.string().min(1),
138
+ host: z.string().optional(),
139
+ pull: z.boolean().default(true).describe("Pull latest image before recreating")
140
+ });
141
+ // ===== Compose subactions =====
142
+ const composeListSchema = z.object({
143
+ action_subaction: z.literal("compose:list"),
144
+ action: z.literal("compose"),
145
+ subaction: z.literal("list"),
146
+ host: z.string().min(1),
147
+ name_filter: z
148
+ .string()
149
+ .optional()
150
+ .describe("Filter projects by name (case-insensitive substring match)"),
151
+ ...paginationSchema,
152
+ response_format: responseFormatSchema
153
+ });
154
+ const composeStatusSchema = z.object({
155
+ action_subaction: z.literal("compose:status"),
156
+ action: z.literal("compose"),
157
+ subaction: z.literal("status"),
158
+ host: z.string().min(1),
159
+ project: z.string().min(1),
160
+ service_filter: z.string().optional().describe("Filter services by name"),
161
+ ...paginationSchema,
162
+ response_format: responseFormatSchema
163
+ });
164
+ const composeUpSchema = z.object({
165
+ action_subaction: z.literal("compose:up"),
166
+ action: z.literal("compose"),
167
+ subaction: z.literal("up"),
168
+ host: z.string().min(1),
169
+ project: z.string().min(1),
170
+ detach: z.boolean().default(true)
171
+ });
172
+ const composeDownSchema = z.object({
173
+ action_subaction: z.literal("compose:down"),
174
+ action: z.literal("compose"),
175
+ subaction: z.literal("down"),
176
+ host: z.string().min(1),
177
+ project: z.string().min(1),
178
+ remove_volumes: z.boolean().default(false)
179
+ });
180
+ const composeRestartSchema = z.object({
181
+ action_subaction: z.literal("compose:restart"),
182
+ action: z.literal("compose"),
183
+ subaction: z.literal("restart"),
184
+ host: z.string().min(1),
185
+ project: z.string().min(1)
186
+ });
187
+ const composeLogsSchema = z.object({
188
+ action_subaction: z.literal("compose:logs"),
189
+ action: z.literal("compose"),
190
+ subaction: z.literal("logs"),
191
+ host: z.string().min(1),
192
+ project: z.string().min(1),
193
+ service: z.string().optional(),
194
+ lines: z.number().int().min(1).max(MAX_LOG_LINES).default(DEFAULT_LOG_LINES),
195
+ response_format: responseFormatSchema
196
+ });
197
+ const composeBuildSchema = z.object({
198
+ action_subaction: z.literal("compose:build"),
199
+ action: z.literal("compose"),
200
+ subaction: z.literal("build"),
201
+ host: z.string().min(1),
202
+ project: z.string().min(1),
203
+ service: z.string().optional(),
204
+ no_cache: z.boolean().default(false)
205
+ });
206
+ const composeRecreateSchema = z.object({
207
+ action_subaction: z.literal("compose:recreate"),
208
+ action: z.literal("compose"),
209
+ subaction: z.literal("recreate"),
210
+ host: z.string().min(1),
211
+ project: z.string().min(1),
212
+ service: z.string().optional()
213
+ });
214
+ const composePullSchema = z.object({
215
+ action_subaction: z.literal("compose:pull"),
216
+ action: z.literal("compose"),
217
+ subaction: z.literal("pull"),
218
+ host: z.string().min(1),
219
+ project: z.string().min(1),
220
+ service: z.string().optional()
221
+ });
222
+ // ===== Host subactions =====
223
+ const hostStatusSchema = z.object({
224
+ action_subaction: z.literal("host:status"),
225
+ action: z.literal("host"),
226
+ subaction: z.literal("status"),
227
+ host: z.string().optional(),
228
+ response_format: responseFormatSchema
229
+ });
230
+ const hostResourcesSchema = z.object({
231
+ action_subaction: z.literal("host:resources"),
232
+ action: z.literal("host"),
233
+ subaction: z.literal("resources"),
234
+ host: z.string().optional(),
235
+ response_format: responseFormatSchema
236
+ });
237
+ // ===== Docker subactions =====
238
+ const dockerInfoSchema = z.object({
239
+ action_subaction: z.literal("docker:info"),
240
+ action: z.literal("docker"),
241
+ subaction: z.literal("info"),
242
+ host: z.string().min(1),
243
+ response_format: responseFormatSchema
244
+ });
245
+ const dockerDfSchema = z.object({
246
+ action_subaction: z.literal("docker:df"),
247
+ action: z.literal("docker"),
248
+ subaction: z.literal("df"),
249
+ host: z.string().min(1),
250
+ response_format: responseFormatSchema
251
+ });
252
+ const dockerPruneSchema = z.object({
253
+ action_subaction: z.literal("docker:prune"),
254
+ action: z.literal("docker"),
255
+ subaction: z.literal("prune"),
256
+ host: z.string().min(1),
257
+ prune_target: z.enum(["containers", "images", "volumes", "networks", "buildcache", "all"]),
258
+ force: z.boolean().default(false)
259
+ });
260
+ // ===== Image subactions =====
261
+ const imageListSchema = z.object({
262
+ action_subaction: z.literal("image:list"),
263
+ action: z.literal("image"),
264
+ subaction: z.literal("list"),
265
+ host: z.string().optional(),
266
+ dangling_only: z.boolean().default(false),
267
+ ...paginationSchema,
268
+ response_format: responseFormatSchema
269
+ });
270
+ const imagePullSchema = z.object({
271
+ action_subaction: z.literal("image:pull"),
272
+ action: z.literal("image"),
273
+ subaction: z.literal("pull"),
274
+ host: z.string().min(1),
275
+ image: z.string().min(1).describe("Image name with optional tag (e.g., 'nginx:latest')")
276
+ });
277
+ const imageBuildSchema = z.object({
278
+ action_subaction: z.literal("image:build"),
279
+ action: z.literal("image"),
280
+ subaction: z.literal("build"),
281
+ host: z.string().min(1),
282
+ context: z.string().min(1).describe("Path to build context directory"),
283
+ tag: z.string().min(1).describe("Image tag (e.g., 'myapp:v1')"),
284
+ dockerfile: z.string().optional().describe("Path to Dockerfile (default: context/Dockerfile)"),
285
+ no_cache: z.boolean().default(false)
286
+ });
287
+ const imageRemoveSchema = z.object({
288
+ action_subaction: z.literal("image:remove"),
289
+ action: z.literal("image"),
290
+ subaction: z.literal("remove"),
291
+ host: z.string().min(1),
292
+ image: z.string().min(1).describe("Image ID or name:tag"),
293
+ force: z.boolean().default(false)
294
+ });
295
+ // ===== Scout subactions =====
296
+ const scoutReadSchema = z.object({
297
+ action_subaction: z.literal("scout:read"),
298
+ action: z.literal("scout"),
299
+ subaction: z.literal("read"),
300
+ host: z.string().min(1).describe("Target host name"),
301
+ path: z.string().min(1).describe("Absolute path to file"),
302
+ max_size: z
303
+ .number()
304
+ .int()
305
+ .min(1)
306
+ .max(MAX_FILE_SIZE_LIMIT)
307
+ .default(DEFAULT_MAX_FILE_SIZE)
308
+ .describe("Maximum file size to read in bytes"),
309
+ response_format: responseFormatSchema
310
+ });
311
+ const scoutListSchema = z.object({
312
+ action_subaction: z.literal("scout:list"),
313
+ action: z.literal("scout"),
314
+ subaction: z.literal("list"),
315
+ host: z.string().min(1).describe("Target host name"),
316
+ path: z.string().min(1).describe("Absolute path to directory"),
317
+ all: z.boolean().default(false).describe("Include hidden files"),
318
+ response_format: responseFormatSchema
319
+ });
320
+ const scoutTreeSchema = z.object({
321
+ action_subaction: z.literal("scout:tree"),
322
+ action: z.literal("scout"),
323
+ subaction: z.literal("tree"),
324
+ host: z.string().min(1).describe("Target host name"),
325
+ path: z.string().min(1).describe("Absolute path to directory"),
326
+ depth: z
327
+ .number()
328
+ .int()
329
+ .min(1)
330
+ .max(MAX_TREE_DEPTH)
331
+ .default(DEFAULT_TREE_DEPTH)
332
+ .describe("Maximum depth to traverse"),
333
+ response_format: responseFormatSchema
334
+ });
335
+ const scoutExecSchema = z.object({
336
+ action_subaction: z.literal("scout:exec"),
337
+ action: z.literal("scout"),
338
+ subaction: z.literal("exec"),
339
+ host: z.string().min(1).describe("Target host name"),
340
+ path: z.string().min(1).describe("Working directory for command"),
341
+ command: z.string().min(1).describe("Command to execute"),
342
+ timeout: z
343
+ .number()
344
+ .int()
345
+ .min(1000)
346
+ .max(MAX_COMMAND_TIMEOUT)
347
+ .default(DEFAULT_COMMAND_TIMEOUT)
348
+ .describe("Command timeout in milliseconds"),
349
+ response_format: responseFormatSchema
350
+ });
351
+ const scoutFindSchema = z.object({
352
+ action_subaction: z.literal("scout:find"),
353
+ action: z.literal("scout"),
354
+ subaction: z.literal("find"),
355
+ host: z.string().min(1).describe("Target host name"),
356
+ path: z.string().min(1).describe("Starting directory for search"),
357
+ pattern: z.string().min(1).describe("Filename pattern (glob)"),
358
+ type: z.enum(["f", "d", "l"]).optional().describe("File type: f=file, d=directory, l=symlink"),
359
+ max_depth: z
360
+ .number()
361
+ .int()
362
+ .min(1)
363
+ .max(MAX_TREE_DEPTH)
364
+ .optional()
365
+ .describe("Maximum search depth"),
366
+ limit: z
367
+ .number()
368
+ .int()
369
+ .min(1)
370
+ .max(MAX_FIND_LIMIT)
371
+ .default(DEFAULT_FIND_LIMIT)
372
+ .describe("Maximum results to return"),
373
+ response_format: responseFormatSchema
374
+ });
375
+ const scoutTransferSchema = z.object({
376
+ action_subaction: z.literal("scout:transfer"),
377
+ action: z.literal("scout"),
378
+ subaction: z.literal("transfer"),
379
+ source_host: z.string().min(1).describe("Source host name"),
380
+ source_path: z.string().min(1).describe("Source file path"),
381
+ target_host: z.string().min(1).describe("Target host name"),
382
+ target_path: z.string().min(1).describe("Target file path or directory")
383
+ });
384
+ const scoutDiffSchema = z.object({
385
+ action_subaction: z.literal("scout:diff"),
386
+ action: z.literal("scout"),
387
+ subaction: z.literal("diff"),
388
+ host1: z.string().min(1).describe("First host name"),
389
+ path1: z.string().min(1).describe("First file path"),
390
+ host2: z.string().min(1).describe("Second host name"),
391
+ path2: z.string().min(1).describe("Second file path"),
392
+ context_lines: z
393
+ .number()
394
+ .int()
395
+ .min(0)
396
+ .max(20)
397
+ .default(3)
398
+ .describe("Context lines around changes"),
399
+ response_format: responseFormatSchema
400
+ });
401
+ // ===== Unified schema using z.discriminatedUnion for O(1) lookup =====
402
+ // Uses action_subaction composite key as discriminator for constant-time schema lookup
403
+ // instead of O(n) sequential validation with z.union()
404
+ const UnifiedHomelabUnion = z.discriminatedUnion("action_subaction", [
405
+ // Container actions (12 schemas)
406
+ containerListSchema,
407
+ containerStartSchema,
408
+ containerStopSchema,
409
+ containerRestartSchema,
410
+ containerPauseSchema,
411
+ containerUnpauseSchema,
412
+ containerLogsSchema,
413
+ containerStatsSchema,
414
+ containerInspectSchema,
415
+ containerSearchSchema,
416
+ containerPullSchema,
417
+ containerRecreateSchema,
418
+ // Compose actions (9 schemas)
419
+ composeListSchema,
420
+ composeStatusSchema,
421
+ composeUpSchema,
422
+ composeDownSchema,
423
+ composeRestartSchema,
424
+ composeLogsSchema,
425
+ composeBuildSchema,
426
+ composeRecreateSchema,
427
+ composePullSchema,
428
+ // Host actions (2 schemas)
429
+ hostStatusSchema,
430
+ hostResourcesSchema,
431
+ // Docker actions (3 schemas)
432
+ dockerInfoSchema,
433
+ dockerDfSchema,
434
+ dockerPruneSchema,
435
+ // Image actions (4 schemas)
436
+ imageListSchema,
437
+ imagePullSchema,
438
+ imageBuildSchema,
439
+ imageRemoveSchema,
440
+ // Scout actions (7 schemas)
441
+ scoutReadSchema,
442
+ scoutListSchema,
443
+ scoutTreeSchema,
444
+ scoutExecSchema,
445
+ scoutFindSchema,
446
+ scoutTransferSchema,
447
+ scoutDiffSchema
448
+ ]);
449
+ // Export with preprocess wrapper to automatically inject discriminator
450
+ export const UnifiedHomelabSchema = z.preprocess(preprocessWithDiscriminator, UnifiedHomelabUnion);
451
+ // Re-export individual schemas for type narrowing
452
+ export { containerListSchema, containerStartSchema, containerStopSchema, containerRestartSchema, containerPauseSchema, containerUnpauseSchema, containerLogsSchema, containerStatsSchema, containerInspectSchema, containerSearchSchema, containerPullSchema, containerRecreateSchema, composeListSchema, composeStatusSchema, composeUpSchema, composeDownSchema, composeRestartSchema, composeLogsSchema, composeBuildSchema, composeRecreateSchema, composePullSchema, hostStatusSchema, hostResourcesSchema, dockerInfoSchema, dockerDfSchema, dockerPruneSchema, imageListSchema, imagePullSchema, imageBuildSchema, imageRemoveSchema, scoutReadSchema, scoutListSchema, scoutTreeSchema, scoutExecSchema, scoutFindSchema, scoutTransferSchema, scoutDiffSchema };
453
+ //# sourceMappingURL=unified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified.js","sourceRoot":"","sources":["../../src/schemas/unified.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { HostConfig } from "../types.js";
2
+ import type { ISSHService, IComposeService } from "./interfaces.js";
3
+ /**
4
+ * Validate Docker Compose project name
5
+ * Project names must be alphanumeric with hyphens and underscores only
6
+ */
7
+ export declare function validateProjectName(name: string): void;
8
+ /**
9
+ * Compose project status
10
+ */
11
+ export interface ComposeProject {
12
+ name: string;
13
+ status: "running" | "partial" | "stopped" | "unknown";
14
+ configFiles: string[];
15
+ services: ComposeServiceInfo[];
16
+ }
17
+ /**
18
+ * Compose service info
19
+ */
20
+ export interface ComposeServiceInfo {
21
+ name: string;
22
+ status: string;
23
+ health?: string;
24
+ exitCode?: number;
25
+ publishers?: Array<{
26
+ publishedPort: number;
27
+ targetPort: number;
28
+ protocol: string;
29
+ }>;
30
+ }
31
+ /**
32
+ * ComposeService class for managing Docker Compose operations with dependency injection
33
+ */
34
+ export declare class ComposeService implements IComposeService {
35
+ private sshService;
36
+ constructor(sshService: ISSHService);
37
+ /**
38
+ * Execute docker compose command on remote host using connection pool
39
+ *
40
+ * SECURITY: Arguments are validated before execution to prevent command injection.
41
+ * Uses SSH connection pool for better performance.
42
+ *
43
+ * @param host - Host configuration with SSH details
44
+ * @param project - Docker Compose project name (validated, alphanumeric only)
45
+ * @param action - Compose action (up, down, restart, etc.)
46
+ * @param extraArgs - Additional arguments (validated for shell metacharacters)
47
+ * @returns Command output
48
+ * @throws {Error} If validation fails or SSH execution fails
49
+ */
50
+ composeExec(host: HostConfig, project: string, action: string, extraArgs?: string[]): Promise<string>;
51
+ /**
52
+ * List all compose projects on a host using connection pool
53
+ */
54
+ listComposeProjects(host: HostConfig): Promise<ComposeProject[]>;
55
+ /**
56
+ * Get detailed status of a compose project using connection pool
57
+ */
58
+ getComposeStatus(host: HostConfig, project: string): Promise<ComposeProject>;
59
+ /**
60
+ * Start a compose project
61
+ */
62
+ composeUp(host: HostConfig, project: string, detach?: boolean): Promise<string>;
63
+ /**
64
+ * Stop a compose project
65
+ */
66
+ composeDown(host: HostConfig, project: string, removeVolumes?: boolean): Promise<string>;
67
+ /**
68
+ * Restart a compose project
69
+ */
70
+ composeRestart(host: HostConfig, project: string): Promise<string>;
71
+ /**
72
+ * Get logs from a compose project
73
+ */
74
+ composeLogs(host: HostConfig, project: string, options?: {
75
+ tail?: number;
76
+ follow?: boolean;
77
+ timestamps?: boolean;
78
+ since?: string;
79
+ until?: string;
80
+ services?: string[];
81
+ }): Promise<string>;
82
+ /**
83
+ * Build images for a compose project
84
+ */
85
+ composeBuild(host: HostConfig, project: string, options?: {
86
+ service?: string;
87
+ noCache?: boolean;
88
+ pull?: boolean;
89
+ }): Promise<string>;
90
+ /**
91
+ * Pull images for a compose project
92
+ */
93
+ composePull(host: HostConfig, project: string, options?: {
94
+ service?: string;
95
+ ignorePullFailures?: boolean;
96
+ quiet?: boolean;
97
+ }): Promise<string>;
98
+ /**
99
+ * Recreate containers for a compose project (force recreate)
100
+ */
101
+ composeRecreate(host: HostConfig, project: string, options?: {
102
+ service?: string;
103
+ forceRecreate?: boolean;
104
+ noDeps?: boolean;
105
+ }): Promise<string>;
106
+ }
107
+ //# sourceMappingURL=compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAItD;AA0BD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AA4CD;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IACxC,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,WAAW;IAE3C;;;;;;;;;;;;OAYG;IACG,WAAW,CACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,MAAM,CAAC;IAqBlB;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsCtE;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuFlF;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlF;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5F;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,GACL,OAAO,CAAC,MAAM,CAAC;IAoClB;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GACpE,OAAO,CAAC,MAAM,CAAC;IAqBlB;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAChF,OAAO,CAAC,MAAM,CAAC;IAqBlB;;OAEG;IACG,eAAe,CACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAC5E,OAAO,CAAC,MAAM,CAAC;CAoBnB"}