@better-openclaw/core 1.0.22 → 1.0.23

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 (497) hide show
  1. package/dist/composer.cjs +27 -13
  2. package/dist/composer.cjs.map +1 -1
  3. package/dist/composer.d.cts.map +1 -1
  4. package/dist/composer.d.mts.map +1 -1
  5. package/dist/composer.mjs +27 -13
  6. package/dist/composer.mjs.map +1 -1
  7. package/dist/generate.cjs +1 -0
  8. package/dist/generate.cjs.map +1 -1
  9. package/dist/generate.d.cts.map +1 -1
  10. package/dist/generate.d.mts.map +1 -1
  11. package/dist/generate.mjs +1 -0
  12. package/dist/generate.mjs.map +1 -1
  13. package/dist/generators/env.cjs +146 -0
  14. package/dist/generators/env.cjs.map +1 -1
  15. package/dist/generators/env.d.cts.map +1 -1
  16. package/dist/generators/env.d.mts.map +1 -1
  17. package/dist/generators/env.mjs +146 -0
  18. package/dist/generators/env.mjs.map +1 -1
  19. package/dist/generators/openclaw-json.cjs +102 -7
  20. package/dist/generators/openclaw-json.cjs.map +1 -1
  21. package/dist/generators/openclaw-json.mjs +102 -7
  22. package/dist/generators/openclaw-json.mjs.map +1 -1
  23. package/dist/generators/readme.cjs +2 -1
  24. package/dist/generators/readme.cjs.map +1 -1
  25. package/dist/generators/readme.mjs +2 -1
  26. package/dist/generators/readme.mjs.map +1 -1
  27. package/dist/index.d.cts +1 -1
  28. package/dist/index.d.mts +1 -1
  29. package/dist/presets/registry.cjs +19 -0
  30. package/dist/presets/registry.cjs.map +1 -1
  31. package/dist/presets/registry.d.cts.map +1 -1
  32. package/dist/presets/registry.d.mts.map +1 -1
  33. package/dist/presets/registry.mjs +19 -0
  34. package/dist/presets/registry.mjs.map +1 -1
  35. package/dist/{schema-C_hc7e4k.d.cts → schema-B4c64P8N.d.cts} +17 -1
  36. package/dist/schema-B4c64P8N.d.cts.map +1 -0
  37. package/dist/{schema-CaesJaS2.d.mts → schema-CXNhYci1.d.mts} +17 -1
  38. package/dist/schema-CXNhYci1.d.mts.map +1 -0
  39. package/dist/schema.cjs +5 -1
  40. package/dist/schema.cjs.map +1 -1
  41. package/dist/schema.d.cts +1 -1
  42. package/dist/schema.d.mts +1 -1
  43. package/dist/schema.mjs +5 -1
  44. package/dist/schema.mjs.map +1 -1
  45. package/dist/services/definitions/adguard-home.cjs +74 -0
  46. package/dist/services/definitions/adguard-home.cjs.map +1 -0
  47. package/dist/services/definitions/adguard-home.d.cts +7 -0
  48. package/dist/services/definitions/adguard-home.d.cts.map +1 -0
  49. package/dist/services/definitions/adguard-home.d.mts +7 -0
  50. package/dist/services/definitions/adguard-home.d.mts.map +1 -0
  51. package/dist/services/definitions/adguard-home.mjs +73 -0
  52. package/dist/services/definitions/adguard-home.mjs.map +1 -0
  53. package/dist/services/definitions/audiobookshelf.cjs +81 -0
  54. package/dist/services/definitions/audiobookshelf.cjs.map +1 -0
  55. package/dist/services/definitions/audiobookshelf.d.cts +7 -0
  56. package/dist/services/definitions/audiobookshelf.d.cts.map +1 -0
  57. package/dist/services/definitions/audiobookshelf.d.mts +7 -0
  58. package/dist/services/definitions/audiobookshelf.d.mts.map +1 -0
  59. package/dist/services/definitions/audiobookshelf.mjs +80 -0
  60. package/dist/services/definitions/audiobookshelf.mjs.map +1 -0
  61. package/dist/services/definitions/baserow.cjs +115 -0
  62. package/dist/services/definitions/baserow.cjs.map +1 -0
  63. package/dist/services/definitions/baserow.d.cts +7 -0
  64. package/dist/services/definitions/baserow.d.cts.map +1 -0
  65. package/dist/services/definitions/baserow.d.mts +7 -0
  66. package/dist/services/definitions/baserow.d.mts.map +1 -0
  67. package/dist/services/definitions/baserow.mjs +114 -0
  68. package/dist/services/definitions/baserow.mjs.map +1 -0
  69. package/dist/services/definitions/calibre-web.cjs +91 -0
  70. package/dist/services/definitions/calibre-web.cjs.map +1 -0
  71. package/dist/services/definitions/calibre-web.d.cts +7 -0
  72. package/dist/services/definitions/calibre-web.d.cts.map +1 -0
  73. package/dist/services/definitions/calibre-web.d.mts +7 -0
  74. package/dist/services/definitions/calibre-web.d.mts.map +1 -0
  75. package/dist/services/definitions/calibre-web.mjs +90 -0
  76. package/dist/services/definitions/calibre-web.mjs.map +1 -0
  77. package/dist/services/definitions/clickhouse.cjs +113 -0
  78. package/dist/services/definitions/clickhouse.cjs.map +1 -0
  79. package/dist/services/definitions/clickhouse.d.cts +7 -0
  80. package/dist/services/definitions/clickhouse.d.cts.map +1 -0
  81. package/dist/services/definitions/clickhouse.d.mts +7 -0
  82. package/dist/services/definitions/clickhouse.d.mts.map +1 -0
  83. package/dist/services/definitions/clickhouse.mjs +112 -0
  84. package/dist/services/definitions/clickhouse.mjs.map +1 -0
  85. package/dist/services/definitions/cloudflared.cjs +55 -0
  86. package/dist/services/definitions/cloudflared.cjs.map +1 -0
  87. package/dist/services/definitions/cloudflared.d.cts +7 -0
  88. package/dist/services/definitions/cloudflared.d.cts.map +1 -0
  89. package/dist/services/definitions/cloudflared.d.mts +7 -0
  90. package/dist/services/definitions/cloudflared.d.mts.map +1 -0
  91. package/dist/services/definitions/cloudflared.mjs +54 -0
  92. package/dist/services/definitions/cloudflared.mjs.map +1 -0
  93. package/dist/services/definitions/cockroachdb.cjs +70 -0
  94. package/dist/services/definitions/cockroachdb.cjs.map +1 -0
  95. package/dist/services/definitions/cockroachdb.d.cts +7 -0
  96. package/dist/services/definitions/cockroachdb.d.cts.map +1 -0
  97. package/dist/services/definitions/cockroachdb.d.mts +7 -0
  98. package/dist/services/definitions/cockroachdb.d.mts.map +1 -0
  99. package/dist/services/definitions/cockroachdb.mjs +69 -0
  100. package/dist/services/definitions/cockroachdb.mjs.map +1 -0
  101. package/dist/services/definitions/coder.cjs +64 -0
  102. package/dist/services/definitions/coder.cjs.map +1 -0
  103. package/dist/services/definitions/coder.d.cts +7 -0
  104. package/dist/services/definitions/coder.d.cts.map +1 -0
  105. package/dist/services/definitions/coder.d.mts +7 -0
  106. package/dist/services/definitions/coder.d.mts.map +1 -0
  107. package/dist/services/definitions/coder.mjs +63 -0
  108. package/dist/services/definitions/coder.mjs.map +1 -0
  109. package/dist/services/definitions/dragonfly.cjs +64 -0
  110. package/dist/services/definitions/dragonfly.cjs.map +1 -0
  111. package/dist/services/definitions/dragonfly.d.cts +7 -0
  112. package/dist/services/definitions/dragonfly.d.cts.map +1 -0
  113. package/dist/services/definitions/dragonfly.d.mts +7 -0
  114. package/dist/services/definitions/dragonfly.d.mts.map +1 -0
  115. package/dist/services/definitions/dragonfly.mjs +63 -0
  116. package/dist/services/definitions/dragonfly.mjs.map +1 -0
  117. package/dist/services/definitions/drone-ci.cjs +95 -0
  118. package/dist/services/definitions/drone-ci.cjs.map +1 -0
  119. package/dist/services/definitions/drone-ci.d.cts +7 -0
  120. package/dist/services/definitions/drone-ci.d.cts.map +1 -0
  121. package/dist/services/definitions/drone-ci.d.mts +7 -0
  122. package/dist/services/definitions/drone-ci.d.mts.map +1 -0
  123. package/dist/services/definitions/drone-ci.mjs +94 -0
  124. package/dist/services/definitions/drone-ci.mjs.map +1 -0
  125. package/dist/services/definitions/element-web.cjs +61 -0
  126. package/dist/services/definitions/element-web.cjs.map +1 -0
  127. package/dist/services/definitions/element-web.d.cts +7 -0
  128. package/dist/services/definitions/element-web.d.cts.map +1 -0
  129. package/dist/services/definitions/element-web.d.mts +7 -0
  130. package/dist/services/definitions/element-web.d.mts.map +1 -0
  131. package/dist/services/definitions/element-web.mjs +60 -0
  132. package/dist/services/definitions/element-web.mjs.map +1 -0
  133. package/dist/services/definitions/focalboard.cjs +65 -0
  134. package/dist/services/definitions/focalboard.cjs.map +1 -0
  135. package/dist/services/definitions/focalboard.d.cts +7 -0
  136. package/dist/services/definitions/focalboard.d.cts.map +1 -0
  137. package/dist/services/definitions/focalboard.d.mts +7 -0
  138. package/dist/services/definitions/focalboard.d.mts.map +1 -0
  139. package/dist/services/definitions/focalboard.mjs +64 -0
  140. package/dist/services/definitions/focalboard.mjs.map +1 -0
  141. package/dist/services/definitions/forgejo.cjs +108 -0
  142. package/dist/services/definitions/forgejo.cjs.map +1 -0
  143. package/dist/services/definitions/forgejo.d.cts +7 -0
  144. package/dist/services/definitions/forgejo.d.cts.map +1 -0
  145. package/dist/services/definitions/forgejo.d.mts +7 -0
  146. package/dist/services/definitions/forgejo.d.mts.map +1 -0
  147. package/dist/services/definitions/forgejo.mjs +107 -0
  148. package/dist/services/definitions/forgejo.mjs.map +1 -0
  149. package/dist/services/definitions/graylog.cjs +103 -0
  150. package/dist/services/definitions/graylog.cjs.map +1 -0
  151. package/dist/services/definitions/graylog.d.cts +7 -0
  152. package/dist/services/definitions/graylog.d.cts.map +1 -0
  153. package/dist/services/definitions/graylog.d.mts +7 -0
  154. package/dist/services/definitions/graylog.d.mts.map +1 -0
  155. package/dist/services/definitions/graylog.mjs +102 -0
  156. package/dist/services/definitions/graylog.mjs.map +1 -0
  157. package/dist/services/definitions/index.cjs +139 -1
  158. package/dist/services/definitions/index.cjs.map +1 -1
  159. package/dist/services/definitions/index.d.cts +47 -1
  160. package/dist/services/definitions/index.d.cts.map +1 -1
  161. package/dist/services/definitions/index.d.mts +47 -1
  162. package/dist/services/definitions/index.d.mts.map +1 -1
  163. package/dist/services/definitions/index.mjs +94 -2
  164. package/dist/services/definitions/index.mjs.map +1 -1
  165. package/dist/services/definitions/influxdb.cjs +105 -0
  166. package/dist/services/definitions/influxdb.cjs.map +1 -0
  167. package/dist/services/definitions/influxdb.d.cts +7 -0
  168. package/dist/services/definitions/influxdb.d.cts.map +1 -0
  169. package/dist/services/definitions/influxdb.d.mts +7 -0
  170. package/dist/services/definitions/influxdb.d.mts.map +1 -0
  171. package/dist/services/definitions/influxdb.mjs +104 -0
  172. package/dist/services/definitions/influxdb.mjs.map +1 -0
  173. package/dist/services/definitions/invoke-ai.cjs +70 -0
  174. package/dist/services/definitions/invoke-ai.cjs.map +1 -0
  175. package/dist/services/definitions/invoke-ai.d.cts +7 -0
  176. package/dist/services/definitions/invoke-ai.d.cts.map +1 -0
  177. package/dist/services/definitions/invoke-ai.d.mts +7 -0
  178. package/dist/services/definitions/invoke-ai.d.mts.map +1 -0
  179. package/dist/services/definitions/invoke-ai.mjs +69 -0
  180. package/dist/services/definitions/invoke-ai.mjs.map +1 -0
  181. package/dist/services/definitions/jaeger.cjs +95 -0
  182. package/dist/services/definitions/jaeger.cjs.map +1 -0
  183. package/dist/services/definitions/jaeger.d.cts +7 -0
  184. package/dist/services/definitions/jaeger.d.cts.map +1 -0
  185. package/dist/services/definitions/jaeger.d.mts +7 -0
  186. package/dist/services/definitions/jaeger.d.mts.map +1 -0
  187. package/dist/services/definitions/jaeger.mjs +94 -0
  188. package/dist/services/definitions/jaeger.mjs.map +1 -0
  189. package/dist/services/definitions/jan.cjs +64 -0
  190. package/dist/services/definitions/jan.cjs.map +1 -0
  191. package/dist/services/definitions/jan.d.cts +7 -0
  192. package/dist/services/definitions/jan.d.cts.map +1 -0
  193. package/dist/services/definitions/jan.d.mts +7 -0
  194. package/dist/services/definitions/jan.d.mts.map +1 -0
  195. package/dist/services/definitions/jan.mjs +63 -0
  196. package/dist/services/definitions/jan.mjs.map +1 -0
  197. package/dist/services/definitions/jitsi-meet.cjs +102 -0
  198. package/dist/services/definitions/jitsi-meet.cjs.map +1 -0
  199. package/dist/services/definitions/jitsi-meet.d.cts +7 -0
  200. package/dist/services/definitions/jitsi-meet.d.cts.map +1 -0
  201. package/dist/services/definitions/jitsi-meet.d.mts +7 -0
  202. package/dist/services/definitions/jitsi-meet.d.mts.map +1 -0
  203. package/dist/services/definitions/jitsi-meet.mjs +101 -0
  204. package/dist/services/definitions/jitsi-meet.mjs.map +1 -0
  205. package/dist/services/definitions/local-ai.cjs +86 -0
  206. package/dist/services/definitions/local-ai.cjs.map +1 -0
  207. package/dist/services/definitions/local-ai.d.cts +7 -0
  208. package/dist/services/definitions/local-ai.d.cts.map +1 -0
  209. package/dist/services/definitions/local-ai.d.mts +7 -0
  210. package/dist/services/definitions/local-ai.d.mts.map +1 -0
  211. package/dist/services/definitions/local-ai.mjs +85 -0
  212. package/dist/services/definitions/local-ai.mjs.map +1 -0
  213. package/dist/services/definitions/metabase.cjs +108 -0
  214. package/dist/services/definitions/metabase.cjs.map +1 -0
  215. package/dist/services/definitions/metabase.d.cts +7 -0
  216. package/dist/services/definitions/metabase.d.cts.map +1 -0
  217. package/dist/services/definitions/metabase.d.mts +7 -0
  218. package/dist/services/definitions/metabase.d.mts.map +1 -0
  219. package/dist/services/definitions/metabase.mjs +107 -0
  220. package/dist/services/definitions/metabase.mjs.map +1 -0
  221. package/dist/services/definitions/mosquitto.cjs +82 -0
  222. package/dist/services/definitions/mosquitto.cjs.map +1 -0
  223. package/dist/services/definitions/mosquitto.d.cts +7 -0
  224. package/dist/services/definitions/mosquitto.d.cts.map +1 -0
  225. package/dist/services/definitions/mosquitto.d.mts +7 -0
  226. package/dist/services/definitions/mosquitto.d.mts.map +1 -0
  227. package/dist/services/definitions/mosquitto.mjs +81 -0
  228. package/dist/services/definitions/mosquitto.mjs.map +1 -0
  229. package/dist/services/definitions/navidrome.cjs +90 -0
  230. package/dist/services/definitions/navidrome.cjs.map +1 -0
  231. package/dist/services/definitions/navidrome.d.cts +7 -0
  232. package/dist/services/definitions/navidrome.d.cts.map +1 -0
  233. package/dist/services/definitions/navidrome.d.mts +7 -0
  234. package/dist/services/definitions/navidrome.d.mts.map +1 -0
  235. package/dist/services/definitions/navidrome.mjs +89 -0
  236. package/dist/services/definitions/navidrome.mjs.map +1 -0
  237. package/dist/services/definitions/nginx-proxy-manager.cjs +71 -0
  238. package/dist/services/definitions/nginx-proxy-manager.cjs.map +1 -0
  239. package/dist/services/definitions/nginx-proxy-manager.d.cts +7 -0
  240. package/dist/services/definitions/nginx-proxy-manager.d.cts.map +1 -0
  241. package/dist/services/definitions/nginx-proxy-manager.d.mts +7 -0
  242. package/dist/services/definitions/nginx-proxy-manager.d.mts.map +1 -0
  243. package/dist/services/definitions/nginx-proxy-manager.mjs +70 -0
  244. package/dist/services/definitions/nginx-proxy-manager.mjs.map +1 -0
  245. package/dist/services/definitions/node-red.cjs +77 -0
  246. package/dist/services/definitions/node-red.cjs.map +1 -0
  247. package/dist/services/definitions/node-red.d.cts +7 -0
  248. package/dist/services/definitions/node-red.d.cts.map +1 -0
  249. package/dist/services/definitions/node-red.d.mts +7 -0
  250. package/dist/services/definitions/node-red.d.mts.map +1 -0
  251. package/dist/services/definitions/node-red.mjs +76 -0
  252. package/dist/services/definitions/node-red.mjs.map +1 -0
  253. package/dist/services/definitions/photoprism.cjs +126 -0
  254. package/dist/services/definitions/photoprism.cjs.map +1 -0
  255. package/dist/services/definitions/photoprism.d.cts +7 -0
  256. package/dist/services/definitions/photoprism.d.cts.map +1 -0
  257. package/dist/services/definitions/photoprism.d.mts +7 -0
  258. package/dist/services/definitions/photoprism.d.mts.map +1 -0
  259. package/dist/services/definitions/photoprism.mjs +125 -0
  260. package/dist/services/definitions/photoprism.mjs.map +1 -0
  261. package/dist/services/definitions/pihole.cjs +73 -0
  262. package/dist/services/definitions/pihole.cjs.map +1 -0
  263. package/dist/services/definitions/pihole.d.cts +7 -0
  264. package/dist/services/definitions/pihole.d.cts.map +1 -0
  265. package/dist/services/definitions/pihole.d.mts +7 -0
  266. package/dist/services/definitions/pihole.d.mts.map +1 -0
  267. package/dist/services/definitions/pihole.mjs +72 -0
  268. package/dist/services/definitions/pihole.mjs.map +1 -0
  269. package/dist/services/definitions/piper-tts.cjs +70 -0
  270. package/dist/services/definitions/piper-tts.cjs.map +1 -0
  271. package/dist/services/definitions/piper-tts.d.cts +7 -0
  272. package/dist/services/definitions/piper-tts.d.cts.map +1 -0
  273. package/dist/services/definitions/piper-tts.d.mts +7 -0
  274. package/dist/services/definitions/piper-tts.d.mts.map +1 -0
  275. package/dist/services/definitions/piper-tts.mjs +69 -0
  276. package/dist/services/definitions/piper-tts.mjs.map +1 -0
  277. package/dist/services/definitions/plane.cjs +75 -0
  278. package/dist/services/definitions/plane.cjs.map +1 -0
  279. package/dist/services/definitions/plane.d.cts +7 -0
  280. package/dist/services/definitions/plane.d.cts.map +1 -0
  281. package/dist/services/definitions/plane.d.mts +7 -0
  282. package/dist/services/definitions/plane.d.mts.map +1 -0
  283. package/dist/services/definitions/plane.mjs +74 -0
  284. package/dist/services/definitions/plane.mjs.map +1 -0
  285. package/dist/services/definitions/plausible.cjs +94 -0
  286. package/dist/services/definitions/plausible.cjs.map +1 -0
  287. package/dist/services/definitions/plausible.d.cts +7 -0
  288. package/dist/services/definitions/plausible.d.cts.map +1 -0
  289. package/dist/services/definitions/plausible.d.mts +7 -0
  290. package/dist/services/definitions/plausible.d.mts.map +1 -0
  291. package/dist/services/definitions/plausible.mjs +93 -0
  292. package/dist/services/definitions/plausible.mjs.map +1 -0
  293. package/dist/services/definitions/pocket-id.cjs +101 -0
  294. package/dist/services/definitions/pocket-id.cjs.map +1 -0
  295. package/dist/services/definitions/pocket-id.d.cts +7 -0
  296. package/dist/services/definitions/pocket-id.d.cts.map +1 -0
  297. package/dist/services/definitions/pocket-id.d.mts +7 -0
  298. package/dist/services/definitions/pocket-id.d.mts.map +1 -0
  299. package/dist/services/definitions/pocket-id.mjs +100 -0
  300. package/dist/services/definitions/pocket-id.mjs.map +1 -0
  301. package/dist/services/definitions/posthog.cjs +94 -0
  302. package/dist/services/definitions/posthog.cjs.map +1 -0
  303. package/dist/services/definitions/posthog.d.cts +7 -0
  304. package/dist/services/definitions/posthog.d.cts.map +1 -0
  305. package/dist/services/definitions/posthog.d.mts +7 -0
  306. package/dist/services/definitions/posthog.d.mts.map +1 -0
  307. package/dist/services/definitions/posthog.mjs +93 -0
  308. package/dist/services/definitions/posthog.mjs.map +1 -0
  309. package/dist/services/definitions/redis.cjs +1 -1
  310. package/dist/services/definitions/redis.cjs.map +1 -1
  311. package/dist/services/definitions/redis.mjs +1 -1
  312. package/dist/services/definitions/redis.mjs.map +1 -1
  313. package/dist/services/definitions/revolt.cjs +64 -0
  314. package/dist/services/definitions/revolt.cjs.map +1 -0
  315. package/dist/services/definitions/revolt.d.cts +7 -0
  316. package/dist/services/definitions/revolt.d.cts.map +1 -0
  317. package/dist/services/definitions/revolt.d.mts +7 -0
  318. package/dist/services/definitions/revolt.d.mts.map +1 -0
  319. package/dist/services/definitions/revolt.mjs +63 -0
  320. package/dist/services/definitions/revolt.mjs.map +1 -0
  321. package/dist/services/definitions/sentry.cjs +101 -0
  322. package/dist/services/definitions/sentry.cjs.map +1 -0
  323. package/dist/services/definitions/sentry.d.cts +7 -0
  324. package/dist/services/definitions/sentry.d.cts.map +1 -0
  325. package/dist/services/definitions/sentry.d.mts +7 -0
  326. package/dist/services/definitions/sentry.d.mts.map +1 -0
  327. package/dist/services/definitions/sentry.mjs +100 -0
  328. package/dist/services/definitions/sentry.mjs.map +1 -0
  329. package/dist/services/definitions/sonarqube.cjs +86 -0
  330. package/dist/services/definitions/sonarqube.cjs.map +1 -0
  331. package/dist/services/definitions/sonarqube.d.cts +7 -0
  332. package/dist/services/definitions/sonarqube.d.cts.map +1 -0
  333. package/dist/services/definitions/sonarqube.d.mts +7 -0
  334. package/dist/services/definitions/sonarqube.d.mts.map +1 -0
  335. package/dist/services/definitions/sonarqube.mjs +85 -0
  336. package/dist/services/definitions/sonarqube.mjs.map +1 -0
  337. package/dist/services/definitions/superset.cjs +77 -0
  338. package/dist/services/definitions/superset.cjs.map +1 -0
  339. package/dist/services/definitions/superset.d.cts +7 -0
  340. package/dist/services/definitions/superset.d.cts.map +1 -0
  341. package/dist/services/definitions/superset.d.mts +7 -0
  342. package/dist/services/definitions/superset.d.mts.map +1 -0
  343. package/dist/services/definitions/superset.mjs +76 -0
  344. package/dist/services/definitions/superset.mjs.map +1 -0
  345. package/dist/services/definitions/surrealdb.cjs +72 -0
  346. package/dist/services/definitions/surrealdb.cjs.map +1 -0
  347. package/dist/services/definitions/surrealdb.d.cts +7 -0
  348. package/dist/services/definitions/surrealdb.d.cts.map +1 -0
  349. package/dist/services/definitions/surrealdb.d.mts +7 -0
  350. package/dist/services/definitions/surrealdb.d.mts.map +1 -0
  351. package/dist/services/definitions/surrealdb.mjs +71 -0
  352. package/dist/services/definitions/surrealdb.mjs.map +1 -0
  353. package/dist/services/definitions/tabby-ml.cjs +70 -0
  354. package/dist/services/definitions/tabby-ml.cjs.map +1 -0
  355. package/dist/services/definitions/tabby-ml.d.cts +7 -0
  356. package/dist/services/definitions/tabby-ml.d.cts.map +1 -0
  357. package/dist/services/definitions/tabby-ml.d.mts +7 -0
  358. package/dist/services/definitions/tabby-ml.d.mts.map +1 -0
  359. package/dist/services/definitions/tabby-ml.mjs +69 -0
  360. package/dist/services/definitions/tabby-ml.mjs.map +1 -0
  361. package/dist/services/definitions/tempo.cjs +57 -0
  362. package/dist/services/definitions/tempo.cjs.map +1 -0
  363. package/dist/services/definitions/tempo.d.cts +7 -0
  364. package/dist/services/definitions/tempo.d.cts.map +1 -0
  365. package/dist/services/definitions/tempo.d.mts +7 -0
  366. package/dist/services/definitions/tempo.d.mts.map +1 -0
  367. package/dist/services/definitions/tempo.mjs +56 -0
  368. package/dist/services/definitions/tempo.mjs.map +1 -0
  369. package/dist/services/definitions/text-gen-webui.cjs +88 -0
  370. package/dist/services/definitions/text-gen-webui.cjs.map +1 -0
  371. package/dist/services/definitions/text-gen-webui.d.cts +7 -0
  372. package/dist/services/definitions/text-gen-webui.d.cts.map +1 -0
  373. package/dist/services/definitions/text-gen-webui.d.mts +7 -0
  374. package/dist/services/definitions/text-gen-webui.d.mts.map +1 -0
  375. package/dist/services/definitions/text-gen-webui.mjs +87 -0
  376. package/dist/services/definitions/text-gen-webui.mjs.map +1 -0
  377. package/dist/services/definitions/timescaledb.cjs +87 -0
  378. package/dist/services/definitions/timescaledb.cjs.map +1 -0
  379. package/dist/services/definitions/timescaledb.d.cts +7 -0
  380. package/dist/services/definitions/timescaledb.d.cts.map +1 -0
  381. package/dist/services/definitions/timescaledb.d.mts +7 -0
  382. package/dist/services/definitions/timescaledb.d.mts.map +1 -0
  383. package/dist/services/definitions/timescaledb.mjs +86 -0
  384. package/dist/services/definitions/timescaledb.mjs.map +1 -0
  385. package/dist/services/definitions/valkey.cjs +1 -1
  386. package/dist/services/definitions/valkey.cjs.map +1 -1
  387. package/dist/services/definitions/valkey.mjs +1 -1
  388. package/dist/services/definitions/valkey.mjs.map +1 -1
  389. package/dist/services/definitions/vector-log.cjs +59 -0
  390. package/dist/services/definitions/vector-log.cjs.map +1 -0
  391. package/dist/services/definitions/vector-log.d.cts +7 -0
  392. package/dist/services/definitions/vector-log.d.cts.map +1 -0
  393. package/dist/services/definitions/vector-log.d.mts +7 -0
  394. package/dist/services/definitions/vector-log.d.mts.map +1 -0
  395. package/dist/services/definitions/vector-log.mjs +58 -0
  396. package/dist/services/definitions/vector-log.mjs.map +1 -0
  397. package/dist/services/definitions/vikunja.cjs +96 -0
  398. package/dist/services/definitions/vikunja.cjs.map +1 -0
  399. package/dist/services/definitions/vikunja.d.cts +7 -0
  400. package/dist/services/definitions/vikunja.d.cts.map +1 -0
  401. package/dist/services/definitions/vikunja.d.mts +7 -0
  402. package/dist/services/definitions/vikunja.d.mts.map +1 -0
  403. package/dist/services/definitions/vikunja.mjs +95 -0
  404. package/dist/services/definitions/vikunja.mjs.map +1 -0
  405. package/dist/services/definitions/wireguard.cjs +88 -0
  406. package/dist/services/definitions/wireguard.cjs.map +1 -0
  407. package/dist/services/definitions/wireguard.d.cts +7 -0
  408. package/dist/services/definitions/wireguard.d.cts.map +1 -0
  409. package/dist/services/definitions/wireguard.d.mts +7 -0
  410. package/dist/services/definitions/wireguard.d.mts.map +1 -0
  411. package/dist/services/definitions/wireguard.mjs +87 -0
  412. package/dist/services/definitions/wireguard.mjs.map +1 -0
  413. package/dist/services/definitions/woodpecker-ci.cjs +93 -0
  414. package/dist/services/definitions/woodpecker-ci.cjs.map +1 -0
  415. package/dist/services/definitions/woodpecker-ci.d.cts +7 -0
  416. package/dist/services/definitions/woodpecker-ci.d.cts.map +1 -0
  417. package/dist/services/definitions/woodpecker-ci.d.mts +7 -0
  418. package/dist/services/definitions/woodpecker-ci.d.mts.map +1 -0
  419. package/dist/services/definitions/woodpecker-ci.mjs +92 -0
  420. package/dist/services/definitions/woodpecker-ci.mjs.map +1 -0
  421. package/dist/services/definitions/zulip.cjs +116 -0
  422. package/dist/services/definitions/zulip.cjs.map +1 -0
  423. package/dist/services/definitions/zulip.d.cts +7 -0
  424. package/dist/services/definitions/zulip.d.cts.map +1 -0
  425. package/dist/services/definitions/zulip.d.mts +7 -0
  426. package/dist/services/definitions/zulip.d.mts.map +1 -0
  427. package/dist/services/definitions/zulip.mjs +115 -0
  428. package/dist/services/definitions/zulip.mjs.map +1 -0
  429. package/dist/types.cjs +28 -0
  430. package/dist/types.cjs.map +1 -1
  431. package/dist/types.d.cts +2 -1
  432. package/dist/types.d.cts.map +1 -1
  433. package/dist/types.d.mts +2 -1
  434. package/dist/types.d.mts.map +1 -1
  435. package/dist/types.mjs +28 -0
  436. package/dist/types.mjs.map +1 -1
  437. package/package.json +1 -1
  438. package/src/__snapshots__/composer.snapshot.test.ts.snap +130 -65
  439. package/src/composer.ts +25 -15
  440. package/src/generate.ts +1 -0
  441. package/src/generators/env.ts +214 -0
  442. package/src/generators/openclaw-json.ts +156 -1
  443. package/src/generators/readme.ts +2 -1
  444. package/src/presets/registry.ts +329 -221
  445. package/src/schema.ts +4 -0
  446. package/src/services/definitions/adguard-home.ts +79 -0
  447. package/src/services/definitions/audiobookshelf.ts +83 -0
  448. package/src/services/definitions/baserow.ts +118 -0
  449. package/src/services/definitions/calibre-web.ts +95 -0
  450. package/src/services/definitions/clickhouse.ts +115 -0
  451. package/src/services/definitions/cloudflared.ts +55 -0
  452. package/src/services/definitions/cockroachdb.ts +75 -0
  453. package/src/services/definitions/coder.ts +68 -0
  454. package/src/services/definitions/dragonfly.ts +68 -0
  455. package/src/services/definitions/drone-ci.ts +96 -0
  456. package/src/services/definitions/element-web.ts +62 -0
  457. package/src/services/definitions/focalboard.ts +69 -0
  458. package/src/services/definitions/forgejo.ts +109 -0
  459. package/src/services/definitions/graylog.ts +101 -0
  460. package/src/services/definitions/index.ts +139 -0
  461. package/src/services/definitions/influxdb.ts +109 -0
  462. package/src/services/definitions/invoke-ai.ts +76 -0
  463. package/src/services/definitions/jaeger.ts +94 -0
  464. package/src/services/definitions/jan.ts +68 -0
  465. package/src/services/definitions/jitsi-meet.ts +108 -0
  466. package/src/services/definitions/local-ai.ts +90 -0
  467. package/src/services/definitions/metabase.ts +111 -0
  468. package/src/services/definitions/mosquitto.ts +84 -0
  469. package/src/services/definitions/navidrome.ts +95 -0
  470. package/src/services/definitions/nginx-proxy-manager.ts +70 -0
  471. package/src/services/definitions/node-red.ts +83 -0
  472. package/src/services/definitions/photoprism.ts +130 -0
  473. package/src/services/definitions/pihole.ts +79 -0
  474. package/src/services/definitions/piper-tts.ts +76 -0
  475. package/src/services/definitions/plane.ts +75 -0
  476. package/src/services/definitions/plausible.ts +97 -0
  477. package/src/services/definitions/pocket-id.ts +98 -0
  478. package/src/services/definitions/posthog.ts +97 -0
  479. package/src/services/definitions/redis.ts +1 -1
  480. package/src/services/definitions/revolt.ts +68 -0
  481. package/src/services/definitions/sentry.ts +104 -0
  482. package/src/services/definitions/sonarqube.ts +85 -0
  483. package/src/services/definitions/superset.ts +84 -0
  484. package/src/services/definitions/surrealdb.ts +77 -0
  485. package/src/services/definitions/tabby-ml.ts +76 -0
  486. package/src/services/definitions/tempo.ts +59 -0
  487. package/src/services/definitions/text-gen-webui.ts +92 -0
  488. package/src/services/definitions/timescaledb.ts +90 -0
  489. package/src/services/definitions/valkey.ts +1 -1
  490. package/src/services/definitions/vector-log.ts +61 -0
  491. package/src/services/definitions/vikunja.ts +96 -0
  492. package/src/services/definitions/wireguard.ts +89 -0
  493. package/src/services/definitions/woodpecker-ci.ts +97 -0
  494. package/src/services/definitions/zulip.ts +117 -0
  495. package/src/types.ts +29 -0
  496. package/dist/schema-C_hc7e4k.d.cts.map +0 -1
  497. package/dist/schema-CaesJaS2.d.mts.map +0 -1
