@better-openclaw/core 1.0.6 → 1.0.8

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 (574) 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 +714 -2
  73. package/dist/schema.d.mts.map +1 -0
  74. package/dist/schema.mjs +6 -2
  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/comfyui.d.mts +7 -0
  114. package/dist/services/definitions/comfyui.d.mts.map +1 -0
  115. package/dist/services/definitions/comfyui.mjs +83 -0
  116. package/dist/services/definitions/comfyui.mjs.map +1 -0
  117. package/dist/services/definitions/convex-dashboard.d.mts +7 -0
  118. package/dist/services/definitions/convex-dashboard.d.mts.map +1 -0
  119. package/dist/services/definitions/convex-dashboard.mjs +46 -0
  120. package/dist/services/definitions/convex-dashboard.mjs.map +1 -0
  121. package/dist/services/definitions/convex.d.mts +7 -0
  122. package/dist/services/definitions/convex.d.mts.map +1 -0
  123. package/dist/services/definitions/convex.mjs +118 -0
  124. package/dist/services/definitions/convex.mjs.map +1 -0
  125. package/dist/services/definitions/coolify.d.mts +0 -1
  126. package/dist/services/definitions/coolify.d.mts.map +1 -1
  127. package/dist/services/definitions/coolify.mjs +48 -2
  128. package/dist/services/definitions/coolify.mjs.map +1 -0
  129. package/dist/services/definitions/desktop-environment.d.mts +7 -0
  130. package/dist/services/definitions/desktop-environment.d.mts.map +1 -0
  131. package/dist/services/definitions/desktop-environment.mjs +153 -0
  132. package/dist/services/definitions/desktop-environment.mjs.map +1 -0
  133. package/dist/services/definitions/dify.d.mts +0 -1
  134. package/dist/services/definitions/dify.d.mts.map +1 -1
  135. package/dist/services/definitions/dify.mjs +80 -2
  136. package/dist/services/definitions/dify.mjs.map +1 -0
  137. package/dist/services/definitions/docsgpt.d.mts +0 -1
  138. package/dist/services/definitions/docsgpt.d.mts.map +1 -1
  139. package/dist/services/definitions/docsgpt.mjs +44 -2
  140. package/dist/services/definitions/docsgpt.mjs.map +1 -0
  141. package/dist/services/definitions/dokploy.d.mts +0 -1
  142. package/dist/services/definitions/dokploy.d.mts.map +1 -1
  143. package/dist/services/definitions/dokploy.mjs +48 -2
  144. package/dist/services/definitions/dokploy.mjs.map +1 -0
  145. package/dist/services/definitions/dozzle.d.mts +0 -1
  146. package/dist/services/definitions/dozzle.d.mts.map +1 -1
  147. package/dist/services/definitions/dozzle.mjs +40 -2
  148. package/dist/services/definitions/dozzle.mjs.map +1 -0
  149. package/dist/services/definitions/ffmpeg.d.mts +0 -1
  150. package/dist/services/definitions/ffmpeg.d.mts.map +1 -1
  151. package/dist/services/definitions/ffmpeg.mjs +65 -2
  152. package/dist/services/definitions/ffmpeg.mjs.map +1 -0
  153. package/dist/services/definitions/flowise.d.mts +0 -1
  154. package/dist/services/definitions/flowise.d.mts.map +1 -1
  155. package/dist/services/definitions/flowise.mjs +44 -2
  156. package/dist/services/definitions/flowise.mjs.map +1 -0
  157. package/dist/services/definitions/gemini-cli.d.mts +0 -1
  158. package/dist/services/definitions/gemini-cli.d.mts.map +1 -1
  159. package/dist/services/definitions/gemini-cli.mjs +45 -2
  160. package/dist/services/definitions/gemini-cli.mjs.map +1 -0
  161. package/dist/services/definitions/gitea.d.mts +0 -1
  162. package/dist/services/definitions/gitea.d.mts.map +1 -1
  163. package/dist/services/definitions/gitea.mjs +48 -2
  164. package/dist/services/definitions/gitea.mjs.map +1 -0
  165. package/dist/services/definitions/gotify.d.mts +0 -1
  166. package/dist/services/definitions/gotify.d.mts.map +1 -1
  167. package/dist/services/definitions/gotify.mjs +61 -2
  168. package/dist/services/definitions/gotify.mjs.map +1 -0
  169. package/dist/services/definitions/grafana.d.mts +0 -1
  170. package/dist/services/definitions/grafana.d.mts.map +1 -1
  171. package/dist/services/definitions/grafana.mjs +62 -2
  172. package/dist/services/definitions/grafana.mjs.map +1 -0
  173. package/dist/services/definitions/index.d.mts +8 -2
  174. package/dist/services/definitions/index.d.mts.map +1 -1
  175. package/dist/services/definitions/index.mjs +151 -67
  176. package/dist/services/definitions/index.mjs.map +1 -0
  177. package/dist/services/definitions/kimi.d.mts +0 -1
  178. package/dist/services/definitions/kimi.d.mts.map +1 -1
  179. package/dist/services/definitions/kimi.mjs +45 -2
  180. package/dist/services/definitions/kimi.mjs.map +1 -0
  181. package/dist/services/definitions/lasuite-meet-agents.d.mts +0 -1
  182. package/dist/services/definitions/lasuite-meet-agents.d.mts.map +1 -1
  183. package/dist/services/definitions/lasuite-meet-agents.mjs +35 -2
  184. package/dist/services/definitions/lasuite-meet-agents.mjs.map +1 -0
  185. package/dist/services/definitions/lasuite-meet-backend.d.mts +0 -1
  186. package/dist/services/definitions/lasuite-meet-backend.d.mts.map +1 -1
  187. package/dist/services/definitions/lasuite-meet-backend.mjs +133 -2
  188. package/dist/services/definitions/lasuite-meet-backend.mjs.map +1 -0
  189. package/dist/services/definitions/lasuite-meet-frontend.d.mts +0 -1
  190. package/dist/services/definitions/lasuite-meet-frontend.d.mts.map +1 -1
  191. package/dist/services/definitions/lasuite-meet-frontend.mjs +47 -2
  192. package/dist/services/definitions/lasuite-meet-frontend.mjs.map +1 -0
  193. package/dist/services/definitions/librechat.d.mts +0 -1
  194. package/dist/services/definitions/librechat.d.mts.map +1 -1
  195. package/dist/services/definitions/librechat.mjs +49 -2
  196. package/dist/services/definitions/librechat.mjs.map +1 -0
  197. package/dist/services/definitions/lightpanda.d.mts +0 -1
  198. package/dist/services/definitions/lightpanda.d.mts.map +1 -1
  199. package/dist/services/definitions/lightpanda.mjs +58 -2
  200. package/dist/services/definitions/lightpanda.mjs.map +1 -0
  201. package/dist/services/definitions/litellm.d.mts +0 -1
  202. package/dist/services/definitions/litellm.d.mts.map +1 -1
  203. package/dist/services/definitions/litellm.mjs +46 -2
  204. package/dist/services/definitions/litellm.mjs.map +1 -0
  205. package/dist/services/definitions/livekit.d.mts +0 -1
  206. package/dist/services/definitions/livekit.d.mts.map +1 -1
  207. package/dist/services/definitions/livekit.mjs +55 -2
  208. package/dist/services/definitions/livekit.mjs.map +1 -0
  209. package/dist/services/definitions/matomo.d.mts +0 -1
  210. package/dist/services/definitions/matomo.d.mts.map +1 -1
  211. package/dist/services/definitions/matomo.mjs +79 -2
  212. package/dist/services/definitions/matomo.mjs.map +1 -0
  213. package/dist/services/definitions/matrix-synapse.d.mts +0 -1
  214. package/dist/services/definitions/matrix-synapse.d.mts.map +1 -1
  215. package/dist/services/definitions/matrix-synapse.mjs +87 -2
  216. package/dist/services/definitions/matrix-synapse.mjs.map +1 -0
  217. package/dist/services/definitions/mattermost.d.mts +0 -1
  218. package/dist/services/definitions/mattermost.d.mts.map +1 -1
  219. package/dist/services/definitions/mattermost.mjs +60 -2
  220. package/dist/services/definitions/mattermost.mjs.map +1 -0
  221. package/dist/services/definitions/meilisearch.d.mts +0 -1
  222. package/dist/services/definitions/meilisearch.d.mts.map +1 -1
  223. package/dist/services/definitions/meilisearch.mjs +77 -2
  224. package/dist/services/definitions/meilisearch.mjs.map +1 -0
  225. package/dist/services/definitions/minio.d.mts +0 -1
  226. package/dist/services/definitions/minio.d.mts.map +1 -1
  227. package/dist/services/definitions/minio.mjs +101 -2
  228. package/dist/services/definitions/minio.mjs.map +1 -0
  229. package/dist/services/definitions/mission-control.d.mts +7 -0
  230. package/dist/services/definitions/mission-control.d.mts.map +1 -0
  231. package/dist/services/definitions/mission-control.mjs +67 -0
  232. package/dist/services/definitions/mission-control.mjs.map +1 -0
  233. package/dist/services/definitions/mixpost.d.mts +0 -1
  234. package/dist/services/definitions/mixpost.d.mts.map +1 -1
  235. package/dist/services/definitions/mixpost.mjs +86 -2
  236. package/dist/services/definitions/mixpost.mjs.map +1 -0
  237. package/dist/services/definitions/motion-canvas.d.mts +0 -1
  238. package/dist/services/definitions/motion-canvas.d.mts.map +1 -1
  239. package/dist/services/definitions/motion-canvas.mjs +51 -2
  240. package/dist/services/definitions/motion-canvas.mjs.map +1 -0
  241. package/dist/services/definitions/n8n.d.mts +0 -1
  242. package/dist/services/definitions/n8n.d.mts.map +1 -1
  243. package/dist/services/definitions/n8n.mjs +153 -2
  244. package/dist/services/definitions/n8n.mjs.map +1 -0
  245. package/dist/services/definitions/nocodb.d.mts +0 -1
  246. package/dist/services/definitions/nocodb.d.mts.map +1 -1
  247. package/dist/services/definitions/nocodb.mjs +44 -2
  248. package/dist/services/definitions/nocodb.mjs.map +1 -0
  249. package/dist/services/definitions/ntfy.d.mts +0 -1
  250. package/dist/services/definitions/ntfy.d.mts.map +1 -1
  251. package/dist/services/definitions/ntfy.mjs +62 -2
  252. package/dist/services/definitions/ntfy.mjs.map +1 -0
  253. package/dist/services/definitions/ollama.d.mts +0 -1
  254. package/dist/services/definitions/ollama.d.mts.map +1 -1
  255. package/dist/services/definitions/ollama.mjs +65 -2
  256. package/dist/services/definitions/ollama.mjs.map +1 -0
  257. package/dist/services/definitions/open-webui.d.mts +0 -1
  258. package/dist/services/definitions/open-webui.d.mts.map +1 -1
  259. package/dist/services/definitions/open-webui.mjs +49 -2
  260. package/dist/services/definitions/open-webui.mjs.map +1 -0
  261. package/dist/services/definitions/opencode.d.mts +0 -1
  262. package/dist/services/definitions/opencode.d.mts.map +1 -1
  263. package/dist/services/definitions/opencode.mjs +49 -2
  264. package/dist/services/definitions/opencode.mjs.map +1 -0
  265. package/dist/services/definitions/openpanel.d.mts +0 -1
  266. package/dist/services/definitions/openpanel.d.mts.map +1 -1
  267. package/dist/services/definitions/openpanel.mjs +45 -2
  268. package/dist/services/definitions/openpanel.mjs.map +1 -0
  269. package/dist/services/definitions/outline.d.mts +0 -1
  270. package/dist/services/definitions/outline.d.mts.map +1 -1
  271. package/dist/services/definitions/outline.mjs +73 -2
  272. package/dist/services/definitions/outline.mjs.map +1 -0
  273. package/dist/services/definitions/paperless-ngx.d.mts +0 -1
  274. package/dist/services/definitions/paperless-ngx.d.mts.map +1 -1
  275. package/dist/services/definitions/paperless-ngx.mjs +92 -2
  276. package/dist/services/definitions/paperless-ngx.mjs.map +1 -0
  277. package/dist/services/definitions/playwright-server.d.mts +0 -1
  278. package/dist/services/definitions/playwright-server.d.mts.map +1 -1
  279. package/dist/services/definitions/playwright-server.mjs +41 -2
  280. package/dist/services/definitions/playwright-server.mjs.map +1 -0
  281. package/dist/services/definitions/portainer.d.mts +0 -1
  282. package/dist/services/definitions/portainer.d.mts.map +1 -1
  283. package/dist/services/definitions/portainer.mjs +48 -2
  284. package/dist/services/definitions/portainer.mjs.map +1 -0
  285. package/dist/services/definitions/postgresql.d.mts +0 -1
  286. package/dist/services/definitions/postgresql.d.mts.map +1 -1
  287. package/dist/services/definitions/postgresql.mjs +83 -2
  288. package/dist/services/definitions/postgresql.mjs.map +1 -0
  289. package/dist/services/definitions/postiz.d.mts +0 -1
  290. package/dist/services/definitions/postiz.d.mts.map +1 -1
  291. package/dist/services/definitions/postiz.mjs +82 -2
  292. package/dist/services/definitions/postiz.mjs.map +1 -0
  293. package/dist/services/definitions/prometheus.d.mts +0 -1
  294. package/dist/services/definitions/prometheus.d.mts.map +1 -1
  295. package/dist/services/definitions/prometheus.mjs +51 -2
  296. package/dist/services/definitions/prometheus.mjs.map +1 -0
  297. package/dist/services/definitions/qdrant.d.mts +0 -1
  298. package/dist/services/definitions/qdrant.d.mts.map +1 -1
  299. package/dist/services/definitions/qdrant.mjs +76 -2
  300. package/dist/services/definitions/qdrant.mjs.map +1 -0
  301. package/dist/services/definitions/redis.d.mts +0 -1
  302. package/dist/services/definitions/redis.d.mts.map +1 -1
  303. package/dist/services/definitions/redis.mjs +90 -2
  304. package/dist/services/definitions/redis.mjs.map +1 -0
  305. package/dist/services/definitions/remotion.d.mts +0 -1
  306. package/dist/services/definitions/remotion.d.mts.map +1 -1
  307. package/dist/services/definitions/remotion.mjs +54 -2
  308. package/dist/services/definitions/remotion.mjs.map +1 -0
  309. package/dist/services/definitions/rocketchat.d.mts +0 -1
  310. package/dist/services/definitions/rocketchat.d.mts.map +1 -1
  311. package/dist/services/definitions/rocketchat.mjs +56 -2
  312. package/dist/services/definitions/rocketchat.mjs.map +1 -0
  313. package/dist/services/definitions/searxng.d.mts +0 -1
  314. package/dist/services/definitions/searxng.d.mts.map +1 -1
  315. package/dist/services/definitions/searxng.mjs +64 -2
  316. package/dist/services/definitions/searxng.mjs.map +1 -0
  317. package/dist/services/definitions/stable-diffusion.d.mts +0 -1
  318. package/dist/services/definitions/stable-diffusion.d.mts.map +1 -1
  319. package/dist/services/definitions/stable-diffusion.mjs +47 -2
  320. package/dist/services/definitions/stable-diffusion.mjs.map +1 -0
  321. package/dist/services/definitions/steel-browser.d.mts +0 -1
  322. package/dist/services/definitions/steel-browser.d.mts.map +1 -1
  323. package/dist/services/definitions/steel-browser.mjs +76 -2
  324. package/dist/services/definitions/steel-browser.mjs.map +1 -0
  325. package/dist/services/definitions/stream-gateway.d.mts +7 -0
  326. package/dist/services/definitions/stream-gateway.d.mts.map +1 -0
  327. package/dist/services/definitions/stream-gateway.mjs +133 -0
  328. package/dist/services/definitions/stream-gateway.mjs.map +1 -0
  329. package/dist/services/definitions/tailscale.d.mts +0 -1
  330. package/dist/services/definitions/tailscale.d.mts.map +1 -1
  331. package/dist/services/definitions/tailscale.mjs +69 -2
  332. package/dist/services/definitions/tailscale.mjs.map +1 -0
  333. package/dist/services/definitions/temporal.d.mts +0 -1
  334. package/dist/services/definitions/temporal.d.mts.map +1 -1
  335. package/dist/services/definitions/temporal.mjs +99 -2
  336. package/dist/services/definitions/temporal.mjs.map +1 -0
  337. package/dist/services/definitions/traefik.d.mts +0 -1
  338. package/dist/services/definitions/traefik.d.mts.map +1 -1
  339. package/dist/services/definitions/traefik.mjs +57 -2
  340. package/dist/services/definitions/traefik.mjs.map +1 -0
  341. package/dist/services/definitions/umami.d.mts +0 -1
  342. package/dist/services/definitions/umami.d.mts.map +1 -1
  343. package/dist/services/definitions/umami.mjs +45 -2
  344. package/dist/services/definitions/umami.mjs.map +1 -0
  345. package/dist/services/definitions/uptime-kuma.d.mts +0 -1
  346. package/dist/services/definitions/uptime-kuma.d.mts.map +1 -1
  347. package/dist/services/definitions/uptime-kuma.mjs +50 -2
  348. package/dist/services/definitions/uptime-kuma.mjs.map +1 -0
  349. package/dist/services/definitions/usesend.d.mts +7 -0
  350. package/dist/services/definitions/usesend.d.mts.map +1 -0
  351. package/dist/services/definitions/usesend.mjs +99 -0
  352. package/dist/services/definitions/usesend.mjs.map +1 -0
  353. package/dist/services/definitions/valkey.d.mts +0 -1
  354. package/dist/services/definitions/valkey.d.mts.map +1 -1
  355. package/dist/services/definitions/valkey.mjs +60 -2
  356. package/dist/services/definitions/valkey.mjs.map +1 -0
  357. package/dist/services/definitions/watchtower.d.mts +0 -1
  358. package/dist/services/definitions/watchtower.d.mts.map +1 -1
  359. package/dist/services/definitions/watchtower.mjs +46 -2
  360. package/dist/services/definitions/watchtower.mjs.map +1 -0
  361. package/dist/services/definitions/weaviate.d.mts +0 -1
  362. package/dist/services/definitions/weaviate.d.mts.map +1 -1
  363. package/dist/services/definitions/weaviate.mjs +89 -2
  364. package/dist/services/definitions/weaviate.mjs.map +1 -0
  365. package/dist/services/definitions/whisper.d.mts +0 -1
  366. package/dist/services/definitions/whisper.d.mts.map +1 -1
  367. package/dist/services/definitions/whisper.mjs +61 -2
  368. package/dist/services/definitions/whisper.mjs.map +1 -0
  369. package/dist/services/registry.d.mts +0 -1
  370. package/dist/services/registry.d.mts.map +1 -1
  371. package/dist/services/registry.mjs +29 -2
  372. package/dist/services/registry.mjs.map +1 -0
  373. package/dist/services/registry.test.mjs +2 -2
  374. package/dist/skills/registry.d.mts +0 -1
  375. package/dist/skills/registry.d.mts.map +1 -1
  376. package/dist/skills/registry.mjs +214 -2
  377. package/dist/skills/registry.mjs.map +1 -0
  378. package/dist/types.d.mts +1 -1
  379. package/dist/types.d.mts.map +1 -1
  380. package/dist/types.mjs +10 -0
  381. package/dist/types.mjs.map +1 -1
  382. package/dist/validator.d.mts +0 -1
  383. package/dist/validator.d.mts.map +1 -1
  384. package/dist/validator.mjs +110 -2
  385. package/dist/validator.mjs.map +1 -0
  386. package/dist/validator.test.mjs +4 -4
  387. package/dist/version-manager.d.mts +0 -1
  388. package/dist/version-manager.d.mts.map +1 -1
  389. package/dist/version-manager.mjs +1 -1
  390. package/dist/{vi.2VT5v0um-Cs3Z_fCB.mjs → vi.2VT5v0um-Qk6MgAnK.mjs} +1183 -1183
  391. package/dist/vi.2VT5v0um-Qk6MgAnK.mjs.map +1 -0
  392. package/package.json +14 -13
  393. package/src/schema.ts +4 -1
  394. package/src/services/definitions/comfyui.ts +90 -0
  395. package/src/services/definitions/convex-dashboard.ts +48 -0
  396. package/src/services/definitions/convex.ts +123 -0
  397. package/src/services/definitions/desktop-environment.ts +163 -0
  398. package/src/services/definitions/index.ts +21 -0
  399. package/src/services/definitions/mission-control.ts +71 -0
  400. package/src/services/definitions/stream-gateway.ts +148 -0
  401. package/src/services/definitions/tailscale.ts +2 -0
  402. package/src/services/definitions/usesend.ts +98 -0
  403. package/src/types.ts +2 -0
  404. package/tsdown.config.ts +1 -0
  405. package/dist/anything-llm-DIIPhz6K.mjs +0 -44
  406. package/dist/anything-llm-DIIPhz6K.mjs.map +0 -1
  407. package/dist/appflowy-DdoE-dKg.mjs +0 -45
  408. package/dist/appflowy-DdoE-dKg.mjs.map +0 -1
  409. package/dist/bare-metal-install-DpYZDoGq.mjs +0 -224
  410. package/dist/bare-metal-install-DpYZDoGq.mjs.map +0 -1
  411. package/dist/bare-metal-partition-CYlOxf9B.mjs +0 -48
  412. package/dist/bare-metal-partition-CYlOxf9B.mjs.map +0 -1
  413. package/dist/beszel-DHAG1zl0.mjs +0 -45
  414. package/dist/beszel-DHAG1zl0.mjs.map +0 -1
  415. package/dist/browserless-gUuvGmMD.mjs +0 -85
  416. package/dist/browserless-gUuvGmMD.mjs.map +0 -1
  417. package/dist/caddy-BJDrqnmw.mjs +0 -77
  418. package/dist/caddy-BJDrqnmw.mjs.map +0 -1
  419. package/dist/caddy-_NIdWKrf.mjs +0 -52
  420. package/dist/caddy-_NIdWKrf.mjs.map +0 -1
  421. package/dist/chromadb-g4rIsfAl.mjs +0 -63
  422. package/dist/chromadb-g4rIsfAl.mjs.map +0 -1
  423. package/dist/claude-code-DPRA1fy_.mjs +0 -52
  424. package/dist/claude-code-DPRA1fy_.mjs.map +0 -1
  425. package/dist/code-server-BdZZxxm5.mjs +0 -66
  426. package/dist/code-server-BdZZxxm5.mjs.map +0 -1
  427. package/dist/codex-DFVzfrfX.mjs +0 -45
  428. package/dist/codex-DFVzfrfX.mjs.map +0 -1
  429. package/dist/composer-CSM5YycB.mjs +0 -287
  430. package/dist/composer-CSM5YycB.mjs.map +0 -1
  431. package/dist/coolify-Z5_zDgM3.mjs +0 -49
  432. package/dist/coolify-Z5_zDgM3.mjs.map +0 -1
  433. package/dist/definitions-BXpb1kzs.mjs +0 -138
  434. package/dist/definitions-BXpb1kzs.mjs.map +0 -1
  435. package/dist/dify-jDc9U6Ku.mjs +0 -81
  436. package/dist/dify-jDc9U6Ku.mjs.map +0 -1
  437. package/dist/docsgpt-BXM1c2JC.mjs +0 -45
  438. package/dist/docsgpt-BXM1c2JC.mjs.map +0 -1
  439. package/dist/dokploy-Ci8_fb0_.mjs +0 -49
  440. package/dist/dokploy-Ci8_fb0_.mjs.map +0 -1
  441. package/dist/dozzle-fAt2sLRL.mjs +0 -41
  442. package/dist/dozzle-fAt2sLRL.mjs.map +0 -1
  443. package/dist/env-D2h46lHT.mjs +0 -250
  444. package/dist/env-D2h46lHT.mjs.map +0 -1
  445. package/dist/ffmpeg-BCtnA8m_.mjs +0 -66
  446. package/dist/ffmpeg-BCtnA8m_.mjs.map +0 -1
  447. package/dist/flowise-CJTTBa7J.mjs +0 -45
  448. package/dist/flowise-CJTTBa7J.mjs.map +0 -1
  449. package/dist/gemini-cli-Bfwv6hYe.mjs +0 -46
  450. package/dist/gemini-cli-Bfwv6hYe.mjs.map +0 -1
  451. package/dist/gitea-BGkqa-sD.mjs +0 -49
  452. package/dist/gitea-BGkqa-sD.mjs.map +0 -1
  453. package/dist/gotify-D7p8oNM3.mjs +0 -62
  454. package/dist/gotify-D7p8oNM3.mjs.map +0 -1
  455. package/dist/grafana-BlnWc6js.mjs +0 -63
  456. package/dist/grafana-BlnWc6js.mjs.map +0 -1
  457. package/dist/grafana-D3kIm8RX.mjs +0 -293
  458. package/dist/grafana-D3kIm8RX.mjs.map +0 -1
  459. package/dist/kimi-BFu1v1sU.mjs +0 -46
  460. package/dist/kimi-BFu1v1sU.mjs.map +0 -1
  461. package/dist/lasuite-meet-agents-nlPhMEaN.mjs +0 -36
  462. package/dist/lasuite-meet-agents-nlPhMEaN.mjs.map +0 -1
  463. package/dist/lasuite-meet-backend-9H7rZ8Pc.mjs +0 -134
  464. package/dist/lasuite-meet-backend-9H7rZ8Pc.mjs.map +0 -1
  465. package/dist/lasuite-meet-frontend-B4xNbnBa.mjs +0 -48
  466. package/dist/lasuite-meet-frontend-B4xNbnBa.mjs.map +0 -1
  467. package/dist/librechat-CoPIHXKK.mjs +0 -50
  468. package/dist/librechat-CoPIHXKK.mjs.map +0 -1
  469. package/dist/lightpanda-QchAPgNX.mjs +0 -59
  470. package/dist/lightpanda-QchAPgNX.mjs.map +0 -1
  471. package/dist/litellm-Dgl6iTry.mjs +0 -47
  472. package/dist/litellm-Dgl6iTry.mjs.map +0 -1
  473. package/dist/livekit-C13SxlVB.mjs +0 -56
  474. package/dist/livekit-C13SxlVB.mjs.map +0 -1
  475. package/dist/magic-string.es-Dew0Rnsa.mjs.map +0 -1
  476. package/dist/matomo-CiOoggYl.mjs +0 -80
  477. package/dist/matomo-CiOoggYl.mjs.map +0 -1
  478. package/dist/matrix-synapse-CP20A7NN.mjs +0 -88
  479. package/dist/matrix-synapse-CP20A7NN.mjs.map +0 -1
  480. package/dist/mattermost-CeFVuhIr.mjs +0 -61
  481. package/dist/mattermost-CeFVuhIr.mjs.map +0 -1
  482. package/dist/meilisearch-CLiQiTdN.mjs +0 -78
  483. package/dist/meilisearch-CLiQiTdN.mjs.map +0 -1
  484. package/dist/minio-_QuguAeo.mjs +0 -102
  485. package/dist/minio-_QuguAeo.mjs.map +0 -1
  486. package/dist/mixpost-eSFPM9XK.mjs +0 -87
  487. package/dist/mixpost-eSFPM9XK.mjs.map +0 -1
  488. package/dist/motion-canvas-Bk1ruvuX.mjs +0 -52
  489. package/dist/motion-canvas-Bk1ruvuX.mjs.map +0 -1
  490. package/dist/n8n-W5qeU34C.mjs +0 -154
  491. package/dist/n8n-W5qeU34C.mjs.map +0 -1
  492. package/dist/n8n-workflows-BPmKVx8z.mjs +0 -75
  493. package/dist/n8n-workflows-BPmKVx8z.mjs.map +0 -1
  494. package/dist/native-services-CwOCM-Xz.mjs +0 -78
  495. package/dist/native-services-CwOCM-Xz.mjs.map +0 -1
  496. package/dist/nocodb-DQNbSYh_.mjs +0 -45
  497. package/dist/nocodb-DQNbSYh_.mjs.map +0 -1
  498. package/dist/ntfy-B8_cZAx2.mjs +0 -63
  499. package/dist/ntfy-B8_cZAx2.mjs.map +0 -1
  500. package/dist/ollama-BiKAypcO.mjs +0 -66
  501. package/dist/ollama-BiKAypcO.mjs.map +0 -1
  502. package/dist/open-webui-DZOG4_xL.mjs +0 -50
  503. package/dist/open-webui-DZOG4_xL.mjs.map +0 -1
  504. package/dist/opencode-Dvfh5KvA.mjs +0 -50
  505. package/dist/opencode-Dvfh5KvA.mjs.map +0 -1
  506. package/dist/openpanel-BuWHhDze.mjs +0 -46
  507. package/dist/openpanel-BuWHhDze.mjs.map +0 -1
  508. package/dist/outline-Dy-YzdYS.mjs +0 -74
  509. package/dist/outline-Dy-YzdYS.mjs.map +0 -1
  510. package/dist/paperless-ngx-DVtWWpKg.mjs +0 -93
  511. package/dist/paperless-ngx-DVtWWpKg.mjs.map +0 -1
  512. package/dist/playwright-server-Boiz8--G.mjs +0 -42
  513. package/dist/playwright-server-Boiz8--G.mjs.map +0 -1
  514. package/dist/portainer-D9MU96UI.mjs +0 -49
  515. package/dist/portainer-D9MU96UI.mjs.map +0 -1
  516. package/dist/postgres-init-BiM-xZtq.mjs +0 -151
  517. package/dist/postgres-init-BiM-xZtq.mjs.map +0 -1
  518. package/dist/postgresql-s65Z9RqR.mjs +0 -84
  519. package/dist/postgresql-s65Z9RqR.mjs.map +0 -1
  520. package/dist/postiz-U6EK23EY.mjs +0 -83
  521. package/dist/postiz-U6EK23EY.mjs.map +0 -1
  522. package/dist/prometheus-WOlk-a1G.mjs +0 -107
  523. package/dist/prometheus-WOlk-a1G.mjs.map +0 -1
  524. package/dist/prometheus-x901F67p.mjs +0 -52
  525. package/dist/prometheus-x901F67p.mjs.map +0 -1
  526. package/dist/qdrant-DZW9uW4e.mjs +0 -77
  527. package/dist/qdrant-DZW9uW4e.mjs.map +0 -1
  528. package/dist/readme-C7M3QE9a.mjs +0 -199
  529. package/dist/readme-C7M3QE9a.mjs.map +0 -1
  530. package/dist/redis-DPMOf237.mjs +0 -91
  531. package/dist/redis-DPMOf237.mjs.map +0 -1
  532. package/dist/registry-CqLarEm5.mjs +0 -30
  533. package/dist/registry-CqLarEm5.mjs.map +0 -1
  534. package/dist/registry-DLX9Q4VQ.mjs +0 -215
  535. package/dist/registry-DLX9Q4VQ.mjs.map +0 -1
  536. package/dist/remotion-COkr0wpr.mjs +0 -55
  537. package/dist/remotion-COkr0wpr.mjs.map +0 -1
  538. package/dist/resolver-Dl5clk-d.mjs +0 -194
  539. package/dist/resolver-Dl5clk-d.mjs.map +0 -1
  540. package/dist/rocketchat-BebQT1MZ.mjs +0 -57
  541. package/dist/rocketchat-BebQT1MZ.mjs.map +0 -1
  542. package/dist/schema-PSUY6yJU.d.mts +0 -700
  543. package/dist/schema-PSUY6yJU.d.mts.map +0 -1
  544. package/dist/scripts-DsljWbP4.mjs +0 -351
  545. package/dist/scripts-DsljWbP4.mjs.map +0 -1
  546. package/dist/searxng-tJpBkchC.mjs +0 -65
  547. package/dist/searxng-tJpBkchC.mjs.map +0 -1
  548. package/dist/skills-DWG72Y3X.mjs +0 -587
  549. package/dist/skills-DWG72Y3X.mjs.map +0 -1
  550. package/dist/stable-diffusion-BulAzkyT.mjs +0 -48
  551. package/dist/stable-diffusion-BulAzkyT.mjs.map +0 -1
  552. package/dist/steel-browser-Cc0bYBjM.mjs +0 -77
  553. package/dist/steel-browser-Cc0bYBjM.mjs.map +0 -1
  554. package/dist/tailscale-CrM4EZlF.mjs +0 -69
  555. package/dist/tailscale-CrM4EZlF.mjs.map +0 -1
  556. package/dist/temporal-49gA0msh.mjs +0 -100
  557. package/dist/temporal-49gA0msh.mjs.map +0 -1
  558. package/dist/traefik-Da-c1f55.mjs +0 -58
  559. package/dist/traefik-Da-c1f55.mjs.map +0 -1
  560. package/dist/umami-csBSsHqO.mjs +0 -46
  561. package/dist/umami-csBSsHqO.mjs.map +0 -1
  562. package/dist/uptime-kuma-D0NvVuXD.mjs +0 -51
  563. package/dist/uptime-kuma-D0NvVuXD.mjs.map +0 -1
  564. package/dist/validator-2FspYNva.mjs +0 -111
  565. package/dist/validator-2FspYNva.mjs.map +0 -1
  566. package/dist/valkey-BCZqGJ0L.mjs +0 -61
  567. package/dist/valkey-BCZqGJ0L.mjs.map +0 -1
  568. package/dist/vi.2VT5v0um-Cs3Z_fCB.mjs.map +0 -1
  569. package/dist/watchtower-BWuvFGpA.mjs +0 -47
  570. package/dist/watchtower-BWuvFGpA.mjs.map +0 -1
  571. package/dist/weaviate-DttY1Hn7.mjs +0 -90
  572. package/dist/weaviate-DttY1Hn7.mjs.map +0 -1
  573. package/dist/whisper-CLu7-Vd8.mjs +0 -62
  574. package/dist/whisper-CLu7-Vd8.mjs.map +0 -1
