@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
@@ -1,5 +1,5 @@
1
- import { n as describe, r as it, t as globalExpect } from "../vi.2VT5v0um-Cs3Z_fCB.mjs";
2
- import { i as getServicesByTag, n as getServiceById, r as getServicesByCategory, t as getAllServices } from "../registry-CqLarEm5.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "../vi.2VT5v0um-Qk6MgAnK.mjs";
2
+ import { getAllServices, getServiceById, getServicesByCategory, getServicesByTag } from "./registry.mjs";
3
3
 
4
4
  //#region src/services/registry.test.ts
5
5
  describe("service registry", () => {
@@ -1,4 +1,3 @@
1
- import "../schema-PSUY6yJU.mjs";
2
1
  import { SkillPack } from "../types.mjs";
3
2
 
4
3
  //#region src/skills/registry.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/skills/registry.ts"],"sourcesContent":[],"mappings":";;;;cA8Ga,mBAAmB,oBAAoB;iBAEpC,gBAAA,cAA8B;iBAI9B,gBAAA,CAAA,GAAoB;AANpC;AAEgB,iBASA,uBAAA,CATuC,mBAAA,EAAA,MAAA,EAAA,CAAA,EASiB,SATjB,EAAA"}
1
+ {"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/skills/registry.ts"],"mappings":";;;cA8Ga,iBAAA,EAAmB,WAAA,SAAoB,SAAA;AAAA,iBAEpC,gBAAA,CAAiB,EAAA,WAAa,SAAA;AAAA,iBAI9B,gBAAA,CAAA,GAAoB,SAAA;;iBAKpB,uBAAA,CAAwB,mBAAA,aAAgC,SAAA"}
@@ -1,3 +1,215 @@
1
- import { i as skillPackRegistry, n as getCompatibleSkillPacks, r as getSkillPackById, t as getAllSkillPacks } from "../registry-DLX9Q4VQ.mjs";
1
+ //#region src/skills/registry.ts
2
+ const skillPacks = [
3
+ {
4
+ id: "video-creator",
5
+ name: "Video Creator",
6
+ description: "Create and process videos programmatically with FFmpeg, Remotion, and MinIO storage",
7
+ requiredServices: [
8
+ "ffmpeg",
9
+ "remotion",
10
+ "minio"
11
+ ],
12
+ skills: [
13
+ "ffmpeg-process",
14
+ "remotion-render",
15
+ "minio-storage"
16
+ ],
17
+ icon: "🎬",
18
+ tags: [
19
+ "video",
20
+ "media",
21
+ "rendering"
22
+ ]
23
+ },
24
+ {
25
+ id: "research-agent",
26
+ name: "Research Agent",
27
+ description: "Research the web, store findings in vector memory, and scrape full pages",
28
+ requiredServices: [
29
+ "qdrant",
30
+ "searxng",
31
+ "browserless"
32
+ ],
33
+ skills: [
34
+ "qdrant-memory",
35
+ "searxng-search",
36
+ "browserless-browse"
37
+ ],
38
+ icon: "🔬",
39
+ tags: [
40
+ "research",
41
+ "rag",
42
+ "web-scraping"
43
+ ]
44
+ },
45
+ {
46
+ id: "social-media",
47
+ name: "Social Media",
48
+ description: "Process and manage social media content with video tools, caching, and asset storage",
49
+ requiredServices: [
50
+ "ffmpeg",
51
+ "redis",
52
+ "minio"
53
+ ],
54
+ skills: [
55
+ "ffmpeg-process",
56
+ "redis-cache",
57
+ "minio-storage"
58
+ ],
59
+ icon: "📱",
60
+ tags: [
61
+ "social",
62
+ "content",
63
+ "scheduling"
64
+ ]
65
+ },
66
+ {
67
+ id: "dev-ops",
68
+ name: "DevOps",
69
+ description: "Monitor services, automate workflows, and manage infrastructure alerts",
70
+ requiredServices: [
71
+ "n8n",
72
+ "redis",
73
+ "uptime-kuma",
74
+ "grafana",
75
+ "prometheus"
76
+ ],
77
+ skills: ["n8n-trigger", "redis-cache"],
78
+ icon: "⚙️",
79
+ tags: [
80
+ "devops",
81
+ "monitoring",
82
+ "automation"
83
+ ]
84
+ },
85
+ {
86
+ id: "knowledge-base",
87
+ name: "Knowledge Base",
88
+ description: "Index documents with vector search and full-text search for comprehensive retrieval",
89
+ requiredServices: [
90
+ "qdrant",
91
+ "postgresql",
92
+ "meilisearch"
93
+ ],
94
+ skills: ["qdrant-memory"],
95
+ icon: "📚",
96
+ tags: [
97
+ "knowledge",
98
+ "search",
99
+ "indexing"
100
+ ]
101
+ },
102
+ {
103
+ id: "local-ai",
104
+ name: "Local AI",
105
+ description: "Run local LLM inference and speech-to-text transcription without external APIs",
106
+ requiredServices: ["ollama", "whisper"],
107
+ skills: ["ollama-local-llm", "whisper-transcribe"],
108
+ icon: "🤖",
109
+ tags: [
110
+ "local-llm",
111
+ "transcription",
112
+ "offline"
113
+ ]
114
+ },
115
+ {
116
+ id: "content-creator",
117
+ name: "Content Creator",
118
+ description: "Full social media content pipeline with scheduling, media processing, analytics, and storage",
119
+ requiredServices: [
120
+ "postiz",
121
+ "ffmpeg",
122
+ "minio",
123
+ "redis",
124
+ "postgresql"
125
+ ],
126
+ skills: [
127
+ "ffmpeg-process",
128
+ "minio-storage",
129
+ "redis-cache"
130
+ ],
131
+ icon: "📱",
132
+ tags: [
133
+ "social-media",
134
+ "content",
135
+ "scheduling",
136
+ "analytics"
137
+ ]
138
+ },
139
+ {
140
+ id: "ai-playground",
141
+ name: "AI Playground",
142
+ description: "Full AI experimentation stack with chat UIs, LLM gateway, local models, and document chat",
143
+ requiredServices: [
144
+ "ollama",
145
+ "open-webui",
146
+ "litellm"
147
+ ],
148
+ skills: ["ollama-local-llm"],
149
+ icon: "🧪",
150
+ tags: [
151
+ "ai",
152
+ "llm",
153
+ "playground",
154
+ "experimentation"
155
+ ]
156
+ },
157
+ {
158
+ id: "coding-team",
159
+ name: "Coding Team",
160
+ description: "AI-powered development environment with coding agents, Git hosting, and browser IDE",
161
+ requiredServices: [
162
+ "claude-code",
163
+ "gitea",
164
+ "code-server"
165
+ ],
166
+ skills: [],
167
+ icon: "💻",
168
+ tags: [
169
+ "coding",
170
+ "development",
171
+ "ide",
172
+ "git"
173
+ ]
174
+ },
175
+ {
176
+ id: "knowledge-hub",
177
+ name: "Knowledge Hub",
178
+ description: "Enterprise knowledge management with wiki, document processing, analytics, and vector search",
179
+ requiredServices: [
180
+ "outline",
181
+ "paperless-ngx",
182
+ "qdrant",
183
+ "postgresql",
184
+ "redis"
185
+ ],
186
+ skills: ["qdrant-memory"],
187
+ icon: "📚",
188
+ tags: [
189
+ "knowledge",
190
+ "wiki",
191
+ "documents",
192
+ "search"
193
+ ]
194
+ }
195
+ ];
196
+ const packMap = /* @__PURE__ */ new Map();
197
+ for (const pack of skillPacks) {
198
+ if (packMap.has(pack.id)) throw new Error(`Duplicate skill pack ID: "${pack.id}"`);
199
+ packMap.set(pack.id, pack);
200
+ }
201
+ const skillPackRegistry = packMap;
202
+ function getSkillPackById(id) {
203
+ return packMap.get(id);
204
+ }
205
+ function getAllSkillPacks() {
206
+ return [...skillPacks];
207
+ }
208
+ /** Get skill packs whose required services are all present in the given service list */
209
+ function getCompatibleSkillPacks(availableServiceIds) {
210
+ return skillPacks.filter((pack) => pack.requiredServices.every((req) => availableServiceIds.includes(req)));
211
+ }
2
212
 
3
- export { getAllSkillPacks, getCompatibleSkillPacks, getSkillPackById, skillPackRegistry };
213
+ //#endregion
214
+ export { getAllSkillPacks, getCompatibleSkillPacks, getSkillPackById, skillPackRegistry };
215
+ //# sourceMappingURL=registry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.mjs","names":[],"sources":["../../src/skills/registry.ts"],"sourcesContent":["import type { SkillPack } from \"../types.js\";\n\nconst skillPacks: SkillPack[] = [\n\t{\n\t\tid: \"video-creator\",\n\t\tname: \"Video Creator\",\n\t\tdescription:\n\t\t\t\"Create and process videos programmatically with FFmpeg, Remotion, and MinIO storage\",\n\t\trequiredServices: [\"ffmpeg\", \"remotion\", \"minio\"],\n\t\tskills: [\"ffmpeg-process\", \"remotion-render\", \"minio-storage\"],\n\t\ticon: \"🎬\",\n\t\ttags: [\"video\", \"media\", \"rendering\"],\n\t},\n\t{\n\t\tid: \"research-agent\",\n\t\tname: \"Research Agent\",\n\t\tdescription: \"Research the web, store findings in vector memory, and scrape full pages\",\n\t\trequiredServices: [\"qdrant\", \"searxng\", \"browserless\"],\n\t\tskills: [\"qdrant-memory\", \"searxng-search\", \"browserless-browse\"],\n\t\ticon: \"🔬\",\n\t\ttags: [\"research\", \"rag\", \"web-scraping\"],\n\t},\n\t{\n\t\tid: \"social-media\",\n\t\tname: \"Social Media\",\n\t\tdescription:\n\t\t\t\"Process and manage social media content with video tools, caching, and asset storage\",\n\t\trequiredServices: [\"ffmpeg\", \"redis\", \"minio\"],\n\t\tskills: [\"ffmpeg-process\", \"redis-cache\", \"minio-storage\"],\n\t\ticon: \"📱\",\n\t\ttags: [\"social\", \"content\", \"scheduling\"],\n\t},\n\t{\n\t\tid: \"dev-ops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Monitor services, automate workflows, and manage infrastructure alerts\",\n\t\trequiredServices: [\"n8n\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\"],\n\t\tskills: [\"n8n-trigger\", \"redis-cache\"],\n\t\ticon: \"⚙️\",\n\t\ttags: [\"devops\", \"monitoring\", \"automation\"],\n\t},\n\t{\n\t\tid: \"knowledge-base\",\n\t\tname: \"Knowledge Base\",\n\t\tdescription:\n\t\t\t\"Index documents with vector search and full-text search for comprehensive retrieval\",\n\t\trequiredServices: [\"qdrant\", \"postgresql\", \"meilisearch\"],\n\t\tskills: [\"qdrant-memory\"],\n\t\ticon: \"📚\",\n\t\ttags: [\"knowledge\", \"search\", \"indexing\"],\n\t},\n\t{\n\t\tid: \"local-ai\",\n\t\tname: \"Local AI\",\n\t\tdescription: \"Run local LLM inference and speech-to-text transcription without external APIs\",\n\t\trequiredServices: [\"ollama\", \"whisper\"],\n\t\tskills: [\"ollama-local-llm\", \"whisper-transcribe\"],\n\t\ticon: \"🤖\",\n\t\ttags: [\"local-llm\", \"transcription\", \"offline\"],\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription:\n\t\t\t\"Full social media content pipeline with scheduling, media processing, analytics, and storage\",\n\t\trequiredServices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\"],\n\t\tskills: [\"ffmpeg-process\", \"minio-storage\", \"redis-cache\"],\n\t\ticon: \"📱\",\n\t\ttags: [\"social-media\", \"content\", \"scheduling\", \"analytics\"],\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription:\n\t\t\t\"Full AI experimentation stack with chat UIs, LLM gateway, local models, and document chat\",\n\t\trequiredServices: [\"ollama\", \"open-webui\", \"litellm\"],\n\t\tskills: [\"ollama-local-llm\"],\n\t\ticon: \"🧪\",\n\t\ttags: [\"ai\", \"llm\", \"playground\", \"experimentation\"],\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription:\n\t\t\t\"AI-powered development environment with coding agents, Git hosting, and browser IDE\",\n\t\trequiredServices: [\"claude-code\", \"gitea\", \"code-server\"],\n\t\tskills: [],\n\t\ticon: \"💻\",\n\t\ttags: [\"coding\", \"development\", \"ide\", \"git\"],\n\t},\n\t{\n\t\tid: \"knowledge-hub\",\n\t\tname: \"Knowledge Hub\",\n\t\tdescription:\n\t\t\t\"Enterprise knowledge management with wiki, document processing, analytics, and vector search\",\n\t\trequiredServices: [\"outline\", \"paperless-ngx\", \"qdrant\", \"postgresql\", \"redis\"],\n\t\tskills: [\"qdrant-memory\"],\n\t\ticon: \"📚\",\n\t\ttags: [\"knowledge\", \"wiki\", \"documents\", \"search\"],\n\t},\n];\n\nconst packMap = new Map<string, SkillPack>();\nfor (const pack of skillPacks) {\n\tif (packMap.has(pack.id)) {\n\t\tthrow new Error(`Duplicate skill pack ID: \"${pack.id}\"`);\n\t}\n\tpackMap.set(pack.id, pack);\n}\n\nexport const skillPackRegistry: ReadonlyMap<string, SkillPack> = packMap;\n\nexport function getSkillPackById(id: string): SkillPack | undefined {\n\treturn packMap.get(id);\n}\n\nexport function getAllSkillPacks(): SkillPack[] {\n\treturn [...skillPacks];\n}\n\n/** Get skill packs whose required services are all present in the given service list */\nexport function getCompatibleSkillPacks(availableServiceIds: string[]): SkillPack[] {\n\treturn skillPacks.filter((pack) =>\n\t\tpack.requiredServices.every((req) => availableServiceIds.includes(req)),\n\t);\n}\n"],"mappings":";AAEA,MAAM,aAA0B;CAC/B;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAY;GAAQ;EACjD,QAAQ;GAAC;GAAkB;GAAmB;GAAgB;EAC9D,MAAM;EACN,MAAM;GAAC;GAAS;GAAS;GAAY;EACrC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,kBAAkB;GAAC;GAAU;GAAW;GAAc;EACtD,QAAQ;GAAC;GAAiB;GAAkB;GAAqB;EACjE,MAAM;EACN,MAAM;GAAC;GAAY;GAAO;GAAe;EACzC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAS;GAAQ;EAC9C,QAAQ;GAAC;GAAkB;GAAe;GAAgB;EAC1D,MAAM;EACN,MAAM;GAAC;GAAU;GAAW;GAAa;EACzC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,kBAAkB;GAAC;GAAO;GAAS;GAAe;GAAW;GAAa;EAC1E,QAAQ,CAAC,eAAe,cAAc;EACtC,MAAM;EACN,MAAM;GAAC;GAAU;GAAc;GAAa;EAC5C;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAc;GAAc;EACzD,QAAQ,CAAC,gBAAgB;EACzB,MAAM;EACN,MAAM;GAAC;GAAa;GAAU;GAAW;EACzC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,kBAAkB,CAAC,UAAU,UAAU;EACvC,QAAQ,CAAC,oBAAoB,qBAAqB;EAClD,MAAM;EACN,MAAM;GAAC;GAAa;GAAiB;GAAU;EAC/C;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAU;GAAS;GAAS;GAAa;EACtE,QAAQ;GAAC;GAAkB;GAAiB;GAAc;EAC1D,MAAM;EACN,MAAM;GAAC;GAAgB;GAAW;GAAc;GAAY;EAC5D;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAc;GAAU;EACrD,QAAQ,CAAC,mBAAmB;EAC5B,MAAM;EACN,MAAM;GAAC;GAAM;GAAO;GAAc;GAAkB;EACpD;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAe;GAAS;GAAc;EACzD,QAAQ,EAAE;EACV,MAAM;EACN,MAAM;GAAC;GAAU;GAAe;GAAO;GAAM;EAC7C;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAW;GAAiB;GAAU;GAAc;GAAQ;EAC/E,QAAQ,CAAC,gBAAgB;EACzB,MAAM;EACN,MAAM;GAAC;GAAa;GAAQ;GAAa;GAAS;EAClD;CACD;AAED,MAAM,0BAAU,IAAI,KAAwB;AAC5C,KAAK,MAAM,QAAQ,YAAY;AAC9B,KAAI,QAAQ,IAAI,KAAK,GAAG,CACvB,OAAM,IAAI,MAAM,6BAA6B,KAAK,GAAG,GAAG;AAEzD,SAAQ,IAAI,KAAK,IAAI,KAAK;;AAG3B,MAAa,oBAAoD;AAEjE,SAAgB,iBAAiB,IAAmC;AACnE,QAAO,QAAQ,IAAI,GAAG;;AAGvB,SAAgB,mBAAgC;AAC/C,QAAO,CAAC,GAAG,WAAW;;;AAIvB,SAAgB,wBAAwB,qBAA4C;AACnF,QAAO,WAAW,QAAQ,SACzB,KAAK,iBAAiB,OAAO,QAAQ,oBAAoB,SAAS,IAAI,CAAC,CACvE"}
package/dist/types.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as VolumeMappingSchema, C as RestartPolicySchema, D as SkillPackSchema, E as SkillBindingSchema, O as ValidateRequestSchema, S as ResourceLimitsSchema, T as ServiceDefinitionSchema, _ as PortMappingSchema, a as DeploySchema, b as ResolvedServiceSchema, c as EnvVariableSchema, d as HealthCheckSchema, f as MaturitySchema, g as PlatformSchema, h as OutputFormatSchema, j as WarningSchema, k as ValidateResponseSchema, l as ErrorSchema, m as NativeRecipeSchema, n as ApiErrorSchema, o as DeploymentTargetSchema, p as NativePlatformSchema, r as ComposeOptionsSchema, s as DeploymentTypeSchema, t as AddedDependencySchema, u as GenerationInputSchema, v as PresetSchema, w as ServiceCategorySchema, x as ResolverOutputSchema, y as ProxyTypeSchema } from "./schema-PSUY6yJU.mjs";
1
+ import { AddedDependencySchema, ApiErrorSchema, ComposeOptionsSchema, DeploySchema, DeploymentTargetSchema, DeploymentTypeSchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema } from "./schema.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/types.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;;KAoCY,eAAA,GAAkB,CAAA,CAAE,aAAa;KACjC,QAAA,GAAW,CAAA,CAAE,aAAa;AAD1B,KAEA,QAAA,GAAW,CAAA,CAAE,KAFE,CAAA,OAEW,cAFO,CAAA;AACjC,KAEA,aAAA,GAAgB,CAAA,CAAE,KAFQ,CAAA,OAEK,mBAFb,CAAA;AAClB,KAEA,SAAA,GAAY,CAAA,CAAE,KAFY,CAAA,OAEC,eAFT,CAAA;AAClB,KAEA,gBAAA,GAAmB,CAAA,CAAE,KAFU,CAAA,OAEG,sBAFX,CAAA;AACvB,KAEA,cAAA,GAAiB,CAAA,CAAE,KAFQ,CAAA,OAEK,oBAFb,CAAA;AACnB,KAEA,cAAA,GAAiB,CAAA,CAAE,KAFe,CAAA,OAEF,oBAFX,CAAA;AACrB,KAEA,YAAA,GAAe,CAAA,CAAE,KAFe,CAAA,OAEF,kBAFX,CAAA;AACnB,KAEA,YAAA,GAAe,CAAA,CAAE,KAFe,CAAA,OAEF,kBAFX,CAAA;AACnB,KAGA,WAAA,GAAc,CAAA,CAAE,KAHc,CAAA,OAGD,iBAHZ,CAAK;AACtB,KAGA,aAAA,GAAgB,CAAA,CAAE,KAHY,CAAA,OAGC,mBAHT,CAAA;AAEtB,KAEA,WAAA,GAAc,CAAA,CAAE,KAFa,CAAA,OAEA,iBAFR,CAAA;AACrB,KAEA,WAAA,GAAc,CAAA,CAAE,KAFe,CAAA,OAEF,iBAFX,CAAA;AAClB,KAEA,cAAA,GAAiB,CAAA,CAAE,KAFU,CAAA,OAEG,oBAFX,CAAA;AACrB,KAEA,MAAA,GAAS,CAAA,CAAE,KAFA,CAAA,OAEa,YAFK,CAAf;AACd,KAEA,YAAA,GAAe,CAAA,CAAE,KAFe,CAAA,OAEF,kBAFX,CAAA;AACnB,KAGA,iBAAA,GAAoB,CAAA,CAAE,KAHb,CAAA,OAG0B,uBAHnB,CAAA;AAChB,KAGA,SAAA,GAAY,CAAA,CAAE,KAHgB,CAAA,OAGH,eAHV,CAAA;AAEjB,KAEA,MAAA,GAAS,CAAA,CAAE,KAFM,CAAA,OAEO,YAFW,CAAA;AACnC,KAGA,eAAA,GAAkB,CAAA,CAAE,KAHO,CAAA,OAGM,qBAHd,CAAA;AACnB,KAGA,cAAA,GAAiB,CAAA,CAAE,KAHK,CAAA,OAGQ,oBAHhB,CAAA;AAEhB,KAEA,eAAA,GAAkB,CAAA,CAAE,KAFa,CAAA,OAEA,qBAFR,CAAA;AACzB,KAEA,eAAA,GAAkB,CAAA,CAAE,KAFY,CAAA,OAEC,qBAFT,CAAA;AACxB,KAEA,OAAA,GAAU,CAAA,CAAE,KAFG,CAAA,OAEU,aAFQ,CAAA;AACjC,KAEA,aAAA,GAAgB,CAAA,CAAE,KAFe,CAAA,OAEF,WAFE,CAAA;AACjC,KAEA,cAAA,GAAiB,CAAA,CAAE,KAFM,CAAA,OAEO,oBAFf,CAAA;AACjB,KAGA,eAAA,GAAkB,CAAA,CAAE,KAHW,CAAA,OAGE,qBAHV,CAAA;AACvB,KAGA,gBAAA,GAAmB,CAAA,CAAE,KAHW,CAAA,OAGE,sBAHV,CAAA;AAExB,KAEA,QAAA,GAAW,CAAA,CAAE,KAFE,CAAA,OAEW,cAFO,CAAA;AACjC,UAKK,aAAA,CALW;EAChB,QAAA,EAAA,MAAQ,EAAA;EAIH,UAAA,EAAA,MAAa,EAAA;EASb,KAAA,CAAA,EANR,SAMsB;EAId,GAAA,CAAA,EAAA,OAAA;EAOA,QAAA,CAAA,EAfL,QAeqB;EAKhB,UAAA,CAAA,EAAA,OAAY;AAM7B;UAtBiB,cAAA;;;UAIA,kBAAA;;;;;;UAOA,gBAAA;SACT;YACG;;UAGM,YAAA;MACZ;;;;cAKQ,oBAAoB"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;KAoCY,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,QAAA,GAAW,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,KAC1B,QAAA,GAAW,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,KAC1B,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,KAC/B,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,KAC3B,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,KAClC,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAChC,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAChC,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAC9B,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAE9B,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,KAC7B,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,KAC/B,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,KAC7B,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,KAC7B,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAChC,MAAA,GAAS,CAAA,CAAE,KAAA,QAAa,YAAA;AAAA,KACxB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAE9B,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,uBAAA;AAAA,KACnC,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,KAC3B,MAAA,GAAS,CAAA,CAAE,KAAA,QAAa,YAAA;AAAA,KAExB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAChC,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,OAAA,GAAU,CAAA,CAAE,KAAA,QAAa,aAAA;AAAA,KACzB,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,WAAA;AAAA,KAC/B,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAEhC,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,KAClC,QAAA,GAAW,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,UAIrB,aAAA;EAChB,QAAA;EACA,UAAA;EACA,KAAA,GAAQ,SAAA;EACR,GAAA;EACA,QAAA,GAAW,QAAA;EACX,UAAA;AAAA;AAAA,UAGgB,cAAA;EAAA,CACf,IAAA;AAAA;AAAA,UAGe,kBAAA;EAChB,YAAA;EACA,UAAA;EACA,iBAAA;EACA,WAAA;AAAA;AAAA,UAGgB,gBAAA;EAChB,KAAA,EAAO,cAAA;EACP,QAAA,EAAU,kBAAA;AAAA;AAAA,UAGM,YAAA;EAChB,EAAA,EAAI,eAAA;EACJ,IAAA;EACA,IAAA;AAAA;AAAA,cAGY,kBAAA,EAAoB,YAAA"}
package/dist/types.mjs CHANGED
@@ -84,6 +84,16 @@ const SERVICE_CATEGORIES = [
84
84
  id: "communication",
85
85
  name: "Notifications",
86
86
  icon: "🔔"
87
+ },
88
+ {
89
+ id: "desktop",
90
+ name: "Desktop Environment",
91
+ icon: "🖥️"
92
+ },
93
+ {
94
+ id: "streaming",
95
+ name: "Streaming & Relay",
96
+ icon: "📺"
87
97
  }
