@better-openclaw/core 1.0.6 → 1.0.7

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 (556) hide show
  1. package/.github/workflows/publish-core.yml +1 -1
  2. package/dist/bare-metal-partition.d.mts +0 -1
  3. package/dist/bare-metal-partition.d.mts.map +1 -1
  4. package/dist/bare-metal-partition.mjs +47 -2
  5. package/dist/bare-metal-partition.mjs.map +1 -0
  6. package/dist/bare-metal-partition.test.mjs +3 -3
  7. package/dist/composer.d.mts +0 -1
  8. package/dist/composer.d.mts.map +1 -1
  9. package/dist/composer.mjs +286 -2
  10. package/dist/composer.mjs.map +1 -0
  11. package/dist/composer.snapshot.test.mjs +3 -3
  12. package/dist/composer.test.mjs +3 -3
  13. package/dist/generate.d.mts +0 -2
  14. package/dist/generate.d.mts.map +1 -1
  15. package/dist/generate.mjs +15 -15
  16. package/dist/generate.test.mjs +1 -1
  17. package/dist/generators/bare-metal-install.d.mts +0 -2
  18. package/dist/generators/bare-metal-install.d.mts.map +1 -1
  19. package/dist/generators/bare-metal-install.mjs +223 -2
  20. package/dist/generators/bare-metal-install.mjs.map +1 -0
  21. package/dist/generators/bare-metal-install.test.mjs +2 -2
  22. package/dist/generators/caddy.d.mts +0 -2
  23. package/dist/generators/caddy.d.mts.map +1 -1
  24. package/dist/generators/caddy.mjs +76 -2
  25. package/dist/generators/caddy.mjs.map +1 -0
  26. package/dist/generators/env.d.mts +0 -1
  27. package/dist/generators/env.d.mts.map +1 -1
  28. package/dist/generators/env.mjs +249 -2
  29. package/dist/generators/env.mjs.map +1 -0
  30. package/dist/generators/grafana.d.mts.map +1 -1
  31. package/dist/generators/grafana.mjs +292 -2
  32. package/dist/generators/grafana.mjs.map +1 -0
  33. package/dist/generators/n8n-workflows.d.mts +0 -2
  34. package/dist/generators/n8n-workflows.d.mts.map +1 -1
  35. package/dist/generators/n8n-workflows.mjs +74 -2
  36. package/dist/generators/n8n-workflows.mjs.map +1 -0
  37. package/dist/generators/native-services.d.mts +0 -1
  38. package/dist/generators/native-services.d.mts.map +1 -1
  39. package/dist/generators/native-services.mjs +77 -2
  40. package/dist/generators/native-services.mjs.map +1 -0
  41. package/dist/generators/postgres-init.d.mts +0 -1
  42. package/dist/generators/postgres-init.d.mts.map +1 -1
  43. package/dist/generators/postgres-init.mjs +150 -2
  44. package/dist/generators/postgres-init.mjs.map +1 -0
  45. package/dist/generators/prometheus.d.mts +0 -2
  46. package/dist/generators/prometheus.d.mts.map +1 -1
  47. package/dist/generators/prometheus.mjs +106 -2
  48. package/dist/generators/prometheus.mjs.map +1 -0
  49. package/dist/generators/readme.d.mts +0 -1
  50. package/dist/generators/readme.d.mts.map +1 -1
  51. package/dist/generators/readme.mjs +198 -2
  52. package/dist/generators/readme.mjs.map +1 -0
  53. package/dist/generators/scripts.d.mts.map +1 -1
  54. package/dist/generators/scripts.mjs +350 -2
  55. package/dist/generators/scripts.mjs.map +1 -0
  56. package/dist/generators/skills.d.mts +0 -2
  57. package/dist/generators/skills.d.mts.map +1 -1
  58. package/dist/generators/skills.mjs +586 -2
  59. package/dist/generators/skills.mjs.map +1 -0
  60. package/dist/index.d.mts +1 -1
  61. package/dist/index.mjs +15 -15
  62. package/dist/{magic-string.es-Dew0Rnsa.mjs → magic-string.es-1uTtupLe.mjs} +14 -14
  63. package/dist/magic-string.es-1uTtupLe.mjs.map +1 -0
  64. package/dist/presets/registry.d.mts +0 -1
  65. package/dist/presets/registry.d.mts.map +1 -1
  66. package/dist/presets/registry.test.mjs +1 -1
  67. package/dist/resolver.d.mts +0 -2
  68. package/dist/resolver.d.mts.map +1 -1
  69. package/dist/resolver.mjs +193 -2
  70. package/dist/resolver.mjs.map +1 -0
  71. package/dist/resolver.test.mjs +2 -2
  72. package/dist/schema.d.mts +706 -2
  73. package/dist/schema.d.mts.map +1 -0
  74. package/dist/schema.mjs +3 -1
  75. package/dist/schema.mjs.map +1 -1
  76. package/dist/schema.test.mjs +1 -1
  77. package/dist/services/definitions/anything-llm.d.mts +0 -1
  78. package/dist/services/definitions/anything-llm.d.mts.map +1 -1
  79. package/dist/services/definitions/anything-llm.mjs +43 -2
  80. package/dist/services/definitions/anything-llm.mjs.map +1 -0
  81. package/dist/services/definitions/appflowy.d.mts +0 -1
  82. package/dist/services/definitions/appflowy.d.mts.map +1 -1
  83. package/dist/services/definitions/appflowy.mjs +44 -2
  84. package/dist/services/definitions/appflowy.mjs.map +1 -0
  85. package/dist/services/definitions/beszel.d.mts +0 -1
  86. package/dist/services/definitions/beszel.d.mts.map +1 -1
  87. package/dist/services/definitions/beszel.mjs +44 -2
  88. package/dist/services/definitions/beszel.mjs.map +1 -0
  89. package/dist/services/definitions/browserless.d.mts +0 -1
  90. package/dist/services/definitions/browserless.d.mts.map +1 -1
  91. package/dist/services/definitions/browserless.mjs +84 -2
  92. package/dist/services/definitions/browserless.mjs.map +1 -0
  93. package/dist/services/definitions/caddy.d.mts +0 -1
  94. package/dist/services/definitions/caddy.d.mts.map +1 -1
  95. package/dist/services/definitions/caddy.mjs +51 -2
  96. package/dist/services/definitions/caddy.mjs.map +1 -0
  97. package/dist/services/definitions/chromadb.d.mts +0 -1
  98. package/dist/services/definitions/chromadb.d.mts.map +1 -1
  99. package/dist/services/definitions/chromadb.mjs +62 -2
  100. package/dist/services/definitions/chromadb.mjs.map +1 -0
  101. package/dist/services/definitions/claude-code.d.mts +0 -1
  102. package/dist/services/definitions/claude-code.d.mts.map +1 -1
  103. package/dist/services/definitions/claude-code.mjs +51 -2
  104. package/dist/services/definitions/claude-code.mjs.map +1 -0
  105. package/dist/services/definitions/code-server.d.mts +0 -1
  106. package/dist/services/definitions/code-server.d.mts.map +1 -1
  107. package/dist/services/definitions/code-server.mjs +65 -2
  108. package/dist/services/definitions/code-server.mjs.map +1 -0
  109. package/dist/services/definitions/codex.d.mts +0 -1
  110. package/dist/services/definitions/codex.d.mts.map +1 -1
  111. package/dist/services/definitions/codex.mjs +44 -2
  112. package/dist/services/definitions/codex.mjs.map +1 -0
  113. package/dist/services/definitions/convex-dashboard.d.mts +7 -0
  114. package/dist/services/definitions/convex-dashboard.d.mts.map +1 -0
  115. package/dist/services/definitions/convex-dashboard.mjs +46 -0
  116. package/dist/services/definitions/convex-dashboard.mjs.map +1 -0
  117. package/dist/services/definitions/convex.d.mts +7 -0
  118. package/dist/services/definitions/convex.d.mts.map +1 -0
  119. package/dist/services/definitions/convex.mjs +118 -0
  120. package/dist/services/definitions/convex.mjs.map +1 -0
  121. package/dist/services/definitions/coolify.d.mts +0 -1
  122. package/dist/services/definitions/coolify.d.mts.map +1 -1
  123. package/dist/services/definitions/coolify.mjs +48 -2
  124. package/dist/services/definitions/coolify.mjs.map +1 -0
  125. package/dist/services/definitions/dify.d.mts +0 -1
  126. package/dist/services/definitions/dify.d.mts.map +1 -1
  127. package/dist/services/definitions/dify.mjs +80 -2
  128. package/dist/services/definitions/dify.mjs.map +1 -0
  129. package/dist/services/definitions/docsgpt.d.mts +0 -1
  130. package/dist/services/definitions/docsgpt.d.mts.map +1 -1
  131. package/dist/services/definitions/docsgpt.mjs +44 -2
  132. package/dist/services/definitions/docsgpt.mjs.map +1 -0
  133. package/dist/services/definitions/dokploy.d.mts +0 -1
  134. package/dist/services/definitions/dokploy.d.mts.map +1 -1
  135. package/dist/services/definitions/dokploy.mjs +48 -2
  136. package/dist/services/definitions/dokploy.mjs.map +1 -0
  137. package/dist/services/definitions/dozzle.d.mts +0 -1
  138. package/dist/services/definitions/dozzle.d.mts.map +1 -1
  139. package/dist/services/definitions/dozzle.mjs +40 -2
  140. package/dist/services/definitions/dozzle.mjs.map +1 -0
  141. package/dist/services/definitions/ffmpeg.d.mts +0 -1
  142. package/dist/services/definitions/ffmpeg.d.mts.map +1 -1
  143. package/dist/services/definitions/ffmpeg.mjs +65 -2
  144. package/dist/services/definitions/ffmpeg.mjs.map +1 -0
  145. package/dist/services/definitions/flowise.d.mts +0 -1
  146. package/dist/services/definitions/flowise.d.mts.map +1 -1
  147. package/dist/services/definitions/flowise.mjs +44 -2
  148. package/dist/services/definitions/flowise.mjs.map +1 -0
  149. package/dist/services/definitions/gemini-cli.d.mts +0 -1
  150. package/dist/services/definitions/gemini-cli.d.mts.map +1 -1
  151. package/dist/services/definitions/gemini-cli.mjs +45 -2
  152. package/dist/services/definitions/gemini-cli.mjs.map +1 -0
  153. package/dist/services/definitions/gitea.d.mts +0 -1
  154. package/dist/services/definitions/gitea.d.mts.map +1 -1
  155. package/dist/services/definitions/gitea.mjs +48 -2
  156. package/dist/services/definitions/gitea.mjs.map +1 -0
  157. package/dist/services/definitions/gotify.d.mts +0 -1
  158. package/dist/services/definitions/gotify.d.mts.map +1 -1
  159. package/dist/services/definitions/gotify.mjs +61 -2
  160. package/dist/services/definitions/gotify.mjs.map +1 -0
  161. package/dist/services/definitions/grafana.d.mts +0 -1
  162. package/dist/services/definitions/grafana.d.mts.map +1 -1
  163. package/dist/services/definitions/grafana.mjs +62 -2
  164. package/dist/services/definitions/grafana.mjs.map +1 -0
  165. package/dist/services/definitions/index.d.mts +5 -2
  166. package/dist/services/definitions/index.d.mts.map +1 -1
  167. package/dist/services/definitions/index.mjs +145 -67
  168. package/dist/services/definitions/index.mjs.map +1 -0
  169. package/dist/services/definitions/kimi.d.mts +0 -1
  170. package/dist/services/definitions/kimi.d.mts.map +1 -1
  171. package/dist/services/definitions/kimi.mjs +45 -2
  172. package/dist/services/definitions/kimi.mjs.map +1 -0
  173. package/dist/services/definitions/lasuite-meet-agents.d.mts +0 -1
  174. package/dist/services/definitions/lasuite-meet-agents.d.mts.map +1 -1
  175. package/dist/services/definitions/lasuite-meet-agents.mjs +35 -2
  176. package/dist/services/definitions/lasuite-meet-agents.mjs.map +1 -0
  177. package/dist/services/definitions/lasuite-meet-backend.d.mts +0 -1
  178. package/dist/services/definitions/lasuite-meet-backend.d.mts.map +1 -1
  179. package/dist/services/definitions/lasuite-meet-backend.mjs +133 -2
  180. package/dist/services/definitions/lasuite-meet-backend.mjs.map +1 -0
  181. package/dist/services/definitions/lasuite-meet-frontend.d.mts +0 -1
  182. package/dist/services/definitions/lasuite-meet-frontend.d.mts.map +1 -1
  183. package/dist/services/definitions/lasuite-meet-frontend.mjs +47 -2
  184. package/dist/services/definitions/lasuite-meet-frontend.mjs.map +1 -0
  185. package/dist/services/definitions/librechat.d.mts +0 -1
  186. package/dist/services/definitions/librechat.d.mts.map +1 -1
  187. package/dist/services/definitions/librechat.mjs +49 -2
  188. package/dist/services/definitions/librechat.mjs.map +1 -0
  189. package/dist/services/definitions/lightpanda.d.mts +0 -1
  190. package/dist/services/definitions/lightpanda.d.mts.map +1 -1
  191. package/dist/services/definitions/lightpanda.mjs +58 -2
  192. package/dist/services/definitions/lightpanda.mjs.map +1 -0
  193. package/dist/services/definitions/litellm.d.mts +0 -1
  194. package/dist/services/definitions/litellm.d.mts.map +1 -1
  195. package/dist/services/definitions/litellm.mjs +46 -2
  196. package/dist/services/definitions/litellm.mjs.map +1 -0
  197. package/dist/services/definitions/livekit.d.mts +0 -1
  198. package/dist/services/definitions/livekit.d.mts.map +1 -1
  199. package/dist/services/definitions/livekit.mjs +55 -2
  200. package/dist/services/definitions/livekit.mjs.map +1 -0
  201. package/dist/services/definitions/matomo.d.mts +0 -1
  202. package/dist/services/definitions/matomo.d.mts.map +1 -1
  203. package/dist/services/definitions/matomo.mjs +79 -2
  204. package/dist/services/definitions/matomo.mjs.map +1 -0
  205. package/dist/services/definitions/matrix-synapse.d.mts +0 -1
  206. package/dist/services/definitions/matrix-synapse.d.mts.map +1 -1
  207. package/dist/services/definitions/matrix-synapse.mjs +87 -2
  208. package/dist/services/definitions/matrix-synapse.mjs.map +1 -0
  209. package/dist/services/definitions/mattermost.d.mts +0 -1
  210. package/dist/services/definitions/mattermost.d.mts.map +1 -1
  211. package/dist/services/definitions/mattermost.mjs +60 -2
  212. package/dist/services/definitions/mattermost.mjs.map +1 -0
  213. package/dist/services/definitions/meilisearch.d.mts +0 -1
  214. package/dist/services/definitions/meilisearch.d.mts.map +1 -1
  215. package/dist/services/definitions/meilisearch.mjs +77 -2
  216. package/dist/services/definitions/meilisearch.mjs.map +1 -0
  217. package/dist/services/definitions/minio.d.mts +0 -1
  218. package/dist/services/definitions/minio.d.mts.map +1 -1
  219. package/dist/services/definitions/minio.mjs +101 -2
  220. package/dist/services/definitions/minio.mjs.map +1 -0
  221. package/dist/services/definitions/mission-control.d.mts +7 -0
  222. package/dist/services/definitions/mission-control.d.mts.map +1 -0
  223. package/dist/services/definitions/mission-control.mjs +67 -0
  224. package/dist/services/definitions/mission-control.mjs.map +1 -0
  225. package/dist/services/definitions/mixpost.d.mts +0 -1
  226. package/dist/services/definitions/mixpost.d.mts.map +1 -1
  227. package/dist/services/definitions/mixpost.mjs +86 -2
  228. package/dist/services/definitions/mixpost.mjs.map +1 -0
  229. package/dist/services/definitions/motion-canvas.d.mts +0 -1
  230. package/dist/services/definitions/motion-canvas.d.mts.map +1 -1
  231. package/dist/services/definitions/motion-canvas.mjs +51 -2
  232. package/dist/services/definitions/motion-canvas.mjs.map +1 -0
  233. package/dist/services/definitions/n8n.d.mts +0 -1
  234. package/dist/services/definitions/n8n.d.mts.map +1 -1
  235. package/dist/services/definitions/n8n.mjs +153 -2
  236. package/dist/services/definitions/n8n.mjs.map +1 -0
  237. package/dist/services/definitions/nocodb.d.mts +0 -1
  238. package/dist/services/definitions/nocodb.d.mts.map +1 -1
  239. package/dist/services/definitions/nocodb.mjs +44 -2
  240. package/dist/services/definitions/nocodb.mjs.map +1 -0
  241. package/dist/services/definitions/ntfy.d.mts +0 -1
  242. package/dist/services/definitions/ntfy.d.mts.map +1 -1
  243. package/dist/services/definitions/ntfy.mjs +62 -2
  244. package/dist/services/definitions/ntfy.mjs.map +1 -0
  245. package/dist/services/definitions/ollama.d.mts +0 -1
  246. package/dist/services/definitions/ollama.d.mts.map +1 -1
  247. package/dist/services/definitions/ollama.mjs +65 -2
  248. package/dist/services/definitions/ollama.mjs.map +1 -0
  249. package/dist/services/definitions/open-webui.d.mts +0 -1
  250. package/dist/services/definitions/open-webui.d.mts.map +1 -1
  251. package/dist/services/definitions/open-webui.mjs +49 -2
  252. package/dist/services/definitions/open-webui.mjs.map +1 -0
  253. package/dist/services/definitions/opencode.d.mts +0 -1
  254. package/dist/services/definitions/opencode.d.mts.map +1 -1
  255. package/dist/services/definitions/opencode.mjs +49 -2
  256. package/dist/services/definitions/opencode.mjs.map +1 -0
  257. package/dist/services/definitions/openpanel.d.mts +0 -1
  258. package/dist/services/definitions/openpanel.d.mts.map +1 -1
  259. package/dist/services/definitions/openpanel.mjs +45 -2
  260. package/dist/services/definitions/openpanel.mjs.map +1 -0
  261. package/dist/services/definitions/outline.d.mts +0 -1
  262. package/dist/services/definitions/outline.d.mts.map +1 -1
  263. package/dist/services/definitions/outline.mjs +73 -2
  264. package/dist/services/definitions/outline.mjs.map +1 -0
  265. package/dist/services/definitions/paperless-ngx.d.mts +0 -1
  266. package/dist/services/definitions/paperless-ngx.d.mts.map +1 -1
  267. package/dist/services/definitions/paperless-ngx.mjs +92 -2
  268. package/dist/services/definitions/paperless-ngx.mjs.map +1 -0
  269. package/dist/services/definitions/playwright-server.d.mts +0 -1
  270. package/dist/services/definitions/playwright-server.d.mts.map +1 -1
  271. package/dist/services/definitions/playwright-server.mjs +41 -2
  272. package/dist/services/definitions/playwright-server.mjs.map +1 -0
  273. package/dist/services/definitions/portainer.d.mts +0 -1
  274. package/dist/services/definitions/portainer.d.mts.map +1 -1
  275. package/dist/services/definitions/portainer.mjs +48 -2
  276. package/dist/services/definitions/portainer.mjs.map +1 -0
  277. package/dist/services/definitions/postgresql.d.mts +0 -1
  278. package/dist/services/definitions/postgresql.d.mts.map +1 -1
  279. package/dist/services/definitions/postgresql.mjs +83 -2
  280. package/dist/services/definitions/postgresql.mjs.map +1 -0
  281. package/dist/services/definitions/postiz.d.mts +0 -1
  282. package/dist/services/definitions/postiz.d.mts.map +1 -1
  283. package/dist/services/definitions/postiz.mjs +82 -2
  284. package/dist/services/definitions/postiz.mjs.map +1 -0
  285. package/dist/services/definitions/prometheus.d.mts +0 -1
  286. package/dist/services/definitions/prometheus.d.mts.map +1 -1
  287. package/dist/services/definitions/prometheus.mjs +51 -2
  288. package/dist/services/definitions/prometheus.mjs.map +1 -0
  289. package/dist/services/definitions/qdrant.d.mts +0 -1
  290. package/dist/services/definitions/qdrant.d.mts.map +1 -1
  291. package/dist/services/definitions/qdrant.mjs +76 -2
  292. package/dist/services/definitions/qdrant.mjs.map +1 -0
  293. package/dist/services/definitions/redis.d.mts +0 -1
  294. package/dist/services/definitions/redis.d.mts.map +1 -1
  295. package/dist/services/definitions/redis.mjs +90 -2
  296. package/dist/services/definitions/redis.mjs.map +1 -0
  297. package/dist/services/definitions/remotion.d.mts +0 -1
  298. package/dist/services/definitions/remotion.d.mts.map +1 -1
  299. package/dist/services/definitions/remotion.mjs +54 -2
  300. package/dist/services/definitions/remotion.mjs.map +1 -0
  301. package/dist/services/definitions/rocketchat.d.mts +0 -1
  302. package/dist/services/definitions/rocketchat.d.mts.map +1 -1
  303. package/dist/services/definitions/rocketchat.mjs +56 -2
  304. package/dist/services/definitions/rocketchat.mjs.map +1 -0
  305. package/dist/services/definitions/searxng.d.mts +0 -1
  306. package/dist/services/definitions/searxng.d.mts.map +1 -1
  307. package/dist/services/definitions/searxng.mjs +64 -2
  308. package/dist/services/definitions/searxng.mjs.map +1 -0
  309. package/dist/services/definitions/stable-diffusion.d.mts +0 -1
  310. package/dist/services/definitions/stable-diffusion.d.mts.map +1 -1
  311. package/dist/services/definitions/stable-diffusion.mjs +47 -2
  312. package/dist/services/definitions/stable-diffusion.mjs.map +1 -0
  313. package/dist/services/definitions/steel-browser.d.mts +0 -1
  314. package/dist/services/definitions/steel-browser.d.mts.map +1 -1
  315. package/dist/services/definitions/steel-browser.mjs +76 -2
  316. package/dist/services/definitions/steel-browser.mjs.map +1 -0
  317. package/dist/services/definitions/tailscale.d.mts +0 -1
  318. package/dist/services/definitions/tailscale.d.mts.map +1 -1
  319. package/dist/services/definitions/tailscale.mjs +69 -2
  320. package/dist/services/definitions/tailscale.mjs.map +1 -0
  321. package/dist/services/definitions/temporal.d.mts +0 -1
  322. package/dist/services/definitions/temporal.d.mts.map +1 -1
  323. package/dist/services/definitions/temporal.mjs +99 -2
  324. package/dist/services/definitions/temporal.mjs.map +1 -0
  325. package/dist/services/definitions/traefik.d.mts +0 -1
  326. package/dist/services/definitions/traefik.d.mts.map +1 -1
  327. package/dist/services/definitions/traefik.mjs +57 -2
  328. package/dist/services/definitions/traefik.mjs.map +1 -0
  329. package/dist/services/definitions/umami.d.mts +0 -1
  330. package/dist/services/definitions/umami.d.mts.map +1 -1
  331. package/dist/services/definitions/umami.mjs +45 -2
  332. package/dist/services/definitions/umami.mjs.map +1 -0
  333. package/dist/services/definitions/uptime-kuma.d.mts +0 -1
  334. package/dist/services/definitions/uptime-kuma.d.mts.map +1 -1
  335. package/dist/services/definitions/uptime-kuma.mjs +50 -2
  336. package/dist/services/definitions/uptime-kuma.mjs.map +1 -0
  337. package/dist/services/definitions/usesend.d.mts +7 -0
  338. package/dist/services/definitions/usesend.d.mts.map +1 -0
  339. package/dist/services/definitions/usesend.mjs +99 -0
  340. package/dist/services/definitions/usesend.mjs.map +1 -0
  341. package/dist/services/definitions/valkey.d.mts +0 -1
  342. package/dist/services/definitions/valkey.d.mts.map +1 -1
  343. package/dist/services/definitions/valkey.mjs +60 -2
  344. package/dist/services/definitions/valkey.mjs.map +1 -0
  345. package/dist/services/definitions/watchtower.d.mts +0 -1
  346. package/dist/services/definitions/watchtower.d.mts.map +1 -1
  347. package/dist/services/definitions/watchtower.mjs +46 -2
  348. package/dist/services/definitions/watchtower.mjs.map +1 -0
  349. package/dist/services/definitions/weaviate.d.mts +0 -1
  350. package/dist/services/definitions/weaviate.d.mts.map +1 -1
  351. package/dist/services/definitions/weaviate.mjs +89 -2
  352. package/dist/services/definitions/weaviate.mjs.map +1 -0
  353. package/dist/services/definitions/whisper.d.mts +0 -1
  354. package/dist/services/definitions/whisper.d.mts.map +1 -1
  355. package/dist/services/definitions/whisper.mjs +61 -2
  356. package/dist/services/definitions/whisper.mjs.map +1 -0
  357. package/dist/services/registry.d.mts +0 -1
  358. package/dist/services/registry.d.mts.map +1 -1
  359. package/dist/services/registry.mjs +29 -2
  360. package/dist/services/registry.mjs.map +1 -0
  361. package/dist/services/registry.test.mjs +2 -2
  362. package/dist/skills/registry.d.mts +0 -1
  363. package/dist/skills/registry.d.mts.map +1 -1
  364. package/dist/skills/registry.mjs +214 -2
  365. package/dist/skills/registry.mjs.map +1 -0
  366. package/dist/types.d.mts +1 -1
  367. package/dist/types.d.mts.map +1 -1
  368. package/dist/validator.d.mts +0 -1
  369. package/dist/validator.d.mts.map +1 -1
  370. package/dist/validator.mjs +110 -2
  371. package/dist/validator.mjs.map +1 -0
  372. package/dist/validator.test.mjs +4 -4
  373. package/dist/version-manager.d.mts +0 -1
  374. package/dist/version-manager.d.mts.map +1 -1
  375. package/dist/version-manager.mjs +1 -1
  376. package/dist/{vi.2VT5v0um-Cs3Z_fCB.mjs → vi.2VT5v0um-Qk6MgAnK.mjs} +1183 -1183
  377. package/dist/vi.2VT5v0um-Qk6MgAnK.mjs.map +1 -0
  378. package/package.json +14 -13
  379. package/src/schema.ts +2 -1
  380. package/src/services/definitions/convex-dashboard.ts +48 -0
  381. package/src/services/definitions/convex.ts +123 -0
  382. package/src/services/definitions/index.ts +12 -0
  383. package/src/services/definitions/mission-control.ts +71 -0
  384. package/src/services/definitions/tailscale.ts +2 -0
  385. package/src/services/definitions/usesend.ts +98 -0
  386. package/tsdown.config.ts +1 -0
  387. package/dist/anything-llm-DIIPhz6K.mjs +0 -44
  388. package/dist/anything-llm-DIIPhz6K.mjs.map +0 -1
  389. package/dist/appflowy-DdoE-dKg.mjs +0 -45
  390. package/dist/appflowy-DdoE-dKg.mjs.map +0 -1
  391. package/dist/bare-metal-install-DpYZDoGq.mjs +0 -224
  392. package/dist/bare-metal-install-DpYZDoGq.mjs.map +0 -1
  393. package/dist/bare-metal-partition-CYlOxf9B.mjs +0 -48
  394. package/dist/bare-metal-partition-CYlOxf9B.mjs.map +0 -1
  395. package/dist/beszel-DHAG1zl0.mjs +0 -45
  396. package/dist/beszel-DHAG1zl0.mjs.map +0 -1
  397. package/dist/browserless-gUuvGmMD.mjs +0 -85
  398. package/dist/browserless-gUuvGmMD.mjs.map +0 -1
  399. package/dist/caddy-BJDrqnmw.mjs +0 -77
  400. package/dist/caddy-BJDrqnmw.mjs.map +0 -1
  401. package/dist/caddy-_NIdWKrf.mjs +0 -52
  402. package/dist/caddy-_NIdWKrf.mjs.map +0 -1
  403. package/dist/chromadb-g4rIsfAl.mjs +0 -63
  404. package/dist/chromadb-g4rIsfAl.mjs.map +0 -1
  405. package/dist/claude-code-DPRA1fy_.mjs +0 -52
  406. package/dist/claude-code-DPRA1fy_.mjs.map +0 -1
  407. package/dist/code-server-BdZZxxm5.mjs +0 -66
  408. package/dist/code-server-BdZZxxm5.mjs.map +0 -1
  409. package/dist/codex-DFVzfrfX.mjs +0 -45
  410. package/dist/codex-DFVzfrfX.mjs.map +0 -1
  411. package/dist/composer-CSM5YycB.mjs +0 -287
  412. package/dist/composer-CSM5YycB.mjs.map +0 -1
  413. package/dist/coolify-Z5_zDgM3.mjs +0 -49
  414. package/dist/coolify-Z5_zDgM3.mjs.map +0 -1
  415. package/dist/definitions-BXpb1kzs.mjs +0 -138
  416. package/dist/definitions-BXpb1kzs.mjs.map +0 -1
  417. package/dist/dify-jDc9U6Ku.mjs +0 -81
  418. package/dist/dify-jDc9U6Ku.mjs.map +0 -1
  419. package/dist/docsgpt-BXM1c2JC.mjs +0 -45
  420. package/dist/docsgpt-BXM1c2JC.mjs.map +0 -1
  421. package/dist/dokploy-Ci8_fb0_.mjs +0 -49
  422. package/dist/dokploy-Ci8_fb0_.mjs.map +0 -1
  423. package/dist/dozzle-fAt2sLRL.mjs +0 -41
  424. package/dist/dozzle-fAt2sLRL.mjs.map +0 -1
  425. package/dist/env-D2h46lHT.mjs +0 -250
  426. package/dist/env-D2h46lHT.mjs.map +0 -1
  427. package/dist/ffmpeg-BCtnA8m_.mjs +0 -66
  428. package/dist/ffmpeg-BCtnA8m_.mjs.map +0 -1
  429. package/dist/flowise-CJTTBa7J.mjs +0 -45
  430. package/dist/flowise-CJTTBa7J.mjs.map +0 -1
  431. package/dist/gemini-cli-Bfwv6hYe.mjs +0 -46
  432. package/dist/gemini-cli-Bfwv6hYe.mjs.map +0 -1
  433. package/dist/gitea-BGkqa-sD.mjs +0 -49
  434. package/dist/gitea-BGkqa-sD.mjs.map +0 -1
  435. package/dist/gotify-D7p8oNM3.mjs +0 -62
  436. package/dist/gotify-D7p8oNM3.mjs.map +0 -1
  437. package/dist/grafana-BlnWc6js.mjs +0 -63
  438. package/dist/grafana-BlnWc6js.mjs.map +0 -1
  439. package/dist/grafana-D3kIm8RX.mjs +0 -293
  440. package/dist/grafana-D3kIm8RX.mjs.map +0 -1
  441. package/dist/kimi-BFu1v1sU.mjs +0 -46
  442. package/dist/kimi-BFu1v1sU.mjs.map +0 -1
  443. package/dist/lasuite-meet-agents-nlPhMEaN.mjs +0 -36
  444. package/dist/lasuite-meet-agents-nlPhMEaN.mjs.map +0 -1
  445. package/dist/lasuite-meet-backend-9H7rZ8Pc.mjs +0 -134
  446. package/dist/lasuite-meet-backend-9H7rZ8Pc.mjs.map +0 -1
  447. package/dist/lasuite-meet-frontend-B4xNbnBa.mjs +0 -48
  448. package/dist/lasuite-meet-frontend-B4xNbnBa.mjs.map +0 -1
  449. package/dist/librechat-CoPIHXKK.mjs +0 -50
  450. package/dist/librechat-CoPIHXKK.mjs.map +0 -1
  451. package/dist/lightpanda-QchAPgNX.mjs +0 -59
  452. package/dist/lightpanda-QchAPgNX.mjs.map +0 -1
  453. package/dist/litellm-Dgl6iTry.mjs +0 -47
  454. package/dist/litellm-Dgl6iTry.mjs.map +0 -1
  455. package/dist/livekit-C13SxlVB.mjs +0 -56
  456. package/dist/livekit-C13SxlVB.mjs.map +0 -1
  457. package/dist/magic-string.es-Dew0Rnsa.mjs.map +0 -1
  458. package/dist/matomo-CiOoggYl.mjs +0 -80
  459. package/dist/matomo-CiOoggYl.mjs.map +0 -1
  460. package/dist/matrix-synapse-CP20A7NN.mjs +0 -88
  461. package/dist/matrix-synapse-CP20A7NN.mjs.map +0 -1
  462. package/dist/mattermost-CeFVuhIr.mjs +0 -61
  463. package/dist/mattermost-CeFVuhIr.mjs.map +0 -1
  464. package/dist/meilisearch-CLiQiTdN.mjs +0 -78
  465. package/dist/meilisearch-CLiQiTdN.mjs.map +0 -1
  466. package/dist/minio-_QuguAeo.mjs +0 -102
  467. package/dist/minio-_QuguAeo.mjs.map +0 -1
  468. package/dist/mixpost-eSFPM9XK.mjs +0 -87
  469. package/dist/mixpost-eSFPM9XK.mjs.map +0 -1
  470. package/dist/motion-canvas-Bk1ruvuX.mjs +0 -52
  471. package/dist/motion-canvas-Bk1ruvuX.mjs.map +0 -1
  472. package/dist/n8n-W5qeU34C.mjs +0 -154
  473. package/dist/n8n-W5qeU34C.mjs.map +0 -1
  474. package/dist/n8n-workflows-BPmKVx8z.mjs +0 -75
  475. package/dist/n8n-workflows-BPmKVx8z.mjs.map +0 -1
  476. package/dist/native-services-CwOCM-Xz.mjs +0 -78
  477. package/dist/native-services-CwOCM-Xz.mjs.map +0 -1
  478. package/dist/nocodb-DQNbSYh_.mjs +0 -45
  479. package/dist/nocodb-DQNbSYh_.mjs.map +0 -1
  480. package/dist/ntfy-B8_cZAx2.mjs +0 -63
  481. package/dist/ntfy-B8_cZAx2.mjs.map +0 -1
  482. package/dist/ollama-BiKAypcO.mjs +0 -66
  483. package/dist/ollama-BiKAypcO.mjs.map +0 -1
  484. package/dist/open-webui-DZOG4_xL.mjs +0 -50
  485. package/dist/open-webui-DZOG4_xL.mjs.map +0 -1
  486. package/dist/opencode-Dvfh5KvA.mjs +0 -50
  487. package/dist/opencode-Dvfh5KvA.mjs.map +0 -1
  488. package/dist/openpanel-BuWHhDze.mjs +0 -46
  489. package/dist/openpanel-BuWHhDze.mjs.map +0 -1
  490. package/dist/outline-Dy-YzdYS.mjs +0 -74
  491. package/dist/outline-Dy-YzdYS.mjs.map +0 -1
  492. package/dist/paperless-ngx-DVtWWpKg.mjs +0 -93
  493. package/dist/paperless-ngx-DVtWWpKg.mjs.map +0 -1
  494. package/dist/playwright-server-Boiz8--G.mjs +0 -42
  495. package/dist/playwright-server-Boiz8--G.mjs.map +0 -1
  496. package/dist/portainer-D9MU96UI.mjs +0 -49
  497. package/dist/portainer-D9MU96UI.mjs.map +0 -1
  498. package/dist/postgres-init-BiM-xZtq.mjs +0 -151
  499. package/dist/postgres-init-BiM-xZtq.mjs.map +0 -1
  500. package/dist/postgresql-s65Z9RqR.mjs +0 -84
  501. package/dist/postgresql-s65Z9RqR.mjs.map +0 -1
  502. package/dist/postiz-U6EK23EY.mjs +0 -83
  503. package/dist/postiz-U6EK23EY.mjs.map +0 -1
  504. package/dist/prometheus-WOlk-a1G.mjs +0 -107
  505. package/dist/prometheus-WOlk-a1G.mjs.map +0 -1
  506. package/dist/prometheus-x901F67p.mjs +0 -52
  507. package/dist/prometheus-x901F67p.mjs.map +0 -1
  508. package/dist/qdrant-DZW9uW4e.mjs +0 -77
  509. package/dist/qdrant-DZW9uW4e.mjs.map +0 -1
  510. package/dist/readme-C7M3QE9a.mjs +0 -199
  511. package/dist/readme-C7M3QE9a.mjs.map +0 -1
  512. package/dist/redis-DPMOf237.mjs +0 -91
  513. package/dist/redis-DPMOf237.mjs.map +0 -1
  514. package/dist/registry-CqLarEm5.mjs +0 -30
  515. package/dist/registry-CqLarEm5.mjs.map +0 -1
  516. package/dist/registry-DLX9Q4VQ.mjs +0 -215
  517. package/dist/registry-DLX9Q4VQ.mjs.map +0 -1
  518. package/dist/remotion-COkr0wpr.mjs +0 -55
  519. package/dist/remotion-COkr0wpr.mjs.map +0 -1
  520. package/dist/resolver-Dl5clk-d.mjs +0 -194
  521. package/dist/resolver-Dl5clk-d.mjs.map +0 -1
  522. package/dist/rocketchat-BebQT1MZ.mjs +0 -57
  523. package/dist/rocketchat-BebQT1MZ.mjs.map +0 -1
  524. package/dist/schema-PSUY6yJU.d.mts +0 -700
  525. package/dist/schema-PSUY6yJU.d.mts.map +0 -1
  526. package/dist/scripts-DsljWbP4.mjs +0 -351
  527. package/dist/scripts-DsljWbP4.mjs.map +0 -1
  528. package/dist/searxng-tJpBkchC.mjs +0 -65
  529. package/dist/searxng-tJpBkchC.mjs.map +0 -1
  530. package/dist/skills-DWG72Y3X.mjs +0 -587
  531. package/dist/skills-DWG72Y3X.mjs.map +0 -1
  532. package/dist/stable-diffusion-BulAzkyT.mjs +0 -48
  533. package/dist/stable-diffusion-BulAzkyT.mjs.map +0 -1
  534. package/dist/steel-browser-Cc0bYBjM.mjs +0 -77
  535. package/dist/steel-browser-Cc0bYBjM.mjs.map +0 -1
  536. package/dist/tailscale-CrM4EZlF.mjs +0 -69
  537. package/dist/tailscale-CrM4EZlF.mjs.map +0 -1
  538. package/dist/temporal-49gA0msh.mjs +0 -100
  539. package/dist/temporal-49gA0msh.mjs.map +0 -1
  540. package/dist/traefik-Da-c1f55.mjs +0 -58
  541. package/dist/traefik-Da-c1f55.mjs.map +0 -1
  542. package/dist/umami-csBSsHqO.mjs +0 -46
  543. package/dist/umami-csBSsHqO.mjs.map +0 -1
  544. package/dist/uptime-kuma-D0NvVuXD.mjs +0 -51
  545. package/dist/uptime-kuma-D0NvVuXD.mjs.map +0 -1
  546. package/dist/validator-2FspYNva.mjs +0 -111
  547. package/dist/validator-2FspYNva.mjs.map +0 -1
  548. package/dist/valkey-BCZqGJ0L.mjs +0 -61
  549. package/dist/valkey-BCZqGJ0L.mjs.map +0 -1
  550. package/dist/vi.2VT5v0um-Cs3Z_fCB.mjs.map +0 -1
  551. package/dist/watchtower-BWuvFGpA.mjs +0 -47
  552. package/dist/watchtower-BWuvFGpA.mjs.map +0 -1
  553. package/dist/weaviate-DttY1Hn7.mjs +0 -90
  554. package/dist/weaviate-DttY1Hn7.mjs.map +0 -1
  555. package/dist/whisper-CLu7-Vd8.mjs +0 -62
  556. package/dist/whisper-CLu7-Vd8.mjs.map +0 -1
