synapse-mcp 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/README.md +1820 -147
  2. package/dist/constants.d.ts +10 -4
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +18 -8
  5. package/dist/constants.js.map +1 -1
  6. package/dist/events/emitter.d.ts +63 -0
  7. package/dist/events/emitter.d.ts.map +1 -0
  8. package/dist/events/emitter.js +112 -0
  9. package/dist/events/emitter.js.map +1 -0
  10. package/dist/events/index.d.ts +3 -0
  11. package/dist/events/index.d.ts.map +1 -0
  12. package/dist/events/index.js +3 -0
  13. package/dist/events/index.js.map +1 -0
  14. package/dist/events/types.d.ts +51 -0
  15. package/dist/events/types.d.ts.map +1 -0
  16. package/dist/events/types.js +3 -0
  17. package/dist/events/types.js.map +1 -0
  18. package/dist/formatters/compose.d.ts +185 -0
  19. package/dist/formatters/compose.d.ts.map +1 -0
  20. package/dist/formatters/compose.js +397 -0
  21. package/dist/formatters/compose.js.map +1 -0
  22. package/dist/formatters/container.d.ts +84 -0
  23. package/dist/formatters/container.d.ts.map +1 -0
  24. package/dist/formatters/container.js +323 -0
  25. package/dist/formatters/container.js.map +1 -0
  26. package/dist/formatters/diagnostics.d.ts +20 -0
  27. package/dist/formatters/diagnostics.d.ts.map +1 -0
  28. package/dist/formatters/diagnostics.js +73 -0
  29. package/dist/formatters/diagnostics.js.map +1 -0
  30. package/dist/formatters/docker.d.ts +139 -0
  31. package/dist/formatters/docker.d.ts.map +1 -0
  32. package/dist/formatters/docker.js +216 -0
  33. package/dist/formatters/docker.js.map +1 -0
  34. package/dist/formatters/host.d.ts +137 -0
  35. package/dist/formatters/host.d.ts.map +1 -0
  36. package/dist/formatters/host.js +198 -0
  37. package/dist/formatters/host.js.map +1 -0
  38. package/dist/formatters/index.d.ts +17 -270
  39. package/dist/formatters/index.d.ts.map +1 -1
  40. package/dist/formatters/index.js +21 -456
  41. package/dist/formatters/index.js.map +1 -1
  42. package/dist/formatters/scout.d.ts +424 -0
  43. package/dist/formatters/scout.d.ts.map +1 -0
  44. package/dist/formatters/scout.js +687 -0
  45. package/dist/formatters/scout.js.map +1 -0
  46. package/dist/formatters/strategy.d.ts +105 -0
  47. package/dist/formatters/strategy.d.ts.map +1 -0
  48. package/dist/formatters/strategy.js +120 -0
  49. package/dist/formatters/strategy.js.map +1 -0
  50. package/dist/formatters/utils.d.ts +84 -0
  51. package/dist/formatters/utils.d.ts.map +1 -0
  52. package/dist/formatters/utils.js +129 -0
  53. package/dist/formatters/utils.js.map +1 -0
  54. package/dist/health-rate-limiter.d.ts +59 -0
  55. package/dist/health-rate-limiter.d.ts.map +1 -0
  56. package/dist/health-rate-limiter.js +159 -0
  57. package/dist/health-rate-limiter.js.map +1 -0
  58. package/dist/index.js +61 -100
  59. package/dist/index.js.map +1 -1
  60. package/dist/middleware/async-handler.d.ts +62 -0
  61. package/dist/middleware/async-handler.d.ts.map +1 -0
  62. package/dist/middleware/async-handler.js +58 -0
  63. package/dist/middleware/async-handler.js.map +1 -0
  64. package/dist/middleware/auth.d.ts +32 -0
  65. package/dist/middleware/auth.d.ts.map +1 -0
  66. package/dist/middleware/auth.js +63 -0
  67. package/dist/middleware/auth.js.map +1 -0
  68. package/dist/middleware/csrf-protection.d.ts +58 -0
  69. package/dist/middleware/csrf-protection.d.ts.map +1 -0
  70. package/dist/middleware/csrf-protection.js +123 -0
  71. package/dist/middleware/csrf-protection.js.map +1 -0
  72. package/dist/middleware/error-handler.d.ts +49 -0
  73. package/dist/middleware/error-handler.d.ts.map +1 -0
  74. package/dist/middleware/error-handler.js +90 -0
  75. package/dist/middleware/error-handler.js.map +1 -0
  76. package/dist/middleware/error-mapper.d.ts +44 -0
  77. package/dist/middleware/error-mapper.d.ts.map +1 -0
  78. package/dist/middleware/error-mapper.js +127 -0
  79. package/dist/middleware/error-mapper.js.map +1 -0
  80. package/dist/middleware/index.d.ts +13 -0
  81. package/dist/middleware/index.d.ts.map +1 -0
  82. package/dist/middleware/index.js +13 -0
  83. package/dist/middleware/index.js.map +1 -0
  84. package/dist/middleware/request-id.d.ts +22 -0
  85. package/dist/middleware/request-id.d.ts.map +1 -0
  86. package/dist/middleware/request-id.js +31 -0
  87. package/dist/middleware/request-id.js.map +1 -0
  88. package/dist/middleware/types.d.ts +33 -0
  89. package/dist/middleware/types.d.ts.map +1 -0
  90. package/dist/middleware/types.js +2 -0
  91. package/dist/middleware/types.js.map +1 -0
  92. package/dist/schemas/common.d.ts +205 -8
  93. package/dist/schemas/common.d.ts.map +1 -1
  94. package/dist/schemas/common.js +290 -17
  95. package/dist/schemas/common.js.map +1 -1
  96. package/dist/schemas/flux/compose.d.ts +307 -44
  97. package/dist/schemas/flux/compose.d.ts.map +1 -1
  98. package/dist/schemas/flux/compose.js +74 -48
  99. package/dist/schemas/flux/compose.js.map +1 -1
  100. package/dist/schemas/flux/container.d.ts +423 -56
  101. package/dist/schemas/flux/container.d.ts.map +1 -1
  102. package/dist/schemas/flux/container.js +83 -61
  103. package/dist/schemas/flux/container.js.map +1 -1
  104. package/dist/schemas/flux/docker.d.ts +254 -37
  105. package/dist/schemas/flux/docker.d.ts.map +1 -1
  106. package/dist/schemas/flux/docker.js +69 -39
  107. package/dist/schemas/flux/docker.js.map +1 -1
  108. package/dist/schemas/flux/host.d.ts +312 -29
  109. package/dist/schemas/flux/host.d.ts.map +1 -1
  110. package/dist/schemas/flux/host.js +74 -31
  111. package/dist/schemas/flux/host.js.map +1 -1
  112. package/dist/schemas/flux/index.d.ts +503 -11
  113. package/dist/schemas/flux/index.d.ts.map +1 -1
  114. package/dist/schemas/flux/index.js +34 -70
  115. package/dist/schemas/flux/index.js.map +1 -1
  116. package/dist/schemas/host-config.d.ts +76 -0
  117. package/dist/schemas/host-config.d.ts.map +1 -0
  118. package/dist/schemas/host-config.js +105 -0
  119. package/dist/schemas/host-config.js.map +1 -0
  120. package/dist/schemas/scout/index.d.ts +80 -23
  121. package/dist/schemas/scout/index.d.ts.map +1 -1
  122. package/dist/schemas/scout/index.js +26 -11
  123. package/dist/schemas/scout/index.js.map +1 -1
  124. package/dist/schemas/scout/logs.d.ts +17 -5
  125. package/dist/schemas/scout/logs.d.ts.map +1 -1
  126. package/dist/schemas/scout/logs.js +41 -31
  127. package/dist/schemas/scout/logs.js.map +1 -1
  128. package/dist/schemas/scout/simple.d.ts +126 -11
  129. package/dist/schemas/scout/simple.d.ts.map +1 -1
  130. package/dist/schemas/scout/simple.js +112 -57
  131. package/dist/schemas/scout/simple.js.map +1 -1
  132. package/dist/schemas/scout/zfs.d.ts +17 -5
  133. package/dist/schemas/scout/zfs.d.ts.map +1 -1
  134. package/dist/schemas/scout/zfs.js +34 -25
  135. package/dist/schemas/scout/zfs.js.map +1 -1
  136. package/dist/services/cache-layer.d.ts +160 -0
  137. package/dist/services/cache-layer.d.ts.map +1 -0
  138. package/dist/services/cache-layer.js +138 -0
  139. package/dist/services/cache-layer.js.map +1 -0
  140. package/dist/services/compose-cache.d.ts +75 -0
  141. package/dist/services/compose-cache.d.ts.map +1 -0
  142. package/dist/services/compose-cache.js +178 -0
  143. package/dist/services/compose-cache.js.map +1 -0
  144. package/dist/services/compose-discovery.d.ts +46 -0
  145. package/dist/services/compose-discovery.d.ts.map +1 -0
  146. package/dist/services/compose-discovery.js +219 -0
  147. package/dist/services/compose-discovery.js.map +1 -0
  148. package/dist/services/compose-project-lister.d.ts +27 -0
  149. package/dist/services/compose-project-lister.d.ts.map +1 -0
  150. package/dist/services/compose-project-lister.js +71 -0
  151. package/dist/services/compose-project-lister.js.map +1 -0
  152. package/dist/services/compose-scanner.d.ts +63 -0
  153. package/dist/services/compose-scanner.d.ts.map +1 -0
  154. package/dist/services/compose-scanner.js +253 -0
  155. package/dist/services/compose-scanner.js.map +1 -0
  156. package/dist/services/compose.d.ts +64 -28
  157. package/dist/services/compose.d.ts.map +1 -1
  158. package/dist/services/compose.js +220 -98
  159. package/dist/services/compose.js.map +1 -1
  160. package/dist/services/config-loader.d.ts +23 -0
  161. package/dist/services/config-loader.d.ts.map +1 -0
  162. package/dist/services/config-loader.js +124 -0
  163. package/dist/services/config-loader.js.map +1 -0
  164. package/dist/services/config-service.d.ts +38 -0
  165. package/dist/services/config-service.d.ts.map +1 -0
  166. package/dist/services/config-service.js +225 -0
  167. package/dist/services/config-service.js.map +1 -0
  168. package/dist/services/container-host-map-cache.d.ts +121 -0
  169. package/dist/services/container-host-map-cache.d.ts.map +1 -0
  170. package/dist/services/container-host-map-cache.js +188 -0
  171. package/dist/services/container-host-map-cache.js.map +1 -0
  172. package/dist/services/container.d.ts +194 -6
  173. package/dist/services/container.d.ts.map +1 -1
  174. package/dist/services/container.js +386 -11
  175. package/dist/services/container.js.map +1 -1
  176. package/dist/services/diagnostics.d.ts +57 -0
  177. package/dist/services/diagnostics.d.ts.map +1 -0
  178. package/dist/services/diagnostics.js +271 -0
  179. package/dist/services/diagnostics.js.map +1 -0
  180. package/dist/services/docker/container-service.d.ts +123 -0
  181. package/dist/services/docker/container-service.d.ts.map +1 -0
  182. package/dist/services/docker/container-service.js +347 -0
  183. package/dist/services/docker/container-service.js.map +1 -0
  184. package/dist/services/docker/image-service.d.ts +82 -0
  185. package/dist/services/docker/image-service.d.ts.map +1 -0
  186. package/dist/services/docker/image-service.js +193 -0
  187. package/dist/services/docker/image-service.js.map +1 -0
  188. package/dist/services/docker/index.d.ts +80 -0
  189. package/dist/services/docker/index.d.ts.map +1 -0
  190. package/dist/services/docker/index.js +103 -0
  191. package/dist/services/docker/index.js.map +1 -0
  192. package/dist/services/docker/network-service.d.ts +22 -0
  193. package/dist/services/docker/network-service.d.ts.map +1 -0
  194. package/dist/services/docker/network-service.js +43 -0
  195. package/dist/services/docker/network-service.js.map +1 -0
  196. package/dist/services/docker/system-service.d.ts +49 -0
  197. package/dist/services/docker/system-service.d.ts.map +1 -0
  198. package/dist/services/docker/system-service.js +215 -0
  199. package/dist/services/docker/system-service.js.map +1 -0
  200. package/dist/services/docker/utils/client-factory.d.ts +56 -0
  201. package/dist/services/docker/utils/client-factory.d.ts.map +1 -0
  202. package/dist/services/docker/utils/client-factory.js +139 -0
  203. package/dist/services/docker/utils/client-factory.js.map +1 -0
  204. package/dist/services/docker/utils/client-manager.d.ts +88 -0
  205. package/dist/services/docker/utils/client-manager.d.ts.map +1 -0
  206. package/dist/services/docker/utils/client-manager.js +124 -0
  207. package/dist/services/docker/utils/client-manager.js.map +1 -0
  208. package/dist/services/docker/utils/exec-handler.d.ts +94 -0
  209. package/dist/services/docker/utils/exec-handler.d.ts.map +1 -0
  210. package/dist/services/docker/utils/exec-handler.js +197 -0
  211. package/dist/services/docker/utils/exec-handler.js.map +1 -0
  212. package/dist/services/docker/utils/formatters.d.ts +13 -0
  213. package/dist/services/docker/utils/formatters.d.ts.map +1 -0
  214. package/dist/services/docker/utils/formatters.js +33 -0
  215. package/dist/services/docker/utils/formatters.js.map +1 -0
  216. package/dist/services/docker/utils/log-parser.d.ts +10 -0
  217. package/dist/services/docker/utils/log-parser.d.ts.map +1 -0
  218. package/dist/services/docker/utils/log-parser.js +48 -0
  219. package/dist/services/docker/utils/log-parser.js.map +1 -0
  220. package/dist/services/docker/utils/stats-calculator.d.ts +68 -0
  221. package/dist/services/docker/utils/stats-calculator.d.ts.map +1 -0
  222. package/dist/services/docker/utils/stats-calculator.js +61 -0
  223. package/dist/services/docker/utils/stats-calculator.js.map +1 -0
  224. package/dist/services/docker/volume-service.d.ts +22 -0
  225. package/dist/services/docker/volume-service.d.ts.map +1 -0
  226. package/dist/services/docker/volume-service.js +48 -0
  227. package/dist/services/docker/volume-service.js.map +1 -0
  228. package/dist/services/docker-interfaces.d.ts +283 -0
  229. package/dist/services/docker-interfaces.d.ts.map +1 -0
  230. package/dist/services/docker-interfaces.js +13 -0
  231. package/dist/services/docker-interfaces.js.map +1 -0
  232. package/dist/services/docker.d.ts +42 -5
  233. package/dist/services/docker.d.ts.map +1 -1
  234. package/dist/services/docker.js +335 -127
  235. package/dist/services/docker.js.map +1 -1
  236. package/dist/services/file-service.d.ts +6 -2
  237. package/dist/services/file-service.d.ts.map +1 -1
  238. package/dist/services/file-service.js +156 -52
  239. package/dist/services/file-service.js.map +1 -1
  240. package/dist/services/host-config-repository.d.ts +133 -0
  241. package/dist/services/host-config-repository.d.ts.map +1 -0
  242. package/dist/services/host-config-repository.js +323 -0
  243. package/dist/services/host-config-repository.js.map +1 -0
  244. package/dist/services/host-resolver.d.ts +49 -0
  245. package/dist/services/host-resolver.d.ts.map +1 -0
  246. package/dist/services/host-resolver.js +176 -0
  247. package/dist/services/host-resolver.js.map +1 -0
  248. package/dist/services/interfaces.d.ts +61 -194
  249. package/dist/services/interfaces.d.ts.map +1 -1
  250. package/dist/services/local-executor.d.ts +31 -0
  251. package/dist/services/local-executor.d.ts.map +1 -0
  252. package/dist/services/local-executor.js +71 -0
  253. package/dist/services/local-executor.js.map +1 -0
  254. package/dist/services/ssh-config-loader.d.ts +35 -0
  255. package/dist/services/ssh-config-loader.d.ts.map +1 -0
  256. package/dist/services/ssh-config-loader.js +218 -0
  257. package/dist/services/ssh-config-loader.js.map +1 -0
  258. package/dist/services/ssh-pool.d.ts +26 -1
  259. package/dist/services/ssh-pool.d.ts.map +1 -1
  260. package/dist/services/ssh-pool.js +166 -25
  261. package/dist/services/ssh-pool.js.map +1 -1
  262. package/dist/services/ssh-service.d.ts +3 -0
  263. package/dist/services/ssh-service.d.ts.map +1 -1
  264. package/dist/services/ssh-service.js +53 -31
  265. package/dist/services/ssh-service.js.map +1 -1
  266. package/dist/services/ssh.d.ts +2 -6
  267. package/dist/services/ssh.d.ts.map +1 -1
  268. package/dist/services/ssh.js +9 -40
  269. package/dist/services/ssh.js.map +1 -1
  270. package/dist/tools/definitions/flux.d.ts +13 -0
  271. package/dist/tools/definitions/flux.d.ts.map +1 -0
  272. package/dist/tools/definitions/flux.js +101 -0
  273. package/dist/tools/definitions/flux.js.map +1 -0
  274. package/dist/tools/definitions/index.d.ts +8 -0
  275. package/dist/tools/definitions/index.d.ts.map +1 -0
  276. package/dist/tools/definitions/index.js +8 -0
  277. package/dist/tools/definitions/index.js.map +1 -0
  278. package/dist/tools/definitions/scout.d.ts +13 -0
  279. package/dist/tools/definitions/scout.d.ts.map +1 -0
  280. package/dist/tools/definitions/scout.js +78 -0
  281. package/dist/tools/definitions/scout.js.map +1 -0
  282. package/dist/tools/flux.d.ts +16 -8
  283. package/dist/tools/flux.d.ts.map +1 -1
  284. package/dist/tools/flux.js +27 -66
  285. package/dist/tools/flux.js.map +1 -1
  286. package/dist/tools/handlers/base-handler.d.ts +172 -0
  287. package/dist/tools/handlers/base-handler.d.ts.map +1 -0
  288. package/dist/tools/handlers/base-handler.js +234 -0
  289. package/dist/tools/handlers/base-handler.js.map +1 -0
  290. package/dist/tools/handlers/compose-handlers.d.ts +108 -0
  291. package/dist/tools/handlers/compose-handlers.d.ts.map +1 -0
  292. package/dist/tools/handlers/compose-handlers.js +293 -0
  293. package/dist/tools/handlers/compose-handlers.js.map +1 -0
  294. package/dist/tools/handlers/compose-utils.d.ts +35 -0
  295. package/dist/tools/handlers/compose-utils.d.ts.map +1 -0
  296. package/dist/tools/handlers/compose-utils.js +76 -0
  297. package/dist/tools/handlers/compose-utils.js.map +1 -0
  298. package/dist/tools/handlers/compose.d.ts +23 -0
  299. package/dist/tools/handlers/compose.d.ts.map +1 -0
  300. package/dist/tools/handlers/compose.js +125 -0
  301. package/dist/tools/handlers/compose.js.map +1 -0
  302. package/dist/tools/handlers/container.d.ts +23 -0
  303. package/dist/tools/handlers/container.d.ts.map +1 -0
  304. package/dist/tools/handlers/container.js +333 -0
  305. package/dist/tools/handlers/container.js.map +1 -0
  306. package/dist/tools/handlers/docker.d.ts +24 -0
  307. package/dist/tools/handlers/docker.d.ts.map +1 -0
  308. package/dist/tools/handlers/docker.js +155 -0
  309. package/dist/tools/handlers/docker.js.map +1 -0
  310. package/dist/tools/handlers/host.d.ts +23 -0
  311. package/dist/tools/handlers/host.d.ts.map +1 -0
  312. package/dist/tools/handlers/host.js +196 -0
  313. package/dist/tools/handlers/host.js.map +1 -0
  314. package/dist/tools/handlers/scout-logs.d.ts +24 -0
  315. package/dist/tools/handlers/scout-logs.d.ts.map +1 -0
  316. package/dist/tools/handlers/scout-logs.js +119 -0
  317. package/dist/tools/handlers/scout-logs.js.map +1 -0
  318. package/dist/tools/handlers/scout-simple.d.ts +23 -0
  319. package/dist/tools/handlers/scout-simple.d.ts.map +1 -0
  320. package/dist/tools/handlers/scout-simple.js +286 -0
  321. package/dist/tools/handlers/scout-simple.js.map +1 -0
  322. package/dist/tools/handlers/scout-zfs.d.ts +23 -0
  323. package/dist/tools/handlers/scout-zfs.d.ts.map +1 -0
  324. package/dist/tools/handlers/scout-zfs.js +82 -0
  325. package/dist/tools/handlers/scout-zfs.js.map +1 -0
  326. package/dist/tools/index.d.ts +32 -2
  327. package/dist/tools/index.d.ts.map +1 -1
  328. package/dist/tools/index.js +41 -35
  329. package/dist/tools/index.js.map +1 -1
  330. package/dist/tools/registry.d.ts +135 -0
  331. package/dist/tools/registry.d.ts.map +1 -0
  332. package/dist/tools/registry.js +151 -0
  333. package/dist/tools/registry.js.map +1 -0
  334. package/dist/tools/scout.d.ts +16 -8
  335. package/dist/tools/scout.d.ts.map +1 -1
  336. package/dist/tools/scout.js +36 -78
  337. package/dist/tools/scout.js.map +1 -1
  338. package/dist/types.d.ts +629 -1
  339. package/dist/types.d.ts.map +1 -1
  340. package/dist/types.js.map +1 -1
  341. package/dist/utils/command-security.d.ts +82 -0
  342. package/dist/utils/command-security.d.ts.map +1 -0
  343. package/dist/utils/command-security.js +122 -0
  344. package/dist/utils/command-security.js.map +1 -0
  345. package/dist/utils/error-sanitization.d.ts +77 -0
  346. package/dist/utils/error-sanitization.d.ts.map +1 -0
  347. package/dist/utils/error-sanitization.js +107 -0
  348. package/dist/utils/error-sanitization.js.map +1 -0
  349. package/dist/utils/errors.d.ts +30 -6
  350. package/dist/utils/errors.d.ts.map +1 -1
  351. package/dist/utils/errors.js +91 -12
  352. package/dist/utils/errors.js.map +1 -1
  353. package/dist/utils/help-handler.d.ts +23 -0
  354. package/dist/utils/help-handler.d.ts.map +1 -0
  355. package/dist/utils/help-handler.js +21 -0
  356. package/dist/utils/help-handler.js.map +1 -0
  357. package/dist/utils/help.d.ts +1 -1
  358. package/dist/utils/help.d.ts.map +1 -1
  359. package/dist/utils/help.js +57 -16
  360. package/dist/utils/help.js.map +1 -1
  361. package/dist/utils/host-utils.d.ts +31 -0
  362. package/dist/utils/host-utils.d.ts.map +1 -0
  363. package/dist/utils/host-utils.js +80 -0
  364. package/dist/utils/host-utils.js.map +1 -0
  365. package/dist/utils/index.d.ts +8 -2
  366. package/dist/utils/index.d.ts.map +1 -1
  367. package/dist/utils/index.js +8 -2
  368. package/dist/utils/index.js.map +1 -1
  369. package/dist/utils/init-detection.d.ts +36 -0
  370. package/dist/utils/init-detection.d.ts.map +1 -0
  371. package/dist/utils/init-detection.js +79 -0
  372. package/dist/utils/init-detection.js.map +1 -0
  373. package/dist/utils/logger.d.ts +11 -0
  374. package/dist/utils/logger.d.ts.map +1 -0
  375. package/dist/utils/logger.js +32 -0
  376. package/dist/utils/logger.js.map +1 -0
  377. package/dist/utils/pagination.d.ts +20 -0
  378. package/dist/utils/pagination.d.ts.map +1 -0
  379. package/dist/utils/pagination.js +29 -0
  380. package/dist/utils/pagination.js.map +1 -0
  381. package/dist/utils/path-security.d.ts +132 -18
  382. package/dist/utils/path-security.d.ts.map +1 -1
  383. package/dist/utils/path-security.js +164 -35
  384. package/dist/utils/path-security.js.map +1 -1
  385. package/dist/utils/sorting.d.ts +33 -0
  386. package/dist/utils/sorting.d.ts.map +1 -0
  387. package/dist/utils/sorting.js +57 -0
  388. package/dist/utils/sorting.js.map +1 -0
  389. package/dist/utils/text-filters.d.ts +13 -0
  390. package/dist/utils/text-filters.d.ts.map +1 -0
  391. package/dist/utils/text-filters.js +18 -0
  392. package/dist/utils/text-filters.js.map +1 -0
  393. package/dist/utils/time.d.ts +11 -0
  394. package/dist/utils/time.d.ts.map +1 -0
  395. package/dist/utils/time.js +13 -0
  396. package/dist/utils/time.js.map +1 -0
  397. package/dist/utils/validation.d.ts +25 -0
  398. package/dist/utils/validation.d.ts.map +1 -0
  399. package/dist/utils/validation.js +56 -0
  400. package/dist/utils/validation.js.map +1 -0
  401. package/package.json +45 -19
  402. package/dist/schemas/discriminator.d.ts +0 -20
  403. package/dist/schemas/discriminator.d.ts.map +0 -1
  404. package/dist/schemas/discriminator.js +0 -25
  405. package/dist/schemas/discriminator.js.map +0 -1
  406. package/dist/schemas/unified.d.ts +0 -674
  407. package/dist/schemas/unified.d.ts.map +0 -1
  408. package/dist/schemas/unified.js +0 -453
  409. package/dist/schemas/unified.js.map +0 -1
  410. package/dist/tools/unified.d.ts +0 -7
  411. package/dist/tools/unified.d.ts.map +0 -1
  412. package/dist/tools/unified.js +0 -827
  413. package/dist/tools/unified.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IAEb,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAEnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IAEX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,wCAAwC;IACxC,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IAExF,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,KAAK,EAAE,WAAW,EAAE,CAAC;IAErB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IAEtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IAExB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IAEpB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IAEtB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IAEpB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IAEpB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IAEtB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAElB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IAEf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAE5B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IAEb,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IAEd,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IAErB,iEAAiE;IACjE,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAE7D,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IAEd,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC;IAEjB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,0CAA0C;IAC1C,KAAK,EAAE,CAAC,EAAE,CAAC;IAEX,yCAAyC;IACzC,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,UAAU;IACzB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;IAEnB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IAEvB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IAErB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IAEX,yCAAyC;IACzC,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IAEnB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IAEf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IAEb,oDAAoD;IACpD,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAEtD,gEAAgE;IAChE,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,+CAA+C;IAC/C,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAE/B,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IAEb,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,sCAAsC;QACtC,aAAa,EAAE,MAAM,CAAC;QACtB,uCAAuC;QACvC,UAAU,EAAE,MAAM,CAAC;QACnB,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IAEX,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IAEpB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IAEtB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IAExB,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,CAAC;IAE1B,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IAEzB,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,CAAC;IAE1B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,MAAM,EAAE;QACN,6BAA6B;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,4CAA4C;QAC5C,MAAM,EAAE,MAAM,CAAC;QACf,wCAAwC;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,oDAAoD;QACpD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,mCAAmC;IACnC,UAAU,EAAE;QACV,iCAAiC;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,mCAAmC;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,uDAAuD;QACvD,IAAI,EAAE,MAAM,CAAC;QACb,yDAAyD;QACzD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,gCAAgC;IAChC,OAAO,EAAE;QACP,8BAA8B;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,6CAA6C;QAC7C,MAAM,EAAE,MAAM,CAAC;QACf,yCAAyC;QACzC,IAAI,EAAE,MAAM,CAAC;QACb,qDAAqD;QACrD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,6BAA6B;IAC7B,UAAU,EAAE;QACV,0CAA0C;QAC1C,KAAK,EAAE,MAAM,CAAC;QACd,yCAAyC;QACzC,IAAI,EAAE,MAAM,CAAC;QACb,kDAAkD;QAClD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAElB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IAEvB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAEhB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B,mBAAmB;IACnB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,OAAO,CAAC;KACb,CAAC,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,8BAA8B;IAC9B,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;KACvC,CAAC;IAEF,uBAAuB;IACvB,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IAEF,mBAAmB;IACnB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,OAAO,CAAC;KACb,CAAC,CAAC;CACJ"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoEA,uBAAuB;AACvB,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA4PA,uBAAuB;AACvB,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Parses a command string into parts for allowlist validation.