88
98
  ];
89
99
 
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n\tAddedDependencySchema,\n\tApiErrorSchema,\n\tComposeOptionsSchema,\n\tDeploymentTargetSchema,\n\tDeploymentTypeSchema,\n\tDeploySchema,\n\tEnvVariableSchema,\n\tErrorSchema,\n\tGenerationInputSchema,\n\tHealthCheckSchema,\n\tMaturitySchema,\n\tNativePlatformSchema,\n\tNativeRecipeSchema,\n\tOutputFormatSchema,\n\tPlatformSchema,\n\tPortMappingSchema,\n\tPresetSchema,\n\tProxyTypeSchema,\n\tResolvedServiceSchema,\n\tResolverOutputSchema,\n\tResourceLimitsSchema,\n\tRestartPolicySchema,\n\tServiceCategorySchema,\n\tServiceDefinitionSchema,\n\tSkillBindingSchema,\n\tSkillPackSchema,\n\tValidateRequestSchema,\n\tValidateResponseSchema,\n\tVolumeMappingSchema,\n\tWarningSchema,\n} from \"./schema.js\";\n\n// ─── Inferred Types ─────────────────────────────────────────────────────────\n\nexport type ServiceCategory = z.infer<typeof ServiceCategorySchema>;\nexport type Maturity = z.infer<typeof MaturitySchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type RestartPolicy = z.infer<typeof RestartPolicySchema>;\nexport type ProxyType = z.infer<typeof ProxyTypeSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\nexport type NativePlatform = z.infer<typeof NativePlatformSchema>;\nexport type NativeRecipe = z.infer<typeof NativeRecipeSchema>;\nexport type OutputFormat = z.infer<typeof OutputFormatSchema>;\n\nexport type PortMapping = z.infer<typeof PortMappingSchema>;\nexport type VolumeMapping = z.infer<typeof VolumeMappingSchema>;\nexport type EnvVariable = z.infer<typeof EnvVariableSchema>;\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\nexport type ResourceLimits = z.infer<typeof ResourceLimitsSchema>;\nexport type Deploy = z.infer<typeof DeploySchema>;\nexport type SkillBinding = z.infer<typeof SkillBindingSchema>;\n\nexport type ServiceDefinition = z.infer<typeof ServiceDefinitionSchema>;\nexport type SkillPack = z.infer<typeof SkillPackSchema>;\nexport type Preset = z.infer<typeof PresetSchema>;\n\nexport type GenerationInput = z.infer<typeof GenerationInputSchema>;\nexport type ComposeOptions = z.infer<typeof ComposeOptionsSchema>;\nexport type ResolvedService = z.infer<typeof ResolvedServiceSchema>;\nexport type AddedDependency = z.infer<typeof AddedDependencySchema>;\nexport type Warning = z.infer<typeof WarningSchema>;\nexport type ResolverError = z.infer<typeof ErrorSchema>;\nexport type ResolverOutput = z.infer<typeof ResolverOutputSchema>;\n\nexport type ValidateRequest = z.infer<typeof ValidateRequestSchema>;\nexport type ValidateResponse = z.infer<typeof ValidateResponseSchema>;\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n\n// ─── Additional Types ───────────────────────────────────────────────────────\n\nexport interface ResolverInput {\n\tservices: string[];\n\tskillPacks: string[];\n\tproxy?: ProxyType;\n\tgpu?: boolean;\n\tplatform?: Platform;\n\tmonitoring?: boolean;\n}\n\nexport interface GeneratedFiles {\n\t[path: string]: string;\n}\n\nexport interface GenerationMetadata {\n\tserviceCount: number;\n\tskillCount: number;\n\testimatedMemoryMB: number;\n\tgeneratedAt: string;\n}\n\nexport interface GenerationResult {\n\tfiles: GeneratedFiles;\n\tmetadata: GenerationMetadata;\n}\n\nexport interface CategoryInfo {\n\tid: ServiceCategory;\n\tname: string;\n\ticon: string;\n}\n\nexport const SERVICE_CATEGORIES: CategoryInfo[] = [\n\t{ id: \"coding-agent\", name: \"AI Coding Agents\", icon: \"💻\" },\n\t{ id: \"ai-platform\", name: \"AI Platforms & Chat UIs\", icon: \"🧪\" },\n\t{ id: \"ai\", name: \"AI / Local Models\", icon: \"🤖\" },\n\t{ id: \"automation\", name: \"Automation & Workflows\", icon: \"🔄\" },\n\t{ id: \"vector-db\", name: \"Vector Databases\", icon: \"🧠\" },\n\t{ id: \"media\", name: \"Media & Video\", icon: \"🎬\" },\n\t{ id: \"social-media\", name: \"Social Media\", icon: \"📱\" },\n\t{ id: \"analytics\", name: \"Analytics\", icon: \"📊\" },\n\t{ id: \"knowledge\", name: \"Knowledge & Documents\", icon: \"📚\" },\n\t{ id: \"storage\", name: \"Object Storage\", icon: \"💾\" },\n\t{ id: \"database\", name: \"Databases & Caching\", icon: \"🗄️\" },\n\t{ id: \"dev-tools\", name: \"Developer Tools\", icon: \"🛠️\" },\n\t{ id: \"proxy\", name: \"Reverse Proxy\", icon: \"🌐\" },\n\t{ id: \"monitoring\", name: \"Monitoring\", icon: \"📡\" },\n\t{ id: \"browser\", name: \"Browser Automation\", icon: \"🌐\" },\n\t{ id: \"search\", name: \"Search\", icon: \"🔍\" },\n\t{ id: \"communication\", name: \"Notifications\", icon: \"🔔\" },\n];\n"],"mappings":";AAwGA,MAAa,qBAAqC;CACjD;EAAE,IAAI;EAAgB,MAAM;EAAoB,MAAM;EAAM;CAC5D;EAAE,IAAI;EAAe,MAAM;EAA2B,MAAM;EAAM;CAClE;EAAE,IAAI;EAAM,MAAM;EAAqB,MAAM;EAAM;CACnD;EAAE,IAAI;EAAc,MAAM;EAA0B,MAAM;EAAM;CAChE;EAAE,IAAI;EAAa,MAAM;EAAoB,MAAM;EAAM;CACzD;EAAE,IAAI;EAAS,MAAM;EAAiB,MAAM;EAAM;CAClD;EAAE,IAAI;EAAgB,MAAM;EAAgB,MAAM;EAAM;CACxD;EAAE,IAAI;EAAa,MAAM;EAAa,MAAM;EAAM;CAClD;EAAE,IAAI;EAAa,MAAM;EAAyB,MAAM;EAAM;CAC9D;EAAE,IAAI;EAAW,MAAM;EAAkB,MAAM;EAAM;CACrD;EAAE,IAAI;EAAY,MAAM;EAAuB,MAAM;EAAO;CAC5D;EAAE,IAAI;EAAa,MAAM;EAAmB,MAAM;EAAO;CACzD;EAAE,IAAI;EAAS,MAAM;EAAiB,MAAM;EAAM;CAClD;EAAE,IAAI;EAAc,MAAM;EAAc,MAAM;EAAM;CACpD;EAAE,IAAI;EAAW,MAAM;EAAsB,MAAM;EAAM;CACzD;EAAE,IAAI;EAAU,MAAM;EAAU,MAAM;EAAM;CAC5C;EAAE,IAAI;EAAiB,MAAM;EAAiB,MAAM;EAAM;CAC1D"}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n\tAddedDependencySchema,\n\tApiErrorSchema,\n\tComposeOptionsSchema,\n\tDeploymentTargetSchema,\n\tDeploymentTypeSchema,\n\tDeploySchema,\n\tEnvVariableSchema,\n\tErrorSchema,\n\tGenerationInputSchema,\n\tHealthCheckSchema,\n\tMaturitySchema,\n\tNativePlatformSchema,\n\tNativeRecipeSchema,\n\tOutputFormatSchema,\n\tPlatformSchema,\n\tPortMappingSchema,\n\tPresetSchema,\n\tProxyTypeSchema,\n\tResolvedServiceSchema,\n\tResolverOutputSchema,\n\tResourceLimitsSchema,\n\tRestartPolicySchema,\n\tServiceCategorySchema,\n\tServiceDefinitionSchema,\n\tSkillBindingSchema,\n\tSkillPackSchema,\n\tValidateRequestSchema,\n\tValidateResponseSchema,\n\tVolumeMappingSchema,\n\tWarningSchema,\n} from \"./schema.js\";\n\n// ─── Inferred Types ─────────────────────────────────────────────────────────\n\nexport type ServiceCategory = z.infer<typeof ServiceCategorySchema>;\nexport type Maturity = z.infer<typeof MaturitySchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type RestartPolicy = z.infer<typeof RestartPolicySchema>;\nexport type ProxyType = z.infer<typeof ProxyTypeSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\nexport type NativePlatform = z.infer<typeof NativePlatformSchema>;\nexport type NativeRecipe = z.infer<typeof NativeRecipeSchema>;\nexport type OutputFormat = z.infer<typeof OutputFormatSchema>;\n\nexport type PortMapping = z.infer<typeof PortMappingSchema>;\nexport type VolumeMapping = z.infer<typeof VolumeMappingSchema>;\nexport type EnvVariable = z.infer<typeof EnvVariableSchema>;\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\nexport type ResourceLimits = z.infer<typeof ResourceLimitsSchema>;\nexport type Deploy = z.infer<typeof DeploySchema>;\nexport type SkillBinding = z.infer<typeof SkillBindingSchema>;\n\nexport type ServiceDefinition = z.infer<typeof ServiceDefinitionSchema>;\nexport type SkillPack = z.infer<typeof SkillPackSchema>;\nexport type Preset = z.infer<typeof PresetSchema>;\n\nexport type GenerationInput = z.infer<typeof GenerationInputSchema>;\nexport type ComposeOptions = z.infer<typeof ComposeOptionsSchema>;\nexport type ResolvedService = z.infer<typeof ResolvedServiceSchema>;\nexport type AddedDependency = z.infer<typeof AddedDependencySchema>;\nexport type Warning = z.infer<typeof WarningSchema>;\nexport type ResolverError = z.infer<typeof ErrorSchema>;\nexport type ResolverOutput = z.infer<typeof ResolverOutputSchema>;\n\nexport type ValidateRequest = z.infer<typeof ValidateRequestSchema>;\nexport type ValidateResponse = z.infer<typeof ValidateResponseSchema>;\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n\n// ─── Additional Types ───────────────────────────────────────────────────────\n\nexport interface ResolverInput {\n\tservices: string[];\n\tskillPacks: string[];\n\tproxy?: ProxyType;\n\tgpu?: boolean;\n\tplatform?: Platform;\n\tmonitoring?: boolean;\n}\n\nexport interface GeneratedFiles {\n\t[path: string]: string;\n}\n\nexport interface GenerationMetadata {\n\tserviceCount: number;\n\tskillCount: number;\n\testimatedMemoryMB: number;\n\tgeneratedAt: string;\n}\n\nexport interface GenerationResult {\n\tfiles: GeneratedFiles;\n\tmetadata: GenerationMetadata;\n}\n\nexport interface CategoryInfo {\n\tid: ServiceCategory;\n\tname: string;\n\ticon: string;\n}\n\nexport const SERVICE_CATEGORIES: CategoryInfo[] = [\n\t{ id: \"coding-agent\", name: \"AI Coding Agents\", icon: \"💻\" },\n\t{ id: \"ai-platform\", name: \"AI Platforms & Chat UIs\", icon: \"🧪\" },\n\t{ id: \"ai\", name: \"AI / Local Models\", icon: \"🤖\" },\n\t{ id: \"automation\", name: \"Automation & Workflows\", icon: \"🔄\" },\n\t{ id: \"vector-db\", name: \"Vector Databases\", icon: \"🧠\" },\n\t{ id: \"media\", name: \"Media & Video\", icon: \"🎬\" },\n\t{ id: \"social-media\", name: \"Social Media\", icon: \"📱\" },\n\t{ id: \"analytics\", name: \"Analytics\", icon: \"📊\" },\n\t{ id: \"knowledge\", name: \"Knowledge & Documents\", icon: \"📚\" },\n\t{ id: \"storage\", name: \"Object Storage\", icon: \"💾\" },\n\t{ id: \"database\", name: \"Databases & Caching\", icon: \"🗄️\" },\n\t{ id: \"dev-tools\", name: \"Developer Tools\", icon: \"🛠️\" },\n\t{ id: \"proxy\", name: \"Reverse Proxy\", icon: \"🌐\" },\n\t{ id: \"monitoring\", name: \"Monitoring\", icon: \"📡\" },\n\t{ id: \"browser\", name: \"Browser Automation\", icon: \"🌐\" },\n\t{ id: \"search\", name: \"Search\", icon: \"🔍\" },\n\t{ id: \"communication\", name: \"Notifications\", icon: \"🔔\" },\n\t{ id: \"desktop\", name: \"Desktop Environment\", icon: \"🖥️\" },\n\t{ id: \"streaming\", name: \"Streaming & Relay\", icon: \"📺\" },\n];\n"],"mappings":";AAwGA,MAAa,qBAAqC;CACjD;EAAE,IAAI;EAAgB,MAAM;EAAoB,MAAM;EAAM;CAC5D;EAAE,IAAI;EAAe,MAAM;EAA2B,MAAM;EAAM;CAClE;EAAE,IAAI;EAAM,MAAM;EAAqB,MAAM;EAAM;CACnD;EAAE,IAAI;EAAc,MAAM;EAA0B,MAAM;EAAM;CAChE;EAAE,IAAI;EAAa,MAAM;EAAoB,MAAM;EAAM;CACzD;EAAE,IAAI;EAAS,MAAM;EAAiB,MAAM;EAAM;CAClD;EAAE,IAAI;EAAgB,MAAM;EAAgB,MAAM;EAAM;CACxD;EAAE,IAAI;EAAa,MAAM;EAAa,MAAM;EAAM;CAClD;EAAE,IAAI;EAAa,MAAM;EAAyB,MAAM;EAAM;CAC9D;EAAE,IAAI;EAAW,MAAM;EAAkB,MAAM;EAAM;CACrD;EAAE,IAAI;EAAY,MAAM;EAAuB,MAAM;EAAO;CAC5D;EAAE,IAAI;EAAa,MAAM;EAAmB,MAAM;EAAO;CACzD;EAAE,IAAI;EAAS,MAAM;EAAiB,MAAM;EAAM;CAClD;EAAE,IAAI;EAAc,MAAM;EAAc,MAAM;EAAM;CACpD;EAAE,IAAI;EAAW,MAAM;EAAsB,MAAM;EAAM;CACzD;EAAE,IAAI;EAAU,MAAM;EAAU,MAAM;EAAM;CAC5C;EAAE,IAAI;EAAiB,MAAM;EAAiB,MAAM;EAAM;CAC1D;EAAE,IAAI;EAAW,MAAM;EAAuB,MAAM;EAAO;CAC3D;EAAE,IAAI;EAAa,MAAM;EAAqB,MAAM;EAAM;CAC1D"}
@@ -1,4 +1,3 @@
1
- import "./schema-PSUY6yJU.mjs";
2
1
  import { ResolverError, ResolverOutput, Warning } from "./types.mjs";