@@ -8,9 +8,10 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
8
8
  HOME: /home/node
9
9
  TERM: xterm-256color
10
10
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
11
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
12
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
13
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
11
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
12
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
13
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
14
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
14
15
  OPENAI_API_KEY: \${OPENAI_API_KEY}
15
16
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
16
17
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -50,6 +51,17 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
50
51
  - \${OPENCLAW_GATEWAY_BIND:-lan}
51
52
  - --port
52
53
  - "18789"
54
+ - --allow-unconfigured
55
+ healthcheck:
56
+ test:
57
+ - CMD
58
+ - node
59
+ - -e
60
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
61
+ interval: 30s
62
+ timeout: 5s
63
+ retries: 5
64
+ start_period: 20s
53
65
  depends_on:
54
66
  minio:
55
67
  condition: service_healthy
@@ -97,16 +109,21 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
97
109
  - openclaw-network
98
110
  openclaw-cli:
99
111
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
112
+ network_mode: service:openclaw-gateway
113
+ cap_drop:
114
+ - NET_RAW
115
+ - NET_ADMIN
116
+ security_opt:
117
+ - no-new-privileges:true
100
118
  environment:
101
119
  HOME: /home/node
102
120
  TERM: xterm-256color
103
121
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
104
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
105
- OPENCLAW_GATEWAY_PORT: "18789"
122
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
106
123
  BROWSER: echo