3
+ *
4
+ * IMPORTANT LIMITATION: This function does NOT handle shell-quoted arguments.
5
+ * It splits purely on whitespace, meaning commands like:
6
+ * `grep "hello world" file.txt`
7
+ * Will be parsed as: `["grep", '"hello', 'world"', "file.txt"]`
8
+ *
9
+ * This is acceptable for our use case because:
10
+ * 1. Arguments are escaped via escapeShellArg() in buildSafeShellCommand()
11
+ * 2. Callers should pass arguments as separate array elements when possible
12
+ * 3. This function is primarily for allowlist validation, not shell execution
13
+ *
14
+ * If you need quoted argument handling, pass arguments separately to the
15
+ * underlying service functions rather than as a single command string.
16
+ *
17
+ * @param command - Command string to parse (whitespace-delimited)
18
+ * @returns Array of command parts, with empty parts filtered out
19
+ * @example
20
+ * ```typescript
21
+ * parseCommandParts("docker ps -a"); // ["docker", "ps", "-a"]
22
+ * parseCommandParts(" systemctl status "); // ["systemctl", "status"]
23
+ * ```
24
+ */
25
+ export declare function parseCommandParts(command: string): string[];
26
+ /**
27
+ * Validates a command against the allowlist and returns the parsed parts.
28
+ *
29
+ * Security: Prevents CWE-78 (OS Command Injection) by restricting commands to a
30
+ * predefined allowlist. No bypass mechanism is provided - use test mocks for testing.
31
+ * @see https://cwe.mitre.org/data/definitions/78.html
32
+ *
33
+ * @param command - Command string to validate (e.g., "docker ps -a")
34
+ * @returns Array of parsed command parts [baseCommand, ...args]
35
+ * @throws {Error} If command is empty or base command not in allowlist
36
+ * @example
37
+ * ```typescript
38
+ * validateCommandAllowlist("docker ps"); // ["docker", "ps"] (if docker is allowed)
39
+ * validateCommandAllowlist("rm -rf /"); // throws Error (rm not in allowlist)
40
+ * validateCommandAllowlist(""); // throws Error (empty command)
41
+ * ```
42
+ */
43
+ export declare function validateCommandAllowlist(command: string): string[];
44
+ /**
45
+ * Validates that the base command contains only safe characters.
46
+ *
47
+ * Security: Prevents CWE-78 (OS Command Injection) via command names.
48
+ * Only alphanumeric, underscore, hyphen, and forward slash (for paths like
49
+ * /usr/bin/grep) are permitted. This validation happens before allowlist checking.
50
+ * @see https://cwe.mitre.org/data/definitions/78.html
51
+ *
52
+ * @param baseCommand - The base command to validate (first part of command string)
53
+ * @throws {Error} If command contains unsafe characters (e.g., shell metacharacters)
54
+ * @example
55
+ * ```typescript
56
+ * validateBaseCommand("docker"); // valid
57
+ * validateBaseCommand("/usr/bin/grep"); // valid
58
+ * validateBaseCommand("rm;ls"); // throws Error (contains semicolon)
59
+ * ```
60
+ */
61
+ export declare function validateBaseCommand(baseCommand: string): void;
62
+ /**
63
+ * Validates command against allowlist and escapes arguments for safe shell usage.
64
+ *
65
+ * Security: Prevents CWE-78 (OS Command Injection) through multiple layers:
66
+ * 1. Command is validated against allowlist (no bypass mechanism)
67
+ * 2. Base command is validated against safe character pattern
68
+ * 3. All arguments are escaped via escapeShellArg() to neutralize metacharacters
69
+ * @see https://cwe.mitre.org/data/definitions/78.html
70
+ *
71
+ * @param command - Command string to validate and escape (e.g., "docker ps -a")
72
+ * @returns Safely escaped shell command string ready for execution
73
+ * @throws {Error} If command validation fails (empty, not in allowlist, or unsafe characters)
74
+ * @example
75
+ * ```typescript
76
+ * buildSafeShellCommand("docker ps"); // "docker 'ps'" (if allowed)
77
+ * buildSafeShellCommand("grep hello world.txt"); // "grep 'hello' 'world.txt'"
78
+ * buildSafeShellCommand("rm -rf /"); // throws Error (not in allowlist)
79
+ * ```
80
+ */
81
+ export declare function buildSafeShellCommand(command: string): string;
82
+ //# sourceMappingURL=command-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-security.d.ts","sourceRoot":"","sources":["../../src/utils/command-security.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAK3D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBlE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAM7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAW7D"}
@@ -0,0 +1,122 @@
1
+ import { ALLOWED_COMMANDS } from "../constants.js";
2
+ import { escapeShellArg } from "./path-security.js";
3
+ /**
4
+ * Safe command character pattern.
5
+ * Allows alphanumeric, underscore, hyphen, and forward slash (for paths like /usr/bin/grep).
6
+ */
7
+ const SAFE_COMMAND_PATTERN = /^[a-zA-Z0-9_\-/]+$/;
8
+ /**
9
+ * Parses a command string into parts for allowlist validation.
10
+ *
11
+ * IMPORTANT LIMITATION: This function does NOT handle shell-quoted arguments.
12
+ * It splits purely on whitespace, meaning commands like:
13
+ * `grep "hello world" file.txt`
14
+ * Will be parsed as: `["grep", '"hello', 'world"', "file.txt"]`
15
+ *
16
+ * This is acceptable for our use case because:
17
+ * 1. Arguments are escaped via escapeShellArg() in buildSafeShellCommand()
18
+ * 2. Callers should pass arguments as separate array elements when possible
19
+ * 3. This function is primarily for allowlist validation, not shell execution
20
+ *
21
+ * If you need quoted argument handling, pass arguments separately to the
22
+ * underlying service functions rather than as a single command string.
23
+ *
24
+ * @param command - Command string to parse (whitespace-delimited)
25
+ * @returns Array of command parts, with empty parts filtered out
26
+ * @example
27
+ * ```typescript
28
+ * parseCommandParts("docker ps -a"); // ["docker", "ps", "-a"]
29
+ * parseCommandParts(" systemctl status "); // ["systemctl", "status"]
30
+ * ```
31
+ */
32
+ export function parseCommandParts(command) {
33
+ return command
34
+ .trim()
35
+ .split(/\s+/)
36
+ .filter((part) => part.length > 0);
37
+ }
38
+ /**
39
+ * Validates a command against the allowlist and returns the parsed parts.
40
+ *
41
+ * Security: Prevents CWE-78 (OS Command Injection) by restricting commands to a
42
+ * predefined allowlist. No bypass mechanism is provided - use test mocks for testing.
43
+ * @see https://cwe.mitre.org/data/definitions/78.html
44
+ *
45
+ * @param command - Command string to validate (e.g., "docker ps -a")
46
+ * @returns Array of parsed command parts [baseCommand, ...args]
47
+ * @throws {Error} If command is empty or base command not in allowlist
48
+ * @example
49
+ * ```typescript
50
+ * validateCommandAllowlist("docker ps"); // ["docker", "ps"] (if docker is allowed)
51
+ * validateCommandAllowlist("rm -rf /"); // throws Error (rm not in allowlist)
52
+ * validateCommandAllowlist(""); // throws Error (empty command)
53
+ * ```
54
+ */
55
+ export function validateCommandAllowlist(command) {
56
+ const parts = parseCommandParts(command);
57
+ if (parts.length === 0) {
58
+ throw new Error("Command cannot be empty");
59
+ }
60
+ const baseCommand = parts[0];
61
+ // CRITICAL SECURITY: Validate characters to prevent injection attacks via shell metacharacters
62
+ if (!SAFE_COMMAND_PATTERN.test(baseCommand)) {
63
+ throw new Error(`Base command '${baseCommand}' contains unsafe characters. Only alphanumeric, underscore, hyphen, and forward slash are allowed.`);
64
+ }
65
+ // Enforce allowlist - no bypass mechanism for security
66
+ if (!ALLOWED_COMMANDS.has(baseCommand)) {
67
+ throw new Error(`Command '${baseCommand}' not in allowed list. Use test mocks for testing with disallowed commands.`);
68
+ }
69
+ return parts;
70
+ }
71
+ /**
72
+ * Validates that the base command contains only safe characters.
73
+ *
74
+ * Security: Prevents CWE-78 (OS Command Injection) via command names.
75
+ * Only alphanumeric, underscore, hyphen, and forward slash (for paths like
76
+ * /usr/bin/grep) are permitted. This validation happens before allowlist checking.
77
+ * @see https://cwe.mitre.org/data/definitions/78.html
78
+ *
79
+ * @param baseCommand - The base command to validate (first part of command string)
80
+ * @throws {Error} If command contains unsafe characters (e.g., shell metacharacters)
81
+ * @example
82
+ * ```typescript
83
+ * validateBaseCommand("docker"); // valid
84
+ * validateBaseCommand("/usr/bin/grep"); // valid
85
+ * validateBaseCommand("rm;ls"); // throws Error (contains semicolon)
86
+ * ```
87
+ */
88
+ export function validateBaseCommand(baseCommand) {
89
+ if (!SAFE_COMMAND_PATTERN.test(baseCommand)) {
90
+ throw new Error(`Base command '${baseCommand}' contains unsafe characters. Only alphanumeric, underscore, hyphen, and forward slash are allowed.`);
91
+ }
92
+ }
93
+ /**
94
+ * Validates command against allowlist and escapes arguments for safe shell usage.
95
+ *
96
+ * Security: Prevents CWE-78 (OS Command Injection) through multiple layers:
97
+ * 1. Command is validated against allowlist (no bypass mechanism)
98
+ * 2. Base command is validated against safe character pattern
99
+ * 3. All arguments are escaped via escapeShellArg() to neutralize metacharacters
100
+ * @see https://cwe.mitre.org/data/definitions/78.html
101
+ *
102
+ * @param command - Command string to validate and escape (e.g., "docker ps -a")
103
+ * @returns Safely escaped shell command string ready for execution
104
+ * @throws {Error} If command validation fails (empty, not in allowlist, or unsafe characters)
105
+ * @example
106
+ * ```typescript
107
+ * buildSafeShellCommand("docker ps"); // "docker 'ps'" (if allowed)
108
+ * buildSafeShellCommand("grep hello world.txt"); // "grep 'hello' 'world.txt'"
109
+ * buildSafeShellCommand("rm -rf /"); // throws Error (not in allowlist)
110
+ * ```
111
+ */
112
+ export function buildSafeShellCommand(command) {
113
+ // validateCommandAllowlist now handles both character validation and allowlist checks
114
+ const parts = validateCommandAllowlist(command);
115
+ const baseCommand = parts[0];
116
+ if (parts.length === 1) {
117
+ return baseCommand;
118
+ }
119
+ const escapedArgs = parts.slice(1).map((arg) => escapeShellArg(arg));
120
+ return `${baseCommand} ${escapedArgs.join(" ")}`;
121
+ }
122
+ //# sourceMappingURL=command-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-security.js","sourceRoot":"","sources":["../../src/utils/command-security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,OAAO;SACX,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,+FAA+F;IAC/F,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,iBAAiB,WAAW,qGAAqG,CAClI,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,YAAY,WAAW,6EAA6E,CACrG,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,iBAAiB,WAAW,qGAAqG,CAClI,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,sFAAsF;IACtF,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,OAAO,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Error message sanitization utilities
3
+ *
4
+ * Security: Prevents CWE-209 (Generation of Error Message Containing Sensitive Information)
5
+ * by redacting sensitive details like file paths, commands, and infrastructure information
6
+ * from error messages in production mode.
7
+ *
8
+ * @see https://cwe.mitre.org/data/definitions/209.html
9
+ */
10
+ /**
11
+ * Sanitizes error messages based on environment.
12
+ *
13
+ * In production: Returns generic message without sensitive details
14
+ * In development: Returns detailed message for debugging
15
+ *
16
+ * Security: CWE-209 prevention - avoid leaking infrastructure details
17
+ *
18
+ * @param detailedMessage - Detailed error message (may contain sensitive info)
19
+ * @param genericMessage - Generic safe error message
20
+ * @returns Sanitized error message appropriate for current environment
21
+ * @example
22
+ * ```typescript
23
+ * const msg = sanitizeErrorMessage(
24
+ * "Failed to read SSH key at /home/user/.ssh/id_rsa",
25
+ * "SSH authentication failed"
26
+ * );
27
+ * // Production: "SSH authentication failed"
28
+ * // Development: "Failed to read SSH key at /home/user/.ssh/id_rsa"
29
+ * ```
30
+ */
31
+ export declare function sanitizeErrorMessage(detailedMessage: string, genericMessage: string): string;
32
+ /**
33
+ * Redacts file paths from error messages
34
+ *
35
+ * @param _path - File path to redact (unused, returns constant)
36
+ * @returns Redacted path placeholder
37
+ * @example
38
+ * ```typescript
39
+ * sanitizePath("/home/user/.ssh/id_rsa"); // "[REDACTED_PATH]"
40
+ * ```
41
+ */
42
+ export declare function sanitizePath(_path: string): string;
43
+ /**
44
+ * Redacts command strings from error messages
45
+ *
46
+ * @param _command - Command string to redact (unused, returns constant)
47
+ * @returns Redacted command placeholder
48
+ * @example
49
+ * ```typescript
50
+ * sanitizeCommand("rm -rf /"); // "[REDACTED_COMMAND]"
51
+ * ```
52
+ */
53
+ export declare function sanitizeCommand(_command: string): string;
54
+ /**
55
+ * Sanitizes an error object for safe logging/display
56
+ *
57
+ * In production: Removes stack traces and sensitive details
58
+ * In development: Preserves all information for debugging
59
+ *
60
+ * @param error - Error object to sanitize
61
+ * @param genericMessage - Generic message to use in production
62
+ * @returns Sanitized error object
63
+ * @example
64
+ * ```typescript
65
+ * try {
66
+ * await readKey("/home/user/.ssh/id_rsa");
67
+ * } catch (err) {
68
+ * const safe = sanitizeError(err, "Key read failed");
69
+ * console.error(safe); // Safe for production logs
70
+ * }
71
+ * ```
72
+ */
73
+ export declare function sanitizeError(error: unknown, genericMessage: string): {
74
+ message: string;
75
+ stack?: string;
76
+ };
77
+ //# sourceMappingURL=error-sanitization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-sanitization.d.ts","sourceRoot":"","sources":["../../src/utils/error-sanitization.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAK5F;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBrC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Error message sanitization utilities
3
+ *
4
+ * Security: Prevents CWE-209 (Generation of Error Message Containing Sensitive Information)
5
+ * by redacting sensitive details like file paths, commands, and infrastructure information
6
+ * from error messages in production mode.
7
+ *
8
+ * @see https://cwe.mitre.org/data/definitions/209.html
9
+ */
10
+ /**
11
+ * Check if running in development mode
12
+ * Defaults to production (safe) if NODE_ENV is not set
13
+ */
14
+ function isDevelopment() {
15
+ return process.env.NODE_ENV === "development";
16
+ }
17
+ /**
18
+ * Sanitizes error messages based on environment.
19
+ *
20
+ * In production: Returns generic message without sensitive details
21
+ * In development: Returns detailed message for debugging
22
+ *
23
+ * Security: CWE-209 prevention - avoid leaking infrastructure details
24
+ *
25
+ * @param detailedMessage - Detailed error message (may contain sensitive info)
26
+ * @param genericMessage - Generic safe error message
27
+ * @returns Sanitized error message appropriate for current environment
28
+ * @example
29
+ * ```typescript
30
+ * const msg = sanitizeErrorMessage(
31
+ * "Failed to read SSH key at /home/user/.ssh/id_rsa",
32
+ * "SSH authentication failed"
33
+ * );
34
+ * // Production: "SSH authentication failed"
35
+ * // Development: "Failed to read SSH key at /home/user/.ssh/id_rsa"
36
+ * ```
37
+ */
38
+ export function sanitizeErrorMessage(detailedMessage, genericMessage) {
39
+ if (isDevelopment()) {
40
+ return detailedMessage;
41
+ }
42
+ return genericMessage;
43
+ }
44
+ /**
45
+ * Redacts file paths from error messages
46
+ *
47
+ * @param _path - File path to redact (unused, returns constant)
48
+ * @returns Redacted path placeholder
49
+ * @example
50
+ * ```typescript
51
+ * sanitizePath("/home/user/.ssh/id_rsa"); // "[REDACTED_PATH]"
52
+ * ```
53
+ */
54
+ export function sanitizePath(_path) {
55
+ return "[REDACTED_PATH]";
56
+ }
57
+ /**
58
+ * Redacts command strings from error messages
59
+ *
60
+ * @param _command - Command string to redact (unused, returns constant)
61
+ * @returns Redacted command placeholder
62
+ * @example
63
+ * ```typescript
64
+ * sanitizeCommand("rm -rf /"); // "[REDACTED_COMMAND]"
65
+ * ```
66
+ */
67
+ export function sanitizeCommand(_command) {
68
+ return "[REDACTED_COMMAND]";
69
+ }
70
+ /**
71
+ * Sanitizes an error object for safe logging/display
72
+ *
73
+ * In production: Removes stack traces and sensitive details
74
+ * In development: Preserves all information for debugging
75
+ *
76
+ * @param error - Error object to sanitize
77
+ * @param genericMessage - Generic message to use in production
78
+ * @returns Sanitized error object
79
+ * @example
80
+ * ```typescript
81
+ * try {
82
+ * await readKey("/home/user/.ssh/id_rsa");
83
+ * } catch (err) {
84
+ * const safe = sanitizeError(err, "Key read failed");
85
+ * console.error(safe); // Safe for production logs
86
+ * }
87
+ * ```
88
+ */
89
+ export function sanitizeError(error, genericMessage) {
90
+ if (isDevelopment()) {
91
+ // Development: preserve all error details
92
+ if (error instanceof Error) {
93
+ return {
94
+ message: error.message,
95
+ stack: error.stack,
96
+ };
97
+ }
98
+ return {
99
+ message: String(error),
100
+ };
101
+ }
102
+ // Production: generic message only, no stack trace
103
+ return {
104
+ message: genericMessage,
105
+ };
106
+ }
107
+ //# sourceMappingURL=error-sanitization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-sanitization.js","sourceRoot":"","sources":["../../src/utils/error-sanitization.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oBAAoB,CAAC,eAAuB,EAAE,cAAsB;IAClF,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,cAAsB;IAEtB,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,0CAA0C;QAC1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,OAAO;QACL,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC"}
@@ -13,8 +13,7 @@
13
13
  export declare class HostOperationError extends Error {
14
14
  readonly hostName: string;
15
15
  readonly operation: string;
16
- readonly cause?: unknown | undefined;
17
- constructor(message: string, hostName: string, operation: string, cause?: unknown | undefined);
16
+ constructor(message: string, hostName: string, operation: string, cause?: unknown);
18
17
  }