3
2
 
4
3
  //#region src/validator.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.mts","names":[],"sources":["../src/validator.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,gBAAA;;UAER;EAFQ,QAAA,EAGN,OAHM,EAAgB;AAWjC;;;;;;iBAAgB,QAAA,WACL;;;IAGR"}
1
+ {"version":3,"file":"validator.d.mts","names":[],"sources":["../src/validator.ts"],"mappings":";;;UAGiB,gBAAA;EAChB,KAAA;EACA,MAAA,EAAQ,aAAA;EACR,QAAA,EAAU,OAAA;AAAA;;;;;;iBAQK,QAAA,CACf,QAAA,EAAU,cAAA,EACV,YAAA,UACA,OAAA;EAAW,MAAA;EAAiB,eAAA;AAAA,IAC1B,gBAAA"}
@@ -1,3 +1,111 @@
1
- import { t as validate } from "./validator-2FspYNva.mjs";
1
+ import { parse } from "yaml";
2
2
 
3
- export { validate };
3
+ //#region src/validator.ts
4
+ /**
5
+ * Validates a complete generated stack before writing files.
6
+ * Checks for port conflicts, volume uniqueness, env completeness,
7
+ * dependency ordering, YAML validity, and more.
8
+ */
9
+ function validate(resolved, composedYaml, options = {}) {
10
+ const errors = [];
11
+ const warnings = [];
12
+ checkPortConflicts(resolved, errors);
13
+ checkVolumeUniqueness(resolved, errors);
14
+ checkEnvCompleteness(resolved, errors, warnings, options.generateSecrets ?? true);
15
+ checkNetworkConsistency(resolved, warnings);
16
+ checkDependencyDAG(resolved, errors);
17
+ checkYamlValidity(composedYaml, errors);
18
+ if (options.domain) checkDomainFormat(options.domain, errors);
19
+ return {
20
+ valid: errors.length === 0,
21
+ errors,
22
+ warnings
23
+ };
24
+ }
25
+ function checkPortConflicts(resolved, errors) {
26
+ const hostPorts = /* @__PURE__ */ new Map();
27
+ for (const svc of resolved.services) for (const port of svc.definition.ports) {
28
+ if (!port.exposed) continue;
29
+ const existing = hostPorts.get(port.host);
30
+ if (existing) errors.push({
31
+ type: "port_conflict",
32
+ message: `Port ${port.host} is used by both "${existing}" and "${svc.definition.name}"`
33
+ });
34
+ else hostPorts.set(port.host, svc.definition.name);
35
+ }
36
+ }
37
+ function checkVolumeUniqueness(resolved, errors) {
38
+ const volumeNames = /* @__PURE__ */ new Map();
39
+ for (const svc of resolved.services) for (const vol of svc.definition.volumes) {
40
+ const existing = volumeNames.get(vol.name);
41
+ if (existing && existing !== svc.definition.id) errors.push({
42
+ type: "volume_conflict",
43
+ message: `Volume name "${vol.name}" is used by both "${existing}" and "${svc.definition.id}"`
44
+ });
45
+ else volumeNames.set(vol.name, svc.definition.id);
46
+ }
47
+ }
48
+ function checkEnvCompleteness(resolved, errors, warnings, generateSecrets) {
49
+ for (const svc of resolved.services) for (const envVar of svc.definition.environment) {
50
+ if (envVar.required && !envVar.defaultValue && !envVar.secret) errors.push({
51
+ type: "missing_env",
52
+ message: `Required environment variable "${envVar.key}" for "${svc.definition.name}" has no default value`
53
+ });
54
+ if (envVar.secret && !generateSecrets && !envVar.defaultValue) warnings.push({
55
+ type: "secret_needed",
56
+ message: `Secret "${envVar.key}" for "${svc.definition.name}" needs to be configured manually`
57
+ });
58
+ }
59
+ }
60
+ function checkNetworkConsistency(resolved, warnings) {
61
+ for (const svc of resolved.services) if (!svc.definition.networks.includes("openclaw-network")) warnings.push({
62
+ type: "network",
63
+ message: `Service "${svc.definition.name}" is not on openclaw-network — it may not be reachable from OpenClaw`
64
+ });
65
+ }
66
+ function checkDependencyDAG(resolved, errors) {
67
+ const ids = new Set(resolved.services.map((s) => s.definition.id));
68
+ const visited = /* @__PURE__ */ new Set();
69
+ const inStack = /* @__PURE__ */ new Set();
70
+ const adjList = /* @__PURE__ */ new Map();
71
+ for (const svc of resolved.services) {
72
+ const deps = [...svc.definition.requires, ...svc.definition.dependsOn].filter((d) => ids.has(d));
73
+ adjList.set(svc.definition.id, deps);
74
+ }
75
+ function hasCycle(node) {
76
+ if (inStack.has(node)) return true;
77
+ if (visited.has(node)) return false;
78
+ visited.add(node);
79
+ inStack.add(node);
80
+ for (const dep of adjList.get(node) ?? []) if (hasCycle(dep)) return true;
81
+ inStack.delete(node);
82
+ return false;
83
+ }
84
+ for (const id of ids) if (hasCycle(id)) {
85
+ errors.push({
86
+ type: "cycle",
87
+ message: `Circular dependency detected involving "${id}"`
88
+ });
89
+ break;
90
+ }
91
+ }
92
+ function checkYamlValidity(yaml, errors) {
93
+ try {
94
+ parse(yaml);
95
+ } catch (e) {
96
+ errors.push({
97
+ type: "yaml_invalid",
98
+ message: `Generated YAML is not valid: ${e instanceof Error ? e.message : String(e)}`
99
+ });
100
+ }
101
+ }
102
+ function checkDomainFormat(domain, errors) {
103
+ if (!/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/.test(domain)) errors.push({
104
+ type: "invalid_domain",
105
+ message: `"${domain}" is not a valid domain name`
106
+ });
107
+ }
108
+
109
+ //#endregion
110
+ export { validate };
111
+ //# sourceMappingURL=validator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.mjs","names":[],"sources":["../src/validator.ts"],"sourcesContent":["import { parse } from \"yaml\";\nimport type { ResolverError, ResolverOutput, Warning } from \"./types.js\";\n\nexport interface ValidationResult {\n\tvalid: boolean;\n\terrors: ResolverError[];\n\twarnings: Warning[];\n}\n\n/**\n * Validates a complete generated stack before writing files.\n * Checks for port conflicts, volume uniqueness, env completeness,\n * dependency ordering, YAML validity, and more.\n */\nexport function validate(\n\tresolved: ResolverOutput,\n\tcomposedYaml: string,\n\toptions: { domain?: string; generateSecrets?: boolean } = {},\n): ValidationResult {\n\tconst errors: ResolverError[] = [];\n\tconst warnings: Warning[] = [];\n\n\tcheckPortConflicts(resolved, errors);\n\tcheckVolumeUniqueness(resolved, errors);\n\tcheckEnvCompleteness(resolved, errors, warnings, options.generateSecrets ?? true);\n\tcheckNetworkConsistency(resolved, warnings);\n\tcheckDependencyDAG(resolved, errors);\n\tcheckYamlValidity(composedYaml, errors);\n\n\tif (options.domain) {\n\t\tcheckDomainFormat(options.domain, errors);\n\t}\n\n\treturn {\n\t\tvalid: errors.length === 0,\n\t\terrors,\n\t\twarnings,\n\t};\n}\n\nfunction checkPortConflicts(resolved: ResolverOutput, errors: ResolverError[]): void {\n\tconst hostPorts = new Map<number, string>();\n\tfor (const svc of resolved.services) {\n\t\tfor (const port of svc.definition.ports) {\n\t\t\tif (!port.exposed) continue;\n\t\t\tconst existing = hostPorts.get(port.host);\n\t\t\tif (existing) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"port_conflict\",\n\t\t\t\t\tmessage: `Port ${port.host} is used by both \"${existing}\" and \"${svc.definition.name}\"`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\thostPorts.set(port.host, svc.definition.name);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkVolumeUniqueness(resolved: ResolverOutput, errors: ResolverError[]): void {\n\tconst volumeNames = new Map<string, string>();\n\tfor (const svc of resolved.services) {\n\t\tfor (const vol of svc.definition.volumes) {\n\t\t\tconst existing = volumeNames.get(vol.name);\n\t\t\tif (existing && existing !== svc.definition.id) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"volume_conflict\",\n\t\t\t\t\tmessage: `Volume name \"${vol.name}\" is used by both \"${existing}\" and \"${svc.definition.id}\"`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvolumeNames.set(vol.name, svc.definition.id);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkEnvCompleteness(\n\tresolved: ResolverOutput,\n\terrors: ResolverError[],\n\twarnings: Warning[],\n\tgenerateSecrets: boolean,\n): void {\n\tfor (const svc of resolved.services) {\n\t\tfor (const envVar of svc.definition.environment) {\n\t\t\tif (envVar.required && !envVar.defaultValue && !envVar.secret) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"missing_env\",\n\t\t\t\t\tmessage: `Required environment variable \"${envVar.key}\" for \"${svc.definition.name}\" has no default value`,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (envVar.secret && !generateSecrets && !envVar.defaultValue) {\n\t\t\t\twarnings.push({\n\t\t\t\t\ttype: \"secret_needed\",\n\t\t\t\t\tmessage: `Secret \"${envVar.key}\" for \"${svc.definition.name}\" needs to be configured manually`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkNetworkConsistency(resolved: ResolverOutput, warnings: Warning[]): void {\n\tfor (const svc of resolved.services) {\n\t\tif (!svc.definition.networks.includes(\"openclaw-network\")) {\n\t\t\twarnings.push({\n\t\t\t\ttype: \"network\",\n\t\t\t\tmessage: `Service \"${svc.definition.name}\" is not on openclaw-network — it may not be reachable from OpenClaw`,\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction checkDependencyDAG(resolved: ResolverOutput, errors: ResolverError[]): void {\n\tconst ids = new Set(resolved.services.map((s) => s.definition.id));\n\tconst visited = new Set<string>();\n\tconst inStack = new Set<string>();\n\n\tconst adjList = new Map<string, string[]>();\n\tfor (const svc of resolved.services) {\n\t\tconst deps = [...svc.definition.requires, ...svc.definition.dependsOn].filter((d) =>\n\t\t\tids.has(d),\n\t\t);\n\t\tadjList.set(svc.definition.id, deps);\n\t}\n\n\tfunction hasCycle(node: string): boolean {\n\t\tif (inStack.has(node)) return true;\n\t\tif (visited.has(node)) return false;\n\t\tvisited.add(node);\n\t\tinStack.add(node);\n\t\tfor (const dep of adjList.get(node) ?? []) {\n\t\t\tif (hasCycle(dep)) return true;\n\t\t}\n\t\tinStack.delete(node);\n\t\treturn false;\n\t}\n\n\tfor (const id of ids) {\n\t\tif (hasCycle(id)) {\n\t\t\terrors.push({\n\t\t\t\ttype: \"cycle\",\n\t\t\t\tmessage: `Circular dependency detected involving \"${id}\"`,\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nfunction checkYamlValidity(yaml: string, errors: ResolverError[]): void {\n\ttry {\n\t\tparse(yaml);\n\t} catch (e) {\n\t\terrors.push({\n\t\t\ttype: \"yaml_invalid\",\n\t\t\tmessage: `Generated YAML is not valid: ${e instanceof Error ? e.message : String(e)}`,\n\t\t});\n\t}\n}\n\nfunction checkDomainFormat(domain: string, errors: ResolverError[]): void {\n\tconst domainRegex = /^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n\tif (!domainRegex.test(domain)) {\n\t\terrors.push({\n\t\t\ttype: \"invalid_domain\",\n\t\t\tmessage: `\"${domain}\" is not a valid domain name`,\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;AAcA,SAAgB,SACf,UACA,cACA,UAA0D,EAAE,EACzC;CACnB,MAAM,SAA0B,EAAE;CAClC,MAAM,WAAsB,EAAE;AAE9B,oBAAmB,UAAU,OAAO;AACpC,uBAAsB,UAAU,OAAO;AACvC,sBAAqB,UAAU,QAAQ,UAAU,QAAQ,mBAAmB,KAAK;AACjF,yBAAwB,UAAU,SAAS;AAC3C,oBAAmB,UAAU,OAAO;AACpC,mBAAkB,cAAc,OAAO;AAEvC,KAAI,QAAQ,OACX,mBAAkB,QAAQ,QAAQ,OAAO;AAG1C,QAAO;EACN,OAAO,OAAO,WAAW;EACzB;EACA;EACA;;AAGF,SAAS,mBAAmB,UAA0B,QAA+B;CACpF,MAAM,4BAAY,IAAI,KAAqB;AAC3C,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,QAAQ,IAAI,WAAW,OAAO;AACxC,MAAI,CAAC,KAAK,QAAS;EACnB,MAAM,WAAW,UAAU,IAAI,KAAK,KAAK;AACzC,MAAI,SACH,QAAO,KAAK;GACX,MAAM;GACN,SAAS,QAAQ,KAAK,KAAK,oBAAoB,SAAS,SAAS,IAAI,WAAW,KAAK;GACrF,CAAC;MAEF,WAAU,IAAI,KAAK,MAAM,IAAI,WAAW,KAAK;;;AAMjD,SAAS,sBAAsB,UAA0B,QAA+B;CACvF,MAAM,8BAAc,IAAI,KAAqB;AAC7C,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,OAAO,IAAI,WAAW,SAAS;EACzC,MAAM,WAAW,YAAY,IAAI,IAAI,KAAK;AAC1C,MAAI,YAAY,aAAa,IAAI,WAAW,GAC3C,QAAO,KAAK;GACX,MAAM;GACN,SAAS,gBAAgB,IAAI,KAAK,qBAAqB,SAAS,SAAS,IAAI,WAAW,GAAG;GAC3F,CAAC;MAEF,aAAY,IAAI,IAAI,MAAM,IAAI,WAAW,GAAG;;;AAMhD,SAAS,qBACR,UACA,QACA,UACA,iBACO;AACP,MAAK,MAAM,OAAO,SAAS,SAC1B,MAAK,MAAM,UAAU,IAAI,WAAW,aAAa;AAChD,MAAI,OAAO,YAAY,CAAC,OAAO,gBAAgB,CAAC,OAAO,OACtD,QAAO,KAAK;GACX,MAAM;GACN,SAAS,kCAAkC,OAAO,IAAI,SAAS,IAAI,WAAW,KAAK;GACnF,CAAC;AAEH,MAAI,OAAO,UAAU,CAAC,mBAAmB,CAAC,OAAO,aAChD,UAAS,KAAK;GACb,MAAM;GACN,SAAS,WAAW,OAAO,IAAI,SAAS,IAAI,WAAW,KAAK;GAC5D,CAAC;;;AAMN,SAAS,wBAAwB,UAA0B,UAA2B;AACrF,MAAK,MAAM,OAAO,SAAS,SAC1B,KAAI,CAAC,IAAI,WAAW,SAAS,SAAS,mBAAmB,CACxD,UAAS,KAAK;EACb,MAAM;EACN,SAAS,YAAY,IAAI,WAAW,KAAK;EACzC,CAAC;;AAKL,SAAS,mBAAmB,UAA0B,QAA+B;CACpF,MAAM,MAAM,IAAI,IAAI,SAAS,SAAS,KAAK,MAAM,EAAE,WAAW,GAAG,CAAC;CAClE,MAAM,0BAAU,IAAI,KAAa;CACjC,MAAM,0BAAU,IAAI,KAAa;CAEjC,MAAM,0BAAU,IAAI,KAAuB;AAC3C,MAAK,MAAM,OAAO,SAAS,UAAU;EACpC,MAAM,OAAO,CAAC,GAAG,IAAI,WAAW,UAAU,GAAG,IAAI,WAAW,UAAU,CAAC,QAAQ,MAC9E,IAAI,IAAI,EAAE,CACV;AACD,UAAQ,IAAI,IAAI,WAAW,IAAI,KAAK;;CAGrC,SAAS,SAAS,MAAuB;AACxC,MAAI,QAAQ,IAAI,KAAK,CAAE,QAAO;AAC9B,MAAI,QAAQ,IAAI,KAAK,CAAE,QAAO;AAC9B,UAAQ,IAAI,KAAK;AACjB,UAAQ,IAAI,KAAK;AACjB,OAAK,MAAM,OAAO,QAAQ,IAAI,KAAK,IAAI,EAAE,CACxC,KAAI,SAAS,IAAI,CAAE,QAAO;AAE3B,UAAQ,OAAO,KAAK;AACpB,SAAO;;AAGR,MAAK,MAAM,MAAM,IAChB,KAAI,SAAS,GAAG,EAAE;AACjB,SAAO,KAAK;GACX,MAAM;GACN,SAAS,2CAA2C,GAAG;GACvD,CAAC;AACF;;;AAKH,SAAS,kBAAkB,MAAc,QAA+B;AACvE,KAAI;AACH,QAAM,KAAK;UACH,GAAG;AACX,SAAO,KAAK;GACX,MAAM;GACN,SAAS,gCAAgC,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;GACnF,CAAC;;;AAIJ,SAAS,kBAAkB,QAAgB,QAA+B;AAEzE,KAAI,CADgB,qEACH,KAAK,OAAO,CAC5B,QAAO,KAAK;EACX,MAAM;EACN,SAAS,IAAI,OAAO;EACpB,CAAC"}
@@ -1,7 +1,7 @@
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";
4
- import { t as validate } from "./validator-2FspYNva.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
+ import { validate } from "./validator.mjs";
5
5
 