@@ -28,7 +28,7 @@ jobs:
28
28
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
29
29
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
30
30
 
31
- - name: Build and Publish Auth Typescript SDK
31
+ - name: Build and Publish Core Typescript Packages
32
32
  run: |
33
33
  pnpm --filter @better-openclaw/core build
34
34
  npm publish --access=public
@@ -1,4 +1,3 @@
1
- import "./schema-PSUY6yJU.mjs";
2
1
  import { NativePlatform, Platform, ResolvedService, ResolverOutput } from "./types.mjs";
3
2
 
4
3
  //#region src/bare-metal-partition.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"bare-metal-partition.d.mts","names":[],"sources":["../src/bare-metal-partition.ts"],"sourcesContent":[],"mappings":";;;;;;;AAKgB,iBAAA,wBAAA,CAAmC,QAAW,EAAX,QAAyB,CAAA,EAAd,cAAc;AAO3D,UAAA,wBAAA,CAAwB;EACxB,cAAA,EAAA,eAAA,EAAA;EACI,kBAAA,EAAA,eAAA,EAAA;EACT,SAAA,EAAA,GAAA,CAAA,MAAA,CAAA;;AAQZ;;;;;AA+BgB,iBA/BA,kBAAA,CA+BwB,QAAA,EA9B7B,cA8B6B,EAAA,QAAA,EA7B7B,QA6B6B,CAAA,EA5BrC,wBA4BqC;;;;;iBAAxB,wBAAA,WACL,0BACA,oBACR"}