19
18
  /**
20
19
  * SSH command execution error with full context
@@ -25,8 +24,7 @@ export declare class SSHCommandError extends Error {
25
24
  readonly exitCode?: number | undefined;
26
25
  readonly stderr?: string | undefined;
27
26
  readonly stdout?: string | undefined;
28
- readonly cause?: unknown | undefined;
29
- constructor(message: string, hostName: string, command: string, exitCode?: number | undefined, stderr?: string | undefined, stdout?: string | undefined, cause?: unknown | undefined);
27
+ constructor(message: string, hostName: string, command: string, exitCode?: number | undefined, stderr?: string | undefined, stdout?: string | undefined, cause?: unknown);
30
28
  }
31
29
  /**
32
30
  * Docker Compose operation error
@@ -35,8 +33,15 @@ export declare class ComposeOperationError extends Error {
35
33
  readonly hostName: string;
36
34
  readonly project: string;
37
35
  readonly action: string;
38
- readonly cause?: unknown | undefined;
39
- constructor(message: string, hostName: string, project: string, action: string, cause?: unknown | undefined);
36
+ constructor(message: string, hostName: string, project: string, action: string, cause?: unknown);
37
+ }
38
+ /**
39
+ * Validation error for input schema failures
40
+ */
41
+ export declare class ValidationError extends Error {
42
+ readonly handlerName: string;
43
+ readonly issues: string[];
44
+ constructor(message: string, handlerName: string, issues: string[], cause?: unknown);
40
45
  }