6
6
  //#region src/validator.test.ts
7
7
  const defaultComposeOptions = {
@@ -1,4 +1,3 @@
1
- import "./schema-PSUY6yJU.mjs";
2
1
  import { ResolverOutput, ServiceDefinition, Warning } from "./types.mjs";
3
2
 
4
3
  //#region src/version-manager.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"version-manager.d.mts","names":[],"sources":["../src/version-manager.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,WAAA;;AAAA,iBAMA,iBAAA,CANW,SAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AAM3B;AAOgB,iBAAA,YAAA,CAAuB,QAAA,EAAA,cAAiB,CAAc,EAAd,cAAc;AAWtE;iBAAgB,kBAAA,WAA6B,sBAAsB"}
1
+ {"version":3,"file":"version-manager.d.mts","names":[],"sources":["../src/version-manager.ts"],"mappings":";;;;iBAIgB,WAAA,CAAY,SAAA;AAA5B;AAAA,iBAMgB,iBAAA,CAAkB,SAAA;;iBAOlB,YAAA,CAAa,QAAA,EAAU,cAAA,GAAiB,cAAA;;iBAWxC,kBAAA,CAAmB,QAAA,EAAU,iBAAA,KAAsB,OAAA"}
@@ -1,4 +1,4 @@
1
- import { n as getServiceById } from "./registry-CqLarEm5.mjs";
1
+ import { getServiceById } from "./services/registry.mjs";
2
2
 
3
3
  //#region src/version-manager.ts
4
4
  /** Get the pinned image tag for a service */