107
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
108
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
109
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
124
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
125
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
126
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
110
127
  OPENAI_API_KEY: \${OPENAI_API_KEY}
111
128
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
112
129
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -123,15 +140,11 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
123
140
  stdin_open: true
124
141
  tty: true
125
142
  init: true
126
- networks:
127
- - openclaw-network
128
143
  entrypoint:
129
144
  - node
130
145
  - dist/index.js
131
- restart: no
132
146
  depends_on:
133
- openclaw-gateway:
134
- condition: service_started
147
+ - openclaw-gateway
135
148
  volumes:
136
149
  ffmpeg-shared:
137
150
  minio-data:
@@ -179,9 +192,10 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
179
192
  HOME: /home/node
180
193
  TERM: xterm-256color
181
194
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
182
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
183
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
184
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
195
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
196
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
197
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
198
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
185
199
  OPENAI_API_KEY: \${OPENAI_API_KEY}
186
200
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
187
201
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -220,6 +234,17 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
220
234
  - \${OPENCLAW_GATEWAY_BIND:-lan}
221
235
  - --port
222
236
  - "18789"
237
+ - --allow-unconfigured
238
+ healthcheck:
239
+ test:
240
+ - CMD
241
+ - node
242
+ - -e
243
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
244
+ interval: 30s
245
+ timeout: 5s
246
+ retries: 5
247
+ start_period: 20s
223
248
  depends_on:
224
249
  postgresql:
225
250
  condition: service_healthy
@@ -341,16 +366,21 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
341
366
  - openclaw-network
342
367
  openclaw-cli:
343
368
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
369
+ network_mode: service:openclaw-gateway
370
+ cap_drop:
371
+ - NET_RAW
372
+ - NET_ADMIN
373
+ security_opt:
374
+ - no-new-privileges:true
344
375
  environment:
345
376
  HOME: /home/node
346
377
  TERM: xterm-256color
347
378
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
348
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
349
- OPENCLAW_GATEWAY_PORT: "18789"
379
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
350
380
  BROWSER: echo
351
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
352
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
353
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
381
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
382
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
383
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
354
384
  OPENAI_API_KEY: \${OPENAI_API_KEY}
355
385
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
356
386
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -367,15 +397,11 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
367
397
  stdin_open: true
368
398
  tty: true
369
399
  init: true
370
- networks:
371
- - openclaw-network
372
400
  entrypoint:
373
401
  - node
374
402
  - dist/index.js
375
- restart: no
376
403
  depends_on:
377
- openclaw-gateway:
378
- condition: service_started
404
+ - openclaw-gateway
379
405
  volumes:
380
406
  grafana-data:
381
407
  n8n-data:
@@ -470,9 +496,10 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
470
496
  HOME: /home/node