@@ -1,77 +0,0 @@
1
- //#region src/services/definitions/steel-browser.ts
2
- const steelBrowserDefinition = {
3
- id: "steel-browser",
4
- name: "Steel Browser",
5
- description: "Open-source browser API for AI agents. Full session management, anti-detection, proxy support, CAPTCHA solving, and compatibility with Puppeteer, Playwright, and Selenium.",
6
- category: "browser",
7
- icon: "🔥",
8
- image: "ghcr.io/steel-dev/steel-browser",
9
- imageTag: "latest",
10
- ports: [{
11
- host: 3070,
12
- container: 3e3,
13
- description: "Steel Browser REST API",
14
- exposed: true
15
- }, {
16
- host: 9223,
17
- container: 9223,
18
- description: "CDP debugger",
19
- exposed: true
20
- }],
21
- volumes: [],
22
- environment: [{
23
- key: "STEEL_LOG_LEVEL",
24
- defaultValue: "info",
25
- secret: false,
26
- description: "Steel Browser log level",
27
- required: false
28
- }],
29
- healthcheck: {
30
- test: "wget -q --spider http://localhost:3000/health || exit 1",
31
- interval: "30s",
32
- timeout: "10s",
33
- retries: 3,
34
- startPeriod: "15s"
35
- },
36
- dependsOn: [],
37
- restartPolicy: "unless-stopped",
38
- networks: ["openclaw-network"],
39
- skills: [{
40
- skillId: "steel-browse",
41
- autoInstall: true
42
- }],
43
- openclawEnvVars: [{
44
- key: "STEEL_HOST",
45
- defaultValue: "steel-browser",
46
- secret: false,
47
- description: "Steel Browser hostname for OpenClaw",
48
- required: true
49
- }, {
50
- key: "STEEL_PORT",
51
- defaultValue: "3070",
52
- secret: false,
53
- description: "Steel Browser API port for OpenClaw",
54
- required: true
55
- }],
56
- docsUrl: "https://docs.steel.dev/",
57
- tags: [
58
- "browser-api",
59
- "ai-agents",
60
- "anti-detection",
61
- "sessions",
62
- "puppeteer",
63
- "playwright",
64
- "selenium",
65
- "captcha"
66
- ],
67
- maturity: "stable",
68
- requires: [],
69
- recommends: [],
70
- conflictsWith: [],
71
- minMemoryMB: 512,
72
- gpuRequired: false
73
- };
74
-
75
- //#endregion
76
- export { steelBrowserDefinition as t };
77
- //# sourceMappingURL=steel-browser-Cc0bYBjM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"steel-browser-Cc0bYBjM.mjs","names":[],"sources":["../src/services/definitions/steel-browser.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const steelBrowserDefinition: ServiceDefinition = {\n\tid: \"steel-browser\",\n\tname: \"Steel Browser\",\n\tdescription:\n\t\t\"Open-source browser API for AI agents. Full session management, anti-detection, proxy support, CAPTCHA solving, and compatibility with Puppeteer, Playwright, and Selenium.\",\n\tcategory: \"browser\",\n\ticon: \"🔥\",\n\timage: \"ghcr.io/steel-dev/steel-browser\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{ host: 3070, container: 3000, description: \"Steel Browser REST API\", exposed: true },\n\t\t{ host: 9223, container: 9223, description: \"CDP debugger\", exposed: true },\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"STEEL_LOG_LEVEL\",\n\t\t\tdefaultValue: \"info\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Steel Browser log level\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3000/health || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\tskills: [{ skillId: \"steel-browse\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"STEEL_HOST\",\n\t\t\tdefaultValue: \"steel-browser\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Steel Browser hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"STEEL_PORT\",\n\t\t\tdefaultValue: \"3070\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Steel Browser API port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\tdocsUrl: \"https://docs.steel.dev/\",\n\ttags: [\n\t\t\"browser-api\",\n\t\t\"ai-agents\",\n\t\t\"anti-detection\",\n\t\t\"sessions\",\n\t\t\"puppeteer\",\n\t\t\"playwright\",\n\t\t\"selenium\",\n\t\t\"captcha\",\n\t],\n\tmaturity: \"stable\",\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,yBAA4C;CACxD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CACN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EAAE,MAAM;EAAM,WAAW;EAAM,aAAa;EAA0B,SAAS;EAAM,EACrF;EAAE,MAAM;EAAM,WAAW;EAAM,aAAa;EAAgB,SAAS;EAAM,CAC3E;CACD,SAAS,EAAE;CACX,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAC9B,QAAQ,CAAC;EAAE,SAAS;EAAgB,aAAa;EAAM,CAAC;CACxD,iBAAiB,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,SAAS;CACT,MAAM;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,UAAU;CACV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CACjB,aAAa;CACb,aAAa;CACb"}
@@ -1,69 +0,0 @@
1
- //#region src/services/definitions/tailscale.ts
2
- const tailscaleDefinition = {
3
- id: "tailscale",
4
- name: "Tailscale",
5
- description: "Zero-config VPN and secure mesh network for private access to your stack. Uses WireGuard; connect devices and users without opening ports.",
6
- category: "dev-tools",
7
- icon: "🔒",
8
- image: "tailscale/tailscale",
9
- imageTag: "latest",
10
- ports: [],
11
- volumes: [{
12
- name: "tailscale-state",
13
- containerPath: "/var/lib",
14
- description: "Tailscale state and identity"
15
- }],
16
- environment: [
17
- {
18
- key: "TS_AUTHKEY",
19
- defaultValue: "",
20
- secret: true,
21
- description: "Auth key for headless login (create at admin.tailscale.com)",
22
- required: true
23
- },
24
- {
25
- key: "TS_HOSTNAME",
26
- defaultValue: "openclaw-tailscale",
27
- secret: false,
28
- description: "Hostname for this node in the Tailscale network",
29
- required: false
30
- },
31
- {
32
- key: "TS_ACCEPT_DNS",
33
- defaultValue: "true",
34
- secret: false,
35
- description: "Accept DNS configuration from Tailscale",
36
- required: false
37
- },
38
- {
39
- key: "TS_AUTH_ONCE",
40
- defaultValue: "true",
41
- secret: false,
42
- description: "Exit after initial auth (for ephemeral nodes)",
43
- required: false
44
- }
45
- ],
46
- dependsOn: [],
47
- restartPolicy: "unless-stopped",
48
- networks: ["openclaw-network"],
49
- skills: [],
50
- openclawEnvVars: [],
51
- docsUrl: "https://tailscale.com/kb/1282/docker",
52
- tags: [
53
- "vpn",
54
- "wireguard",
55
- "networking",
56
- "secure-access"
57
- ],
58
- maturity: "stable",
59
- requires: [],
60
- recommends: [],
61
- conflictsWith: [],
62
- mandatory: true,
63
- minMemoryMB: 64,
64
- gpuRequired: false
65
- };
66
-
67
- //#endregion
68
- export { tailscaleDefinition as t };
69
- //# sourceMappingURL=tailscale-CrM4EZlF.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tailscale-CrM4EZlF.mjs","names":[],"sources":["../src/services/definitions/tailscale.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const tailscaleDefinition: ServiceDefinition = {\n\tid: \"tailscale\",\n\tname: \"Tailscale\",\n\tdescription:\n\t\t\"Zero-config VPN and secure mesh network for private access to your stack. Uses WireGuard; connect devices and users without opening ports.\",\n\tcategory: \"dev-tools\",\n\ticon: \"🔒\",\n\n\timage: \"tailscale/tailscale\",\n\timageTag: \"latest\",\n\tports: [],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"tailscale-state\",\n\t\t\tcontainerPath: \"/var/lib\",\n\t\t\tdescription: \"Tailscale state and identity\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"TS_AUTHKEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Auth key for headless login (create at admin.tailscale.com)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"TS_HOSTNAME\",\n\t\t\tdefaultValue: \"openclaw-tailscale\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Hostname for this node in the Tailscale network\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"TS_ACCEPT_DNS\",\n\t\t\tdefaultValue: \"true\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Accept DNS configuration from Tailscale\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"TS_AUTH_ONCE\",\n\t\t\tdefaultValue: \"true\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Exit after initial auth (for ephemeral nodes)\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://tailscale.com/kb/1282/docker\",\n\ttags: [\"vpn\", \"wireguard\", \"networking\", \"secure-access\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\tmandatory: true,\n\n\tminMemoryMB: 64,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,sBAAyC;CACrD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,EAAE;CACT,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa;EACZ;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAO;EAAa;EAAc;EAAgB;CACzD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CACjB,WAAW;CAEX,aAAa;CACb,aAAa;CACb"}
@@ -1,100 +0,0 @@
1
- //#region src/services/definitions/temporal.ts
2
- const temporalDefinition = {
3
- id: "temporal",
4
- name: "Temporal",
5
- description: "Durable workflow execution platform for long-running, reliable tasks. OpenClaw can trigger and monitor Temporal workflows for complex multi-step operations.",
6
- category: "automation",
7
- icon: "⏱️",
8
- image: "temporalio/auto-setup",
9
- imageTag: "latest",
10
- ports: [{
11
- host: 7233,
12
- container: 7233,
13
- description: "Temporal gRPC frontend",
14
- exposed: true
15
- }, {
16
- host: 8233,
17
- container: 8233,
18
- description: "Temporal Web UI",
19
- exposed: true
20
- }],
21
- volumes: [],
22
- environment: [
23
- {
24
- key: "DB",
25
- defaultValue: "postgresql",
26
- secret: false,
27
- description: "Database type for Temporal persistence",
28
- required: true
29
- },
30
- {
31
- key: "DB_PORT",
32
- defaultValue: "5432",
33
- secret: false,
34
- description: "Database port",
35
- required: true
36
- },
37
- {
38
- key: "POSTGRES_USER",
39
- defaultValue: "temporal",
40
- secret: false,
41
- description: "PostgreSQL user for Temporal",
42
- required: true
43
- },
44
- {
45
- key: "POSTGRES_PWD",
46
- defaultValue: "${TEMPORAL_DB_PASSWORD}",
47
- secret: true,
48
- description: "PostgreSQL password for Temporal",
49
- required: true
50
- },
51
- {
52
- key: "POSTGRES_SEEDS",
53
- defaultValue: "postgresql",
54
- secret: false,
55
- description: "PostgreSQL host(s) for Temporal",
56
- required: true
57
- }
58
- ],
59
- healthcheck: {
60
- test: "temporal operator cluster health || exit 1",
61
- interval: "30s",
62
- timeout: "10s",
63
- retries: 5,
64
- startPeriod: "60s"
65
- },
66
- dependsOn: ["postgresql"],
67
- restartPolicy: "unless-stopped",
68
- networks: ["openclaw-network"],
69
- skills: [],
70
- openclawEnvVars: [{
71
- key: "TEMPORAL_HOST",
72
- defaultValue: "temporal",
73
- secret: false,
74
- description: "Temporal server hostname for OpenClaw",
75
- required: true
76
- }, {
77
- key: "TEMPORAL_PORT",
78
- defaultValue: "7233",
79
- secret: false,
80
- description: "Temporal gRPC port for OpenClaw",
81
- required: true
82
- }],
83
- docsUrl: "https://docs.temporal.io/",
84
- tags: [
85
- "workflow",
86
- "durable-execution",
87
- "orchestration",
88
- "long-running-tasks"
89
- ],
90
- maturity: "beta",
91
- requires: ["postgresql"],
92
- recommends: [],
93
- conflictsWith: [],
94
- minMemoryMB: 512,
95
- gpuRequired: false
96
- };
97
-
98
- //#endregion
99
- export { temporalDefinition as t };
100
- //# sourceMappingURL=temporal-49gA0msh.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporal-49gA0msh.mjs","names":[],"sources":["../src/services/definitions/temporal.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const temporalDefinition: ServiceDefinition = {\n\tid: \"temporal\",\n\tname: \"Temporal\",\n\tdescription:\n\t\t\"Durable workflow execution platform for long-running, reliable tasks. OpenClaw can trigger and monitor Temporal workflows for complex multi-step operations.\",\n\tcategory: \"automation\",\n\ticon: \"⏱️\",\n\n\timage: \"temporalio/auto-setup\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 7233,\n\t\t\tcontainer: 7233,\n\t\t\tdescription: \"Temporal gRPC frontend\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 8233,\n\t\t\tcontainer: 8233,\n\t\t\tdescription: \"Temporal Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"DB\",\n\t\t\tdefaultValue: \"postgresql\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Database type for Temporal persistence\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"DB_PORT\",\n\t\t\tdefaultValue: \"5432\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Database port\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"POSTGRES_USER\",\n\t\t\tdefaultValue: \"temporal\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL user for Temporal\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"POSTGRES_PWD\",\n\t\t\tdefaultValue: \"${TEMPORAL_DB_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"PostgreSQL password for Temporal\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"POSTGRES_SEEDS\",\n\t\t\tdefaultValue: \"postgresql\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL host(s) for Temporal\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"temporal operator cluster health || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 5,\n\t\tstartPeriod: \"60s\",\n\t},\n\tdependsOn: [\"postgresql\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"TEMPORAL_HOST\",\n\t\t\tdefaultValue: \"temporal\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Temporal server hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"TEMPORAL_PORT\",\n\t\t\tdefaultValue: \"7233\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Temporal gRPC port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://docs.temporal.io/\",\n\ttags: [\"workflow\", \"durable-execution\", \"orchestration\", \"long-running-tasks\"],\n\tmaturity: \"beta\",\n\n\trequires: [\"postgresql\"],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,qBAAwC;CACpD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,EACD;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa;EACZ;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,CAAC,aAAa;CACzB,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CAED,SAAS;CACT,MAAM;EAAC;EAAY;EAAqB;EAAiB;EAAqB;CAC9E,UAAU;CAEV,UAAU,CAAC,aAAa;CACxB,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -1,58 +0,0 @@
1
- //#region src/services/definitions/traefik.ts
2
- const traefikDefinition = {
3
- id: "traefik",
4
- name: "Traefik",
5
- description: "Cloud-native reverse proxy and load balancer with automatic service discovery, Let's Encrypt integration, and a built-in dashboard.",
6
- category: "proxy",
7
- icon: "🔀",
8
- image: "traefik",
9
- imageTag: "v3.3",
10
- ports: [
11
- {
12
- host: 80,
13
- container: 80,
14
- description: "HTTP entrypoint",
15
- exposed: true
16
- },
17
- {
18
- host: 443,
19
- container: 443,
20
- description: "HTTPS entrypoint",
21
- exposed: true
22
- },
23
- {
24
- host: 8085,
25
- container: 8080,
26
- description: "Traefik dashboard",
27
- exposed: true
28
- }
29
- ],
30
- volumes: [{
31
- name: "traefik-certs",
32
- containerPath: "/letsencrypt",
33
- description: "Let's Encrypt certificate storage"
34
- }],
35
- environment: [],
36
- command: "--api.dashboard=true --providers.docker=true --entrypoints.web.address=:80 --entrypoints.websecure.address=:443",
37
- dependsOn: [],
38
- restartPolicy: "unless-stopped",
39
- networks: ["openclaw-network"],
40
- skills: [],
41
- openclawEnvVars: [],
42
- docsUrl: "https://doc.traefik.io/traefik/",
43
- tags: [
44
- "reverse-proxy",
45
- "load-balancer",
46
- "service-discovery"
47
- ],
48
- maturity: "stable",
49
- requires: [],
50
- recommends: [],
51
- conflictsWith: ["caddy"],
52
- minMemoryMB: 64,
53
- gpuRequired: false
54
- };
55
-
56
- //#endregion
57
- export { traefikDefinition as t };
58
- //# sourceMappingURL=traefik-Da-c1f55.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traefik-Da-c1f55.mjs","names":[],"sources":["../src/services/definitions/traefik.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const traefikDefinition: ServiceDefinition = {\n\tid: \"traefik\",\n\tname: \"Traefik\",\n\tdescription:\n\t\t\"Cloud-native reverse proxy and load balancer with automatic service discovery, Let's Encrypt integration, and a built-in dashboard.\",\n\tcategory: \"proxy\",\n\ticon: \"🔀\",\n\n\timage: \"traefik\",\n\timageTag: \"v3.3\",\n\tports: [\n\t\t{\n\t\t\thost: 80,\n\t\t\tcontainer: 80,\n\t\t\tdescription: \"HTTP entrypoint\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 443,\n\t\t\tcontainer: 443,\n\t\t\tdescription: \"HTTPS entrypoint\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 8085,\n\t\t\tcontainer: 8080,\n\t\t\tdescription: \"Traefik dashboard\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"traefik-certs\",\n\t\t\tcontainerPath: \"/letsencrypt\",\n\t\t\tdescription: \"Let's Encrypt certificate storage\",\n\t\t},\n\t],\n\tenvironment: [],\n\tcommand:\n\t\t\"--api.dashboard=true --providers.docker=true --entrypoints.web.address=:80 --entrypoints.websecure.address=:443\",\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://doc.traefik.io/traefik/\",\n\ttags: [\"reverse-proxy\", \"load-balancer\", \"service-discovery\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [\"caddy\"],\n\n\tminMemoryMB: 64,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,oBAAuC;CACnD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO;EACN;GACC,MAAM;GACN,WAAW;GACX,aAAa;GACb,SAAS;GACT;EACD;GACC,MAAM;GACN,WAAW;GACX,aAAa;GACb,SAAS;GACT;EACD;GACC,MAAM;GACN,WAAW;GACX,aAAa;GACb,SAAS;GACT;EACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,EAAE;CACf,SACC;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAiB;EAAiB;EAAoB;CAC7D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,CAAC,QAAQ;CAExB,aAAa;CACb,aAAa;CACb"}
@@ -1,46 +0,0 @@
1
- //#region src/services/definitions/umami.ts
2
- const umamiDefinition = {
3
- id: "umami",
4
- name: "Umami",
5
- description: "Simple, fast, privacy-focused alternative to Google Analytics. Lightweight and easy to deploy with a clean, modern dashboard.",
6
- category: "analytics",
7
- icon: "📈",
8
- image: "ghcr.io/umami-software/umami",
9
- imageTag: "postgresql-latest",
10
- ports: [{
11
- host: 3050,
12
- container: 3e3,
13
- description: "Umami Web UI",
14
- exposed: true
15
- }],
16
- volumes: [],
17
- environment: [{
18
- key: "DATABASE_URL",
19
- defaultValue: "postgresql://umami:${UMAMI_DB_PASSWORD}@postgresql:5432/umami",
20
- secret: false,
21
- description: "PostgreSQL connection string for Umami",
22
- required: true
23
- }],
24
- dependsOn: ["postgresql"],
25
- restartPolicy: "unless-stopped",
26
- networks: ["openclaw-network"],
27
- skills: [],
28
- openclawEnvVars: [],
29
- docsUrl: "https://umami.is/docs",
30
- tags: [
31
- "analytics",
32
- "privacy",
33
- "web-analytics",
34
- "lightweight"
35
- ],
36
- maturity: "stable",
37
- requires: ["postgresql"],
38
- recommends: [],
39
- conflictsWith: [],
40
- minMemoryMB: 128,
41
- gpuRequired: false
42
- };
43
-
44
- //#endregion
45
- export { umamiDefinition as t };
46
- //# sourceMappingURL=umami-csBSsHqO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"umami-csBSsHqO.mjs","names":[],"sources":["../src/services/definitions/umami.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const umamiDefinition: ServiceDefinition = {\n\tid: \"umami\",\n\tname: \"Umami\",\n\tdescription:\n\t\t\"Simple, fast, privacy-focused alternative to Google Analytics. Lightweight and easy to deploy with a clean, modern dashboard.\",\n\tcategory: \"analytics\",\n\ticon: \"📈\",\n\n\timage: \"ghcr.io/umami-software/umami\",\n\timageTag: \"postgresql-latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3050,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Umami Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"DATABASE_URL\",\n\t\t\tdefaultValue: \"postgresql://umami:${UMAMI_DB_PASSWORD}@postgresql:5432/umami\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL connection string for Umami\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\tdependsOn: [\"postgresql\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://umami.is/docs\",\n\ttags: [\"analytics\", \"privacy\", \"web-analytics\", \"lightweight\"],\n\tmaturity: \"stable\",\n\n\trequires: [\"postgresql\"],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 128,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,kBAAqC;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,WAAW,CAAC,aAAa;CACzB,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAa;EAAW;EAAiB;EAAc;CAC9D,UAAU;CAEV,UAAU,CAAC,aAAa;CACxB,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -1,51 +0,0 @@
1
- //#region src/services/definitions/uptime-kuma.ts
2
- const uptimeKumaDefinition = {
3
- id: "uptime-kuma",
4
- name: "Uptime Kuma",
5
- description: "Self-hosted monitoring tool for tracking uptime of websites, APIs, and services with a sleek dashboard and multi-notification support.",
6
- category: "monitoring",
7
- icon: "📡",
8
- image: "louislam/uptime-kuma",
9
- imageTag: "1",
10
- ports: [{
11
- host: 3001,
12
- container: 3001,
13
- description: "Uptime Kuma web interface",
14
- exposed: true
15
- }],
16
- volumes: [{
17
- name: "uptime-kuma-data",
18
- containerPath: "/app/data",
19
- description: "Persistent Uptime Kuma data and configuration"
20
- }],
21
- environment: [],
22
- healthcheck: {
23
- test: "wget -q --spider http://localhost:3001 || exit 1",
24
- interval: "30s",
25
- timeout: "10s",
26
- retries: 3,
27
- startPeriod: "15s"
28
- },
29
- dependsOn: [],
30
- restartPolicy: "unless-stopped",
31
- networks: ["openclaw-network"],
32
- skills: [],
33
- openclawEnvVars: [],
34
- docsUrl: "https://github.com/louislam/uptime-kuma/wiki",
35
- tags: [
36
- "uptime",
37
- "monitoring",
38
- "status-page",
39
- "alerts"
40
- ],
41
- maturity: "stable",
42
- requires: [],
43
- recommends: [],
44
- conflictsWith: [],
45
- minMemoryMB: 256,
46
- gpuRequired: false
47
- };
48
-
49
- //#endregion
50
- export { uptimeKumaDefinition as t };
51
- //# sourceMappingURL=uptime-kuma-D0NvVuXD.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uptime-kuma-D0NvVuXD.mjs","names":[],"sources":["../src/services/definitions/uptime-kuma.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const uptimeKumaDefinition: ServiceDefinition = {\n\tid: \"uptime-kuma\",\n\tname: \"Uptime Kuma\",\n\tdescription:\n\t\t\"Self-hosted monitoring tool for tracking uptime of websites, APIs, and services with a sleek dashboard and multi-notification support.\",\n\tcategory: \"monitoring\",\n\ticon: \"📡\",\n\n\timage: \"louislam/uptime-kuma\",\n\timageTag: \"1\",\n\tports: [\n\t\t{\n\t\t\thost: 3001,\n\t\t\tcontainer: 3001,\n\t\t\tdescription: \"Uptime Kuma web interface\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"uptime-kuma-data\",\n\t\t\tcontainerPath: \"/app/data\",\n\t\t\tdescription: \"Persistent Uptime Kuma data and configuration\",\n\t\t},\n\t],\n\tenvironment: [],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3001 || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://github.com/louislam/uptime-kuma/wiki\",\n\ttags: [\"uptime\", \"monitoring\", \"status-page\", \"alerts\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,uBAA0C;CACtD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,EAAE;CACf,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAU;EAAc;EAAe;EAAS;CACvD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -1,111 +0,0 @@
1
- import { parse } from "yaml";
2
-
3
- //#region src/validator.ts
4
- /**
5
- * Validates a complete generated stack before writing files.
6
- * Checks for port conflicts, volume uniqueness, env completeness,
7
- * dependency ordering, YAML validity, and more.
8
- */
9
- function validate(resolved, composedYaml, options = {}) {
10
- const errors = [];
11
- const warnings = [];
12
- checkPortConflicts(resolved, errors);
13
- checkVolumeUniqueness(resolved, errors);
14
- checkEnvCompleteness(resolved, errors, warnings, options.generateSecrets ?? true);
15
- checkNetworkConsistency(resolved, warnings);
16
- checkDependencyDAG(resolved, errors);
17
- checkYamlValidity(composedYaml, errors);
18
- if (options.domain) checkDomainFormat(options.domain, errors);
19
- return {
20
- valid: errors.length === 0,
21
- errors,
22
- warnings
23
- };
24
- }
25
- function checkPortConflicts(resolved, errors) {
26
- const hostPorts = /* @__PURE__ */ new Map();
27
- for (const svc of resolved.services) for (const port of svc.definition.ports) {
28
- if (!port.exposed) continue;
29
- const existing = hostPorts.get(port.host);
30
- if (existing) errors.push({
31
- type: "port_conflict",
32
- message: `Port ${port.host} is used by both "${existing}" and "${svc.definition.name}"`
33
- });
34
- else hostPorts.set(port.host, svc.definition.name);
35
- }
36
- }
37
- function checkVolumeUniqueness(resolved, errors) {
38
- const volumeNames = /* @__PURE__ */ new Map();
39
- for (const svc of resolved.services) for (const vol of svc.definition.volumes) {
40
- const existing = volumeNames.get(vol.name);
41
- if (existing && existing !== svc.definition.id) errors.push({
42
- type: "volume_conflict",
43
- message: `Volume name "${vol.name}" is used by both "${existing}" and "${svc.definition.id}"`
44
- });
45
- else volumeNames.set(vol.name, svc.definition.id);
46
- }
47
- }
48
- function checkEnvCompleteness(resolved, errors, warnings, generateSecrets) {
49
- for (const svc of resolved.services) for (const envVar of svc.definition.environment) {
50
- if (envVar.required && !envVar.defaultValue && !envVar.secret) errors.push({
51
- type: "missing_env",
52
- message: `Required environment variable "${envVar.key}" for "${svc.definition.name}" has no default value`
53
- });
54
- if (envVar.secret && !generateSecrets && !envVar.defaultValue) warnings.push({
55
- type: "secret_needed",
56
- message: `Secret "${envVar.key}" for "${svc.definition.name}" needs to be configured manually`
57
- });
58
- }
59
- }
60
- function checkNetworkConsistency(resolved, warnings) {
61
- for (const svc of resolved.services) if (!svc.definition.networks.includes("openclaw-network")) warnings.push({
62
- type: "network",
63
- message: `Service "${svc.definition.name}" is not on openclaw-network — it may not be reachable from OpenClaw`
64
- });
65
- }
66
- function checkDependencyDAG(resolved, errors) {
67
- const ids = new Set(resolved.services.map((s) => s.definition.id));
68
- const visited = /* @__PURE__ */ new Set();
69
- const inStack = /* @__PURE__ */ new Set();
70
- const adjList = /* @__PURE__ */ new Map();
71
- for (const svc of resolved.services) {
72
- const deps = [...svc.definition.requires, ...svc.definition.dependsOn].filter((d) => ids.has(d));
73
- adjList.set(svc.definition.id, deps);
74
- }
75
- function hasCycle(node) {
76
- if (inStack.has(node)) return true;
77
- if (visited.has(node)) return false;
78
- visited.add(node);
79
- inStack.add(node);
80
- for (const dep of adjList.get(node) ?? []) if (hasCycle(dep)) return true;
81
- inStack.delete(node);
82
- return false;
83
- }
84
- for (const id of ids) if (hasCycle(id)) {
85
- errors.push({
86
- type: "cycle",
87
- message: `Circular dependency detected involving "${id}"`
88
- });
89
- break;
90
- }
91
- }
92
- function checkYamlValidity(yaml, errors) {
93
- try {
94
- parse(yaml);
95
- } catch (e) {
96
- errors.push({
97
- type: "yaml_invalid",
98
- message: `Generated YAML is not valid: ${e instanceof Error ? e.message : String(e)}`
99
- });
100
- }
101
- }
102
- function checkDomainFormat(domain, errors) {
103
- if (!/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/.test(domain)) errors.push({
104
- type: "invalid_domain",
105
- message: `"${domain}" is not a valid domain name`
106
- });
107
- }
108
-
109
- //#endregion
110
- export { validate as t };
111
- //# sourceMappingURL=validator-2FspYNva.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator-2FspYNva.mjs","names":[],"sources":["../src/validator.ts"],"sourcesContent":["import { parse } from \"yaml\";\nimport type { ResolverError, ResolverOutput, Warning } from \"./types.js\";\n\nexport interface ValidationResult {\n\tvalid: boolean;\n\terrors: ResolverError[];\n\twarnings: Warning[];\n}\n\n/**\n * Validates a complete generated stack before writing files.\n * Checks for port conflicts, volume uniqueness, env completeness,\n * dependency ordering, YAML validity, and more.\n */\nexport function validate(\n\tresolved: ResolverOutput,\n\tcomposedYaml: string,\n\toptions: { domain?: string; generateSecrets?: boolean } = {},\n): ValidationResult {\n\tconst errors: ResolverError[] = [];\n\tconst warnings: Warning[] = [];\n\n\tcheckPortConflicts(resolved, errors);\n\tcheckVolumeUniqueness(resolved, errors);\n\tcheckEnvCompleteness(resolved, errors, warnings, options.generateSecrets ?? true);\n\tcheckNetworkConsistency(resolved, warnings);\n\tcheckDependencyDAG(resolved, errors);\n\tcheckYamlValidity(composedYaml, errors);\n\n\tif (options.domain) {\n\t\tcheckDomainFormat(options.domain, errors);\n\t}\n\n\treturn {\n\t\tvalid: errors.length === 0,\n\t\terrors,\n\t\twarnings,\n\t};\n}\n\nfunction checkPortConflicts(resolved: ResolverOutput, errors: ResolverError[]): void {\n\tconst hostPorts = new Map<number, string>();\n\tfor (const svc of resolved.services) {\n\t\tfor (const port of svc.definition.ports) {\n\t\t\tif (!port.exposed) continue;\n\t\t\tconst existing = hostPorts.get(port.host);\n\t\t\tif (existing) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"port_conflict\",\n\t\t\t\t\tmessage: `Port ${port.host} is used by both \"${existing}\" and \"${svc.definition.name}\"`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\thostPorts.set(port.host, svc.definition.name);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkVolumeUniqueness(resolved: ResolverOutput, errors: ResolverError[]): void {\n\tconst volumeNames = new Map<string, string>();\n\tfor (const svc of resolved.services) {\n\t\tfor (const vol of svc.definition.volumes) {\n\t\t\tconst existing = volumeNames.get(vol.name);\n\t\t\tif (existing && existing !== svc.definition.id) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"volume_conflict\",\n\t\t\t\t\tmessage: `Volume name \"${vol.name}\" is used by both \"${existing}\" and \"${svc.definition.id}\"`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvolumeNames.set(vol.name, svc.definition.id);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkEnvCompleteness(\n\tresolved: ResolverOutput,\n\terrors: ResolverError[],\n\twarnings: Warning[],\n\tgenerateSecrets: boolean,\n): void {\n\tfor (const svc of resolved.services) {\n\t\tfor (const envVar of svc.definition.environment) {\n\t\t\tif (envVar.required && !envVar.defaultValue && !envVar.secret) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"missing_env\",\n\t\t\t\t\tmessage: `Required environment variable \"${envVar.key}\" for \"${svc.definition.name}\" has no default value`,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (envVar.secret && !generateSecrets && !envVar.defaultValue) {\n\t\t\t\twarnings.push({\n\t\t\t\t\ttype: \"secret_needed\",\n\t\t\t\t\tmessage: `Secret \"${envVar.key}\" for \"${svc.definition.name}\" needs to be configured manually`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkNetworkConsistency(resolved: ResolverOutput, warnings: Warning[]): void {\n\tfor (const svc of resolved.services) {\n\t\tif (!svc.definition.networks.includes(\"openclaw-network\")) {\n\t\t\twarnings.push({\n\t\t\t\ttype: \"network\",\n\t\t\t\tmessage: `Service \"${svc.definition.name}\" is not on openclaw-network — it may not be reachable from OpenClaw`,\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction checkDependencyDAG(resolved: ResolverOutput, errors: ResolverError[]): void {\n\tconst ids = new Set(resolved.services.map((s) => s.definition.id));\n\tconst visited = new Set<string>();\n\tconst inStack = new Set<string>();\n\n\tconst adjList = new Map<string, string[]>();\n\tfor (const svc of resolved.services) {\n\t\tconst deps = [...svc.definition.requires, ...svc.definition.dependsOn].filter((d) =>\n\t\t\tids.has(d),\n\t\t);\n\t\tadjList.set(svc.definition.id, deps);\n\t}\n\n\tfunction hasCycle(node: string): boolean {\n\t\tif (inStack.has(node)) return true;\n\t\tif (visited.has(node)) return false;\n\t\tvisited.add(node);\n\t\tinStack.add(node);\n\t\tfor (const dep of adjList.get(node) ?? []) {\n\t\t\tif (hasCycle(dep)) return true;\n\t\t}\n\t\tinStack.delete(node);\n\t\treturn false;\n\t}\n\n\tfor (const id of ids) {\n\t\tif (hasCycle(id)) {\n\t\t\terrors.push({\n\t\t\t\ttype: \"cycle\",\n\t\t\t\tmessage: `Circular dependency detected involving \"${id}\"`,\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nfunction checkYamlValidity(yaml: string, errors: ResolverError[]): void {\n\ttry {\n\t\tparse(yaml);\n\t} catch (e) {\n\t\terrors.push({\n\t\t\ttype: \"yaml_invalid\",\n\t\t\tmessage: `Generated YAML is not valid: ${e instanceof Error ? e.message : String(e)}`,\n\t\t});\n\t}\n}\n\nfunction checkDomainFormat(domain: string, errors: ResolverError[]): void {\n\tconst domainRegex = /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n\tif (!domainRegex.test(domain)) {\n\t\terrors.push({\n\t\t\ttype: \"invalid_domain\",\n\t\t\tmessage: `\"${domain}\" is not a valid domain name`,\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;AAcA,SAAgB,SACf,UACA,cACA,UAA0D,EAAE,EACzC;CACnB,MAAM,SAA0B,EAAE;CAClC,MAAM,WAAsB,EAAE;AAE9B,oBAAmB,UAAU,OAAO;AACpC,uBAAsB,UAAU,OAAO;AACvC,sBAAqB,UAAU,QAAQ,UAAU,QAAQ,mBAAmB,KAAK;AACjF,yBAAwB,UAAU,SAAS;AAC3C,oBAAmB,UAAU,OAAO;AACpC,mBAAkB,cAAc,OAAO;AAEvC,KAAI,QAAQ,OACX,mBAAkB,QAAQ,QAAQ,OAAO;AAG1C,QAAO;EACN,OAAO,OAAO,WAAW;EACzB;EACA;EACA;;AAGF,SAAS,mBAAmB,UAA0B,QAA+B;CACpF,MAAM,4BAAY,IAAI,KAAqB;AAC3C,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,QAAQ,IAAI,WAAW,OAAO;AACxC,MAAI,CAAC,KAAK,QAAS;EACnB,MAAM,WAAW,UAAU,IAAI,KAAK,KAAK;AACzC,MAAI,SACH,QAAO,KAAK;GACX,MAAM;GACN,SAAS,QAAQ,KAAK,KAAK,oBAAoB,SAAS,SAAS,IAAI,WAAW,KAAK;GACrF,CAAC;MAEF,WAAU,IAAI,KAAK,MAAM,IAAI,WAAW,KAAK;;;AAMjD,SAAS,sBAAsB,UAA0B,QAA+B;CACvF,MAAM,8BAAc,IAAI,KAAqB;AAC7C,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,OAAO,IAAI,WAAW,SAAS;EACzC,MAAM,WAAW,YAAY,IAAI,IAAI,KAAK;AAC1C,MAAI,YAAY,aAAa,IAAI,WAAW,GAC3C,QAAO,KAAK;GACX,MAAM;GACN,SAAS,gBAAgB,IAAI,KAAK,qBAAqB,SAAS,SAAS,IAAI,WAAW,GAAG;GAC3F,CAAC;MAEF,aAAY,IAAI,IAAI,MAAM,IAAI,WAAW,GAAG;;;AAMhD,SAAS,qBACR,UACA,QACA,UACA,iBACO;AACP,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,UAAU,IAAI,WAAW,aAAa;AAChD,MAAI,OAAO,YAAY,CAAC,OAAO,gBAAgB,CAAC,OAAO,OACtD,QAAO,KAAK;GACX,MAAM;GACN,SAAS,kCAAkC,OAAO,IAAI,SAAS,IAAI,WAAW,KAAK;GACnF,CAAC;AAEH,MAAI,OAAO,UAAU,CAAC,mBAAmB,CAAC,OAAO,aAChD,UAAS,KAAK;GACb,MAAM;GACN,SAAS,WAAW,OAAO,IAAI,SAAS,IAAI,WAAW,KAAK;GAC5D,CAAC;;;AAMN,SAAS,wBAAwB,UAA0B,UAA2B;AACrF,MAAK,MAAM,OAAO,SAAS,SAC1B,KAAI,CAAC,IAAI,WAAW,SAAS,SAAS,mBAAmB,CACxD,UAAS,KAAK;EACb,MAAM;EACN,SAAS,YAAY,IAAI,WAAW,KAAK;EACzC,CAAC;;AAKL,SAAS,mBAAmB,UAA0B,QAA+B;CACpF,MAAM,MAAM,IAAI,IAAI,SAAS,SAAS,KAAK,MAAM,EAAE,WAAW,GAAG,CAAC;CAClE,MAAM,0BAAU,IAAI,KAAa;CACjC,MAAM,0BAAU,IAAI,KAAa;CAEjC,MAAM,0BAAU,IAAI,KAAuB;AAC3C,MAAK,MAAM,OAAO,SAAS,UAAU;EACpC,MAAM,OAAO,CAAC,GAAG,IAAI,WAAW,UAAU,GAAG,IAAI,WAAW,UAAU,CAAC,QAAQ,MAC9E,IAAI,IAAI,EAAE,CACV;AACD,UAAQ,IAAI,IAAI,WAAW,IAAI,KAAK;;CAGrC,SAAS,SAAS,MAAuB;AACxC,MAAI,QAAQ,IAAI,KAAK,CAAE,QAAO;AAC9B,MAAI,QAAQ,IAAI,KAAK,CAAE,QAAO;AAC9B,UAAQ,IAAI,KAAK;AACjB,UAAQ,IAAI,KAAK;AACjB,OAAK,MAAM,OAAO,QAAQ,IAAI,KAAK,IAAI,EAAE,CACxC,KAAI,SAAS,IAAI,CAAE,QAAO;AAE3B,UAAQ,OAAO,KAAK;AACpB,SAAO;;AAGR,MAAK,MAAM,MAAM,IAChB,KAAI,SAAS,GAAG,EAAE;AACjB,SAAO,KAAK;GACX,MAAM;GACN,SAAS,2CAA2C,GAAG;GACvD,CAAC;AACF;;;AAKH,SAAS,kBAAkB,MAAc,QAA+B;AACvE,KAAI;AACH,QAAM,KAAK;UACH,GAAG;AACX,SAAO,KAAK;GACX,MAAM;GACN,SAAS,gCAAgC,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;GACnF,CAAC;;;AAIJ,SAAS,kBAAkB,QAAgB,QAA+B;AAEzE,KAAI,CADgB,qEACH,KAAK,OAAO,CAC5B,QAAO,KAAK;EACX,MAAM;EACN,SAAS,IAAI,OAAO;EACpB,CAAC"}
@@ -1,61 +0,0 @@
1
- //#region src/services/definitions/valkey.ts
2
- const valkeyDefinition = {
3
- id: "valkey",
4
- name: "Valkey",
5
- description: "Open-source, high-performance key-value store and Redis-compatible fork maintained by the Linux Foundation for caching and data structures.",
6
- category: "database",
7
- icon: "🔑",
8
- image: "valkey/valkey",
9
- imageTag: "8-alpine",
10
- ports: [{
11
- host: 6379,
12
- container: 6379,
13
- description: "Valkey server port",
14
- exposed: true
15
- }],
16
- volumes: [{
17
- name: "valkey-data",
18
- containerPath: "/data",
19
- description: "Persistent Valkey data"
20
- }],
21
- environment: [],
22
- healthcheck: {
23
- test: "valkey-cli ping",
24
- interval: "10s",
25
- timeout: "5s",
26
- retries: 3
27
- },
28
- dependsOn: [],
29
- restartPolicy: "unless-stopped",
30
- networks: ["openclaw-network"],
31
- skills: [],
32
- openclawEnvVars: [{
33
- key: "REDIS_HOST",
34
- defaultValue: "valkey",
35
- secret: false,
36
- description: "Redis-compatible hostname for OpenClaw (points to Valkey)",
37
- required: true
38
- }, {
39
- key: "REDIS_PORT",
40
- defaultValue: "6379",
41
- secret: false,
42
- description: "Redis-compatible port for OpenClaw",
43
- required: true
44
- }],
45
- docsUrl: "https://valkey.io/docs/",
46
- tags: [
47
- "cache",
48
- "key-value",
49
- "redis-compatible"
50
- ],
51
- maturity: "stable",
52
- requires: [],
53
- recommends: [],
54
- conflictsWith: ["redis"],
55
- minMemoryMB: 128,
56
- gpuRequired: false
57
- };
58
-
59
- //#endregion
60
- export { valkeyDefinition as t };
61
- //# sourceMappingURL=valkey-BCZqGJ0L.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valkey-BCZqGJ0L.mjs","names":[],"sources":["../src/services/definitions/valkey.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const valkeyDefinition: ServiceDefinition = {\n\tid: \"valkey\",\n\tname: \"Valkey\",\n\tdescription:\n\t\t\"Open-source, high-performance key-value store and Redis-compatible fork maintained by the Linux Foundation for caching and data structures.\",\n\tcategory: \"database\",\n\ticon: \"🔑\",\n\n\timage: \"valkey/valkey\",\n\timageTag: \"8-alpine\",\n\tports: [\n\t\t{\n\t\t\thost: 6379,\n\t\t\tcontainer: 6379,\n\t\t\tdescription: \"Valkey server port\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"valkey-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent Valkey data\",\n\t\t},\n\t],\n\tenvironment: [],\n\thealthcheck: {\n\t\ttest: \"valkey-cli ping\",\n\t\tinterval: \"10s\",\n\t\ttimeout: \"5s\",\n\t\tretries: 3,\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"REDIS_HOST\",\n\t\t\tdefaultValue: \"valkey\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Redis-compatible hostname for OpenClaw (points to Valkey)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"REDIS_PORT\",\n\t\t\tdefaultValue: \"6379\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Redis-compatible port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://valkey.io/docs/\",\n\ttags: [\"cache\", \"key-value\", \"redis-compatible\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [\"redis\"],\n\n\tminMemoryMB: 128,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,mBAAsC;CAClD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,EAAE;CACf,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CAED,SAAS;CACT,MAAM;EAAC;EAAS;EAAa;EAAmB;CAChD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,CAAC,QAAQ;CAExB,aAAa;CACb,aAAa;CACb"}