1
+ {"version":3,"file":"bare-metal-partition.d.mts","names":[],"sources":["../src/bare-metal-partition.ts"],"mappings":";;;;;AAKA;iBAAgB,wBAAA,CAAyB,QAAA,EAAU,QAAA,GAAW,cAAA;AAAA,UAO7C,wBAAA;EAChB,cAAA,EAAgB,eAAA;EAChB,kBAAA,EAAoB,eAAA;EACpB,SAAA,EAAW,GAAA;AAAA;;;AAHZ;;;iBAWgB,kBAAA,CACf,QAAA,EAAU,cAAA,EACV,QAAA,EAAU,QAAA,GACR,wBAAA;;;;;iBA4Ba,wBAAA,CACf,QAAA,EAAU,cAAA,EACV,QAAA,EAAU,eAAA,KACR,cAAA"}
@@ -1,3 +1,48 @@
1
- import { n as platformToNativePlatform, r as resolvedWithOnlyServices, t as partitionBareMetal } from "./bare-metal-partition-CYlOxf9B.mjs";
1
+ //#region src/bare-metal-partition.ts
2
+ /**
3
+ * Maps Platform (e.g. linux/amd64) to NativePlatform (linux, windows, macos).
4
+ */
5
+ function platformToNativePlatform(platform) {
6
+ if (platform.startsWith("linux/")) return "linux";
7
+ if (platform.startsWith("windows/")) return "windows";
8
+ if (platform.startsWith("macos/")) return "macos";
9
+ return "linux";
10
+ }
11
+ /**
12
+ * Partitions resolved services into native (run on host via scripts) vs Docker-only.
13
+ * Gateway and CLI are never native; services with nativeSupported and a matching
14
+ * nativeRecipe for the platform go to native, rest to Docker.
15
+ */
16
+ function partitionBareMetal(resolved, platform) {
17
+ const nativePlatform = platformToNativePlatform(platform);
18
+ const nativeServices = [];
19
+ const dockerOnlyServices = [];
20
+ const nativeIds = /* @__PURE__ */ new Set();
21
+ for (const entry of resolved.services) {
22
+ const def = entry.definition;
23
+ if (def.nativeSupported === true && def.nativeRecipes?.length && def.nativeRecipes.some((r) => r.platform === nativePlatform)) {
24
+ nativeServices.push(entry);
25
+ nativeIds.add(def.id);
26
+ } else dockerOnlyServices.push(entry);
27
+ }
28
+ return {
29
+ nativeServices,
30
+ dockerOnlyServices,
31
+ nativeIds
32
+ };
33
+ }
34
+ /**
35
+ * Returns a new ResolverOutput containing only the given service list (same order).
36
+ * Used to build compose for Docker-only subset when bare-metal has native services.
37
+ */
38
+ function resolvedWithOnlyServices(resolved, services) {
39
+ const idSet = new Set(services.map((s) => s.definition.id));
40
+ return {
41
+ ...resolved,
42
+ services: resolved.services.filter((s) => idSet.has(s.definition.id))
43
+ };
44
+ }
2
45
 
