@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,21 @@
1
+ import { CoolifyDeployer } from "./coolify.mjs";
2
+ import { DokployDeployer } from "./dokploy.mjs";
3
+
4
+ //#region src/deployers/index.ts
5
+ /** Registry of all available PaaS deployers. */
6
+ const deployerRegistry = {
7
+ dokploy: new DokployDeployer(),
8
+ coolify: new CoolifyDeployer()
9
+ };
10
+ /** Get a deployer by ID, or undefined if not found. */
11
+ function getDeployer(id) {
12
+ return deployerRegistry[id];
13
+ }
14
+ /** List all available deployer IDs. */
15
+ function getAvailableDeployers() {
16
+ return Object.keys(deployerRegistry);
17
+ }
18
+
19
+ //#endregion
20
+ export { CoolifyDeployer, DokployDeployer, deployerRegistry, getAvailableDeployers, getDeployer };
21
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/deployers/index.ts"],"sourcesContent":["/**\n * PaaS deployer registry — barrel export + lookup helpers.\n *\n * To add a new provider, implement `PaasDeployer` and register it in\n * `deployerRegistry` below.\n */\n\nexport { CoolifyDeployer } from \"./coolify.js\";\nexport { DokployDeployer } from \"./dokploy.js\";\nexport type {\n\tDeployInput,\n\tDeployResult,\n\tDeployStep,\n\tDeployTarget,\n\tPaasDeployer,\n} from \"./types.js\";\n\nimport { CoolifyDeployer } from \"./coolify.js\";\nimport { DokployDeployer } from \"./dokploy.js\";\nimport type { PaasDeployer } from \"./types.js\";\n\n/** Registry of all available PaaS deployers. */\nexport const deployerRegistry: Record<string, PaasDeployer> = {\n\tdokploy: new DokployDeployer(),\n\tcoolify: new CoolifyDeployer(),\n};\n\n/** Get a deployer by ID, or undefined if not found. */\nexport function getDeployer(id: string): PaasDeployer | undefined {\n\treturn deployerRegistry[id];\n}\n\n/** List all available deployer IDs. */\nexport function getAvailableDeployers(): string[] {\n\treturn Object.keys(deployerRegistry);\n}\n"],"mappings":";;;;;AAsBA,MAAa,mBAAiD;CAC7D,SAAS,IAAI,iBAAiB;CAC9B,SAAS,IAAI,iBAAiB;CAC9B;;AAGD,SAAgB,YAAY,IAAsC;AACjE,QAAO,iBAAiB;;;AAIzB,SAAgB,wBAAkC;AACjD,QAAO,OAAO,KAAK,iBAAiB"}
File without changes
@@ -0,0 +1,72 @@
1
+ //#region src/deployers/types.d.ts
2
+ /**
3
+ * Common types for PaaS deployers (Dokploy, Coolify, etc.)
4
+ *
5
+ * This module defines the contract that all PaaS deployment providers must
6
+ * implement. The deployer system is designed to be extensible — adding a new
7
+ * provider only requires implementing the `PaasDeployer` interface and
8
+ * registering it in `deployers/index.ts`.
9
+ *
10
+ * Architecture:
11
+ * Web UI / CLI --> API relay (/v1/deploy) --> PaaS instance (Dokploy/Coolify)
12
+ *
13
+ * The API server acts as a relay to avoid CORS issues when deploying from the
14
+ * browser. The CLI calls the deployer directly (no relay needed).
15
+ */
16
+ /** Credentials and connection info for a PaaS target. */
17
+ interface DeployTarget {
18
+ /** Base URL of the PaaS instance (e.g. "https://dokploy.example.com") */
19
+ instanceUrl: string;
20
+ /** API key / bearer token */
21
+ apiKey: string;
22
+ }
23
+ /** Input for a deploy operation. */
24
+ interface DeployInput {
25
+ /** Target PaaS connection */
26
+ target: DeployTarget;
27
+ /** Project name to create or use */
28
+ projectName: string;
29
+ /** Raw docker-compose.yml content */
30
+ composeYaml: string;
31
+ /** Raw .env file content (key=value lines) */
32
+ envContent: string;
33
+ /** Optional description */
34
+ description?: string;
35
+ }
36
+ /** Step-level status for deploy progress. */
37
+ interface DeployStep {
38
+ step: string;
39
+ status: "pending" | "running" | "done" | "error";
40
+ detail?: string;
41
+ }
42
+ /** Result of a deploy operation. */
43
+ interface DeployResult {
44
+ success: boolean;
45
+ /** URL to the deployed project/compose in the PaaS dashboard */
46
+ dashboardUrl?: string;
47
+ /** PaaS-assigned project ID */
48
+ projectId?: string;
49
+ /** PaaS-assigned compose/service ID */
50
+ composeId?: string;
51
+ /** Step-by-step progress */
52
+ steps: DeployStep[];
53
+ /** Error message if failed */
54
+ error?: string;
55
+ }
56
+ /** Interface that all PaaS deployers implement. */
57
+ interface PaasDeployer {
58
+ /** Human-readable name */
59
+ readonly name: string;
60
+ /** Identifier (e.g. "dokploy", "coolify") */
61
+ readonly id: string;
62
+ /** Test connection to the PaaS instance */
63
+ testConnection(target: DeployTarget): Promise<{
64
+ ok: boolean;
65
+ error?: string;
66
+ }>;
67
+ /** Deploy a compose stack */
68
+ deploy(input: DeployInput): Promise<DeployResult>;
69
+ }
70
+ //#endregion
71
+ export { DeployInput, DeployResult, DeployStep, DeployTarget, PaasDeployer };
72
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../../src/deployers/types.ts"],"mappings":";;AAgBA;;;;;AAQA;;;;;;;;;UARiB,YAAA;EAkBL;EAhBX,WAAA;EAoBgB;EAlBhB,MAAA;AAAA;;UAIgB,WAAA;EAgBhB;EAdA,MAAA,EAAQ,YAAA;EAeF;EAbN,WAAA;EAiBgB;EAfhB,WAAA;;EAEA,UAAA;EAcA;EAZA,WAAA;AAAA;;UAIgB,UAAA;EAChB,IAAA;EACA,MAAA;EACA,MAAA;AAAA;AAmBD;AAAA,UAfiB,YAAA;EAChB,OAAA;EAoBuB;EAlBvB,YAAA;EAoBc;EAlBd,SAAA;EAkB4B;EAhB5B,SAAA;EAgBmC;EAdnC,KAAA,EAAO,UAAA;EAUE;EART,KAAA;AAAA;;UAIgB,YAAA;EAMgC;EAAA,SAJvC,IAAA;EAMT;EAAA,SAJS,EAAA;EAIF;EAFP,cAAA,CAAe,MAAA,EAAQ,YAAA,GAAe,OAAA;IAAU,EAAA;IAAa,KAAA;EAAA;;EAE7D,MAAA,CAAO,KAAA,EAAO,WAAA,GAAc,OAAA,CAAQ,YAAA;AAAA"}
@@ -0,0 +1,72 @@
1
+ //#region src/deployers/types.d.ts
2
+ /**
3
+ * Common types for PaaS deployers (Dokploy, Coolify, etc.)
4
+ *
5
+ * This module defines the contract that all PaaS deployment providers must
6
+ * implement. The deployer system is designed to be extensible — adding a new
7
+ * provider only requires implementing the `PaasDeployer` interface and
8
+ * registering it in `deployers/index.ts`.
9
+ *
10
+ * Architecture:
11
+ * Web UI / CLI --> API relay (/v1/deploy) --> PaaS instance (Dokploy/Coolify)
12
+ *
13
+ * The API server acts as a relay to avoid CORS issues when deploying from the
14
+ * browser. The CLI calls the deployer directly (no relay needed).
15
+ */
16
+ /** Credentials and connection info for a PaaS target. */
17
+ interface DeployTarget {
18
+ /** Base URL of the PaaS instance (e.g. "https://dokploy.example.com") */
19
+ instanceUrl: string;
20
+ /** API key / bearer token */
21
+ apiKey: string;
22
+ }
23
+ /** Input for a deploy operation. */
24
+ interface DeployInput {
25
+ /** Target PaaS connection */
26
+ target: DeployTarget;
27
+ /** Project name to create or use */
28
+ projectName: string;
29
+ /** Raw docker-compose.yml content */
30
+ composeYaml: string;
31
+ /** Raw .env file content (key=value lines) */
32
+ envContent: string;
33
+ /** Optional description */
34
+ description?: string;
35
+ }
36
+ /** Step-level status for deploy progress. */
37
+ interface DeployStep {
38
+ step: string;
39
+ status: "pending" | "running" | "done" | "error";
40
+ detail?: string;
41
+ }
42
+ /** Result of a deploy operation. */
43
+ interface DeployResult {
44
+ success: boolean;
45
+ /** URL to the deployed project/compose in the PaaS dashboard */
46
+ dashboardUrl?: string;
47
+ /** PaaS-assigned project ID */
48
+ projectId?: string;
49
+ /** PaaS-assigned compose/service ID */
50
+ composeId?: string;
51
+ /** Step-by-step progress */
52
+ steps: DeployStep[];
53
+ /** Error message if failed */
54
+ error?: string;
55
+ }
56
+ /** Interface that all PaaS deployers implement. */
57
+ interface PaasDeployer {
58
+ /** Human-readable name */
59
+ readonly name: string;
60
+ /** Identifier (e.g. "dokploy", "coolify") */
61
+ readonly id: string;
62
+ /** Test connection to the PaaS instance */
63
+ testConnection(target: DeployTarget): Promise<{
64
+ ok: boolean;
65
+ error?: string;
66
+ }>;
67
+ /** Deploy a compose stack */
68
+ deploy(input: DeployInput): Promise<DeployResult>;
69
+ }
70
+ //#endregion
71
+ export { DeployInput, DeployResult, DeployStep, DeployTarget, PaasDeployer };
72
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/deployers/types.ts"],"mappings":";;AAgBA;;;;;AAQA;;;;;;;;;UARiB,YAAA;EAkBL;EAhBX,WAAA;EAoBgB;EAlBhB,MAAA;AAAA;;UAIgB,WAAA;EAgBhB;EAdA,MAAA,EAAQ,YAAA;EAeF;EAbN,WAAA;EAiBgB;EAfhB,WAAA;;EAEA,UAAA;EAcA;EAZA,WAAA;AAAA;;UAIgB,UAAA;EAChB,IAAA;EACA,MAAA;EACA,MAAA;AAAA;AAmBD;AAAA,UAfiB,YAAA;EAChB,OAAA;EAoBuB;EAlBvB,YAAA;EAoBc;EAlBd,SAAA;EAkB4B;EAhB5B,SAAA;EAgBmC;EAdnC,KAAA,EAAO,UAAA;EAUE;EART,KAAA;AAAA;;UAIgB,YAAA;EAMgC;EAAA,SAJvC,IAAA;EAMT;EAAA,SAJS,EAAA;EAIF;EAFP,cAAA,CAAe,MAAA,EAAQ,YAAA,GAAe,OAAA;IAAU,EAAA;IAAa,KAAA;EAAA;;EAE7D,MAAA,CAAO,KAAA,EAAO,WAAA,GAAc,OAAA,CAAQ,YAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,27 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/errors.ts
4
+ /**
5
+ * Typed error classes for stack generation.
6
+ */
7
+ /** Thrown when the resolved stack configuration is invalid (e.g. conflicts). */
8
+ var StackConfigError = class extends Error {
9
+ code = "STACK_CONFIG_ERROR";
10
+ constructor(message) {
11
+ super(message);
12
+ this.name = "StackConfigError";
13
+ }
14
+ };
15
+ /** Thrown when post-generation validation fails. */
16
+ var ValidationError = class extends Error {
17
+ code = "VALIDATION_ERROR";
18
+ constructor(message) {
19
+ super(message);
20
+ this.name = "ValidationError";
21
+ }
22
+ };
23
+
24
+ //#endregion
25
+ exports.StackConfigError = StackConfigError;
26
+ exports.ValidationError = ValidationError;
27
+ //# sourceMappingURL=errors.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.cjs","names":[],"sources":["../src/errors.ts"],"sourcesContent":["/**\n * Typed error classes for stack generation.\n */\n\n/** Thrown when the resolved stack configuration is invalid (e.g. conflicts). */\nexport class StackConfigError extends Error {\n\treadonly code = \"STACK_CONFIG_ERROR\" as const;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"StackConfigError\";\n\t}\n}\n\n/** Thrown when post-generation validation fails. */\nexport class ValidationError extends Error {\n\treadonly code = \"VALIDATION_ERROR\" as const;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"ValidationError\";\n\t}\n}\n"],"mappings":";;;;;;;AAKA,IAAa,mBAAb,cAAsC,MAAM;CAC3C,AAAS,OAAO;CAEhB,YAAY,SAAiB;AAC5B,QAAM,QAAQ;AACd,OAAK,OAAO;;;;AAKd,IAAa,kBAAb,cAAqC,MAAM;CAC1C,AAAS,OAAO;CAEhB,YAAY,SAAiB;AAC5B,QAAM,QAAQ;AACd,OAAK,OAAO"}
@@ -0,0 +1,17 @@
1
+ //#region src/errors.d.ts
2
+ /**
3
+ * Typed error classes for stack generation.
4
+ */
5
+ /** Thrown when the resolved stack configuration is invalid (e.g. conflicts). */
6
+ declare class StackConfigError extends Error {
7
+ readonly code: "STACK_CONFIG_ERROR";
8
+ constructor(message: string);
9
+ }
10
+ /** Thrown when post-generation validation fails. */
11
+ declare class ValidationError extends Error {
12
+ readonly code: "VALIDATION_ERROR";
13
+ constructor(message: string);
14
+ }
15
+ //#endregion
16
+ export { StackConfigError, ValidationError };
17
+ //# sourceMappingURL=errors.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.cts","names":[],"sources":["../src/errors.ts"],"mappings":";;AAKA;;;cAAa,gBAAA,SAAyB,KAAA;EAAA,SAC5B,IAAA;cAEG,OAAA;AAAA;;cAOA,eAAA,SAAwB,KAAA;EAAA,SAC3B,IAAA;cAEG,OAAA;AAAA"}
@@ -0,0 +1,225 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_bare_metal_partition = require('./bare-metal-partition.cjs');
3
+ const require_resolver = require('./resolver.cjs');
4
+ const require_generators_postgres_init = require('./generators/postgres-init.cjs');
5
+ const require_composer = require('./composer.cjs');
6
+ const require_errors = require('./errors.cjs');
7
+ const require_generators_bare_metal_install = require('./generators/bare-metal-install.cjs');
8
+ const require_generators_caddy = require('./generators/caddy.cjs');
9
+ const require_generators_cloud_init = require('./generators/cloud-init.cjs');
10
+ const require_generators_env = require('./generators/env.cjs');
11
+ const require_generators_get_shit_done = require('./generators/get-shit-done.cjs');
12
+ const require_generators_grafana = require('./generators/grafana.cjs');
13
+ const require_generators_health_check = require('./generators/health-check.cjs');
14
+ const require_generators_n8n_workflows = require('./generators/n8n-workflows.cjs');
15
+ const require_generators_native_services = require('./generators/native-services.cjs');
16
+ const require_generators_openclaw_install_script = require('./generators/openclaw-install-script.cjs');
17
+ const require_generators_openclaw_json = require('./generators/openclaw-json.cjs');
18
+ const require_generators_prometheus = require('./generators/prometheus.cjs');
19
+ const require_generators_readme = require('./generators/readme.cjs');
20
+ const require_generators_scripts = require('./generators/scripts.cjs');
21
+ const require_generators_skills = require('./generators/skills.cjs');
22
+ const require_generators_stack_manifest = require('./generators/stack-manifest.cjs');
23
+ const require_generators_traefik = require('./generators/traefik.cjs');
24
+ const require_migrations = require('./migrations.cjs');
25
+ const require_validator = require('./validator.cjs');
26
+
27
+ //#region src/generate.ts
28
+ /** Resolver/compose only support linux image platforms; normalize for bare-metal (windows/macos). */
29
+ function getComposePlatform(platform) {
30
+ if (platform === "linux/amd64" || platform === "linux/arm64") return platform;
31
+ return "linux/amd64";
32
+ }
33
+ /**
34
+ * Main orchestration function: takes generation input, resolves dependencies,
35
+ * generates all files, validates, and returns the complete file tree.
36
+ */
37
+ function generate(rawInput) {
38
+ const input = require_migrations.migrateConfig(rawInput);
39
+ const composePlatform = getComposePlatform(input.platform);
40
+ const resolved = require_resolver.resolve({
41
+ services: input.services,
42
+ skillPacks: input.skillPacks,
43
+ aiProviders: input.aiProviders,
44
+ proxy: input.proxy,
45
+ gpu: input.gpu,
46
+ platform: composePlatform,
47
+ monitoring: input.monitoring
48
+ });
49
+ if (!resolved.isValid) throw new require_errors.StackConfigError(`Invalid stack configuration: ${resolved.errors.map((e) => e.message).join("; ")}`);
50
+ const isBareMetal = input.deploymentType === "bare-metal";
51
+ let resolvedForCompose = resolved;
52
+ let nativeIds = /* @__PURE__ */ new Set();
53
+ let nativeServices = [];
54
+ let dockerOnlyServices = [];
55
+ if (isBareMetal) {
56
+ const partition = require_bare_metal_partition.partitionBareMetal(resolved, input.platform);
57
+ nativeServices = partition.nativeServices;
58
+ dockerOnlyServices = partition.dockerOnlyServices;
59
+ nativeIds = partition.nativeIds;
60
+ if (nativeServices.length > 0) resolvedForCompose = require_bare_metal_partition.resolvedWithOnlyServices(resolved, dockerOnlyServices);
61
+ }
62
+ let traefikOutput;
63
+ if (input.proxy === "traefik" && input.domain) traefikOutput = require_generators_traefik.generateTraefikConfig(resolvedForCompose, input.domain);
64
+ const composeOptions = {
65
+ projectName: input.projectName,
66
+ proxy: input.proxy,
67
+ proxyHttpPort: input.proxyHttpPort,
68
+ proxyHttpsPort: input.proxyHttpsPort,
69
+ portOverrides: input.portOverrides,
70
+ domain: input.domain,
71
+ gpu: input.gpu,
72
+ platform: composePlatform,
73
+ deployment: input.deployment,
74
+ openclawVersion: input.openclawVersion,
75
+ bareMetalNativeHost: isBareMetal && nativeIds.size > 0,
76
+ traefikLabels: traefikOutput?.serviceLabels,
77
+ openclawImage: input.openclawImage ?? "official",
78
+ hardened: input.hardened ?? true,
79
+ openclawInstallMethod: input.openclawInstallMethod ?? "docker"
80
+ };
81
+ const composeResult = require_composer.composeMultiFile(resolvedForCompose, composeOptions);
82
+ const validation = require_validator.validate(resolvedForCompose, composeResult.files["docker-compose.yml"] ?? "", {
83
+ domain: input.domain,
84
+ generateSecrets: input.generateSecrets
85
+ });
86
+ if (!validation.valid) throw new require_errors.ValidationError(`Validation failed: ${validation.errors.map((e) => e.message).join("; ")}`);
87
+ const files = {};
88
+ for (const [filename, content] of Object.entries(composeResult.files)) files[filename] = content;
89
+ const envFiles = require_generators_env.generateEnvFiles(resolved, {
90
+ generateSecrets: input.generateSecrets,
91
+ domain: input.domain,
92
+ openclawVersion: input.openclawVersion,
93
+ nativeServiceIds: isBareMetal ? nativeIds : void 0,
94
+ composeFiles: Object.keys(composeResult.files),
95
+ composeProfiles: composeResult.profiles,
96
+ openclawImage: input.openclawImage
97
+ });
98
+ files[".env.example"] = envFiles.envExample;
99
+ files[".env"] = envFiles.env;
100
+ files[".gitignore"] = [
101
+ ".env",
102
+ ".env.local",
103
+ ".env.*.local",
104
+ "*.log",
105
+ "docker-compose.override.yml"
106
+ ].join("\n");
107
+ const manifestFiles = require_generators_stack_manifest.generateStackManifest(resolved, input);
108
+ for (const [path, content] of Object.entries(manifestFiles)) files[path] = content;
109
+ const skillFiles = require_generators_skills.generateSkillFiles(resolved);
110
+ for (const [path, content] of Object.entries(skillFiles)) files[path] = content;
111
+ files["openclaw/config/openclaw.json"] = require_generators_openclaw_json.generateOpenClawConfig(resolved, {
112
+ deploymentType: input.deploymentType,
113
+ gatewayPort: 18789,
114
+ openclawVersion: input.openclawVersion
115
+ });
116
+ files["README.md"] = require_generators_readme.generateReadme(resolved, {
117
+ projectName: input.projectName,
118
+ domain: input.domain,
119
+ proxy: input.proxy,
120
+ deploymentType: input.deploymentType,
121
+ hasNativeServices: isBareMetal && nativeServices.length > 0,
122
+ openclawInstallMethod: input.openclawInstallMethod
123
+ });
124
+ const scripts = require_generators_scripts.generateScripts();
125
+ for (const [path, content] of Object.entries(scripts)) files[path] = content;
126
+ const healthCheckFiles = require_generators_health_check.generateHealthCheck(resolved, {
127
+ projectName: input.projectName,
128
+ deploymentType: input.deploymentType
129
+ });
130
+ for (const [path, content] of Object.entries(healthCheckFiles)) files[path] = content;
131
+ const n8nWorkflows = require_generators_n8n_workflows.generateN8nWorkflows(resolved);
132
+ for (const [path, content] of Object.entries(n8nWorkflows)) files[path] = content;
133
+ const postgresInit = require_generators_postgres_init.generatePostgresInit(resolved);
134
+ if (postgresInit) files["postgres/init-databases.sh"] = postgresInit;
135
+ if (input.proxy === "caddy" && input.domain) files["caddy/Caddyfile"] = require_generators_caddy.generateCaddyfile(resolved, input.domain);
136
+ if (traefikOutput) files["traefik/traefik.yml"] = traefikOutput.staticConfig;
137
+ if (resolved.services.some((s) => s.definition.id === "prometheus")) files["prometheus/prometheus.yml"] = require_generators_prometheus.generatePrometheusConfig(resolved);
138
+ if (resolved.services.some((s) => s.definition.id === "grafana")) {
139
+ const grafanaFiles = require_generators_grafana.generateGrafanaConfig();
140
+ for (const [path, content] of Object.entries(grafanaFiles)) files[path] = content;
141
+ files["config/grafana/dashboards/openclaw-stack-overview.json"] = require_generators_grafana.generateGrafanaDashboard();
142
+ }
143
+ files["docker-compose.override.yml"] = [
144
+ "# Local overrides for docker-compose.yml",
145
+ "# This file is gitignored — use it for personal port changes, extra volumes, etc.",
146
+ "services: {}",
147
+ ""
148
+ ].join("\n");
149
+ files["docs/SERVICES.md"] = generateServicesDoc(resolved);
150
+ if (isBareMetal) {
151
+ if (nativeServices.length > 0) {
152
+ const nativePlatform = require_bare_metal_partition.platformToNativePlatform(input.platform);
153
+ const nativeScripts = require_generators_native_services.generateNativeInstallScripts({
154
+ nativeServices,
155
+ platform: nativePlatform,
156
+ projectName: input.projectName
157
+ });
158
+ for (const [path, content] of Object.entries(nativeScripts)) files[path] = content;
159
+ }
160
+ const bareMetalFiles = require_generators_bare_metal_install.generateBareMetalInstall({
161
+ platform: input.platform,
162
+ projectName: input.projectName,
163
+ hasNativeServices: nativeServices.length > 0
164
+ });
165
+ for (const [path, content] of Object.entries(bareMetalFiles)) files[path] = content;
166
+ }
167
+ if (input.gsdRuntimes && input.gsdRuntimes.length > 0) {
168
+ const gsdScripts = require_generators_get_shit_done.generateGsdScripts(input.gsdRuntimes);
169
+ if (gsdScripts) {
170
+ files["openclaw/scripts/setup-gsd.sh"] = gsdScripts.sh;
171
+ files["openclaw/scripts/setup-gsd.ps1"] = gsdScripts.ps1;
172
+ }
173
+ }
174
+ if (input.openclawInstallMethod === "direct") {
175
+ const installScripts = require_generators_openclaw_install_script.generateOpenclawInstallScript({ projectName: input.projectName });
176
+ for (const [path, content] of Object.entries(installScripts)) files[path] = content;
177
+ }
178
+ if (input.deployTarget === "cloud-init") files["cloud-init.yml"] = require_generators_cloud_init.generateCloudInit({
179
+ composeYaml: composeResult.files["docker-compose.yml"] ?? "",
180
+ envContent: envFiles.env,
181
+ projectName: input.projectName,
182
+ gatewayPort: 18789
183
+ });
184
+ const skillCount = resolved.services.reduce((sum, s) => sum + s.definition.skills.length, 0);
185
+ return {
186
+ files,
187
+ metadata: {
188
+ serviceCount: resolved.services.length,
189
+ skillCount,
190
+ estimatedMemoryMB: resolved.estimatedMemoryMB,
191
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString()
192
+ }
193
+ };
194
+ }
195
+ function generateServicesDoc(resolved) {
196
+ const lines = [
197
+ "# Service Reference",
198
+ "",
199
+ "This document describes all companion services in your OpenClaw stack.",
200
+ ""
201
+ ];
202
+ for (const svc of resolved.services) {
203
+ const def = svc.definition;
204
+ lines.push(`## ${def.icon} ${def.name}`);
205
+ lines.push("");
206
+ lines.push(def.description);
207
+ lines.push("");
208
+ lines.push(`- **Image**: \`${def.image}:${def.imageTag}\``);
209
+ lines.push(`- **Category**: ${def.category}`);
210
+ lines.push(`- **Maturity**: ${def.maturity}`);
211
+ if (def.minMemoryMB) lines.push(`- **Min Memory**: ${def.minMemoryMB}MB`);
212
+ if (def.ports.length > 0) {
213
+ lines.push("- **Ports**:");
214
+ for (const p of def.ports) lines.push(` - \`${p.container}\` — ${p.description}${p.exposed ? "" : " (internal only)"}`);
215
+ }
216
+ lines.push(`- **Docs**: ${def.docsUrl}`);
217
+ lines.push("");
218
+ }
219
+ return lines.join("\n");
220
+ }
221
+
222
+ //#endregion
223
+ exports.generate = generate;
224
+ exports.generateServicesDoc = generateServicesDoc;
225
+ //# sourceMappingURL=generate.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.cjs","names":["migrateConfig","resolve","StackConfigError","partitionBareMetal","resolvedWithOnlyServices","generateTraefikConfig","composeMultiFile","validate","ValidationError","generateEnvFiles","generateStackManifest","generateSkillFiles","generateOpenClawConfig","generateReadme","generateScripts","generateHealthCheck","generateN8nWorkflows","generatePostgresInit","generateCaddyfile","generatePrometheusConfig","generateGrafanaConfig","generateGrafanaDashboard","platformToNativePlatform","generateNativeInstallScripts","generateBareMetalInstall","generateGsdScripts","generateOpenclawInstallScript","generateCloudInit"],"sources":["../src/generate.ts"],"sourcesContent":["import {\n\tpartitionBareMetal,\n\tplatformToNativePlatform,\n\tresolvedWithOnlyServices,\n} from \"./bare-metal-partition.js\";\nimport { composeMultiFile } from \"./composer.js\";\nimport { StackConfigError, ValidationError } from \"./errors.js\";\nimport { generateBareMetalInstall } from \"./generators/bare-metal-install.js\";\nimport { generateCaddyfile } from \"./generators/caddy.js\";\nimport { generateCloudInit } from \"./generators/cloud-init.js\";\nimport { generateEnvFiles } from \"./generators/env.js\";\nimport { generateGsdScripts } from \"./generators/get-shit-done.js\";\nimport { generateGrafanaConfig, generateGrafanaDashboard } from \"./generators/grafana.js\";\nimport { generateHealthCheck } from \"./generators/health-check.js\";\nimport { generateN8nWorkflows } from \"./generators/n8n-workflows.js\";\nimport { generateNativeInstallScripts } from \"./generators/native-services.js\";\nimport { generateOpenclawInstallScript } from \"./generators/openclaw-install-script.js\";\nimport { generateOpenClawConfig } from \"./generators/openclaw-json.js\";\nimport { generatePostgresInit } from \"./generators/postgres-init.js\";\nimport { generatePrometheusConfig } from \"./generators/prometheus.js\";\nimport { generateReadme } from \"./generators/readme.js\";\nimport { generateScripts } from \"./generators/scripts.js\";\nimport { generateSkillFiles } from \"./generators/skills.js\";\nimport { generateStackManifest } from \"./generators/stack-manifest.js\";\nimport { generateTraefikConfig } from \"./generators/traefik.js\";\nimport { migrateConfig } from \"./migrations.js\";\nimport { resolve } from \"./resolver.js\";\nimport type {\n\tGeneratedFiles,\n\tGenerationInput,\n\tGenerationResult,\n\tPlatform,\n\tResolverInput,\n} from \"./types.js\";\nimport { validate } from \"./validator.js\";\n\n/** Resolver/compose only support linux image platforms; normalize for bare-metal (windows/macos). */\nfunction getComposePlatform(platform: Platform): \"linux/amd64\" | \"linux/arm64\" {\n\tif (platform === \"linux/amd64\" || platform === \"linux/arm64\") return platform;\n\treturn \"linux/amd64\";\n}\n\n/**\n * Main orchestration function: takes generation input, resolves dependencies,\n * generates all files, validates, and returns the complete file tree.\n */\nexport function generate(rawInput: GenerationInput): GenerationResult {\n\t// Apply config migrations if needed\n\tconst input = migrateConfig(rawInput as Record<string, unknown>) as GenerationInput;\n\n\tconst composePlatform = getComposePlatform(input.platform);\n\n\t// 1. Resolve dependencies\n\tconst resolverInput: ResolverInput = {\n\t\tservices: input.services,\n\t\tskillPacks: input.skillPacks,\n\t\taiProviders: input.aiProviders,\n\t\tproxy: input.proxy,\n\t\tgpu: input.gpu,\n\t\tplatform: composePlatform,\n\t\tmonitoring: input.monitoring,\n\t};\n\tconst resolved = resolve(resolverInput);\n\n\tif (!resolved.isValid) {\n\t\tthrow new StackConfigError(\n\t\t\t`Invalid stack configuration: ${resolved.errors.map((e) => e.message).join(\"; \")}`,\n\t\t);\n\t}\n\n\tconst isBareMetal = input.deploymentType === \"bare-metal\";\n\tlet resolvedForCompose = resolved;\n\tlet nativeIds = new Set<string>();\n\tlet nativeServices: typeof resolved.services = [];\n\tlet dockerOnlyServices: typeof resolved.services = [];\n\n\tif (isBareMetal) {\n\t\tconst partition = partitionBareMetal(resolved, input.platform);\n\t\tnativeServices = partition.nativeServices;\n\t\tdockerOnlyServices = partition.dockerOnlyServices;\n\t\tnativeIds = partition.nativeIds;\n\t\tif (nativeServices.length > 0) {\n\t\t\tresolvedForCompose = resolvedWithOnlyServices(resolved, dockerOnlyServices);\n\t\t}\n\t}\n\n\t// 2. Generate Docker Compose YAML (multi-file)\n\t// Compute Traefik labels before composing (labels get injected into docker-compose services)\n\tlet traefikOutput: ReturnType<typeof generateTraefikConfig> | undefined;\n\tif (input.proxy === \"traefik\" && input.domain) {\n\t\ttraefikOutput = generateTraefikConfig(resolvedForCompose, input.domain);\n\t}\n\n\tconst composeOptions = {\n\t\tprojectName: input.projectName,\n\t\tproxy: input.proxy,\n\t\tproxyHttpPort: input.proxyHttpPort,\n\t\tproxyHttpsPort: input.proxyHttpsPort,\n\t\tportOverrides: input.portOverrides,\n\t\tdomain: input.domain,\n\t\tgpu: input.gpu,\n\t\tplatform: composePlatform,\n\t\tdeployment: input.deployment,\n\t\topenclawVersion: input.openclawVersion,\n\t\tbareMetalNativeHost: isBareMetal && nativeIds.size > 0,\n\t\ttraefikLabels: traefikOutput?.serviceLabels,\n\t\topenclawImage: input.openclawImage ?? \"official\",\n\t\thardened: input.hardened ?? true,\n\t\topenclawInstallMethod: input.openclawInstallMethod ?? \"docker\",\n\t};\n\tconst composeResult = composeMultiFile(resolvedForCompose, composeOptions);\n\n\t// 3. Validate (using the base docker-compose.yml)\n\tconst validation = validate(resolvedForCompose, composeResult.files[\"docker-compose.yml\"] ?? \"\", {\n\t\tdomain: input.domain,\n\t\tgenerateSecrets: input.generateSecrets,\n\t});\n\tif (!validation.valid) {\n\t\tthrow new ValidationError(\n\t\t\t`Validation failed: ${validation.errors.map((e) => e.message).join(\"; \")}`,\n\t\t);\n\t}\n\n\t// 4. Generate all files\n\tconst files: GeneratedFiles = {};\n\n\t// Docker Compose (multi-file output)\n\tfor (const [filename, content] of Object.entries(composeResult.files)) {\n\t\tfiles[filename] = content;\n\t}\n\n\t// Environment files (when bare-metal with native services, host vars use host.docker.internal)\n\tconst envFiles = generateEnvFiles(resolved, {\n\t\tgenerateSecrets: input.generateSecrets,\n\t\tdomain: input.domain,\n\t\topenclawVersion: input.openclawVersion,\n\t\tnativeServiceIds: isBareMetal ? nativeIds : undefined,\n\t\tcomposeFiles: Object.keys(composeResult.files),\n\t\tcomposeProfiles: composeResult.profiles,\n\t\topenclawImage: input.openclawImage,\n\t});\n\tfiles[\".env.example\"] = envFiles.envExample;\n\tfiles[\".env\"] = envFiles.env;\n\n\t// .gitignore\n\tfiles[\".gitignore\"] = [\n\t\t\".env\",\n\t\t\".env.local\",\n\t\t\".env.*.local\",\n\t\t\"*.log\",\n\t\t\"docker-compose.override.yml\",\n\t].join(\"\\n\");\n\n\t// Stack manifest (consumed by Mission Control)\n\tconst manifestFiles = generateStackManifest(resolved, input);\n\tfor (const [path, content] of Object.entries(manifestFiles)) {\n\t\tfiles[path] = content;\n\t}\n\n\t// Skills\n\tconst skillFiles = generateSkillFiles(resolved);\n\tfor (const [path, content] of Object.entries(skillFiles)) {\n\t\tfiles[path] = content;\n\t}\n\n\t// OpenClaw Core Configuration\n\tfiles[\"openclaw/config/openclaw.json\"] = generateOpenClawConfig(resolved, {\n\t\tdeploymentType: input.deploymentType,\n\t\tgatewayPort: 18789,\n\t\topenclawVersion: input.openclawVersion,\n\t});\n\n\t// README\n\tfiles[\"README.md\"] = generateReadme(resolved, {\n\t\tprojectName: input.projectName,\n\t\tdomain: input.domain,\n\t\tproxy: input.proxy,\n\t\tdeploymentType: input.deploymentType,\n\t\thasNativeServices: isBareMetal && nativeServices.length > 0,\n\t\topenclawInstallMethod: input.openclawInstallMethod,\n\t});\n\n\t// Scripts\n\tconst scripts = generateScripts();\n\tfor (const [path, content] of Object.entries(scripts)) {\n\t\tfiles[path] = content;\n\t}\n\n\t// Health check scripts (dynamic, stack-specific)\n\tconst healthCheckFiles = generateHealthCheck(resolved, {\n\t\tprojectName: input.projectName,\n\t\tdeploymentType: input.deploymentType,\n\t});\n\tfor (const [path, content] of Object.entries(healthCheckFiles)) {\n\t\tfiles[path] = content;\n\t}\n\n\t// n8n workflows\n\tconst n8nWorkflows = generateN8nWorkflows(resolved);\n\tfor (const [path, content] of Object.entries(n8nWorkflows)) {\n\t\tfiles[path] = content;\n\t}\n\n\t// PostgreSQL init script (creates per-service databases and users)\n\tconst postgresInit = generatePostgresInit(resolved);\n\tif (postgresInit) {\n\t\tfiles[\"postgres/init-databases.sh\"] = postgresInit;\n\t}\n\n\t// Caddy config\n\tif (input.proxy === \"caddy\" && input.domain) {\n\t\tfiles[\"caddy/Caddyfile\"] = generateCaddyfile(resolved, input.domain);\n\t}\n\n\t// Traefik config (labels are already injected via composeOptions.traefikLabels)\n\tif (traefikOutput) {\n\t\tfiles[\"traefik/traefik.yml\"] = traefikOutput.staticConfig;\n\t}\n\n\t// Prometheus config\n\tconst hasPrometheus = resolved.services.some((s) => s.definition.id === \"prometheus\");\n\tif (hasPrometheus) {\n\t\tfiles[\"prometheus/prometheus.yml\"] = generatePrometheusConfig(resolved);\n\t}\n\n\t// Grafana config\n\tconst hasGrafana = resolved.services.some((s) => s.definition.id === \"grafana\");\n\tif (hasGrafana) {\n\t\tconst grafanaFiles = generateGrafanaConfig();\n\t\tfor (const [path, content] of Object.entries(grafanaFiles)) {\n\t\t\tfiles[path] = content;\n\t\t}\n\t\t// Grafana dashboard\n\t\tfiles[\"config/grafana/dashboards/openclaw-stack-overview.json\"] = generateGrafanaDashboard();\n\t}\n\n\t// Docker Compose override (empty template)\n\tfiles[\"docker-compose.override.yml\"] = [\n\t\t\"# Local overrides for docker-compose.yml\",\n\t\t\"# This file is gitignored — use it for personal port changes, extra volumes, etc.\",\n\t\t\"services: {}\",\n\t\t\"\",\n\t].join(\"\\n\");\n\n\t// SERVICES.md documentation\n\tfiles[\"docs/SERVICES.md\"] = generateServicesDoc(resolved);\n\n\t// Bare-metal: native install scripts + top-level installer\n\tif (isBareMetal) {\n\t\tif (nativeServices.length > 0) {\n\t\t\tconst nativePlatform = platformToNativePlatform(input.platform);\n\t\t\tconst nativeScripts = generateNativeInstallScripts({\n\t\t\t\tnativeServices,\n\t\t\t\tplatform: nativePlatform,\n\t\t\t\tprojectName: input.projectName,\n\t\t\t});\n\t\t\tfor (const [path, content] of Object.entries(nativeScripts)) {\n\t\t\t\tfiles[path] = content;\n\t\t\t}\n\t\t}\n\t\tconst bareMetalFiles = generateBareMetalInstall({\n\t\t\tplatform: input.platform,\n\t\t\tprojectName: input.projectName,\n\t\t\thasNativeServices: nativeServices.length > 0,\n\t\t});\n\t\tfor (const [path, content] of Object.entries(bareMetalFiles)) {\n\t\t\tfiles[path] = content;\n\t\t}\n\t}\n\n\t// Get-Shit-Done setup scripts\n\tif (input.gsdRuntimes && input.gsdRuntimes.length > 0) {\n\t\tconst gsdScripts = generateGsdScripts(input.gsdRuntimes);\n\t\tif (gsdScripts) {\n\t\t\tfiles[\"openclaw/scripts/setup-gsd.sh\"] = gsdScripts.sh;\n\t\t\tfiles[\"openclaw/scripts/setup-gsd.ps1\"] = gsdScripts.ps1;\n\t\t}\n\t}\n\n\t// OpenClaw direct install scripts (host-based, no Docker gateway)\n\tif (input.openclawInstallMethod === \"direct\") {\n\t\tconst installScripts = generateOpenclawInstallScript({\n\t\t\tprojectName: input.projectName,\n\t\t});\n\t\tfor (const [path, content] of Object.entries(installScripts)) {\n\t\t\tfiles[path] = content;\n\t\t}\n\t}\n\n\t// Cloud-init deploy target\n\tif (input.deployTarget === \"cloud-init\") {\n\t\tconst mainCompose = composeResult.files[\"docker-compose.yml\"] ?? \"\";\n\t\tfiles[\"cloud-init.yml\"] = generateCloudInit({\n\t\t\tcomposeYaml: mainCompose,\n\t\t\tenvContent: envFiles.env,\n\t\t\tprojectName: input.projectName,\n\t\t\tgatewayPort: 18789,\n\t\t});\n\t}\n\n\t// 5. Calculate metadata\n\tconst skillCount = resolved.services.reduce((sum, s) => sum + s.definition.skills.length, 0);\n\n\treturn {\n\t\tfiles,\n\t\tmetadata: {\n\t\t\tserviceCount: resolved.services.length,\n\t\t\tskillCount,\n\t\t\testimatedMemoryMB: resolved.estimatedMemoryMB,\n\t\t\tgeneratedAt: new Date().toISOString(),\n\t\t},\n\t};\n}\n\nexport function generateServicesDoc(resolved: import(\"./types.js\").ResolverOutput): string {\n\tconst lines: string[] = [\n\t\t\"# Service Reference\",\n\t\t\"\",\n\t\t\"This document describes all companion services in your OpenClaw stack.\",\n\t\t\"\",\n\t];\n\n\tfor (const svc of resolved.services) {\n\t\tconst def = svc.definition;\n\t\tlines.push(`## ${def.icon} ${def.name}`);\n\t\tlines.push(\"\");\n\t\tlines.push(def.description);\n\t\tlines.push(\"\");\n\t\tlines.push(`- **Image**: \\`${def.image}:${def.imageTag}\\``);\n\t\tlines.push(`- **Category**: ${def.category}`);\n\t\tlines.push(`- **Maturity**: ${def.maturity}`);\n\t\tif (def.minMemoryMB) {\n\t\t\tlines.push(`- **Min Memory**: ${def.minMemoryMB}MB`);\n\t\t}\n\t\tif (def.ports.length > 0) {\n\t\t\tlines.push(\"- **Ports**:\");\n\t\t\tfor (const p of def.ports) {\n\t\t\t\tlines.push(\n\t\t\t\t\t` - \\`${p.container}\\` — ${p.description}${p.exposed ? \"\" : \" (internal only)\"}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tlines.push(`- **Docs**: ${def.docsUrl}`);\n\t\tlines.push(\"\");\n\t}\n\n\treturn lines.join(\"\\n\");\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { GenerationInput, GenerationResult, ResolverOutput } from "./types.cjs";
2
+
3
+ //#region src/generate.d.ts
4
+ /**
5
+ * Main orchestration function: takes generation input, resolves dependencies,
6
+ * generates all files, validates, and returns the complete file tree.
7
+ */
8
+ declare function generate(rawInput: GenerationInput): GenerationResult;
9
+ declare function generateServicesDoc(resolved: ResolverOutput): string;
10
+ //#endregion
11
+ export { generate, generateServicesDoc };
12
+ //# sourceMappingURL=generate.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.cts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;AA8CA;;iBAAgB,QAAA,CAAS,QAAA,EAAU,eAAA,GAAkB,gBAAA;AAAA,iBA4QrC,mBAAA,CAAoB,QAAA,EAAD,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.mts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;AA2CA;;iBAAgB,QAAA,CAAS,QAAA,EAAU,eAAA,GAAkB,gBAAA;AAAA,iBAmOrC,mBAAA,CAAoB,QAAA,EAAD,cAAA"}
1
+ {"version":3,"file":"generate.d.mts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;AA8CA;;iBAAgB,QAAA,CAAS,QAAA,EAAU,eAAA,GAAkB,gBAAA;AAAA,iBA4QrC,mBAAA,CAAoB,QAAA,EAAD,cAAA"}
package/dist/generate.mjs CHANGED
@@ -1,21 +1,24 @@
1
1
  import { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices } from "./bare-metal-partition.mjs";
