@better-openclaw/core 1.0.20 → 1.0.22

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 (975) hide show
  1. package/.github/workflows/publish-core.yml +1 -1
  2. package/dist/bare-metal-partition.cjs +2 -3
  3. package/dist/bare-metal-partition.cjs.map +1 -1
  4. package/dist/bare-metal-partition.d.mts.map +1 -1
  5. package/dist/bare-metal-partition.mjs +1 -1
  6. package/dist/bare-metal-partition.test.cjs +4 -5
  7. package/dist/bare-metal-partition.test.cjs.map +1 -1
  8. package/dist/bare-metal-partition.test.mjs +3 -4
  9. package/dist/bare-metal-partition.test.mjs.map +1 -1
  10. package/dist/compose-validation.test.cjs +5 -6
  11. package/dist/compose-validation.test.cjs.map +1 -1
  12. package/dist/compose-validation.test.mjs +2 -3
  13. package/dist/compose-validation.test.mjs.map +1 -1
  14. package/dist/composer.cjs +4 -5
  15. package/dist/composer.cjs.map +1 -1
  16. package/dist/composer.d.mts.map +1 -1
  17. package/dist/composer.mjs +1 -2
  18. package/dist/composer.mjs.map +1 -1
  19. package/dist/composer.snapshot.test.cjs +4 -5
  20. package/dist/composer.snapshot.test.cjs.map +1 -1
  21. package/dist/composer.snapshot.test.mjs +3 -4
  22. package/dist/composer.snapshot.test.mjs.map +1 -1
  23. package/dist/composer.test.cjs +5 -6
  24. package/dist/composer.test.cjs.map +1 -1
  25. package/dist/composer.test.mjs +3 -4
  26. package/dist/composer.test.mjs.map +1 -1
  27. package/dist/coolify-BVGGcMrT.d.mts +18 -0
  28. package/dist/coolify-BVGGcMrT.d.mts.map +1 -0
  29. package/dist/coolify-vlb1G9V2.d.cts +18 -0
  30. package/dist/coolify-vlb1G9V2.d.cts.map +1 -0
  31. package/dist/deployers/coolify.cjs +63 -53
  32. package/dist/deployers/coolify.cjs.map +1 -1
  33. package/dist/deployers/coolify.d.cts +2 -25
  34. package/dist/deployers/coolify.d.mts +2 -25
  35. package/dist/deployers/coolify.mjs +62 -51
  36. package/dist/deployers/coolify.mjs.map +1 -1
  37. package/dist/deployers/dokploy.cjs +108 -32
  38. package/dist/deployers/dokploy.cjs.map +1 -1
  39. package/dist/deployers/dokploy.d.cts +2 -24
  40. package/dist/deployers/dokploy.d.mts +2 -24
  41. package/dist/deployers/dokploy.mjs +107 -30
  42. package/dist/deployers/dokploy.mjs.map +1 -1
  43. package/dist/deployers/index.cjs +4 -5
  44. package/dist/deployers/index.cjs.map +1 -1
  45. package/dist/deployers/index.d.cts +4 -4
  46. package/dist/deployers/index.d.cts.map +1 -1
  47. package/dist/deployers/index.d.mts +4 -4
  48. package/dist/deployers/index.d.mts.map +1 -1
  49. package/dist/deployers/index.mjs +1 -2
  50. package/dist/deployers/index.mjs.map +1 -1
  51. package/dist/deployers/strip-host-ports.cjs +137 -0
  52. package/dist/deployers/strip-host-ports.cjs.map +1 -0
  53. package/dist/deployers/strip-host-ports.d.cts +62 -0
  54. package/dist/deployers/strip-host-ports.d.cts.map +1 -0
  55. package/dist/deployers/strip-host-ports.d.mts +62 -0
  56. package/dist/deployers/strip-host-ports.d.mts.map +1 -0
  57. package/dist/deployers/strip-host-ports.mjs +132 -0
  58. package/dist/deployers/strip-host-ports.mjs.map +1 -0
  59. package/dist/deployers/strip-host-ports.test.cjs +88 -0
  60. package/dist/deployers/strip-host-ports.test.cjs.map +1 -0
  61. package/dist/deployers/strip-host-ports.test.d.cts +1 -0
  62. package/dist/deployers/strip-host-ports.test.d.mts +1 -0
  63. package/dist/deployers/strip-host-ports.test.mjs +89 -0
  64. package/dist/deployers/strip-host-ports.test.mjs.map +1 -0
  65. package/dist/deployers/types.d.cts +2 -72
  66. package/dist/deployers/types.d.mts +2 -72
  67. package/dist/deployers/types.mjs +1 -1
  68. package/dist/dokploy-8cbrxUun.d.cts +25 -0
  69. package/dist/dokploy-8cbrxUun.d.cts.map +1 -0
  70. package/dist/dokploy-BTflLhTM.d.mts +25 -0
  71. package/dist/dokploy-BTflLhTM.d.mts.map +1 -0
  72. package/dist/errors.cjs +2 -3
  73. package/dist/errors.cjs.map +1 -1
  74. package/dist/errors.mjs +1 -1
  75. package/dist/errors.mjs.map +1 -1
  76. package/dist/generate.cjs +27 -28
  77. package/dist/generate.cjs.map +1 -1
  78. package/dist/generate.d.mts.map +1 -1
  79. package/dist/generate.mjs +1 -2
  80. package/dist/generate.mjs.map +1 -1
  81. package/dist/generate.test.cjs +4 -5
  82. package/dist/generate.test.cjs.map +1 -1
  83. package/dist/generate.test.mjs +3 -4
  84. package/dist/generate.test.mjs.map +1 -1
  85. package/dist/generators/bare-metal-install.cjs +2 -3
  86. package/dist/generators/bare-metal-install.cjs.map +1 -1
  87. package/dist/generators/bare-metal-install.d.mts.map +1 -1
  88. package/dist/generators/bare-metal-install.mjs +1 -1
  89. package/dist/generators/bare-metal-install.test.cjs +3 -4
  90. package/dist/generators/bare-metal-install.test.cjs.map +1 -1
  91. package/dist/generators/bare-metal-install.test.mjs +3 -4
  92. package/dist/generators/bare-metal-install.test.mjs.map +1 -1
  93. package/dist/generators/caddy.cjs +2 -3
  94. package/dist/generators/caddy.cjs.map +1 -1
  95. package/dist/generators/caddy.d.mts.map +1 -1
  96. package/dist/generators/caddy.mjs +1 -1
  97. package/dist/generators/caddy.test.cjs +3 -4
  98. package/dist/generators/caddy.test.cjs.map +1 -1
  99. package/dist/generators/caddy.test.mjs +3 -4
  100. package/dist/generators/caddy.test.mjs.map +1 -1
  101. package/dist/generators/cloud-init.cjs +2 -3
  102. package/dist/generators/cloud-init.cjs.map +1 -1
  103. package/dist/generators/cloud-init.mjs +1 -1
  104. package/dist/generators/env.cjs +4 -5
  105. package/dist/generators/env.cjs.map +1 -1
  106. package/dist/generators/env.d.mts.map +1 -1
  107. package/dist/generators/env.mjs +1 -2
  108. package/dist/generators/env.mjs.map +1 -1
  109. package/dist/generators/env.test.cjs +3 -4
  110. package/dist/generators/env.test.cjs.map +1 -1
  111. package/dist/generators/env.test.mjs +3 -4
  112. package/dist/generators/env.test.mjs.map +1 -1
  113. package/dist/generators/get-shit-done.cjs +2 -3
  114. package/dist/generators/get-shit-done.cjs.map +1 -1
  115. package/dist/generators/get-shit-done.mjs +1 -1
  116. package/dist/generators/grafana.cjs +2 -3
  117. package/dist/generators/grafana.cjs.map +1 -1
  118. package/dist/generators/grafana.mjs +1 -1
  119. package/dist/generators/health-check.cjs +2 -3
  120. package/dist/generators/health-check.cjs.map +1 -1
  121. package/dist/generators/health-check.d.mts.map +1 -1
  122. package/dist/generators/health-check.mjs +1 -1
  123. package/dist/generators/health-check.test.cjs +3 -4
  124. package/dist/generators/health-check.test.cjs.map +1 -1
  125. package/dist/generators/health-check.test.mjs +3 -4
  126. package/dist/generators/health-check.test.mjs.map +1 -1
  127. package/dist/generators/n8n-workflows.cjs +2 -3
  128. package/dist/generators/n8n-workflows.cjs.map +1 -1
  129. package/dist/generators/n8n-workflows.d.mts.map +1 -1
  130. package/dist/generators/n8n-workflows.mjs +1 -1
  131. package/dist/generators/native-services.cjs +2 -3
  132. package/dist/generators/native-services.cjs.map +1 -1
  133. package/dist/generators/native-services.mjs +1 -1
  134. package/dist/generators/openclaw-install-script.cjs +2 -3
  135. package/dist/generators/openclaw-install-script.cjs.map +1 -1
  136. package/dist/generators/openclaw-install-script.mjs +1 -1
  137. package/dist/generators/openclaw-json.cjs +2 -3
  138. package/dist/generators/openclaw-json.cjs.map +1 -1
  139. package/dist/generators/openclaw-json.mjs +1 -1
  140. package/dist/generators/postgres-init.cjs +32 -3
  141. package/dist/generators/postgres-init.cjs.map +1 -1
  142. package/dist/generators/postgres-init.d.cts.map +1 -1
  143. package/dist/generators/postgres-init.d.mts.map +1 -1
  144. package/dist/generators/postgres-init.mjs +31 -1
  145. package/dist/generators/postgres-init.mjs.map +1 -1
  146. package/dist/generators/prometheus.cjs +2 -3
  147. package/dist/generators/prometheus.cjs.map +1 -1
  148. package/dist/generators/prometheus.d.mts.map +1 -1
  149. package/dist/generators/prometheus.mjs +1 -1
  150. package/dist/generators/readme.cjs +2 -3
  151. package/dist/generators/readme.cjs.map +1 -1
  152. package/dist/generators/readme.d.mts.map +1 -1
  153. package/dist/generators/readme.mjs +1 -1
  154. package/dist/generators/scripts.cjs +2 -3
  155. package/dist/generators/scripts.cjs.map +1 -1
  156. package/dist/generators/scripts.mjs +1 -1
  157. package/dist/generators/scripts.test.cjs +3 -4
  158. package/dist/generators/scripts.test.cjs.map +1 -1
  159. package/dist/generators/scripts.test.mjs +3 -4
  160. package/dist/generators/scripts.test.mjs.map +1 -1
  161. package/dist/generators/skills.cjs +3 -590
  162. package/dist/generators/skills.d.mts.map +1 -1
  163. package/dist/generators/skills.mjs +1 -2
  164. package/dist/generators/skills.mjs.map +1 -1
  165. package/dist/generators/stack-manifest.cjs +2 -3
  166. package/dist/generators/stack-manifest.cjs.map +1 -1
  167. package/dist/generators/stack-manifest.mjs +1 -1
  168. package/dist/generators/traefik.cjs +2 -3
  169. package/dist/generators/traefik.cjs.map +1 -1
  170. package/dist/generators/traefik.mjs +1 -1
  171. package/dist/generators/traefik.test.cjs +4 -5
  172. package/dist/generators/traefik.test.cjs.map +1 -1
  173. package/dist/generators/traefik.test.mjs +3 -4
  174. package/dist/generators/traefik.test.mjs.map +1 -1
  175. package/dist/index.cjs +35 -36
  176. package/dist/index.d.cts +5 -5
  177. package/dist/index.d.mts +5 -5
  178. package/dist/index.mjs +2 -3
  179. package/dist/{magic-string.es-D2agHT3I.cjs → magic-string.es-CJq41xdM.cjs} +2 -4
  180. package/dist/{magic-string.es-CfFonO_S.mjs.map → magic-string.es-CJq41xdM.cjs.map} +1 -1
  181. package/dist/{magic-string.es-CfFonO_S.mjs → magic-string.es-CoDyF8pj.mjs} +2 -3
  182. package/dist/{magic-string.es-D2agHT3I.cjs.map → magic-string.es-CoDyF8pj.mjs.map} +1 -1
  183. package/dist/migrations.cjs +5 -6
  184. package/dist/migrations.cjs.map +1 -1
  185. package/dist/migrations.mjs +4 -4
  186. package/dist/migrations.mjs.map +1 -1
  187. package/dist/migrations.test.cjs +6 -7
  188. package/dist/migrations.test.cjs.map +1 -1
  189. package/dist/migrations.test.mjs +7 -8
  190. package/dist/migrations.test.mjs.map +1 -1
  191. package/dist/port-scanner.cjs +2 -3
  192. package/dist/port-scanner.cjs.map +1 -1
  193. package/dist/port-scanner.d.mts.map +1 -1
  194. package/dist/port-scanner.mjs +1 -1
  195. package/dist/presets/presets.test.cjs +11 -8
  196. package/dist/presets/presets.test.cjs.map +1 -1
  197. package/dist/presets/presets.test.mjs +7 -4
  198. package/dist/presets/presets.test.mjs.map +1 -1
  199. package/dist/presets/registry.cjs +152 -3
  200. package/dist/presets/registry.cjs.map +1 -1
  201. package/dist/presets/registry.d.cts.map +1 -1
  202. package/dist/presets/registry.d.mts.map +1 -1
  203. package/dist/presets/registry.mjs +151 -1
  204. package/dist/presets/registry.mjs.map +1 -1
  205. package/dist/presets/registry.test.cjs +3 -4
  206. package/dist/presets/registry.test.cjs.map +1 -1
  207. package/dist/presets/registry.test.mjs +3 -4
  208. package/dist/presets/registry.test.mjs.map +1 -1
  209. package/dist/resolver.cjs +4 -5
  210. package/dist/resolver.cjs.map +1 -1
  211. package/dist/resolver.d.mts.map +1 -1
  212. package/dist/resolver.mjs +1 -2
  213. package/dist/resolver.mjs.map +1 -1
  214. package/dist/resolver.test.cjs +3 -4
  215. package/dist/resolver.test.cjs.map +1 -1
  216. package/dist/resolver.test.mjs +3 -4
  217. package/dist/resolver.test.mjs.map +1 -1
  218. package/dist/schema-C_hc7e4k.d.cts +898 -0
  219. package/dist/schema-C_hc7e4k.d.cts.map +1 -0
  220. package/dist/schema-CaesJaS2.d.mts +898 -0
  221. package/dist/schema-CaesJaS2.d.mts.map +1 -0
  222. package/dist/schema.cjs +15 -5
  223. package/dist/schema.cjs.map +1 -1
  224. package/dist/schema.d.cts +2 -854
  225. package/dist/schema.d.mts +2 -854
  226. package/dist/schema.mjs +13 -3
  227. package/dist/schema.mjs.map +1 -1
  228. package/dist/schema.test.cjs +3 -4
  229. package/dist/schema.test.cjs.map +1 -1
  230. package/dist/schema.test.mjs +3 -4
  231. package/dist/schema.test.mjs.map +1 -1
  232. package/dist/services/definitions/airbyte.cjs +76 -0
  233. package/dist/services/definitions/airbyte.cjs.map +1 -0
  234. package/dist/services/definitions/airbyte.d.cts +7 -0
  235. package/dist/services/definitions/airbyte.d.cts.map +1 -0
  236. package/dist/services/definitions/airbyte.d.mts +7 -0
  237. package/dist/services/definitions/airbyte.d.mts.map +1 -0
  238. package/dist/services/definitions/airbyte.mjs +75 -0
  239. package/dist/services/definitions/airbyte.mjs.map +1 -0
  240. package/dist/services/definitions/airflow.cjs +109 -0
  241. package/dist/services/definitions/airflow.cjs.map +1 -0
  242. package/dist/services/definitions/airflow.d.cts +7 -0
  243. package/dist/services/definitions/airflow.d.cts.map +1 -0
  244. package/dist/services/definitions/airflow.d.mts +7 -0
  245. package/dist/services/definitions/airflow.d.mts.map +1 -0
  246. package/dist/services/definitions/airflow.mjs +108 -0
  247. package/dist/services/definitions/airflow.mjs.map +1 -0
  248. package/dist/services/definitions/anything-llm.cjs +2 -3
  249. package/dist/services/definitions/anything-llm.cjs.map +1 -1
  250. package/dist/services/definitions/anything-llm.mjs +1 -1
  251. package/dist/services/definitions/appflowy.cjs +2 -3
  252. package/dist/services/definitions/appflowy.cjs.map +1 -1
  253. package/dist/services/definitions/appflowy.mjs +1 -1
  254. package/dist/services/definitions/appwrite.cjs +190 -0
  255. package/dist/services/definitions/appwrite.cjs.map +1 -0
  256. package/dist/services/definitions/appwrite.d.cts +7 -0
  257. package/dist/services/definitions/appwrite.d.cts.map +1 -0
  258. package/dist/services/definitions/appwrite.d.mts +7 -0
  259. package/dist/services/definitions/appwrite.d.mts.map +1 -0
  260. package/dist/services/definitions/appwrite.mjs +189 -0
  261. package/dist/services/definitions/appwrite.mjs.map +1 -0
  262. package/dist/services/definitions/authelia.cjs +145 -0
  263. package/dist/services/definitions/authelia.cjs.map +1 -0
  264. package/dist/services/definitions/authelia.d.cts +7 -0
  265. package/dist/services/definitions/authelia.d.cts.map +1 -0
  266. package/dist/services/definitions/authelia.d.mts +7 -0
  267. package/dist/services/definitions/authelia.d.mts.map +1 -0
  268. package/dist/services/definitions/authelia.mjs +144 -0
  269. package/dist/services/definitions/authelia.mjs.map +1 -0
  270. package/dist/services/definitions/authentik.cjs +2 -3
  271. package/dist/services/definitions/authentik.cjs.map +1 -1
  272. package/dist/services/definitions/authentik.mjs +1 -1
  273. package/dist/services/definitions/axolotl.cjs +67 -0
  274. package/dist/services/definitions/axolotl.cjs.map +1 -0
  275. package/dist/services/definitions/axolotl.d.cts +7 -0
  276. package/dist/services/definitions/axolotl.d.cts.map +1 -0
  277. package/dist/services/definitions/axolotl.d.mts +7 -0
  278. package/dist/services/definitions/axolotl.d.mts.map +1 -0
  279. package/dist/services/definitions/axolotl.mjs +66 -0
  280. package/dist/services/definitions/axolotl.mjs.map +1 -0
  281. package/dist/services/definitions/beszel.cjs +2 -3
  282. package/dist/services/definitions/beszel.cjs.map +1 -1
  283. package/dist/services/definitions/beszel.mjs +1 -1
  284. package/dist/services/definitions/browserless.cjs +2 -3
  285. package/dist/services/definitions/browserless.cjs.map +1 -1
  286. package/dist/services/definitions/browserless.mjs +1 -1
  287. package/dist/services/definitions/caddy.cjs +2 -3
  288. package/dist/services/definitions/caddy.cjs.map +1 -1
  289. package/dist/services/definitions/caddy.mjs +1 -1
  290. package/dist/services/definitions/cal-com.cjs +2 -3
  291. package/dist/services/definitions/cal-com.cjs.map +1 -1
  292. package/dist/services/definitions/cal-com.mjs +1 -1
  293. package/dist/services/definitions/chatwoot-worker.cjs +95 -0
  294. package/dist/services/definitions/chatwoot-worker.cjs.map +1 -0
  295. package/dist/services/definitions/chatwoot-worker.d.cts +7 -0
  296. package/dist/services/definitions/chatwoot-worker.d.cts.map +1 -0
  297. package/dist/services/definitions/chatwoot-worker.d.mts +7 -0
  298. package/dist/services/definitions/chatwoot-worker.d.mts.map +1 -0
  299. package/dist/services/definitions/chatwoot-worker.mjs +94 -0
  300. package/dist/services/definitions/chatwoot-worker.mjs.map +1 -0
  301. package/dist/services/definitions/chatwoot.cjs +112 -0
  302. package/dist/services/definitions/chatwoot.cjs.map +1 -0
  303. package/dist/services/definitions/chatwoot.d.cts +7 -0
  304. package/dist/services/definitions/chatwoot.d.cts.map +1 -0
  305. package/dist/services/definitions/chatwoot.d.mts +7 -0
  306. package/dist/services/definitions/chatwoot.d.mts.map +1 -0
  307. package/dist/services/definitions/chatwoot.mjs +111 -0
  308. package/dist/services/definitions/chatwoot.mjs.map +1 -0
  309. package/dist/services/definitions/chromadb.cjs +2 -3
  310. package/dist/services/definitions/chromadb.cjs.map +1 -1
  311. package/dist/services/definitions/chromadb.mjs +1 -1
  312. package/dist/services/definitions/claude-code.cjs +2 -3
  313. package/dist/services/definitions/claude-code.cjs.map +1 -1
  314. package/dist/services/definitions/claude-code.mjs +1 -1
  315. package/dist/services/definitions/code-server.cjs +2 -3
  316. package/dist/services/definitions/code-server.cjs.map +1 -1
  317. package/dist/services/definitions/code-server.mjs +1 -1
  318. package/dist/services/definitions/codex.cjs +2 -3
  319. package/dist/services/definitions/codex.cjs.map +1 -1
  320. package/dist/services/definitions/codex.mjs +1 -1
  321. package/dist/services/definitions/comfyui.cjs +2 -3
  322. package/dist/services/definitions/comfyui.cjs.map +1 -1
  323. package/dist/services/definitions/comfyui.mjs +1 -1
  324. package/dist/services/definitions/convex-dashboard.cjs +2 -3
  325. package/dist/services/definitions/convex-dashboard.cjs.map +1 -1
  326. package/dist/services/definitions/convex-dashboard.mjs +1 -1
  327. package/dist/services/definitions/convex.cjs +2 -3
  328. package/dist/services/definitions/convex.cjs.map +1 -1
  329. package/dist/services/definitions/convex.mjs +1 -1
  330. package/dist/services/definitions/coolify.cjs +2 -3
  331. package/dist/services/definitions/coolify.cjs.map +1 -1
  332. package/dist/services/definitions/coolify.mjs +1 -1
  333. package/dist/services/definitions/crowdsec.cjs +2 -3
  334. package/dist/services/definitions/crowdsec.cjs.map +1 -1
  335. package/dist/services/definitions/crowdsec.mjs +1 -1
  336. package/dist/services/definitions/dagster.cjs +83 -0
  337. package/dist/services/definitions/dagster.cjs.map +1 -0
  338. package/dist/services/definitions/dagster.d.cts +7 -0
  339. package/dist/services/definitions/dagster.d.cts.map +1 -0
  340. package/dist/services/definitions/dagster.d.mts +7 -0
  341. package/dist/services/definitions/dagster.d.mts.map +1 -0
  342. package/dist/services/definitions/dagster.mjs +82 -0
  343. package/dist/services/definitions/dagster.mjs.map +1 -0
  344. package/dist/services/definitions/desktop-environment.cjs +2 -3
  345. package/dist/services/definitions/desktop-environment.cjs.map +1 -1
  346. package/dist/services/definitions/desktop-environment.mjs +1 -1
  347. package/dist/services/definitions/dify.cjs +2 -3
  348. package/dist/services/definitions/dify.cjs.map +1 -1
  349. package/dist/services/definitions/dify.mjs +1 -1
  350. package/dist/services/definitions/directus.cjs +115 -0
  351. package/dist/services/definitions/directus.cjs.map +1 -0
  352. package/dist/services/definitions/directus.d.cts +7 -0
  353. package/dist/services/definitions/directus.d.cts.map +1 -0
  354. package/dist/services/definitions/directus.d.mts +7 -0
  355. package/dist/services/definitions/directus.d.mts.map +1 -0
  356. package/dist/services/definitions/directus.mjs +114 -0
  357. package/dist/services/definitions/directus.mjs.map +1 -0
  358. package/dist/services/definitions/docsgpt.cjs +2 -3
  359. package/dist/services/definitions/docsgpt.cjs.map +1 -1
  360. package/dist/services/definitions/docsgpt.mjs +1 -1
  361. package/dist/services/definitions/dokploy.cjs +2 -3
  362. package/dist/services/definitions/dokploy.cjs.map +1 -1
  363. package/dist/services/definitions/dokploy.mjs +1 -1
  364. package/dist/services/definitions/dozzle.cjs +2 -3
  365. package/dist/services/definitions/dozzle.cjs.map +1 -1
  366. package/dist/services/definitions/dozzle.mjs +1 -1
  367. package/dist/services/definitions/duplicati.cjs +76 -0
  368. package/dist/services/definitions/duplicati.cjs.map +1 -0
  369. package/dist/services/definitions/duplicati.d.cts +7 -0
  370. package/dist/services/definitions/duplicati.d.cts.map +1 -0
  371. package/dist/services/definitions/duplicati.d.mts +7 -0
  372. package/dist/services/definitions/duplicati.d.mts.map +1 -0
  373. package/dist/services/definitions/duplicati.mjs +75 -0
  374. package/dist/services/definitions/duplicati.mjs.map +1 -0
  375. package/dist/services/definitions/excalidraw.cjs +48 -0
  376. package/dist/services/definitions/excalidraw.cjs.map +1 -0
  377. package/dist/services/definitions/excalidraw.d.cts +7 -0
  378. package/dist/services/definitions/excalidraw.d.cts.map +1 -0
  379. package/dist/services/definitions/excalidraw.d.mts +7 -0
  380. package/dist/services/definitions/excalidraw.d.mts.map +1 -0
  381. package/dist/services/definitions/excalidraw.mjs +47 -0
  382. package/dist/services/definitions/excalidraw.mjs.map +1 -0
  383. package/dist/services/definitions/ffmpeg.cjs +2 -3
  384. package/dist/services/definitions/ffmpeg.cjs.map +1 -1
  385. package/dist/services/definitions/ffmpeg.mjs +1 -1
  386. package/dist/services/definitions/firecrawl-playwright.cjs +61 -0
  387. package/dist/services/definitions/firecrawl-playwright.cjs.map +1 -0
  388. package/dist/services/definitions/firecrawl-playwright.d.cts +7 -0
  389. package/dist/services/definitions/firecrawl-playwright.d.cts.map +1 -0
  390. package/dist/services/definitions/firecrawl-playwright.d.mts +7 -0
  391. package/dist/services/definitions/firecrawl-playwright.d.mts.map +1 -0
  392. package/dist/services/definitions/firecrawl-playwright.mjs +60 -0
  393. package/dist/services/definitions/firecrawl-playwright.mjs.map +1 -0
  394. package/dist/services/definitions/firecrawl.cjs +163 -0
  395. package/dist/services/definitions/firecrawl.cjs.map +1 -0
  396. package/dist/services/definitions/firecrawl.d.cts +7 -0
  397. package/dist/services/definitions/firecrawl.d.cts.map +1 -0
  398. package/dist/services/definitions/firecrawl.d.mts +7 -0
  399. package/dist/services/definitions/firecrawl.d.mts.map +1 -0
  400. package/dist/services/definitions/firecrawl.mjs +162 -0
  401. package/dist/services/definitions/firecrawl.mjs.map +1 -0
  402. package/dist/services/definitions/flagsmith.cjs +77 -0
  403. package/dist/services/definitions/flagsmith.cjs.map +1 -0
  404. package/dist/services/definitions/flagsmith.d.cts +7 -0
  405. package/dist/services/definitions/flagsmith.d.cts.map +1 -0
  406. package/dist/services/definitions/flagsmith.d.mts +7 -0
  407. package/dist/services/definitions/flagsmith.d.mts.map +1 -0
  408. package/dist/services/definitions/flagsmith.mjs +76 -0
  409. package/dist/services/definitions/flagsmith.mjs.map +1 -0
  410. package/dist/services/definitions/flowise.cjs +2 -3
  411. package/dist/services/definitions/flowise.cjs.map +1 -1
  412. package/dist/services/definitions/flowise.mjs +1 -1
  413. package/dist/services/definitions/fonoster.cjs +66 -0
  414. package/dist/services/definitions/fonoster.cjs.map +1 -0
  415. package/dist/services/definitions/fonoster.d.cts +7 -0
  416. package/dist/services/definitions/fonoster.d.cts.map +1 -0
  417. package/dist/services/definitions/fonoster.d.mts +7 -0
  418. package/dist/services/definitions/fonoster.d.mts.map +1 -0
  419. package/dist/services/definitions/fonoster.mjs +65 -0
  420. package/dist/services/definitions/fonoster.mjs.map +1 -0
  421. package/dist/services/definitions/formbricks.cjs +75 -0
  422. package/dist/services/definitions/formbricks.cjs.map +1 -0
  423. package/dist/services/definitions/formbricks.d.cts +7 -0
  424. package/dist/services/definitions/formbricks.d.cts.map +1 -0
  425. package/dist/services/definitions/formbricks.d.mts +7 -0
  426. package/dist/services/definitions/formbricks.d.mts.map +1 -0
  427. package/dist/services/definitions/formbricks.mjs +74 -0
  428. package/dist/services/definitions/formbricks.mjs.map +1 -0
  429. package/dist/services/definitions/gemini-cli.cjs +2 -3
  430. package/dist/services/definitions/gemini-cli.cjs.map +1 -1
  431. package/dist/services/definitions/gemini-cli.mjs +1 -1
  432. package/dist/services/definitions/ghost.cjs +2 -3
  433. package/dist/services/definitions/ghost.cjs.map +1 -1
  434. package/dist/services/definitions/ghost.mjs +1 -1
  435. package/dist/services/definitions/gitea.cjs +2 -3
  436. package/dist/services/definitions/gitea.cjs.map +1 -1
  437. package/dist/services/definitions/gitea.mjs +1 -1
  438. package/dist/services/definitions/gotify.cjs +2 -3
  439. package/dist/services/definitions/gotify.cjs.map +1 -1
  440. package/dist/services/definitions/gotify.mjs +1 -1
  441. package/dist/services/definitions/grafana.cjs +2 -3
  442. package/dist/services/definitions/grafana.cjs.map +1 -1
  443. package/dist/services/definitions/grafana.mjs +1 -1
  444. package/dist/services/definitions/headscale.cjs +2 -3
  445. package/dist/services/definitions/headscale.cjs.map +1 -1
  446. package/dist/services/definitions/headscale.mjs +1 -1
  447. package/dist/services/definitions/hedgedoc.cjs +82 -0
  448. package/dist/services/definitions/hedgedoc.cjs.map +1 -0
  449. package/dist/services/definitions/hedgedoc.d.cts +7 -0
  450. package/dist/services/definitions/hedgedoc.d.cts.map +1 -0
  451. package/dist/services/definitions/hedgedoc.d.mts +7 -0
  452. package/dist/services/definitions/hedgedoc.d.mts.map +1 -0
  453. package/dist/services/definitions/hedgedoc.mjs +81 -0
  454. package/dist/services/definitions/hedgedoc.mjs.map +1 -0
  455. package/dist/services/definitions/hexstrike.cjs +2 -3
  456. package/dist/services/definitions/hexstrike.cjs.map +1 -1
  457. package/dist/services/definitions/hexstrike.mjs +1 -1
  458. package/dist/services/definitions/heyform.cjs +64 -0
  459. package/dist/services/definitions/heyform.cjs.map +1 -0
  460. package/dist/services/definitions/heyform.d.cts +7 -0
  461. package/dist/services/definitions/heyform.d.cts.map +1 -0
  462. package/dist/services/definitions/heyform.d.mts +7 -0
  463. package/dist/services/definitions/heyform.d.mts.map +1 -0
  464. package/dist/services/definitions/heyform.mjs +63 -0
  465. package/dist/services/definitions/heyform.mjs.map +1 -0
  466. package/dist/services/definitions/homeassistant.cjs +2 -3
  467. package/dist/services/definitions/homeassistant.cjs.map +1 -1
  468. package/dist/services/definitions/homeassistant.mjs +1 -1
  469. package/dist/services/definitions/hoppscotch.cjs +76 -0
  470. package/dist/services/definitions/hoppscotch.cjs.map +1 -0
  471. package/dist/services/definitions/hoppscotch.d.cts +7 -0
  472. package/dist/services/definitions/hoppscotch.d.cts.map +1 -0
  473. package/dist/services/definitions/hoppscotch.d.mts +7 -0
  474. package/dist/services/definitions/hoppscotch.d.mts.map +1 -0
  475. package/dist/services/definitions/hoppscotch.mjs +75 -0
  476. package/dist/services/definitions/hoppscotch.mjs.map +1 -0
  477. package/dist/services/definitions/immich.cjs +2 -3
  478. package/dist/services/definitions/immich.cjs.map +1 -1
  479. package/dist/services/definitions/immich.mjs +1 -1
  480. package/dist/services/definitions/index.cjs +220 -98
  481. package/dist/services/definitions/index.cjs.map +1 -1
  482. package/dist/services/definitions/index.d.cts +42 -1
  483. package/dist/services/definitions/index.d.cts.map +1 -1
  484. package/dist/services/definitions/index.d.mts +42 -1
  485. package/dist/services/definitions/index.d.mts.map +1 -1
  486. package/dist/services/definitions/index.mjs +85 -4
  487. package/dist/services/definitions/index.mjs.map +1 -1
  488. package/dist/services/definitions/infisical.cjs +99 -0
  489. package/dist/services/definitions/infisical.cjs.map +1 -0
  490. package/dist/services/definitions/infisical.d.cts +7 -0
  491. package/dist/services/definitions/infisical.d.cts.map +1 -0
  492. package/dist/services/definitions/infisical.d.mts +7 -0
  493. package/dist/services/definitions/infisical.d.mts.map +1 -0
  494. package/dist/services/definitions/infisical.mjs +98 -0
  495. package/dist/services/definitions/infisical.mjs.map +1 -0
  496. package/dist/services/definitions/jellyfin.cjs +2 -3
  497. package/dist/services/definitions/jellyfin.cjs.map +1 -1
  498. package/dist/services/definitions/jellyfin.mjs +1 -1
  499. package/dist/services/definitions/jenkins.cjs +2 -3
  500. package/dist/services/definitions/jenkins.cjs.map +1 -1
  501. package/dist/services/definitions/jenkins.mjs +1 -1
  502. package/dist/services/definitions/keycloak.cjs +122 -0
  503. package/dist/services/definitions/keycloak.cjs.map +1 -0
  504. package/dist/services/definitions/keycloak.d.cts +7 -0
  505. package/dist/services/definitions/keycloak.d.cts.map +1 -0
  506. package/dist/services/definitions/keycloak.d.mts +7 -0
  507. package/dist/services/definitions/keycloak.d.mts.map +1 -0
  508. package/dist/services/definitions/keycloak.mjs +121 -0
  509. package/dist/services/definitions/keycloak.mjs.map +1 -0
  510. package/dist/services/definitions/kimi.cjs +2 -3
  511. package/dist/services/definitions/kimi.cjs.map +1 -1
  512. package/dist/services/definitions/kimi.mjs +1 -1
  513. package/dist/services/definitions/kong.cjs +121 -0
  514. package/dist/services/definitions/kong.cjs.map +1 -0
  515. package/dist/services/definitions/kong.d.cts +7 -0
  516. package/dist/services/definitions/kong.d.cts.map +1 -0
  517. package/dist/services/definitions/kong.d.mts +7 -0
  518. package/dist/services/definitions/kong.d.mts.map +1 -0
  519. package/dist/services/definitions/kong.mjs +120 -0
  520. package/dist/services/definitions/kong.mjs.map +1 -0
  521. package/dist/services/definitions/lago.cjs +95 -0
  522. package/dist/services/definitions/lago.cjs.map +1 -0
  523. package/dist/services/definitions/lago.d.cts +7 -0
  524. package/dist/services/definitions/lago.d.cts.map +1 -0
  525. package/dist/services/definitions/lago.d.mts +7 -0
  526. package/dist/services/definitions/lago.d.mts.map +1 -0
  527. package/dist/services/definitions/lago.mjs +94 -0
  528. package/dist/services/definitions/lago.mjs.map +1 -0
  529. package/dist/services/definitions/langflow.cjs +88 -0
  530. package/dist/services/definitions/langflow.cjs.map +1 -0
  531. package/dist/services/definitions/langflow.d.cts +7 -0
  532. package/dist/services/definitions/langflow.d.cts.map +1 -0
  533. package/dist/services/definitions/langflow.d.mts +7 -0
  534. package/dist/services/definitions/langflow.d.mts.map +1 -0
  535. package/dist/services/definitions/langflow.mjs +87 -0
  536. package/dist/services/definitions/langflow.mjs.map +1 -0
  537. package/dist/services/definitions/langfuse.cjs +79 -0
  538. package/dist/services/definitions/langfuse.cjs.map +1 -0
  539. package/dist/services/definitions/langfuse.d.cts +7 -0
  540. package/dist/services/definitions/langfuse.d.cts.map +1 -0
  541. package/dist/services/definitions/langfuse.d.mts +7 -0
  542. package/dist/services/definitions/langfuse.d.mts.map +1 -0
  543. package/dist/services/definitions/langfuse.mjs +78 -0
  544. package/dist/services/definitions/langfuse.mjs.map +1 -0
  545. package/dist/services/definitions/lasuite-meet-agents.cjs +2 -3
  546. package/dist/services/definitions/lasuite-meet-agents.cjs.map +1 -1
  547. package/dist/services/definitions/lasuite-meet-agents.mjs +1 -1
  548. package/dist/services/definitions/lasuite-meet-backend.cjs +2 -3
  549. package/dist/services/definitions/lasuite-meet-backend.cjs.map +1 -1
  550. package/dist/services/definitions/lasuite-meet-backend.mjs +1 -1
  551. package/dist/services/definitions/lasuite-meet-frontend.cjs +2 -3
  552. package/dist/services/definitions/lasuite-meet-frontend.cjs.map +1 -1
  553. package/dist/services/definitions/lasuite-meet-frontend.mjs +1 -1
  554. package/dist/services/definitions/librechat.cjs +2 -3
  555. package/dist/services/definitions/librechat.cjs.map +1 -1
  556. package/dist/services/definitions/librechat.mjs +1 -1
  557. package/dist/services/definitions/lightpanda.cjs +2 -3
  558. package/dist/services/definitions/lightpanda.cjs.map +1 -1
  559. package/dist/services/definitions/lightpanda.mjs +1 -1
  560. package/dist/services/definitions/listmonk.cjs +118 -0
  561. package/dist/services/definitions/listmonk.cjs.map +1 -0
  562. package/dist/services/definitions/listmonk.d.cts +7 -0
  563. package/dist/services/definitions/listmonk.d.cts.map +1 -0
  564. package/dist/services/definitions/listmonk.d.mts +7 -0
  565. package/dist/services/definitions/listmonk.d.mts.map +1 -0
  566. package/dist/services/definitions/listmonk.mjs +117 -0
  567. package/dist/services/definitions/listmonk.mjs.map +1 -0
  568. package/dist/services/definitions/litellm.cjs +2 -3
  569. package/dist/services/definitions/litellm.cjs.map +1 -1
  570. package/dist/services/definitions/litellm.mjs +1 -1
  571. package/dist/services/definitions/livekit.cjs +2 -3
  572. package/dist/services/definitions/livekit.cjs.map +1 -1
  573. package/dist/services/definitions/livekit.mjs +1 -1
  574. package/dist/services/definitions/loki.cjs +2 -3
  575. package/dist/services/definitions/loki.cjs.map +1 -1
  576. package/dist/services/definitions/loki.mjs +1 -1
  577. package/dist/services/definitions/mariadb.cjs +81 -0
  578. package/dist/services/definitions/mariadb.cjs.map +1 -0
  579. package/dist/services/definitions/mariadb.d.cts +7 -0
  580. package/dist/services/definitions/mariadb.d.cts.map +1 -0
  581. package/dist/services/definitions/mariadb.d.mts +7 -0
  582. package/dist/services/definitions/mariadb.d.mts.map +1 -0
  583. package/dist/services/definitions/mariadb.mjs +80 -0
  584. package/dist/services/definitions/mariadb.mjs.map +1 -0
  585. package/dist/services/definitions/matomo.cjs +2 -3
  586. package/dist/services/definitions/matomo.cjs.map +1 -1
  587. package/dist/services/definitions/matomo.mjs +1 -1
  588. package/dist/services/definitions/matrix-synapse.cjs +2 -3
  589. package/dist/services/definitions/matrix-synapse.cjs.map +1 -1
  590. package/dist/services/definitions/matrix-synapse.mjs +1 -1
  591. package/dist/services/definitions/mattermost.cjs +2 -3
  592. package/dist/services/definitions/mattermost.cjs.map +1 -1
  593. package/dist/services/definitions/mattermost.mjs +1 -1
  594. package/dist/services/definitions/mautic.cjs +83 -0
  595. package/dist/services/definitions/mautic.cjs.map +1 -0
  596. package/dist/services/definitions/mautic.d.cts +7 -0
  597. package/dist/services/definitions/mautic.d.cts.map +1 -0
  598. package/dist/services/definitions/mautic.d.mts +7 -0
  599. package/dist/services/definitions/mautic.d.mts.map +1 -0
  600. package/dist/services/definitions/mautic.mjs +82 -0
  601. package/dist/services/definitions/mautic.mjs.map +1 -0
  602. package/dist/services/definitions/medusa.cjs +83 -0
  603. package/dist/services/definitions/medusa.cjs.map +1 -0
  604. package/dist/services/definitions/medusa.d.cts +7 -0
  605. package/dist/services/definitions/medusa.d.cts.map +1 -0
  606. package/dist/services/definitions/medusa.d.mts +7 -0
  607. package/dist/services/definitions/medusa.d.mts.map +1 -0
  608. package/dist/services/definitions/medusa.mjs +82 -0
  609. package/dist/services/definitions/medusa.mjs.map +1 -0
  610. package/dist/services/definitions/meilisearch.cjs +2 -3
  611. package/dist/services/definitions/meilisearch.cjs.map +1 -1
  612. package/dist/services/definitions/meilisearch.mjs +1 -1
  613. package/dist/services/definitions/milvus.cjs +2 -3
  614. package/dist/services/definitions/milvus.cjs.map +1 -1
  615. package/dist/services/definitions/milvus.mjs +1 -1
  616. package/dist/services/definitions/minio.cjs +2 -3
  617. package/dist/services/definitions/minio.cjs.map +1 -1
  618. package/dist/services/definitions/minio.mjs +1 -1
  619. package/dist/services/definitions/mission-control.cjs +2 -3
  620. package/dist/services/definitions/mission-control.cjs.map +1 -1
  621. package/dist/services/definitions/mission-control.mjs +1 -1
  622. package/dist/services/definitions/mixpost.cjs +2 -3
  623. package/dist/services/definitions/mixpost.cjs.map +1 -1
  624. package/dist/services/definitions/mixpost.mjs +1 -1
  625. package/dist/services/definitions/motion-canvas.cjs +2 -3
  626. package/dist/services/definitions/motion-canvas.cjs.map +1 -1
  627. package/dist/services/definitions/motion-canvas.mjs +1 -1
  628. package/dist/services/definitions/mysql.cjs +81 -0
  629. package/dist/services/definitions/mysql.cjs.map +1 -0
  630. package/dist/services/definitions/mysql.d.cts +7 -0
  631. package/dist/services/definitions/mysql.d.cts.map +1 -0
  632. package/dist/services/definitions/mysql.d.mts +7 -0
  633. package/dist/services/definitions/mysql.d.mts.map +1 -0
  634. package/dist/services/definitions/mysql.mjs +80 -0
  635. package/dist/services/definitions/mysql.mjs.map +1 -0
  636. package/dist/services/definitions/n8n.cjs +2 -3
  637. package/dist/services/definitions/n8n.cjs.map +1 -1
  638. package/dist/services/definitions/n8n.mjs +1 -1
  639. package/dist/services/definitions/neo4j.cjs +2 -3
  640. package/dist/services/definitions/neo4j.cjs.map +1 -1
  641. package/dist/services/definitions/neo4j.mjs +1 -1
  642. package/dist/services/definitions/nextcloud.cjs +2 -3
  643. package/dist/services/definitions/nextcloud.cjs.map +1 -1
  644. package/dist/services/definitions/nextcloud.mjs +1 -1
  645. package/dist/services/definitions/nocodb.cjs +2 -3
  646. package/dist/services/definitions/nocodb.cjs.map +1 -1
  647. package/dist/services/definitions/nocodb.mjs +1 -1
  648. package/dist/services/definitions/ntfy.cjs +2 -3
  649. package/dist/services/definitions/ntfy.cjs.map +1 -1
  650. package/dist/services/definitions/ntfy.mjs +1 -1
  651. package/dist/services/definitions/ollama.cjs +2 -3
  652. package/dist/services/definitions/ollama.cjs.map +1 -1
  653. package/dist/services/definitions/ollama.mjs +1 -1
  654. package/dist/services/definitions/open-webui.cjs +2 -3
  655. package/dist/services/definitions/open-webui.cjs.map +1 -1
  656. package/dist/services/definitions/open-webui.mjs +1 -1
  657. package/dist/services/definitions/opencode.cjs +2 -3
  658. package/dist/services/definitions/opencode.cjs.map +1 -1
  659. package/dist/services/definitions/opencode.mjs +1 -1
  660. package/dist/services/definitions/openhands.cjs +58 -0
  661. package/dist/services/definitions/openhands.cjs.map +1 -0
  662. package/dist/services/definitions/openhands.d.cts +7 -0
  663. package/dist/services/definitions/openhands.d.cts.map +1 -0
  664. package/dist/services/definitions/openhands.d.mts +7 -0
  665. package/dist/services/definitions/openhands.d.mts.map +1 -0
  666. package/dist/services/definitions/openhands.mjs +57 -0
  667. package/dist/services/definitions/openhands.mjs.map +1 -0
  668. package/dist/services/definitions/openpanel.cjs +2 -3
  669. package/dist/services/definitions/openpanel.cjs.map +1 -1
  670. package/dist/services/definitions/openpanel.mjs +1 -1
  671. package/dist/services/definitions/opensearch.cjs +94 -0
  672. package/dist/services/definitions/opensearch.cjs.map +1 -0
  673. package/dist/services/definitions/opensearch.d.cts +7 -0
  674. package/dist/services/definitions/opensearch.d.cts.map +1 -0
  675. package/dist/services/definitions/opensearch.d.mts +7 -0
  676. package/dist/services/definitions/opensearch.d.mts.map +1 -0
  677. package/dist/services/definitions/opensearch.mjs +93 -0
  678. package/dist/services/definitions/opensearch.mjs.map +1 -0
  679. package/dist/services/definitions/outline.cjs +2 -3
  680. package/dist/services/definitions/outline.cjs.map +1 -1
  681. package/dist/services/definitions/outline.mjs +1 -1
  682. package/dist/services/definitions/paperless-ngx.cjs +2 -3
  683. package/dist/services/definitions/paperless-ngx.cjs.map +1 -1
  684. package/dist/services/definitions/paperless-ngx.mjs +1 -1
  685. package/dist/services/definitions/pentagi.cjs +2 -3
  686. package/dist/services/definitions/pentagi.cjs.map +1 -1
  687. package/dist/services/definitions/pentagi.mjs +1 -1
  688. package/dist/services/definitions/pentestagent.cjs +2 -3
  689. package/dist/services/definitions/pentestagent.cjs.map +1 -1
  690. package/dist/services/definitions/pentestagent.mjs +1 -1
  691. package/dist/services/definitions/playwright-server.cjs +2 -3
  692. package/dist/services/definitions/playwright-server.cjs.map +1 -1
  693. package/dist/services/definitions/playwright-server.mjs +1 -1
  694. package/dist/services/definitions/pocketbase.cjs +61 -0
  695. package/dist/services/definitions/pocketbase.cjs.map +1 -0
  696. package/dist/services/definitions/pocketbase.d.cts +7 -0
  697. package/dist/services/definitions/pocketbase.d.cts.map +1 -0
  698. package/dist/services/definitions/pocketbase.d.mts +7 -0
  699. package/dist/services/definitions/pocketbase.d.mts.map +1 -0
  700. package/dist/services/definitions/pocketbase.mjs +60 -0
  701. package/dist/services/definitions/pocketbase.mjs.map +1 -0
  702. package/dist/services/definitions/portainer.cjs +2 -3
  703. package/dist/services/definitions/portainer.cjs.map +1 -1
  704. package/dist/services/definitions/portainer.mjs +1 -1
  705. package/dist/services/definitions/postgresql.cjs +2 -3
  706. package/dist/services/definitions/postgresql.cjs.map +1 -1
  707. package/dist/services/definitions/postgresql.mjs +1 -1
  708. package/dist/services/definitions/postiz.cjs +2 -3
  709. package/dist/services/definitions/postiz.cjs.map +1 -1
  710. package/dist/services/definitions/postiz.mjs +1 -1
  711. package/dist/services/definitions/prometheus.cjs +2 -3
  712. package/dist/services/definitions/prometheus.cjs.map +1 -1
  713. package/dist/services/definitions/prometheus.mjs +1 -1
  714. package/dist/services/definitions/qdrant.cjs +2 -3
  715. package/dist/services/definitions/qdrant.cjs.map +1 -1
  716. package/dist/services/definitions/qdrant.mjs +1 -1
  717. package/dist/services/definitions/rabbitmq.cjs +80 -0
  718. package/dist/services/definitions/rabbitmq.cjs.map +1 -0
  719. package/dist/services/definitions/rabbitmq.d.cts +7 -0
  720. package/dist/services/definitions/rabbitmq.d.cts.map +1 -0
  721. package/dist/services/definitions/rabbitmq.d.mts +7 -0
  722. package/dist/services/definitions/rabbitmq.d.mts.map +1 -0
  723. package/dist/services/definitions/rabbitmq.mjs +79 -0
  724. package/dist/services/definitions/rabbitmq.mjs.map +1 -0
  725. package/dist/services/definitions/ragflow.cjs +192 -0
  726. package/dist/services/definitions/ragflow.cjs.map +1 -0
  727. package/dist/services/definitions/ragflow.d.cts +7 -0
  728. package/dist/services/definitions/ragflow.d.cts.map +1 -0
  729. package/dist/services/definitions/ragflow.d.mts +7 -0
  730. package/dist/services/definitions/ragflow.d.mts.map +1 -0
  731. package/dist/services/definitions/ragflow.mjs +191 -0
  732. package/dist/services/definitions/ragflow.mjs.map +1 -0
  733. package/dist/services/definitions/redis.cjs +2 -3
  734. package/dist/services/definitions/redis.cjs.map +1 -1
  735. package/dist/services/definitions/redis.mjs +1 -1
  736. package/dist/services/definitions/remotion.cjs +2 -3
  737. package/dist/services/definitions/remotion.cjs.map +1 -1
  738. package/dist/services/definitions/remotion.mjs +1 -1
  739. package/dist/services/definitions/restic.cjs +58 -0
  740. package/dist/services/definitions/restic.cjs.map +1 -0
  741. package/dist/services/definitions/restic.d.cts +7 -0
  742. package/dist/services/definitions/restic.d.cts.map +1 -0
  743. package/dist/services/definitions/restic.d.mts +7 -0
  744. package/dist/services/definitions/restic.d.mts.map +1 -0
  745. package/dist/services/definitions/restic.mjs +57 -0
  746. package/dist/services/definitions/restic.mjs.map +1 -0
  747. package/dist/services/definitions/rocketchat.cjs +2 -3
  748. package/dist/services/definitions/rocketchat.cjs.map +1 -1
  749. package/dist/services/definitions/rocketchat.mjs +1 -1
  750. package/dist/services/definitions/saleor.cjs +76 -0
  751. package/dist/services/definitions/saleor.cjs.map +1 -0
  752. package/dist/services/definitions/saleor.d.cts +7 -0
  753. package/dist/services/definitions/saleor.d.cts.map +1 -0
  754. package/dist/services/definitions/saleor.d.mts +7 -0
  755. package/dist/services/definitions/saleor.d.mts.map +1 -0
  756. package/dist/services/definitions/saleor.mjs +75 -0
  757. package/dist/services/definitions/saleor.mjs.map +1 -0
  758. package/dist/services/definitions/scrapling.cjs +2 -3
  759. package/dist/services/definitions/scrapling.cjs.map +1 -1
  760. package/dist/services/definitions/scrapling.mjs +1 -1
  761. package/dist/services/definitions/searxng.cjs +2 -3
  762. package/dist/services/definitions/searxng.cjs.map +1 -1
  763. package/dist/services/definitions/searxng.mjs +1 -1
  764. package/dist/services/definitions/signoz.cjs +2 -3
  765. package/dist/services/definitions/signoz.cjs.map +1 -1
  766. package/dist/services/definitions/signoz.mjs +1 -1
  767. package/dist/services/definitions/solidityguard.cjs +2 -3
  768. package/dist/services/definitions/solidityguard.cjs.map +1 -1
  769. package/dist/services/definitions/solidityguard.mjs +1 -1
  770. package/dist/services/definitions/stable-diffusion.cjs +2 -3
  771. package/dist/services/definitions/stable-diffusion.cjs.map +1 -1
  772. package/dist/services/definitions/stable-diffusion.mjs +1 -1
  773. package/dist/services/definitions/steel-browser.cjs +2 -3
  774. package/dist/services/definitions/steel-browser.cjs.map +1 -1
  775. package/dist/services/definitions/steel-browser.mjs +1 -1
  776. package/dist/services/definitions/stirling-pdf.cjs +74 -0
  777. package/dist/services/definitions/stirling-pdf.cjs.map +1 -0
  778. package/dist/services/definitions/stirling-pdf.d.cts +7 -0
  779. package/dist/services/definitions/stirling-pdf.d.cts.map +1 -0
  780. package/dist/services/definitions/stirling-pdf.d.mts +7 -0
  781. package/dist/services/definitions/stirling-pdf.d.mts.map +1 -0
  782. package/dist/services/definitions/stirling-pdf.mjs +73 -0
  783. package/dist/services/definitions/stirling-pdf.mjs.map +1 -0
  784. package/dist/services/definitions/strapi.cjs +124 -0
  785. package/dist/services/definitions/strapi.cjs.map +1 -0
  786. package/dist/services/definitions/strapi.d.cts +7 -0
  787. package/dist/services/definitions/strapi.d.cts.map +1 -0
  788. package/dist/services/definitions/strapi.d.mts +7 -0
  789. package/dist/services/definitions/strapi.d.mts.map +1 -0
  790. package/dist/services/definitions/strapi.mjs +123 -0
  791. package/dist/services/definitions/strapi.mjs.map +1 -0
  792. package/dist/services/definitions/stream-gateway.cjs +2 -3
  793. package/dist/services/definitions/stream-gateway.cjs.map +1 -1
  794. package/dist/services/definitions/stream-gateway.mjs +1 -1
  795. package/dist/services/definitions/supabase.cjs +2 -3
  796. package/dist/services/definitions/supabase.cjs.map +1 -1
  797. package/dist/services/definitions/supabase.mjs +1 -1
  798. package/dist/services/definitions/tailscale.cjs +2 -3
  799. package/dist/services/definitions/tailscale.cjs.map +1 -1
  800. package/dist/services/definitions/tailscale.mjs +1 -1
  801. package/dist/services/definitions/temporal.cjs +2 -3
  802. package/dist/services/definitions/temporal.cjs.map +1 -1
  803. package/dist/services/definitions/temporal.mjs +1 -1
  804. package/dist/services/definitions/traefik.cjs +2 -3
  805. package/dist/services/definitions/traefik.cjs.map +1 -1
  806. package/dist/services/definitions/traefik.mjs +1 -1
  807. package/dist/services/definitions/twenty.cjs +83 -0
  808. package/dist/services/definitions/twenty.cjs.map +1 -0
  809. package/dist/services/definitions/twenty.d.cts +7 -0
  810. package/dist/services/definitions/twenty.d.cts.map +1 -0
  811. package/dist/services/definitions/twenty.d.mts +7 -0
  812. package/dist/services/definitions/twenty.d.mts.map +1 -0
  813. package/dist/services/definitions/twenty.mjs +82 -0
  814. package/dist/services/definitions/twenty.mjs.map +1 -0
  815. package/dist/services/definitions/umami.cjs +2 -3
  816. package/dist/services/definitions/umami.cjs.map +1 -1
  817. package/dist/services/definitions/umami.mjs +1 -1
  818. package/dist/services/definitions/uptime-kuma.cjs +2 -3
  819. package/dist/services/definitions/uptime-kuma.cjs.map +1 -1
  820. package/dist/services/definitions/uptime-kuma.mjs +1 -1
  821. package/dist/services/definitions/usesend.cjs +2 -3
  822. package/dist/services/definitions/usesend.cjs.map +1 -1
  823. package/dist/services/definitions/usesend.mjs +1 -1
  824. package/dist/services/definitions/valkey.cjs +2 -3
  825. package/dist/services/definitions/valkey.cjs.map +1 -1
  826. package/dist/services/definitions/valkey.mjs +1 -1
  827. package/dist/services/definitions/vault.cjs +71 -0
  828. package/dist/services/definitions/vault.cjs.map +1 -0
  829. package/dist/services/definitions/vault.d.cts +7 -0
  830. package/dist/services/definitions/vault.d.cts.map +1 -0
  831. package/dist/services/definitions/vault.d.mts +7 -0
  832. package/dist/services/definitions/vault.d.mts.map +1 -0
  833. package/dist/services/definitions/vault.mjs +70 -0
  834. package/dist/services/definitions/vault.mjs.map +1 -0
  835. package/dist/services/definitions/vaultwarden.cjs +2 -3
  836. package/dist/services/definitions/vaultwarden.cjs.map +1 -1
  837. package/dist/services/definitions/vaultwarden.mjs +1 -1
  838. package/dist/services/definitions/watchtower.cjs +2 -3
  839. package/dist/services/definitions/watchtower.cjs.map +1 -1
  840. package/dist/services/definitions/watchtower.mjs +1 -1
  841. package/dist/services/definitions/weaviate.cjs +2 -3
  842. package/dist/services/definitions/weaviate.cjs.map +1 -1
  843. package/dist/services/definitions/weaviate.mjs +1 -1
  844. package/dist/services/definitions/whisper.cjs +2 -3
  845. package/dist/services/definitions/whisper.cjs.map +1 -1
  846. package/dist/services/definitions/whisper.mjs +1 -1
  847. package/dist/services/definitions/xyops.cjs +2 -3
  848. package/dist/services/definitions/xyops.cjs.map +1 -1
  849. package/dist/services/definitions/xyops.mjs +1 -1
  850. package/dist/services/registry.cjs +3 -4
  851. package/dist/services/registry.cjs.map +1 -1
  852. package/dist/services/registry.d.mts.map +1 -1
  853. package/dist/services/registry.mjs +1 -2
  854. package/dist/services/registry.mjs.map +1 -1
  855. package/dist/services/registry.test.cjs +3 -4
  856. package/dist/services/registry.test.cjs.map +1 -1
  857. package/dist/services/registry.test.mjs +3 -4
  858. package/dist/services/registry.test.mjs.map +1 -1
  859. package/dist/{manifest-4uLbISXV.cjs → skill-manifest--IgY9REK.cjs} +40 -10
  860. package/dist/skill-manifest--IgY9REK.cjs.map +1 -0
  861. package/dist/{manifest-B8UDsVlR.mjs → skill-manifest-BVUXU0__.mjs} +24 -5
  862. package/dist/skill-manifest-BVUXU0__.mjs.map +1 -0
  863. package/dist/skills/registry.cjs +262 -3
  864. package/dist/skills/registry.cjs.map +1 -1
  865. package/dist/skills/registry.d.cts.map +1 -1
  866. package/dist/skills/registry.d.mts.map +1 -1
  867. package/dist/skills/registry.mjs +261 -1
  868. package/dist/skills/registry.mjs.map +1 -1
  869. package/dist/skills/skill-manifest.cjs +5 -23
  870. package/dist/skills/skill-manifest.mjs +1 -19
  871. package/dist/skills-BlzpHmpH.cjs +620 -0
  872. package/dist/skills-BlzpHmpH.cjs.map +1 -0
  873. package/dist/types-CR83OJiq.d.cts +243 -0
  874. package/dist/types-CR83OJiq.d.cts.map +1 -0
  875. package/dist/types-zYjGTuyn.d.mts +243 -0
  876. package/dist/types-zYjGTuyn.d.mts.map +1 -0
  877. package/dist/types.cjs +79 -3
  878. package/dist/types.cjs.map +1 -1
  879. package/dist/types.d.cts +1 -1
  880. package/dist/types.d.mts +1 -1
  881. package/dist/types.mjs +78 -1
  882. package/dist/types.mjs.map +1 -1
  883. package/dist/validator.cjs +3 -4
  884. package/dist/validator.cjs.map +1 -1
  885. package/dist/validator.mjs +1 -2
  886. package/dist/validator.mjs.map +1 -1
  887. package/dist/validator.test.cjs +5 -6
  888. package/dist/validator.test.cjs.map +1 -1
  889. package/dist/validator.test.mjs +3 -4
  890. package/dist/validator.test.mjs.map +1 -1
  891. package/dist/version-manager.cjs +3 -4
  892. package/dist/version-manager.cjs.map +1 -1
  893. package/dist/version-manager.d.mts.map +1 -1
  894. package/dist/version-manager.mjs +1 -2
  895. package/dist/version-manager.mjs.map +1 -1
  896. package/dist/version-manager.test.cjs +5 -6
  897. package/dist/version-manager.test.cjs.map +1 -1
  898. package/dist/version-manager.test.mjs +3 -4
  899. package/dist/version-manager.test.mjs.map +1 -1
  900. package/dist/{vi.2VT5v0um-BmRMvymT.cjs → vi.2VT5v0um-CRqXre87.cjs} +82 -202
  901. package/dist/{vi.2VT5v0um-CFyDIn0m.mjs.map → vi.2VT5v0um-CRqXre87.cjs.map} +1 -1
  902. package/dist/{vi.2VT5v0um-CFyDIn0m.mjs → vi.2VT5v0um-DvC3SVNc.mjs} +67 -186
  903. package/dist/{vi.2VT5v0um-BmRMvymT.cjs.map → vi.2VT5v0um-DvC3SVNc.mjs.map} +1 -1
  904. package/package.json +4 -3
  905. package/src/deployers/coolify.ts +198 -103
  906. package/src/deployers/dokploy.ts +209 -55
  907. package/src/deployers/index.ts +1 -0
  908. package/src/deployers/strip-host-ports.test.ts +100 -0
  909. package/src/deployers/strip-host-ports.ts +187 -0
  910. package/src/deployers/types.ts +185 -1
  911. package/src/generators/postgres-init.ts +6 -0
  912. package/src/index.ts +19 -4
  913. package/src/presets/presets.test.ts +4 -0
  914. package/src/presets/registry.ts +88 -0
  915. package/src/schema.ts +11 -0
  916. package/src/services/definitions/airbyte.ts +75 -0
  917. package/src/services/definitions/airflow.ts +109 -0
  918. package/src/services/definitions/appwrite.ts +181 -0
  919. package/src/services/definitions/authelia.ts +145 -0
  920. package/src/services/definitions/axolotl.ts +65 -0
  921. package/src/services/definitions/chatwoot-worker.ts +93 -0
  922. package/src/services/definitions/chatwoot.ts +106 -0
  923. package/src/services/definitions/dagster.ts +82 -0
  924. package/src/services/definitions/directus.ts +115 -0
  925. package/src/services/definitions/duplicati.ts +77 -0
  926. package/src/services/definitions/excalidraw.ts +46 -0
  927. package/src/services/definitions/firecrawl-playwright.ts +62 -0
  928. package/src/services/definitions/firecrawl.ts +146 -0
  929. package/src/services/definitions/flagsmith.ts +76 -0
  930. package/src/services/definitions/fonoster.ts +67 -0
  931. package/src/services/definitions/formbricks.ts +75 -0
  932. package/src/services/definitions/hedgedoc.ts +81 -0
  933. package/src/services/definitions/heyform.ts +67 -0
  934. package/src/services/definitions/hoppscotch.ts +74 -0
  935. package/src/services/definitions/index.ts +124 -0
  936. package/src/services/definitions/infisical.ts +97 -0
  937. package/src/services/definitions/keycloak.ts +119 -0
  938. package/src/services/definitions/kong.ts +116 -0
  939. package/src/services/definitions/lago.ts +95 -0
  940. package/src/services/definitions/langflow.ts +82 -0
  941. package/src/services/definitions/langfuse.ts +76 -0
  942. package/src/services/definitions/listmonk.ts +118 -0
  943. package/src/services/definitions/mariadb.ts +82 -0
  944. package/src/services/definitions/mautic.ts +82 -0
  945. package/src/services/definitions/medusa.ts +82 -0
  946. package/src/services/definitions/mysql.ts +82 -0
  947. package/src/services/definitions/openhands.ts +60 -0
  948. package/src/services/definitions/opensearch.ts +95 -0
  949. package/src/services/definitions/pocketbase.ts +62 -0
  950. package/src/services/definitions/rabbitmq.ts +81 -0
  951. package/src/services/definitions/ragflow.ts +175 -0
  952. package/src/services/definitions/restic.ts +60 -0
  953. package/src/services/definitions/saleor.ts +75 -0
  954. package/src/services/definitions/stirling-pdf.ts +73 -0
  955. package/src/services/definitions/strapi.ts +124 -0
  956. package/src/services/definitions/twenty.ts +82 -0
  957. package/src/services/definitions/vault.ts +74 -0
  958. package/src/skills/manifest.json +8 -0
  959. package/src/skills/registry.ts +119 -0
  960. package/src/types.ts +91 -2
  961. package/tsconfig.tsbuildinfo +1 -0
  962. package/dist/chunk-C0xms8kb.cjs +0 -34
  963. package/dist/deployers/coolify.d.cts.map +0 -1
  964. package/dist/deployers/coolify.d.mts.map +0 -1
  965. package/dist/deployers/dokploy.d.cts.map +0 -1
  966. package/dist/deployers/dokploy.d.mts.map +0 -1
  967. package/dist/deployers/types.d.cts.map +0 -1
  968. package/dist/deployers/types.d.mts.map +0 -1
  969. package/dist/generators/skills.cjs.map +0 -1
  970. package/dist/manifest-4uLbISXV.cjs.map +0 -1
  971. package/dist/manifest-B8UDsVlR.mjs.map +0 -1
  972. package/dist/schema.d.cts.map +0 -1
  973. package/dist/schema.d.mts.map +0 -1
  974. package/dist/skills/skill-manifest.cjs.map +0 -1
  975. package/dist/skills/skill-manifest.mjs.map +0 -1
