@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
@@ -203,6 +203,54 @@ export function generateEnvFiles(
203
203
  actualValue: "",
204
204
  });
205
205
 
206
+ lines.push({
207
+ comment: formatComment(
208
+ "Alternative auth: gateway password (use token OR password, not both)",
209
+ "OpenClaw Core",
210
+ false,
211
+ true,
212
+ ),
213
+ key: "OPENCLAW_GATEWAY_PASSWORD",
214
+ exampleValue: "",
215
+ actualValue: "",
216
+ });
217
+
218
+ lines.push({
219
+ comment: formatComment(
220
+ "Override state directory path (default: ~/.openclaw)",
221
+ "OpenClaw Core",
222
+ false,
223
+ false,
224
+ ),
225
+ key: "OPENCLAW_STATE_DIR",
226
+ exampleValue: "",
227
+ actualValue: "",
228
+ });
229
+
230
+ lines.push({
231
+ comment: formatComment(
232
+ "Override config file path (default: ~/.openclaw/openclaw.json)",
233
+ "OpenClaw Core",
234
+ false,
235
+ false,
236
+ ),
237
+ key: "OPENCLAW_CONFIG_PATH",
238
+ exampleValue: "",
239
+ actualValue: "",
240
+ });
241
+
242
+ lines.push({
243
+ comment: formatComment(
244
+ "Import missing keys from login shell profile (set to 1 to enable)",
245
+ "OpenClaw Core",
246
+ false,
247
+ false,
248
+ ),
249
+ key: "OPENCLAW_LOAD_SHELL_ENV",
250
+ exampleValue: "",
251
+ actualValue: "",
252
+ });
253
+
206
254
  if (options.domain) {
207
255
  lines.push({
208
256
  comment: formatComment("Primary domain for service routing", "OpenClaw Core", false, false),
@@ -212,6 +260,98 @@ export function generateEnvFiles(
212
260
  });
213
261
  }
214
262
 
263
+ // ── Tools API Keys (web search, fetch) ──────────────────────────────────
264
+
265
+ lines.push({
266
+ comment:
267
+ "\n# ═══════════════════════════════════════════════════════════════════════════════\n# Tools API Keys (web search, fetch, voice)\n# ═══════════════════════════════════════════════════════════════════════════════",
268
+ key: "",
269
+ exampleValue: "",
270
+ actualValue: "",
271
+ });
272
+
273
+ lines.push({
274
+ comment: formatComment(
275
+ "Brave Search API key for web search tool (default provider)",
276
+ "OpenClaw Tools",
277
+ false,
278
+ true,
279
+ ),
280
+ key: "BRAVE_API_KEY",
281
+ exampleValue: "your_brave_api_key_here",
282
+ actualValue: "",
283
+ });
284
+
285
+ lines.push({
286
+ comment: formatComment(
287
+ "Perplexity API key for web search tool (alternative provider)",
288
+ "OpenClaw Tools",
289
+ false,
290
+ true,
291
+ ),
292
+ key: "PERPLEXITY_API_KEY",
293
+ exampleValue: "",
294
+ actualValue: "",
295
+ });
296
+
297
+ lines.push({
298
+ comment: formatComment(
299
+ "Firecrawl API key for enhanced web fetch fallback",
300
+ "OpenClaw Tools",
301
+ false,
302
+ true,
303
+ ),
304
+ key: "FIRECRAWL_API_KEY",
305
+ exampleValue: "",
306
+ actualValue: "",
307
+ });
308
+
309
+ lines.push({
310
+ comment: formatComment(
311
+ "ElevenLabs API key for Talk mode (text-to-speech)",
312
+ "OpenClaw Tools",
313
+ false,
314
+ true,
315
+ ),
316
+ key: "ELEVENLABS_API_KEY",
317
+ exampleValue: "",
318
+ actualValue: "",
319
+ });
320
+
321
+ // ── Swarm / Remote Gateway ───────────────────────────────────────────────
322
+
323
+ lines.push({
324
+ comment:
325
+ "\n# ═══════════════════════════════════════════════════════════════════════════════\n# Swarm / Remote Gateway Connection\n# ═══════════════════════════════════════════════════════════════════════════════",
326
+ key: "",
327
+ exampleValue: "",
328
+ actualValue: "",
329
+ });
330
+
331
+ lines.push({
332
+ comment: formatComment(
333
+ "Auth token for connecting to a remote OpenClaw gateway (swarm upstream)",
334
+ "OpenClaw Swarm",
335
+ false,
336
+ true,
337
+ ),
338
+ key: "OPENCLAW_REMOTE_GATEWAY_TOKEN",
339
+ exampleValue: "",
340
+ actualValue: "",
341
+ });
342
+
343
+ lines.push({
344
+ comment: formatComment(
345
+ "Password for remote gateway auth (alternative to token)",
346
+ "OpenClaw Swarm",
347
+ false,
348
+ true,
349
+ ),
350
+ key: "OPENCLAW_REMOTE_GATEWAY_PASSWORD",
351
+ exampleValue: "",
352
+ actualValue: "",
353
+ });
354
+
215
355
  // ── AI Provider API Keys ─────────────────────────────────────────────────
216
356
 
217
357
  if (resolved.aiProviders && resolved.aiProviders.length > 0) {
@@ -334,7 +474,17 @@ export function generateEnvFiles(
334
474
  "OPENCLAW_EXTRA_MOUNTS",
335
475
  "OPENCLAW_HOME_VOLUME",
336
476
  "OPENCLAW_DOCKER_APT_PACKAGES",
477
+ "OPENCLAW_GATEWAY_PASSWORD",
478
+ "OPENCLAW_STATE_DIR",
479
+ "OPENCLAW_CONFIG_PATH",
480
+ "OPENCLAW_LOAD_SHELL_ENV",
337
481
  "OPENCLAW_DOMAIN",
482
+ "BRAVE_API_KEY",
483
+ "PERPLEXITY_API_KEY",
484
+ "FIRECRAWL_API_KEY",
485
+ "ELEVENLABS_API_KEY",
486
+ "OPENCLAW_REMOTE_GATEWAY_TOKEN",
487
+ "OPENCLAW_REMOTE_GATEWAY_PASSWORD",
338
488
  "CLAUDE_AI_SESSION_KEY",
339
489
  "CLAUDE_WEB_SESSION_KEY",
340
490
  "CLAUDE_WEB_COOKIE",
@@ -406,6 +556,7 @@ export function generateEnvFiles(
406
556
  "# ═══════════════════════════════════════════════════════════════════════════════",
407
557
  "# OpenClaw Environment Configuration",
408
558
  `# Generated at ${new Date().toISOString()}`,
559
+ "# Docs: https://better-openclaw.dev/docs | Cloud: https://clawexa.net",
409
560
  "# ═══════════════════════════════════════════════════════════════════════════════",
410
561
  "",
411
562
  ].join("\n");
@@ -491,6 +642,69 @@ export function getStructuredEnvVars(resolved: ResolverOutput): EnvVarGroup[] {
491
642
  required: true,
492
643
  defaultValue: "18789",
493
644
  },
645
+ {
646
+ key: "OPENCLAW_GATEWAY_PASSWORD",
647
+ description: "Alternative auth: gateway password (use token OR password)",
648
+ secret: true,
649
+ required: false,
650
+ defaultValue: "",
651
+ },
652
+ {
653
+ key: "OPENCLAW_STATE_DIR",
654
+ description: "Override state directory path (default: ~/.openclaw)",
655
+ secret: false,
656
+ required: false,
657
+ defaultValue: "",
658
+ },
659
+ {
660
+ key: "OPENCLAW_CONFIG_PATH",
661
+ description: "Override config file path (default: ~/.openclaw/openclaw.json)",
662
+ secret: false,
663
+ required: false,
664
+ defaultValue: "",
665
+ },
666
+ {
667
+ key: "BRAVE_API_KEY",
668
+ description: "Brave Search API key for web search tool (default provider)",
669
+ secret: true,
670
+ required: false,
671
+ defaultValue: "",
672
+ },
673
+ {
674
+ key: "PERPLEXITY_API_KEY",
675
+ description: "Perplexity API key for web search (alternative provider)",
676
+ secret: true,
677
+ required: false,
678
+ defaultValue: "",
679
+ },
680
+ {
681
+ key: "FIRECRAWL_API_KEY",
682
+ description: "Firecrawl API key for enhanced web fetch fallback",
683
+ secret: true,
684
+ required: false,
685
+ defaultValue: "",
686
+ },
687
+ {
688
+ key: "ELEVENLABS_API_KEY",
689
+ description: "ElevenLabs API key for Talk mode (text-to-speech)",
690
+ secret: true,
691
+ required: false,
692
+ defaultValue: "",
693
+ },
694
+ {
695
+ key: "OPENCLAW_REMOTE_GATEWAY_TOKEN",
696
+ description: "Auth token for connecting to a remote OpenClaw gateway (swarm upstream)",
697
+ secret: true,
698
+ required: false,
699
+ defaultValue: "",
700
+ },
701
+ {
702
+ key: "OPENCLAW_REMOTE_GATEWAY_PASSWORD",
703
+ description: "Password for remote gateway auth (alternative to token)",
704
+ secret: true,
705
+ required: false,
706
+ defaultValue: "",
707
+ },
494
708
  ];
495
709
 
496
710
  for (const v of coreVars) {
@@ -459,7 +459,31 @@ export function generateOpenClawConfig(
459
459
  workspace: isDocker ? "/home/node/.openclaw/workspace" : "./workspace",
460
460
  compaction: { mode: "safeguard" },
461
461
  maxConcurrent: 4,
462
- subagents: { maxConcurrent: 8 },
462
+ subagents: {
463
+ maxConcurrent: 8,
464
+ // Allow spawning sub-agents under any agent ID (essential for swarm collaboration)
465
+ allowAgents: ["*"],
466
+ },
467
+ // Sandbox defaults for agent exec isolation
468
+ ...(isDocker
469
+ ? {
470
+ sandbox: {
471
+ docker: {
472
+ containerPrefix: "openclaw-sandbox",
473
+ workdir: "/workspace",
474
+ readOnlyRoot: true,
475
+ network: "none",
476
+ capDrop: ["ALL"],
477
+ pidsLimit: 256,
478
+ memory: "512m",
479
+ },
480
+ browser: {
481
+ enabled: false,
482
+ autoStart: false,
483
+ },
484
+ },
485
+ }
486
+ : {}),
463
487
  },
464
488
  },
465
489
  messages: {
@@ -490,12 +514,23 @@ export function generateOpenClawConfig(
490
514
  wideArea: {
491
515
  enabled: true,
492
516
  },
517
+ // mDNS/Bonjour for local-network instance discovery (swarm auto-discovery)
518
+ // "minimal" hides sensitive metadata; "full" exposes cliPath/sshPort for easier discovery
519
+ mdns: {
520
+ mode: isDocker ? "off" : "minimal",
521
+ },
493
522
  },
494
523
  canvasHost: {
495
524
  enabled: true,
496
525
  liveReload: true,
497
526
  },
498
527
  channels: {},
528
+ // Node host config — controls how this instance exposes services to other gateway nodes
529
+ nodeHost: {
530
+ browserProxy: {
531
+ enabled: true,
532
+ },
533
+ },
499
534
  gateway: {
500
535
  port: options.gatewayPort,
501
536
  mode: "local",
@@ -517,9 +552,41 @@ export function generateOpenClawConfig(
517
552
  },
518
553
  // Tailscale serve only works on bare-metal/local (not inside Docker containers)
519
554
  ...(isDocker ? {} : { tailscale: { mode: "serve", resetOnExit: true } }),
555
+ reload: {
556
+ mode: "hybrid",
557
+ },
558
+ http: {
559
+ endpoints: {
560
+ chatCompletions: { enabled: false },
561
+ responses: { enabled: false },
562
+ },
563
+ },
520
564
  nodes: {
565
+ browser: {
566
+ // "auto" lets gateway pick best node for browser proxying; "manual" pins to specific node
567
+ mode: "auto",
568
+ },
569
+ // Allowlist/denylist for node.invoke commands across the swarm
570
+ allowCommands: [],
521
571
  denyCommands: ["camera.snap", "camera.clip", "screen.record"],
522
572
  },
573
+ // Remote gateway connection — enables this instance to connect to another OpenClaw gateway
574
+ // Configure for swarm topologies: each instance can connect to one upstream gateway
575
+ // Transport: "direct" = WebSocket (ws/wss), "ssh" = SSH tunnel for secure remote access
576
+ remote: {
577
+ // url: "wss://gateway.example.com:18789", // Remote gateway WebSocket URL
578
+ transport: "direct",
579
+ // token: "${OPENCLAW_REMOTE_GATEWAY_TOKEN}", // Auth token for the remote gateway
580
+ // sshTarget: "user@gateway-host", // For SSH tunnel transport
581
+ // sshIdentity: "~/.ssh/id_ed25519", // SSH key for tunnel
582
+ // tlsFingerprint: "", // Pin remote gateway TLS cert (sha256)
583
+ },
584
+ channelHealthCheckMinutes: 5,
585
+ },
586
+ browser: {
587
+ enabled: true,
588
+ // WSL2 users may need relayBindHost: "0.0.0.0" for cross-namespace access
589
+ ...(isDocker ? {} : { relayBindHost: "127.0.0.1" }),
523
590
  },
524
591
  skills: {
525
592
  install: { nodeManager: "pnpm" },
@@ -528,6 +595,94 @@ export function generateOpenClawConfig(
528
595
  },
529
596
  ...(Object.keys(defaultSkills).length > 0 ? { entries: defaultSkills } : {}),
530
597
  },
598
+ // ACP (Agent Client Protocol) — external agents can connect to the gateway
599
+ // Disabled by default; enable when using ACP-compatible agents (e.g. acpx)
600
+ acp: {
601
+ enabled: false,
602
+ dispatch: { enabled: false },
603
+ maxConcurrentSessions: 4,
604
+ stream: {
605
+ deliveryMode: "live",
606
+ repeatSuppression: true,
607
+ },
608
+ runtime: {
609
+ ttlMinutes: 30,
610
+ },
611
+ },
612
+ // Tools configuration — web search, fetch, exec security, loop detection
613
+ tools: {
614
+ web: {
615
+ search: {
616
+ // Enabled when a search API key is available (BRAVE_API_KEY, etc.)
617
+ enabled: true,
618
+ provider: "brave",
619
+ maxResults: 5,
620
+ timeoutSeconds: 10,
621
+ cacheTtlMinutes: 60,
622
+ },
623
+ fetch: {
624
+ enabled: true,
625
+ maxChars: 30000,
626
+ timeoutSeconds: 15,
627
+ cacheTtlMinutes: 30,
628
+ readability: true,
629
+ },
630
+ },
631
+ exec: {
632
+ // Docker: sandbox exec inside a nested container; bare-metal: deny by default
633
+ host: isDocker ? "sandbox" : "gateway",
634
+ security: "allowlist",
635
+ ask: "on-miss",
636
+ backgroundMs: 30000,
637
+ timeoutSec: 300,
638
+ },
639
+ // Filesystem path guards
640
+ fs: {
641
+ // In Docker the workspace is already isolated; on bare-metal restrict to workspace
642
+ workspaceOnly: !isDocker,
643
+ },
644
+ // Prevent stuck tool-call loops
645
+ loopDetection: {
646
+ enabled: true,
647
+ historySize: 30,
648
+ warningThreshold: 10,
649
+ criticalThreshold: 20,
650
+ globalCircuitBreakerThreshold: 30,
651
+ },
652
+ sessions: {
653
+ visibility: "tree",
654
+ },
655
+ // Agent-to-agent messaging — allows agents to invoke each other at runtime
656
+ // Essential for swarm architectures where multiple OpenClaw instances collaborate
657
+ agentToAgent: {
658
+ enabled: true,
659
+ // Allowlist of agent IDs or patterns that can be reached; "*" = any agent
660
+ allow: ["*"],
661
+ },
662
+ },
663
+ // Session-level agent-to-agent safety limits
664
+ session: {
665
+ agentToAgent: {
666
+ // Max ping-pong turns between requester and target agent (prevents infinite loops)
667
+ maxPingPongTurns: 5,
668
+ },
669
+ },
670
+ // Memory — vector search over session history and markdown notes
671
+ memory: {
672
+ backend: "builtin",
673
+ citations: "auto",
674
+ },
675
+ // UI customization
676
+ ui: {
677
+ assistant: {
678
+ name: "OpenClaw",
679
+ },
680
+ },
681
+ // Media retention
682
+ media: {
683
+ preserveFilenames: true,
684
+ ttlHours: 168, // 7 days
685
+ },
531
686
  plugins: {
532
687
  enabled: true,
533
688
  entries: {
@@ -366,7 +366,8 @@ ${warningList}
366
366
 
367
367
  sections.push(`---
368
368
 
369
- Generated by [OpenClaw](https://openclaw.dev) • ${new Date().toISOString().split("T")[0]}
369
+ Generated by [better-openclaw](https://better-openclaw.dev) • ${new Date().toISOString().split("T")[0]}
370
+ Deploy without managing servers: [Clawexa Cloud](https://clawexa.net)
370
371
  `);
371
372
 
372
373
  return sections.join("\n");