2
2
  import { resolve } from "./resolver.mjs";
3
+ import { generatePostgresInit } from "./generators/postgres-init.mjs";
3
4
  import { composeMultiFile } from "./composer.mjs";
4
5
  import { StackConfigError, ValidationError } from "./errors.mjs";
5
6
  import { generateBareMetalInstall } from "./generators/bare-metal-install.mjs";
6
7
  import { generateCaddyfile } from "./generators/caddy.mjs";
7
- import { generatePostgresInit } from "./generators/postgres-init.mjs";
8
+ import { generateCloudInit } from "./generators/cloud-init.mjs";
8
9
  import { generateEnvFiles } from "./generators/env.mjs";
9
10
  import { generateGsdScripts } from "./generators/get-shit-done.mjs";
10
11
  import { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.mjs";
11
12
  import { generateHealthCheck } from "./generators/health-check.mjs";
12
13
  import { generateN8nWorkflows } from "./generators/n8n-workflows.mjs";
13
14
  import { generateNativeInstallScripts } from "./generators/native-services.mjs";
15
+ import { generateOpenclawInstallScript } from "./generators/openclaw-install-script.mjs";
14
16
  import { generateOpenClawConfig } from "./generators/openclaw-json.mjs";
15
17
  import { generatePrometheusConfig } from "./generators/prometheus.mjs";
16
18
  import { generateReadme } from "./generators/readme.mjs";
17
19
  import { generateScripts } from "./generators/scripts.mjs";
18
20
  import { generateSkillFiles } from "./generators/skills.mjs";
21
+ import { generateStackManifest } from "./generators/stack-manifest.mjs";
19
22
  import { generateTraefikConfig } from "./generators/traefik.mjs";
20
23
  import { migrateConfig } from "./migrations.mjs";
21
24
  import { validate } from "./validator.mjs";
@@ -60,13 +63,19 @@ function generate(rawInput) {
60
63
  const composeOptions = {
61
64
  projectName: input.projectName,
62
65
  proxy: input.proxy,
66
+ proxyHttpPort: input.proxyHttpPort,
67
+ proxyHttpsPort: input.proxyHttpsPort,
68
+ portOverrides: input.portOverrides,
63
69
  domain: input.domain,
64
70
  gpu: input.gpu,
65
71
  platform: composePlatform,
66
72
  deployment: input.deployment,
67
73
  openclawVersion: input.openclawVersion,
68
74
  bareMetalNativeHost: isBareMetal && nativeIds.size > 0,
69
- traefikLabels: traefikOutput?.serviceLabels
75
+ traefikLabels: traefikOutput?.serviceLabels,
76
+ openclawImage: input.openclawImage ?? "official",
77
+ hardened: input.hardened ?? true,
78
+ openclawInstallMethod: input.openclawInstallMethod ?? "docker"
70
79
  };
71
80
  const composeResult = composeMultiFile(resolvedForCompose, composeOptions);
72
81
  const validation = validate(resolvedForCompose, composeResult.files["docker-compose.yml"] ?? "", {
@@ -80,7 +89,10 @@ function generate(rawInput) {
80
89
  generateSecrets: input.generateSecrets,
81
90
  domain: input.domain,
82
91
  openclawVersion: input.openclawVersion,
83
- nativeServiceIds: isBareMetal ? nativeIds : void 0
92
+ nativeServiceIds: isBareMetal ? nativeIds : void 0,
93
+ composeFiles: Object.keys(composeResult.files),
94
+ composeProfiles: composeResult.profiles,
95
+ openclawImage: input.openclawImage
84
96
  });
85
97
  files[".env.example"] = envFiles.envExample;
86
98
  files[".env"] = envFiles.env;
@@ -91,15 +103,22 @@ function generate(rawInput) {
91
103
  "*.log",
92
104
  "docker-compose.override.yml"
93
105
  ].join("\n");
106
+ const manifestFiles = generateStackManifest(resolved, input);
107
+ for (const [path, content] of Object.entries(manifestFiles)) files[path] = content;
94
108
  const skillFiles = generateSkillFiles(resolved);
95
109
  for (const [path, content] of Object.entries(skillFiles)) files[path] = content;
96
- files["openclaw/config/openclaw.json"] = generateOpenClawConfig(resolved);
110
+ files["openclaw/config/openclaw.json"] = generateOpenClawConfig(resolved, {
111
+ deploymentType: input.deploymentType,
112
+ gatewayPort: 18789,
113
+ openclawVersion: input.openclawVersion
114
+ });
97
115
  files["README.md"] = generateReadme(resolved, {
98
116
  projectName: input.projectName,
99
117
  domain: input.domain,
100
118
  proxy: input.proxy,
101
119
  deploymentType: input.deploymentType,
102
- hasNativeServices: isBareMetal && nativeServices.length > 0
120
+ hasNativeServices: isBareMetal && nativeServices.length > 0,
121
+ openclawInstallMethod: input.openclawInstallMethod
103
122
  });
104
123
  const scripts = generateScripts();
105
124
  for (const [path, content] of Object.entries(scripts)) files[path] = content;
@@ -151,6 +170,16 @@ function generate(rawInput) {
151
170
  files["openclaw/scripts/setup-gsd.ps1"] = gsdScripts.ps1;
152
171
  }
153
172
  }
173
+ if (input.openclawInstallMethod === "direct") {
174
+ const installScripts = generateOpenclawInstallScript({ projectName: input.projectName });
175
+ for (const [path, content] of Object.entries(installScripts)) files[path] = content;
176
+ }
177
+ if (input.deployTarget === "cloud-init") files["cloud-init.yml"] = generateCloudInit({
178
+ composeYaml: composeResult.files["docker-compose.yml"] ?? "",
179
+ envContent: envFiles.env,
180
+ projectName: input.projectName,
181
+ gatewayPort: 18789
182
+ });
154
183
  const skillCount = resolved.services.reduce((sum, s) => sum + s.definition.skills.length, 0);
155
184
  return {
156
185
  files,