41
46
  /**
42
47
  * Additional context for error logging
@@ -47,6 +52,25 @@ export interface ErrorContext {
47
52
  operation?: string;
48
53
  metadata?: Record<string, unknown>;
49
54
  }
55
+ /**
56
+ * Sanitize params for safe logging by redacting potentially sensitive fields
57
+ *
58
+ * Preserves safe operational fields (action, subaction, host, response_format, etc.)
59
+ * while redacting fields that may contain sensitive data (paths, commands, filters).
60
+ *
61
+ * @param params - Parameters to sanitize
62
+ * @returns Sanitized copy of params with sensitive fields redacted
63
+ *
64
+ * @example
65
+ * sanitizeParams({
66
+ * action: 'scout',
67
+ * command: 'cat /etc/passwd',
68
+ * host: 'web-01',
69
+ * path: '/etc/secrets'
70
+ * })
71
+ * // Returns: { action: 'scout', command: '[REDACTED]', host: 'web-01', path: '[REDACTED]' }
72
+ */
73
+ export declare function sanitizeParams(params: unknown): unknown;
50
74
  /**
51
75
  * Log error with structured context
52
76
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,QAAQ,EAAE,MAAM;aAChB,SAAS,EAAE,MAAM;aACjB,KAAK,CAAC,EAAE,OAAO;gBAH/B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,OAAO,YAAA;CAWlC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;aACjB,MAAM,CAAC,EAAE,MAAM;aACf,MAAM,CAAC,EAAE,MAAM;aACf,KAAK,CAAC,EAAE,OAAO;gBAN/B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,KAAK,CAAC,EAAE,OAAO,YAAA;CAkBlC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,KAAK,CAAC,EAAE,OAAO;gBAJ/B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,OAAO,YAAA;CAUlC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAyCrE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,QAAQ,EAAE,MAAM;aAChB,SAAS,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjC,KAAK,CAAC,EAAE,OAAO;CAWlB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;aACjB,MAAM,CAAC,EAAE,MAAM;aACf,MAAM,CAAC,EAAE,MAAM;gBAL/B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,MAAM,CAAC,EAAE,MAAM,YAAA,EAC/B,KAAK,CAAC,EAAE,OAAO;CAkBlB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;gBAH9B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAC9B,KAAK,CAAC,EAAE,OAAO;CAUlB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,WAAW,EAAE,MAAM;aACnB,MAAM,EAAE,MAAM,EAAE;gBAFhC,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EAAE,EAChC,KAAK,CAAC,EAAE,OAAO;CASlB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAyBvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAyCrE"}