@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 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/generators/env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Generates Grafana provisioning configuration files.
3
+ *
4
+ * Returns a map of file paths (relative to project root) to file contents.
5
+ * Includes datasource provisioning YAML for the Prometheus connection.
6
+ */
7
+ export declare function generateGrafanaConfig(): Record<string, string>;
8
+ /**
9
+ * Generates a Grafana dashboard JSON for the OpenClaw stack overview.
10
+ *
11
+ * The dashboard includes:
12
+ * - Service Health (stat panel)
13
+ * - Memory Usage (gauge)
14
+ * - Request Rate (graph)
15
+ *
16
+ * Uses Prometheus as the datasource.
17
+ */
18
+ export declare function generateGrafanaDashboard(): string;
19
+ //# sourceMappingURL=grafana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grafana.d.ts","sourceRoot":"","sources":["../../src/generators/grafana.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqF9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAuJjD"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Generates Grafana provisioning configuration files.
3
+ *
4
+ * Returns a map of file paths (relative to project root) to file contents.
5
+ * Includes datasource provisioning YAML for the Prometheus connection.
6
+ */
7
+ export function generateGrafanaConfig() {
8
+ const files = {};
9
+ // ── Datasource Provisioning ─────────────────────────────────────────────
10
+ files["config/grafana/provisioning/datasources/prometheus.yml"] =
11
+ `# ═══════════════════════════════════════════════════════════════════════════════
12
+ # Grafana Datasource Provisioning — Auto-generated by OpenClaw
13
+ # ═══════════════════════════════════════════════════════════════════════════════
14
+
15
+ apiVersion: 1
16
+
17
+ datasources:
18
+ # Prometheus — primary metrics datasource
19
+ - name: Prometheus
20
+ type: prometheus
21
+ access: proxy
22
+ url: http://prometheus:9090
23
+ isDefault: true
24
+ editable: true
25
+ jsonData:
26
+ httpMethod: POST
27
+ timeInterval: "15s"
28
+ exemplarTraceIdDestinations:
29
+ - name: traceID
30
+ datasourceUid: ""
31
+ version: 1
32
+ `;
33
+ // ── Dashboard Provisioning ───────────────────────────────────────────────
34
+ files["config/grafana/provisioning/dashboards/default.yml"] =
35
+ `# ═══════════════════════════════════════════════════════════════════════════════
36
+ # Grafana Dashboard Provisioning — Auto-generated by OpenClaw
37
+ # ═══════════════════════════════════════════════════════════════════════════════
38
+
39
+ apiVersion: 1
40
+
41
+ providers:
42
+ - name: "OpenClaw Dashboards"
43
+ orgId: 1
44
+ folder: "OpenClaw"
45
+ type: file
46
+ disableDeletion: false
47
+ editable: true
48
+ updateIntervalSeconds: 30
49
+ allowUiUpdates: true
50
+ options:
51
+ path: /var/lib/grafana/dashboards
52
+ foldersFromFilesStructure: false
53
+ `;
54
+ // ── Grafana Configuration (grafana.ini overrides) ────────────────────────
55
+ files["config/grafana/grafana.ini"] =
56
+ `# ═══════════════════════════════════════════════════════════════════════════════
57
+ # Grafana Configuration — Auto-generated by OpenClaw
58
+ # ═══════════════════════════════════════════════════════════════════════════════
59
+
60
+ [server]
61
+ root_url = %(protocol)s://%(domain)s/
62
+
63
+ [security]
64
+ # Admin credentials are set via environment variables:
65
+ # GF_SECURITY_ADMIN_USER
66
+ # GF_SECURITY_ADMIN_PASSWORD
67
+
68
+ [auth.anonymous]
69
+ enabled = false
70
+
71
+ [dashboards]
72
+ default_home_dashboard_path = /var/lib/grafana/dashboards/home.json
73
+
74
+ [alerting]
75
+ enabled = true
76
+
77
+ [unified_alerting]
78
+ enabled = true
79
+
80
+ [log]
81
+ mode = console
82
+ level = info
83
+ `;
84
+ return files;
85
+ }
86
+ /**
87
+ * Generates a Grafana dashboard JSON for the OpenClaw stack overview.
88
+ *
89
+ * The dashboard includes:
90
+ * - Service Health (stat panel)
91
+ * - Memory Usage (gauge)
92
+ * - Request Rate (graph)
93
+ *
94
+ * Uses Prometheus as the datasource.
95
+ */
96
+ export function generateGrafanaDashboard() {
97
+ const dashboard = {
98
+ annotations: { list: [] },
99
+ editable: true,
100
+ fiscalYearStartMonth: 0,
101
+ graphTooltip: 1,
102
+ links: [],
103
+ panels: [
104
+ {
105
+ // ── Service Health (stat panel) ──
106
+ id: 1,
107
+ title: "Service Health",
108
+ type: "stat",
109
+ gridPos: { h: 8, w: 8, x: 0, y: 0 },
110
+ datasource: { type: "prometheus", uid: "prometheus" },
111
+ targets: [
112
+ {
113
+ expr: 'count(up{job=~".+"} == 1)',
114
+ legendFormat: "Healthy Services",
115
+ refId: "A",
116
+ },
117
+ ],
118
+ fieldConfig: {
119
+ defaults: {
120
+ thresholds: {
121
+ mode: "absolute",
122
+ steps: [
123
+ { color: "red", value: null },
124
+ { color: "yellow", value: 1 },
125
+ { color: "green", value: 3 },
126
+ ],
127
+ },
128
+ color: { mode: "thresholds" },
129
+ mappings: [],
130
+ },
131
+ overrides: [],
132
+ },
133
+ options: {
134
+ reduceOptions: {
135
+ values: false,
136
+ calcs: ["lastNotNull"],
137
+ fields: "",
138
+ },
139
+ orientation: "auto",
140
+ textMode: "auto",
141
+ colorMode: "background",
142
+ graphMode: "none",
143
+ justifyMode: "auto",
144
+ },
145
+ },
146
+ {
147
+ // ── Memory Usage (gauge) ──
148
+ id: 2,
149
+ title: "Memory Usage",
150
+ type: "gauge",
151
+ gridPos: { h: 8, w: 8, x: 8, y: 0 },
152
+ datasource: { type: "prometheus", uid: "prometheus" },
153
+ targets: [
154
+ {
155
+ expr: "sum(container_memory_usage_bytes) / sum(machine_memory_bytes) * 100",
156
+ legendFormat: "Memory %",
157
+ refId: "A",
158
+ },
159
+ ],
160
+ fieldConfig: {
161
+ defaults: {
162
+ thresholds: {
163
+ mode: "absolute",
164
+ steps: [
165
+ { color: "green", value: null },
166
+ { color: "yellow", value: 60 },
167
+ { color: "red", value: 85 },
168
+ ],
169
+ },
170
+ color: { mode: "thresholds" },
171
+ min: 0,
172
+ max: 100,
173
+ unit: "percent",
174
+ mappings: [],
175
+ },
176
+ overrides: [],
177
+ },
178
+ options: {
179
+ reduceOptions: {
180
+ values: false,
181
+ calcs: ["lastNotNull"],
182
+ fields: "",
183
+ },
184
+ orientation: "auto",
185
+ showThresholdLabels: false,
186
+ showThresholdMarkers: true,
187
+ },
188
+ },
189
+ {
190
+ // ── Request Rate (graph / timeseries) ──
191
+ id: 3,
192
+ title: "Request Rate",
193
+ type: "timeseries",
194
+ gridPos: { h: 8, w: 8, x: 16, y: 0 },
195
+ datasource: { type: "prometheus", uid: "prometheus" },
196
+ targets: [
197
+ {
198
+ expr: 'sum(rate(http_requests_total{job=~".+"}[5m])) by (job)',
199
+ legendFormat: "{{job}}",
200
+ refId: "A",
201
+ },
202
+ ],
203
+ fieldConfig: {
204
+ defaults: {
205
+ color: { mode: "palette-classic" },
206
+ custom: {
207
+ axisBorderShow: false,
208
+ axisCenteredZero: false,
209
+ axisColorMode: "text",
210
+ axisLabel: "req/s",
211
+ drawStyle: "line",
212
+ fillOpacity: 10,
213
+ gradientMode: "none",
214
+ lineInterpolation: "smooth",
215
+ lineWidth: 2,
216
+ pointSize: 5,
217
+ showPoints: "auto",
218
+ spanNulls: false,
219
+ stacking: { group: "A", mode: "none" },
220
+ },
221
+ mappings: [],
222
+ thresholds: {
223
+ mode: "absolute",
224
+ steps: [{ color: "green", value: null }],
225
+ },
226
+ unit: "reqps",
227
+ },
228
+ overrides: [],
229
+ },
230
+ options: {
231
+ legend: { calcs: [], displayMode: "list", placement: "bottom" },
232
+ tooltip: { mode: "multi", sort: "desc" },
233
+ },
234
+ },
235
+ ],
236
+ schemaVersion: 39,
237
+ tags: ["openclaw"],
238
+ templating: { list: [] },
239
+ time: { from: "now-1h", to: "now" },
240
+ timepicker: {},
241
+ timezone: "browser",
242
+ title: "OpenClaw Stack Overview",
243
+ uid: "openclaw-stack-overview",
244
+ };
245
+ return JSON.stringify(dashboard, null, 2);
246
+ }
247
+ //# sourceMappingURL=grafana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grafana.js","sourceRoot":"","sources":["../../src/generators/grafana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ResolverOutput } from "../types.js";
2
+ /**
3
+ * Generates n8n workflow template files.
4
+ * Returns a map of file paths to JSON content strings.
5
+ */
6
+ export declare function generateN8nWorkflows(resolved: ResolverOutput): Record<string, string>;
7
+ //# sourceMappingURL=n8n-workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-workflows.d.ts","sourceRoot":"","sources":["../../src/generators/n8n-workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcrF"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Generates n8n workflow template files.
3
+ * Returns a map of file paths to JSON content strings.
4
+ */
5
+ export function generateN8nWorkflows(resolved) {
6
+ const files = {};
7
+ // Only generate if n8n is in the stack
8
+ const hasN8n = resolved.services.some((s) => s.definition.id === "n8n");
9
+ if (!hasN8n)
10
+ return files;
11
+ files["n8n/workflows/openclaw-webhook-handler.json"] = JSON.stringify(createWebhookHandlerWorkflow(resolved), null, 2);
12
+ return files;
13
+ }
14
+ function createWebhookHandlerWorkflow(resolved) {
15
+ // Create a basic n8n workflow JSON that:
16
+ // 1. Has a Webhook trigger node listening on /openclaw-webhook
17
+ // 2. Has a Function node that processes the payload
18
+ // 3. Outputs to a Respond to Webhook node
19
+ const serviceNames = resolved.services.map((s) => s.definition.name).join(", ");
20
+ return {
21
+ name: "OpenClaw Webhook Handler",
22
+ nodes: [
23
+ {
24
+ parameters: {
25
+ httpMethod: "POST",
26
+ path: "openclaw-webhook",
27
+ responseMode: "responseNode",
28
+ options: {},
29
+ },
30
+ id: "webhook-trigger",
31
+ name: "Webhook",
32
+ type: "n8n-nodes-base.webhook",
33
+ typeVersion: 2,
34
+ position: [250, 300],
35
+ },
36
+ {
37
+ parameters: {
38
+ jsCode: "// Process OpenClaw webhook payload\n" +
39
+ "const payload = $input.all()[0].json;\n" +
40
+ "\n" +
41
+ "// Available services in this stack:\n" +
42
+ `// ${serviceNames}\n` +
43
+ "\n" +
44
+ "return [{ json: { received: true, timestamp: new Date().toISOString(), payload } }];",
45
+ },
46
+ id: "process-payload",
47
+ name: "Process Payload",
48
+ type: "n8n-nodes-base.code",
49
+ typeVersion: 2,
50
+ position: [470, 300],
51
+ },
52
+ {
53
+ parameters: {
54
+ respondWith: "json",
55
+ responseBody: "={{ JSON.stringify($json) }}",
56
+ options: {},
57
+ },
58
+ id: "respond",
59
+ name: "Respond to Webhook",
60
+ type: "n8n-nodes-base.respondToWebhook",
61
+ typeVersion: 1,
62
+ position: [690, 300],
63
+ },
64
+ ],
65
+ connections: {
66
+ Webhook: {
67
+ main: [[{ node: "Process Payload", type: "main", index: 0 }]],
68
+ },
69
+ "Process Payload": {
70
+ main: [[{ node: "Respond to Webhook", type: "main", index: 0 }]],
71
+ },
72
+ },
73
+ active: false,
74
+ settings: { executionOrder: "v1" },
75
+ tags: [{ name: "openclaw" }],
76
+ };
77
+ }
78
+ //# sourceMappingURL=n8n-workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-workflows.js","sourceRoot":"","sources":["../../src/generators/n8n-workflows.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwB;IAC5D,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,uCAAuC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,KAAK,CAAC,6CAA6C,CAAC,GAAG,IAAI,CAAC,SAAS,CACpE,4BAA4B,CAAC,QAAQ,CAAC,EACtC,IAAI,EACJ,CAAC,CACD,CAAC;IAEF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAwB;IAC7D,yCAAyC;IACzC,+DAA+D;IAC/D,oDAAoD;IACpD,0CAA0C;IAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhF,OAAO;QACN,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE;YACN;gBACC,UAAU,EAAE;oBACX,UAAU,EAAE,MAAM;oBAClB,IAAI,EAAE,kBAAkB;oBACxB,YAAY,EAAE,cAAc;oBAC5B,OAAO,EAAE,EAAE;iBACX;gBACD,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB;YACD;gBACC,UAAU,EAAE;oBACX,MAAM,EACL,uCAAuC;wBACvC,yCAAyC;wBACzC,IAAI;wBACJ,wCAAwC;wBACxC,MAAM,YAAY,IAAI;wBACtB,IAAI;wBACJ,sFAAsF;iBACvF;gBACD,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB;YACD;gBACC,UAAU,EAAE;oBACX,WAAW,EAAE,MAAM;oBACnB,YAAY,EAAE,8BAA8B;oBAC5C,OAAO,EAAE,EAAE;iBACX;gBACD,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,iCAAiC;gBACvC,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB;SACD;QACD,WAAW,EAAE;YACZ,OAAO,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7D;YACD,iBAAiB,EAAE;gBAClB,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAChE;SACD;QACD,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;QAClC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { NativePlatform, ResolvedService } from "../types.js";
2
+ export interface NativeServicesGeneratorOptions {
3
+ nativeServices: ResolvedService[];
4
+ platform: NativePlatform;
5
+ projectName: string;
6
+ }
7
+ /**
8
+ * Generates native install/run scripts for services that have a native recipe.
9
+ * Returns e.g. native/install-linux.sh (or native/install.ps1 for Windows).
10
+ * Scripts source .env and run install steps then start commands in dependency order.
11
+ */
12
+ export declare function generateNativeInstallScripts(options: NativeServicesGeneratorOptions): Record<string, string>;
13
+ //# sourceMappingURL=native-services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-services.d.ts","sourceRoot":"","sources":["../../src/generators/native-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,WAAW,8BAA8B;IAC9C,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,8BAA8B,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Generates native install/run scripts for services that have a native recipe.
3
+ * Returns e.g. native/install-linux.sh (or native/install.ps1 for Windows).
4
+ * Scripts source .env and run install steps then start commands in dependency order.
5
+ */
6
+ export function generateNativeInstallScripts(options) {
7
+ const { nativeServices, platform } = options;
8
+ const files = {};
9
+ if (platform === "linux") {
10
+ files["native/install-linux.sh"] = buildLinuxNativeScript(nativeServices);
11
+ }
12
+ else if (platform === "windows") {
13
+ files["native/install-windows.ps1"] = buildWindowsNativeScript(nativeServices);
14
+ }
15
+ else {
16
+ // macos: use bash script similar to linux
17
+ files["native/install-macos.sh"] = buildLinuxNativeScript(nativeServices);
18
+ }
19
+ return files;
20
+ }
21
+ function buildLinuxNativeScript(nativeServices) {
22
+ const lines = [
23
+ "#!/usr/bin/env bash",
24
+ "set -euo pipefail",
25
+ "# OpenClaw native services — install and start (Linux). Run from project root. Source .env first.",
26
+ "",
27
+ 'SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"',
28
+ 'PROJECT_DIR="$(dirname "$SCRIPT_DIR")"',
29
+ 'cd "$PROJECT_DIR"',
30
+ "",
31
+ "if [ -f .env ]; then set -a; source .env; set +a; fi",
32
+ "",
33
+ ];
34
+ for (const { definition: def } of nativeServices) {
35
+ const recipe = def.nativeRecipes?.find((r) => r.platform === "linux");
36
+ if (!recipe)
37
+ continue;
38
+ lines.push(`# ─── ${def.icon} ${def.name} ─────────────────────────────────────────`);
39
+ lines.push("");
40
+ if (recipe.configPath && recipe.configTemplate) {
41
+ const delim = `ENDOF_${def.id.toUpperCase().replace(/-/g, "_")}_CONF`;
42
+ lines.push(`# Write config for ${def.id}`);
43
+ lines.push(`sudo mkdir -p "$(dirname "${recipe.configPath}")" 2>/dev/null || true`);
44
+ lines.push(`sudo tee "${recipe.configPath}" > /dev/null << ${delim}`);
45
+ lines.push(recipe.configTemplate.trim());
46
+ lines.push(delim);
47
+ lines.push("");
48
+ }
49
+ for (const step of recipe.installSteps) {
50
+ lines.push(`# Install: ${def.id}`);
51
+ lines.push(step);
52
+ lines.push("");
53
+ }
54
+ lines.push(`# Start: ${def.id}`);
55
+ lines.push(recipe.startCommand);
56
+ lines.push("");
57
+ }
58
+ lines.push("echo 'Native services started.'");
59
+ return lines.join("\n");
60
+ }
61
+ function buildWindowsNativeScript(nativeServices) {
62
+ const lines = [
63
+ "# OpenClaw native services — install and start (Windows). Run from project root.",
64
+ "$ErrorActionPreference = 'Stop'",
65
+ "$ProjectDir = (Get-Item $PSScriptRoot).Parent.FullName",
66
+ "Set-Location $ProjectDir",
67
+ "",
68
+ "if (Test-Path .env) { Get-Content .env | ForEach-Object { if ($_ -match '^([^#=]+)=(.*)$') { [System.Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim(), 'Process') } } }",
69
+ "",
70
+ ];
71
+ for (const { definition: def } of nativeServices) {
72
+ const recipe = def.nativeRecipes?.find((r) => r.platform === "windows");
73
+ if (!recipe)
74
+ continue;
75
+ lines.push(`# ${def.name}`);
76
+ for (const step of recipe.installSteps) {
77
+ lines.push(`Invoke-Expression "${step.replace(/"/g, '`"')}"`);
78
+ }
79
+ lines.push(recipe.startCommand);
80
+ lines.push("");
81
+ }
82
+ lines.push("Write-Host 'Native services started.'");
83
+ return lines.join("\n");
84
+ }
85
+ //# sourceMappingURL=native-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-services.js","sourceRoot":"","sources":["../../src/generators/native-services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ResolverOutput } from "../types.js";
2
+ /**
3
+ * Database requirement descriptor for a service.
4
+ */
5
+ interface DbRequirement {
6
+ serviceId: string;
7
+ serviceName: string;
8
+ dbName: string;
9
+ dbUser: string;
10
+ passwordEnvVar: string;
11
+ }
12
+ /**
13
+ * Get the list of database requirements for all resolved services.
14
+ * Exported so other generators (env, composer) can access the same data.
15
+ */
16
+ export declare function getDbRequirements(resolved: ResolverOutput): DbRequirement[];
17
+ /**
18
+ * Generates a PostgreSQL initialization script that creates databases and users
19
+ * for all companion services that need their own DB.
20
+ *
21
+ * Returns null if PostgreSQL is not in the resolved stack or no services need extra DBs.
22
+ * The script is designed to be mounted at /docker-entrypoint-initdb.d/init-databases.sh
23
+ * and runs automatically during PostgreSQL's first initialization.
24
+ */
25
+ export declare function generatePostgresInit(resolved: ResolverOutput): string | null;
26
+ export {};
27
+ //# sourceMappingURL=postgres-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-init.d.ts","sourceRoot":"","sources":["../../src/generators/postgres-init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,UAAU,aAAa;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACvB;AA4BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,EAAE,CAa3E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAsE5E"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Known database requirements for services that need their own PostgreSQL database.
3
+ * Maps service ID to the DB name, user, and password env var they expect.
4
+ */
5
+ const DB_REQUIREMENTS = {
6
+ n8n: { dbName: "n8n", dbUser: "n8n", passwordEnvVar: "N8N_DB_PASSWORD" },
7
+ postiz: { dbName: "postiz", dbUser: "postiz", passwordEnvVar: "POSTIZ_DB_PASSWORD" },
8
+ outline: { dbName: "outline", dbUser: "outline", passwordEnvVar: "OUTLINE_DB_PASSWORD" },
9
+ dify: { dbName: "dify", dbUser: "dify", passwordEnvVar: "DIFY_DB_PASSWORD" },
10
+ temporal: { dbName: "temporal", dbUser: "temporal", passwordEnvVar: "TEMPORAL_DB_PASSWORD" },
11
+ mattermost: {
12
+ dbName: "mattermost",
13
+ dbUser: "mattermost",
14
+ passwordEnvVar: "MATTERMOST_DB_PASSWORD",
15
+ },
16
+ "matrix-synapse": { dbName: "synapse", dbUser: "synapse", passwordEnvVar: "SYNAPSE_DB_PASSWORD" },
17
+ "paperless-ngx": {
18
+ dbName: "paperless",
19
+ dbUser: "paperless",
20
+ passwordEnvVar: "PAPERLESS_DB_PASSWORD",
21
+ },
22
+ umami: { dbName: "umami", dbUser: "umami", passwordEnvVar: "UMAMI_DB_PASSWORD" },
23
+ matomo: { dbName: "matomo", dbUser: "matomo", passwordEnvVar: "MATOMO_DB_PASSWORD" },
24
+ mixpost: { dbName: "mixpost", dbUser: "mixpost", passwordEnvVar: "MIXPOST_DB_PASSWORD" },
25
+ };
26
+ /**
27
+ * Get the list of database requirements for all resolved services.
28
+ * Exported so other generators (env, composer) can access the same data.
29
+ */
30
+ export function getDbRequirements(resolved) {
31
+ const reqs = [];
32
+ for (const { definition } of resolved.services) {
33
+ const req = DB_REQUIREMENTS[definition.id];
34
+ if (req) {
35
+ reqs.push({
36
+ serviceId: definition.id,
37
+ serviceName: definition.name,
38
+ ...req,
39
+ });
40
+ }
41
+ }
42
+ return reqs;
43
+ }
44
+ /**
45
+ * Generates a PostgreSQL initialization script that creates databases and users
46
+ * for all companion services that need their own DB.
47
+ *
48
+ * Returns null if PostgreSQL is not in the resolved stack or no services need extra DBs.
49
+ * The script is designed to be mounted at /docker-entrypoint-initdb.d/init-databases.sh
50
+ * and runs automatically during PostgreSQL's first initialization.
51
+ */
52
+ export function generatePostgresInit(resolved) {
53
+ const hasPostgres = resolved.services.some((s) => s.definition.id === "postgresql");
54
+ if (!hasPostgres)
55
+ return null;
56
+ const reqs = getDbRequirements(resolved);
57
+ if (reqs.length === 0)
58
+ return null;
59
+ const createCalls = reqs
60
+ .map((r) => `create_db_and_user "${r.dbName}" "${r.dbUser}" "\${${r.passwordEnvVar}:-$POSTGRES_PASSWORD}"`)
61
+ .join("\n");
62
+ return `#!/bin/bash
63
+ set -e
64
+
65
+ # ═══════════════════════════════════════════════════════════════════════════════
66
+ # PostgreSQL Initialization Script
67
+ # Generated by better-openclaw
68
+ #
69
+ # This script runs automatically during PostgreSQL's first initialization.
70
+ # It creates databases and users for all companion services in your stack.
71
+ # ═══════════════════════════════════════════════════════════════════════════════
72
+
73
+ create_db_and_user() {
74
+ local db="$1"
75
+ local user="$2"
76
+ local password="$3"
77
+
78
+ echo ">>> Creating database '$db' with user '$user'..."
79
+
80
+ psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
81
+ -- Create user if not exists
82
+ DO \\$\\$
83
+ BEGIN
84
+ IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$user') THEN
85
+ CREATE ROLE "$user" WITH LOGIN PASSWORD '$password';
86
+ RAISE NOTICE 'Created user: $user';
87
+ ELSE
88
+ -- Update password in case it changed
89
+ ALTER ROLE "$user" WITH PASSWORD '$password';
90
+ RAISE NOTICE 'User already exists, updated password: $user';
91
+ END IF;
92
+ END
93
+ \\$\\$;
94
+
95
+ -- Create database if not exists
96
+ SELECT 'CREATE DATABASE "$db" OWNER "$user"'
97
+ WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$db')\\gexec
98
+
99
+ -- Grant privileges
100
+ GRANT ALL PRIVILEGES ON DATABASE "$db" TO "$user";
101
+ EOSQL
102
+
103
+ echo ">>> Done: database '$db' with user '$user'"
104
+ }
105
+
106
+ echo "═══════════════════════════════════════════════════════════"
107
+ echo " Initializing databases for companion services..."
108
+ echo "═══════════════════════════════════════════════════════════"
109
+
110
+ ${createCalls}
111
+
112
+ echo ""
113
+ echo "═══════════════════════════════════════════════════════════"
114
+ echo " All databases initialized successfully!"
115
+ echo " Services: ${reqs.map((r) => r.serviceName).join(", ")}"
116
+ echo "═══════════════════════════════════════════════════════════"
117
+ `;
118
+ }
119
+ //# sourceMappingURL=postgres-init.js.map