@better-openclaw/core 1.0.0

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 (461) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-lint.log +360 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/dist/bare-metal-partition.d.ts +22 -0
  5. package/dist/bare-metal-partition.d.ts.map +1 -0
  6. package/dist/bare-metal-partition.js +49 -0
  7. package/dist/bare-metal-partition.js.map +1 -0
  8. package/dist/composer.d.ts +17 -0
  9. package/dist/composer.d.ts.map +1 -0
  10. package/dist/composer.js +305 -0
  11. package/dist/composer.js.map +1 -0
  12. package/dist/generate.d.ts +7 -0
  13. package/dist/generate.d.ts.map +1 -0
  14. package/dist/generate.js +218 -0
  15. package/dist/generate.js.map +1 -0
  16. package/dist/generators/bare-metal-install.d.ts +18 -0
  17. package/dist/generators/bare-metal-install.d.ts.map +1 -0
  18. package/dist/generators/bare-metal-install.js +228 -0
  19. package/dist/generators/bare-metal-install.js.map +1 -0
  20. package/dist/generators/caddy.d.ts +13 -0
  21. package/dist/generators/caddy.d.ts.map +1 -0
  22. package/dist/generators/caddy.js +85 -0
  23. package/dist/generators/caddy.js.map +1 -0
  24. package/dist/generators/env.d.ts +42 -0
  25. package/dist/generators/env.d.ts.map +1 -0
  26. package/dist/generators/env.js +276 -0
  27. package/dist/generators/env.js.map +1 -0
  28. package/dist/generators/grafana.d.ts +19 -0
  29. package/dist/generators/grafana.d.ts.map +1 -0
  30. package/dist/generators/grafana.js +247 -0
  31. package/dist/generators/grafana.js.map +1 -0
  32. package/dist/generators/n8n-workflows.d.ts +7 -0
  33. package/dist/generators/n8n-workflows.d.ts.map +1 -0
  34. package/dist/generators/n8n-workflows.js +78 -0
  35. package/dist/generators/n8n-workflows.js.map +1 -0
  36. package/dist/generators/native-services.d.ts +13 -0
  37. package/dist/generators/native-services.d.ts.map +1 -0
  38. package/dist/generators/native-services.js +85 -0
  39. package/dist/generators/native-services.js.map +1 -0
  40. package/dist/generators/postgres-init.d.ts +27 -0
  41. package/dist/generators/postgres-init.d.ts.map +1 -0
  42. package/dist/generators/postgres-init.js +119 -0
  43. package/dist/generators/postgres-init.js.map +1 -0
  44. package/dist/generators/prometheus.d.ts +10 -0
  45. package/dist/generators/prometheus.d.ts.map +1 -0
  46. package/dist/generators/prometheus.js +79 -0
  47. package/dist/generators/prometheus.js.map +1 -0
  48. package/dist/generators/readme.d.ts +21 -0
  49. package/dist/generators/readme.d.ts.map +1 -0
  50. package/dist/generators/readme.js +224 -0
  51. package/dist/generators/readme.js.map +1 -0
  52. package/dist/generators/scripts.d.ts +7 -0
  53. package/dist/generators/scripts.d.ts.map +1 -0
  54. package/dist/generators/scripts.js +352 -0
  55. package/dist/generators/scripts.js.map +1 -0
  56. package/dist/generators/skills.d.ts +10 -0
  57. package/dist/generators/skills.d.ts.map +1 -0
  58. package/dist/generators/skills.js +596 -0
  59. package/dist/generators/skills.js.map +1 -0
  60. package/dist/index.d.ts +24 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +27 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/presets/registry.d.ts +5 -0
  65. package/dist/presets/registry.d.ts.map +1 -0
  66. package/dist/presets/registry.js +121 -0
  67. package/dist/presets/registry.js.map +1 -0
  68. package/dist/resolver.d.ts +17 -0
  69. package/dist/resolver.d.ts.map +1 -0
  70. package/dist/resolver.js +254 -0
  71. package/dist/resolver.js.map +1 -0
  72. package/dist/schema.d.ts +2426 -0
  73. package/dist/schema.d.ts.map +1 -0
  74. package/dist/schema.js +259 -0
  75. package/dist/schema.js.map +1 -0
  76. package/dist/services/definitions/anything-llm.d.ts +3 -0
  77. package/dist/services/definitions/anything-llm.d.ts.map +1 -0
  78. package/dist/services/definitions/anything-llm.js +39 -0
  79. package/dist/services/definitions/anything-llm.js.map +1 -0
  80. package/dist/services/definitions/appflowy.d.ts +3 -0
  81. package/dist/services/definitions/appflowy.d.ts.map +1 -0
  82. package/dist/services/definitions/appflowy.js +39 -0
  83. package/dist/services/definitions/appflowy.js.map +1 -0
  84. package/dist/services/definitions/beszel.d.ts +3 -0
  85. package/dist/services/definitions/beszel.d.ts.map +1 -0
  86. package/dist/services/definitions/beszel.js +39 -0
  87. package/dist/services/definitions/beszel.js.map +1 -0
  88. package/dist/services/definitions/browserless.d.ts +3 -0
  89. package/dist/services/definitions/browserless.d.ts.map +1 -0
  90. package/dist/services/definitions/browserless.js +77 -0
  91. package/dist/services/definitions/browserless.js.map +1 -0
  92. package/dist/services/definitions/caddy.d.ts +3 -0
  93. package/dist/services/definitions/caddy.d.ts.map +1 -0
  94. package/dist/services/definitions/caddy.js +50 -0
  95. package/dist/services/definitions/caddy.js.map +1 -0
  96. package/dist/services/definitions/chromadb.d.ts +3 -0
  97. package/dist/services/definitions/chromadb.d.ts.map +1 -0
  98. package/dist/services/definitions/chromadb.js +61 -0
  99. package/dist/services/definitions/chromadb.js.map +1 -0
  100. package/dist/services/definitions/claude-code.d.ts +3 -0
  101. package/dist/services/definitions/claude-code.d.ts.map +1 -0
  102. package/dist/services/definitions/claude-code.js +49 -0
  103. package/dist/services/definitions/claude-code.js.map +1 -0
  104. package/dist/services/definitions/code-server.d.ts +3 -0
  105. package/dist/services/definitions/code-server.d.ts.map +1 -0
  106. package/dist/services/definitions/code-server.js +61 -0
  107. package/dist/services/definitions/code-server.js.map +1 -0
  108. package/dist/services/definitions/codex.d.ts +3 -0
  109. package/dist/services/definitions/codex.d.ts.map +1 -0
  110. package/dist/services/definitions/codex.js +41 -0
  111. package/dist/services/definitions/codex.js.map +1 -0
  112. package/dist/services/definitions/coolify.d.ts +3 -0
  113. package/dist/services/definitions/coolify.d.ts.map +1 -0
  114. package/dist/services/definitions/coolify.js +44 -0
  115. package/dist/services/definitions/coolify.js.map +1 -0
  116. package/dist/services/definitions/dify.d.ts +3 -0
  117. package/dist/services/definitions/dify.d.ts.map +1 -0
  118. package/dist/services/definitions/dify.js +75 -0
  119. package/dist/services/definitions/dify.js.map +1 -0
  120. package/dist/services/definitions/docsgpt.d.ts +3 -0
  121. package/dist/services/definitions/docsgpt.d.ts.map +1 -0
  122. package/dist/services/definitions/docsgpt.js +39 -0
  123. package/dist/services/definitions/docsgpt.js.map +1 -0
  124. package/dist/services/definitions/dokploy.d.ts +3 -0
  125. package/dist/services/definitions/dokploy.d.ts.map +1 -0
  126. package/dist/services/definitions/dokploy.js +44 -0
  127. package/dist/services/definitions/dokploy.js.map +1 -0
  128. package/dist/services/definitions/dozzle.d.ts +3 -0
  129. package/dist/services/definitions/dozzle.d.ts.map +1 -0
  130. package/dist/services/definitions/dozzle.js +33 -0
  131. package/dist/services/definitions/dozzle.js.map +1 -0
  132. package/dist/services/definitions/ffmpeg.d.ts +3 -0
  133. package/dist/services/definitions/ffmpeg.d.ts.map +1 -0
  134. package/dist/services/definitions/ffmpeg.js +63 -0
  135. package/dist/services/definitions/ffmpeg.js.map +1 -0
  136. package/dist/services/definitions/flowise.d.ts +3 -0
  137. package/dist/services/definitions/flowise.d.ts.map +1 -0
  138. package/dist/services/definitions/flowise.js +39 -0
  139. package/dist/services/definitions/flowise.js.map +1 -0
  140. package/dist/services/definitions/gemini-cli.d.ts +3 -0
  141. package/dist/services/definitions/gemini-cli.d.ts.map +1 -0
  142. package/dist/services/definitions/gemini-cli.js +41 -0
  143. package/dist/services/definitions/gemini-cli.js.map +1 -0
  144. package/dist/services/definitions/gitea.d.ts +3 -0
  145. package/dist/services/definitions/gitea.d.ts.map +1 -0
  146. package/dist/services/definitions/gitea.js +45 -0
  147. package/dist/services/definitions/gitea.js.map +1 -0
  148. package/dist/services/definitions/gotify.d.ts +3 -0
  149. package/dist/services/definitions/gotify.d.ts.map +1 -0
  150. package/dist/services/definitions/gotify.js +60 -0
  151. package/dist/services/definitions/gotify.js.map +1 -0
  152. package/dist/services/definitions/grafana.d.ts +3 -0
  153. package/dist/services/definitions/grafana.d.ts.map +1 -0
  154. package/dist/services/definitions/grafana.js +61 -0
  155. package/dist/services/definitions/grafana.js.map +1 -0
  156. package/dist/services/definitions/index.d.ts +68 -0
  157. package/dist/services/definitions/index.d.ts.map +1 -0
  158. package/dist/services/definitions/index.js +198 -0
  159. package/dist/services/definitions/index.js.map +1 -0
  160. package/dist/services/definitions/kimi.d.ts +3 -0
  161. package/dist/services/definitions/kimi.d.ts.map +1 -0
  162. package/dist/services/definitions/kimi.js +41 -0
  163. package/dist/services/definitions/kimi.js.map +1 -0
  164. package/dist/services/definitions/lasuite-meet-agents.d.ts +3 -0
  165. package/dist/services/definitions/lasuite-meet-agents.d.ts.map +1 -0
  166. package/dist/services/definitions/lasuite-meet-agents.js +26 -0
  167. package/dist/services/definitions/lasuite-meet-agents.js.map +1 -0
  168. package/dist/services/definitions/lasuite-meet-backend.d.ts +3 -0
  169. package/dist/services/definitions/lasuite-meet-backend.d.ts.map +1 -0
  170. package/dist/services/definitions/lasuite-meet-backend.js +118 -0
  171. package/dist/services/definitions/lasuite-meet-backend.js.map +1 -0
  172. package/dist/services/definitions/lasuite-meet-frontend.d.ts +3 -0
  173. package/dist/services/definitions/lasuite-meet-frontend.d.ts.map +1 -0
  174. package/dist/services/definitions/lasuite-meet-frontend.js +31 -0
  175. package/dist/services/definitions/lasuite-meet-frontend.js.map +1 -0
  176. package/dist/services/definitions/librechat.d.ts +3 -0
  177. package/dist/services/definitions/librechat.d.ts.map +1 -0
  178. package/dist/services/definitions/librechat.js +47 -0
  179. package/dist/services/definitions/librechat.js.map +1 -0
  180. package/dist/services/definitions/lightpanda.d.ts +3 -0
  181. package/dist/services/definitions/lightpanda.d.ts.map +1 -0
  182. package/dist/services/definitions/lightpanda.js +59 -0
  183. package/dist/services/definitions/lightpanda.js.map +1 -0
  184. package/dist/services/definitions/litellm.d.ts +3 -0
  185. package/dist/services/definitions/litellm.d.ts.map +1 -0
  186. package/dist/services/definitions/litellm.js +41 -0
  187. package/dist/services/definitions/litellm.js.map +1 -0
  188. package/dist/services/definitions/livekit.d.ts +3 -0
  189. package/dist/services/definitions/livekit.d.ts.map +1 -0
  190. package/dist/services/definitions/livekit.js +31 -0
  191. package/dist/services/definitions/livekit.js.map +1 -0
  192. package/dist/services/definitions/matomo.d.ts +3 -0
  193. package/dist/services/definitions/matomo.d.ts.map +1 -0
  194. package/dist/services/definitions/matomo.js +75 -0
  195. package/dist/services/definitions/matomo.js.map +1 -0
  196. package/dist/services/definitions/matrix-synapse.d.ts +3 -0
  197. package/dist/services/definitions/matrix-synapse.d.ts.map +1 -0
  198. package/dist/services/definitions/matrix-synapse.js +82 -0
  199. package/dist/services/definitions/matrix-synapse.js.map +1 -0
  200. package/dist/services/definitions/mattermost.d.ts +3 -0
  201. package/dist/services/definitions/mattermost.d.ts.map +1 -0
  202. package/dist/services/definitions/mattermost.js +59 -0
  203. package/dist/services/definitions/mattermost.js.map +1 -0
  204. package/dist/services/definitions/meilisearch.d.ts +3 -0
  205. package/dist/services/definitions/meilisearch.d.ts.map +1 -0
  206. package/dist/services/definitions/meilisearch.js +76 -0
  207. package/dist/services/definitions/meilisearch.js.map +1 -0
  208. package/dist/services/definitions/minio.d.ts +3 -0
  209. package/dist/services/definitions/minio.d.ts.map +1 -0
  210. package/dist/services/definitions/minio.js +98 -0
  211. package/dist/services/definitions/minio.js.map +1 -0
  212. package/dist/services/definitions/mixpost.d.ts +3 -0
  213. package/dist/services/definitions/mixpost.d.ts.map +1 -0
  214. package/dist/services/definitions/mixpost.js +82 -0
  215. package/dist/services/definitions/mixpost.js.map +1 -0
  216. package/dist/services/definitions/motion-canvas.d.ts +3 -0
  217. package/dist/services/definitions/motion-canvas.d.ts.map +1 -0
  218. package/dist/services/definitions/motion-canvas.js +48 -0
  219. package/dist/services/definitions/motion-canvas.js.map +1 -0
  220. package/dist/services/definitions/n8n.d.ts +3 -0
  221. package/dist/services/definitions/n8n.d.ts.map +1 -0
  222. package/dist/services/definitions/n8n.js +146 -0
  223. package/dist/services/definitions/n8n.js.map +1 -0
  224. package/dist/services/definitions/nocodb.d.ts +3 -0
  225. package/dist/services/definitions/nocodb.d.ts.map +1 -0
  226. package/dist/services/definitions/nocodb.js +39 -0
  227. package/dist/services/definitions/nocodb.js.map +1 -0
  228. package/dist/services/definitions/ntfy.d.ts +3 -0
  229. package/dist/services/definitions/ntfy.d.ts.map +1 -0
  230. package/dist/services/definitions/ntfy.js +61 -0
  231. package/dist/services/definitions/ntfy.js.map +1 -0
  232. package/dist/services/definitions/ollama.d.ts +3 -0
  233. package/dist/services/definitions/ollama.d.ts.map +1 -0
  234. package/dist/services/definitions/ollama.js +61 -0
  235. package/dist/services/definitions/ollama.js.map +1 -0
  236. package/dist/services/definitions/open-webui.d.ts +3 -0
  237. package/dist/services/definitions/open-webui.d.ts.map +1 -0
  238. package/dist/services/definitions/open-webui.js +47 -0
  239. package/dist/services/definitions/open-webui.js.map +1 -0
  240. package/dist/services/definitions/opencode.d.ts +3 -0
  241. package/dist/services/definitions/opencode.d.ts.map +1 -0
  242. package/dist/services/definitions/opencode.js +47 -0
  243. package/dist/services/definitions/opencode.js.map +1 -0
  244. package/dist/services/definitions/openpanel.d.ts +3 -0
  245. package/dist/services/definitions/openpanel.d.ts.map +1 -0
  246. package/dist/services/definitions/openpanel.js +41 -0
  247. package/dist/services/definitions/openpanel.js.map +1 -0
  248. package/dist/services/definitions/outline.d.ts +3 -0
  249. package/dist/services/definitions/outline.d.ts.map +1 -0
  250. package/dist/services/definitions/outline.js +68 -0
  251. package/dist/services/definitions/outline.js.map +1 -0
  252. package/dist/services/definitions/paperless-ngx.d.ts +3 -0
  253. package/dist/services/definitions/paperless-ngx.d.ts.map +1 -0
  254. package/dist/services/definitions/paperless-ngx.js +85 -0
  255. package/dist/services/definitions/paperless-ngx.js.map +1 -0
  256. package/dist/services/definitions/playwright-server.d.ts +3 -0
  257. package/dist/services/definitions/playwright-server.d.ts.map +1 -0
  258. package/dist/services/definitions/playwright-server.js +34 -0
  259. package/dist/services/definitions/playwright-server.js.map +1 -0
  260. package/dist/services/definitions/portainer.d.ts +3 -0
  261. package/dist/services/definitions/portainer.d.ts.map +1 -0
  262. package/dist/services/definitions/portainer.js +44 -0
  263. package/dist/services/definitions/portainer.js.map +1 -0
  264. package/dist/services/definitions/postgresql.d.ts +3 -0
  265. package/dist/services/definitions/postgresql.d.ts.map +1 -0
  266. package/dist/services/definitions/postgresql.js +83 -0
  267. package/dist/services/definitions/postgresql.js.map +1 -0
  268. package/dist/services/definitions/postiz.d.ts +3 -0
  269. package/dist/services/definitions/postiz.d.ts.map +1 -0
  270. package/dist/services/definitions/postiz.js +79 -0
  271. package/dist/services/definitions/postiz.js.map +1 -0
  272. package/dist/services/definitions/prometheus.d.ts +3 -0
  273. package/dist/services/definitions/prometheus.d.ts.map +1 -0
  274. package/dist/services/definitions/prometheus.js +47 -0
  275. package/dist/services/definitions/prometheus.js.map +1 -0
  276. package/dist/services/definitions/qdrant.d.ts +3 -0
  277. package/dist/services/definitions/qdrant.d.ts.map +1 -0
  278. package/dist/services/definitions/qdrant.js +75 -0
  279. package/dist/services/definitions/qdrant.js.map +1 -0
  280. package/dist/services/definitions/redis.d.ts +3 -0
  281. package/dist/services/definitions/redis.d.ts.map +1 -0
  282. package/dist/services/definitions/redis.js +90 -0
  283. package/dist/services/definitions/redis.js.map +1 -0
  284. package/dist/services/definitions/remotion.d.ts +3 -0
  285. package/dist/services/definitions/remotion.d.ts.map +1 -0
  286. package/dist/services/definitions/remotion.js +48 -0
  287. package/dist/services/definitions/remotion.js.map +1 -0
  288. package/dist/services/definitions/rocketchat.d.ts +3 -0
  289. package/dist/services/definitions/rocketchat.d.ts.map +1 -0
  290. package/dist/services/definitions/rocketchat.js +54 -0
  291. package/dist/services/definitions/rocketchat.js.map +1 -0
  292. package/dist/services/definitions/searxng.d.ts +3 -0
  293. package/dist/services/definitions/searxng.d.ts.map +1 -0
  294. package/dist/services/definitions/searxng.js +61 -0
  295. package/dist/services/definitions/searxng.js.map +1 -0
  296. package/dist/services/definitions/stable-diffusion.d.ts +3 -0
  297. package/dist/services/definitions/stable-diffusion.d.ts.map +1 -0
  298. package/dist/services/definitions/stable-diffusion.js +44 -0
  299. package/dist/services/definitions/stable-diffusion.js.map +1 -0
  300. package/dist/services/definitions/steel-browser.d.ts +3 -0
  301. package/dist/services/definitions/steel-browser.d.ts.map +1 -0
  302. package/dist/services/definitions/steel-browser.js +68 -0
  303. package/dist/services/definitions/steel-browser.js.map +1 -0
  304. package/dist/services/definitions/tailscale.d.ts +3 -0
  305. package/dist/services/definitions/tailscale.d.ts.map +1 -0
  306. package/dist/services/definitions/tailscale.js +62 -0
  307. package/dist/services/definitions/tailscale.js.map +1 -0
  308. package/dist/services/definitions/temporal.d.ts +3 -0
  309. package/dist/services/definitions/temporal.d.ts.map +1 -0
  310. package/dist/services/definitions/temporal.js +97 -0
  311. package/dist/services/definitions/temporal.js.map +1 -0
  312. package/dist/services/definitions/traefik.d.ts +3 -0
  313. package/dist/services/definitions/traefik.d.ts.map +1 -0
  314. package/dist/services/definitions/traefik.js +52 -0
  315. package/dist/services/definitions/traefik.js.map +1 -0
  316. package/dist/services/definitions/umami.d.ts +3 -0
  317. package/dist/services/definitions/umami.d.ts.map +1 -0
  318. package/dist/services/definitions/umami.js +41 -0
  319. package/dist/services/definitions/umami.js.map +1 -0
  320. package/dist/services/definitions/uptime-kuma.d.ts +3 -0
  321. package/dist/services/definitions/uptime-kuma.d.ts.map +1 -0
  322. package/dist/services/definitions/uptime-kuma.js +46 -0
  323. package/dist/services/definitions/uptime-kuma.js.map +1 -0
  324. package/dist/services/definitions/valkey.d.ts +3 -0
  325. package/dist/services/definitions/valkey.d.ts.map +1 -0
  326. package/dist/services/definitions/valkey.js +60 -0
  327. package/dist/services/definitions/valkey.js.map +1 -0
  328. package/dist/services/definitions/watchtower.d.ts +3 -0
  329. package/dist/services/definitions/watchtower.d.ts.map +1 -0
  330. package/dist/services/definitions/watchtower.js +41 -0
  331. package/dist/services/definitions/watchtower.js.map +1 -0
  332. package/dist/services/definitions/weaviate.d.ts +3 -0
  333. package/dist/services/definitions/weaviate.d.ts.map +1 -0
  334. package/dist/services/definitions/weaviate.js +89 -0
  335. package/dist/services/definitions/weaviate.js.map +1 -0
  336. package/dist/services/definitions/whisper.d.ts +3 -0
  337. package/dist/services/definitions/whisper.d.ts.map +1 -0
  338. package/dist/services/definitions/whisper.js +55 -0
  339. package/dist/services/definitions/whisper.js.map +1 -0
  340. package/dist/services/registry.d.ts +12 -0
  341. package/dist/services/registry.d.ts.map +1 -0
  342. package/dist/services/registry.js +28 -0
  343. package/dist/services/registry.js.map +1 -0
  344. package/dist/skills/registry.d.ts +7 -0
  345. package/dist/skills/registry.d.ts.map +1 -0
  346. package/dist/skills/registry.js +111 -0
  347. package/dist/skills/registry.js.map +1 -0
  348. package/dist/types.d.ts +60 -0
  349. package/dist/types.d.ts.map +1 -0
  350. package/dist/types.js +20 -0
  351. package/dist/types.js.map +1 -0
  352. package/dist/validator.d.ts +16 -0
  353. package/dist/validator.d.ts.map +1 -0
  354. package/dist/validator.js +142 -0
  355. package/dist/validator.js.map +1 -0
  356. package/dist/version-manager.d.ts +10 -0
  357. package/dist/version-manager.d.ts.map +1 -0
  358. package/dist/version-manager.js +60 -0
  359. package/dist/version-manager.js.map +1 -0
  360. package/package.json +37 -0
  361. package/src/__snapshots__/composer.snapshot.test.ts.snap +903 -0
  362. package/src/bare-metal-partition.test.ts +63 -0
  363. package/src/bare-metal-partition.ts +64 -0
  364. package/src/composer.snapshot.test.ts +87 -0
  365. package/src/composer.test.ts +224 -0
  366. package/src/composer.ts +403 -0
  367. package/src/generate.test.ts +349 -0
  368. package/src/generate.ts +259 -0
  369. package/src/generators/bare-metal-install.test.ts +43 -0
  370. package/src/generators/bare-metal-install.ts +249 -0
  371. package/src/generators/caddy.ts +99 -0
  372. package/src/generators/env.ts +405 -0
  373. package/src/generators/grafana.ts +255 -0
  374. package/src/generators/n8n-workflows.ts +88 -0
  375. package/src/generators/native-services.ts +103 -0
  376. package/src/generators/postgres-init.ts +137 -0
  377. package/src/generators/prometheus.ts +89 -0
  378. package/src/generators/readme.ts +274 -0
  379. package/src/generators/scripts.ts +362 -0
  380. package/src/generators/skills.ts +628 -0
  381. package/src/index.ts +118 -0
  382. package/src/presets/registry.test.ts +32 -0
  383. package/src/presets/registry.ts +126 -0
  384. package/src/resolver.test.ts +204 -0
  385. package/src/resolver.ts +282 -0
  386. package/src/schema.test.ts +295 -0
  387. package/src/schema.ts +307 -0
  388. package/src/services/definitions/anything-llm.ts +46 -0
  389. package/src/services/definitions/appflowy.ts +46 -0
  390. package/src/services/definitions/beszel.ts +46 -0
  391. package/src/services/definitions/browserless.ts +84 -0
  392. package/src/services/definitions/caddy.ts +57 -0
  393. package/src/services/definitions/chromadb.ts +68 -0
  394. package/src/services/definitions/claude-code.ts +56 -0
  395. package/src/services/definitions/code-server.ts +67 -0
  396. package/src/services/definitions/codex.ts +48 -0
  397. package/src/services/definitions/coolify.ts +51 -0
  398. package/src/services/definitions/dify.ts +82 -0
  399. package/src/services/definitions/docsgpt.ts +45 -0
  400. package/src/services/definitions/dokploy.ts +51 -0
  401. package/src/services/definitions/dozzle.ts +40 -0
  402. package/src/services/definitions/ffmpeg.ts +70 -0
  403. package/src/services/definitions/flowise.ts +45 -0
  404. package/src/services/definitions/gemini-cli.ts +48 -0
  405. package/src/services/definitions/gitea.ts +52 -0
  406. package/src/services/definitions/gotify.ts +67 -0
  407. package/src/services/definitions/grafana.ts +68 -0
  408. package/src/services/definitions/index.ts +200 -0
  409. package/src/services/definitions/kimi.ts +48 -0
  410. package/src/services/definitions/lasuite-meet-agents.ts +33 -0
  411. package/src/services/definitions/lasuite-meet-backend.ts +125 -0
  412. package/src/services/definitions/lasuite-meet-frontend.ts +38 -0
  413. package/src/services/definitions/librechat.ts +54 -0
  414. package/src/services/definitions/lightpanda.ts +61 -0
  415. package/src/services/definitions/litellm.ts +48 -0
  416. package/src/services/definitions/livekit.ts +38 -0
  417. package/src/services/definitions/matomo.ts +82 -0
  418. package/src/services/definitions/matrix-synapse.ts +89 -0
  419. package/src/services/definitions/mattermost.ts +67 -0
  420. package/src/services/definitions/meilisearch.ts +83 -0
  421. package/src/services/definitions/minio.ts +105 -0
  422. package/src/services/definitions/mixpost.ts +89 -0
  423. package/src/services/definitions/motion-canvas.ts +55 -0
  424. package/src/services/definitions/n8n.ts +153 -0
  425. package/src/services/definitions/nocodb.ts +46 -0
  426. package/src/services/definitions/ntfy.ts +68 -0
  427. package/src/services/definitions/ollama.ts +68 -0
  428. package/src/services/definitions/open-webui.ts +54 -0
  429. package/src/services/definitions/opencode.ts +54 -0
  430. package/src/services/definitions/openpanel.ts +48 -0
  431. package/src/services/definitions/outline.ts +75 -0
  432. package/src/services/definitions/paperless-ngx.ts +92 -0
  433. package/src/services/definitions/playwright-server.ts +41 -0
  434. package/src/services/definitions/portainer.ts +50 -0
  435. package/src/services/definitions/postgresql.ts +90 -0
  436. package/src/services/definitions/postiz.ts +86 -0
  437. package/src/services/definitions/prometheus.ts +54 -0
  438. package/src/services/definitions/qdrant.ts +82 -0
  439. package/src/services/definitions/redis.ts +99 -0
  440. package/src/services/definitions/remotion.ts +55 -0
  441. package/src/services/definitions/rocketchat.ts +61 -0
  442. package/src/services/definitions/searxng.ts +68 -0
  443. package/src/services/definitions/stable-diffusion.ts +50 -0
  444. package/src/services/definitions/steel-browser.ts +70 -0
  445. package/src/services/definitions/tailscale.ts +69 -0
  446. package/src/services/definitions/temporal.ts +104 -0
  447. package/src/services/definitions/traefik.ts +60 -0
  448. package/src/services/definitions/umami.ts +48 -0
  449. package/src/services/definitions/uptime-kuma.ts +53 -0
  450. package/src/services/definitions/valkey.ts +67 -0
  451. package/src/services/definitions/watchtower.ts +47 -0
  452. package/src/services/definitions/weaviate.ts +96 -0
  453. package/src/services/definitions/whisper.ts +62 -0
  454. package/src/services/registry.test.ts +98 -0
  455. package/src/services/registry.ts +37 -0
  456. package/src/skills/registry.ts +126 -0
  457. package/src/types.ts +123 -0
  458. package/src/validator.test.ts +66 -0
  459. package/src/validator.ts +166 -0
  460. package/src/version-manager.ts +65 -0
  461. package/tsconfig.json +9 -0
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Generates platform-specific installer scripts for bare-metal (VPS, computer) deployment.
3
+ * Each script ensures Docker and Docker Compose are installed, then runs the stack.
4
+ * Returns a map of one file: install.sh (Linux/macOS) or install.ps1 (Windows).
5
+ */
6
+ import type { Platform } from "../types.js";
7
+
8
+ const LINUX_SCRIPT_PREFIX_NATIVE = `
9
+ # Native services (install/start on host first)
10
+ if [ -f "native/install-linux.sh" ]; then
11
+ info "Installing and starting native services..."
12
+ bash native/install-linux.sh
13
+ ok "Native services ready."
14
+ fi
15
+ `;
16
+
17
+ const LINUX_SCRIPT = `#!/usr/bin/env bash
18
+ set -euo pipefail
19
+
20
+ # OpenClaw bare-metal installer (Linux)
21
+ # Optionally runs native services script, then Docker + Compose.
22
+ # Idempotent: safe to re-run.
23
+
24
+ SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
25
+ cd "$SCRIPT_DIR"
26
+
27
+ if [ -t 1 ]; then
28
+ RED='\\033[0;31m'; GREEN='\\033[0;32m'; YELLOW='\\033[1;33m'; CYAN='\\033[0;36m'; NC='\\033[0m'
29
+ else
30
+ RED=''; GREEN=''; YELLOW=''; CYAN=''; NC=''
31
+ fi
32
+ info() { echo -e "\${CYAN}ℹ $*\${NC}"; }
33
+ ok() { echo -e "\${GREEN}✅ $*\${NC}"; }
34
+ warn() { echo -e "\${YELLOW}⚠️ $*\${NC}"; }
35
+ err() { echo -e "\${RED}❌ $*\${NC}" >&2; }
36
+ __NATIVE_BLOCK__
37
+ # Install Docker if missing
38
+ if ! command -v docker &> /dev/null; then
39
+ info "Installing Docker..."
40
+ if command -v apt-get &> /dev/null; then
41
+ sudo apt-get update -qq
42
+ sudo apt-get install -y -qq ca-certificates curl
43
+ curl -fsSL https://get.docker.com | sudo sh
44
+ sudo usermod -aG docker "$USER" 2>/dev/null || true
45
+ ok "Docker installed. You may need to log out and back in for group changes."
46
+ elif command -v dnf &> /dev/null || command -v yum &> /dev/null; then
47
+ sudo dnf install -y dnf-plugins-core 2>/dev/null || sudo yum install -y yum-utils
48
+ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 2>/dev/null || sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
49
+ sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin 2>/dev/null || sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
50
+ sudo systemctl enable --now docker
51
+ sudo usermod -aG docker "$USER" 2>/dev/null || true
52
+ ok "Docker installed."
53
+ else
54
+ err "Unsupported package manager. Install Docker manually: https://docs.docker.com/engine/install/"
55
+ exit 1
56
+ fi
57
+ else
58
+ ok "Docker already installed."
59
+ fi
60
+
61
+ if ! docker compose version &> /dev/null; then
62
+ err "Docker Compose (v2) plugin not found. Install it: https://docs.docker.com/compose/install/"
63
+ exit 1
64
+ fi
65
+
66
+ if ! docker info &> /dev/null 2>&1; then
67
+ err "Docker daemon not running. Start it (e.g. sudo systemctl start docker) and re-run this script."
68
+ exit 1
69
+ fi
70
+
71
+ # Use project start script if present, else docker compose up
72
+ if [ -f "scripts/start.sh" ]; then
73
+ info "Starting stack via scripts/start.sh..."
74
+ bash scripts/start.sh
75
+ else
76
+ if [ -f ".env.example" ] && [ ! -f ".env" ]; then cp .env.example .env; fi
77
+ info "Starting stack..."
78
+ docker compose up -d --remove-orphans
79
+ echo ""
80
+ ok "Stack started. Gateway: http://localhost:\${OPENCLAW_GATEWAY_PORT:-18789}"
81
+ fi
82
+ `;
83
+
84
+ const MACOS_SCRIPT_PREFIX_NATIVE = `
85
+ if [ -f "native/install-macos.sh" ]; then
86
+ info "Installing and starting native services..."
87
+ bash native/install-macos.sh
88
+ ok "Native services ready."
89
+ fi
90
+ `;
91
+
92
+ const MACOS_SCRIPT = `#!/usr/bin/env bash
93
+ set -euo pipefail
94
+
95
+ # OpenClaw bare-metal installer (macOS)
96
+ # Optionally runs native services, then Docker Desktop + compose.
97
+ # Idempotent: safe to re-run.
98
+
99
+ SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
100
+ cd "$SCRIPT_DIR"
101
+
102
+ if [ -t 1 ]; then
103
+ RED='\\033[0;31m'; GREEN='\\033[0;32m'; YELLOW='\\033[1;33m'; CYAN='\\033[0;36m'; NC='\\033[0m'
104
+ else
105
+ RED=''; GREEN=''; YELLOW=''; CYAN=''; NC=''
106
+ fi
107
+ info() { echo -e "\${CYAN}ℹ $*\${NC}"; }
108
+ ok() { echo -e "\${GREEN}✅ $*\${NC}"; }
109
+ warn() { echo -e "\${YELLOW}⚠️ $*\${NC}"; }
110
+ err() { echo -e "\${RED}❌ $*\${NC}" >&2; }
111
+ __NATIVE_BLOCK__
112
+ if ! command -v docker &> /dev/null; then
113
+ if command -v brew &> /dev/null; then
114
+ info "Installing Docker via Homebrew..."
115
+ brew install --cask docker
116
+ warn "Docker Desktop was installed. Please open Docker from Applications, then re-run this script."
117
+ exit 0
118
+ else
119
+ err "Docker not found. Install Docker Desktop from https://docs.docker.com/desktop/install/mac-install/ or run: brew install --cask docker"
120
+ exit 1
121
+ fi
122
+ fi
123
+
124
+ if ! docker info &> /dev/null 2>&1; then
125
+ err "Docker daemon not running. Open Docker Desktop from Applications, then re-run this script."
126
+ exit 1
127
+ fi
128
+
129
+ if ! docker compose version &> /dev/null; then
130
+ err "Docker Compose (v2) not available. Ensure Docker Desktop is up to date."
131
+ exit 1
132
+ fi
133
+
134
+ if [ -f "scripts/start.sh" ]; then
135
+ info "Starting stack via scripts/start.sh..."
136
+ bash scripts/start.sh
137
+ else
138
+ if [ -f ".env.example" ] && [ ! -f ".env" ]; then cp .env.example .env; fi
139
+ info "Starting stack..."
140
+ docker compose up -d --remove-orphans
141
+ echo ""
142
+ ok "Stack started. Gateway: http://localhost:\${OPENCLAW_GATEWAY_PORT:-18789}"
143
+ fi
144
+ `;
145
+
146
+ const WINDOWS_SCRIPT_PREFIX_NATIVE = `
147
+ if (Test-Path "native/install-windows.ps1") {
148
+ Info "Installing and starting native services..."
149
+ & .\\native\\install-windows.ps1
150
+ Ok "Native services ready."
151
+ }
152
+ `;
153
+
154
+ const WINDOWS_SCRIPT = `# OpenClaw bare-metal installer (Windows PowerShell)
155
+ # Optionally runs native services, then Docker Desktop + compose.
156
+ # Idempotent: safe to re-run. Run in PowerShell as Administrator if installing Docker.
157
+
158
+ $ErrorActionPreference = "Stop"
159
+ $ProjectDir = $PSScriptRoot
160
+ Set-Location $ProjectDir
161
+
162
+ function Info { Write-Host " $args" -ForegroundColor Cyan }
163
+ function Ok { Write-Host " $args" -ForegroundColor Green }
164
+ function Warn { Write-Host " $args" -ForegroundColor Yellow }
165
+ function Err { Write-Host " $args" -ForegroundColor Red; exit 1 }
166
+ __NATIVE_BLOCK__
167
+ # Check Docker
168
+ $docker = Get-Command docker -ErrorAction SilentlyContinue
169
+ if (-not $docker) {
170
+ Write-Host ""
171
+ Write-Host " Docker not found." -ForegroundColor Red
172
+ Write-Host " Install Docker Desktop from: https://docs.docker.com/desktop/install/windows-install/"
173
+ Write-Host " Then restart PowerShell and run this script again."
174
+ exit 1
175
+ }
176
+
177
+ try { docker info 2>$null | Out-Null } catch {
178
+ Write-Host ""
179
+ Write-Host " Docker daemon is not running." -ForegroundColor Red
180
+ Write-Host " Start Docker Desktop from the Start menu, then run this script again."
181
+ exit 1
182
+ }
183
+
184
+ try { docker compose version 2>$null | Out-Null } catch {
185
+ Write-Host ""
186
+ Write-Host " Docker Compose (v2) not available. Update Docker Desktop." -ForegroundColor Red
187
+ exit 1
188
+ }
189
+
190
+ Ok "Docker is ready."
191
+
192
+ # Prepare .env
193
+ if (-not (Test-Path ".env")) {
194
+ if (Test-Path ".env.example") {
195
+ Copy-Item ".env.example" ".env"
196
+ Info "Created .env from .env.example"
197
+ }
198
+ }
199
+
200
+ # Create dirs
201
+ $configDir = if ($env:OPENCLAW_CONFIG_DIR) { $env:OPENCLAW_CONFIG_DIR } else { "./openclaw/config" }
202
+ $workspaceDir = if ($env:OPENCLAW_WORKSPACE_DIR) { $env:OPENCLAW_WORKSPACE_DIR } else { "./openclaw/workspace" }
203
+ New-Item -ItemType Directory -Force -Path $configDir | Out-Null
204
+ New-Item -ItemType Directory -Force -Path $workspaceDir | Out-Null
205
+ Ok "Directories ready."
206
+
207
+ # Start stack
208
+ Info "Starting stack..."
209
+ docker compose up -d --remove-orphans
210
+
211
+ $port = if ($env:OPENCLAW_GATEWAY_PORT) { $env:OPENCLAW_GATEWAY_PORT } else { "18789" }
212
+ Write-Host ""
213
+ Ok "Stack started. Gateway: http://localhost:$port"
214
+ `;
215
+
216
+ export interface BareMetalInstallOptions {
217
+ platform: Platform;
218
+ projectName: string;
219
+ /** When true, top-level script runs native/install-*.sh|ps1 first, then Docker + compose. */
220
+ hasNativeServices?: boolean;
221
+ }
222
+
223
+ /**
224
+ * Returns one file: install.sh (Linux/macOS) or install.ps1 (Windows).
225
+ * When hasNativeServices is true, the script runs the native installer first, then Docker + compose.
226
+ */
227
+ export function generateBareMetalInstall(options: BareMetalInstallOptions): Record<string, string> {
228
+ const { platform, hasNativeServices } = options;
229
+ const files: Record<string, string> = {};
230
+
231
+ if (platform === "windows/amd64") {
232
+ const script = hasNativeServices
233
+ ? WINDOWS_SCRIPT.replace("__NATIVE_BLOCK__", WINDOWS_SCRIPT_PREFIX_NATIVE)
234
+ : WINDOWS_SCRIPT.replace("__NATIVE_BLOCK__", "");
235
+ files["install.ps1"] = script;
236
+ return files;
237
+ }
238
+
239
+ const isMac = platform.startsWith("macos/");
240
+ const baseScript = isMac ? MACOS_SCRIPT : LINUX_SCRIPT;
241
+ const prefix = hasNativeServices
242
+ ? isMac
243
+ ? MACOS_SCRIPT_PREFIX_NATIVE
244
+ : LINUX_SCRIPT_PREFIX_NATIVE
245
+ : "";
246
+ const script = baseScript.replace("__NATIVE_BLOCK__", prefix);
247
+ files["install.sh"] = script;
248
+ return files;
249
+ }
@@ -0,0 +1,99 @@
1
+ import type { ResolverOutput } from "../types.js";
2
+
3
+ /**
4
+ * Generates a Caddyfile with reverse proxy entries for each exposed service.
5
+ *
6
+ * Each service with exposed ports gets a subdomain route under the provided domain.
7
+ * Services without exposed ports are skipped.
8
+ *
9
+ * @param resolved - The resolved service configuration
10
+ * @param domain - The main domain for routing (e.g. "example.com")
11
+ * @returns The Caddyfile content as a string
12
+ */
13
+ export function generateCaddyfile(resolved: ResolverOutput, domain: string): string {
14
+ const sections: string[] = [];
15
+
16
+ // ── Global Options ──────────────────────────────────────────────────────
17
+
18
+ sections.push(`# ═══════════════════════════════════════════════════════════════════════════════
19
+ # OpenClaw Caddyfile — Auto-generated reverse proxy configuration
20
+ # Domain: ${domain}
21
+ # ═══════════════════════════════════════════════════════════════════════════════
22
+
23
+ {
24
+ # Global options
25
+ email admin@${domain}
26
+ acme_ca https://acme-v02.api.letsencrypt.org/directory
27
+ }
28
+ `);
29
+
30
+ // ── Per-Service Reverse Proxy Blocks ─────────────────────────────────────
31
+
32
+ for (const { definition } of resolved.services) {
33
+ // Skip the proxy service itself
34
+ if (definition.id === "caddy" || definition.id === "traefik") continue;
35
+
36
+ const exposedPorts = definition.ports.filter((p) => p.exposed);
37
+ if (exposedPorts.length === 0) continue;
38
+
39
+ // Use the first exposed port as the primary route target
40
+ const primaryPort = exposedPorts[0]!;
41
+ const subdomain = `${definition.id}.${domain}`;
42
+
43
+ const block = [
44
+ `# ${definition.icon} ${definition.name}`,
45
+ `# ${definition.description}`,
46
+ `${subdomain} {`,
47
+ ` reverse_proxy ${definition.id}:${primaryPort.container} {`,
48
+ ` header_up Host {host}`,
49
+ ` header_up X-Real-IP {remote_host}`,
50
+ ` header_up X-Forwarded-For {remote_host}`,
51
+ ` header_up X-Forwarded-Proto {scheme}`,
52
+ ` }`,
53
+ ];
54
+
55
+ // Add health check if service has one
56
+ if (definition.healthcheck) {
57
+ block.push("");
58
+ block.push(` # Health check`);
59
+ block.push(` handle /health {`);
60
+ block.push(` reverse_proxy ${definition.id}:${primaryPort.container}`);
61
+ block.push(` }`);
62
+ }
63
+
64
+ block.push(`}`);
65
+ block.push("");
66
+
67
+ // If there are additional exposed ports, add them as separate entries
68
+ for (let i = 1; i < exposedPorts.length; i++) {
69
+ const port = exposedPorts[i]!;
70
+ const portSubdomain = `${definition.id}-${port.description
71
+ .toLowerCase()
72
+ .replace(/[^a-z0-9]+/g, "-")
73
+ .replace(/-+$/, "")}.${domain}`;
74
+
75
+ block.push(`# ${definition.name} — ${port.description}`);
76
+ block.push(`${portSubdomain} {`);
77
+ block.push(` reverse_proxy ${definition.id}:${port.container}`);
78
+ block.push(`}`);
79
+ block.push("");
80
+ }
81
+
82
+ sections.push(block.join("\n"));
83
+ }
84
+
85
+ // ── Fallback / Root Domain ──────────────────────────────────────────────
86
+
87
+ sections.push(`# Root domain — serves the OpenClaw gateway
88
+ ${domain} {
89
+ reverse_proxy openclaw:18789 {
90
+ header_up Host {host}
91
+ header_up X-Real-IP {remote_host}
92
+ header_up X-Forwarded-For {remote_host}
93
+ header_up X-Forwarded-Proto {scheme}
94
+ }
95
+ }
96
+ `);
97
+
98
+ return sections.join("\n");
99
+ }