3
- export { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices };
46
+ //#endregion
47
+ export { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices };
48
+ //# sourceMappingURL=bare-metal-partition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bare-metal-partition.mjs","names":[],"sources":["../src/bare-metal-partition.ts"],"sourcesContent":["import type { NativePlatform, Platform, ResolvedService, ResolverOutput } from \"./types.js\";\n\n/**\n * Maps Platform (e.g. linux/amd64) to NativePlatform (linux, windows, macos).\n */\nexport function platformToNativePlatform(platform: Platform): NativePlatform {\n\tif (platform.startsWith(\"linux/\")) return \"linux\";\n\tif (platform.startsWith(\"windows/\")) return \"windows\";\n\tif (platform.startsWith(\"macos/\")) return \"macos\";\n\treturn \"linux\";\n}\n\nexport interface BareMetalPartitionResult {\n\tnativeServices: ResolvedService[];\n\tdockerOnlyServices: ResolvedService[];\n\tnativeIds: Set<string>;\n}\n\n/**\n * Partitions resolved services into native (run on host via scripts) vs Docker-only.\n * Gateway and CLI are never native; services with nativeSupported and a matching\n * nativeRecipe for the platform go to native, rest to Docker.\n */\nexport function partitionBareMetal(\n\tresolved: ResolverOutput,\n\tplatform: Platform,\n): BareMetalPartitionResult {\n\tconst nativePlatform = platformToNativePlatform(platform);\n\tconst nativeServices: ResolvedService[] = [];\n\tconst dockerOnlyServices: ResolvedService[] = [];\n\tconst nativeIds = new Set<string>();\n\n\tfor (const entry of resolved.services) {\n\t\tconst def = entry.definition;\n\t\tconst hasNativeRecipe =\n\t\t\tdef.nativeSupported === true &&\n\t\t\tdef.nativeRecipes?.length &&\n\t\t\tdef.nativeRecipes.some((r) => r.platform === nativePlatform);\n\n\t\tif (hasNativeRecipe) {\n\t\t\tnativeServices.push(entry);\n\t\t\tnativeIds.add(def.id);\n\t\t} else {\n\t\t\tdockerOnlyServices.push(entry);\n\t\t}\n\t}\n\n\treturn { nativeServices, dockerOnlyServices, nativeIds };\n}\n\n/**\n * Returns a new ResolverOutput containing only the given service list (same order).\n * Used to build compose for Docker-only subset when bare-metal has native services.\n */\nexport function resolvedWithOnlyServices(\n\tresolved: ResolverOutput,\n\tservices: ResolvedService[],\n): ResolverOutput {\n\tconst idSet = new Set(services.map((s) => s.definition.id));\n\treturn {\n\t\t...resolved,\n\t\tservices: resolved.services.filter((s) => idSet.has(s.definition.id)),\n\t};\n}\n"],"mappings":";;;;AAKA,SAAgB,yBAAyB,UAAoC;AAC5E,KAAI,SAAS,WAAW,SAAS,CAAE,QAAO;AAC1C,KAAI,SAAS,WAAW,WAAW,CAAE,QAAO;AAC5C,KAAI,SAAS,WAAW,SAAS,CAAE,QAAO;AAC1C,QAAO;;;;;;;AAcR,SAAgB,mBACf,UACA,UAC2B;CAC3B,MAAM,iBAAiB,yBAAyB,SAAS;CACzD,MAAM,iBAAoC,EAAE;CAC5C,MAAM,qBAAwC,EAAE;CAChD,MAAM,4BAAY,IAAI,KAAa;AAEnC,MAAK,MAAM,SAAS,SAAS,UAAU;EACtC,MAAM,MAAM,MAAM;AAMlB,MAJC,IAAI,oBAAoB,QACxB,IAAI,eAAe,UACnB,IAAI,cAAc,MAAM,MAAM,EAAE,aAAa,eAAe,EAExC;AACpB,kBAAe,KAAK,MAAM;AAC1B,aAAU,IAAI,IAAI,GAAG;QAErB,oBAAmB,KAAK,MAAM;;AAIhC,QAAO;EAAE;EAAgB;EAAoB;EAAW;;;;;;AAOzD,SAAgB,yBACf,UACA,UACiB;CACjB,MAAM,QAAQ,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE,WAAW,GAAG,CAAC;AAC3D,QAAO;EACN,GAAG;EACH,UAAU,SAAS,SAAS,QAAQ,MAAM,MAAM,IAAI,EAAE,WAAW,GAAG,CAAC;EACrE"}
@@ -1,6 +1,6 @@
1
- import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Cs3Z_fCB.mjs";
2
- import { n as platformToNativePlatform, r as resolvedWithOnlyServices, t as partitionBareMetal } from "./bare-metal-partition-CYlOxf9B.mjs";
3
- import { t as resolve } from "./resolver-Dl5clk-d.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Qk6MgAnK.mjs";
2
+ import { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices } from "./bare-metal-partition.mjs";
3
+ import { resolve } from "./resolver.mjs";
4
4
 
5
5
  //#region src/bare-metal-partition.test.ts