@@ -6,21 +6,37 @@
6
6
  * Endpoints use dot-notation (e.g. /api/project.create, /api/compose.deploy)
7
7
  */
8
8
 
9
- import type { DeployInput, DeployResult, DeployStep, DeployTarget, PaasDeployer } from "./types.js";
9
+ import { sanitizeComposeForPaas } from "./strip-host-ports.js";
10
+ import type {
11
+ DeployInput,
12
+ DeployResult,
13
+ DeployStep,
14
+ DeployTarget,
15
+ DokployEnvironment,
16
+ PaasDeployer,
17
+ PaasServer,
18
+ } from "./types.js";
10
19
 
11
- /** Shape returned by Dokploy's project endpoints. */
12
20
  interface DokployProject {
13
21
  projectId: string;
14
22
  name: string;
15
23
  description: string;
16
- environments?: { environmentId: string; name: string }[];
24
+ environments?: DokployEnvironment[];
17
25
  }
18
26
 
19
- /** Shape returned by Dokploy's compose endpoints. */
20
27
  interface DokployCompose {
21
28
  composeId: string;
22
29
  name: string;
23
30
  status?: string;
31
+ compose?: string;
32
+ }
33
+
34
+ interface ProjectCreateResult {
35
+ project: DokployProject;
36
+ projectId: string;
37
+ name: string;
38
+ description: string;
39
+ environments?: { environmentId: string; name: string }[];
24
40
  }