471
497
  TERM: xterm-256color
472
498
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
473
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
474
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
475
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
499
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
500
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
501
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
502
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
476
503
  OPENAI_API_KEY: \${OPENAI_API_KEY}
477
504
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
478
505
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -537,6 +564,17 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
537
564
  - \${OPENCLAW_GATEWAY_BIND:-lan}
538
565
  - --port
539
566
  - "18789"
567
+ - --allow-unconfigured
568
+ healthcheck:
569
+ test:
570
+ - CMD
571
+ - node
572
+ - -e
573
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
574
+ interval: 30s
575
+ timeout: 5s
576
+ retries: 5
577
+ start_period: 20s
540
578
  depends_on:
541
579
  browserless:
542
580
  condition: service_healthy
@@ -784,16 +822,21 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
784
822
  - openclaw-network
785
823
  openclaw-cli:
786
824
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
825
+ network_mode: service:openclaw-gateway
826
+ cap_drop:
827
+ - NET_RAW
828
+ - NET_ADMIN
829
+ security_opt:
830
+ - no-new-privileges:true
787
831
  environment:
788
832
  HOME: /home/node
789
833
  TERM: xterm-256color
790
834
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
791
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
792
- OPENCLAW_GATEWAY_PORT: "18789"
835
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
793
836
  BROWSER: echo
