@better-openclaw/core 1.0.16 → 1.0.18

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 (970) hide show
  1. package/README.md +27 -0
  2. package/dist/bare-metal-partition.cjs +53 -0
  3. package/dist/bare-metal-partition.cjs.map +1 -0
  4. package/dist/bare-metal-partition.d.cts +26 -0
  5. package/dist/bare-metal-partition.d.cts.map +1 -0
  6. package/dist/bare-metal-partition.test.cjs +57 -0
  7. package/dist/bare-metal-partition.test.cjs.map +1 -0
  8. package/dist/bare-metal-partition.test.d.cts +1 -0
  9. package/dist/bare-metal-partition.test.mjs +1 -1
  10. package/dist/chunk-C0xms8kb.cjs +34 -0
  11. package/dist/compose-validation.test.cjs +67 -0
  12. package/dist/compose-validation.test.cjs.map +1 -0
  13. package/dist/compose-validation.test.d.cts +1 -0
  14. package/dist/compose-validation.test.d.mts +1 -0
  15. package/dist/compose-validation.test.mjs +66 -0
  16. package/dist/compose-validation.test.mjs.map +1 -0
  17. package/dist/composer.cjs +462 -0
  18. package/dist/composer.cjs.map +1 -0
  19. package/dist/composer.d.cts +21 -0
  20. package/dist/composer.d.cts.map +1 -0
  21. package/dist/composer.d.mts.map +1 -1
  22. package/dist/composer.mjs +187 -27
  23. package/dist/composer.mjs.map +1 -1
  24. package/dist/composer.snapshot.test.cjs +91 -0
  25. package/dist/composer.snapshot.test.cjs.map +1 -0
  26. package/dist/composer.snapshot.test.d.cts +1 -0
  27. package/dist/composer.snapshot.test.mjs +1 -1
  28. package/dist/composer.test.cjs +166 -0
  29. package/dist/composer.test.cjs.map +1 -0
  30. package/dist/composer.test.d.cts +1 -0
  31. package/dist/composer.test.mjs +2 -2
  32. package/dist/composer.test.mjs.map +1 -1
  33. package/dist/deployers/coolify.cjs +174 -0
  34. package/dist/deployers/coolify.cjs.map +1 -0
  35. package/dist/deployers/coolify.d.cts +25 -0
  36. package/dist/deployers/coolify.d.cts.map +1 -0
  37. package/dist/deployers/coolify.d.mts +25 -0
  38. package/dist/deployers/coolify.d.mts.map +1 -0
  39. package/dist/deployers/coolify.mjs +172 -0
  40. package/dist/deployers/coolify.mjs.map +1 -0
  41. package/dist/deployers/dokploy.cjs +141 -0
  42. package/dist/deployers/dokploy.cjs.map +1 -0
  43. package/dist/deployers/dokploy.d.cts +24 -0
  44. package/dist/deployers/dokploy.d.cts.map +1 -0
  45. package/dist/deployers/dokploy.d.mts +24 -0
  46. package/dist/deployers/dokploy.d.mts.map +1 -0
  47. package/dist/deployers/dokploy.mjs +139 -0
  48. package/dist/deployers/dokploy.mjs.map +1 -0
  49. package/dist/deployers/index.cjs +26 -0
  50. package/dist/deployers/index.cjs.map +1 -0
  51. package/dist/deployers/index.d.cts +14 -0
  52. package/dist/deployers/index.d.cts.map +1 -0
  53. package/dist/deployers/index.d.mts +14 -0
  54. package/dist/deployers/index.d.mts.map +1 -0
  55. package/dist/deployers/index.mjs +21 -0
  56. package/dist/deployers/index.mjs.map +1 -0
  57. package/dist/deployers/types.cjs +0 -0
  58. package/dist/deployers/types.d.cts +72 -0
  59. package/dist/deployers/types.d.cts.map +1 -0
  60. package/dist/deployers/types.d.mts +72 -0
  61. package/dist/deployers/types.d.mts.map +1 -0
  62. package/dist/deployers/types.mjs +1 -0
  63. package/dist/errors.cjs +27 -0
  64. package/dist/errors.cjs.map +1 -0
  65. package/dist/errors.d.cts +17 -0
  66. package/dist/errors.d.cts.map +1 -0
  67. package/dist/generate.cjs +225 -0
  68. package/dist/generate.cjs.map +1 -0
  69. package/dist/generate.d.cts +12 -0
  70. package/dist/generate.d.cts.map +1 -0
  71. package/dist/generate.d.mts.map +1 -1
  72. package/dist/generate.mjs +34 -5
  73. package/dist/generate.mjs.map +1 -1
  74. package/dist/generate.test.cjs +283 -0
  75. package/dist/generate.test.cjs.map +1 -0
  76. package/dist/generate.test.d.cts +1 -0
  77. package/dist/generate.test.mjs +1 -1
  78. package/dist/generators/bare-metal-install.cjs +226 -0
  79. package/dist/generators/bare-metal-install.cjs.map +1 -0
  80. package/dist/generators/bare-metal-install.d.cts +17 -0
  81. package/dist/generators/bare-metal-install.d.cts.map +1 -0
  82. package/dist/generators/bare-metal-install.test.cjs +47 -0
  83. package/dist/generators/bare-metal-install.test.cjs.map +1 -0
  84. package/dist/generators/bare-metal-install.test.d.cts +1 -0
  85. package/dist/generators/bare-metal-install.test.mjs +1 -1
  86. package/dist/generators/caddy.cjs +79 -0
  87. package/dist/generators/caddy.cjs.map +1 -0
  88. package/dist/generators/caddy.d.cts +17 -0
  89. package/dist/generators/caddy.d.cts.map +1 -0
  90. package/dist/generators/caddy.test.cjs +44 -0
  91. package/dist/generators/caddy.test.cjs.map +1 -0
  92. package/dist/generators/caddy.test.d.cts +1 -0
  93. package/dist/generators/caddy.test.mjs +1 -1
  94. package/dist/generators/cloud-init.cjs +132 -0
  95. package/dist/generators/cloud-init.cjs.map +1 -0
  96. package/dist/generators/cloud-init.d.cts +25 -0
  97. package/dist/generators/cloud-init.d.cts.map +1 -0
  98. package/dist/generators/cloud-init.d.mts +25 -0
  99. package/dist/generators/cloud-init.d.mts.map +1 -0
  100. package/dist/generators/cloud-init.mjs +130 -0
  101. package/dist/generators/cloud-init.mjs.map +1 -0
  102. package/dist/generators/env.cjs +325 -0
  103. package/dist/generators/env.cjs.map +1 -0
  104. package/dist/generators/env.d.cts +52 -0
  105. package/dist/generators/env.d.cts.map +1 -0
  106. package/dist/generators/env.d.mts +6 -0
  107. package/dist/generators/env.d.mts.map +1 -1
  108. package/dist/generators/env.mjs +58 -6
  109. package/dist/generators/env.mjs.map +1 -1
  110. package/dist/generators/env.test.cjs +59 -0
  111. package/dist/generators/env.test.cjs.map +1 -0
  112. package/dist/generators/env.test.d.cts +1 -0
  113. package/dist/generators/env.test.mjs +1 -1
  114. package/dist/generators/get-shit-done.cjs +40 -0
  115. package/dist/generators/get-shit-done.cjs.map +1 -0
  116. package/dist/generators/get-shit-done.d.cts +10 -0
  117. package/dist/generators/get-shit-done.d.cts.map +1 -0
  118. package/dist/generators/grafana.cjs +296 -0
  119. package/dist/generators/grafana.cjs.map +1 -0
  120. package/dist/generators/grafana.d.cts +22 -0
  121. package/dist/generators/grafana.d.cts.map +1 -0
  122. package/dist/generators/health-check.cjs +707 -0
  123. package/dist/generators/health-check.cjs.map +1 -0
  124. package/dist/generators/health-check.d.cts +18 -0
  125. package/dist/generators/health-check.d.cts.map +1 -0
  126. package/dist/generators/health-check.d.mts +2 -2
  127. package/dist/generators/health-check.d.mts.map +1 -1
  128. package/dist/generators/health-check.mjs.map +1 -1
  129. package/dist/generators/health-check.test.cjs +84 -0
  130. package/dist/generators/health-check.test.cjs.map +1 -0
  131. package/dist/generators/health-check.test.d.cts +1 -0
  132. package/dist/generators/health-check.test.mjs +1 -1
  133. package/dist/generators/n8n-workflows.cjs +77 -0
  134. package/dist/generators/n8n-workflows.cjs.map +1 -0
  135. package/dist/generators/n8n-workflows.d.cts +11 -0
  136. package/dist/generators/n8n-workflows.d.cts.map +1 -0
  137. package/dist/generators/native-services.cjs +80 -0
  138. package/dist/generators/native-services.cjs.map +1 -0
  139. package/dist/generators/native-services.d.cts +17 -0
  140. package/dist/generators/native-services.d.cts.map +1 -0
  141. package/dist/generators/openclaw-install-script.cjs +68 -0
  142. package/dist/generators/openclaw-install-script.cjs.map +1 -0
  143. package/dist/generators/openclaw-install-script.d.cts +12 -0
  144. package/dist/generators/openclaw-install-script.d.cts.map +1 -0
  145. package/dist/generators/openclaw-install-script.d.mts +12 -0
  146. package/dist/generators/openclaw-install-script.d.mts.map +1 -0
  147. package/dist/generators/openclaw-install-script.mjs +66 -0
  148. package/dist/generators/openclaw-install-script.mjs.map +1 -0
  149. package/dist/generators/openclaw-json.cjs +540 -0
  150. package/dist/generators/openclaw-json.cjs.map +1 -0
  151. package/dist/generators/openclaw-json.d.cts +16 -0
  152. package/dist/generators/openclaw-json.d.cts.map +1 -0
  153. package/dist/generators/openclaw-json.d.mts +8 -3
  154. package/dist/generators/openclaw-json.d.mts.map +1 -1
  155. package/dist/generators/openclaw-json.mjs +214 -86
  156. package/dist/generators/openclaw-json.mjs.map +1 -1
  157. package/dist/generators/postgres-init.cjs +189 -0
  158. package/dist/generators/postgres-init.cjs.map +1 -0
  159. package/dist/generators/postgres-init.d.cts +30 -0
  160. package/dist/generators/postgres-init.d.cts.map +1 -0
  161. package/dist/generators/postgres-init.d.mts.map +1 -1
  162. package/dist/generators/postgres-init.mjs +35 -0
  163. package/dist/generators/postgres-init.mjs.map +1 -1
  164. package/dist/generators/prometheus.cjs +109 -0
  165. package/dist/generators/prometheus.cjs.map +1 -0
  166. package/dist/generators/prometheus.d.cts +14 -0
  167. package/dist/generators/prometheus.d.cts.map +1 -0
  168. package/dist/generators/readme.cjs +286 -0
  169. package/dist/generators/readme.cjs.map +1 -0
  170. package/dist/generators/readme.d.cts +27 -0
  171. package/dist/generators/readme.d.cts.map +1 -0
  172. package/dist/generators/readme.d.mts +3 -1
  173. package/dist/generators/readme.d.mts.map +1 -1
  174. package/dist/generators/readme.mjs +88 -3
  175. package/dist/generators/readme.mjs.map +1 -1
  176. package/dist/generators/scripts.cjs +353 -0
  177. package/dist/generators/scripts.cjs.map +1 -0
  178. package/dist/generators/scripts.d.cts +10 -0
  179. package/dist/generators/scripts.d.cts.map +1 -0
  180. package/dist/generators/scripts.test.cjs +51 -0
  181. package/dist/generators/scripts.test.cjs.map +1 -0
  182. package/dist/generators/scripts.test.d.cts +1 -0
  183. package/dist/generators/scripts.test.mjs +1 -1
  184. package/dist/generators/skills.cjs +590 -0
  185. package/dist/generators/skills.cjs.map +1 -0
  186. package/dist/generators/skills.d.cts +14 -0
  187. package/dist/generators/skills.d.cts.map +1 -0
  188. package/dist/generators/stack-manifest.cjs +70 -0
  189. package/dist/generators/stack-manifest.cjs.map +1 -0
  190. package/dist/generators/stack-manifest.d.cts +51 -0
  191. package/dist/generators/stack-manifest.d.cts.map +1 -0
  192. package/dist/generators/stack-manifest.d.mts +51 -0
  193. package/dist/generators/stack-manifest.d.mts.map +1 -0
  194. package/dist/generators/stack-manifest.mjs +68 -0
  195. package/dist/generators/stack-manifest.mjs.map +1 -0
  196. package/dist/generators/traefik.cjs +88 -0
  197. package/dist/generators/traefik.cjs.map +1 -0
  198. package/dist/generators/traefik.d.cts +19 -0
  199. package/dist/generators/traefik.d.cts.map +1 -0
  200. package/dist/generators/traefik.test.cjs +68 -0
  201. package/dist/generators/traefik.test.cjs.map +1 -0
  202. package/dist/generators/traefik.test.d.cts +1 -0
  203. package/dist/generators/traefik.test.mjs +1 -1
  204. package/dist/index.cjs +118 -0
  205. package/dist/index.d.cts +31 -0
  206. package/dist/index.d.mts +9 -3
  207. package/dist/index.mjs +8 -3
  208. package/dist/magic-string.es-D2agHT3I.cjs +1015 -0
  209. package/dist/magic-string.es-D2agHT3I.cjs.map +1 -0
  210. package/dist/manifest-4uLbISXV.cjs +1190 -0
  211. package/dist/manifest-4uLbISXV.cjs.map +1 -0
  212. package/dist/migrations.cjs +37 -0
  213. package/dist/migrations.cjs.map +1 -0
  214. package/dist/migrations.d.cts +14 -0
  215. package/dist/migrations.d.cts.map +1 -0
  216. package/dist/migrations.test.cjs +41 -0
  217. package/dist/migrations.test.cjs.map +1 -0
  218. package/dist/migrations.test.d.cts +1 -0
  219. package/dist/migrations.test.mjs +1 -1
  220. package/dist/port-scanner.cjs +125 -0
  221. package/dist/port-scanner.cjs.map +1 -0
  222. package/dist/port-scanner.d.cts +27 -0
  223. package/dist/port-scanner.d.cts.map +1 -0
  224. package/dist/port-scanner.d.mts +27 -0
  225. package/dist/port-scanner.d.mts.map +1 -0
  226. package/dist/port-scanner.mjs +122 -0
  227. package/dist/port-scanner.mjs.map +1 -0
  228. package/dist/presets/presets.test.cjs +65 -0
  229. package/dist/presets/presets.test.cjs.map +1 -0
  230. package/dist/presets/presets.test.d.cts +1 -0
  231. package/dist/presets/presets.test.d.mts +1 -0
  232. package/dist/presets/presets.test.mjs +64 -0
  233. package/dist/presets/presets.test.mjs.map +1 -0
  234. package/dist/presets/registry.cjs +193 -0
  235. package/dist/presets/registry.cjs.map +1 -0
  236. package/dist/presets/registry.d.cts +9 -0
  237. package/dist/presets/registry.d.cts.map +1 -0
  238. package/dist/presets/registry.d.mts.map +1 -1
  239. package/dist/presets/registry.mjs +38 -8
  240. package/dist/presets/registry.mjs.map +1 -1
  241. package/dist/presets/registry.test.cjs +36 -0
  242. package/dist/presets/registry.test.cjs.map +1 -0
  243. package/dist/presets/registry.test.d.cts +1 -0
  244. package/dist/presets/registry.test.mjs +5 -2
  245. package/dist/presets/registry.test.mjs.map +1 -1
  246. package/dist/resolver.cjs +217 -0
  247. package/dist/resolver.cjs.map +1 -0
  248. package/dist/resolver.d.cts +26 -0
  249. package/dist/resolver.d.cts.map +1 -0
  250. package/dist/resolver.mjs +2 -0
  251. package/dist/resolver.mjs.map +1 -1
  252. package/dist/resolver.test.cjs +236 -0
  253. package/dist/resolver.test.cjs.map +1 -0
  254. package/dist/resolver.test.d.cts +1 -0
  255. package/dist/resolver.test.mjs +1 -1
  256. package/dist/schema.cjs +354 -0
  257. package/dist/schema.cjs.map +1 -0
  258. package/dist/schema.d.cts +854 -0
  259. package/dist/schema.d.cts.map +1 -0
  260. package/dist/schema.d.mts +56 -1
  261. package/dist/schema.d.mts.map +1 -1
  262. package/dist/schema.mjs +31 -4
  263. package/dist/schema.mjs.map +1 -1
  264. package/dist/schema.test.cjs +263 -0
  265. package/dist/schema.test.cjs.map +1 -0
  266. package/dist/schema.test.d.cts +1 -0
  267. package/dist/schema.test.mjs +1 -1
  268. package/dist/services/definitions/anything-llm.cjs +46 -0
  269. package/dist/services/definitions/anything-llm.cjs.map +1 -0
  270. package/dist/services/definitions/anything-llm.d.cts +7 -0
  271. package/dist/services/definitions/anything-llm.d.cts.map +1 -0
  272. package/dist/services/definitions/anything-llm.mjs +2 -2
  273. package/dist/services/definitions/anything-llm.mjs.map +1 -1
  274. package/dist/services/definitions/appflowy.cjs +47 -0
  275. package/dist/services/definitions/appflowy.cjs.map +1 -0
  276. package/dist/services/definitions/appflowy.d.cts +7 -0
  277. package/dist/services/definitions/appflowy.d.cts.map +1 -0
  278. package/dist/services/definitions/appflowy.mjs +1 -1
  279. package/dist/services/definitions/appflowy.mjs.map +1 -1
  280. package/dist/services/definitions/authentik.cjs +107 -0
  281. package/dist/services/definitions/authentik.cjs.map +1 -0
  282. package/dist/services/definitions/authentik.d.cts +7 -0
  283. package/dist/services/definitions/authentik.d.cts.map +1 -0
  284. package/dist/services/definitions/authentik.mjs +5 -5
  285. package/dist/services/definitions/authentik.mjs.map +1 -1
  286. package/dist/services/definitions/beszel.cjs +47 -0
  287. package/dist/services/definitions/beszel.cjs.map +1 -0
  288. package/dist/services/definitions/beszel.d.cts +7 -0
  289. package/dist/services/definitions/beszel.d.cts.map +1 -0
  290. package/dist/services/definitions/beszel.mjs +1 -1
  291. package/dist/services/definitions/beszel.mjs.map +1 -1
  292. package/dist/services/definitions/browserless.cjs +87 -0
  293. package/dist/services/definitions/browserless.cjs.map +1 -0
  294. package/dist/services/definitions/browserless.d.cts +7 -0
  295. package/dist/services/definitions/browserless.d.cts.map +1 -0
  296. package/dist/services/definitions/browserless.mjs +1 -1
  297. package/dist/services/definitions/browserless.mjs.map +1 -1
  298. package/dist/services/definitions/caddy.cjs +73 -0
  299. package/dist/services/definitions/caddy.cjs.map +1 -0
  300. package/dist/services/definitions/caddy.d.cts +7 -0
  301. package/dist/services/definitions/caddy.d.cts.map +1 -0
  302. package/dist/services/definitions/caddy.mjs +2 -2
  303. package/dist/services/definitions/caddy.mjs.map +1 -1
  304. package/dist/services/definitions/cal-com.cjs +90 -0
  305. package/dist/services/definitions/cal-com.cjs.map +1 -0
  306. package/dist/services/definitions/cal-com.d.cts +7 -0
  307. package/dist/services/definitions/cal-com.d.cts.map +1 -0
  308. package/dist/services/definitions/cal-com.mjs +2 -2
  309. package/dist/services/definitions/cal-com.mjs.map +1 -1
  310. package/dist/services/definitions/chromadb.cjs +65 -0
  311. package/dist/services/definitions/chromadb.cjs.map +1 -0
  312. package/dist/services/definitions/chromadb.d.cts +7 -0
  313. package/dist/services/definitions/chromadb.d.cts.map +1 -0
  314. package/dist/services/definitions/chromadb.mjs +3 -3
  315. package/dist/services/definitions/chromadb.mjs.map +1 -1
  316. package/dist/services/definitions/claude-code.cjs +54 -0
  317. package/dist/services/definitions/claude-code.cjs.map +1 -0
  318. package/dist/services/definitions/claude-code.d.cts +7 -0
  319. package/dist/services/definitions/claude-code.d.cts.map +1 -0
  320. package/dist/services/definitions/claude-code.mjs +1 -1
  321. package/dist/services/definitions/claude-code.mjs.map +1 -1
  322. package/dist/services/definitions/code-server.cjs +68 -0
  323. package/dist/services/definitions/code-server.cjs.map +1 -0
  324. package/dist/services/definitions/code-server.d.cts +7 -0
  325. package/dist/services/definitions/code-server.d.cts.map +1 -0
  326. package/dist/services/definitions/code-server.mjs +1 -1
  327. package/dist/services/definitions/code-server.mjs.map +1 -1
  328. package/dist/services/definitions/codex.cjs +47 -0
  329. package/dist/services/definitions/codex.cjs.map +1 -0
  330. package/dist/services/definitions/codex.d.cts +7 -0
  331. package/dist/services/definitions/codex.d.cts.map +1 -0
  332. package/dist/services/definitions/codex.mjs +1 -1
  333. package/dist/services/definitions/codex.mjs.map +1 -1
  334. package/dist/services/definitions/comfyui.cjs +85 -0
  335. package/dist/services/definitions/comfyui.cjs.map +1 -0
  336. package/dist/services/definitions/comfyui.d.cts +7 -0
  337. package/dist/services/definitions/comfyui.d.cts.map +1 -0
  338. package/dist/services/definitions/comfyui.mjs +1 -1
  339. package/dist/services/definitions/comfyui.mjs.map +1 -1
  340. package/dist/services/definitions/convex-dashboard.cjs +48 -0
  341. package/dist/services/definitions/convex-dashboard.cjs.map +1 -0
  342. package/dist/services/definitions/convex-dashboard.d.cts +7 -0
  343. package/dist/services/definitions/convex-dashboard.d.cts.map +1 -0
  344. package/dist/services/definitions/convex.cjs +120 -0
  345. package/dist/services/definitions/convex.cjs.map +1 -0
  346. package/dist/services/definitions/convex.d.cts +7 -0
  347. package/dist/services/definitions/convex.d.cts.map +1 -0
  348. package/dist/services/definitions/coolify.cjs +51 -0
  349. package/dist/services/definitions/coolify.cjs.map +1 -0
  350. package/dist/services/definitions/coolify.d.cts +7 -0
  351. package/dist/services/definitions/coolify.d.cts.map +1 -0
  352. package/dist/services/definitions/coolify.mjs +1 -1
  353. package/dist/services/definitions/coolify.mjs.map +1 -1
  354. package/dist/services/definitions/crowdsec.cjs +64 -0
  355. package/dist/services/definitions/crowdsec.cjs.map +1 -0
  356. package/dist/services/definitions/crowdsec.d.cts +7 -0
  357. package/dist/services/definitions/crowdsec.d.cts.map +1 -0
  358. package/dist/services/definitions/crowdsec.mjs +2 -2
  359. package/dist/services/definitions/crowdsec.mjs.map +1 -1
  360. package/dist/services/definitions/desktop-environment.cjs +155 -0
  361. package/dist/services/definitions/desktop-environment.cjs.map +1 -0
  362. package/dist/services/definitions/desktop-environment.d.cts +7 -0
  363. package/dist/services/definitions/desktop-environment.d.cts.map +1 -0
  364. package/dist/services/definitions/desktop-environment.mjs +1 -1
  365. package/dist/services/definitions/desktop-environment.mjs.map +1 -1
  366. package/dist/services/definitions/dify.cjs +83 -0
  367. package/dist/services/definitions/dify.cjs.map +1 -0
  368. package/dist/services/definitions/dify.d.cts +7 -0
  369. package/dist/services/definitions/dify.d.cts.map +1 -0
  370. package/dist/services/definitions/dify.mjs +1 -1
  371. package/dist/services/definitions/dify.mjs.map +1 -1
  372. package/dist/services/definitions/docsgpt.cjs +47 -0
  373. package/dist/services/definitions/docsgpt.cjs.map +1 -0
  374. package/dist/services/definitions/docsgpt.d.cts +7 -0
  375. package/dist/services/definitions/docsgpt.d.cts.map +1 -0
  376. package/dist/services/definitions/docsgpt.mjs +1 -1
  377. package/dist/services/definitions/docsgpt.mjs.map +1 -1
  378. package/dist/services/definitions/dokploy.cjs +51 -0
  379. package/dist/services/definitions/dokploy.cjs.map +1 -0
  380. package/dist/services/definitions/dokploy.d.cts +7 -0
  381. package/dist/services/definitions/dokploy.d.cts.map +1 -0
  382. package/dist/services/definitions/dokploy.mjs +2 -2
  383. package/dist/services/definitions/dokploy.mjs.map +1 -1
  384. package/dist/services/definitions/dozzle.cjs +43 -0
  385. package/dist/services/definitions/dozzle.cjs.map +1 -0
  386. package/dist/services/definitions/dozzle.d.cts +7 -0
  387. package/dist/services/definitions/dozzle.d.cts.map +1 -0
  388. package/dist/services/definitions/dozzle.mjs +1 -1
  389. package/dist/services/definitions/dozzle.mjs.map +1 -1
  390. package/dist/services/definitions/ffmpeg.cjs +68 -0
  391. package/dist/services/definitions/ffmpeg.cjs.map +1 -0
  392. package/dist/services/definitions/ffmpeg.d.cts +7 -0
  393. package/dist/services/definitions/ffmpeg.d.cts.map +1 -0
  394. package/dist/services/definitions/ffmpeg.mjs +2 -2
  395. package/dist/services/definitions/ffmpeg.mjs.map +1 -1
  396. package/dist/services/definitions/flowise.cjs +47 -0
  397. package/dist/services/definitions/flowise.cjs.map +1 -0
  398. package/dist/services/definitions/flowise.d.cts +7 -0
  399. package/dist/services/definitions/flowise.d.cts.map +1 -0
  400. package/dist/services/definitions/flowise.mjs +1 -1
  401. package/dist/services/definitions/flowise.mjs.map +1 -1
  402. package/dist/services/definitions/gemini-cli.cjs +54 -0
  403. package/dist/services/definitions/gemini-cli.cjs.map +1 -0
  404. package/dist/services/definitions/gemini-cli.d.cts +7 -0
  405. package/dist/services/definitions/gemini-cli.d.cts.map +1 -0
  406. package/dist/services/definitions/gemini-cli.mjs +7 -1
  407. package/dist/services/definitions/gemini-cli.mjs.map +1 -1
  408. package/dist/services/definitions/ghost.cjs +60 -0
  409. package/dist/services/definitions/ghost.cjs.map +1 -0
  410. package/dist/services/definitions/ghost.d.cts +7 -0
  411. package/dist/services/definitions/ghost.d.cts.map +1 -0
  412. package/dist/services/definitions/ghost.mjs +1 -1
  413. package/dist/services/definitions/ghost.mjs.map +1 -1
  414. package/dist/services/definitions/gitea.cjs +51 -0
  415. package/dist/services/definitions/gitea.cjs.map +1 -0
  416. package/dist/services/definitions/gitea.d.cts +7 -0
  417. package/dist/services/definitions/gitea.d.cts.map +1 -0
  418. package/dist/services/definitions/gitea.mjs +1 -1
  419. package/dist/services/definitions/gitea.mjs.map +1 -1
  420. package/dist/services/definitions/gotify.cjs +64 -0
  421. package/dist/services/definitions/gotify.cjs.map +1 -0
  422. package/dist/services/definitions/gotify.d.cts +7 -0
  423. package/dist/services/definitions/gotify.d.cts.map +1 -0
  424. package/dist/services/definitions/gotify.mjs +3 -3
  425. package/dist/services/definitions/gotify.mjs.map +1 -1
  426. package/dist/services/definitions/grafana.cjs +77 -0
  427. package/dist/services/definitions/grafana.cjs.map +1 -0
  428. package/dist/services/definitions/grafana.d.cts +7 -0
  429. package/dist/services/definitions/grafana.d.cts.map +1 -0
  430. package/dist/services/definitions/grafana.mjs +2 -2
  431. package/dist/services/definitions/grafana.mjs.map +1 -1
  432. package/dist/services/definitions/headscale.cjs +73 -0
  433. package/dist/services/definitions/headscale.cjs.map +1 -0
  434. package/dist/services/definitions/headscale.d.cts +7 -0
  435. package/dist/services/definitions/headscale.d.cts.map +1 -0
  436. package/dist/services/definitions/headscale.mjs +2 -2
  437. package/dist/services/definitions/headscale.mjs.map +1 -1
  438. package/dist/services/definitions/hexstrike.cjs +46 -0
  439. package/dist/services/definitions/hexstrike.cjs.map +1 -0
  440. package/dist/services/definitions/hexstrike.d.cts +7 -0
  441. package/dist/services/definitions/hexstrike.d.cts.map +1 -0
  442. package/dist/services/definitions/hexstrike.mjs +1 -1
  443. package/dist/services/definitions/hexstrike.mjs.map +1 -1
  444. package/dist/services/definitions/homeassistant.cjs +63 -0
  445. package/dist/services/definitions/homeassistant.cjs.map +1 -0
  446. package/dist/services/definitions/homeassistant.d.cts +7 -0
  447. package/dist/services/definitions/homeassistant.d.cts.map +1 -0
  448. package/dist/services/definitions/homeassistant.mjs +1 -1
  449. package/dist/services/definitions/homeassistant.mjs.map +1 -1
  450. package/dist/services/definitions/immich.cjs +94 -0
  451. package/dist/services/definitions/immich.cjs.map +1 -0
  452. package/dist/services/definitions/immich.d.cts +7 -0
  453. package/dist/services/definitions/immich.d.cts.map +1 -0
  454. package/dist/services/definitions/immich.mjs +6 -6
  455. package/dist/services/definitions/immich.mjs.map +1 -1
  456. package/dist/services/definitions/index.cjs +291 -0
  457. package/dist/services/definitions/index.cjs.map +1 -0
  458. package/dist/services/definitions/index.d.cts +101 -0
  459. package/dist/services/definitions/index.d.cts.map +1 -0
  460. package/dist/services/definitions/jellyfin.cjs +64 -0
  461. package/dist/services/definitions/jellyfin.cjs.map +1 -0
  462. package/dist/services/definitions/jellyfin.d.cts +7 -0
  463. package/dist/services/definitions/jellyfin.d.cts.map +1 -0
  464. package/dist/services/definitions/jellyfin.mjs +1 -1
  465. package/dist/services/definitions/jellyfin.mjs.map +1 -1
  466. package/dist/services/definitions/jenkins.cjs +64 -0
  467. package/dist/services/definitions/jenkins.cjs.map +1 -0
  468. package/dist/services/definitions/jenkins.d.cts +7 -0
  469. package/dist/services/definitions/jenkins.d.cts.map +1 -0
  470. package/dist/services/definitions/jenkins.mjs +1 -1
  471. package/dist/services/definitions/jenkins.mjs.map +1 -1
  472. package/dist/services/definitions/kimi.cjs +48 -0
  473. package/dist/services/definitions/kimi.cjs.map +1 -0
  474. package/dist/services/definitions/kimi.d.cts +7 -0
  475. package/dist/services/definitions/kimi.d.cts.map +1 -0
  476. package/dist/services/definitions/kimi.mjs +1 -1
  477. package/dist/services/definitions/kimi.mjs.map +1 -1
  478. package/dist/services/definitions/lasuite-meet-agents.cjs +38 -0
  479. package/dist/services/definitions/lasuite-meet-agents.cjs.map +1 -0
  480. package/dist/services/definitions/lasuite-meet-agents.d.cts +7 -0
  481. package/dist/services/definitions/lasuite-meet-agents.d.cts.map +1 -0
  482. package/dist/services/definitions/lasuite-meet-agents.mjs +1 -1
  483. package/dist/services/definitions/lasuite-meet-agents.mjs.map +1 -1
  484. package/dist/services/definitions/lasuite-meet-backend.cjs +136 -0
  485. package/dist/services/definitions/lasuite-meet-backend.cjs.map +1 -0
  486. package/dist/services/definitions/lasuite-meet-backend.d.cts +7 -0
  487. package/dist/services/definitions/lasuite-meet-backend.d.cts.map +1 -0
  488. package/dist/services/definitions/lasuite-meet-backend.mjs +3 -3
  489. package/dist/services/definitions/lasuite-meet-backend.mjs.map +1 -1
  490. package/dist/services/definitions/lasuite-meet-frontend.cjs +50 -0
  491. package/dist/services/definitions/lasuite-meet-frontend.cjs.map +1 -0
  492. package/dist/services/definitions/lasuite-meet-frontend.d.cts +7 -0
  493. package/dist/services/definitions/lasuite-meet-frontend.d.cts.map +1 -0
  494. package/dist/services/definitions/lasuite-meet-frontend.mjs +3 -3
  495. package/dist/services/definitions/lasuite-meet-frontend.mjs.map +1 -1
  496. package/dist/services/definitions/librechat.cjs +52 -0
  497. package/dist/services/definitions/librechat.cjs.map +1 -0
  498. package/dist/services/definitions/librechat.d.cts +7 -0
  499. package/dist/services/definitions/librechat.d.cts.map +1 -0
  500. package/dist/services/definitions/librechat.mjs +1 -1
  501. package/dist/services/definitions/librechat.mjs.map +1 -1
  502. package/dist/services/definitions/lightpanda.cjs +61 -0
  503. package/dist/services/definitions/lightpanda.cjs.map +1 -0
  504. package/dist/services/definitions/lightpanda.d.cts +7 -0
  505. package/dist/services/definitions/lightpanda.d.cts.map +1 -0
  506. package/dist/services/definitions/litellm.cjs +49 -0
  507. package/dist/services/definitions/litellm.cjs.map +1 -0
  508. package/dist/services/definitions/litellm.d.cts +7 -0
  509. package/dist/services/definitions/litellm.d.cts.map +1 -0
  510. package/dist/services/definitions/litellm.mjs +1 -1
  511. package/dist/services/definitions/litellm.mjs.map +1 -1
  512. package/dist/services/definitions/livekit.cjs +58 -0
  513. package/dist/services/definitions/livekit.cjs.map +1 -0
  514. package/dist/services/definitions/livekit.d.cts +7 -0
  515. package/dist/services/definitions/livekit.d.cts.map +1 -0
  516. package/dist/services/definitions/loki.cjs +53 -0
  517. package/dist/services/definitions/loki.cjs.map +1 -0
  518. package/dist/services/definitions/loki.d.cts +7 -0
  519. package/dist/services/definitions/loki.d.cts.map +1 -0
  520. package/dist/services/definitions/loki.mjs +1 -1
  521. package/dist/services/definitions/loki.mjs.map +1 -1
  522. package/dist/services/definitions/matomo.cjs +82 -0
  523. package/dist/services/definitions/matomo.cjs.map +1 -0
  524. package/dist/services/definitions/matomo.d.cts +7 -0
  525. package/dist/services/definitions/matomo.d.cts.map +1 -0
  526. package/dist/services/definitions/matomo.mjs +1 -1
  527. package/dist/services/definitions/matomo.mjs.map +1 -1
  528. package/dist/services/definitions/matrix-synapse.cjs +90 -0
  529. package/dist/services/definitions/matrix-synapse.cjs.map +1 -0
  530. package/dist/services/definitions/matrix-synapse.d.cts +7 -0
  531. package/dist/services/definitions/matrix-synapse.d.cts.map +1 -0
  532. package/dist/services/definitions/matrix-synapse.mjs +1 -1
  533. package/dist/services/definitions/matrix-synapse.mjs.map +1 -1
  534. package/dist/services/definitions/mattermost.cjs +63 -0
  535. package/dist/services/definitions/mattermost.cjs.map +1 -0
  536. package/dist/services/definitions/mattermost.d.cts +7 -0
  537. package/dist/services/definitions/mattermost.d.cts.map +1 -0
  538. package/dist/services/definitions/mattermost.mjs +1 -1
  539. package/dist/services/definitions/mattermost.mjs.map +1 -1
  540. package/dist/services/definitions/meilisearch.cjs +80 -0
  541. package/dist/services/definitions/meilisearch.cjs.map +1 -0
  542. package/dist/services/definitions/meilisearch.d.cts +7 -0
  543. package/dist/services/definitions/meilisearch.d.cts.map +1 -0
  544. package/dist/services/definitions/meilisearch.mjs +4 -4
  545. package/dist/services/definitions/meilisearch.mjs.map +1 -1
  546. package/dist/services/definitions/milvus.cjs +77 -0
  547. package/dist/services/definitions/milvus.cjs.map +1 -0
  548. package/dist/services/definitions/milvus.d.cts +7 -0
  549. package/dist/services/definitions/milvus.d.cts.map +1 -0
  550. package/dist/services/definitions/milvus.mjs +1 -1
  551. package/dist/services/definitions/milvus.mjs.map +1 -1
  552. package/dist/services/definitions/minio.cjs +104 -0
  553. package/dist/services/definitions/minio.cjs.map +1 -0
  554. package/dist/services/definitions/minio.d.cts +7 -0
  555. package/dist/services/definitions/minio.d.cts.map +1 -0
  556. package/dist/services/definitions/minio.mjs +1 -1
  557. package/dist/services/definitions/minio.mjs.map +1 -1
  558. package/dist/services/definitions/mission-control.cjs +69 -0
  559. package/dist/services/definitions/mission-control.cjs.map +1 -0
  560. package/dist/services/definitions/mission-control.d.cts +7 -0
  561. package/dist/services/definitions/mission-control.d.cts.map +1 -0
  562. package/dist/services/definitions/mixpost.cjs +89 -0
  563. package/dist/services/definitions/mixpost.cjs.map +1 -0
  564. package/dist/services/definitions/mixpost.d.cts +7 -0
  565. package/dist/services/definitions/mixpost.d.cts.map +1 -0
  566. package/dist/services/definitions/mixpost.mjs +1 -1
  567. package/dist/services/definitions/mixpost.mjs.map +1 -1
  568. package/dist/services/definitions/motion-canvas.cjs +54 -0
  569. package/dist/services/definitions/motion-canvas.cjs.map +1 -0
  570. package/dist/services/definitions/motion-canvas.d.cts +7 -0
  571. package/dist/services/definitions/motion-canvas.d.cts.map +1 -0
  572. package/dist/services/definitions/motion-canvas.mjs +1 -1
  573. package/dist/services/definitions/motion-canvas.mjs.map +1 -1
  574. package/dist/services/definitions/n8n.cjs +156 -0
  575. package/dist/services/definitions/n8n.cjs.map +1 -0
  576. package/dist/services/definitions/n8n.d.cts +7 -0
  577. package/dist/services/definitions/n8n.d.cts.map +1 -0
  578. package/dist/services/definitions/n8n.mjs +1 -1
  579. package/dist/services/definitions/n8n.mjs.map +1 -1
  580. package/dist/services/definitions/neo4j.cjs +93 -0
  581. package/dist/services/definitions/neo4j.cjs.map +1 -0
  582. package/dist/services/definitions/neo4j.d.cts +7 -0
  583. package/dist/services/definitions/neo4j.d.cts.map +1 -0
  584. package/dist/services/definitions/neo4j.mjs +1 -1
  585. package/dist/services/definitions/neo4j.mjs.map +1 -1
  586. package/dist/services/definitions/nextcloud.cjs +82 -0
  587. package/dist/services/definitions/nextcloud.cjs.map +1 -0
  588. package/dist/services/definitions/nextcloud.d.cts +7 -0
  589. package/dist/services/definitions/nextcloud.d.cts.map +1 -0
  590. package/dist/services/definitions/nextcloud.mjs +19 -19
  591. package/dist/services/definitions/nextcloud.mjs.map +1 -1
  592. package/dist/services/definitions/nocodb.cjs +47 -0
  593. package/dist/services/definitions/nocodb.cjs.map +1 -0
  594. package/dist/services/definitions/nocodb.d.cts +7 -0
  595. package/dist/services/definitions/nocodb.d.cts.map +1 -0
  596. package/dist/services/definitions/nocodb.mjs +1 -1
  597. package/dist/services/definitions/nocodb.mjs.map +1 -1
  598. package/dist/services/definitions/ntfy.cjs +65 -0
  599. package/dist/services/definitions/ntfy.cjs.map +1 -0
  600. package/dist/services/definitions/ntfy.d.cts +7 -0
  601. package/dist/services/definitions/ntfy.d.cts.map +1 -0
  602. package/dist/services/definitions/ntfy.mjs +2 -2
  603. package/dist/services/definitions/ntfy.mjs.map +1 -1
  604. package/dist/services/definitions/ollama.cjs +68 -0
  605. package/dist/services/definitions/ollama.cjs.map +1 -0
  606. package/dist/services/definitions/ollama.d.cts +7 -0
  607. package/dist/services/definitions/ollama.d.cts.map +1 -0
  608. package/dist/services/definitions/ollama.mjs +1 -1
  609. package/dist/services/definitions/ollama.mjs.map +1 -1
  610. package/dist/services/definitions/open-webui.cjs +52 -0
  611. package/dist/services/definitions/open-webui.cjs.map +1 -0
  612. package/dist/services/definitions/open-webui.d.cts +7 -0
  613. package/dist/services/definitions/open-webui.d.cts.map +1 -0
  614. package/dist/services/definitions/open-webui.mjs +1 -1
  615. package/dist/services/definitions/open-webui.mjs.map +1 -1
  616. package/dist/services/definitions/opencode.cjs +52 -0
  617. package/dist/services/definitions/opencode.cjs.map +1 -0
  618. package/dist/services/definitions/opencode.d.cts +7 -0
  619. package/dist/services/definitions/opencode.d.cts.map +1 -0
  620. package/dist/services/definitions/opencode.mjs +1 -1
  621. package/dist/services/definitions/opencode.mjs.map +1 -1
  622. package/dist/services/definitions/openpanel.cjs +48 -0
  623. package/dist/services/definitions/openpanel.cjs.map +1 -0
  624. package/dist/services/definitions/openpanel.d.cts +7 -0
  625. package/dist/services/definitions/openpanel.d.cts.map +1 -0
  626. package/dist/services/definitions/openpanel.mjs +3 -3
  627. package/dist/services/definitions/openpanel.mjs.map +1 -1
  628. package/dist/services/definitions/outline.cjs +76 -0
  629. package/dist/services/definitions/outline.cjs.map +1 -0
  630. package/dist/services/definitions/outline.d.cts +7 -0
  631. package/dist/services/definitions/outline.d.cts.map +1 -0
  632. package/dist/services/definitions/paperless-ngx.cjs +95 -0
  633. package/dist/services/definitions/paperless-ngx.cjs.map +1 -0
  634. package/dist/services/definitions/paperless-ngx.d.cts +7 -0
  635. package/dist/services/definitions/paperless-ngx.d.cts.map +1 -0
  636. package/dist/services/definitions/paperless-ngx.mjs +1 -1
  637. package/dist/services/definitions/paperless-ngx.mjs.map +1 -1
  638. package/dist/services/definitions/pentagi.cjs +46 -0
  639. package/dist/services/definitions/pentagi.cjs.map +1 -0
  640. package/dist/services/definitions/pentagi.d.cts +7 -0
  641. package/dist/services/definitions/pentagi.d.cts.map +1 -0
  642. package/dist/services/definitions/pentagi.mjs +2 -2
  643. package/dist/services/definitions/pentagi.mjs.map +1 -1
  644. package/dist/services/definitions/pentestagent.cjs +41 -0
  645. package/dist/services/definitions/pentestagent.cjs.map +1 -0
  646. package/dist/services/definitions/pentestagent.d.cts +7 -0
  647. package/dist/services/definitions/pentestagent.d.cts.map +1 -0
  648. package/dist/services/definitions/playwright-server.cjs +44 -0
  649. package/dist/services/definitions/playwright-server.cjs.map +1 -0
  650. package/dist/services/definitions/playwright-server.d.cts +7 -0
  651. package/dist/services/definitions/playwright-server.d.cts.map +1 -0
  652. package/dist/services/definitions/playwright-server.mjs +1 -1
  653. package/dist/services/definitions/playwright-server.mjs.map +1 -1
  654. package/dist/services/definitions/portainer.cjs +51 -0
  655. package/dist/services/definitions/portainer.cjs.map +1 -0
  656. package/dist/services/definitions/portainer.d.cts +7 -0
  657. package/dist/services/definitions/portainer.d.cts.map +1 -0
  658. package/dist/services/definitions/portainer.mjs +1 -1
  659. package/dist/services/definitions/portainer.mjs.map +1 -1
  660. package/dist/services/definitions/postgresql.cjs +86 -0
  661. package/dist/services/definitions/postgresql.cjs.map +1 -0
  662. package/dist/services/definitions/postgresql.d.cts +7 -0
  663. package/dist/services/definitions/postgresql.d.cts.map +1 -0
  664. package/dist/services/definitions/postgresql.mjs +1 -1
  665. package/dist/services/definitions/postgresql.mjs.map +1 -1
  666. package/dist/services/definitions/postiz.cjs +85 -0
  667. package/dist/services/definitions/postiz.cjs.map +1 -0
  668. package/dist/services/definitions/postiz.d.cts +7 -0
  669. package/dist/services/definitions/postiz.d.cts.map +1 -0
  670. package/dist/services/definitions/postiz.mjs +1 -1
  671. package/dist/services/definitions/postiz.mjs.map +1 -1
  672. package/dist/services/definitions/prometheus.cjs +54 -0
  673. package/dist/services/definitions/prometheus.cjs.map +1 -0
  674. package/dist/services/definitions/prometheus.d.cts +7 -0
  675. package/dist/services/definitions/prometheus.d.cts.map +1 -0
  676. package/dist/services/definitions/prometheus.mjs +1 -1
  677. package/dist/services/definitions/prometheus.mjs.map +1 -1
  678. package/dist/services/definitions/qdrant.cjs +79 -0
  679. package/dist/services/definitions/qdrant.cjs.map +1 -0
  680. package/dist/services/definitions/qdrant.d.cts +7 -0
  681. package/dist/services/definitions/qdrant.d.cts.map +1 -0
  682. package/dist/services/definitions/qdrant.mjs +1 -1
  683. package/dist/services/definitions/qdrant.mjs.map +1 -1
  684. package/dist/services/definitions/redis.cjs +93 -0
  685. package/dist/services/definitions/redis.cjs.map +1 -0
  686. package/dist/services/definitions/redis.d.cts +7 -0
  687. package/dist/services/definitions/redis.d.cts.map +1 -0
  688. package/dist/services/definitions/redis.mjs +1 -1
  689. package/dist/services/definitions/redis.mjs.map +1 -1
  690. package/dist/services/definitions/remotion.cjs +57 -0
  691. package/dist/services/definitions/remotion.cjs.map +1 -0
  692. package/dist/services/definitions/remotion.d.cts +7 -0
  693. package/dist/services/definitions/remotion.d.cts.map +1 -0
  694. package/dist/services/definitions/remotion.mjs +1 -1
  695. package/dist/services/definitions/remotion.mjs.map +1 -1
  696. package/dist/services/definitions/rocketchat.cjs +59 -0
  697. package/dist/services/definitions/rocketchat.cjs.map +1 -0
  698. package/dist/services/definitions/rocketchat.d.cts +7 -0
  699. package/dist/services/definitions/rocketchat.d.cts.map +1 -0
  700. package/dist/services/definitions/rocketchat.mjs +1 -1
  701. package/dist/services/definitions/rocketchat.mjs.map +1 -1
  702. package/dist/services/definitions/scrapling.cjs +46 -0
  703. package/dist/services/definitions/scrapling.cjs.map +1 -0
  704. package/dist/services/definitions/scrapling.d.cts +7 -0
  705. package/dist/services/definitions/scrapling.d.cts.map +1 -0
  706. package/dist/services/definitions/scrapling.mjs +2 -2
  707. package/dist/services/definitions/scrapling.mjs.map +1 -1
  708. package/dist/services/definitions/searxng.cjs +67 -0
  709. package/dist/services/definitions/searxng.cjs.map +1 -0
  710. package/dist/services/definitions/searxng.d.cts +7 -0
  711. package/dist/services/definitions/searxng.d.cts.map +1 -0
  712. package/dist/services/definitions/searxng.mjs +1 -1
  713. package/dist/services/definitions/searxng.mjs.map +1 -1
  714. package/dist/services/definitions/signoz.cjs +56 -0
  715. package/dist/services/definitions/signoz.cjs.map +1 -0
  716. package/dist/services/definitions/signoz.d.cts +7 -0
  717. package/dist/services/definitions/signoz.d.cts.map +1 -0
  718. package/dist/services/definitions/signoz.mjs +2 -2
  719. package/dist/services/definitions/signoz.mjs.map +1 -1
  720. package/dist/services/definitions/solidityguard.cjs +51 -0
  721. package/dist/services/definitions/solidityguard.cjs.map +1 -0
  722. package/dist/services/definitions/solidityguard.d.cts +7 -0
  723. package/dist/services/definitions/solidityguard.d.cts.map +1 -0
  724. package/dist/services/definitions/solidityguard.mjs +1 -1
  725. package/dist/services/definitions/solidityguard.mjs.map +1 -1
  726. package/dist/services/definitions/stable-diffusion.cjs +50 -0
  727. package/dist/services/definitions/stable-diffusion.cjs.map +1 -0
  728. package/dist/services/definitions/stable-diffusion.d.cts +7 -0
  729. package/dist/services/definitions/stable-diffusion.d.cts.map +1 -0
  730. package/dist/services/definitions/stable-diffusion.mjs +1 -1
  731. package/dist/services/definitions/stable-diffusion.mjs.map +1 -1
  732. package/dist/services/definitions/steel-browser.cjs +79 -0
  733. package/dist/services/definitions/steel-browser.cjs.map +1 -0
  734. package/dist/services/definitions/steel-browser.d.cts +7 -0
  735. package/dist/services/definitions/steel-browser.d.cts.map +1 -0
  736. package/dist/services/definitions/steel-browser.mjs +1 -1
  737. package/dist/services/definitions/steel-browser.mjs.map +1 -1
  738. package/dist/services/definitions/stream-gateway.cjs +135 -0
  739. package/dist/services/definitions/stream-gateway.cjs.map +1 -0
  740. package/dist/services/definitions/stream-gateway.d.cts +7 -0
  741. package/dist/services/definitions/stream-gateway.d.cts.map +1 -0
  742. package/dist/services/definitions/stream-gateway.mjs +2 -2
  743. package/dist/services/definitions/stream-gateway.mjs.map +1 -1
  744. package/dist/services/definitions/supabase.cjs +71 -0
  745. package/dist/services/definitions/supabase.cjs.map +1 -0
  746. package/dist/services/definitions/supabase.d.cts +7 -0
  747. package/dist/services/definitions/supabase.d.cts.map +1 -0
  748. package/dist/services/definitions/supabase.mjs +2 -2
  749. package/dist/services/definitions/supabase.mjs.map +1 -1
  750. package/dist/services/definitions/tailscale.cjs +72 -0
  751. package/dist/services/definitions/tailscale.cjs.map +1 -0
  752. package/dist/services/definitions/tailscale.d.cts +7 -0
  753. package/dist/services/definitions/tailscale.d.cts.map +1 -0
  754. package/dist/services/definitions/tailscale.mjs +1 -1
  755. package/dist/services/definitions/tailscale.mjs.map +1 -1
  756. package/dist/services/definitions/temporal.cjs +102 -0
  757. package/dist/services/definitions/temporal.cjs.map +1 -0
  758. package/dist/services/definitions/temporal.d.cts +7 -0
  759. package/dist/services/definitions/temporal.d.cts.map +1 -0
  760. package/dist/services/definitions/traefik.cjs +59 -0
  761. package/dist/services/definitions/traefik.cjs.map +1 -0
  762. package/dist/services/definitions/traefik.d.cts +7 -0
  763. package/dist/services/definitions/traefik.d.cts.map +1 -0
  764. package/dist/services/definitions/traefik.mjs +1 -1
  765. package/dist/services/definitions/traefik.mjs.map +1 -1
  766. package/dist/services/definitions/umami.cjs +48 -0
  767. package/dist/services/definitions/umami.cjs.map +1 -0
  768. package/dist/services/definitions/umami.d.cts +7 -0
  769. package/dist/services/definitions/umami.d.cts.map +1 -0
  770. package/dist/services/definitions/uptime-kuma.cjs +53 -0
  771. package/dist/services/definitions/uptime-kuma.cjs.map +1 -0
  772. package/dist/services/definitions/uptime-kuma.d.cts +7 -0
  773. package/dist/services/definitions/uptime-kuma.d.cts.map +1 -0
  774. package/dist/services/definitions/uptime-kuma.mjs +2 -2
  775. package/dist/services/definitions/uptime-kuma.mjs.map +1 -1
  776. package/dist/services/definitions/usesend.cjs +101 -0
  777. package/dist/services/definitions/usesend.cjs.map +1 -0
  778. package/dist/services/definitions/usesend.d.cts +7 -0
  779. package/dist/services/definitions/usesend.d.cts.map +1 -0
  780. package/dist/services/definitions/usesend.mjs +4 -4
  781. package/dist/services/definitions/usesend.mjs.map +1 -1
  782. package/dist/services/definitions/valkey.cjs +63 -0
  783. package/dist/services/definitions/valkey.cjs.map +1 -0
  784. package/dist/services/definitions/valkey.d.cts +7 -0
  785. package/dist/services/definitions/valkey.d.cts.map +1 -0
  786. package/dist/services/definitions/valkey.mjs +1 -1
  787. package/dist/services/definitions/valkey.mjs.map +1 -1
  788. package/dist/services/definitions/vaultwarden.cjs +65 -0
  789. package/dist/services/definitions/vaultwarden.cjs.map +1 -0
  790. package/dist/services/definitions/vaultwarden.d.cts +7 -0
  791. package/dist/services/definitions/vaultwarden.d.cts.map +1 -0
  792. package/dist/services/definitions/vaultwarden.mjs +2 -2
  793. package/dist/services/definitions/vaultwarden.mjs.map +1 -1
  794. package/dist/services/definitions/watchtower.cjs +49 -0
  795. package/dist/services/definitions/watchtower.cjs.map +1 -0
  796. package/dist/services/definitions/watchtower.d.cts +7 -0
  797. package/dist/services/definitions/watchtower.d.cts.map +1 -0
  798. package/dist/services/definitions/weaviate.cjs +92 -0
  799. package/dist/services/definitions/weaviate.cjs.map +1 -0
  800. package/dist/services/definitions/weaviate.d.cts +7 -0
  801. package/dist/services/definitions/weaviate.d.cts.map +1 -0
  802. package/dist/services/definitions/weaviate.mjs +2 -2
  803. package/dist/services/definitions/weaviate.mjs.map +1 -1
  804. package/dist/services/definitions/whisper.cjs +64 -0
  805. package/dist/services/definitions/whisper.cjs.map +1 -0
  806. package/dist/services/definitions/whisper.d.cts +7 -0
  807. package/dist/services/definitions/whisper.d.cts.map +1 -0
  808. package/dist/services/definitions/whisper.mjs +2 -2
  809. package/dist/services/definitions/whisper.mjs.map +1 -1
  810. package/dist/services/definitions/xyops.cjs +88 -0
  811. package/dist/services/definitions/xyops.cjs.map +1 -0
  812. package/dist/services/definitions/xyops.d.cts +7 -0
  813. package/dist/services/definitions/xyops.d.cts.map +1 -0
  814. package/dist/services/definitions/xyops.mjs +1 -1
  815. package/dist/services/definitions/xyops.mjs.map +1 -1
  816. package/dist/services/registry.cjs +35 -0
  817. package/dist/services/registry.cjs.map +1 -0
  818. package/dist/services/registry.d.cts +16 -0
  819. package/dist/services/registry.d.cts.map +1 -0
  820. package/dist/services/registry.test.cjs +63 -0
  821. package/dist/services/registry.test.cjs.map +1 -0
  822. package/dist/services/registry.test.d.cts +1 -0
  823. package/dist/services/registry.test.mjs +1 -1
  824. package/dist/skills/registry.cjs +712 -0
  825. package/dist/skills/registry.cjs.map +1 -0
  826. package/dist/skills/registry.d.cts +11 -0
  827. package/dist/skills/registry.d.cts.map +1 -0
  828. package/dist/skills/skill-manifest.cjs +23 -0
  829. package/dist/skills/skill-manifest.cjs.map +1 -0
  830. package/dist/skills/skill-manifest.d.cts +20 -0
  831. package/dist/skills/skill-manifest.d.cts.map +1 -0
  832. package/dist/types.cjs +149 -0
  833. package/dist/types.cjs.map +1 -0
  834. package/dist/types.d.cts +82 -0
  835. package/dist/types.d.cts.map +1 -0
  836. package/dist/types.d.mts +9 -2
  837. package/dist/types.d.mts.map +1 -1
  838. package/dist/types.mjs +40 -0
  839. package/dist/types.mjs.map +1 -1
  840. package/dist/validator.cjs +124 -0
  841. package/dist/validator.cjs.map +1 -0
  842. package/dist/validator.d.cts +20 -0
  843. package/dist/validator.d.cts.map +1 -0
  844. package/dist/validator.test.cjs +64 -0
  845. package/dist/validator.test.cjs.map +1 -0
  846. package/dist/validator.test.d.cts +1 -0
  847. package/dist/validator.test.mjs +1 -1
  848. package/dist/version-manager.cjs +65 -0
  849. package/dist/version-manager.cjs.map +1 -0
  850. package/dist/version-manager.d.cts +14 -0
  851. package/dist/version-manager.d.cts.map +1 -0
  852. package/dist/version-manager.test.cjs +101 -0
  853. package/dist/version-manager.test.cjs.map +1 -0
  854. package/dist/version-manager.test.d.cts +1 -0
  855. package/dist/version-manager.test.mjs +1 -1
  856. package/dist/vi.2VT5v0um-BmRMvymT.cjs +12934 -0
  857. package/dist/vi.2VT5v0um-BmRMvymT.cjs.map +1 -0
  858. package/dist/{vi.2VT5v0um-BgmKutxR.mjs → vi.2VT5v0um-CFyDIn0m.mjs} +5 -5
  859. package/dist/{vi.2VT5v0um-BgmKutxR.mjs.map → vi.2VT5v0um-CFyDIn0m.mjs.map} +1 -1
  860. package/package.json +24 -3
  861. package/src/__snapshots__/composer.snapshot.test.ts.snap +20 -20
  862. package/src/compose-validation.test.ts +102 -0
  863. package/src/composer.test.ts +1 -1
  864. package/src/composer.ts +331 -53
  865. package/src/deployers/coolify.ts +241 -0
  866. package/src/deployers/dokploy.ts +174 -0
  867. package/src/deployers/index.ts +36 -0
  868. package/src/deployers/types.ts +70 -0
  869. package/src/generate.ts +45 -1
  870. package/src/generators/cloud-init.ts +137 -0
  871. package/src/generators/env.ts +112 -6
  872. package/src/generators/health-check.ts +2 -2
  873. package/src/generators/openclaw-install-script.ts +77 -0
  874. package/src/generators/openclaw-json.ts +195 -58
  875. package/src/generators/postgres-init.ts +11 -0
  876. package/src/generators/readme.ts +103 -4
  877. package/src/generators/stack-manifest.ts +127 -0
  878. package/src/index.ts +30 -0
  879. package/src/port-scanner.ts +189 -0
  880. package/src/presets/presets.test.ts +73 -0
  881. package/src/presets/registry.test.ts +3 -0
  882. package/src/presets/registry.ts +30 -7
  883. package/src/resolver.ts +2 -0
  884. package/src/schema.ts +30 -1
  885. package/src/services/definitions/anything-llm.ts +2 -2
  886. package/src/services/definitions/appflowy.ts +1 -1
  887. package/src/services/definitions/authentik.ts +5 -5
  888. package/src/services/definitions/beszel.ts +1 -1
  889. package/src/services/definitions/browserless.ts +1 -1
  890. package/src/services/definitions/caddy.ts +2 -2
  891. package/src/services/definitions/cal-com.ts +2 -2
  892. package/src/services/definitions/chromadb.ts +3 -3
  893. package/src/services/definitions/claude-code.ts +1 -1
  894. package/src/services/definitions/code-server.ts +1 -1
  895. package/src/services/definitions/codex.ts +1 -1
  896. package/src/services/definitions/comfyui.ts +1 -1
  897. package/src/services/definitions/coolify.ts +1 -1
  898. package/src/services/definitions/crowdsec.ts +2 -2
  899. package/src/services/definitions/desktop-environment.ts +1 -1
  900. package/src/services/definitions/dify.ts +1 -1
  901. package/src/services/definitions/docsgpt.ts +1 -1
  902. package/src/services/definitions/dokploy.ts +2 -2
  903. package/src/services/definitions/dozzle.ts +1 -1
  904. package/src/services/definitions/ffmpeg.ts +2 -2
  905. package/src/services/definitions/flowise.ts +1 -1
  906. package/src/services/definitions/gemini-cli.ts +8 -1
  907. package/src/services/definitions/ghost.ts +1 -1
  908. package/src/services/definitions/gitea.ts +1 -1
  909. package/src/services/definitions/gotify.ts +3 -3
  910. package/src/services/definitions/grafana.ts +2 -2
  911. package/src/services/definitions/headscale.ts +68 -68
  912. package/src/services/definitions/hexstrike.ts +1 -1
  913. package/src/services/definitions/homeassistant.ts +1 -1
  914. package/src/services/definitions/immich.ts +6 -6
  915. package/src/services/definitions/jellyfin.ts +1 -1
  916. package/src/services/definitions/jenkins.ts +1 -1
  917. package/src/services/definitions/kimi.ts +1 -1
  918. package/src/services/definitions/lasuite-meet-agents.ts +1 -1
  919. package/src/services/definitions/lasuite-meet-backend.ts +3 -3
  920. package/src/services/definitions/lasuite-meet-frontend.ts +3 -3
  921. package/src/services/definitions/librechat.ts +1 -1
  922. package/src/services/definitions/litellm.ts +1 -1
  923. package/src/services/definitions/loki.ts +1 -1
  924. package/src/services/definitions/matomo.ts +1 -1
  925. package/src/services/definitions/matrix-synapse.ts +1 -1
  926. package/src/services/definitions/mattermost.ts +1 -1
  927. package/src/services/definitions/meilisearch.ts +4 -4
  928. package/src/services/definitions/milvus.ts +1 -1
  929. package/src/services/definitions/minio.ts +1 -1
  930. package/src/services/definitions/mixpost.ts +1 -1
  931. package/src/services/definitions/motion-canvas.ts +1 -1
  932. package/src/services/definitions/n8n.ts +1 -1
  933. package/src/services/definitions/neo4j.ts +1 -1
  934. package/src/services/definitions/nextcloud.ts +19 -19
  935. package/src/services/definitions/nocodb.ts +1 -1
  936. package/src/services/definitions/ntfy.ts +2 -2
  937. package/src/services/definitions/ollama.ts +1 -1
  938. package/src/services/definitions/open-webui.ts +1 -1
  939. package/src/services/definitions/opencode.ts +1 -1
  940. package/src/services/definitions/openpanel.ts +3 -3
  941. package/src/services/definitions/paperless-ngx.ts +1 -1
  942. package/src/services/definitions/pentagi.ts +2 -2
  943. package/src/services/definitions/playwright-server.ts +1 -1
  944. package/src/services/definitions/portainer.ts +1 -1
  945. package/src/services/definitions/postgresql.ts +1 -1
  946. package/src/services/definitions/postiz.ts +1 -1
  947. package/src/services/definitions/prometheus.ts +1 -1
  948. package/src/services/definitions/qdrant.ts +1 -1
  949. package/src/services/definitions/redis.ts +1 -1
  950. package/src/services/definitions/remotion.ts +1 -1
  951. package/src/services/definitions/rocketchat.ts +1 -1
  952. package/src/services/definitions/scrapling.ts +2 -2
  953. package/src/services/definitions/searxng.ts +1 -1
  954. package/src/services/definitions/signoz.ts +2 -2
  955. package/src/services/definitions/solidityguard.ts +1 -1
  956. package/src/services/definitions/stable-diffusion.ts +1 -1
  957. package/src/services/definitions/steel-browser.ts +1 -1
  958. package/src/services/definitions/stream-gateway.ts +2 -2
  959. package/src/services/definitions/supabase.ts +2 -2
  960. package/src/services/definitions/tailscale.ts +1 -1
  961. package/src/services/definitions/traefik.ts +1 -1
  962. package/src/services/definitions/uptime-kuma.ts +2 -2
  963. package/src/services/definitions/usesend.ts +4 -4
  964. package/src/services/definitions/valkey.ts +1 -1
  965. package/src/services/definitions/vaultwarden.ts +2 -2
  966. package/src/services/definitions/weaviate.ts +2 -2
  967. package/src/services/definitions/whisper.ts +2 -2
  968. package/src/services/definitions/xyops.ts +1 -1
  969. package/src/types.ts +138 -20
  970. package/tsdown.config.ts +2 -2