25
41
 
26
42
  /** Build a full Dokploy API URL from a dot-notation endpoint (e.g. "project.create"). */
@@ -28,7 +44,6 @@ function apiUrl(target: DeployTarget, endpoint: string): string {
28
44
  const base = target.instanceUrl.replace(/\/+$/, "");
29
45
  return `${base}/api/${endpoint}`;
30
46
  }
31
-
32
47
  /**
33
48
  * Typed fetch wrapper for the Dokploy API.
34
49
  * Handles JSON serialisation, x-api-key auth, and error extraction.
@@ -50,20 +65,35 @@ async function dokployFetch<T>(
50
65
  if (!res.ok) {
51
66
  const text = await res.text().catch(() => "");
52
67
  let detail = text;
68
+
53
69
  try {
54
70
  const json = JSON.parse(text);
55
71
  detail = json.message || json.error || text;
56
- } catch {
57
- // use raw text
58
- }
72
+ } catch {}
73
+
59
74
  throw new Error(`Dokploy API ${res.status}: ${detail}`);
60
75
  }
61
76
 
62
77
  const text = await res.text();
63
78
  if (!text) return undefined as T;
79
+
64
80
  return JSON.parse(text) as T;
65
81
  }
66
82
 
83
+ /**
84
+ * Simple hash for compose diff detection
85
+ */
86
+ function hashString(str: string) {
87
+ let hash = 0;
88
+
89
+ for (let i = 0; i < str.length; i++) {
90
+ hash = (hash << 5) - hash + str.charCodeAt(i);
91
+ hash |= 0;
92
+ }
93
+
94
+ return hash;
95
+ }
96
+
67
97
  /**
68
98
  * Deploys Docker Compose stacks to a Dokploy instance.
69
99
  *
@@ -73,6 +103,7 @@ async function dokployFetch<T>(
73
103
  * 3. Push .env variables to the compose stack
74
104
  * 4. Trigger the deployment
75
105
  */