794
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
795
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
796
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
837
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
838
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
839
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
797
840
  OPENAI_API_KEY: \${OPENAI_API_KEY}
798
841
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
799
842
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -810,15 +853,11 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
810
853
  stdin_open: true
811
854
  tty: true
812
855
  init: true
813
- networks:
814
- - openclaw-network
815
856
  entrypoint:
816
857
  - node
817
858
  - dist/index.js
818
- restart: no
819
859
  depends_on:
820
- openclaw-gateway:
821
- condition: service_started
860
+ - openclaw-gateway
822
861
  volumes:
823
862
  caddy-config:
824
863
  caddy-data:
@@ -849,9 +888,10 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
849
888
  HOME: /home/node
850
889
  TERM: xterm-256color
851
890
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
852
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
853
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
854
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
891
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
892
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
893
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
894
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
855
895
  OPENAI_API_KEY: \${OPENAI_API_KEY}
856
896
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
857
897
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -883,6 +923,17 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
883
923
  - \${OPENCLAW_GATEWAY_BIND:-lan}
884
924
  - --port
885
925
  - "18789"
926
+ - --allow-unconfigured
927
+ healthcheck:
928
+ test:
929
+ - CMD
930
+ - node
931
+ - -e
932
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
933
+ interval: 30s
934
+ timeout: 5s
935
+ retries: 5
936
+ start_period: 20s
886
937
  depends_on:
887
938
  redis:
888
939
  condition: service_healthy
@@ -906,16 +957,21 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
906
957
  - openclaw-network
907
958
  openclaw-cli:
908
959
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
960
+ network_mode: service:openclaw-gateway
961
+ cap_drop:
962
+ - NET_RAW
963
+ - NET_ADMIN
964
+ security_opt:
965
+ - no-new-privileges:true
909
966
  environment:
910
967
  HOME: /home/node
911
968
  TERM: xterm-256color
912
969
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
913
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
914
- OPENCLAW_GATEWAY_PORT: "18789"
970
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
915
971
  BROWSER: echo
916
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
917
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
918
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
972
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
973
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
974
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
919
975
  OPENAI_API_KEY: \${OPENAI_API_KEY}
920
976
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
921
977
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -932,15 +988,11 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
932
988
  stdin_open: true
933
989
  tty: true
934
990
  init: true
935
- networks:
936
- - openclaw-network
937
991
  entrypoint:
938
992
  - node
939
993
  - dist/index.js
940
- restart: no
941
994
  depends_on:
942
- openclaw-gateway:
943
- condition: service_started
995
+ - openclaw-gateway
944
996
  volumes:
945
997
  redis-data:
946
998
  networks:
@@ -957,9 +1009,10 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
957
1009
  HOME: /home/node
958
1010
  TERM: xterm-256color
959
1011
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
960
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
961
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
962
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
1012
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
1013
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
1014
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
1015
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
963
1016
  OPENAI_API_KEY: \${OPENAI_API_KEY}
964
1017
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
965
1018
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -998,6 +1051,17 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
998
1051
  - \${OPENCLAW_GATEWAY_BIND:-lan}
999
1052
  - --port
1000
1053
  - "18789"
1054
+ - --allow-unconfigured
1055
+ healthcheck:
1056
+ test:
1057
+ - CMD
1058
+ - node
1059
+ - -e
1060
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
1061
+ interval: 30s
1062
+ timeout: 5s
1063
+ retries: 5
1064
+ start_period: 20s
1001
1065
  depends_on:
1002
1066
  browserless:
1003
1067
  condition: service_healthy
@@ -1081,16 +1145,21 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
1081
1145
  - openclaw-network
1082
1146
  openclaw-cli:
1083
1147
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
1148
+ network_mode: service:openclaw-gateway
1149
+ cap_drop:
1150
+ - NET_RAW
1151
+ - NET_ADMIN
1152
+ security_opt:
1153
+ - no-new-privileges:true
1084
1154
  environment:
1085
1155
  HOME: /home/node
1086
1156
  TERM: xterm-256color
1087
1157
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
1088
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
1089
- OPENCLAW_GATEWAY_PORT: "18789"
1158
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
1090
1159
  BROWSER: echo
1091
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
1092
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
1093
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
1160
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
1161
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
1162
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
1094
1163
  OPENAI_API_KEY: \${OPENAI_API_KEY}
1095
1164
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
1096
1165
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -1107,15 +1176,11 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
1107
1176
  stdin_open: true
1108
1177
  tty: true
1109
1178
  init: true
1110
- networks:
1111
- - openclaw-network
1112
1179
  entrypoint:
1113
1180
  - node
1114
1181
  - dist/index.js
1115
- restart: no
1116
1182
  depends_on:
1117
- openclaw-gateway:
1118
- condition: service_started
1183
+ - openclaw-gateway
1119
1184
  volumes:
1120
1185
  qdrant-data:
1121
1186
  redis-data:
package/src/composer.ts CHANGED
@@ -83,10 +83,11 @@ function buildGatewayServices(
83
83
  HOME: "/home/node",
84
84
  TERM: "xterm-256color",
85
85
  OPENCLAW_GATEWAY_TOKEN: "${OPENCLAW_GATEWAY_TOKEN}",
86
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: "${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}",
86
87
  // Claude web-provider session vars (optional, user fills in .env)
87
- CLAUDE_AI_SESSION_KEY: "${CLAUDE_AI_SESSION_KEY}",
88
- CLAUDE_WEB_SESSION_KEY: "${CLAUDE_WEB_SESSION_KEY}",
89
- CLAUDE_WEB_COOKIE: "${CLAUDE_WEB_COOKIE}",
88
+ CLAUDE_AI_SESSION_KEY: "${CLAUDE_AI_SESSION_KEY:-}",
89
+ CLAUDE_WEB_SESSION_KEY: "${CLAUDE_WEB_SESSION_KEY:-}",
90
+ CLAUDE_WEB_COOKIE: "${CLAUDE_WEB_COOKIE:-}",
90
91
  };
91
92
 
92
93
  // Add AI provider API keys to gateway environment
@@ -150,7 +151,20 @@ function buildGatewayServices(
150
151
  "${OPENCLAW_GATEWAY_BIND:-lan}",
151
152
  "--port",
152
153
  "18789",
154
+ "--allow-unconfigured",
153
155
  ],
156
+ healthcheck: {
157
+ test: [
158
+ "CMD",
159
+ "node",
160
+ "-e",
161
+ "fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))",
162
+ ],
163
+ interval: "30s",
164
+ timeout: "5s",
165
+ retries: 5,
166
+ start_period: "20s",
167
+ },
154
168
  };
155
169
 
156
170
  // Traefik labels for the gateway
@@ -173,13 +187,11 @@ function buildGatewayServices(
173
187
  HOME: "/home/node",
174
188
  TERM: "xterm-256color",
175
189
  OPENCLAW_GATEWAY_TOKEN: "${OPENCLAW_GATEWAY_TOKEN}",
176
- // Gateway connection: use Docker service name so CLI can reach the gateway over the bridge network
177
- OPENCLAW_GATEWAY_HOST: "openclaw-gateway",
178
- OPENCLAW_GATEWAY_PORT: "18789",
190
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: "${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}",
179
191
  BROWSER: "echo",
180
- CLAUDE_AI_SESSION_KEY: "${CLAUDE_AI_SESSION_KEY}",
181
- CLAUDE_WEB_SESSION_KEY: "${CLAUDE_WEB_SESSION_KEY}",
182
- CLAUDE_WEB_COOKIE: "${CLAUDE_WEB_COOKIE}",
192
+ CLAUDE_AI_SESSION_KEY: "${CLAUDE_AI_SESSION_KEY:-}",
193
+ CLAUDE_WEB_SESSION_KEY: "${CLAUDE_WEB_SESSION_KEY:-}",
194
+ CLAUDE_WEB_COOKIE: "${CLAUDE_WEB_COOKIE:-}",
183
195
  };
184
196
 
185
197
  // Add same AI provider API keys to CLI for direct AI interactions
@@ -189,6 +201,9 @@ function buildGatewayServices(
189
201
 
190
202
  const cliService: Record<string, unknown> = {
191
203
  image: `\${OPENCLAW_IMAGE:-${defaultImage}}`,
204
+ network_mode: "service:openclaw-gateway",
205
+ cap_drop: ["NET_RAW", "NET_ADMIN"],
206
+ security_opt: ["no-new-privileges:true"],
192
207
  environment: cliEnv,
193
208
  volumes: [
194
209
  "${OPENCLAW_CONFIG_DIR:-./openclaw/config}:/home/node/.openclaw",
@@ -197,13 +212,8 @@ function buildGatewayServices(
197
212
  stdin_open: true,
198
213
  tty: true,
199
214
  init: true,
200
- networks: ["openclaw-network"],
201
215
  entrypoint: ["node", "dist/index.js"],
202
- // CLI is interactive — don't auto-restart, but wait for gateway to be ready
203
- restart: "no",
204
- depends_on: {
205
- "openclaw-gateway": { condition: "service_started" },
206
- },
216
+ depends_on: ["openclaw-gateway"],
207
217
  };
208
218
 
209
219
  return { gatewayService: gateway, cliService: cliService, allVolumes };
package/src/generate.ts CHANGED
@@ -307,6 +307,7 @@ export function generate(rawInput: GenerationInput): GenerationResult {
307
307
  serviceCount: resolved.services.length,
308
308
  skillCount,
309
309
  estimatedMemoryMB: resolved.estimatedMemoryMB,
310
+ resolvedServices: resolved.services.map((s) => s.definition.id),
310
311
  generatedAt: new Date().toISOString(),
311
312
  },
312
313
  };