6
6
  describe("bare-metal partition", () => {
@@ -1,4 +1,3 @@
1
- import "./schema-PSUY6yJU.mjs";
2
1
  import { ComposeOptions, ResolverOutput } from "./types.mjs";
3
2
 
4
3
  //#region src/composer.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.mts","names":[],"sources":["../src/composer.ts"],"sourcesContent":[],"mappings":";;;;UAKiB,aAAA;SACT;;EADS,QAAA,EAAA,MAAa,EAAA;AAiP9B;AAkDA;;;;AAAkG,iBAlDlF,OAAA,CAkDkF,QAAA,EAlDhE,cAkDgE,EAAA,OAAA,EAlDvC,cAkDuC,CAAA,EAAA,MAAA;;;;;iBAAlF,gBAAA,WAA2B,yBAAyB,iBAAiB"}
1
+ {"version":3,"file":"composer.d.mts","names":[],"sources":["../src/composer.ts"],"mappings":";;;UAKiB,aAAA;EAChB,KAAA,EAAO,MAAA;EACP,QAAA;EACA,QAAA;AAAA;;;;;iBA8Oe,OAAA,CAAQ,QAAA,EAAU,cAAA,EAAgB,OAAA,EAAS,cAAA;;;AAA3D;;iBAkDgB,gBAAA,CAAiB,QAAA,EAAU,cAAA,EAAgB,OAAA,EAAS,cAAA,GAAiB,aAAA"}
package/dist/composer.mjs CHANGED
@@ -1,3 +1,287 @@
1
- import { n as composeMultiFile, t as compose } from "./composer-CSM5YycB.mjs";
1
+ import { stringify } from "yaml";
2
2
 
3
- export { compose, composeMultiFile };
3
+ //#region src/composer.ts
4
+ const CATEGORY_PROFILE_MAP = {
5
+ ai: {
6
+ file: "docker-compose.ai.yml",
7
+ profile: "ai"
8
+ },
9
+ "ai-platform": {
10
+ file: "docker-compose.ai.yml",
11
+ profile: "ai"
12
+ },
13
+ media: {
14
+ file: "docker-compose.media.yml",
15
+ profile: "media"
16
+ },
17
+ monitoring: {
18
+ file: "docker-compose.monitoring.yml",
19
+ profile: "monitoring"
20
+ },
21
+ analytics: {
22
+ file: "docker-compose.monitoring.yml",
23
+ profile: "monitoring"
24
+ },
25
+ "dev-tools": {
26
+ file: "docker-compose.tools.yml",
27
+ profile: "tools"
28
+ },
29
+ "coding-agent": {
30
+ file: "docker-compose.tools.yml",
31
+ profile: "tools"
32
+ },
33
+ "social-media": {
34
+ file: "docker-compose.social.yml",
35
+ profile: "social"
36
+ },
37
+ knowledge: {
38
+ file: "docker-compose.knowledge.yml",
39
+ profile: "knowledge"
40
+ },
41
+ communication: {
42
+ file: "docker-compose.communication.yml",
43
+ profile: "communication"
44
+ }
45
+ };
46
+ const YAML_OPTIONS = {
47
+ lineWidth: 120,
48
+ nullStr: ""
49
+ };
50
+ /**
51
+ * Builds the OpenClaw gateway and CLI service entries.
52
+ * Matches the real OpenClaw docker-compose.yml structure:
53
+ * - Bridge port 18790 for ACP/WebSocket
54
+ * - Bind-mount volumes (not named volumes)
55
+ * - Claude web-provider session env vars
56
+ * - Gateway bind mode (--bind lan)
57
+ * - CLI companion service with stdin/tty
58
+ */
59
+ function buildGatewayServices(resolved, options, dependsOn) {
60
+ const allVolumes = /* @__PURE__ */ new Set();
61
+ const gatewayEnv = {
62
+ HOME: "/home/node",
63
+ TERM: "xterm-256color",
64
+ OPENCLAW_GATEWAY_TOKEN: "${OPENCLAW_GATEWAY_TOKEN}",
65
+ CLAUDE_AI_SESSION_KEY: "${CLAUDE_AI_SESSION_KEY}",
66
+ CLAUDE_WEB_SESSION_KEY: "${CLAUDE_WEB_SESSION_KEY}",
67
+ CLAUDE_WEB_COOKIE: "${CLAUDE_WEB_COOKIE}"
68
+ };
69
+ const gatewayVolumes = ["${OPENCLAW_CONFIG_DIR:-./openclaw/config}:/home/node/.openclaw", "${OPENCLAW_WORKSPACE_DIR:-./openclaw/workspace}:/home/node/.openclaw/workspace"];
70
+ for (const { definition: def } of resolved.services) {
71
+ for (const env of def.openclawEnvVars) gatewayEnv[env.key] = env.secret ? `\${${env.key}}` : env.defaultValue;
72
+ if (def.openclawVolumeMounts) for (const vol of def.openclawVolumeMounts) {
73
+ allVolumes.add(vol.name);
74
+ gatewayVolumes.push(`${vol.name}:${vol.containerPath}`);
75
+ }
76
+ }
77
+ const gateway = {
78
+ image: `\${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:${options.openclawVersion}}`,
79
+ environment: gatewayEnv,
80
+ volumes: gatewayVolumes,
81
+ ports: ["${OPENCLAW_GATEWAY_PORT:-18789}:18789", "${OPENCLAW_BRIDGE_PORT:-18790}:18790"],
82
+ networks: ["openclaw-network"],
83
+ init: true,
84
+ restart: "unless-stopped",
85
+ command: [
86
+ "node",
87
+ "dist/index.js",
88
+ "gateway",
89
+ "--bind",
90
+ "${OPENCLAW_GATEWAY_BIND:-lan}",
91
+ "--port",
92
+ "18789"
93
+ ]
94
+ };
95
+ if (options.bareMetalNativeHost) gateway.extra_hosts = ["host.docker.internal:host-gateway"];
96
+ if (dependsOn && Object.keys(dependsOn).length > 0) gateway.depends_on = dependsOn;
97
+ return {
98
+ gatewayService: gateway,
99
+ cliService: {
100
+ image: `\${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:${options.openclawVersion}}`,
101
+ environment: {
102
+ HOME: "/home/node",
103
+ TERM: "xterm-256color",
104
+ OPENCLAW_GATEWAY_TOKEN: "${OPENCLAW_GATEWAY_TOKEN}",
105
+ BROWSER: "echo",
106
+ CLAUDE_AI_SESSION_KEY: "${CLAUDE_AI_SESSION_KEY}",
107
+ CLAUDE_WEB_SESSION_KEY: "${CLAUDE_WEB_SESSION_KEY}",
108
+ CLAUDE_WEB_COOKIE: "${CLAUDE_WEB_COOKIE}"
109
+ },
110
+ volumes: ["${OPENCLAW_CONFIG_DIR:-./openclaw/config}:/home/node/.openclaw", "${OPENCLAW_WORKSPACE_DIR:-./openclaw/workspace}:/home/node/.openclaw/workspace"],
111
+ stdin_open: true,
112
+ tty: true,
113
+ init: true,
114
+ networks: ["openclaw-network"],
115
+ entrypoint: ["node", "dist/index.js"]
116
+ },
117
+ allVolumes
118
+ };
119
+ }
120
+ function buildCompanionService(def, resolved, options, allVolumes) {
121
+ const svc = {};
122
+ const volumeNames = [];
123
+ svc.image = `${def.image}:${def.imageTag}`;
124
+ if (def.environment.length > 0) {
125
+ const env = {};
126
+ for (const e of def.environment) env[e.key] = e.secret ? `\${${e.key}}` : e.defaultValue;
127
+ svc.environment = env;
128
+ }
129
+ const exposedPorts = def.ports.filter((p) => p.exposed);
130
+ if (exposedPorts.length > 0) {
131
+ const prefix = def.id.toUpperCase().replace(/-/g, "_");
132
+ svc.ports = exposedPorts.map((p, i) => {
133
+ return `\${${prefix}_PORT${exposedPorts.length > 1 ? `_${i}` : ""}:-${p.host}}:${p.container}`;
134
+ });
135
+ }
136
+ if (def.volumes.length > 0) svc.volumes = def.volumes.map((v) => {
137
+ allVolumes.add(v.name);
138
+ volumeNames.push(v.name);
139
+ return `${v.name}:${v.containerPath}`;
140
+ });
141
+ if (def.id === "postgresql") {
142
+ if (!svc.volumes) svc.volumes = [];
143
+ svc.volumes.push("./postgres/init-databases.sh:/docker-entrypoint-initdb.d/init-databases.sh:ro");
144
+ }
145
+ if (def.healthcheck) {
146
+ const hc = {
147
+ test: ["CMD-SHELL", def.healthcheck.test],
148
+ interval: def.healthcheck.interval,
149
+ timeout: def.healthcheck.timeout,
150
+ retries: def.healthcheck.retries
151
+ };
152
+ if (def.healthcheck.startPeriod) hc.start_period = def.healthcheck.startPeriod;
153
+ svc.healthcheck = hc;
154
+ }
155
+ svc.restart = def.restartPolicy;
156
+ svc.networks = def.networks;
157
+ if (def.command) svc.command = def.command;
158
+ if (def.entrypoint) svc.entrypoint = def.entrypoint;
159
+ if (def.labels && Object.keys(def.labels).length > 0) svc.labels = def.labels;
160
+ let deploy;
161
+ if (def.deploy) deploy = JSON.parse(JSON.stringify(def.deploy));
162
+ if (options.gpu && def.gpuRequired) {
163
+ const base = deploy ?? {};
164
+ const resources = base.resources ?? {};
165
+ deploy = {
166
+ ...base,
167
+ resources: {
168
+ ...resources,
169
+ reservations: {
170
+ ...resources.reservations ?? {},
171
+ devices: [{
172
+ driver: "nvidia",
173
+ count: "all",
174
+ capabilities: ["gpu"]
175
+ }]
176
+ }
177
+ }
178
+ };
179
+ }
180
+ if (deploy) svc.deploy = deploy;
181
+ const depIds = [...new Set([...def.dependsOn, ...def.requires])].filter((id) => resolved.services.some((s) => s.definition.id === id));
182
+ if (depIds.length > 0) {
183
+ const dependsOn = {};
184
+ for (const depId of depIds) dependsOn[depId] = { condition: resolved.services.find((s) => s.definition.id === depId)?.definition.healthcheck ? "service_healthy" : "service_started" };
185
+ svc.depends_on = dependsOn;
186
+ }
187
+ return {
188
+ entry: svc,
189
+ volumeNames
190
+ };
191
+ }
192
+ /**
193
+ * Generates a single Docker Compose YAML string with ALL services.
194
+ * Backward-compatible signature.
195
+ */
196
+ function compose(resolved, options) {
197
+ const gatewayDependsOn = {};
198
+ for (const { definition: def } of resolved.services) gatewayDependsOn[def.id] = { condition: def.healthcheck ? "service_healthy" : "service_started" };
199
+ const { gatewayService, cliService, allVolumes } = buildGatewayServices(resolved, options, gatewayDependsOn);
200
+ const services = { "openclaw-gateway": gatewayService };
201
+ for (const { definition: def } of resolved.services) {
202
+ const { entry } = buildCompanionService(def, resolved, options, allVolumes);
203
+ services[def.id] = entry;
204
+ }
205
+ services["openclaw-cli"] = cliService;
206
+ const volumes = {};
207
+ for (const v of [...allVolumes].sort()) volumes[v] = null;
208
+ return stringify({
209
+ services,
210
+ volumes,
211
+ networks: { "openclaw-network": { driver: "bridge" } }
212
+ }, YAML_OPTIONS);
213
+ }
214
+ /**
215
+ * Generates multiple Docker Compose files, splitting services into profile-based
216
+ * override files by category.
217
+ */
218
+ function composeMultiFile(resolved, options) {
219
+ const allVolumes = /* @__PURE__ */ new Set();
220
+ const serviceInfos = [];
221
+ for (const { definition: def } of resolved.services) {
222
+ const { entry, volumeNames } = buildCompanionService(def, resolved, options, allVolumes);
223
+ serviceInfos.push({
224
+ id: def.id,
225
+ category: def.category,
226
+ entry,
227
+ volumeNames
228
+ });
229
+ }
230
+ const baseServiceIds = /* @__PURE__ */ new Set();
231
+ const profileFileMap = {};
232
+ for (const info of serviceInfos) {
233
+ const mapping = CATEGORY_PROFILE_MAP[info.category];
234
+ if (mapping) {
235
+ if (!profileFileMap[mapping.file]) profileFileMap[mapping.file] = {
236
+ profile: mapping.profile,
237
+ services: []
238
+ };
239
+ profileFileMap[mapping.file].services.push(info);
240
+ } else baseServiceIds.add(info.id);
241
+ }
242
+ const gatewayDependsOn = {};
243
+ for (const { definition: def } of resolved.services) if (baseServiceIds.has(def.id)) gatewayDependsOn[def.id] = { condition: def.healthcheck ? "service_healthy" : "service_started" };
244
+ const { gatewayService, cliService, allVolumes: gwVolumes } = buildGatewayServices(resolved, options, gatewayDependsOn);
245
+ for (const v of gwVolumes) allVolumes.add(v);
246
+ const baseServices = { "openclaw-gateway": gatewayService };
247
+ for (const info of serviceInfos) if (baseServiceIds.has(info.id)) baseServices[info.id] = info.entry;
248
+ baseServices["openclaw-cli"] = cliService;
249
+ const sortedAllVolumes = {};
250
+ for (const v of [...allVolumes].sort()) sortedAllVolumes[v] = null;
251
+ const networks = { "openclaw-network": { driver: "bridge" } };
252
+ const files = {};
253
+ files["docker-compose.yml"] = stringify({
254
+ services: baseServices,
255
+ volumes: sortedAllVolumes,
256
+ networks
257
+ }, YAML_OPTIONS);
258
+ const usedProfiles = /* @__PURE__ */ new Set();
259
+ for (const [fileName, { profile, services }] of Object.entries(profileFileMap)) {
260
+ usedProfiles.add(profile);
261
+ const profileServices = {};
262
+ const profileVolumes = /* @__PURE__ */ new Set();
263
+ for (const info of services) {
264
+ profileServices[info.id] = {
265
+ ...info.entry,
266
+ profiles: [profile]
267
+ };
268
+ for (const vName of info.volumeNames) profileVolumes.add(vName);
269
+ }
270
+ const fileContent = { services: profileServices };
271
+ if (profileVolumes.size > 0) {
272
+ const sortedProfileVolumes = {};
273
+ for (const v of [...profileVolumes].sort()) sortedProfileVolumes[v] = null;
274
+ fileContent.volumes = sortedProfileVolumes;
275
+ }
276
+ files[fileName] = stringify(fileContent, YAML_OPTIONS);
277
+ }
278
+ return {
279
+ files,
280
+ mainFile: "docker-compose.yml",
281
+ profiles: [...usedProfiles].sort()
282
+ };
283
+ }
284
+
285
+ //#endregion
286
+ export { compose, composeMultiFile };
287
+ //# sourceMappingURL=composer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer.mjs","names":[],"sources":["../src/composer.ts"],"sourcesContent":["import { stringify } from \"yaml\";\nimport type { ComposeOptions, ResolverOutput, ServiceCategory } from \"./types.js\";\n\n// ── Public Types ────────────────────────────────────────────────────────────\n\nexport interface ComposeResult {\n\tfiles: Record<string, string>; // filename -> YAML content\n\tmainFile: string; // \"docker-compose.yml\"\n\tprofiles: string[]; // list of profiles used\n}\n\n// ── Category → Profile Mapping ──────────────────────────────────────────────\n\nconst CATEGORY_PROFILE_MAP: Partial<Record<ServiceCategory, { file: string; profile: string }>> = {\n\tai: { file: \"docker-compose.ai.yml\", profile: \"ai\" },\n\t\"ai-platform\": { file: \"docker-compose.ai.yml\", profile: \"ai\" },\n\tmedia: { file: \"docker-compose.media.yml\", profile: \"media\" },\n\tmonitoring: { file: \"docker-compose.monitoring.yml\", profile: \"monitoring\" },\n\tanalytics: { file: \"docker-compose.monitoring.yml\", profile: \"monitoring\" },\n\t\"dev-tools\": { file: \"docker-compose.tools.yml\", profile: \"tools\" },\n\t\"coding-agent\": { file: \"docker-compose.tools.yml\", profile: \"tools\" },\n\t\"social-media\": { file: \"docker-compose.social.yml\", profile: \"social\" },\n\tknowledge: { file: \"docker-compose.knowledge.yml\", profile: \"knowledge\" },\n\tcommunication: { file: \"docker-compose.communication.yml\", profile: \"communication\" },\n};\n\nconst YAML_OPTIONS = { lineWidth: 120, nullStr: \"\" };\n\n// ── Shared Gateway Builder ──────────────────────────────────────────────────\n\ninterface GatewayBuildResult {\n\tgatewayService: Record<string, unknown>;\n\tcliService: Record<string, unknown>;\n\tallVolumes: Set<string>;\n}\n\n/**\n * Builds the OpenClaw gateway and CLI service entries.\n * Matches the real OpenClaw docker-compose.yml structure:\n * - Bridge port 18790 for ACP/WebSocket\n * - Bind-mount volumes (not named volumes)\n * - Claude web-provider session env vars\n * - Gateway bind mode (--bind lan)\n * - CLI companion service with stdin/tty\n */\nfunction buildGatewayServices(\n\tresolved: ResolverOutput,\n\toptions: ComposeOptions,\n\tdependsOn?: Record<string, { condition: string }>,\n): GatewayBuildResult {\n\tconst allVolumes = new Set<string>();\n\n\t// Gateway environment\n\tconst gatewayEnv: Record<string, string> = {\n\t\tHOME: \"/home/node\",\n\t\tTERM: \"xterm-256color\",\n\t\tOPENCLAW_GATEWAY_TOKEN: \"${OPENCLAW_GATEWAY_TOKEN}\",\n\t\t// Claude web-provider session vars (optional, user fills in .env)\n\t\tCLAUDE_AI_SESSION_KEY: \"${CLAUDE_AI_SESSION_KEY}\",\n\t\tCLAUDE_WEB_SESSION_KEY: \"${CLAUDE_WEB_SESSION_KEY}\",\n\t\tCLAUDE_WEB_COOKIE: \"${CLAUDE_WEB_COOKIE}\",\n\t};\n\n\t// Gateway volumes (bind-mount style matching real docker-setup.sh)\n\tconst gatewayVolumes: string[] = [\n\t\t\"${OPENCLAW_CONFIG_DIR:-./openclaw/config}:/home/node/.openclaw\",\n\t\t\"${OPENCLAW_WORKSPACE_DIR:-./openclaw/workspace}:/home/node/.openclaw/workspace\",\n\t];\n\n\t// Collect env vars and volume mounts from companion services\n\tfor (const { definition: def } of resolved.services) {\n\t\tfor (const env of def.openclawEnvVars) {\n\t\t\tgatewayEnv[env.key] = env.secret ? `\\${${env.key}}` : env.defaultValue;\n\t\t}\n\t\tif (def.openclawVolumeMounts) {\n\t\t\tfor (const vol of def.openclawVolumeMounts) {\n\t\t\t\tallVolumes.add(vol.name);\n\t\t\t\tgatewayVolumes.push(`${vol.name}:${vol.containerPath}`);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Gateway service\n\tconst gateway: Record<string, unknown> = {\n\t\timage: `\\${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:${options.openclawVersion}}`,\n\t\tenvironment: gatewayEnv,\n\t\tvolumes: gatewayVolumes,\n\t\tports: [\"${OPENCLAW_GATEWAY_PORT:-18789}:18789\", \"${OPENCLAW_BRIDGE_PORT:-18790}:18790\"],\n\t\tnetworks: [\"openclaw-network\"],\n\t\tinit: true,\n\t\trestart: \"unless-stopped\",\n\t\tcommand: [\n\t\t\t\"node\",\n\t\t\t\"dist/index.js\",\n\t\t\t\"gateway\",\n\t\t\t\"--bind\",\n\t\t\t\"${OPENCLAW_GATEWAY_BIND:-lan}\",\n\t\t\t\"--port\",\n\t\t\t\"18789\",\n\t\t],\n\t};\n\n\tif (options.bareMetalNativeHost) {\n\t\tgateway.extra_hosts = [\"host.docker.internal:host-gateway\"];\n\t}\n\n\tif (dependsOn && Object.keys(dependsOn).length > 0) {\n\t\tgateway.depends_on = dependsOn;\n\t}\n\n\t// CLI companion service (matching real OpenClaw docker-compose.yml)\n\tconst cliService: Record<string, unknown> = {\n\t\timage: `\\${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:${options.openclawVersion}}`,\n\t\tenvironment: {\n\t\t\tHOME: \"/home/node\",\n\t\t\tTERM: \"xterm-256color\",\n\t\t\tOPENCLAW_GATEWAY_TOKEN: \"${OPENCLAW_GATEWAY_TOKEN}\",\n\t\t\tBROWSER: \"echo\",\n\t\t\tCLAUDE_AI_SESSION_KEY: \"${CLAUDE_AI_SESSION_KEY}\",\n\t\t\tCLAUDE_WEB_SESSION_KEY: \"${CLAUDE_WEB_SESSION_KEY}\",\n\t\t\tCLAUDE_WEB_COOKIE: \"${CLAUDE_WEB_COOKIE}\",\n\t\t},\n\t\tvolumes: [\n\t\t\t\"${OPENCLAW_CONFIG_DIR:-./openclaw/config}:/home/node/.openclaw\",\n\t\t\t\"${OPENCLAW_WORKSPACE_DIR:-./openclaw/workspace}:/home/node/.openclaw/workspace\",\n\t\t],\n\t\tstdin_open: true,\n\t\ttty: true,\n\t\tinit: true,\n\t\tnetworks: [\"openclaw-network\"],\n\t\tentrypoint: [\"node\", \"dist/index.js\"],\n\t};\n\n\treturn { gatewayService: gateway, cliService: cliService, allVolumes };\n}\n\n// ── Shared Companion Service Builder ────────────────────────────────────────\n\nfunction buildCompanionService(\n\tdef: ResolverOutput[\"services\"][number][\"definition\"],\n\tresolved: ResolverOutput,\n\toptions: ComposeOptions,\n\tallVolumes: Set<string>,\n): { entry: Record<string, unknown>; volumeNames: string[] } {\n\tconst svc: Record<string, unknown> = {};\n\tconst volumeNames: string[] = [];\n\n\tsvc.image = `${def.image}:${def.imageTag}`;\n\n\tif (def.environment.length > 0) {\n\t\tconst env: Record<string, string> = {};\n\t\tfor (const e of def.environment) {\n\t\t\tenv[e.key] = e.secret ? `\\${${e.key}}` : e.defaultValue;\n\t\t}\n\t\tsvc.environment = env;\n\t}\n\n\tconst exposedPorts = def.ports.filter((p) => p.exposed);\n\tif (exposedPorts.length > 0) {\n\t\tconst prefix = def.id.toUpperCase().replace(/-/g, \"_\");\n\t\tsvc.ports = exposedPorts.map((p, i) => {\n\t\t\tconst suffix = exposedPorts.length > 1 ? `_${i}` : \"\";\n\t\t\treturn `\\${${prefix}_PORT${suffix}:-${p.host}}:${p.container}`;\n\t\t});\n\t}\n\n\tif (def.volumes.length > 0) {\n\t\tsvc.volumes = def.volumes.map((v) => {\n\t\t\tallVolumes.add(v.name);\n\t\t\tvolumeNames.push(v.name);\n\t\t\treturn `${v.name}:${v.containerPath}`;\n\t\t});\n\t}\n\n\t// PostgreSQL: mount the init script for creating per-service databases\n\tif (def.id === \"postgresql\") {\n\t\tif (!svc.volumes) svc.volumes = [];\n\t\t(svc.volumes as string[]).push(\n\t\t\t\"./postgres/init-databases.sh:/docker-entrypoint-initdb.d/init-databases.sh:ro\",\n\t\t);\n\t}\n\n\tif (def.healthcheck) {\n\t\tconst hc: Record<string, unknown> = {\n\t\t\ttest: [\"CMD-SHELL\", def.healthcheck.test],\n\t\t\tinterval: def.healthcheck.interval,\n\t\t\ttimeout: def.healthcheck.timeout,\n\t\t\tretries: def.healthcheck.retries,\n\t\t};\n\t\tif (def.healthcheck.startPeriod) {\n\t\t\thc.start_period = def.healthcheck.startPeriod;\n\t\t}\n\t\tsvc.healthcheck = hc;\n\t}\n\n\tsvc.restart = def.restartPolicy;\n\tsvc.networks = def.networks;\n\n\tif (def.command) svc.command = def.command;\n\tif (def.entrypoint) svc.entrypoint = def.entrypoint;\n\tif (def.labels && Object.keys(def.labels).length > 0) svc.labels = def.labels;\n\n\tlet deploy: Record<string, unknown> | undefined;\n\tif (def.deploy) {\n\t\tdeploy = JSON.parse(JSON.stringify(def.deploy)) as Record<string, unknown>;\n\t}\n\tif (options.gpu && def.gpuRequired) {\n\t\tconst base = deploy ?? {};\n\t\tconst resources = (base.resources ?? {}) as Record<string, unknown>;\n\t\tdeploy = {\n\t\t\t...base,\n\t\t\tresources: {\n\t\t\t\t...resources,\n\t\t\t\treservations: {\n\t\t\t\t\t...((resources.reservations as Record<string, unknown>) ?? {}),\n\t\t\t\t\tdevices: [{ driver: \"nvidia\", count: \"all\", capabilities: [\"gpu\"] }],\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\tif (deploy) svc.deploy = deploy;\n\n\t// Merge both dependsOn and requires to ensure proper Docker startup ordering\n\tconst depIds = [...new Set([...def.dependsOn, ...def.requires])].filter((id) =>\n\t\tresolved.services.some((s) => s.definition.id === id),\n\t);\n\tif (depIds.length > 0) {\n\t\tconst dependsOn: Record<string, { condition: string }> = {};\n\t\tfor (const depId of depIds) {\n\t\t\tconst dep = resolved.services.find((s) => s.definition.id === depId);\n\t\t\tdependsOn[depId] = {\n\t\t\t\tcondition: dep?.definition.healthcheck ? \"service_healthy\" : \"service_started\",\n\t\t\t};\n\t\t}\n\t\tsvc.depends_on = dependsOn;\n\t}\n\n\treturn { entry: svc, volumeNames };\n}\n\n// ── Single-File Compose ─────────────────────────────────────────────────────\n\n/**\n * Generates a single Docker Compose YAML string with ALL services.\n * Backward-compatible signature.\n */\nexport function compose(resolved: ResolverOutput, options: ComposeOptions): string {\n\t// Build depends_on for ALL companion services\n\tconst gatewayDependsOn: Record<string, { condition: string }> = {};\n\tfor (const { definition: def } of resolved.services) {\n\t\tgatewayDependsOn[def.id] = {\n\t\t\tcondition: def.healthcheck ? \"service_healthy\" : \"service_started\",\n\t\t};\n\t}\n\n\tconst { gatewayService, cliService, allVolumes } = buildGatewayServices(\n\t\tresolved,\n\t\toptions,\n\t\tgatewayDependsOn,\n\t);\n\n\tconst services: Record<string, Record<string, unknown>> = {\n\t\t\"openclaw-gateway\": gatewayService,\n\t};\n\n\tfor (const { definition: def } of resolved.services) {\n\t\tconst { entry } = buildCompanionService(def, resolved, options, allVolumes);\n\t\tservices[def.id] = entry;\n\t}\n\n\t// Add CLI service\n\tservices[\"openclaw-cli\"] = cliService;\n\n\tconst volumes: Record<string, null> = {};\n\tfor (const v of [...allVolumes].sort()) {\n\t\tvolumes[v] = null;\n\t}\n\n\tconst networks = { \"openclaw-network\": { driver: \"bridge\" } };\n\n\treturn stringify({ services, volumes, networks }, YAML_OPTIONS);\n}\n\n// ── Multi-File Compose ──────────────────────────────────────────────────────\n\ninterface ServiceInfo {\n\tid: string;\n\tcategory: ServiceCategory;\n\tentry: Record<string, unknown>;\n\tvolumeNames: string[];\n}\n\n/**\n * Generates multiple Docker Compose files, splitting services into profile-based\n * override files by category.\n */\nexport function composeMultiFile(resolved: ResolverOutput, options: ComposeOptions): ComposeResult {\n\tconst allVolumes = new Set<string>();\n\n\t// Build all companion service entries & classify by category\n\tconst serviceInfos: ServiceInfo[] = [];\n\n\tfor (const { definition: def } of resolved.services) {\n\t\tconst { entry, volumeNames } = buildCompanionService(def, resolved, options, allVolumes);\n\t\tserviceInfos.push({ id: def.id, category: def.category, entry, volumeNames });\n\t}\n\n\t// Partition services into base vs. profile files\n\tconst baseServiceIds = new Set<string>();\n\tconst profileFileMap: Record<string, { profile: string; services: ServiceInfo[] }> = {};\n\n\tfor (const info of serviceInfos) {\n\t\tconst mapping = CATEGORY_PROFILE_MAP[info.category];\n\t\tif (mapping) {\n\t\t\tif (!profileFileMap[mapping.file]) {\n\t\t\t\tprofileFileMap[mapping.file] = { profile: mapping.profile, services: [] };\n\t\t\t}\n\t\t\tprofileFileMap[mapping.file]!.services.push(info);\n\t\t} else {\n\t\t\tbaseServiceIds.add(info.id);\n\t\t}\n\t}\n\n\t// Gateway depends_on (only base services)\n\tconst gatewayDependsOn: Record<string, { condition: string }> = {};\n\tfor (const { definition: def } of resolved.services) {\n\t\tif (baseServiceIds.has(def.id)) {\n\t\t\tgatewayDependsOn[def.id] = {\n\t\t\t\tcondition: def.healthcheck ? \"service_healthy\" : \"service_started\",\n\t\t\t};\n\t\t}\n\t}\n\n\tconst {\n\t\tgatewayService,\n\t\tcliService,\n\t\tallVolumes: gwVolumes,\n\t} = buildGatewayServices(resolved, options, gatewayDependsOn);\n\n\t// Merge gateway volumes into allVolumes\n\tfor (const v of gwVolumes) allVolumes.add(v);\n\n\t// Base file: gateway + CLI + core services + ALL volumes + networks\n\tconst baseServices: Record<string, Record<string, unknown>> = {\n\t\t\"openclaw-gateway\": gatewayService,\n\t};\n\n\tfor (const info of serviceInfos) {\n\t\tif (baseServiceIds.has(info.id)) {\n\t\t\tbaseServices[info.id] = info.entry;\n\t\t}\n\t}\n\n\tbaseServices[\"openclaw-cli\"] = cliService;\n\n\tconst sortedAllVolumes: Record<string, null> = {};\n\tfor (const v of [...allVolumes].sort()) {\n\t\tsortedAllVolumes[v] = null;\n\t}\n\n\tconst networks = { \"openclaw-network\": { driver: \"bridge\" } };\n\n\tconst files: Record<string, string> = {};\n\tfiles[\"docker-compose.yml\"] = stringify(\n\t\t{ services: baseServices, volumes: sortedAllVolumes, networks },\n\t\tYAML_OPTIONS,\n\t);\n\n\t// Profile override files\n\tconst usedProfiles = new Set<string>();\n\n\tfor (const [fileName, { profile, services }] of Object.entries(profileFileMap)) {\n\t\tusedProfiles.add(profile);\n\n\t\tconst profileServices: Record<string, Record<string, unknown>> = {};\n\t\tconst profileVolumes = new Set<string>();\n\n\t\tfor (const info of services) {\n\t\t\tprofileServices[info.id] = { ...info.entry, profiles: [profile] };\n\t\t\tfor (const vName of info.volumeNames) {\n\t\t\t\tprofileVolumes.add(vName);\n\t\t\t}\n\t\t}\n\n\t\tconst fileContent: Record<string, unknown> = { services: profileServices };\n\n\t\tif (profileVolumes.size > 0) {\n\t\t\tconst sortedProfileVolumes: Record<string, null> = {};\n\t\t\tfor (const v of [...profileVolumes].sort()) {\n\t\t\t\tsortedProfileVolumes[v] = null;\n\t\t\t}\n\t\t\tfileContent.volumes = sortedProfileVolumes;\n\t\t}\n\n\t\tfiles[fileName] = stringify(fileContent, YAML_OPTIONS);\n\t}\n\n\treturn {\n\t\tfiles,\n\t\tmainFile: \"docker-compose.yml\",\n\t\tprofiles: [...usedProfiles].sort(),\n\t};\n}\n"],"mappings":";;;AAaA,MAAM,uBAA4F;CACjG,IAAI;EAAE,MAAM;EAAyB,SAAS;EAAM;CACpD,eAAe;EAAE,MAAM;EAAyB,SAAS;EAAM;CAC/D,OAAO;EAAE,MAAM;EAA4B,SAAS;EAAS;CAC7D,YAAY;EAAE,MAAM;EAAiC,SAAS;EAAc;CAC5E,WAAW;EAAE,MAAM;EAAiC,SAAS;EAAc;CAC3E,aAAa;EAAE,MAAM;EAA4B,SAAS;EAAS;CACnE,gBAAgB;EAAE,MAAM;EAA4B,SAAS;EAAS;CACtE,gBAAgB;EAAE,MAAM;EAA6B,SAAS;EAAU;CACxE,WAAW;EAAE,MAAM;EAAgC,SAAS;EAAa;CACzE,eAAe;EAAE,MAAM;EAAoC,SAAS;EAAiB;CACrF;AAED,MAAM,eAAe;CAAE,WAAW;CAAK,SAAS;CAAI;;;;;;;;;;AAmBpD,SAAS,qBACR,UACA,SACA,WACqB;CACrB,MAAM,6BAAa,IAAI,KAAa;CAGpC,MAAM,aAAqC;EAC1C,MAAM;EACN,MAAM;EACN,wBAAwB;EAExB,uBAAuB;EACvB,wBAAwB;EACxB,mBAAmB;EACnB;CAGD,MAAM,iBAA2B,CAChC,kEACA,iFACA;AAGD,MAAK,MAAM,EAAE,YAAY,SAAS,SAAS,UAAU;AACpD,OAAK,MAAM,OAAO,IAAI,gBACrB,YAAW,IAAI,OAAO,IAAI,SAAS,MAAM,IAAI,IAAI,KAAK,IAAI;AAE3D,MAAI,IAAI,qBACP,MAAK,MAAM,OAAO,IAAI,sBAAsB;AAC3C,cAAW,IAAI,IAAI,KAAK;AACxB,kBAAe,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,gBAAgB;;;CAM1D,MAAM,UAAmC;EACxC,OAAO,gDAAgD,QAAQ,gBAAgB;EAC/E,aAAa;EACb,SAAS;EACT,OAAO,CAAC,yCAAyC,uCAAuC;EACxF,UAAU,CAAC,mBAAmB;EAC9B,MAAM;EACN,SAAS;EACT,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;AAED,KAAI,QAAQ,oBACX,SAAQ,cAAc,CAAC,oCAAoC;AAG5D,KAAI,aAAa,OAAO,KAAK,UAAU,CAAC,SAAS,EAChD,SAAQ,aAAa;AA0BtB,QAAO;EAAE,gBAAgB;EAAS,YAtBU;GAC3C,OAAO,gDAAgD,QAAQ,gBAAgB;GAC/E,aAAa;IACZ,MAAM;IACN,MAAM;IACN,wBAAwB;IACxB,SAAS;IACT,uBAAuB;IACvB,wBAAwB;IACxB,mBAAmB;IACnB;GACD,SAAS,CACR,kEACA,iFACA;GACD,YAAY;GACZ,KAAK;GACL,MAAM;GACN,UAAU,CAAC,mBAAmB;GAC9B,YAAY,CAAC,QAAQ,gBAAgB;GACrC;EAEyD;EAAY;;AAKvE,SAAS,sBACR,KACA,UACA,SACA,YAC4D;CAC5D,MAAM,MAA+B,EAAE;CACvC,MAAM,cAAwB,EAAE;AAEhC,KAAI,QAAQ,GAAG,IAAI,MAAM,GAAG,IAAI;AAEhC,KAAI,IAAI,YAAY,SAAS,GAAG;EAC/B,MAAM,MAA8B,EAAE;AACtC,OAAK,MAAM,KAAK,IAAI,YACnB,KAAI,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,IAAI,KAAK,EAAE;AAE5C,MAAI,cAAc;;CAGnB,MAAM,eAAe,IAAI,MAAM,QAAQ,MAAM,EAAE,QAAQ;AACvD,KAAI,aAAa,SAAS,GAAG;EAC5B,MAAM,SAAS,IAAI,GAAG,aAAa,CAAC,QAAQ,MAAM,IAAI;AACtD,MAAI,QAAQ,aAAa,KAAK,GAAG,MAAM;AAEtC,UAAO,MAAM,OAAO,OADL,aAAa,SAAS,IAAI,IAAI,MAAM,GACjB,IAAI,EAAE,KAAK,IAAI,EAAE;IAClD;;AAGH,KAAI,IAAI,QAAQ,SAAS,EACxB,KAAI,UAAU,IAAI,QAAQ,KAAK,MAAM;AACpC,aAAW,IAAI,EAAE,KAAK;AACtB,cAAY,KAAK,EAAE,KAAK;AACxB,SAAO,GAAG,EAAE,KAAK,GAAG,EAAE;GACrB;AAIH,KAAI,IAAI,OAAO,cAAc;AAC5B,MAAI,CAAC,IAAI,QAAS,KAAI,UAAU,EAAE;AAClC,EAAC,IAAI,QAAqB,KACzB,gFACA;;AAGF,KAAI,IAAI,aAAa;EACpB,MAAM,KAA8B;GACnC,MAAM,CAAC,aAAa,IAAI,YAAY,KAAK;GACzC,UAAU,IAAI,YAAY;GAC1B,SAAS,IAAI,YAAY;GACzB,SAAS,IAAI,YAAY;GACzB;AACD,MAAI,IAAI,YAAY,YACnB,IAAG,eAAe,IAAI,YAAY;AAEnC,MAAI,cAAc;;AAGnB,KAAI,UAAU,IAAI;AAClB,KAAI,WAAW,IAAI;AAEnB,KAAI,IAAI,QAAS,KAAI,UAAU,IAAI;AACnC,KAAI,IAAI,WAAY,KAAI,aAAa,IAAI;AACzC,KAAI,IAAI,UAAU,OAAO,KAAK,IAAI,OAAO,CAAC,SAAS,EAAG,KAAI,SAAS,IAAI;CAEvE,IAAI;AACJ,KAAI,IAAI,OACP,UAAS,KAAK,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC;AAEhD,KAAI,QAAQ,OAAO,IAAI,aAAa;EACnC,MAAM,OAAO,UAAU,EAAE;EACzB,MAAM,YAAa,KAAK,aAAa,EAAE;AACvC,WAAS;GACR,GAAG;GACH,WAAW;IACV,GAAG;IACH,cAAc;KACb,GAAK,UAAU,gBAA4C,EAAE;KAC7D,SAAS,CAAC;MAAE,QAAQ;MAAU,OAAO;MAAO,cAAc,CAAC,MAAM;MAAE,CAAC;KACpE;IACD;GACD;;AAEF,KAAI,OAAQ,KAAI,SAAS;CAGzB,MAAM,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,WAAW,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,OACxE,SAAS,SAAS,MAAM,MAAM,EAAE,WAAW,OAAO,GAAG,CACrD;AACD,KAAI,OAAO,SAAS,GAAG;EACtB,MAAM,YAAmD,EAAE;AAC3D,OAAK,MAAM,SAAS,OAEnB,WAAU,SAAS,EAClB,WAFW,SAAS,SAAS,MAAM,MAAM,EAAE,WAAW,OAAO,MAAM,EAEnD,WAAW,cAAc,oBAAoB,mBAC7D;AAEF,MAAI,aAAa;;AAGlB,QAAO;EAAE,OAAO;EAAK;EAAa;;;;;;AASnC,SAAgB,QAAQ,UAA0B,SAAiC;CAElF,MAAM,mBAA0D,EAAE;AAClE,MAAK,MAAM,EAAE,YAAY,SAAS,SAAS,SAC1C,kBAAiB,IAAI,MAAM,EAC1B,WAAW,IAAI,cAAc,oBAAoB,mBACjD;CAGF,MAAM,EAAE,gBAAgB,YAAY,eAAe,qBAClD,UACA,SACA,iBACA;CAED,MAAM,WAAoD,EACzD,oBAAoB,gBACpB;AAED,MAAK,MAAM,EAAE,YAAY,SAAS,SAAS,UAAU;EACpD,MAAM,EAAE,UAAU,sBAAsB,KAAK,UAAU,SAAS,WAAW;AAC3E,WAAS,IAAI,MAAM;;AAIpB,UAAS,kBAAkB;CAE3B,MAAM,UAAgC,EAAE;AACxC,MAAK,MAAM,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CACrC,SAAQ,KAAK;AAKd,QAAO,UAAU;EAAE;EAAU;EAAS,UAFrB,EAAE,oBAAoB,EAAE,QAAQ,UAAU,EAAE;EAEb,EAAE,aAAa;;;;;;AAgBhE,SAAgB,iBAAiB,UAA0B,SAAwC;CAClG,MAAM,6BAAa,IAAI,KAAa;CAGpC,MAAM,eAA8B,EAAE;AAEtC,MAAK,MAAM,EAAE,YAAY,SAAS,SAAS,UAAU;EACpD,MAAM,EAAE,OAAO,gBAAgB,sBAAsB,KAAK,UAAU,SAAS,WAAW;AACxF,eAAa,KAAK;GAAE,IAAI,IAAI;GAAI,UAAU,IAAI;GAAU;GAAO;GAAa,CAAC;;CAI9E,MAAM,iCAAiB,IAAI,KAAa;CACxC,MAAM,iBAA+E,EAAE;AAEvF,MAAK,MAAM,QAAQ,cAAc;EAChC,MAAM,UAAU,qBAAqB,KAAK;AAC1C,MAAI,SAAS;AACZ,OAAI,CAAC,eAAe,QAAQ,MAC3B,gBAAe,QAAQ,QAAQ;IAAE,SAAS,QAAQ;IAAS,UAAU,EAAE;IAAE;AAE1E,kBAAe,QAAQ,MAAO,SAAS,KAAK,KAAK;QAEjD,gBAAe,IAAI,KAAK,GAAG;;CAK7B,MAAM,mBAA0D,EAAE;AAClE,MAAK,MAAM,EAAE,YAAY,SAAS,SAAS,SAC1C,KAAI,eAAe,IAAI,IAAI,GAAG,CAC7B,kBAAiB,IAAI,MAAM,EAC1B,WAAW,IAAI,cAAc,oBAAoB,mBACjD;CAIH,MAAM,EACL,gBACA,YACA,YAAY,cACT,qBAAqB,UAAU,SAAS,iBAAiB;AAG7D,MAAK,MAAM,KAAK,UAAW,YAAW,IAAI,EAAE;CAG5C,MAAM,eAAwD,EAC7D,oBAAoB,gBACpB;AAED,MAAK,MAAM,QAAQ,aAClB,KAAI,eAAe,IAAI,KAAK,GAAG,CAC9B,cAAa,KAAK,MAAM,KAAK;AAI/B,cAAa,kBAAkB;CAE/B,MAAM,mBAAyC,EAAE;AACjD,MAAK,MAAM,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CACrC,kBAAiB,KAAK;CAGvB,MAAM,WAAW,EAAE,oBAAoB,EAAE,QAAQ,UAAU,EAAE;CAE7D,MAAM,QAAgC,EAAE;AACxC,OAAM,wBAAwB,UAC7B;EAAE,UAAU;EAAc,SAAS;EAAkB;EAAU,EAC/D,aACA;CAGD,MAAM,+BAAe,IAAI,KAAa;AAEtC,MAAK,MAAM,CAAC,UAAU,EAAE,SAAS,eAAe,OAAO,QAAQ,eAAe,EAAE;AAC/E,eAAa,IAAI,QAAQ;EAEzB,MAAM,kBAA2D,EAAE;EACnE,MAAM,iCAAiB,IAAI,KAAa;AAExC,OAAK,MAAM,QAAQ,UAAU;AAC5B,mBAAgB,KAAK,MAAM;IAAE,GAAG,KAAK;IAAO,UAAU,CAAC,QAAQ;IAAE;AACjE,QAAK,MAAM,SAAS,KAAK,YACxB,gBAAe,IAAI,MAAM;;EAI3B,MAAM,cAAuC,EAAE,UAAU,iBAAiB;AAE1E,MAAI,eAAe,OAAO,GAAG;GAC5B,MAAM,uBAA6C,EAAE;AACrD,QAAK,MAAM,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,CACzC,sBAAqB,KAAK;AAE3B,eAAY,UAAU;;AAGvB,QAAM,YAAY,UAAU,aAAa,aAAa;;AAGvD,QAAO;EACN;EACA,UAAU;EACV,UAAU,CAAC,GAAG,aAAa,CAAC,MAAM;EAClC"}
@@ -1,6 +1,6 @@
1
- import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Cs3Z_fCB.mjs";
2
- import { t as resolve } from "./resolver-Dl5clk-d.mjs";
3
- import { n as composeMultiFile } from "./composer-CSM5YycB.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Qk6MgAnK.mjs";
2
+ import { resolve } from "./resolver.mjs";
3
+ import { composeMultiFile } from "./composer.mjs";
4
4
 
5
5
  //#region src/composer.snapshot.test.ts
6
6
  function generateForPreset(services, skillPacks = []) {
@@ -1,6 +1,6 @@
1
- import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Cs3Z_fCB.mjs";
2
- import { t as resolve } from "./resolver-Dl5clk-d.mjs";
3
- import { t as compose } from "./composer-CSM5YycB.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Qk6MgAnK.mjs";
2
+ import { resolve } from "./resolver.mjs";
3
+ import { compose } from "./composer.mjs";
4
4
  import { parse } from "yaml";
5
5
 
6
6
  //#region src/composer.test.ts
@@ -1,8 +1,6 @@
1
- import "./schema-PSUY6yJU.mjs";
2
1
  import { GenerationInput, GenerationResult } from "./types.mjs";
3
2
 
4
3
  //#region src/generate.d.ts
5
-
6
4
  /**
7
5
  * Main orchestration function: takes generation input, resolves dependencies,
8
6
  * generates all files, validates, and returns the complete file tree.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.mts","names":[],"sources":["../src/generate.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAqCA;iBAAgB,QAAA,QAAgB,kBAAkB"}
1
+ {"version":3,"file":"generate.d.mts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;AAqCA;;iBAAgB,QAAA,CAAS,KAAA,EAAO,eAAA,GAAkB,gBAAA"}
package/dist/generate.mjs CHANGED
@@ -1,18 +1,18 @@
1
- import { n as platformToNativePlatform, r as resolvedWithOnlyServices, t as partitionBareMetal } from "./bare-metal-partition-CYlOxf9B.mjs";
2
- import { t as resolve } from "./resolver-Dl5clk-d.mjs";
3
- import { n as composeMultiFile } from "./composer-CSM5YycB.mjs";
4
- import { t as generateBareMetalInstall } from "./bare-metal-install-DpYZDoGq.mjs";
5
- import { t as generateCaddyfile } from "./caddy-BJDrqnmw.mjs";
6
- import { t as generatePostgresInit } from "./postgres-init-BiM-xZtq.mjs";
7
- import { t as generateEnvFiles } from "./env-D2h46lHT.mjs";
8
- import { n as generateGrafanaDashboard, t as generateGrafanaConfig } from "./grafana-D3kIm8RX.mjs";
9
- import { t as generateN8nWorkflows } from "./n8n-workflows-BPmKVx8z.mjs";
10
- import { t as generateNativeInstallScripts } from "./native-services-CwOCM-Xz.mjs";
11
- import { t as generatePrometheusConfig } from "./prometheus-WOlk-a1G.mjs";
12
- import { t as generateReadme } from "./readme-C7M3QE9a.mjs";
13
- import { t as generateScripts } from "./scripts-DsljWbP4.mjs";
14
- import { t as generateSkillFiles } from "./skills-DWG72Y3X.mjs";
15
- import { t as validate } from "./validator-2FspYNva.mjs";
1
+ import { partitionBareMetal, platformToNativePlatform, resolvedWithOnlyServices } from "./bare-metal-partition.mjs";
2
+ import { resolve } from "./resolver.mjs";
3
+ import { composeMultiFile } from "./composer.mjs";
4
+ import { generateBareMetalInstall } from "./generators/bare-metal-install.mjs";
5
+ import { generateCaddyfile } from "./generators/caddy.mjs";
6
+ import { generatePostgresInit } from "./generators/postgres-init.mjs";
7
+ import { generateEnvFiles } from "./generators/env.mjs";
8
+ import { generateGrafanaConfig, generateGrafanaDashboard } from "./generators/grafana.mjs";
9
+ import { generateN8nWorkflows } from "./generators/n8n-workflows.mjs";
10
+ import { generateNativeInstallScripts } from "./generators/native-services.mjs";
11
+ import { generatePrometheusConfig } from "./generators/prometheus.mjs";
12
+ import { generateReadme } from "./generators/readme.mjs";
13
+ import { generateScripts } from "./generators/scripts.mjs";
14
+ import { generateSkillFiles } from "./generators/skills.mjs";
15
+ import { validate } from "./validator.mjs";
16
16
 
17
17
  //#region src/generate.ts
18
18
  /** Resolver/compose only support linux image platforms; normalize for bare-metal (windows/macos). */
@@ -1,4 +1,4 @@
1
- import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Cs3Z_fCB.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-Qk6MgAnK.mjs";
2
2
  import { generate } from "./generate.mjs";
3
3
  import { parse } from "yaml";
4
4
 
@@ -1,8 +1,6 @@
1
- import "../schema-PSUY6yJU.mjs";
2
1
  import { Platform } from "../types.mjs";
3
2
 
4
3
  //#region src/generators/bare-metal-install.d.ts
5
-
6
4
  interface BareMetalInstallOptions {
7
5
  platform: Platform;
8
6
  projectName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bare-metal-install.d.mts","names":[],"sources":["../../src/generators/bare-metal-install.ts"],"sourcesContent":[],"mappings":";;;;;UAuNiB,uBAAA;YACN;;;;;;;;;iBAUK,wBAAA,UAAkC,0BAA0B"}
1
+ {"version":3,"file":"bare-metal-install.d.mts","names":[],"sources":["../../src/generators/bare-metal-install.ts"],"mappings":";;;UAuNiB,uBAAA;EAChB,QAAA,EAAU,QAAA;EACV,WAAA;EAAA;EAEA,iBAAA;AAAA;;AAOD;;;iBAAgB,wBAAA,CAAyB,OAAA,EAAS,uBAAA,GAA0B,MAAA"}