106
+
76
107
  export class DokployDeployer implements PaasDeployer {
77
108
  readonly name = "Dokploy";
78
109
  readonly id = "dokploy";
@@ -80,94 +111,217 @@ export class DokployDeployer implements PaasDeployer {
80
111
  async testConnection(target: DeployTarget): Promise<{ ok: boolean; error?: string }> {
81
112
  try {
82
113
  await dokployFetch<DokployProject[]>(target, "project.all");
114
+
83
115
  return { ok: true };
84
116
  } catch (err) {
85
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
117
+ return {
118
+ ok: false,
119
+ error: err instanceof Error ? err.message : String(err),
120
+ };
121
+ }
122
+ }
123
+
124
+ async listServers(target: DeployTarget): Promise<PaasServer[]> {
125
+ try {
126
+ const servers = await dokployFetch<{ serverId: string; name: string; ipAddress: string }[]>(
127
+ target,
128
+ "server.all",
129
+ );
130
+ return servers.map((s) => ({
131
+ id: s.serverId,
132
+ name: s.name,
133
+ ip: s.ipAddress,
134
+ }));
135
+ } catch {
136
+ // Return empty list if server API is not available
137
+ return [];
86
138
  }
87
139
  }
88
140
 
89
141
  async deploy(input: DeployInput): Promise<DeployResult> {
90
- const step1: DeployStep = { step: "Create project", status: "pending" };
91
- const step2: DeployStep = { step: "Create compose stack", status: "pending" };
92
- const step3: DeployStep = { step: "Set environment variables", status: "pending" };
93
- const step4: DeployStep = { step: "Trigger deployment", status: "pending" };
94
- const steps: DeployStep[] = [step1, step2, step3, step4];
142
+ const step1: DeployStep = {
143
+ step: "Find or create project",
144
+ status: "pending",
145
+ };
146
+ const step2: DeployStep = {
147
+ step: "Find default environment",
148
+ status: "pending",
149
+ };
150
+ const step3: DeployStep = {
151
+ step: "Find or create compose stack",
152
+ status: "pending",
153
+ };
154
+ const step4: DeployStep = {
155
+ step: "Update stack configuration",
156
+ status: "pending",
157
+ };
158
+ const step5: DeployStep = { step: "Deploy stack", status: "pending" };
159
+ const steps: DeployStep[] = [step1, step2, step3, step4, step5];
95
160
 
96
161
  const result: DeployResult = { success: false, steps };
97
162
 
163
+ // Strip host port bindings — Dokploy routes via Traefik,
164
+ // so host ports are unnecessary and cause "port already allocated" errors.
165
+ const composeYaml = sanitizeComposeForPaas(input.composeYaml);
166
+
98
167
  try {
99
- // Step 1: Create project
168
+ /**
169
+ * STEP 1
170
+ * Find or create project
171
+ */
172
+
100
173
  step1.status = "running";
101
- const project = await dokployFetch<DokployProject>(input.target, "project.create", {
102
- method: "POST",
103
- body: {
104
- name: input.projectName,
105
- description: input.description ?? `OpenClaw stack: ${input.projectName}`,
106
- },
107
- });
174
+
175
+ const projects = await dokployFetch<DokployProject[]>(input.target, "project.all");
176
+
177
+ let project = projects.find((p) => p.name === input.projectName);
178
+
179
+ if (!project) {
180
+ const created = await dokployFetch<ProjectCreateResult>(input.target, "project.create", {
181
+ method: "POST",
182
+ body: {
183
+ name: input.projectName,
184
+ description: input.description ?? `OpenClaw stack: ${input.projectName}`,
185
+ },
186
+ });
187
+
188
+ project = created.project;
189
+ }
190
+
108
191
  result.projectId = project.projectId;
192
+
109
193
  step1.status = "done";
110
194
  step1.detail = `Project ID: ${project.projectId}`;
111
195
 
112
- // Get the default environment ID
196
+ /**
197
+ * STEP 2
198
+ * Find default environment
199
+ */
200
+
201
+ step2.status = "running";
202
+
113
203
  const projectDetail = await dokployFetch<DokployProject>(
114
204
  input.target,
115
205
  `project.one?projectId=${project.projectId}`,
116
206
  );
117
- const envId = projectDetail.environments?.[0]?.environmentId;
118
- if (!envId) {
119
- throw new Error("No default environment found in project");
120
- }
121
207
 
122
- // Step 2: Create compose stack
123
- step2.status = "running";
124
- const compose = await dokployFetch<DokployCompose>(input.target, "compose.create", {
125
- method: "POST",
126
- body: {
127
- name: input.projectName,
128
- environmentId: envId,
129
- composeFile: input.composeYaml,
130
- },
131
- });
132
- result.composeId = compose.composeId;
208
+ const env = projectDetail.environments?.find((e) => e.isDefault);
209
+
210
+ if (!env) throw new Error("No default environment");
211
+
133
212
  step2.status = "done";
134
- step2.detail = `Compose ID: ${compose.composeId}`;
213
+ step2.detail = env.environmentId;
214
+
215
+ /**
216
+ * STEP 3
217
+ * Find or create compose stack
218
+ */
135
219
 
136
- // Step 3: Set environment variables
137
220
  step3.status = "running";
138
- await dokployFetch(input.target, "compose.update", {
221
+
222
+ let stack: DokployCompose | null = null;
223
+
224
+ stack = await dokployFetch<DokployCompose>(input.target, "compose.create", {
139
225
  method: "POST",
140
226
  body: {
141
- composeId: compose.composeId,
142
- env: input.envContent,
227
+ name: input.projectName,
228
+ description: input.description ?? `Stack ${input.projectName}`,
229
+ environmentId: env.environmentId,
230
+ composeType: "docker-compose",
231
+ composeFile: composeYaml,
232
+ ...(input.serverId ? { serverId: input.serverId } : {}),
143
233
  },
144
234
  });
235
+
236
+ // Dokploy's compose.create schema does NOT accept sourceType;
237
+ // it defaults to "github". We must update it to "raw" so the
238
+ // deploy step writes the compose file from the stored YAML
239
+ // instead of attempting to clone from a Git provider.
240
+ if (stack?.composeId) {
241
+ await dokployFetch(input.target, "compose.update", {
242
+ method: "POST",
243
+ body: {
244
+ composeId: stack.composeId,
245
+ sourceType: "raw",
246
+ },
247
+ });
248
+ }
249
+
250
+ result.composeId = stack?.composeId;
145
251
  step3.status = "done";
252
+ step3.detail = stack?.composeId;
253
+
254
+ /**
255
+ * STEP 4
256
+ * Update stack if compose changed
257
+ */
146
258
 
147
- // Step 4: Trigger deployment
148
259
  step4.status = "running";
260
+
261
+ const existingStack = await dokployFetch<DokployCompose>(
262
+ input.target,
263
+ `compose.one?composeId=${stack?.composeId}`,
264
+ );
265
+
266
+ const newHash = hashString(composeYaml);
267
+ const oldHash = hashString(existingStack.compose ?? "");
268
+
269
+ if (newHash !== oldHash) {
270
+ await dokployFetch(input.target, "compose.update", {
271
+ method: "POST",
272
+ body: {
273
+ composeId: stack?.composeId,
274
+ composeFile: composeYaml,
275
+ env: input.envContent ?? "",
276
+ },
277
+ });
278
+
279
+ step4.detail = "Stack updated";
280
+ } else {
281
+ step4.detail = "No compose changes";
282
+ }
283
+
284
+ step4.status = "done";
285
+
286
+ /**
287
+ * STEP 5
288
+ * Deploy
289
+ */
290
+
291
+ step5.status = "running";
292
+
149
293
  await dokployFetch(input.target, "compose.deploy", {
150
294
  method: "POST",
151
295
  body: {
152
- composeId: compose.composeId,
153
- title: `Initial deploy: ${input.projectName}`,
154
- description: input.description ?? "Deployed via OpenClaw web builder",
296
+ composeId: stack?.composeId,
297
+
298
+ title: `Deploy ${input.projectName}`,
299
+
300
+ description: "CI deployment",
155
301
  },
156
302
  });
157
- step4.status = "done";
303
+
304
+ step5.status = "done";
158
305
 
159
306
  result.success = true;
307
+
160
308
  const base = input.target.instanceUrl.replace(/\/+$/, "");
161
- result.dashboardUrl = `${base}/dashboard/project/${project.projectId}`;
309
+
310
+ result.dashboardUrl = `${base}/dashboard/project/${project.projectId}/environment/${env.environmentId}/services/compose/${stack?.composeId}?tab=deployments`;
311
+
312
+ return result;
162
313
  } catch (err) {
163
- const failedStep = steps.find((s) => s.status === "running");
164
- if (failedStep) {
165
- failedStep.status = "error";
166
- failedStep.detail = err instanceof Error ? err.message : String(err);
314
+ const running = steps.find((s) => s.status === "running");
315
+
316
+ if (running) {
317
+ running.status = "error";
318
+
319
+ running.detail = err instanceof Error ? err.message : String(err);
167
320
  }
321
+
168
322
  result.error = err instanceof Error ? err.message : String(err);
169
- }
170
323
 
171
- return result;
324
+ return result;
325
+ }
172
326
  }
173
327
  }
@@ -13,6 +13,7 @@ export type {
13
13
  DeployStep,
14
14
  DeployTarget,
15
15
  PaasDeployer,
16
+ PaasServer,
16
17
  } from "./types.js";
17
18
 
18
19
  import { CoolifyDeployer } from "./coolify.js";
@@ -0,0 +1,100 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { stripHostPorts } from "./strip-host-ports.js";
3
+
4
+ describe("stripHostPorts", () => {
5
+ it("strips host port from short syntax (host:container)", () => {
6
+ const yaml = `
7
+ services:
8
+ web:
9
+ image: nginx
10
+ ports:
11
+ - "8080:80"
12
+ - "443:443"
13
+ `;
14
+ const result = stripHostPorts(yaml);
15
+ expect(result).toContain('"80"');
16
+ expect(result).toContain('"443"');
17
+ expect(result).not.toContain("8080");
18
+ });
19
+
20
+ it("strips host IP and port from extended short syntax", () => {
21
+ const yaml = `
22
+ services:
23
+ web:
24
+ image: nginx
25
+ ports:
26
+ - "0.0.0.0:8080:80"
27
+ `;
28
+ const result = stripHostPorts(yaml);
29
+ expect(result).toContain('"80"');
30
+ expect(result).not.toContain("8080");
31
+ expect(result).not.toContain("0.0.0.0");
32
+ });
33
+
34
+ it("preserves protocol suffix", () => {
35
+ const yaml = `
36
+ services:
37
+ web:
38
+ image: nginx
39
+ ports:
40
+ - "8080:80/tcp"
41
+ - "5353:53/udp"
42
+ `;
43
+ const result = stripHostPorts(yaml);
44
+ expect(result).toContain("80/tcp");
45
+ expect(result).toContain("53/udp");
46
+ expect(result).not.toContain("8080");
47
+ expect(result).not.toContain("5353");
48
+ });
49
+
50
+ it("keeps container-only ports unchanged", () => {
51
+ const yaml = `
52
+ services:
53
+ web:
54
+ image: nginx
55
+ ports:
56
+ - "80"
57
+ `;
58
+ const result = stripHostPorts(yaml);
59
+ expect(result).toContain('"80"');
60
+ });
61
+
62
+ it("handles multiple services", () => {
63
+ const yaml = `
64
+ services:
65
+ web:
66
+ image: nginx
67
+ ports:
68
+ - "8080:80"
69
+ redis:
70
+ image: redis
71
+ ports:
72
+ - "6379:6379"
73
+ searxng:
74
+ image: searxng/searxng
75
+ ports:
76
+ - "8888:8080"
77
+ `;
78
+ const result = stripHostPorts(yaml);
79
+ expect(result).toContain('"80"');
80
+ expect(result).toContain('"6379"');
81
+ expect(result).toContain('"8080"');
82
+ expect(result).not.toContain("8888");
83
+ });
84
+
85
+ it("returns original YAML if no services section", () => {
86
+ const yaml = `version: "3"`;
87
+ const result = stripHostPorts(yaml);
88
+ expect(result).toBe(yaml);
89
+ });
90
+
91
+ it("handles services with no ports", () => {
92
+ const yaml = `
93
+ services:
94
+ web:
95
+ image: nginx
96
+ `;
97
+ const result = stripHostPorts(yaml);
98
+ expect(result).toContain("nginx");
99
+ });
100
+ });
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Strips host port bindings from a Docker Compose YAML string.
3
+ *
4
+ * When deploying to a PaaS like Dokploy or Coolify, services don't need
5
+ * host port mappings because routing is handled by the platform's built-in
6
+ * reverse proxy (Traefik). Binding to host ports causes "port already
7
+ * allocated" errors when ports are in use by other services on the server.
8
+ *
9
+ * Transforms port mappings:
10
+ * "8080:8080" → "8080" (container port only)
11
+ * "0.0.0.0:8080:80" → "80" (container port only)
12
+ * "8080:80/tcp" → "80/tcp" (preserves protocol)
13
+ * { published: 8080, target: 80 } → { target: 80 }
14
+ *
15
+ * The `expose` field is left untouched since it only defines internal ports.
16
+ */
17
+
18
+ import { parse, stringify } from "yaml";
19
+
20
+ interface ComposeService {
21
+ ports?: (string | PortObject)[];
22
+ volumes?: (string | Record<string, unknown>)[];
23
+ [key: string]: unknown;
24
+ }
25
+
26
+ interface PortObject {
27
+ target: number;
28
+ published?: number | string;
29
+ host_ip?: string;
30
+ protocol?: string;
31
+ [key: string]: unknown;
32
+ }
33
+
34
+ interface ComposeFile {
35
+ services?: Record<string, ComposeService>;
36
+ [key: string]: unknown;
37
+ }
38
+
39
+ /**
40
+ * Strips host port bindings from a Docker Compose YAML string,
41
+ * keeping only the container (target) ports.
42
+ *
43
+ * Returns the modified YAML string.
44
+ */
45
+ export function stripHostPorts(composeYaml: string): string {
46
+ const doc = parse(composeYaml) as ComposeFile;
47
+
48
+ if (!doc?.services) return composeYaml;
49
+
50
+ for (const [, service] of Object.entries(doc.services)) {
51
+ if (!service.ports || !Array.isArray(service.ports)) continue;
52
+
53
+ service.ports = service.ports.map((port) => {
54
+ if (typeof port === "string") {
55
+ return stripStringPort(port);
56
+ }
57
+ if (typeof port === "object" && port !== null) {
58
+ return stripObjectPort(port);
59
+ }
60
+ return port;
61
+ });
62
+ }
63
+
64
+ return stringify(doc, { lineWidth: 200 });
65
+ }
66
+
67
+ /**
68
+ * Strips host portion from a string port mapping.
69
+ *
70
+ * "8080:80" → "80"
71
+ * "0.0.0.0:8080:80" → "80"
72
+ * "80" → "80" (no change)
73
+ * "80/tcp" → "80/tcp"
74
+ * "8080:80/tcp" → "80/tcp"
75
+ */
76
+ function stripStringPort(port: string): string {
77
+ // Split off protocol if present (e.g. "/tcp", "/udp")
78
+ const protocolIdx = port.lastIndexOf("/");
79
+ let protocol = "";
80
+ let portSpec = port;
81
+
82
+ if (protocolIdx > 0) {
83
+ protocol = port.substring(protocolIdx); // includes the "/"
84
+ portSpec = port.substring(0, protocolIdx);
85
+ }
86
+
87
+ // Split by ":" — formats are:
88
+ // "80" → container only
89
+ // "8080:80" → host:container
90
+ // "0.0.0.0:8080:80" → ip:host:container
91
+ const parts = portSpec.split(":");
92
+
93
+ // Take the last part as the container port
94
+ const containerPort = parts[parts.length - 1];
95
+
96
+ return `${containerPort}${protocol}`;
97
+ }
98
+
99
+ /**
100
+ * Strips host/published from an object port mapping.
101
+ *
102
+ * { target: 80, published: 8080 } → { target: 80 }
103
+ */
104
+ function stripObjectPort(port: PortObject): PortObject {
105
+ const { published: _, host_ip: __, ...rest } = port;
106
+ return rest;
107
+ }
108
+
109
+ /**
110
+ * Strips local bind mounts (paths starting with `./`) from a Docker
111
+ * Compose YAML string.
112
+ *
113
+ * When deploying to a PaaS like Dokploy or Coolify as a raw compose
114
+ * stack, there is no cloned repository — so host-relative volume mounts
115
+ * like `./postgres/init-databases.sh:/docker-entrypoint-initdb.d/...`
116
+ * will fail because the file doesn't exist on the remote server.
117
+ *
118
+ * Named volumes (e.g. `redis-data:/data`) and absolute system paths
119
+ * (e.g. `/var/run/docker.sock`) are kept intact.
120
+ */
121
+ export function stripLocalBindMounts(composeYaml: string): string {
122
+ const doc = parse(composeYaml) as ComposeFile;
123
+
124
+ if (!doc?.services) return composeYaml;
125
+
126
+ for (const [, service] of Object.entries(doc.services)) {
127
+ if (!service.volumes || !Array.isArray(service.volumes)) continue;
128
+
129
+ service.volumes = (service.volumes as (string | Record<string, unknown>)[]).filter((vol) => {
130
+ if (typeof vol === "string") {
131
+ // Bind mounts starting with "./" reference local files
132
+ return !vol.startsWith("./");
133
+ }
134
+ // Object-form: { type: "bind", source: "./..." }
135
+ if (typeof vol === "object" && vol !== null) {
136
+ const src = (vol as Record<string, unknown>).source;
137
+ return !(typeof src === "string" && src.startsWith("./"));
138
+ }
139
+ return true;
140
+ });
141
+
142
+ // Remove empty volumes array to keep YAML clean
143
+ if (service.volumes.length === 0) {
144
+ delete service.volumes;
145
+ }
146
+ }
147
+
148
+ return stringify(doc, { lineWidth: 200 });
149
+ }
150
+
151
+ /**
152
+ * Strips security hardening options (`cap_drop`, `cap_add`, `security_opt`)
153
+ * from all services in a Docker Compose YAML string.
154
+ *
155
+ * Many Docker images (PostgreSQL, Redis, MinIO, etc.) start as root and
156
+ * use `gosu`/`su-exec` to drop privileges to a non-root user. This
157
+ * requires `SETUID`, `SETGID`, and other capabilities. The hardened
158
+ * compose output adds `cap_drop: ALL` + `no-new-privileges`, which
159
+ * prevents this user switch and causes containers to crash with:
160
+ * "failed switching to 'postgres': operation not permitted"
161
+ *
162
+ * PaaS platforms (Dokploy, Coolify) manage their own container security,
163
+ * so these options are unnecessary and should be removed.
164
+ */
165
+ export function stripSecurityHardening(composeYaml: string): string {
166
+ const doc = parse(composeYaml) as ComposeFile;
167
+
168
+ if (!doc?.services) return composeYaml;
169
+
170
+ for (const [, service] of Object.entries(doc.services)) {
171
+ delete service.cap_drop;
172
+ delete service.cap_add;
173
+ delete service.security_opt;
174
+ }
175
+
176
+ return stringify(doc, { lineWidth: 200 });
177
+ }
178
+
179
+ /**
180
+ * Applies all PaaS-specific sanitisations to a Docker Compose YAML string:
181
+ * 1. Strips host port bindings (avoids "port already allocated" errors)
182
+ * 2. Strips local bind mounts (files don't exist on remote PaaS servers)
183
+ * 3. Strips security hardening (cap_drop/security_opt break user switching)
184
+ */
185
+ export function sanitizeComposeForPaas(composeYaml: string): string {
186
+ return stripSecurityHardening(stripLocalBindMounts(stripHostPorts(composeYaml)));
187
+ }