@@ -0,0 +1,707 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/generators/health-check.ts
4
+ /**
5
+ * Generates stack-specific health check and verification scripts.
6
+ *
7
+ * Each generated script is dynamic — it contains the exact service names,
8
+ * ports, and health check commands from the resolved stack so users get
9
+ * a precise, zero-configuration verifier.
10
+ */
11
+ function generateHealthCheck(resolved, options) {
12
+ const files = {};
13
+ files["scripts/health-check.sh"] = generateBashScript(resolved, options);
14
+ files["scripts/health-check.ps1"] = generatePowerShellScript(resolved, options);
15
+ return files;
16
+ }
17
+ function extractServiceChecks(resolved) {
18
+ return resolved.services.map((svc) => ({
19
+ id: svc.definition.id,
20
+ name: svc.definition.name,
21
+ icon: svc.definition.icon,
22
+ ports: svc.definition.ports.map((p) => ({
23
+ host: p.host,
24
+ container: p.container,
25
+ description: p.description,
26
+ exposed: p.exposed
27
+ })),
28
+ healthCheckCmd: svc.definition.healthcheck?.test ?? null
29
+ }));
30
+ }
31
+ function escapeShell(s) {
32
+ return s.replace(/'/g, "'\\''").replace(/"/g, "\\\"");
33
+ }
34
+ function L(...parts) {
35
+ return parts.join("");
36
+ }
37
+ function generateBashScript(resolved, options) {
38
+ const checks = extractServiceChecks(resolved);
39
+ const name = options.projectName;
40
+ const total = checks.length;
41
+ const dockerChecks = [];
42
+ for (const svc of checks) {
43
+ dockerChecks.push(L(" # ── ", svc.icon, " ", svc.name, " ──"));
44
+ dockerChecks.push(L(" check_container \"", svc.id, "\" \"", svc.name, "\" \"", svc.icon, "\""));
45
+ for (const p of svc.ports.filter((pp) => pp.exposed)) dockerChecks.push(L(" check_port \"", svc.id, "\" ", String(p.host), " \"", p.description, "\""));
46
+ if (svc.healthCheckCmd) dockerChecks.push(L(" check_health_cmd \"", svc.id, "\" \"", escapeShell(svc.healthCheckCmd), "\""));
47
+ else dockerChecks.push(" # No healthcheck defined — skipping exec check");
48
+ dockerChecks.push("");
49
+ }
50
+ const bmChecks = [];
51
+ for (const svc of checks) {
52
+ bmChecks.push(L(" # ── ", svc.icon, " ", svc.name, " (bare-metal) ──"));
53
+ bmChecks.push(L(" check_process \"", svc.id, "\" \"", svc.name, "\" \"", svc.icon, "\""));
54
+ for (const p of svc.ports.filter((pp) => pp.exposed)) bmChecks.push(L(" check_port \"", svc.id, "\" ", String(p.host), " \"", p.description, "\""));
55
+ bmChecks.push("");
56
+ }
57
+ const svcIdList = checks.map((s) => "\"" + s.id + "\"").join(" ");
58
+ return [
59
+ "#!/usr/bin/env bash",
60
+ "set -uo pipefail",
61
+ "",
62
+ "# ═══════════════════════════════════════════════════════════════════════",
63
+ L("# 🐾 OpenClaw Stack Health Check — ", name),
64
+ "# ═══════════════════════════════════════════════════════════════════════",
65
+ "#",
66
+ "# Auto-generated verification script for your stack.",
67
+ L("# Checks ", String(total), " services across 6 phases:"),
68
+ "# 1. Environment — prerequisites, .env, secrets",
69
+ "# 2. Container — running state, health status, restart count",
70
+ "# 3. Port — TCP reachability for exposed ports",
71
+ "# 4. Health Command — execute each service's health check",
72
+ "# 5. Resources — memory/CPU warnings",
73
+ "# 6. Logs — scan for ERROR/FATAL/panic patterns",
74
+ "#",
75
+ "# Usage:",
76
+ "# ./scripts/health-check.sh # Full check",
77
+ "# ./scripts/health-check.sh --quick # Skip log scan",
78
+ "# ./scripts/health-check.sh --json # Output as JSON",
79
+ "#",
80
+ "# Exit codes: 0 = all healthy, 1 = some issues, 2 = critical failure",
81
+ "# ═══════════════════════════════════════════════════════════════════════",
82
+ "",
83
+ "SCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"",
84
+ "PROJECT_DIR=\"$(dirname \"$SCRIPT_DIR\")\"",
85
+ "cd \"$PROJECT_DIR\"",
86
+ "",
87
+ "# ── Arguments ────────────────────────────────────────────────────────",
88
+ "QUICK_MODE=false",
89
+ "JSON_MODE=false",
90
+ "VERBOSE=false",
91
+ "for arg in \"$@\"; do",
92
+ " case \"$arg\" in",
93
+ " --quick) QUICK_MODE=true ;;",
94
+ " --json) JSON_MODE=true ;;",
95
+ " --verbose|-v) VERBOSE=true ;;",
96
+ " esac",
97
+ "done",
98
+ "",
99
+ "# ── Colour helpers ───────────────────────────────────────────────────",
100
+ "if [ -t 1 ] && [ \"$JSON_MODE\" = false ]; then",
101
+ " RED='\\033[0;31m'; GREEN='\\033[0;32m'; YELLOW='\\033[1;33m'",
102
+ " CYAN='\\033[0;36m'; DIM='\\033[2m'; BOLD='\\033[1m'; NC='\\033[0m'",
103
+ "else",
104
+ " RED=''; GREEN=''; YELLOW=''; CYAN=''; DIM=''; BOLD=''; NC=''",
105
+ "fi",
106
+ "",
107
+ "# ── Counters ─────────────────────────────────────────────────────────",
108
+ L("TOTAL=", String(total)),
109
+ "HEALTHY=0",
110
+ "WARNING=0",
111
+ "FAILED=0",
112
+ "ERRORS=()",
113
+ "WARNINGS_LIST=()",
114
+ "SERVICE_RESULTS=()",
115
+ "",
116
+ "# ── Utility functions ────────────────────────────────────────────────",
117
+ "pass() { echo -e \" ${GREEN}✅ $*${NC}\"; HEALTHY=$((HEALTHY + 1)); }",
118
+ "warn_svc() { echo -e \" ${YELLOW}⚠️ $*${NC}\"; WARNING=$((WARNING + 1)); WARNINGS_LIST+=(\"$*\"); }",
119
+ "fail() { echo -e \" ${RED}❌ $*${NC}\"; FAILED=$((FAILED + 1)); ERRORS+=(\"$*\"); }",
120
+ "info() { echo -e \" ${CYAN}ℹ $*${NC}\"; }",
121
+ "dim() { echo -e \" ${DIM}$*${NC}\"; }",
122
+ "",
123
+ "pad_name() {",
124
+ " local name=\"$1\"",
125
+ " local pad=25",
126
+ " printf \"%-${pad}s\" \"$name\"",
127
+ "}",
128
+ "",
129
+ "# ═══════════════════════════════════════════════════════════════════════",
130
+ "# Phase 1: Environment",
131
+ "# ═══════════════════════════════════════════════════════════════════════",
132
+ "phase_environment() {",
133
+ " if [ \"$JSON_MODE\" = false ]; then",
134
+ " echo \"\"",
135
+ " echo -e \"${BOLD}── Phase 1: Environment ────────────────────────────────────${NC}\"",
136
+ " echo \"\"",
137
+ " fi",
138
+ "",
139
+ " # Docker",
140
+ " if command -v docker &>/dev/null; then",
141
+ " if docker info &>/dev/null 2>&1; then",
142
+ " pass \"Docker daemon is running\"",
143
+ " DOCKER_AVAILABLE=true",
144
+ " else",
145
+ " fail \"Docker daemon is NOT running\"",
146
+ " DOCKER_AVAILABLE=false",
147
+ " fi",
148
+ " else",
149
+ " warn_svc \"Docker is not installed — running bare-metal checks only\"",
150
+ " DOCKER_AVAILABLE=false",
151
+ " fi",
152
+ "",
153
+ " # Docker Compose",
154
+ " if [ \"$DOCKER_AVAILABLE\" = true ]; then",
155
+ " if docker compose version &>/dev/null 2>&1; then",
156
+ " pass \"Docker Compose v2 available\"",
157
+ " else",
158
+ " warn_svc \"Docker Compose v2 not found\"",
159
+ " fi",
160
+ " fi",
161
+ "",
162
+ " # .env",
163
+ " if [ -f \".env\" ]; then",
164
+ " pass \".env file exists\"",
165
+ " EMPTY_SECRETS=0",
166
+ " while IFS='=' read -r key value; do",
167
+ " [[ \"$key\" =~ ^#.*$ ]] && continue",
168
+ " [[ -z \"$key\" ]] && continue",
169
+ " if [[ \"$key\" =~ (PASSWORD|TOKEN|SECRET|SESSION_KEY|COOKIE|API_KEY) ]] && [[ -z \"${value:-}\" ]]; then",
170
+ " if [ \"$VERBOSE\" = true ]; then",
171
+ " warn_svc \"Empty secret: $key\"",
172
+ " fi",
173
+ " EMPTY_SECRETS=$((EMPTY_SECRETS + 1))",
174
+ " fi",
175
+ " done < .env 2>/dev/null || true",
176
+ " if [ \"$EMPTY_SECRETS\" -gt 0 ]; then",
177
+ " warn_svc \"$EMPTY_SECRETS secret(s) are empty in .env\"",
178
+ " else",
179
+ " pass \"All secrets are populated\"",
180
+ " fi",
181
+ " else",
182
+ " warn_svc \".env file not found\"",
183
+ " fi",
184
+ "",
185
+ " # Disk space",
186
+ " AVAIL_KB=$(df -k . 2>/dev/null | awk 'NR==2{print $4}' || echo \"0\")",
187
+ " AVAIL_GB=$((AVAIL_KB / 1024 / 1024))",
188
+ " if [ \"$AVAIL_GB\" -lt 2 ]; then",
189
+ " warn_svc \"Low disk space: ${AVAIL_GB}GB available\"",
190
+ " else",
191
+ " pass \"Disk space: ${AVAIL_GB}GB available\"",
192
+ " fi",
193
+ "}",
194
+ "",
195
+ "# ═══════════════════════════════════════════════════════════════════════",
196
+ "# Phase 2: Container Status",
197
+ "# ═══════════════════════════════════════════════════════════════════════",
198
+ "check_container() {",
199
+ " local id=\"$1\" name=\"$2\" icon=\"$3\"",
200
+ "",
201
+ " local status restarts",
202
+ " status=$(docker compose ps \"$id\" --format json 2>/dev/null | head -1)",
203
+ "",
204
+ " if [ -z \"$status\" ]; then",
205
+ " fail \"$icon $(pad_name \"$name\") — Container not found\"",
206
+ " return",
207
+ " fi",
208
+ "",
209
+ " local state health_status",
210
+ " state=$(echo \"$status\" | grep -o '\"State\":\"[^\"]*\"' | cut -d'\"' -f4 || echo \"unknown\")",
211
+ " health_status=$(echo \"$status\" | grep -o '\"Health\":\"[^\"]*\"' | cut -d'\"' -f4 || echo \"none\")",
212
+ "",
213
+ " restarts=$(docker inspect --format=\"{{.RestartCount}}\" \"$(docker compose ps -q \"$id\" 2>/dev/null | head -1)\" 2>/dev/null || echo \"0\")",
214
+ "",
215
+ " if [ \"$state\" = \"running\" ]; then",
216
+ " if [ \"$health_status\" = \"healthy\" ]; then",
217
+ " pass \"$icon $(pad_name \"$name\") Running (healthy) restarts: $restarts\"",
218
+ " elif [ \"$health_status\" = \"starting\" ]; then",
219
+ " warn_svc \"$icon $(pad_name \"$name\") Running (starting) restarts: $restarts\"",
220
+ " elif [ \"$health_status\" = \"unhealthy\" ]; then",
221
+ " fail \"$icon $(pad_name \"$name\") Running (UNHEALTHY) restarts: $restarts\"",
222
+ " else",
223
+ " pass \"$icon $(pad_name \"$name\") Running restarts: $restarts\"",
224
+ " fi",
225
+ " if [ \"$restarts\" -gt 5 ] 2>/dev/null; then",
226
+ " warn_svc \" └─ $name has restarted $restarts times (possible crash loop)\"",
227
+ " fi",
228
+ " elif [ \"$state\" = \"exited\" ]; then",
229
+ " local exit_code",
230
+ " exit_code=$(docker inspect --format=\"{{.State.ExitCode}}\" \"$(docker compose ps -q \"$id\" 2>/dev/null | head -1)\" 2>/dev/null || echo \"?\")",
231
+ " fail \"$icon $(pad_name \"$name\") Exited (code $exit_code)\"",
232
+ " if [ \"$exit_code\" = \"137\" ]; then",
233
+ " ERRORS+=(\" └─ $name: OOM killed (exit 137). Increase memory limits.\")",
234
+ " elif [ \"$exit_code\" = \"1\" ]; then",
235
+ " ERRORS+=(\" └─ $name: Application error (exit 1). Check logs: docker compose logs $id\")",
236
+ " fi",
237
+ " else",
238
+ " fail \"$icon $(pad_name \"$name\") State: $state\"",
239
+ " fi",
240
+ "}",
241
+ "",
242
+ "# ═══════════════════════════════════════════════════════════════════════",
243
+ "# Phase 3: Port Reachability",
244
+ "# ═══════════════════════════════════════════════════════════════════════",
245
+ "check_port() {",
246
+ " local id=\"$1\" port=\"$2\" desc=\"$3\"",
247
+ " if command -v nc &>/dev/null; then",
248
+ " if nc -z -w 2 localhost \"$port\" 2>/dev/null; then",
249
+ " dim \" Port $port ($desc) — reachable\"",
250
+ " else",
251
+ " warn_svc \" └─ $id: Port $port ($desc) — NOT reachable\"",
252
+ " fi",
253
+ " elif command -v curl &>/dev/null; then",
254
+ " if curl -sf --max-time 2 \"http://localhost:$port/\" &>/dev/null; then",
255
+ " dim \" Port $port ($desc) — reachable\"",
256
+ " else",
257
+ " warn_svc \" └─ $id: Port $port ($desc) — NOT reachable\"",
258
+ " fi",
259
+ " else",
260
+ " dim \" Port $port ($desc) — skipped (no nc or curl)\"",
261
+ " fi",
262
+ "}",
263
+ "",
264
+ "# ═══════════════════════════════════════════════════════════════════════",
265
+ "# Phase 4: Health Check Commands",
266
+ "# ═══════════════════════════════════════════════════════════════════════",
267
+ "check_health_cmd() {",
268
+ " local id=\"$1\" cmd=\"$2\"",
269
+ " local cid=$(docker compose ps -q \"$id\" 2>/dev/null | head -1)",
270
+ " [ -z \"$cid\" ] && return",
271
+ " if docker exec \"$cid\" sh -c \"$cmd\" &>/dev/null; then",
272
+ " dim \" Health command passed\"",
273
+ " else",
274
+ " warn_svc \" └─ $id: Health check command failed\"",
275
+ " if [ \"$VERBOSE\" = true ]; then dim \" Command: $cmd\"; fi",
276
+ " fi",
277
+ "}",
278
+ "",
279
+ "# ═══════════════════════════════════════════════════════════════════════",
280
+ "# Phase 5: Resource Usage",
281
+ "# ═══════════════════════════════════════════════════════════════════════",
282
+ "phase_resources() {",
283
+ " if [ \"$JSON_MODE\" = false ]; then",
284
+ " echo \"\"",
285
+ " echo -e \"${BOLD}── Phase 5: Resource Usage ─────────────────────────────────${NC}\"",
286
+ " echo \"\"",
287
+ " fi",
288
+ " docker stats --no-stream --format \"table {{.Name}}\\t{{.CPUPerc}}\\t{{.MemUsage}}\\t{{.MemPerc}}\" 2>/dev/null || true",
289
+ " if [ \"$VERBOSE\" = false ] && [ \"$JSON_MODE\" = false ]; then",
290
+ " info \"Use --verbose to see warnings for high memory usage\"",
291
+ " fi",
292
+ "}",
293
+ "",
294
+ "# ═══════════════════════════════════════════════════════════════════════",
295
+ "# Phase 6: Log Scan",
296
+ "# ═══════════════════════════════════════════════════════════════════════",
297
+ "phase_logs() {",
298
+ " if [ \"$QUICK_MODE\" = true ]; then",
299
+ " if [ \"$JSON_MODE\" = false ]; then echo \"\"; info \"Skipping log scan (--quick mode)\"; fi",
300
+ " return",
301
+ " fi",
302
+ " if [ \"$JSON_MODE\" = false ]; then",
303
+ " echo \"\"",
304
+ " echo -e \"${BOLD}── Phase 6: Log Scan ───────────────────────────────────────${NC}\"",
305
+ " echo \"\"",
306
+ " fi",
307
+ " local has_errors=false",
308
+ L(" for svc_id in ", svcIdList, "; do"),
309
+ " local error_lines",
310
+ " error_lines=$(docker compose logs --tail=50 \"$svc_id\" 2>/dev/null | grep -iE \"(error|fatal|panic|exception|segfault|killed|oom)\" | tail -5 || true)",
311
+ " if [ -n \"$error_lines\" ]; then",
312
+ " has_errors=true",
313
+ " warn_svc \"$svc_id — found error patterns in logs:\"",
314
+ " echo \"$error_lines\" | while IFS= read -r eline; do",
315
+ " dim \" | $eline\"",
316
+ " done",
317
+ " fi",
318
+ " done",
319
+ " if [ \"$has_errors\" = false ] && [ \"$JSON_MODE\" = false ]; then",
320
+ " pass \"No error patterns found in recent logs\"",
321
+ " fi",
322
+ "}",
323
+ "",
324
+ "# ── Bare-metal process check ────────────────────────────────────────",
325
+ "check_process() {",
326
+ " local id=\"$1\" name=\"$2\" icon=\"$3\"",
327
+ " if command -v systemctl &>/dev/null; then",
328
+ " if systemctl is-active --quiet \"$id\" 2>/dev/null; then",
329
+ " pass \"$icon $(pad_name \"$name\") Active (systemd)\"",
330
+ " return",
331
+ " fi",
332
+ " fi",
333
+ " if pgrep -f \"$id\" &>/dev/null; then",
334
+ " pass \"$icon $(pad_name \"$name\") Running (process)\"",
335
+ " else",
336
+ " fail \"$icon $(pad_name \"$name\") NOT running\"",
337
+ " fi",
338
+ "}",
339
+ "",
340
+ "# ═══════════════════════════════════════════════════════════════════════",
341
+ "# Main",
342
+ "# ═══════════════════════════════════════════════════════════════════════",
343
+ "",
344
+ "DOCKER_AVAILABLE=false",
345
+ "",
346
+ "if [ \"$JSON_MODE\" = false ]; then",
347
+ " echo \"\"",
348
+ " echo \"═══════════════════════════════════════════════════════════════════════\"",
349
+ L(" echo \" 🐾 OpenClaw Stack Health Report — ", name, "\""),
350
+ " echo \"═══════════════════════════════════════════════════════════════════════\"",
351
+ "fi",
352
+ "",
353
+ "phase_environment",
354
+ "",
355
+ "if [ \"$DOCKER_AVAILABLE\" = true ]; then",
356
+ " if [ \"$JSON_MODE\" = false ]; then",
357
+ " echo \"\"",
358
+ " echo -e \"${BOLD}── Phase 2–4: Service Checks ──────────────────────────────${NC}\"",
359
+ " echo \"\"",
360
+ " fi",
361
+ "",
362
+ ...dockerChecks,
363
+ "",
364
+ " phase_resources",
365
+ " phase_logs",
366
+ "",
367
+ "else",
368
+ " if [ \"$JSON_MODE\" = false ]; then",
369
+ " echo \"\"",
370
+ " echo -e \"${BOLD}── Bare-Metal Service Checks ──────────────────────────────${NC}\"",
371
+ " echo \"\"",
372
+ " fi",
373
+ "",
374
+ ...bmChecks,
375
+ "fi",
376
+ "",
377
+ "# ── Summary ──────────────────────────────────────────────────────────",
378
+ "echo \"\"",
379
+ "echo \"═══════════════════════════════════════════════════════════════════════\"",
380
+ "echo \"\"",
381
+ "echo -e \" ${BOLD}Summary${NC}: $TOTAL services checked\"",
382
+ "echo -e \" ${GREEN}Healthy: $HEALTHY${NC} | ${YELLOW}Warnings: $WARNING${NC} | ${RED}Failed: $FAILED${NC}\"",
383
+ "",
384
+ "if [ ${#ERRORS[@]} -gt 0 ]; then",
385
+ " echo \"\"",
386
+ " echo -e \" ${BOLD}${RED}── Errors ─────────────────────────────────────────────────${NC}\"",
387
+ " for e in \"${ERRORS[@]}\"; do",
388
+ " echo -e \" ${RED}$e${NC}\"",
389
+ " done",
390
+ "fi",
391
+ "",
392
+ "echo \"\"",
393
+ "echo \"═══════════════════════════════════════════════════════════════════════\"",
394
+ "echo \"\"",
395
+ "",
396
+ "if [ \"$FAILED\" -gt 0 ]; then",
397
+ " echo -e \" ${RED}Some services need attention. Run with --verbose for details.${NC}\"",
398
+ " exit 1",
399
+ "else",
400
+ " echo -e \" ${GREEN}🎉 All services are running!${NC}\"",
401
+ " exit 0",
402
+ "fi"
403
+ ].join("\n") + "\n";
404
+ }
405
+ function generatePowerShellScript(resolved, options) {
406
+ const checks = extractServiceChecks(resolved);
407
+ const name = options.projectName;
408
+ const total = checks.length;
409
+ const dockerChecks = [];
410
+ for (const svc of checks) {
411
+ dockerChecks.push(L(" # ", svc.icon, " ", svc.name));
412
+ dockerChecks.push(L(" Test-Container -ServiceId \"", svc.id, "\" -ServiceName \"", svc.name, "\" -Icon \"", svc.icon, "\""));
413
+ for (const p of svc.ports.filter((pp) => pp.exposed)) dockerChecks.push(L(" Test-Port -ServiceId \"", svc.id, "\" -Port ", String(p.host), " -Description \"", p.description, "\""));
414
+ dockerChecks.push("");
415
+ }
416
+ const bmChecks = [];
417
+ for (const svc of checks) {
418
+ bmChecks.push(L(" # ", svc.icon, " ", svc.name));
419
+ bmChecks.push(L(" Test-ProcessRunning -ServiceId \"", svc.id, "\" -ServiceName \"", svc.name, "\" -Icon \"", svc.icon, "\""));
420
+ for (const p of svc.ports.filter((pp) => pp.exposed)) bmChecks.push(L(" Test-Port -ServiceId \"", svc.id, "\" -Port ", String(p.host), " -Description \"", p.description, "\""));
421
+ bmChecks.push("");
422
+ }
423
+ const svcIdList = checks.map((s) => "\"" + s.id + "\"").join(", ");
424
+ return [
425
+ "#Requires -Version 5.1",
426
+ "<#",
427
+ ".SYNOPSIS",
428
+ L(" OpenClaw Stack Health Check — ", name),
429
+ "",
430
+ ".DESCRIPTION",
431
+ " Auto-generated verification script for your stack.",
432
+ L(" Checks ", String(total), " services: container status, port reachability, and log errors."),
433
+ "",
434
+ ".PARAMETER Quick",
435
+ " Skip log scanning for faster results.",
436
+ "",
437
+ ".PARAMETER Json",
438
+ " Output results as JSON.",
439
+ "",
440
+ ".EXAMPLE",
441
+ " .\\scripts\\health-check.ps1",
442
+ " .\\scripts\\health-check.ps1 -Quick",
443
+ " .\\scripts\\health-check.ps1 -Json",
444
+ "#>",
445
+ "param(",
446
+ " [switch]$Quick,",
447
+ " [switch]$Json,",
448
+ " [switch]$Detailed",
449
+ ")",
450
+ "",
451
+ "$ErrorActionPreference = \"Continue\"",
452
+ "",
453
+ "# ── Counters ─────────────────────────────────────────────────────────",
454
+ L("$script:Total = ", String(total)),
455
+ "$script:Healthy = 0",
456
+ "$script:Warnings = 0",
457
+ "$script:Failed = 0",
458
+ "$script:Errors = @()",
459
+ "$script:ServiceResults = @()",
460
+ "$script:DockerAvailable = $false",
461
+ "",
462
+ "# ── Helpers ──────────────────────────────────────────────────────────",
463
+ "",
464
+ "function Write-Pass($msg) { Write-Host \" ✅ $msg\" -ForegroundColor Green; $script:Healthy++ }",
465
+ "function Write-Warn($msg) { Write-Host \" ⚠️ $msg\" -ForegroundColor Yellow; $script:Warnings++ }",
466
+ "function Write-Fail($msg) { Write-Host \" ❌ $msg\" -ForegroundColor Red; $script:Failed++; $script:Errors += $msg }",
467
+ "function Write-Info($msg) { Write-Host \" ℹ $msg\" -ForegroundColor Cyan }",
468
+ "function Write-Dim($msg) { Write-Host \" $msg\" -ForegroundColor DarkGray }",
469
+ "",
470
+ "function Pad-Name([string]$n) { return $n.PadRight(25) }",
471
+ "",
472
+ "# ═════════════════════════════════════════════════════════════════════",
473
+ "# Phase 1: Environment",
474
+ "# ═════════════════════════════════════════════════════════════════════",
475
+ "function Test-Environment {",
476
+ " if (-not $Json) {",
477
+ " Write-Host \"\"",
478
+ " Write-Host \"── Phase 1: Environment ────────────────────────────────────\" -ForegroundColor White",
479
+ " Write-Host \"\"",
480
+ " }",
481
+ " try {",
482
+ " $null = docker info 2>&1",
483
+ " if ($LASTEXITCODE -eq 0) {",
484
+ " Write-Pass \"Docker daemon is running\"",
485
+ " $script:DockerAvailable = $true",
486
+ " } else {",
487
+ " Write-Fail \"Docker daemon is NOT running\"",
488
+ " }",
489
+ " } catch {",
490
+ " Write-Warn \"Docker is not installed — running bare-metal checks only\"",
491
+ " }",
492
+ " if ($script:DockerAvailable) {",
493
+ " try {",
494
+ " $null = docker compose version 2>&1",
495
+ " if ($LASTEXITCODE -eq 0) {",
496
+ " Write-Pass \"Docker Compose v2 available\"",
497
+ " } else {",
498
+ " Write-Warn \"Docker Compose v2 not found\"",
499
+ " }",
500
+ " } catch {",
501
+ " Write-Warn \"Docker Compose not available\"",
502
+ " }",
503
+ " }",
504
+ " $envPath = Join-Path $PSScriptRoot \"..\\.env\"",
505
+ " if (Test-Path $envPath) {",
506
+ " Write-Pass \".env file exists\"",
507
+ " $emptySecrets = 0",
508
+ " Get-Content $envPath | ForEach-Object {",
509
+ " if ($_ -match \"(PASSWORD|TOKEN|SECRET|SESSION_KEY|COOKIE|API_KEY).*=\\s*$\") { $emptySecrets++ }",
510
+ " }",
511
+ " if ($emptySecrets -gt 0) {",
512
+ " Write-Warn \"$emptySecrets secret(s) are empty in .env\"",
513
+ " } else {",
514
+ " Write-Pass \"All secrets are populated\"",
515
+ " }",
516
+ " } else {",
517
+ " Write-Warn \".env file not found\"",
518
+ " }",
519
+ " $drive = (Get-Item $PSScriptRoot).PSDrive",
520
+ " $freeGB = [math]::Round($drive.Free / 1GB, 1)",
521
+ " if ($freeGB -lt 2) {",
522
+ " Write-Warn \"Low disk space: ${freeGB}GB available\"",
523
+ " } else {",
524
+ " Write-Pass \"Disk space: ${freeGB}GB available\"",
525
+ " }",
526
+ "}",
527
+ "",
528
+ "# ═════════════════════════════════════════════════════════════════════",
529
+ "# Phase 2: Container Check",
530
+ "# ═════════════════════════════════════════════════════════════════════",
531
+ "function Test-Container {",
532
+ " param([string]$ServiceId, [string]$ServiceName, [string]$Icon)",
533
+ " try {",
534
+ " $status = docker compose ps $ServiceId --format json 2>&1 | ConvertFrom-Json",
535
+ " } catch {",
536
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) Container not found\"",
537
+ " return",
538
+ " }",
539
+ " if (-not $status) {",
540
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) Container not found\"",
541
+ " return",
542
+ " }",
543
+ " $state = $status.State",
544
+ " $health = $status.Health",
545
+ " if ($state -eq \"running\") {",
546
+ " if ($health -eq \"healthy\") {",
547
+ " Write-Pass \"$Icon $(Pad-Name $ServiceName) Running (healthy)\"",
548
+ " } elseif ($health -eq \"starting\") {",
549
+ " Write-Warn \"$Icon $(Pad-Name $ServiceName) Running (starting)\"",
550
+ " } elseif ($health -eq \"unhealthy\") {",
551
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) Running (UNHEALTHY)\"",
552
+ " } else {",
553
+ " Write-Pass \"$Icon $(Pad-Name $ServiceName) Running\"",
554
+ " }",
555
+ " } elseif ($state -eq \"exited\") {",
556
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) Exited\"",
557
+ " } else {",
558
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) State: $state\"",
559
+ " }",
560
+ "}",
561
+ "",
562
+ "# ═════════════════════════════════════════════════════════════════════",
563
+ "# Phase 3: Port Check",
564
+ "# ═════════════════════════════════════════════════════════════════════",
565
+ "function Test-Port {",
566
+ " param([string]$ServiceId, [int]$Port, [string]$Description)",
567
+ " try {",
568
+ " $tcp = New-Object System.Net.Sockets.TcpClient",
569
+ " $tcp.ConnectAsync(\"localhost\", $Port).Wait(2000) | Out-Null",
570
+ " if ($tcp.Connected) {",
571
+ " Write-Dim \" Port $Port ($Description) — reachable\"",
572
+ " $tcp.Close()",
573
+ " } else {",
574
+ " Write-Warn \" └─ ${ServiceId}: Port $Port ($Description) — NOT reachable\"",
575
+ " }",
576
+ " } catch {",
577
+ " Write-Warn \" └─ ${ServiceId}: Port $Port ($Description) — NOT reachable\"",
578
+ " }",
579
+ "}",
580
+ "",
581
+ "# ── Bare-metal process check ────────────────────────────────────────",
582
+ "function Test-ProcessRunning {",
583
+ " param([string]$ServiceId, [string]$ServiceName, [string]$Icon)",
584
+ " $svc = Get-Service -Name $ServiceId -ErrorAction SilentlyContinue",
585
+ " if ($svc) {",
586
+ " if ($svc.Status -eq \"Running\") {",
587
+ " Write-Pass \"$Icon $(Pad-Name $ServiceName) Active (service)\"",
588
+ " } else {",
589
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) $($svc.Status)\"",
590
+ " }",
591
+ " return",
592
+ " }",
593
+ " $proc = Get-Process -Name $ServiceId -ErrorAction SilentlyContinue",
594
+ " if ($proc) {",
595
+ " Write-Pass \"$Icon $(Pad-Name $ServiceName) Running (process)\"",
596
+ " } else {",
597
+ " Write-Fail \"$Icon $(Pad-Name $ServiceName) NOT running\"",
598
+ " }",
599
+ "}",
600
+ "",
601
+ "# ═════════════════════════════════════════════════════════════════════",
602
+ "# Phase 6: Log Scan",
603
+ "# ═════════════════════════════════════════════════════════════════════",
604
+ "function Test-Logs {",
605
+ " if ($Quick) {",
606
+ " if (-not $Json) { Write-Info \"Skipping log scan (-Quick mode)\" }",
607
+ " return",
608
+ " }",
609
+ " if (-not $Json) {",
610
+ " Write-Host \"\"",
611
+ " Write-Host \"── Phase 6: Log Scan ───────────────────────────────────────\" -ForegroundColor White",
612
+ " Write-Host \"\"",
613
+ " }",
614
+ " $hasErrors = $false",
615
+ L(" $svcIds = @(", svcIdList, ")"),
616
+ " foreach ($svcId in $svcIds) {",
617
+ " try {",
618
+ " $logs = docker compose logs --tail=50 $svcId 2>&1 | Out-String",
619
+ " $errorLines = $logs -split \"`n\" | Where-Object { $_ -match \"(error|fatal|panic|exception|segfault|killed|oom)\" } | Select-Object -Last 5",
620
+ " if ($errorLines) {",
621
+ " $hasErrors = $true",
622
+ " Write-Warn \"$svcId — found error patterns in logs:\"",
623
+ " $errorLines | ForEach-Object { Write-Dim \" | $_\" }",
624
+ " }",
625
+ " } catch {}",
626
+ " }",
627
+ " if (-not $hasErrors -and -not $Json) {",
628
+ " Write-Pass \"No error patterns found in recent logs\"",
629
+ " }",
630
+ "}",
631
+ "",
632
+ "# ═════════════════════════════════════════════════════════════════════",
633
+ "# Main",
634
+ "# ═════════════════════════════════════════════════════════════════════",
635
+ "",
636
+ "if (-not $Json) {",
637
+ " Write-Host \"\"",
638
+ " Write-Host \"═══════════════════════════════════════════════════════════════════════\" ",
639
+ L(" Write-Host \" 🐾 OpenClaw Stack Health Report — ", name, "\""),
640
+ " Write-Host \"═══════════════════════════════════════════════════════════════════════\"",
641
+ "}",
642
+ "",
643
+ "Test-Environment",
644
+ "",
645
+ "if ($script:DockerAvailable) {",
646
+ " if (-not $Json) {",
647
+ " Write-Host \"\"",
648
+ " Write-Host \"── Phase 2–4: Service Checks ──────────────────────────────\" -ForegroundColor White",
649
+ " Write-Host \"\"",
650
+ " }",
651
+ "",
652
+ ...dockerChecks,
653
+ " Test-Logs",
654
+ "} else {",
655
+ " if (-not $Json) {",
656
+ " Write-Host \"\"",
657
+ " Write-Host \"── Bare-Metal Service Checks ──────────────────────────────\" -ForegroundColor White",
658
+ " Write-Host \"\"",
659
+ " }",
660
+ "",
661
+ ...bmChecks,
662
+ "}",
663
+ "",
664
+ "# ── Summary ──────────────────────────────────────────────────────────",
665
+ "if ($Json) {",
666
+ " $result = @{",
667
+ L(" project = \"", name, "\""),
668
+ " timestamp = (Get-Date -Format \"o\")",
669
+ " summary = @{",
670
+ " total = $script:Total",
671
+ " healthy = $script:Healthy",
672
+ " warnings = $script:Warnings",
673
+ " failed = $script:Failed",
674
+ " }",
675
+ " errors = $script:Errors",
676
+ " }",
677
+ " $result | ConvertTo-Json -Depth 5",
678
+ "} else {",
679
+ " Write-Host \"\"",
680
+ " Write-Host \"═══════════════════════════════════════════════════════════════════════\"",
681
+ " Write-Host \"\"",
682
+ " Write-Host \" Summary: $($script:Total) services checked\"",
683
+ " Write-Host \" Healthy: $($script:Healthy)\" -ForegroundColor Green -NoNewline",
684
+ " Write-Host \" | Warnings: $($script:Warnings)\" -ForegroundColor Yellow -NoNewline",
685
+ " Write-Host \" | Failed: $($script:Failed)\" -ForegroundColor Red",
686
+ " if ($script:Errors.Count -gt 0) {",
687
+ " Write-Host \"\"",
688
+ " Write-Host \" ── Errors ──────────────────────────────────────────────────\" -ForegroundColor Red",
689
+ " $script:Errors | ForEach-Object { Write-Host \" $_\" -ForegroundColor Red }",
690
+ " }",
691
+ " Write-Host \"\"",
692
+ " Write-Host \"═══════════════════════════════════════════════════════════════════════\"",
693
+ " Write-Host \"\"",
694
+ " if ($script:Failed -gt 0) {",
695
+ " Write-Host \" Some services need attention. Run with -Detailed for more.\" -ForegroundColor Red",
696
+ " exit 1",
697
+ " } else {",
698
+ " Write-Host \" 🎉 All services are running!\" -ForegroundColor Green",
699
+ " exit 0",
700
+ " }",
701
+ "}"
702
+ ].join("\n") + "\n";
703
+ }
704
+
705
+ //#endregion
706
+ exports.generateHealthCheck = generateHealthCheck;
707
+ //# sourceMappingURL=health-check.cjs.map