@better-openclaw/core 1.0.22 → 1.0.23

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 (497) hide show
  1. package/dist/composer.cjs +27 -13
  2. package/dist/composer.cjs.map +1 -1
  3. package/dist/composer.d.cts.map +1 -1
  4. package/dist/composer.d.mts.map +1 -1
  5. package/dist/composer.mjs +27 -13
  6. package/dist/composer.mjs.map +1 -1
  7. package/dist/generate.cjs +1 -0
  8. package/dist/generate.cjs.map +1 -1
  9. package/dist/generate.d.cts.map +1 -1
  10. package/dist/generate.d.mts.map +1 -1
  11. package/dist/generate.mjs +1 -0
  12. package/dist/generate.mjs.map +1 -1
  13. package/dist/generators/env.cjs +146 -0
  14. package/dist/generators/env.cjs.map +1 -1
  15. package/dist/generators/env.d.cts.map +1 -1
  16. package/dist/generators/env.d.mts.map +1 -1
  17. package/dist/generators/env.mjs +146 -0
  18. package/dist/generators/env.mjs.map +1 -1
  19. package/dist/generators/openclaw-json.cjs +102 -7
  20. package/dist/generators/openclaw-json.cjs.map +1 -1
  21. package/dist/generators/openclaw-json.mjs +102 -7
  22. package/dist/generators/openclaw-json.mjs.map +1 -1
  23. package/dist/generators/readme.cjs +2 -1
  24. package/dist/generators/readme.cjs.map +1 -1
  25. package/dist/generators/readme.mjs +2 -1
  26. package/dist/generators/readme.mjs.map +1 -1
  27. package/dist/index.d.cts +1 -1
  28. package/dist/index.d.mts +1 -1
  29. package/dist/presets/registry.cjs +19 -0
  30. package/dist/presets/registry.cjs.map +1 -1
  31. package/dist/presets/registry.d.cts.map +1 -1
  32. package/dist/presets/registry.d.mts.map +1 -1
  33. package/dist/presets/registry.mjs +19 -0
  34. package/dist/presets/registry.mjs.map +1 -1
  35. package/dist/{schema-C_hc7e4k.d.cts → schema-B4c64P8N.d.cts} +17 -1
  36. package/dist/schema-B4c64P8N.d.cts.map +1 -0
  37. package/dist/{schema-CaesJaS2.d.mts → schema-CXNhYci1.d.mts} +17 -1
  38. package/dist/schema-CXNhYci1.d.mts.map +1 -0
  39. package/dist/schema.cjs +5 -1
  40. package/dist/schema.cjs.map +1 -1
  41. package/dist/schema.d.cts +1 -1
  42. package/dist/schema.d.mts +1 -1
  43. package/dist/schema.mjs +5 -1
  44. package/dist/schema.mjs.map +1 -1
  45. package/dist/services/definitions/adguard-home.cjs +74 -0
  46. package/dist/services/definitions/adguard-home.cjs.map +1 -0
  47. package/dist/services/definitions/adguard-home.d.cts +7 -0
  48. package/dist/services/definitions/adguard-home.d.cts.map +1 -0
  49. package/dist/services/definitions/adguard-home.d.mts +7 -0
  50. package/dist/services/definitions/adguard-home.d.mts.map +1 -0
  51. package/dist/services/definitions/adguard-home.mjs +73 -0
  52. package/dist/services/definitions/adguard-home.mjs.map +1 -0
  53. package/dist/services/definitions/audiobookshelf.cjs +81 -0
  54. package/dist/services/definitions/audiobookshelf.cjs.map +1 -0
  55. package/dist/services/definitions/audiobookshelf.d.cts +7 -0
  56. package/dist/services/definitions/audiobookshelf.d.cts.map +1 -0
  57. package/dist/services/definitions/audiobookshelf.d.mts +7 -0
  58. package/dist/services/definitions/audiobookshelf.d.mts.map +1 -0
  59. package/dist/services/definitions/audiobookshelf.mjs +80 -0
  60. package/dist/services/definitions/audiobookshelf.mjs.map +1 -0
  61. package/dist/services/definitions/baserow.cjs +115 -0
  62. package/dist/services/definitions/baserow.cjs.map +1 -0
  63. package/dist/services/definitions/baserow.d.cts +7 -0
  64. package/dist/services/definitions/baserow.d.cts.map +1 -0
  65. package/dist/services/definitions/baserow.d.mts +7 -0
  66. package/dist/services/definitions/baserow.d.mts.map +1 -0
  67. package/dist/services/definitions/baserow.mjs +114 -0
  68. package/dist/services/definitions/baserow.mjs.map +1 -0
  69. package/dist/services/definitions/calibre-web.cjs +91 -0
  70. package/dist/services/definitions/calibre-web.cjs.map +1 -0
  71. package/dist/services/definitions/calibre-web.d.cts +7 -0
  72. package/dist/services/definitions/calibre-web.d.cts.map +1 -0
  73. package/dist/services/definitions/calibre-web.d.mts +7 -0
  74. package/dist/services/definitions/calibre-web.d.mts.map +1 -0
  75. package/dist/services/definitions/calibre-web.mjs +90 -0
  76. package/dist/services/definitions/calibre-web.mjs.map +1 -0
  77. package/dist/services/definitions/clickhouse.cjs +113 -0
  78. package/dist/services/definitions/clickhouse.cjs.map +1 -0
  79. package/dist/services/definitions/clickhouse.d.cts +7 -0
  80. package/dist/services/definitions/clickhouse.d.cts.map +1 -0
  81. package/dist/services/definitions/clickhouse.d.mts +7 -0
  82. package/dist/services/definitions/clickhouse.d.mts.map +1 -0
  83. package/dist/services/definitions/clickhouse.mjs +112 -0
  84. package/dist/services/definitions/clickhouse.mjs.map +1 -0
  85. package/dist/services/definitions/cloudflared.cjs +55 -0
  86. package/dist/services/definitions/cloudflared.cjs.map +1 -0
  87. package/dist/services/definitions/cloudflared.d.cts +7 -0
  88. package/dist/services/definitions/cloudflared.d.cts.map +1 -0
  89. package/dist/services/definitions/cloudflared.d.mts +7 -0
  90. package/dist/services/definitions/cloudflared.d.mts.map +1 -0
  91. package/dist/services/definitions/cloudflared.mjs +54 -0
  92. package/dist/services/definitions/cloudflared.mjs.map +1 -0
  93. package/dist/services/definitions/cockroachdb.cjs +70 -0
  94. package/dist/services/definitions/cockroachdb.cjs.map +1 -0
  95. package/dist/services/definitions/cockroachdb.d.cts +7 -0
  96. package/dist/services/definitions/cockroachdb.d.cts.map +1 -0
  97. package/dist/services/definitions/cockroachdb.d.mts +7 -0
  98. package/dist/services/definitions/cockroachdb.d.mts.map +1 -0
  99. package/dist/services/definitions/cockroachdb.mjs +69 -0
  100. package/dist/services/definitions/cockroachdb.mjs.map +1 -0
  101. package/dist/services/definitions/coder.cjs +64 -0
  102. package/dist/services/definitions/coder.cjs.map +1 -0
  103. package/dist/services/definitions/coder.d.cts +7 -0
  104. package/dist/services/definitions/coder.d.cts.map +1 -0
  105. package/dist/services/definitions/coder.d.mts +7 -0
  106. package/dist/services/definitions/coder.d.mts.map +1 -0
  107. package/dist/services/definitions/coder.mjs +63 -0
  108. package/dist/services/definitions/coder.mjs.map +1 -0
  109. package/dist/services/definitions/dragonfly.cjs +64 -0
  110. package/dist/services/definitions/dragonfly.cjs.map +1 -0
  111. package/dist/services/definitions/dragonfly.d.cts +7 -0
  112. package/dist/services/definitions/dragonfly.d.cts.map +1 -0
  113. package/dist/services/definitions/dragonfly.d.mts +7 -0
  114. package/dist/services/definitions/dragonfly.d.mts.map +1 -0
  115. package/dist/services/definitions/dragonfly.mjs +63 -0
  116. package/dist/services/definitions/dragonfly.mjs.map +1 -0
  117. package/dist/services/definitions/drone-ci.cjs +95 -0
  118. package/dist/services/definitions/drone-ci.cjs.map +1 -0
  119. package/dist/services/definitions/drone-ci.d.cts +7 -0
  120. package/dist/services/definitions/drone-ci.d.cts.map +1 -0
  121. package/dist/services/definitions/drone-ci.d.mts +7 -0
  122. package/dist/services/definitions/drone-ci.d.mts.map +1 -0
  123. package/dist/services/definitions/drone-ci.mjs +94 -0
  124. package/dist/services/definitions/drone-ci.mjs.map +1 -0
  125. package/dist/services/definitions/element-web.cjs +61 -0
  126. package/dist/services/definitions/element-web.cjs.map +1 -0
  127. package/dist/services/definitions/element-web.d.cts +7 -0
  128. package/dist/services/definitions/element-web.d.cts.map +1 -0
  129. package/dist/services/definitions/element-web.d.mts +7 -0
  130. package/dist/services/definitions/element-web.d.mts.map +1 -0
  131. package/dist/services/definitions/element-web.mjs +60 -0
  132. package/dist/services/definitions/element-web.mjs.map +1 -0
  133. package/dist/services/definitions/focalboard.cjs +65 -0
  134. package/dist/services/definitions/focalboard.cjs.map +1 -0
  135. package/dist/services/definitions/focalboard.d.cts +7 -0
  136. package/dist/services/definitions/focalboard.d.cts.map +1 -0
  137. package/dist/services/definitions/focalboard.d.mts +7 -0
  138. package/dist/services/definitions/focalboard.d.mts.map +1 -0
  139. package/dist/services/definitions/focalboard.mjs +64 -0
  140. package/dist/services/definitions/focalboard.mjs.map +1 -0
  141. package/dist/services/definitions/forgejo.cjs +108 -0
  142. package/dist/services/definitions/forgejo.cjs.map +1 -0
  143. package/dist/services/definitions/forgejo.d.cts +7 -0
  144. package/dist/services/definitions/forgejo.d.cts.map +1 -0
  145. package/dist/services/definitions/forgejo.d.mts +7 -0
  146. package/dist/services/definitions/forgejo.d.mts.map +1 -0
  147. package/dist/services/definitions/forgejo.mjs +107 -0
  148. package/dist/services/definitions/forgejo.mjs.map +1 -0
  149. package/dist/services/definitions/graylog.cjs +103 -0
  150. package/dist/services/definitions/graylog.cjs.map +1 -0
  151. package/dist/services/definitions/graylog.d.cts +7 -0
  152. package/dist/services/definitions/graylog.d.cts.map +1 -0
  153. package/dist/services/definitions/graylog.d.mts +7 -0
  154. package/dist/services/definitions/graylog.d.mts.map +1 -0
  155. package/dist/services/definitions/graylog.mjs +102 -0
  156. package/dist/services/definitions/graylog.mjs.map +1 -0
  157. package/dist/services/definitions/index.cjs +139 -1
  158. package/dist/services/definitions/index.cjs.map +1 -1
  159. package/dist/services/definitions/index.d.cts +47 -1
  160. package/dist/services/definitions/index.d.cts.map +1 -1
  161. package/dist/services/definitions/index.d.mts +47 -1
  162. package/dist/services/definitions/index.d.mts.map +1 -1
  163. package/dist/services/definitions/index.mjs +94 -2
  164. package/dist/services/definitions/index.mjs.map +1 -1
  165. package/dist/services/definitions/influxdb.cjs +105 -0
  166. package/dist/services/definitions/influxdb.cjs.map +1 -0
  167. package/dist/services/definitions/influxdb.d.cts +7 -0
  168. package/dist/services/definitions/influxdb.d.cts.map +1 -0
  169. package/dist/services/definitions/influxdb.d.mts +7 -0
  170. package/dist/services/definitions/influxdb.d.mts.map +1 -0
  171. package/dist/services/definitions/influxdb.mjs +104 -0
  172. package/dist/services/definitions/influxdb.mjs.map +1 -0
  173. package/dist/services/definitions/invoke-ai.cjs +70 -0
  174. package/dist/services/definitions/invoke-ai.cjs.map +1 -0
  175. package/dist/services/definitions/invoke-ai.d.cts +7 -0
  176. package/dist/services/definitions/invoke-ai.d.cts.map +1 -0
  177. package/dist/services/definitions/invoke-ai.d.mts +7 -0
  178. package/dist/services/definitions/invoke-ai.d.mts.map +1 -0
  179. package/dist/services/definitions/invoke-ai.mjs +69 -0
  180. package/dist/services/definitions/invoke-ai.mjs.map +1 -0
  181. package/dist/services/definitions/jaeger.cjs +95 -0
  182. package/dist/services/definitions/jaeger.cjs.map +1 -0
  183. package/dist/services/definitions/jaeger.d.cts +7 -0
  184. package/dist/services/definitions/jaeger.d.cts.map +1 -0
  185. package/dist/services/definitions/jaeger.d.mts +7 -0
  186. package/dist/services/definitions/jaeger.d.mts.map +1 -0
  187. package/dist/services/definitions/jaeger.mjs +94 -0
  188. package/dist/services/definitions/jaeger.mjs.map +1 -0
  189. package/dist/services/definitions/jan.cjs +64 -0
  190. package/dist/services/definitions/jan.cjs.map +1 -0
  191. package/dist/services/definitions/jan.d.cts +7 -0
  192. package/dist/services/definitions/jan.d.cts.map +1 -0
  193. package/dist/services/definitions/jan.d.mts +7 -0
  194. package/dist/services/definitions/jan.d.mts.map +1 -0
  195. package/dist/services/definitions/jan.mjs +63 -0
  196. package/dist/services/definitions/jan.mjs.map +1 -0
  197. package/dist/services/definitions/jitsi-meet.cjs +102 -0
  198. package/dist/services/definitions/jitsi-meet.cjs.map +1 -0
  199. package/dist/services/definitions/jitsi-meet.d.cts +7 -0
  200. package/dist/services/definitions/jitsi-meet.d.cts.map +1 -0
  201. package/dist/services/definitions/jitsi-meet.d.mts +7 -0
  202. package/dist/services/definitions/jitsi-meet.d.mts.map +1 -0
  203. package/dist/services/definitions/jitsi-meet.mjs +101 -0
  204. package/dist/services/definitions/jitsi-meet.mjs.map +1 -0
  205. package/dist/services/definitions/local-ai.cjs +86 -0
  206. package/dist/services/definitions/local-ai.cjs.map +1 -0
  207. package/dist/services/definitions/local-ai.d.cts +7 -0
  208. package/dist/services/definitions/local-ai.d.cts.map +1 -0
  209. package/dist/services/definitions/local-ai.d.mts +7 -0
  210. package/dist/services/definitions/local-ai.d.mts.map +1 -0
  211. package/dist/services/definitions/local-ai.mjs +85 -0
  212. package/dist/services/definitions/local-ai.mjs.map +1 -0
  213. package/dist/services/definitions/metabase.cjs +108 -0
  214. package/dist/services/definitions/metabase.cjs.map +1 -0
  215. package/dist/services/definitions/metabase.d.cts +7 -0
  216. package/dist/services/definitions/metabase.d.cts.map +1 -0
  217. package/dist/services/definitions/metabase.d.mts +7 -0
  218. package/dist/services/definitions/metabase.d.mts.map +1 -0
  219. package/dist/services/definitions/metabase.mjs +107 -0
  220. package/dist/services/definitions/metabase.mjs.map +1 -0
  221. package/dist/services/definitions/mosquitto.cjs +82 -0
  222. package/dist/services/definitions/mosquitto.cjs.map +1 -0
  223. package/dist/services/definitions/mosquitto.d.cts +7 -0
  224. package/dist/services/definitions/mosquitto.d.cts.map +1 -0
  225. package/dist/services/definitions/mosquitto.d.mts +7 -0
  226. package/dist/services/definitions/mosquitto.d.mts.map +1 -0
  227. package/dist/services/definitions/mosquitto.mjs +81 -0
  228. package/dist/services/definitions/mosquitto.mjs.map +1 -0
  229. package/dist/services/definitions/navidrome.cjs +90 -0
  230. package/dist/services/definitions/navidrome.cjs.map +1 -0
  231. package/dist/services/definitions/navidrome.d.cts +7 -0
  232. package/dist/services/definitions/navidrome.d.cts.map +1 -0
  233. package/dist/services/definitions/navidrome.d.mts +7 -0
  234. package/dist/services/definitions/navidrome.d.mts.map +1 -0
  235. package/dist/services/definitions/navidrome.mjs +89 -0
  236. package/dist/services/definitions/navidrome.mjs.map +1 -0
  237. package/dist/services/definitions/nginx-proxy-manager.cjs +71 -0
  238. package/dist/services/definitions/nginx-proxy-manager.cjs.map +1 -0
  239. package/dist/services/definitions/nginx-proxy-manager.d.cts +7 -0
  240. package/dist/services/definitions/nginx-proxy-manager.d.cts.map +1 -0
  241. package/dist/services/definitions/nginx-proxy-manager.d.mts +7 -0
  242. package/dist/services/definitions/nginx-proxy-manager.d.mts.map +1 -0
  243. package/dist/services/definitions/nginx-proxy-manager.mjs +70 -0
  244. package/dist/services/definitions/nginx-proxy-manager.mjs.map +1 -0
  245. package/dist/services/definitions/node-red.cjs +77 -0
  246. package/dist/services/definitions/node-red.cjs.map +1 -0
  247. package/dist/services/definitions/node-red.d.cts +7 -0
  248. package/dist/services/definitions/node-red.d.cts.map +1 -0
  249. package/dist/services/definitions/node-red.d.mts +7 -0
  250. package/dist/services/definitions/node-red.d.mts.map +1 -0
  251. package/dist/services/definitions/node-red.mjs +76 -0
  252. package/dist/services/definitions/node-red.mjs.map +1 -0
  253. package/dist/services/definitions/photoprism.cjs +126 -0
  254. package/dist/services/definitions/photoprism.cjs.map +1 -0
  255. package/dist/services/definitions/photoprism.d.cts +7 -0
  256. package/dist/services/definitions/photoprism.d.cts.map +1 -0
  257. package/dist/services/definitions/photoprism.d.mts +7 -0
  258. package/dist/services/definitions/photoprism.d.mts.map +1 -0
  259. package/dist/services/definitions/photoprism.mjs +125 -0
  260. package/dist/services/definitions/photoprism.mjs.map +1 -0
  261. package/dist/services/definitions/pihole.cjs +73 -0
  262. package/dist/services/definitions/pihole.cjs.map +1 -0
  263. package/dist/services/definitions/pihole.d.cts +7 -0
  264. package/dist/services/definitions/pihole.d.cts.map +1 -0
  265. package/dist/services/definitions/pihole.d.mts +7 -0
  266. package/dist/services/definitions/pihole.d.mts.map +1 -0
  267. package/dist/services/definitions/pihole.mjs +72 -0
  268. package/dist/services/definitions/pihole.mjs.map +1 -0
  269. package/dist/services/definitions/piper-tts.cjs +70 -0
  270. package/dist/services/definitions/piper-tts.cjs.map +1 -0
  271. package/dist/services/definitions/piper-tts.d.cts +7 -0
  272. package/dist/services/definitions/piper-tts.d.cts.map +1 -0
  273. package/dist/services/definitions/piper-tts.d.mts +7 -0
  274. package/dist/services/definitions/piper-tts.d.mts.map +1 -0
  275. package/dist/services/definitions/piper-tts.mjs +69 -0
  276. package/dist/services/definitions/piper-tts.mjs.map +1 -0
  277. package/dist/services/definitions/plane.cjs +75 -0
  278. package/dist/services/definitions/plane.cjs.map +1 -0
  279. package/dist/services/definitions/plane.d.cts +7 -0
  280. package/dist/services/definitions/plane.d.cts.map +1 -0
  281. package/dist/services/definitions/plane.d.mts +7 -0
  282. package/dist/services/definitions/plane.d.mts.map +1 -0
  283. package/dist/services/definitions/plane.mjs +74 -0
  284. package/dist/services/definitions/plane.mjs.map +1 -0
  285. package/dist/services/definitions/plausible.cjs +94 -0
  286. package/dist/services/definitions/plausible.cjs.map +1 -0
  287. package/dist/services/definitions/plausible.d.cts +7 -0
  288. package/dist/services/definitions/plausible.d.cts.map +1 -0
  289. package/dist/services/definitions/plausible.d.mts +7 -0
  290. package/dist/services/definitions/plausible.d.mts.map +1 -0
  291. package/dist/services/definitions/plausible.mjs +93 -0
  292. package/dist/services/definitions/plausible.mjs.map +1 -0
  293. package/dist/services/definitions/pocket-id.cjs +101 -0
  294. package/dist/services/definitions/pocket-id.cjs.map +1 -0
  295. package/dist/services/definitions/pocket-id.d.cts +7 -0
  296. package/dist/services/definitions/pocket-id.d.cts.map +1 -0
  297. package/dist/services/definitions/pocket-id.d.mts +7 -0
  298. package/dist/services/definitions/pocket-id.d.mts.map +1 -0
  299. package/dist/services/definitions/pocket-id.mjs +100 -0
  300. package/dist/services/definitions/pocket-id.mjs.map +1 -0
  301. package/dist/services/definitions/posthog.cjs +94 -0
  302. package/dist/services/definitions/posthog.cjs.map +1 -0
  303. package/dist/services/definitions/posthog.d.cts +7 -0
  304. package/dist/services/definitions/posthog.d.cts.map +1 -0
  305. package/dist/services/definitions/posthog.d.mts +7 -0
  306. package/dist/services/definitions/posthog.d.mts.map +1 -0
  307. package/dist/services/definitions/posthog.mjs +93 -0
  308. package/dist/services/definitions/posthog.mjs.map +1 -0
  309. package/dist/services/definitions/redis.cjs +1 -1
  310. package/dist/services/definitions/redis.cjs.map +1 -1
  311. package/dist/services/definitions/redis.mjs +1 -1
  312. package/dist/services/definitions/redis.mjs.map +1 -1
  313. package/dist/services/definitions/revolt.cjs +64 -0
  314. package/dist/services/definitions/revolt.cjs.map +1 -0
  315. package/dist/services/definitions/revolt.d.cts +7 -0
  316. package/dist/services/definitions/revolt.d.cts.map +1 -0
  317. package/dist/services/definitions/revolt.d.mts +7 -0
  318. package/dist/services/definitions/revolt.d.mts.map +1 -0
  319. package/dist/services/definitions/revolt.mjs +63 -0
  320. package/dist/services/definitions/revolt.mjs.map +1 -0
  321. package/dist/services/definitions/sentry.cjs +101 -0
  322. package/dist/services/definitions/sentry.cjs.map +1 -0
  323. package/dist/services/definitions/sentry.d.cts +7 -0
  324. package/dist/services/definitions/sentry.d.cts.map +1 -0
  325. package/dist/services/definitions/sentry.d.mts +7 -0
  326. package/dist/services/definitions/sentry.d.mts.map +1 -0
  327. package/dist/services/definitions/sentry.mjs +100 -0
  328. package/dist/services/definitions/sentry.mjs.map +1 -0
  329. package/dist/services/definitions/sonarqube.cjs +86 -0
  330. package/dist/services/definitions/sonarqube.cjs.map +1 -0
  331. package/dist/services/definitions/sonarqube.d.cts +7 -0
  332. package/dist/services/definitions/sonarqube.d.cts.map +1 -0
  333. package/dist/services/definitions/sonarqube.d.mts +7 -0
  334. package/dist/services/definitions/sonarqube.d.mts.map +1 -0
  335. package/dist/services/definitions/sonarqube.mjs +85 -0
  336. package/dist/services/definitions/sonarqube.mjs.map +1 -0
  337. package/dist/services/definitions/superset.cjs +77 -0
  338. package/dist/services/definitions/superset.cjs.map +1 -0
  339. package/dist/services/definitions/superset.d.cts +7 -0
  340. package/dist/services/definitions/superset.d.cts.map +1 -0
  341. package/dist/services/definitions/superset.d.mts +7 -0
  342. package/dist/services/definitions/superset.d.mts.map +1 -0
  343. package/dist/services/definitions/superset.mjs +76 -0
  344. package/dist/services/definitions/superset.mjs.map +1 -0
  345. package/dist/services/definitions/surrealdb.cjs +72 -0
  346. package/dist/services/definitions/surrealdb.cjs.map +1 -0
  347. package/dist/services/definitions/surrealdb.d.cts +7 -0
  348. package/dist/services/definitions/surrealdb.d.cts.map +1 -0
  349. package/dist/services/definitions/surrealdb.d.mts +7 -0
  350. package/dist/services/definitions/surrealdb.d.mts.map +1 -0
  351. package/dist/services/definitions/surrealdb.mjs +71 -0
  352. package/dist/services/definitions/surrealdb.mjs.map +1 -0
  353. package/dist/services/definitions/tabby-ml.cjs +70 -0
  354. package/dist/services/definitions/tabby-ml.cjs.map +1 -0
  355. package/dist/services/definitions/tabby-ml.d.cts +7 -0
  356. package/dist/services/definitions/tabby-ml.d.cts.map +1 -0
  357. package/dist/services/definitions/tabby-ml.d.mts +7 -0
  358. package/dist/services/definitions/tabby-ml.d.mts.map +1 -0
  359. package/dist/services/definitions/tabby-ml.mjs +69 -0
  360. package/dist/services/definitions/tabby-ml.mjs.map +1 -0
  361. package/dist/services/definitions/tempo.cjs +57 -0
  362. package/dist/services/definitions/tempo.cjs.map +1 -0
  363. package/dist/services/definitions/tempo.d.cts +7 -0
  364. package/dist/services/definitions/tempo.d.cts.map +1 -0
  365. package/dist/services/definitions/tempo.d.mts +7 -0
  366. package/dist/services/definitions/tempo.d.mts.map +1 -0
  367. package/dist/services/definitions/tempo.mjs +56 -0
  368. package/dist/services/definitions/tempo.mjs.map +1 -0
  369. package/dist/services/definitions/text-gen-webui.cjs +88 -0
  370. package/dist/services/definitions/text-gen-webui.cjs.map +1 -0
  371. package/dist/services/definitions/text-gen-webui.d.cts +7 -0
  372. package/dist/services/definitions/text-gen-webui.d.cts.map +1 -0
  373. package/dist/services/definitions/text-gen-webui.d.mts +7 -0
  374. package/dist/services/definitions/text-gen-webui.d.mts.map +1 -0
  375. package/dist/services/definitions/text-gen-webui.mjs +87 -0
  376. package/dist/services/definitions/text-gen-webui.mjs.map +1 -0
  377. package/dist/services/definitions/timescaledb.cjs +87 -0
  378. package/dist/services/definitions/timescaledb.cjs.map +1 -0
  379. package/dist/services/definitions/timescaledb.d.cts +7 -0
  380. package/dist/services/definitions/timescaledb.d.cts.map +1 -0
  381. package/dist/services/definitions/timescaledb.d.mts +7 -0
  382. package/dist/services/definitions/timescaledb.d.mts.map +1 -0
  383. package/dist/services/definitions/timescaledb.mjs +86 -0
  384. package/dist/services/definitions/timescaledb.mjs.map +1 -0
  385. package/dist/services/definitions/valkey.cjs +1 -1
  386. package/dist/services/definitions/valkey.cjs.map +1 -1
  387. package/dist/services/definitions/valkey.mjs +1 -1
  388. package/dist/services/definitions/valkey.mjs.map +1 -1
  389. package/dist/services/definitions/vector-log.cjs +59 -0
  390. package/dist/services/definitions/vector-log.cjs.map +1 -0
  391. package/dist/services/definitions/vector-log.d.cts +7 -0
  392. package/dist/services/definitions/vector-log.d.cts.map +1 -0
  393. package/dist/services/definitions/vector-log.d.mts +7 -0
  394. package/dist/services/definitions/vector-log.d.mts.map +1 -0
  395. package/dist/services/definitions/vector-log.mjs +58 -0
  396. package/dist/services/definitions/vector-log.mjs.map +1 -0
  397. package/dist/services/definitions/vikunja.cjs +96 -0
  398. package/dist/services/definitions/vikunja.cjs.map +1 -0
  399. package/dist/services/definitions/vikunja.d.cts +7 -0
  400. package/dist/services/definitions/vikunja.d.cts.map +1 -0
  401. package/dist/services/definitions/vikunja.d.mts +7 -0
  402. package/dist/services/definitions/vikunja.d.mts.map +1 -0
  403. package/dist/services/definitions/vikunja.mjs +95 -0
  404. package/dist/services/definitions/vikunja.mjs.map +1 -0
  405. package/dist/services/definitions/wireguard.cjs +88 -0
  406. package/dist/services/definitions/wireguard.cjs.map +1 -0
  407. package/dist/services/definitions/wireguard.d.cts +7 -0
  408. package/dist/services/definitions/wireguard.d.cts.map +1 -0
  409. package/dist/services/definitions/wireguard.d.mts +7 -0
  410. package/dist/services/definitions/wireguard.d.mts.map +1 -0
  411. package/dist/services/definitions/wireguard.mjs +87 -0
  412. package/dist/services/definitions/wireguard.mjs.map +1 -0
  413. package/dist/services/definitions/woodpecker-ci.cjs +93 -0
  414. package/dist/services/definitions/woodpecker-ci.cjs.map +1 -0
  415. package/dist/services/definitions/woodpecker-ci.d.cts +7 -0
  416. package/dist/services/definitions/woodpecker-ci.d.cts.map +1 -0
  417. package/dist/services/definitions/woodpecker-ci.d.mts +7 -0
  418. package/dist/services/definitions/woodpecker-ci.d.mts.map +1 -0
  419. package/dist/services/definitions/woodpecker-ci.mjs +92 -0
  420. package/dist/services/definitions/woodpecker-ci.mjs.map +1 -0
  421. package/dist/services/definitions/zulip.cjs +116 -0
  422. package/dist/services/definitions/zulip.cjs.map +1 -0
  423. package/dist/services/definitions/zulip.d.cts +7 -0
  424. package/dist/services/definitions/zulip.d.cts.map +1 -0
  425. package/dist/services/definitions/zulip.d.mts +7 -0
  426. package/dist/services/definitions/zulip.d.mts.map +1 -0
  427. package/dist/services/definitions/zulip.mjs +115 -0
  428. package/dist/services/definitions/zulip.mjs.map +1 -0
  429. package/dist/types.cjs +28 -0
  430. package/dist/types.cjs.map +1 -1
  431. package/dist/types.d.cts +2 -1
  432. package/dist/types.d.cts.map +1 -1
  433. package/dist/types.d.mts +2 -1
  434. package/dist/types.d.mts.map +1 -1
  435. package/dist/types.mjs +28 -0
  436. package/dist/types.mjs.map +1 -1
  437. package/package.json +1 -1
  438. package/src/__snapshots__/composer.snapshot.test.ts.snap +130 -65
  439. package/src/composer.ts +25 -15
  440. package/src/generate.ts +1 -0
  441. package/src/generators/env.ts +214 -0
  442. package/src/generators/openclaw-json.ts +156 -1
  443. package/src/generators/readme.ts +2 -1
  444. package/src/presets/registry.ts +329 -221
  445. package/src/schema.ts +4 -0
  446. package/src/services/definitions/adguard-home.ts +79 -0
  447. package/src/services/definitions/audiobookshelf.ts +83 -0
  448. package/src/services/definitions/baserow.ts +118 -0
  449. package/src/services/definitions/calibre-web.ts +95 -0
  450. package/src/services/definitions/clickhouse.ts +115 -0
  451. package/src/services/definitions/cloudflared.ts +55 -0
  452. package/src/services/definitions/cockroachdb.ts +75 -0
  453. package/src/services/definitions/coder.ts +68 -0
  454. package/src/services/definitions/dragonfly.ts +68 -0
  455. package/src/services/definitions/drone-ci.ts +96 -0
  456. package/src/services/definitions/element-web.ts +62 -0
  457. package/src/services/definitions/focalboard.ts +69 -0
  458. package/src/services/definitions/forgejo.ts +109 -0
  459. package/src/services/definitions/graylog.ts +101 -0
  460. package/src/services/definitions/index.ts +139 -0
  461. package/src/services/definitions/influxdb.ts +109 -0
  462. package/src/services/definitions/invoke-ai.ts +76 -0
  463. package/src/services/definitions/jaeger.ts +94 -0
  464. package/src/services/definitions/jan.ts +68 -0
  465. package/src/services/definitions/jitsi-meet.ts +108 -0
  466. package/src/services/definitions/local-ai.ts +90 -0
  467. package/src/services/definitions/metabase.ts +111 -0
  468. package/src/services/definitions/mosquitto.ts +84 -0
  469. package/src/services/definitions/navidrome.ts +95 -0
  470. package/src/services/definitions/nginx-proxy-manager.ts +70 -0
  471. package/src/services/definitions/node-red.ts +83 -0
  472. package/src/services/definitions/photoprism.ts +130 -0
  473. package/src/services/definitions/pihole.ts +79 -0
  474. package/src/services/definitions/piper-tts.ts +76 -0
  475. package/src/services/definitions/plane.ts +75 -0
  476. package/src/services/definitions/plausible.ts +97 -0
  477. package/src/services/definitions/pocket-id.ts +98 -0
  478. package/src/services/definitions/posthog.ts +97 -0
  479. package/src/services/definitions/redis.ts +1 -1
  480. package/src/services/definitions/revolt.ts +68 -0
  481. package/src/services/definitions/sentry.ts +104 -0
  482. package/src/services/definitions/sonarqube.ts +85 -0
  483. package/src/services/definitions/superset.ts +84 -0
  484. package/src/services/definitions/surrealdb.ts +77 -0
  485. package/src/services/definitions/tabby-ml.ts +76 -0
  486. package/src/services/definitions/tempo.ts +59 -0
  487. package/src/services/definitions/text-gen-webui.ts +92 -0
  488. package/src/services/definitions/timescaledb.ts +90 -0
  489. package/src/services/definitions/valkey.ts +1 -1
  490. package/src/services/definitions/vector-log.ts +61 -0
  491. package/src/services/definitions/vikunja.ts +96 -0
  492. package/src/services/definitions/wireguard.ts +89 -0
  493. package/src/services/definitions/woodpecker-ci.ts +97 -0
  494. package/src/services/definitions/zulip.ts +117 -0
  495. package/src/types.ts +29 -0
  496. package/dist/schema-C_hc7e4k.d.cts.map +0 -1
  497. package/dist/schema-CaesJaS2.d.mts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"registry.mjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t// ── New service presets ─────────────────────────────────────────────────\n\t{\n\t\tid: \"backend-platform\",\n\t\tname: \"Backend Platform\",\n\t\tdescription:\n\t\t\t\"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n\t\tservices: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n\t\tskillPacks: [\"appwrite-platform\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"rag-platform\",\n\t\tname: \"RAG Platform\",\n\t\tdescription:\n\t\t\t\"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n\t\tservices: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n\t\tskillPacks: [\"ragflow-platform\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"zero-trust\",\n\t\tname: \"Zero-Trust Security\",\n\t\tdescription:\n\t\t\t\"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n\t\tservices: [\"authelia\", \"keycloak\", \"infisical\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"authelia-security\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"content-platform\",\n\t\tname: \"Content Platform\",\n\t\tdescription: \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n\t\tservices: [\"directus\", \"strapi\", \"listmonk\", \"postgresql\", \"redis\", \"stirling-pdf\", \"caddy\"],\n\t\tskillPacks: [\"cms-stack\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"ai-orchestrator\",\n\t\tname: \"AI Orchestrator\",\n\t\tdescription: \"Langflow and Firecrawl for building and deploying AI workflows\",\n\t\tservices: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-agent-orchestra\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t// ── New Presets (from feature analysis) ───────────────────────────────────\n\t{\n\t\tid: \"support-desk\",\n\t\tname: \"Support Desk\",\n\t\tdescription:\n\t\t\t\"AI-powered customer support with live chat, LLM observability, and ticket management\",\n\t\tservices: [\"chatwoot\", \"chatwoot-worker\", \"langfuse\", \"redis\", \"postgresql\", \"caddy\"],\n\t\tskillPacks: [\"customer-support\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"sales-machine\",\n\t\tname: \"Sales Machine\",\n\t\tdescription:\n\t\t\t\"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n\t\tservices: [\"twenty\", \"mautic\", \"listmonk\", \"n8n\", \"postgresql\", \"mysql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"sales-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"data-warehouse\",\n\t\tname: \"Data Warehouse\",\n\t\tdescription: \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n\t\tservices: [\"airflow\", \"airbyte\", \"postgresql\", \"grafana\", \"prometheus\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"data-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"voice-center\",\n\t\tname: \"Voice Center\",\n\t\tdescription:\n\t\t\t\"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n\t\tservices: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"voice-agent\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"shopfront\",\n\t\tname: \"Shopfront\",\n\t\tdescription: \"AI-managed headless e-commerce with product management and object storage\",\n\t\tservices: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ecommerce-ops\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"registry.mjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n {\n id: \"minimal\",\n name: \"Minimal\",\n description: \"OpenClaw + Redis for caching and session management\",\n services: [\"redis\", \"caddy\"],\n skillPacks: [],\n estimatedMemoryMB: 1024,\n },\n {\n id: \"creator\",\n name: \"Creator\",\n description:\n \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n services: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n skillPacks: [\"video-creator\"],\n estimatedMemoryMB: 2048,\n },\n {\n id: \"researcher\",\n name: \"Researcher\",\n description:\n \"Research agent with vector search, web scraping, and meta search\",\n services: [\n \"qdrant\",\n \"searxng\",\n \"browserless\",\n \"redis\",\n \"caddy\",\n \"postgresql\",\n ],\n skillPacks: [\"research-agent\"],\n estimatedMemoryMB: 2560,\n },\n {\n id: \"devops\",\n name: \"DevOps\",\n description:\n \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n services: [\n \"n8n\",\n \"postgresql\",\n \"redis\",\n \"uptime-kuma\",\n \"grafana\",\n \"prometheus\",\n \"caddy\",\n ],\n skillPacks: [\"dev-ops\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"full\",\n name: \"Full Stack\",\n description: \"Everything enabled — all services and skill packs\",\n services: [\n \"redis\",\n \"postgresql\",\n \"qdrant\",\n \"n8n\",\n \"ffmpeg\",\n \"remotion\",\n \"minio\",\n \"caddy\",\n \"browserless\",\n \"searxng\",\n \"meilisearch\",\n \"uptime-kuma\",\n \"grafana\",\n \"prometheus\",\n \"ollama\",\n \"whisper\",\n \"gotify\",\n ],\n skillPacks: [\n \"video-creator\",\n \"research-agent\",\n \"social-media\",\n \"dev-ops\",\n \"knowledge-base\",\n \"local-ai\",\n ],\n estimatedMemoryMB: 8192,\n },\n {\n id: \"content-creator\",\n name: \"Content Creator\",\n description:\n \"Social media scheduling with Postiz, media processing, and analytics\",\n services: [\n \"postiz\",\n \"ffmpeg\",\n \"minio\",\n \"redis\",\n \"postgresql\",\n \"umami\",\n \"caddy\",\n ],\n skillPacks: [\"content-creator\"],\n estimatedMemoryMB: 2048,\n },\n {\n id: \"ai-playground\",\n name: \"AI Playground\",\n description:\n \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n services: [\n \"ollama\",\n \"open-webui\",\n \"litellm\",\n \"anything-llm\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"ai-playground\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"ai-powerhouse\",\n name: \"AI Powerhouse\",\n description:\n \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n services: [\n \"ollama\",\n \"redis\",\n \"qdrant\",\n \"minio\",\n \"litellm\",\n \"anything-llm\",\n \"n8n\",\n \"postgresql\",\n \"caddy\",\n \"open-webui\",\n \"searxng\",\n ],\n skillPacks: [\"ai-playground\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"ai-virtual-desktop\",\n name: \"AI Virtual Desktop\",\n description:\n \"Self-hosted autonomous AI agent with local LLM, vector memory, web search, browser automation, and workflow orchestration. The open-source alternative to Manus and Perplexity Computer.\",\n services: [\n \"ollama\",\n \"qdrant\",\n \"postgresql\",\n \"redis\",\n \"minio\",\n \"n8n\",\n \"browserless\",\n \"open-webui\",\n \"searxng\",\n \"caddy\",\n ],\n skillPacks: [\"research-agent\", \"dev-ops\"],\n estimatedMemoryMB: 6144,\n },\n {\n id: \"coding-team\",\n name: \"Coding Team\",\n description:\n \"AI development environment with coding agents, Git, and browser IDE\",\n services: [\n \"claude-code\",\n \"opencode\",\n \"gitea\",\n \"code-server\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"coding-team\"],\n estimatedMemoryMB: 2560,\n },\n {\n id: \"lasuite-meet\",\n name: \"La Suite Meet\",\n description:\n \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n services: [\n \"postgresql\",\n \"redis\",\n \"livekit\",\n \"lasuite-meet-backend\",\n \"lasuite-meet-frontend\",\n \"lasuite-meet-agents\",\n \"whisper\",\n \"ollama\",\n \"caddy\",\n ],\n skillPacks: [],\n estimatedMemoryMB: 2048,\n },\n // ── New service presets ─────────────────────────────────────────────────\n {\n id: \"backend-platform\",\n name: \"Backend Platform\",\n description:\n \"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n services: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n skillPacks: [\"appwrite-platform\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"rag-platform\",\n name: \"RAG Platform\",\n description:\n \"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n services: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n skillPacks: [\"ragflow-platform\"],\n estimatedMemoryMB: 6144,\n },\n {\n id: \"zero-trust\",\n name: \"Zero-Trust Security\",\n description:\n \"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n services: [\n \"authelia\",\n \"keycloak\",\n \"infisical\",\n \"postgresql\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"authelia-security\"],\n estimatedMemoryMB: 3584,\n },\n {\n id: \"content-platform\",\n name: \"Content Platform\",\n description:\n \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n services: [\n \"directus\",\n \"strapi\",\n \"listmonk\",\n \"postgresql\",\n \"redis\",\n \"stirling-pdf\",\n \"caddy\",\n ],\n skillPacks: [\"cms-stack\"],\n estimatedMemoryMB: 3584,\n },\n {\n id: \"ai-orchestrator\",\n name: \"AI Orchestrator\",\n description:\n \"Langflow and Firecrawl for building and deploying AI workflows\",\n services: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n skillPacks: [\"ai-agent-orchestra\"],\n estimatedMemoryMB: 3072,\n },\n // ── New Presets (from feature analysis) ───────────────────────────────────\n {\n id: \"support-desk\",\n name: \"Support Desk\",\n description:\n \"AI-powered customer support with live chat, LLM observability, and ticket management\",\n services: [\n \"chatwoot\",\n \"chatwoot-worker\",\n \"langfuse\",\n \"redis\",\n \"postgresql\",\n \"caddy\",\n ],\n skillPacks: [\"customer-support\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"sales-machine\",\n name: \"Sales Machine\",\n description:\n \"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n services: [\n \"twenty\",\n \"mautic\",\n \"listmonk\",\n \"n8n\",\n \"postgresql\",\n \"mysql\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"sales-pipeline\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"data-warehouse\",\n name: \"Data Warehouse\",\n description:\n \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n services: [\n \"airflow\",\n \"airbyte\",\n \"postgresql\",\n \"grafana\",\n \"prometheus\",\n \"redis\",\n \"caddy\",\n ],\n skillPacks: [\"data-pipeline\"],\n estimatedMemoryMB: 4096,\n },\n {\n id: \"voice-center\",\n name: \"Voice Center\",\n description:\n \"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n services: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n skillPacks: [\"voice-agent\"],\n estimatedMemoryMB: 3072,\n },\n {\n id: \"shopfront\",\n name: \"Shopfront\",\n description:\n \"AI-managed headless e-commerce with product management and object storage\",\n services: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n skillPacks: [\"ecommerce-ops\"],\n estimatedMemoryMB: 2560,\n },\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n if (presetMap.has(preset.id)) {\n throw new Error(`Duplicate preset ID: \"${preset.id}\"`);\n }\n presetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n return presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n return [...presets];\n}\n"],"mappings":";AAEA,MAAM,UAAoB;CACxB;EACE,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU,CAAC,SAAS,QAAQ;EAC5B,YAAY,EAAE;EACd,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAU;GAAY;GAAS;GAAS;GAAQ;EAC3D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,UAAU;EACvB,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY;GACV;GACA;GACA;GACA;GACA;GACA;GACD;EACD,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,kBAAkB;EAC/B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,kBAAkB,UAAU;EACzC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,EAAE;EACd,mBAAmB;EACpB;CAED;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAW;GAAS;GAAY;GAAQ;EAC/D,YAAY,CAAC,oBAAoB;EACjC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAW;GAAS;GAAS;GAAS;GAAc;GAAQ;EACvE,YAAY,CAAC,mBAAmB;EAChC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,oBAAoB;EACjC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,YAAY;EACzB,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAa;GAAc;GAAS;GAAQ;EACnE,YAAY,CAAC,qBAAqB;EAClC,mBAAmB;EACpB;CAED;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,mBAAmB;EAChC,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAY;GAAW;GAAW;GAAS;GAAQ;EAC9D,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACpB;CACD;EACE,IAAI;EACJ,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAU;GAAS;GAAc;GAAS;GAAQ;EAC7D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACpB;CACF;AAED,MAAM,4BAAY,IAAI,KAAqB;AAC3C,KAAK,MAAM,UAAU,SAAS;AAC5B,KAAI,UAAU,IAAI,OAAO,GAAG,CAC1B,OAAM,IAAI,MAAM,yBAAyB,OAAO,GAAG,GAAG;AAExD,WAAU,IAAI,OAAO,IAAI,OAAO;;AAGlC,MAAa,iBAA8C;AAE3D,SAAgB,cAAc,IAAgC;AAC5D,QAAO,UAAU,IAAI,GAAG;;AAG1B,SAAgB,gBAA0B;AACxC,QAAO,CAAC,GAAG,QAAQ"}
@@ -33,6 +33,10 @@ declare const ServiceCategorySchema: z.ZodEnum<{
33
33
  collaboration: "collaboration";
34
34
  "ai-observability": "ai-observability";
35
35
  "fine-tuning": "fine-tuning";
36
+ "project-management": "project-management";
37
+ "business-intelligence": "business-intelligence";
38
+ "dns-networking": "dns-networking";
39
+ iot: "iot";
36
40
  }>;
37
41
  declare const MaturitySchema: z.ZodEnum<{
38
42
  stable: "stable";
@@ -215,6 +219,10 @@ declare const ServiceDefinitionSchema: z.ZodObject<{
215
219
  collaboration: "collaboration";
216
220
  "ai-observability": "ai-observability";
217
221
  "fine-tuning": "fine-tuning";
222
+ "project-management": "project-management";
223
+ "business-intelligence": "business-intelligence";
224
+ "dns-networking": "dns-networking";
225
+ iot: "iot";
218
226
  }>;
219
227
  icon: z.ZodString;
220
228
  image: z.ZodString;
@@ -451,6 +459,10 @@ declare const ResolvedServiceSchema: z.ZodObject<{
451
459
  collaboration: "collaboration";
452
460
  "ai-observability": "ai-observability";
453
461
  "fine-tuning": "fine-tuning";
462
+ "project-management": "project-management";
463
+ "business-intelligence": "business-intelligence";
464
+ "dns-networking": "dns-networking";
465
+ iot: "iot";
454
466
  }>;
455
467
  icon: z.ZodString;
456
468
  image: z.ZodString;
@@ -621,6 +633,10 @@ declare const ResolverOutputSchema: z.ZodObject<{
621
633
  collaboration: "collaboration";
622
634
  "ai-observability": "ai-observability";
623
635
  "fine-tuning": "fine-tuning";
636
+ "project-management": "project-management";
637
+ "business-intelligence": "business-intelligence";
638
+ "dns-networking": "dns-networking";
639
+ iot: "iot";
624
640
  }>;
625
641
  icon: z.ZodString;
626
642
  image: z.ZodString;
@@ -895,4 +911,4 @@ declare const ApiErrorSchema: z.ZodObject<{
895
911
  }, z.core.$strip>;
896
912
  //#endregion
897
913
  export { ServiceDefinitionSchema as A, PresetSchema as C, ResourceLimitsSchema as D, ResolverOutputSchema as E, VolumeMappingSchema as F, WarningSchema as I, SkillPackSchema as M, ValidateRequestSchema as N, RestartPolicySchema as O, ValidateResponseSchema as P, PortMappingSchema as S, ResolvedServiceSchema as T, NativeRecipeSchema as _, ComposePlatformSchema as a, OutputFormatSchema as b, DeploymentTargetSchema as c, ErrorSchema as d, GenerationInputSchema as f, NativePlatformSchema as g, MaturitySchema as h, ComposeOptionsSchema as i, SkillBindingSchema as j, ServiceCategorySchema as k, DeploymentTypeSchema as l, HealthCheckSchema as m, AiProviderSchema as n, DeploySchema as o, GsdRuntimeSchema as p, ApiErrorSchema as r, DeployTargetSchema as s, AddedDependencySchema as t, EnvVariableSchema as u, OpenclawImageVariantSchema as v, ProxyTypeSchema as w, PlatformSchema as x, OpenclawInstallMethodSchema as y };
898
- //# sourceMappingURL=schema-C_hc7e4k.d.cts.map
914
+ //# sourceMappingURL=schema-B4c64P8N.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-B4c64P8N.d.cts","names":[],"sources":["../src/schema.ts"],"mappings":"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"}
@@ -33,6 +33,10 @@ declare const ServiceCategorySchema: z.ZodEnum<{
33
33
  collaboration: "collaboration";
34
34
  "ai-observability": "ai-observability";
35
35
  "fine-tuning": "fine-tuning";
36
+ "project-management": "project-management";
37
+ "business-intelligence": "business-intelligence";
38
+ "dns-networking": "dns-networking";
39
+ iot: "iot";
36
40
  }>;
37
41
  declare const MaturitySchema: z.ZodEnum<{
38
42
  stable: "stable";
@@ -215,6 +219,10 @@ declare const ServiceDefinitionSchema: z.ZodObject<{
215
219
  collaboration: "collaboration";
216
220
  "ai-observability": "ai-observability";
217
221
  "fine-tuning": "fine-tuning";
222
+ "project-management": "project-management";
223
+ "business-intelligence": "business-intelligence";
224
+ "dns-networking": "dns-networking";
225
+ iot: "iot";
218
226
  }>;
219
227
  icon: z.ZodString;
220
228
  image: z.ZodString;
@@ -451,6 +459,10 @@ declare const ResolvedServiceSchema: z.ZodObject<{
451
459
  collaboration: "collaboration";
452
460
  "ai-observability": "ai-observability";
453
461
  "fine-tuning": "fine-tuning";
462
+ "project-management": "project-management";
463
+ "business-intelligence": "business-intelligence";
464
+ "dns-networking": "dns-networking";
465
+ iot: "iot";
454
466
  }>;
455
467
  icon: z.ZodString;
456
468
  image: z.ZodString;
@@ -621,6 +633,10 @@ declare const ResolverOutputSchema: z.ZodObject<{
621
633
  collaboration: "collaboration";
622
634
  "ai-observability": "ai-observability";
623
635
  "fine-tuning": "fine-tuning";
636
+ "project-management": "project-management";
637
+ "business-intelligence": "business-intelligence";
638
+ "dns-networking": "dns-networking";
639
+ iot: "iot";
624
640
  }>;
625
641
  icon: z.ZodString;
626
642
  image: z.ZodString;
@@ -895,4 +911,4 @@ declare const ApiErrorSchema: z.ZodObject<{
895
911
  }, z.core.$strip>;
896
912
  //#endregion
897
913
  export { ServiceDefinitionSchema as A, PresetSchema as C, ResourceLimitsSchema as D, ResolverOutputSchema as E, VolumeMappingSchema as F, WarningSchema as I, SkillPackSchema as M, ValidateRequestSchema as N, RestartPolicySchema as O, ValidateResponseSchema as P, PortMappingSchema as S, ResolvedServiceSchema as T, NativeRecipeSchema as _, ComposePlatformSchema as a, OutputFormatSchema as b, DeploymentTargetSchema as c, ErrorSchema as d, GenerationInputSchema as f, NativePlatformSchema as g, MaturitySchema as h, ComposeOptionsSchema as i, SkillBindingSchema as j, ServiceCategorySchema as k, DeploymentTypeSchema as l, HealthCheckSchema as m, AiProviderSchema as n, DeploySchema as o, GsdRuntimeSchema as p, ApiErrorSchema as r, DeployTargetSchema as s, AddedDependencySchema as t, EnvVariableSchema as u, OpenclawImageVariantSchema as v, ProxyTypeSchema as w, PlatformSchema as x, OpenclawInstallMethodSchema as y };
898
- //# sourceMappingURL=schema-CaesJaS2.d.mts.map
914
+ //# sourceMappingURL=schema-CXNhYci1.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-CXNhYci1.d.mts","names":[],"sources":["../src/schema.ts"],"mappings":";;;cAIa,qBAAA,EAAqB,CAAA,CAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCrB,cAAA,EAAc,CAAA,CAAA,OAAA;;;;;cAEd,cAAA,EAAc,CAAA,CAAA,OAAA;;;;;;;;cASd,qBAAA,EAAqB,CAAA,CAAA,OAAA;;;;cAErB,oBAAA,EAAoB,CAAA,CAAA,OAAA;;;;;cAEpB,mBAAA,EAAmB,CAAA,CAAA,OAAA;;;;;;cAEnB,eAAA,EAAe,CAAA,CAAA,OAAA;;;;;cAEf,sBAAA,EAAsB,CAAA,CAAA,OAAA;;;;;;cAEtB,kBAAA,EAAkB,CAAA,CAAA,OAAA;;;;;cAElB,0BAAA,EAA0B,CAAA,CAAA,OAAA;;;;;cAE1B,2BAAA,EAA2B,CAAA,CAAA,OAAA;;;;cAE3B,kBAAA,EAAkB,CAAA,CAAA,OAAA;;;;cAElB,gBAAA,EAAgB,CAAA,CAAA,OAAA;;;;;;;;;;;;;;;cAgBhB,gBAAA,EAAgB,CAAA,CAAA,OAAA;;;;;;cAIhB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;cAOjB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;cAOnB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;cASjB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;cAQjB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;cAKpB,YAAA,EAAY,CAAA,CAAA,SAAA;;;;;;;;;;;;cASZ,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;cAOlB,oBAAA,EAAoB,CAAA,CAAA,OAAA;;;;;cAEpB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;;cAYlB,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwDvB,eAAA,EAAe,CAAA,CAAA,SAAA;;;;;;;;;cAef,YAAA,EAAY,CAAA,CAAA,SAAA;;;;;;;;cAcZ,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCrB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKrB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;cAOrB,aAAA,EAAa,CAAA,CAAA,SAAA;;;;cAKb,WAAA,EAAW,CAAA,CAAA,SAAA;;;;cAKX,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAcpB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAyBpB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAWrB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;cAStB,cAAA,EAAc,CAAA,CAAA,SAAA"}
package/dist/schema.cjs CHANGED
@@ -33,7 +33,11 @@ const ServiceCategorySchema = zod.z.enum([
33
33
  "ecommerce",
34
34
  "collaboration",
35
35
  "ai-observability",
36
- "fine-tuning"
36
+ "fine-tuning",
37
+ "project-management",
38
+ "business-intelligence",
39
+ "dns-networking",
40
+ "iot"
37
41
  ]);
38
42
  const MaturitySchema = zod.z.enum([
39
43
  "stable",
@@ -1 +1 @@
1
- {"version":3,"file":"schema.cjs","names":["z"],"sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Enums ──────────────────────────────────────────────────────────────────\n\nexport const ServiceCategorySchema = z.enum([\n\t\"automation\",\n\t\"vector-db\",\n\t\"media\",\n\t\"storage\",\n\t\"database\",\n\t\"proxy\",\n\t\"monitoring\",\n\t\"browser\",\n\t\"search\",\n\t\"ai\",\n\t\"communication\",\n\t\"coding-agent\",\n\t\"social-media\",\n\t\"analytics\",\n\t\"ai-platform\",\n\t\"dev-tools\",\n\t\"knowledge\",\n\t\"desktop\",\n\t\"streaming\",\n\t\"security\",\n\t\"billing\",\n\t\"crm\",\n\t\"email-marketing\",\n\t\"forms\",\n\t\"api-gateway\",\n\t\"backup\",\n\t\"voice\",\n\t\"ecommerce\",\n\t\"collaboration\",\n\t\"ai-observability\",\n\t\"fine-tuning\",\n]);\n\nexport const MaturitySchema = z.enum([\"stable\", \"beta\", \"experimental\"]);\n\nexport const PlatformSchema = z.enum([\n\t\"linux/amd64\",\n\t\"linux/arm64\",\n\t\"windows/amd64\",\n\t\"macos/amd64\",\n\t\"macos/arm64\",\n]);\n\n/** Platform for Docker image arch only (used by resolver/compose). */\nexport const ComposePlatformSchema = z.enum([\"linux/amd64\", \"linux/arm64\"]);\n\nexport const DeploymentTypeSchema = z.enum([\"docker\", \"bare-metal\", \"local\"]);\n\nexport const RestartPolicySchema = z.enum([\"unless-stopped\", \"always\", \"on-failure\", \"no\"]);\n\nexport const ProxyTypeSchema = z.enum([\"none\", \"caddy\", \"traefik\"]);\n\nexport const DeploymentTargetSchema = z.enum([\"local\", \"vps\", \"homelab\", \"clawexa\"]);\n\nexport const OutputFormatSchema = z.enum([\"directory\", \"tar\", \"zip\"]);\n\nexport const OpenclawImageVariantSchema = z.enum([\"official\", \"coolify\", \"alpine\"]);\n\nexport const OpenclawInstallMethodSchema = z.enum([\"docker\", \"direct\"]);\n\nexport const DeployTargetSchema = z.enum([\"local\", \"cloud-init\"]);\n\nexport const AiProviderSchema = z.enum([\n\t\"openai\",\n\t\"anthropic\",\n\t\"google\",\n\t\"xai\",\n\t\"deepseek\",\n\t\"groq\",\n\t\"openrouter\",\n\t\"mistral\",\n\t\"together\",\n\t\"ollama\",\n\t\"ollama-cloud\",\n\t\"lmstudio\",\n\t\"vllm\",\n]);\n\nexport const GsdRuntimeSchema = z.enum([\"claude\", \"opencode\", \"gemini\", \"codex\"]);\n\n// ─── Sub-Schemas ────────────────────────────────────────────────────────────\n\nexport const PortMappingSchema = z.object({\n\thost: z.number().int().min(1).max(65535),\n\tcontainer: z.number().int().min(1).max(65535),\n\tdescription: z.string(),\n\texposed: z.boolean().default(true),\n});\n\nexport const VolumeMappingSchema = z.object({\n\tname: z.string().min(1),\n\tcontainerPath: z.string().min(1),\n\tdescription: z.string(),\n\tdriver: z.string().optional(),\n});\n\nexport const EnvVariableSchema = z.object({\n\tkey: z.string().min(1),\n\tdefaultValue: z.string(),\n\tsecret: z.boolean().default(false),\n\tdescription: z.string(),\n\trequired: z.boolean().default(true),\n\tvalidation: z.string().optional(),\n});\n\nexport const HealthCheckSchema = z.object({\n\ttest: z.string().min(1),\n\tinterval: z.string().default(\"30s\"),\n\ttimeout: z.string().default(\"10s\"),\n\tretries: z.number().int().min(1).default(3),\n\tstartPeriod: z.string().optional(),\n});\n\nexport const ResourceLimitsSchema = z.object({\n\tcpus: z.string().optional(),\n\tmemory: z.string().optional(),\n});\n\nexport const DeploySchema = z.object({\n\tresources: z\n\t\t.object({\n\t\t\tlimits: ResourceLimitsSchema.optional(),\n\t\t\treservations: ResourceLimitsSchema.optional(),\n\t\t})\n\t\t.optional(),\n});\n\nexport const SkillBindingSchema = z.object({\n\tskillId: z.string().min(1),\n\tautoInstall: z.boolean().default(true),\n\tconfigOverrides: z.record(z.string(), z.string()).optional(),\n});\n\n/** Platform for native install (linux, windows, macos — no arch). */\nexport const NativePlatformSchema = z.enum([\"linux\", \"windows\", \"macos\"]);\n\nexport const NativeRecipeSchema = z.object({\n\tplatform: NativePlatformSchema,\n\tinstallSteps: z.array(z.string()).min(1),\n\tstartCommand: z.string(),\n\tstopCommand: z.string().optional(),\n\tconfigPath: z.string().optional(),\n\tconfigTemplate: z.string().optional(),\n\tsystemdUnit: z.string().optional(),\n});\n\n// ─── Service Definition ─────────────────────────────────────────────────────\n\nexport const ServiceDefinitionSchema = z.object({\n\t// Identity\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tcategory: ServiceCategorySchema,\n\ticon: z.string(),\n\n\t// Docker\n\timage: z.string().min(1),\n\timageTag: z.string().min(1),\n\tports: z.array(PortMappingSchema).default([]),\n\tvolumes: z.array(VolumeMappingSchema).default([]),\n\tenvironment: z.array(EnvVariableSchema).default([]),\n\thealthcheck: HealthCheckSchema.optional(),\n\tcommand: z.string().optional(),\n\tentrypoint: z.string().optional(),\n\tdependsOn: z.array(z.string()).default([]),\n\trestartPolicy: RestartPolicySchema.default(\"unless-stopped\"),\n\tnetworks: z.array(z.string()).default([\"openclaw-network\"]),\n\tlabels: z.record(z.string(), z.string()).optional(),\n\tdeploy: DeploySchema.optional(),\n\n\t// OpenClaw Integration\n\tskills: z.array(SkillBindingSchema).default([]),\n\topenclawEnvVars: z.array(EnvVariableSchema).default([]),\n\topenclawVolumeMounts: z.array(VolumeMappingSchema).optional(),\n\n\t// Metadata\n\tdocsUrl: z.string().url(),\n\tselfHostedDocsUrl: z.string().url().optional(),\n\ttags: z.array(z.string()).default([]),\n\tmaturity: MaturitySchema.default(\"stable\"),\n\n\t// Dependencies & Conflicts\n\trequires: z.array(z.string()).default([]),\n\trecommends: z.array(z.string()).default([]),\n\tconflictsWith: z.array(z.string()).default([]),\n\tmandatory: z.boolean().default(false).optional(),\n\tremovalWarning: z.string().optional(),\n\n\t// Platform Constraints\n\tplatforms: z.array(PlatformSchema).optional(),\n\tminMemoryMB: z.number().int().min(0).optional(),\n\tgpuRequired: z.boolean().default(false),\n\n\t// Bare-metal native (install/run on host when no Docker)\n\tnativeSupported: z.boolean().optional(),\n\tnativeRecipes: z.array(NativeRecipeSchema).optional(),\n});\n\n// ─── Skill Pack ─────────────────────────────────────────────────────────────\n\nexport const SkillPackSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\trequiredServices: z.array(z.string()).min(1),\n\tskills: z.array(z.string()),\n\ticon: z.string().optional(),\n\ttags: z.array(z.string()).default([]),\n});\n\n// ─── Preset ─────────────────────────────────────────────────────────────────\n\nexport const PresetSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\testimatedMemoryMB: z.number().int().min(0).optional(),\n});\n\n// ─── Generation Input ───────────────────────────────────────────────────────\n\nexport const GenerationInputSchema = z.object({\n\tconfigVersion: z.number().int().min(1).optional(),\n\tprojectName: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(64)\n\t\t.regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/, {\n\t\t\tmessage:\n\t\t\t\t\"Project name must be lowercase alphanumeric with hyphens, cannot start or end with hyphen\",\n\t\t}),\n\tservices: z.array(z.string()).default([]),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\tdeploymentType: DeploymentTypeSchema.default(\"docker\"),\n\tgenerateSecrets: z.boolean().default(true),\n\topenclawVersion: z.string().default(\"latest\"),\n\tmonitoring: z.boolean().default(false),\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n\tdeployTarget: DeployTargetSchema.default(\"local\"),\n\thardened: z.boolean().default(true),\n});\n\n// ─── Resolver Output ────────────────────────────────────────────────────────\n\nexport const ResolvedServiceSchema = z.object({\n\tdefinition: ServiceDefinitionSchema,\n\taddedBy: z.enum([\"user\", \"dependency\", \"skill-pack\", \"proxy\", \"monitoring\"]).default(\"user\"),\n});\n\nexport const AddedDependencySchema = z.object({\n\tservice: z.string(),\n\tserviceId: z.string().optional(),\n\trequiredBy: z.string().optional(),\n\treason: z.string(),\n});\n\nexport const WarningSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ErrorSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ResolverOutputSchema = z.object({\n\tservices: z.array(ResolvedServiceSchema),\n\taddedDependencies: z.array(AddedDependencySchema),\n\tremovedConflicts: z.array(z.object({ service: z.string(), reason: z.string() })),\n\twarnings: z.array(WarningSchema),\n\terrors: z.array(ErrorSchema),\n\tisValid: z.boolean(),\n\testimatedMemoryMB: z.number().int().min(0),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n});\n\n// ─── Compose Options ────────────────────────────────────────────────────────\n\nexport const ComposeOptionsSchema = z.object({\n\tprojectName: z.string(),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\topenclawVersion: z.string().default(\"latest\"),\n\t/** When true, gateway gets extra_hosts so it can reach host-run (native) services. */\n\tbareMetalNativeHost: z.boolean().optional(),\n\t/** OpenClaw Docker image variant: official, coolify, or alpine. */\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\t/** Whether to apply security hardening (cap_drop, no-new-privileges, etc.) */\n\thardened: z.boolean().default(true),\n\t/** How to install OpenClaw itself: docker (in container) or direct (host install). */\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n});\n\n// ─── API Request/Response ───────────────────────────────────────────────────\n\nexport const ValidateRequestSchema = z.object({\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n});\n\nexport const ValidateResponseSchema = z.object({\n\tvalid: z.boolean(),\n\tresolvedServices: z.array(z.string()),\n\taddedDependencies: z.array(AddedDependencySchema),\n\twarnings: z.array(WarningSchema),\n\tconflicts: z.array(ErrorSchema),\n\testimatedMemoryMB: z.number(),\n});\n\nexport const ApiErrorSchema = z.object({\n\terror: z.object({\n\t\tcode: z.enum([\n\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\"CONFLICT_ERROR\",\n\t\t\t\"GENERATION_ERROR\",\n\t\t\t\"RATE_LIMITED\",\n\t\t\t\"INTERNAL_ERROR\",\n\t\t]),\n\t\tmessage: z.string(),\n\t\tdetails: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tfield: z.string().optional(),\n\t\t\t\t\tmessage: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t}),\n});\n"],"mappings":";;;;AAIA,MAAa,wBAAwBA,IAAAA,EAAE,KAAK;CAC3C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AAEF,MAAa,iBAAiBA,IAAAA,EAAE,KAAK;CAAC;CAAU;CAAQ;CAAe,CAAC;AAExE,MAAa,iBAAiBA,IAAAA,EAAE,KAAK;CACpC;CACA;CACA;CACA;CACA;CACA,CAAC;;AAGF,MAAa,wBAAwBA,IAAAA,EAAE,KAAK,CAAC,eAAe,cAAc,CAAC;AAE3E,MAAa,uBAAuBA,IAAAA,EAAE,KAAK;CAAC;CAAU;CAAc;CAAQ,CAAC;AAE7E,MAAa,sBAAsBA,IAAAA,EAAE,KAAK;CAAC;CAAkB;CAAU;CAAc;CAAK,CAAC;AAE3F,MAAa,kBAAkBA,IAAAA,EAAE,KAAK;CAAC;CAAQ;CAAS;CAAU,CAAC;AAEnE,MAAa,yBAAyBA,IAAAA,EAAE,KAAK;CAAC;CAAS;CAAO;CAAW;CAAU,CAAC;AAEpF,MAAa,qBAAqBA,IAAAA,EAAE,KAAK;CAAC;CAAa;CAAO;CAAM,CAAC;AAErE,MAAa,6BAA6BA,IAAAA,EAAE,KAAK;CAAC;CAAY;CAAW;CAAS,CAAC;AAEnF,MAAa,8BAA8BA,IAAAA,EAAE,KAAK,CAAC,UAAU,SAAS,CAAC;AAEvE,MAAa,qBAAqBA,IAAAA,EAAE,KAAK,CAAC,SAAS,aAAa,CAAC;AAEjE,MAAa,mBAAmBA,IAAAA,EAAE,KAAK;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AAEF,MAAa,mBAAmBA,IAAAA,EAAE,KAAK;CAAC;CAAU;CAAY;CAAU;CAAQ,CAAC;AAIjF,MAAa,oBAAoBA,IAAAA,EAAE,OAAO;CACzC,MAAMA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM;CACxC,WAAWA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM;CAC7C,aAAaA,IAAAA,EAAE,QAAQ;CACvB,SAASA,IAAAA,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,CAAC;AAEF,MAAa,sBAAsBA,IAAAA,EAAE,OAAO;CAC3C,MAAMA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,eAAeA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CAChC,aAAaA,IAAAA,EAAE,QAAQ;CACvB,QAAQA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC7B,CAAC;AAEF,MAAa,oBAAoBA,IAAAA,EAAE,OAAO;CACzC,KAAKA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACtB,cAAcA,IAAAA,EAAE,QAAQ;CACxB,QAAQA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM;CAClC,aAAaA,IAAAA,EAAE,QAAQ;CACvB,UAAUA,IAAAA,EAAE,SAAS,CAAC,QAAQ,KAAK;CACnC,YAAYA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAEF,MAAa,oBAAoBA,IAAAA,EAAE,OAAO;CACzC,MAAMA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,UAAUA,IAAAA,EAAE,QAAQ,CAAC,QAAQ,MAAM;CACnC,SAASA,IAAAA,EAAE,QAAQ,CAAC,QAAQ,MAAM;CAClC,SAASA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC3C,aAAaA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAClC,CAAC;AAEF,MAAa,uBAAuBA,IAAAA,EAAE,OAAO;CAC5C,MAAMA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC7B,CAAC;AAEF,MAAa,eAAeA,IAAAA,EAAE,OAAO,EACpC,WAAWA,IAAAA,EACT,OAAO;CACP,QAAQ,qBAAqB,UAAU;CACvC,cAAc,qBAAqB,UAAU;CAC7C,CAAC,CACD,UAAU,EACZ,CAAC;AAEF,MAAa,qBAAqBA,IAAAA,EAAE,OAAO;CAC1C,SAASA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CAC1B,aAAaA,IAAAA,EAAE,SAAS,CAAC,QAAQ,KAAK;CACtC,iBAAiBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,QAAQ,EAAEA,IAAAA,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC5D,CAAC;;AAGF,MAAa,uBAAuBA,IAAAA,EAAE,KAAK;CAAC;CAAS;CAAW;CAAQ,CAAC;AAEzE,MAAa,qBAAqBA,IAAAA,EAAE,OAAO;CAC1C,UAAU;CACV,cAAcA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;CACxC,cAAcA,IAAAA,EAAE,QAAQ;CACxB,aAAaA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAClC,YAAYA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CACjC,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CACrC,aAAaA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAClC,CAAC;AAIF,MAAa,0BAA0BA,IAAAA,EAAE,OAAO;CAE/C,IAAIA,IAAAA,EACF,QAAQ,CACR,IAAI,EAAE,CACN,MAAM,eAAe;CACvB,MAAMA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,aAAaA,IAAAA,EAAE,QAAQ;CACvB,UAAU;CACV,MAAMA,IAAAA,EAAE,QAAQ;CAGhB,OAAOA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACxB,UAAUA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CAC3B,OAAOA,IAAAA,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC;CAC7C,SAASA,IAAAA,EAAE,MAAM,oBAAoB,CAAC,QAAQ,EAAE,CAAC;CACjD,aAAaA,IAAAA,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC;CACnD,aAAa,kBAAkB,UAAU;CACzC,SAASA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC9B,YAAYA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CACjC,WAAWA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC1C,eAAe,oBAAoB,QAAQ,iBAAiB;CAC5D,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAC3D,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,QAAQ,EAAEA,IAAAA,EAAE,QAAQ,CAAC,CAAC,UAAU;CACnD,QAAQ,aAAa,UAAU;CAG/B,QAAQA,IAAAA,EAAE,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC;CAC/C,iBAAiBA,IAAAA,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC;CACvD,sBAAsBA,IAAAA,EAAE,MAAM,oBAAoB,CAAC,UAAU;CAG7D,SAASA,IAAAA,EAAE,QAAQ,CAAC,KAAK;CACzB,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;CAC9C,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACrC,UAAU,eAAe,QAAQ,SAAS;CAG1C,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACzC,YAAYA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC3C,eAAeA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC9C,WAAWA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM,CAAC,UAAU;CAChD,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAGrC,WAAWA,IAAAA,EAAE,MAAM,eAAe,CAAC,UAAU;CAC7C,aAAaA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CAC/C,aAAaA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM;CAGvC,iBAAiBA,IAAAA,EAAE,SAAS,CAAC,UAAU;CACvC,eAAeA,IAAAA,EAAE,MAAM,mBAAmB,CAAC,UAAU;CACrD,CAAC;AAIF,MAAa,kBAAkBA,IAAAA,EAAE,OAAO;CACvC,IAAIA,IAAAA,EACF,QAAQ,CACR,IAAI,EAAE,CACN,MAAM,eAAe;CACvB,MAAMA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,aAAaA,IAAAA,EAAE,QAAQ;CACvB,kBAAkBA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;CAC5C,QAAQA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC;CAC3B,MAAMA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC3B,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACrC,CAAC;AAIF,MAAa,eAAeA,IAAAA,EAAE,OAAO;CACpC,IAAIA,IAAAA,EACF,QAAQ,CACR,IAAI,EAAE,CACN,MAAM,eAAe;CACvB,MAAMA,IAAAA,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,aAAaA,IAAAA,EAAE,QAAQ;CACvB,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC;CAC7B,YAAYA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC3C,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CACrD,CAAC;AAIF,MAAa,wBAAwBA,IAAAA,EAAE,OAAO;CAC7C,eAAeA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CACjD,aAAaA,IAAAA,EACX,QAAQ,CACR,IAAI,EAAE,CACN,IAAI,GAAG,CACP,MAAM,2CAA2C,EACjD,SACC,6FACD,CAAC;CACH,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACzC,YAAYA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC3C,aAAaA,IAAAA,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAClD,aAAaA,IAAAA,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAClD,OAAO,gBAAgB,QAAQ,OAAO;CACtC,eAAeA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU;CAC5D,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU;CAC7D,eAAeA,IAAAA,EACb,OAAOA,IAAAA,EAAE,QAAQ,EAAEA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,QAAQ,EAAEA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAC5E,UAAU;CACZ,QAAQA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC7B,KAAKA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM;CAC/B,UAAU,eAAe,QAAQ,cAAc;CAC/C,YAAY,uBAAuB,QAAQ,QAAQ;CACnD,gBAAgB,qBAAqB,QAAQ,SAAS;CACtD,iBAAiBA,IAAAA,EAAE,SAAS,CAAC,QAAQ,KAAK;CAC1C,iBAAiBA,IAAAA,EAAE,QAAQ,CAAC,QAAQ,SAAS;CAC7C,YAAYA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM;CACtC,eAAe,2BAA2B,QAAQ,WAAW;CAC7D,uBAAuB,4BAA4B,QAAQ,SAAS;CACpE,cAAc,mBAAmB,QAAQ,QAAQ;CACjD,UAAUA,IAAAA,EAAE,SAAS,CAAC,QAAQ,KAAK;CACnC,CAAC;AAIF,MAAa,wBAAwBA,IAAAA,EAAE,OAAO;CAC7C,YAAY;CACZ,SAASA,IAAAA,EAAE,KAAK;EAAC;EAAQ;EAAc;EAAc;EAAS;EAAa,CAAC,CAAC,QAAQ,OAAO;CAC5F,CAAC;AAEF,MAAa,wBAAwBA,IAAAA,EAAE,OAAO;CAC7C,SAASA,IAAAA,EAAE,QAAQ;CACnB,WAAWA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAChC,YAAYA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CACjC,QAAQA,IAAAA,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,gBAAgBA,IAAAA,EAAE,OAAO;CACrC,MAAMA,IAAAA,EAAE,QAAQ;CAChB,SAASA,IAAAA,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAa,cAAcA,IAAAA,EAAE,OAAO;CACnC,MAAMA,IAAAA,EAAE,QAAQ;CAChB,SAASA,IAAAA,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAa,uBAAuBA,IAAAA,EAAE,OAAO;CAC5C,UAAUA,IAAAA,EAAE,MAAM,sBAAsB;CACxC,mBAAmBA,IAAAA,EAAE,MAAM,sBAAsB;CACjD,kBAAkBA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO;EAAE,SAASA,IAAAA,EAAE,QAAQ;EAAE,QAAQA,IAAAA,EAAE,QAAQ;EAAE,CAAC,CAAC;CAChF,UAAUA,IAAAA,EAAE,MAAM,cAAc;CAChC,QAAQA,IAAAA,EAAE,MAAM,YAAY;CAC5B,SAASA,IAAAA,EAAE,SAAS;CACpB,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;CAC1C,aAAaA,IAAAA,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAClD,aAAaA,IAAAA,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAClD,CAAC;AAIF,MAAa,uBAAuBA,IAAAA,EAAE,OAAO;CAC5C,aAAaA,IAAAA,EAAE,QAAQ;CACvB,OAAO,gBAAgB,QAAQ,OAAO;CACtC,eAAeA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU;CAC5D,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU;CAC7D,eAAeA,IAAAA,EACb,OAAOA,IAAAA,EAAE,QAAQ,EAAEA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,QAAQ,EAAEA,IAAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAC5E,UAAU;CACZ,QAAQA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC7B,KAAKA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM;CAC/B,UAAU,eAAe,QAAQ,cAAc;CAC/C,YAAY,uBAAuB,QAAQ,QAAQ;CACnD,iBAAiBA,IAAAA,EAAE,QAAQ,CAAC,QAAQ,SAAS;CAE7C,qBAAqBA,IAAAA,EAAE,SAAS,CAAC,UAAU;CAE3C,eAAe,2BAA2B,QAAQ,WAAW;CAE7D,UAAUA,IAAAA,EAAE,SAAS,CAAC,QAAQ,KAAK;CAEnC,uBAAuB,4BAA4B,QAAQ,SAAS;CACpE,CAAC;AAIF,MAAa,wBAAwBA,IAAAA,EAAE,OAAO;CAC7C,UAAUA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC;CAC7B,YAAYA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC3C,aAAaA,IAAAA,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAClD,aAAaA,IAAAA,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;CAClD,OAAO,gBAAgB,QAAQ,OAAO;CACtC,QAAQA,IAAAA,EAAE,QAAQ,CAAC,UAAU;CAC7B,KAAKA,IAAAA,EAAE,SAAS,CAAC,QAAQ,MAAM;CAC/B,UAAU,eAAe,QAAQ,cAAc;CAC/C,CAAC;AAEF,MAAa,yBAAyBA,IAAAA,EAAE,OAAO;CAC9C,OAAOA,IAAAA,EAAE,SAAS;CAClB,kBAAkBA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC;CACrC,mBAAmBA,IAAAA,EAAE,MAAM,sBAAsB;CACjD,UAAUA,IAAAA,EAAE,MAAM,cAAc;CAChC,WAAWA,IAAAA,EAAE,MAAM,YAAY;CAC/B,mBAAmBA,IAAAA,EAAE,QAAQ;CAC7B,CAAC;AAEF,MAAa,iBAAiBA,IAAAA,EAAE,OAAO,EACtC,OAAOA,IAAAA,EAAE,OAAO;CACf,MAAMA,IAAAA,EAAE,KAAK;EACZ;EACA;EACA;EACA;EACA;EACA,CAAC;CACF,SAASA,IAAAA,EAAE,QAAQ;CACnB,SAASA,IAAAA,EACP,MACAA,IAAAA,EAAE,OAAO;EACR,OAAOA,IAAAA,EAAE,QAAQ,CAAC,UAAU;EAC5B,SAASA,IAAAA,EAAE,QAAQ;EACnB,CAAC,CACF,CACA,UAAU;CACZ,CAAC,EACF,CAAC"}
1
+ {"version":3,"file":"schema.cjs","names":["z"],"sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Enums ──────────────────────────────────────────────────────────────────\n\nexport const ServiceCategorySchema = z.enum([\n\t\"automation\",\n\t\"vector-db\",\n\t\"media\",\n\t\"storage\",\n\t\"database\",\n\t\"proxy\",\n\t\"monitoring\",\n\t\"browser\",\n\t\"search\",\n\t\"ai\",\n\t\"communication\",\n\t\"coding-agent\",\n\t\"social-media\",\n\t\"analytics\",\n\t\"ai-platform\",\n\t\"dev-tools\",\n\t\"knowledge\",\n\t\"desktop\",\n\t\"streaming\",\n\t\"security\",\n\t\"billing\",\n\t\"crm\",\n\t\"email-marketing\",\n\t\"forms\",\n\t\"api-gateway\",\n\t\"backup\",\n\t\"voice\",\n\t\"ecommerce\",\n\t\"collaboration\",\n\t\"ai-observability\",\n\t\"fine-tuning\",\n\t\"project-management\",\n\t\"business-intelligence\",\n\t\"dns-networking\",\n\t\"iot\",\n]);\n\nexport const MaturitySchema = z.enum([\"stable\", \"beta\", \"experimental\"]);\n\nexport const PlatformSchema = z.enum([\n\t\"linux/amd64\",\n\t\"linux/arm64\",\n\t\"windows/amd64\",\n\t\"macos/amd64\",\n\t\"macos/arm64\",\n]);\n\n/** Platform for Docker image arch only (used by resolver/compose). */\nexport const ComposePlatformSchema = z.enum([\"linux/amd64\", \"linux/arm64\"]);\n\nexport const DeploymentTypeSchema = z.enum([\"docker\", \"bare-metal\", \"local\"]);\n\nexport const RestartPolicySchema = z.enum([\"unless-stopped\", \"always\", \"on-failure\", \"no\"]);\n\nexport const ProxyTypeSchema = z.enum([\"none\", \"caddy\", \"traefik\"]);\n\nexport const DeploymentTargetSchema = z.enum([\"local\", \"vps\", \"homelab\", \"clawexa\"]);\n\nexport const OutputFormatSchema = z.enum([\"directory\", \"tar\", \"zip\"]);\n\nexport const OpenclawImageVariantSchema = z.enum([\"official\", \"coolify\", \"alpine\"]);\n\nexport const OpenclawInstallMethodSchema = z.enum([\"docker\", \"direct\"]);\n\nexport const DeployTargetSchema = z.enum([\"local\", \"cloud-init\"]);\n\nexport const AiProviderSchema = z.enum([\n\t\"openai\",\n\t\"anthropic\",\n\t\"google\",\n\t\"xai\",\n\t\"deepseek\",\n\t\"groq\",\n\t\"openrouter\",\n\t\"mistral\",\n\t\"together\",\n\t\"ollama\",\n\t\"ollama-cloud\",\n\t\"lmstudio\",\n\t\"vllm\",\n]);\n\nexport const GsdRuntimeSchema = z.enum([\"claude\", \"opencode\", \"gemini\", \"codex\"]);\n\n// ─── Sub-Schemas ────────────────────────────────────────────────────────────\n\nexport const PortMappingSchema = z.object({\n\thost: z.number().int().min(1).max(65535),\n\tcontainer: z.number().int().min(1).max(65535),\n\tdescription: z.string(),\n\texposed: z.boolean().default(true),\n});\n\nexport const VolumeMappingSchema = z.object({\n\tname: z.string().min(1),\n\tcontainerPath: z.string().min(1),\n\tdescription: z.string(),\n\tdriver: z.string().optional(),\n});\n\nexport const EnvVariableSchema = z.object({\n\tkey: z.string().min(1),\n\tdefaultValue: z.string(),\n\tsecret: z.boolean().default(false),\n\tdescription: z.string(),\n\trequired: z.boolean().default(true),\n\tvalidation: z.string().optional(),\n});\n\nexport const HealthCheckSchema = z.object({\n\ttest: z.string().min(1),\n\tinterval: z.string().default(\"30s\"),\n\ttimeout: z.string().default(\"10s\"),\n\tretries: z.number().int().min(1).default(3),\n\tstartPeriod: z.string().optional(),\n});\n\nexport const ResourceLimitsSchema = z.object({\n\tcpus: z.string().optional(),\n\tmemory: z.string().optional(),\n});\n\nexport const DeploySchema = z.object({\n\tresources: z\n\t\t.object({\n\t\t\tlimits: ResourceLimitsSchema.optional(),\n\t\t\treservations: ResourceLimitsSchema.optional(),\n\t\t})\n\t\t.optional(),\n});\n\nexport const SkillBindingSchema = z.object({\n\tskillId: z.string().min(1),\n\tautoInstall: z.boolean().default(true),\n\tconfigOverrides: z.record(z.string(), z.string()).optional(),\n});\n\n/** Platform for native install (linux, windows, macos — no arch). */\nexport const NativePlatformSchema = z.enum([\"linux\", \"windows\", \"macos\"]);\n\nexport const NativeRecipeSchema = z.object({\n\tplatform: NativePlatformSchema,\n\tinstallSteps: z.array(z.string()).min(1),\n\tstartCommand: z.string(),\n\tstopCommand: z.string().optional(),\n\tconfigPath: z.string().optional(),\n\tconfigTemplate: z.string().optional(),\n\tsystemdUnit: z.string().optional(),\n});\n\n// ─── Service Definition ─────────────────────────────────────────────────────\n\nexport const ServiceDefinitionSchema = z.object({\n\t// Identity\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tcategory: ServiceCategorySchema,\n\ticon: z.string(),\n\n\t// Docker\n\timage: z.string().min(1),\n\timageTag: z.string().min(1),\n\tports: z.array(PortMappingSchema).default([]),\n\tvolumes: z.array(VolumeMappingSchema).default([]),\n\tenvironment: z.array(EnvVariableSchema).default([]),\n\thealthcheck: HealthCheckSchema.optional(),\n\tcommand: z.string().optional(),\n\tentrypoint: z.string().optional(),\n\tdependsOn: z.array(z.string()).default([]),\n\trestartPolicy: RestartPolicySchema.default(\"unless-stopped\"),\n\tnetworks: z.array(z.string()).default([\"openclaw-network\"]),\n\tlabels: z.record(z.string(), z.string()).optional(),\n\tdeploy: DeploySchema.optional(),\n\n\t// OpenClaw Integration\n\tskills: z.array(SkillBindingSchema).default([]),\n\topenclawEnvVars: z.array(EnvVariableSchema).default([]),\n\topenclawVolumeMounts: z.array(VolumeMappingSchema).optional(),\n\n\t// Metadata\n\tdocsUrl: z.string().url(),\n\tselfHostedDocsUrl: z.string().url().optional(),\n\ttags: z.array(z.string()).default([]),\n\tmaturity: MaturitySchema.default(\"stable\"),\n\n\t// Dependencies & Conflicts\n\trequires: z.array(z.string()).default([]),\n\trecommends: z.array(z.string()).default([]),\n\tconflictsWith: z.array(z.string()).default([]),\n\tmandatory: z.boolean().default(false).optional(),\n\tremovalWarning: z.string().optional(),\n\n\t// Platform Constraints\n\tplatforms: z.array(PlatformSchema).optional(),\n\tminMemoryMB: z.number().int().min(0).optional(),\n\tgpuRequired: z.boolean().default(false),\n\n\t// Bare-metal native (install/run on host when no Docker)\n\tnativeSupported: z.boolean().optional(),\n\tnativeRecipes: z.array(NativeRecipeSchema).optional(),\n});\n\n// ─── Skill Pack ─────────────────────────────────────────────────────────────\n\nexport const SkillPackSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\trequiredServices: z.array(z.string()).min(1),\n\tskills: z.array(z.string()),\n\ticon: z.string().optional(),\n\ttags: z.array(z.string()).default([]),\n});\n\n// ─── Preset ─────────────────────────────────────────────────────────────────\n\nexport const PresetSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\testimatedMemoryMB: z.number().int().min(0).optional(),\n});\n\n// ─── Generation Input ───────────────────────────────────────────────────────\n\nexport const GenerationInputSchema = z.object({\n\tconfigVersion: z.number().int().min(1).optional(),\n\tprojectName: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(64)\n\t\t.regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/, {\n\t\t\tmessage:\n\t\t\t\t\"Project name must be lowercase alphanumeric with hyphens, cannot start or end with hyphen\",\n\t\t}),\n\tservices: z.array(z.string()).default([]),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\tdeploymentType: DeploymentTypeSchema.default(\"docker\"),\n\tgenerateSecrets: z.boolean().default(true),\n\topenclawVersion: z.string().default(\"latest\"),\n\tmonitoring: z.boolean().default(false),\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n\tdeployTarget: DeployTargetSchema.default(\"local\"),\n\thardened: z.boolean().default(true),\n});\n\n// ─── Resolver Output ────────────────────────────────────────────────────────\n\nexport const ResolvedServiceSchema = z.object({\n\tdefinition: ServiceDefinitionSchema,\n\taddedBy: z.enum([\"user\", \"dependency\", \"skill-pack\", \"proxy\", \"monitoring\"]).default(\"user\"),\n});\n\nexport const AddedDependencySchema = z.object({\n\tservice: z.string(),\n\tserviceId: z.string().optional(),\n\trequiredBy: z.string().optional(),\n\treason: z.string(),\n});\n\nexport const WarningSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ErrorSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ResolverOutputSchema = z.object({\n\tservices: z.array(ResolvedServiceSchema),\n\taddedDependencies: z.array(AddedDependencySchema),\n\tremovedConflicts: z.array(z.object({ service: z.string(), reason: z.string() })),\n\twarnings: z.array(WarningSchema),\n\terrors: z.array(ErrorSchema),\n\tisValid: z.boolean(),\n\testimatedMemoryMB: z.number().int().min(0),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n});\n\n// ─── Compose Options ────────────────────────────────────────────────────────\n\nexport const ComposeOptionsSchema = z.object({\n\tprojectName: z.string(),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\topenclawVersion: z.string().default(\"latest\"),\n\t/** When true, gateway gets extra_hosts so it can reach host-run (native) services. */\n\tbareMetalNativeHost: z.boolean().optional(),\n\t/** OpenClaw Docker image variant: official, coolify, or alpine. */\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\t/** Whether to apply security hardening (cap_drop, no-new-privileges, etc.) */\n\thardened: z.boolean().default(true),\n\t/** How to install OpenClaw itself: docker (in container) or direct (host install). */\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n});\n\n// ─── API Request/Response ───────────────────────────────────────────────────\n\nexport const ValidateRequestSchema = z.object({\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n});\n\nexport const ValidateResponseSchema = z.object({\n\tvalid: z.boolean(),\n\tresolvedServices: z.array(z.string()),\n\taddedDependencies: z.array(AddedDependencySchema),\n\twarnings: z.array(WarningSchema),\n\tconflicts: z.array(ErrorSchema),\n\testimatedMemoryMB: z.number(),\n});\n\nexport const ApiErrorSchema = z.object({\n\terror: z.object({\n\t\tcode: z.enum([\n\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\"CONFLICT_ERROR\",\n\t\t\t\"GENERATION_ERROR\",\n\t\t\t\"RATE_LIMITED\",\n\t\t\t\"INTERNAL_ERROR\",\n\t\t]),\n\t\tmessage: z.string(),\n\t\tdetails: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tfield: z.string().optional(),\n\t\t\t\t\tmessage: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t}),\n});\n"],"mappings":"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"}
package/dist/schema.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as ServiceDefinitionSchema, C as PresetSchema, D as ResourceLimitsSchema, E as ResolverOutputSchema, F as VolumeMappingSchema, I as WarningSchema, M as SkillPackSchema, N as ValidateRequestSchema, O as RestartPolicySchema, P as ValidateResponseSchema, S as PortMappingSchema, T as ResolvedServiceSchema, _ as NativeRecipeSchema, a as ComposePlatformSchema, b as OutputFormatSchema, c as DeploymentTargetSchema, d as ErrorSchema, f as GenerationInputSchema, g as NativePlatformSchema, h as MaturitySchema, i as ComposeOptionsSchema, j as SkillBindingSchema, k as ServiceCategorySchema, l as DeploymentTypeSchema, m as HealthCheckSchema, n as AiProviderSchema, o as DeploySchema, p as GsdRuntimeSchema, r as ApiErrorSchema, s as DeployTargetSchema, t as AddedDependencySchema, u as EnvVariableSchema, v as OpenclawImageVariantSchema, w as ProxyTypeSchema, x as PlatformSchema, y as OpenclawInstallMethodSchema } from "./schema-C_hc7e4k.cjs";
1
+ import { A as ServiceDefinitionSchema, C as PresetSchema, D as ResourceLimitsSchema, E as ResolverOutputSchema, F as VolumeMappingSchema, I as WarningSchema, M as SkillPackSchema, N as ValidateRequestSchema, O as RestartPolicySchema, P as ValidateResponseSchema, S as PortMappingSchema, T as ResolvedServiceSchema, _ as NativeRecipeSchema, a as ComposePlatformSchema, b as OutputFormatSchema, c as DeploymentTargetSchema, d as ErrorSchema, f as GenerationInputSchema, g as NativePlatformSchema, h as MaturitySchema, i as ComposeOptionsSchema, j as SkillBindingSchema, k as ServiceCategorySchema, l as DeploymentTypeSchema, m as HealthCheckSchema, n as AiProviderSchema, o as DeploySchema, p as GsdRuntimeSchema, r as ApiErrorSchema, s as DeployTargetSchema, t as AddedDependencySchema, u as EnvVariableSchema, v as OpenclawImageVariantSchema, w as ProxyTypeSchema, x as PlatformSchema, y as OpenclawInstallMethodSchema } from "./schema-B4c64P8N.cjs";
2
2
  export { AddedDependencySchema, AiProviderSchema, ApiErrorSchema, ComposeOptionsSchema, ComposePlatformSchema, DeploySchema, DeployTargetSchema, DeploymentTargetSchema, DeploymentTypeSchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, GsdRuntimeSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OpenclawImageVariantSchema, OpenclawInstallMethodSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema };
package/dist/schema.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as ServiceDefinitionSchema, C as PresetSchema, D as ResourceLimitsSchema, E as ResolverOutputSchema, F as VolumeMappingSchema, I as WarningSchema, M as SkillPackSchema, N as ValidateRequestSchema, O as RestartPolicySchema, P as ValidateResponseSchema, S as PortMappingSchema, T as ResolvedServiceSchema, _ as NativeRecipeSchema, a as ComposePlatformSchema, b as OutputFormatSchema, c as DeploymentTargetSchema, d as ErrorSchema, f as GenerationInputSchema, g as NativePlatformSchema, h as MaturitySchema, i as ComposeOptionsSchema, j as SkillBindingSchema, k as ServiceCategorySchema, l as DeploymentTypeSchema, m as HealthCheckSchema, n as AiProviderSchema, o as DeploySchema, p as GsdRuntimeSchema, r as ApiErrorSchema, s as DeployTargetSchema, t as AddedDependencySchema, u as EnvVariableSchema, v as OpenclawImageVariantSchema, w as ProxyTypeSchema, x as PlatformSchema, y as OpenclawInstallMethodSchema } from "./schema-CaesJaS2.mjs";
1
+ import { A as ServiceDefinitionSchema, C as PresetSchema, D as ResourceLimitsSchema, E as ResolverOutputSchema, F as VolumeMappingSchema, I as WarningSchema, M as SkillPackSchema, N as ValidateRequestSchema, O as RestartPolicySchema, P as ValidateResponseSchema, S as PortMappingSchema, T as ResolvedServiceSchema, _ as NativeRecipeSchema, a as ComposePlatformSchema, b as OutputFormatSchema, c as DeploymentTargetSchema, d as ErrorSchema, f as GenerationInputSchema, g as NativePlatformSchema, h as MaturitySchema, i as ComposeOptionsSchema, j as SkillBindingSchema, k as ServiceCategorySchema, l as DeploymentTypeSchema, m as HealthCheckSchema, n as AiProviderSchema, o as DeploySchema, p as GsdRuntimeSchema, r as ApiErrorSchema, s as DeployTargetSchema, t as AddedDependencySchema, u as EnvVariableSchema, v as OpenclawImageVariantSchema, w as ProxyTypeSchema, x as PlatformSchema, y as OpenclawInstallMethodSchema } from "./schema-CXNhYci1.mjs";
2
2
  export { AddedDependencySchema, AiProviderSchema, ApiErrorSchema, ComposeOptionsSchema, ComposePlatformSchema, DeploySchema, DeployTargetSchema, DeploymentTargetSchema, DeploymentTypeSchema, EnvVariableSchema, ErrorSchema, GenerationInputSchema, GsdRuntimeSchema, HealthCheckSchema, MaturitySchema, NativePlatformSchema, NativeRecipeSchema, OpenclawImageVariantSchema, OpenclawInstallMethodSchema, OutputFormatSchema, PlatformSchema, PortMappingSchema, PresetSchema, ProxyTypeSchema, ResolvedServiceSchema, ResolverOutputSchema, ResourceLimitsSchema, RestartPolicySchema, ServiceCategorySchema, ServiceDefinitionSchema, SkillBindingSchema, SkillPackSchema, ValidateRequestSchema, ValidateResponseSchema, VolumeMappingSchema, WarningSchema };
package/dist/schema.mjs CHANGED
@@ -31,7 +31,11 @@ const ServiceCategorySchema = z.enum([
31
31
  "ecommerce",
32
32
  "collaboration",
33
33
  "ai-observability",
34
- "fine-tuning"
34
+ "fine-tuning",
35
+ "project-management",
36
+ "business-intelligence",
37
+ "dns-networking",
38
+ "iot"
35
39
  ]);
36
40
  const MaturitySchema = z.enum([
37
41
  "stable",
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":[],"sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Enums ──────────────────────────────────────────────────────────────────\n\nexport const ServiceCategorySchema = z.enum([\n\t\"automation\",\n\t\"vector-db\",\n\t\"media\",\n\t\"storage\",\n\t\"database\",\n\t\"proxy\",\n\t\"monitoring\",\n\t\"browser\",\n\t\"search\",\n\t\"ai\",\n\t\"communication\",\n\t\"coding-agent\",\n\t\"social-media\",\n\t\"analytics\",\n\t\"ai-platform\",\n\t\"dev-tools\",\n\t\"knowledge\",\n\t\"desktop\",\n\t\"streaming\",\n\t\"security\",\n\t\"billing\",\n\t\"crm\",\n\t\"email-marketing\",\n\t\"forms\",\n\t\"api-gateway\",\n\t\"backup\",\n\t\"voice\",\n\t\"ecommerce\",\n\t\"collaboration\",\n\t\"ai-observability\",\n\t\"fine-tuning\",\n]);\n\nexport const MaturitySchema = z.enum([\"stable\", \"beta\", \"experimental\"]);\n\nexport const PlatformSchema = z.enum([\n\t\"linux/amd64\",\n\t\"linux/arm64\",\n\t\"windows/amd64\",\n\t\"macos/amd64\",\n\t\"macos/arm64\",\n]);\n\n/** Platform for Docker image arch only (used by resolver/compose). */\nexport const ComposePlatformSchema = z.enum([\"linux/amd64\", \"linux/arm64\"]);\n\nexport const DeploymentTypeSchema = z.enum([\"docker\", \"bare-metal\", \"local\"]);\n\nexport const RestartPolicySchema = z.enum([\"unless-stopped\", \"always\", \"on-failure\", \"no\"]);\n\nexport const ProxyTypeSchema = z.enum([\"none\", \"caddy\", \"traefik\"]);\n\nexport const DeploymentTargetSchema = z.enum([\"local\", \"vps\", \"homelab\", \"clawexa\"]);\n\nexport const OutputFormatSchema = z.enum([\"directory\", \"tar\", \"zip\"]);\n\nexport const OpenclawImageVariantSchema = z.enum([\"official\", \"coolify\", \"alpine\"]);\n\nexport const OpenclawInstallMethodSchema = z.enum([\"docker\", \"direct\"]);\n\nexport const DeployTargetSchema = z.enum([\"local\", \"cloud-init\"]);\n\nexport const AiProviderSchema = z.enum([\n\t\"openai\",\n\t\"anthropic\",\n\t\"google\",\n\t\"xai\",\n\t\"deepseek\",\n\t\"groq\",\n\t\"openrouter\",\n\t\"mistral\",\n\t\"together\",\n\t\"ollama\",\n\t\"ollama-cloud\",\n\t\"lmstudio\",\n\t\"vllm\",\n]);\n\nexport const GsdRuntimeSchema = z.enum([\"claude\", \"opencode\", \"gemini\", \"codex\"]);\n\n// ─── Sub-Schemas ────────────────────────────────────────────────────────────\n\nexport const PortMappingSchema = z.object({\n\thost: z.number().int().min(1).max(65535),\n\tcontainer: z.number().int().min(1).max(65535),\n\tdescription: z.string(),\n\texposed: z.boolean().default(true),\n});\n\nexport const VolumeMappingSchema = z.object({\n\tname: z.string().min(1),\n\tcontainerPath: z.string().min(1),\n\tdescription: z.string(),\n\tdriver: z.string().optional(),\n});\n\nexport const EnvVariableSchema = z.object({\n\tkey: z.string().min(1),\n\tdefaultValue: z.string(),\n\tsecret: z.boolean().default(false),\n\tdescription: z.string(),\n\trequired: z.boolean().default(true),\n\tvalidation: z.string().optional(),\n});\n\nexport const HealthCheckSchema = z.object({\n\ttest: z.string().min(1),\n\tinterval: z.string().default(\"30s\"),\n\ttimeout: z.string().default(\"10s\"),\n\tretries: z.number().int().min(1).default(3),\n\tstartPeriod: z.string().optional(),\n});\n\nexport const ResourceLimitsSchema = z.object({\n\tcpus: z.string().optional(),\n\tmemory: z.string().optional(),\n});\n\nexport const DeploySchema = z.object({\n\tresources: z\n\t\t.object({\n\t\t\tlimits: ResourceLimitsSchema.optional(),\n\t\t\treservations: ResourceLimitsSchema.optional(),\n\t\t})\n\t\t.optional(),\n});\n\nexport const SkillBindingSchema = z.object({\n\tskillId: z.string().min(1),\n\tautoInstall: z.boolean().default(true),\n\tconfigOverrides: z.record(z.string(), z.string()).optional(),\n});\n\n/** Platform for native install (linux, windows, macos — no arch). */\nexport const NativePlatformSchema = z.enum([\"linux\", \"windows\", \"macos\"]);\n\nexport const NativeRecipeSchema = z.object({\n\tplatform: NativePlatformSchema,\n\tinstallSteps: z.array(z.string()).min(1),\n\tstartCommand: z.string(),\n\tstopCommand: z.string().optional(),\n\tconfigPath: z.string().optional(),\n\tconfigTemplate: z.string().optional(),\n\tsystemdUnit: z.string().optional(),\n});\n\n// ─── Service Definition ─────────────────────────────────────────────────────\n\nexport const ServiceDefinitionSchema = z.object({\n\t// Identity\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tcategory: ServiceCategorySchema,\n\ticon: z.string(),\n\n\t// Docker\n\timage: z.string().min(1),\n\timageTag: z.string().min(1),\n\tports: z.array(PortMappingSchema).default([]),\n\tvolumes: z.array(VolumeMappingSchema).default([]),\n\tenvironment: z.array(EnvVariableSchema).default([]),\n\thealthcheck: HealthCheckSchema.optional(),\n\tcommand: z.string().optional(),\n\tentrypoint: z.string().optional(),\n\tdependsOn: z.array(z.string()).default([]),\n\trestartPolicy: RestartPolicySchema.default(\"unless-stopped\"),\n\tnetworks: z.array(z.string()).default([\"openclaw-network\"]),\n\tlabels: z.record(z.string(), z.string()).optional(),\n\tdeploy: DeploySchema.optional(),\n\n\t// OpenClaw Integration\n\tskills: z.array(SkillBindingSchema).default([]),\n\topenclawEnvVars: z.array(EnvVariableSchema).default([]),\n\topenclawVolumeMounts: z.array(VolumeMappingSchema).optional(),\n\n\t// Metadata\n\tdocsUrl: z.string().url(),\n\tselfHostedDocsUrl: z.string().url().optional(),\n\ttags: z.array(z.string()).default([]),\n\tmaturity: MaturitySchema.default(\"stable\"),\n\n\t// Dependencies & Conflicts\n\trequires: z.array(z.string()).default([]),\n\trecommends: z.array(z.string()).default([]),\n\tconflictsWith: z.array(z.string()).default([]),\n\tmandatory: z.boolean().default(false).optional(),\n\tremovalWarning: z.string().optional(),\n\n\t// Platform Constraints\n\tplatforms: z.array(PlatformSchema).optional(),\n\tminMemoryMB: z.number().int().min(0).optional(),\n\tgpuRequired: z.boolean().default(false),\n\n\t// Bare-metal native (install/run on host when no Docker)\n\tnativeSupported: z.boolean().optional(),\n\tnativeRecipes: z.array(NativeRecipeSchema).optional(),\n});\n\n// ─── Skill Pack ─────────────────────────────────────────────────────────────\n\nexport const SkillPackSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\trequiredServices: z.array(z.string()).min(1),\n\tskills: z.array(z.string()),\n\ticon: z.string().optional(),\n\ttags: z.array(z.string()).default([]),\n});\n\n// ─── Preset ─────────────────────────────────────────────────────────────────\n\nexport const PresetSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\testimatedMemoryMB: z.number().int().min(0).optional(),\n});\n\n// ─── Generation Input ───────────────────────────────────────────────────────\n\nexport const GenerationInputSchema = z.object({\n\tconfigVersion: z.number().int().min(1).optional(),\n\tprojectName: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(64)\n\t\t.regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/, {\n\t\t\tmessage:\n\t\t\t\t\"Project name must be lowercase alphanumeric with hyphens, cannot start or end with hyphen\",\n\t\t}),\n\tservices: z.array(z.string()).default([]),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\tdeploymentType: DeploymentTypeSchema.default(\"docker\"),\n\tgenerateSecrets: z.boolean().default(true),\n\topenclawVersion: z.string().default(\"latest\"),\n\tmonitoring: z.boolean().default(false),\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n\tdeployTarget: DeployTargetSchema.default(\"local\"),\n\thardened: z.boolean().default(true),\n});\n\n// ─── Resolver Output ────────────────────────────────────────────────────────\n\nexport const ResolvedServiceSchema = z.object({\n\tdefinition: ServiceDefinitionSchema,\n\taddedBy: z.enum([\"user\", \"dependency\", \"skill-pack\", \"proxy\", \"monitoring\"]).default(\"user\"),\n});\n\nexport const AddedDependencySchema = z.object({\n\tservice: z.string(),\n\tserviceId: z.string().optional(),\n\trequiredBy: z.string().optional(),\n\treason: z.string(),\n});\n\nexport const WarningSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ErrorSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ResolverOutputSchema = z.object({\n\tservices: z.array(ResolvedServiceSchema),\n\taddedDependencies: z.array(AddedDependencySchema),\n\tremovedConflicts: z.array(z.object({ service: z.string(), reason: z.string() })),\n\twarnings: z.array(WarningSchema),\n\terrors: z.array(ErrorSchema),\n\tisValid: z.boolean(),\n\testimatedMemoryMB: z.number().int().min(0),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n});\n\n// ─── Compose Options ────────────────────────────────────────────────────────\n\nexport const ComposeOptionsSchema = z.object({\n\tprojectName: z.string(),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\topenclawVersion: z.string().default(\"latest\"),\n\t/** When true, gateway gets extra_hosts so it can reach host-run (native) services. */\n\tbareMetalNativeHost: z.boolean().optional(),\n\t/** OpenClaw Docker image variant: official, coolify, or alpine. */\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\t/** Whether to apply security hardening (cap_drop, no-new-privileges, etc.) */\n\thardened: z.boolean().default(true),\n\t/** How to install OpenClaw itself: docker (in container) or direct (host install). */\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n});\n\n// ─── API Request/Response ───────────────────────────────────────────────────\n\nexport const ValidateRequestSchema = z.object({\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n});\n\nexport const ValidateResponseSchema = z.object({\n\tvalid: z.boolean(),\n\tresolvedServices: z.array(z.string()),\n\taddedDependencies: z.array(AddedDependencySchema),\n\twarnings: z.array(WarningSchema),\n\tconflicts: z.array(ErrorSchema),\n\testimatedMemoryMB: z.number(),\n});\n\nexport const ApiErrorSchema = z.object({\n\terror: z.object({\n\t\tcode: z.enum([\n\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\"CONFLICT_ERROR\",\n\t\t\t\"GENERATION_ERROR\",\n\t\t\t\"RATE_LIMITED\",\n\t\t\t\"INTERNAL_ERROR\",\n\t\t]),\n\t\tmessage: z.string(),\n\t\tdetails: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tfield: z.string().optional(),\n\t\t\t\t\tmessage: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t}),\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Enums ──────────────────────────────────────────────────────────────────\n\nexport const ServiceCategorySchema = z.enum([\n\t\"automation\",\n\t\"vector-db\",\n\t\"media\",\n\t\"storage\",\n\t\"database\",\n\t\"proxy\",\n\t\"monitoring\",\n\t\"browser\",\n\t\"search\",\n\t\"ai\",\n\t\"communication\",\n\t\"coding-agent\",\n\t\"social-media\",\n\t\"analytics\",\n\t\"ai-platform\",\n\t\"dev-tools\",\n\t\"knowledge\",\n\t\"desktop\",\n\t\"streaming\",\n\t\"security\",\n\t\"billing\",\n\t\"crm\",\n\t\"email-marketing\",\n\t\"forms\",\n\t\"api-gateway\",\n\t\"backup\",\n\t\"voice\",\n\t\"ecommerce\",\n\t\"collaboration\",\n\t\"ai-observability\",\n\t\"fine-tuning\",\n\t\"project-management\",\n\t\"business-intelligence\",\n\t\"dns-networking\",\n\t\"iot\",\n]);\n\nexport const MaturitySchema = z.enum([\"stable\", \"beta\", \"experimental\"]);\n\nexport const PlatformSchema = z.enum([\n\t\"linux/amd64\",\n\t\"linux/arm64\",\n\t\"windows/amd64\",\n\t\"macos/amd64\",\n\t\"macos/arm64\",\n]);\n\n/** Platform for Docker image arch only (used by resolver/compose). */\nexport const ComposePlatformSchema = z.enum([\"linux/amd64\", \"linux/arm64\"]);\n\nexport const DeploymentTypeSchema = z.enum([\"docker\", \"bare-metal\", \"local\"]);\n\nexport const RestartPolicySchema = z.enum([\"unless-stopped\", \"always\", \"on-failure\", \"no\"]);\n\nexport const ProxyTypeSchema = z.enum([\"none\", \"caddy\", \"traefik\"]);\n\nexport const DeploymentTargetSchema = z.enum([\"local\", \"vps\", \"homelab\", \"clawexa\"]);\n\nexport const OutputFormatSchema = z.enum([\"directory\", \"tar\", \"zip\"]);\n\nexport const OpenclawImageVariantSchema = z.enum([\"official\", \"coolify\", \"alpine\"]);\n\nexport const OpenclawInstallMethodSchema = z.enum([\"docker\", \"direct\"]);\n\nexport const DeployTargetSchema = z.enum([\"local\", \"cloud-init\"]);\n\nexport const AiProviderSchema = z.enum([\n\t\"openai\",\n\t\"anthropic\",\n\t\"google\",\n\t\"xai\",\n\t\"deepseek\",\n\t\"groq\",\n\t\"openrouter\",\n\t\"mistral\",\n\t\"together\",\n\t\"ollama\",\n\t\"ollama-cloud\",\n\t\"lmstudio\",\n\t\"vllm\",\n]);\n\nexport const GsdRuntimeSchema = z.enum([\"claude\", \"opencode\", \"gemini\", \"codex\"]);\n\n// ─── Sub-Schemas ────────────────────────────────────────────────────────────\n\nexport const PortMappingSchema = z.object({\n\thost: z.number().int().min(1).max(65535),\n\tcontainer: z.number().int().min(1).max(65535),\n\tdescription: z.string(),\n\texposed: z.boolean().default(true),\n});\n\nexport const VolumeMappingSchema = z.object({\n\tname: z.string().min(1),\n\tcontainerPath: z.string().min(1),\n\tdescription: z.string(),\n\tdriver: z.string().optional(),\n});\n\nexport const EnvVariableSchema = z.object({\n\tkey: z.string().min(1),\n\tdefaultValue: z.string(),\n\tsecret: z.boolean().default(false),\n\tdescription: z.string(),\n\trequired: z.boolean().default(true),\n\tvalidation: z.string().optional(),\n});\n\nexport const HealthCheckSchema = z.object({\n\ttest: z.string().min(1),\n\tinterval: z.string().default(\"30s\"),\n\ttimeout: z.string().default(\"10s\"),\n\tretries: z.number().int().min(1).default(3),\n\tstartPeriod: z.string().optional(),\n});\n\nexport const ResourceLimitsSchema = z.object({\n\tcpus: z.string().optional(),\n\tmemory: z.string().optional(),\n});\n\nexport const DeploySchema = z.object({\n\tresources: z\n\t\t.object({\n\t\t\tlimits: ResourceLimitsSchema.optional(),\n\t\t\treservations: ResourceLimitsSchema.optional(),\n\t\t})\n\t\t.optional(),\n});\n\nexport const SkillBindingSchema = z.object({\n\tskillId: z.string().min(1),\n\tautoInstall: z.boolean().default(true),\n\tconfigOverrides: z.record(z.string(), z.string()).optional(),\n});\n\n/** Platform for native install (linux, windows, macos — no arch). */\nexport const NativePlatformSchema = z.enum([\"linux\", \"windows\", \"macos\"]);\n\nexport const NativeRecipeSchema = z.object({\n\tplatform: NativePlatformSchema,\n\tinstallSteps: z.array(z.string()).min(1),\n\tstartCommand: z.string(),\n\tstopCommand: z.string().optional(),\n\tconfigPath: z.string().optional(),\n\tconfigTemplate: z.string().optional(),\n\tsystemdUnit: z.string().optional(),\n});\n\n// ─── Service Definition ─────────────────────────────────────────────────────\n\nexport const ServiceDefinitionSchema = z.object({\n\t// Identity\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tcategory: ServiceCategorySchema,\n\ticon: z.string(),\n\n\t// Docker\n\timage: z.string().min(1),\n\timageTag: z.string().min(1),\n\tports: z.array(PortMappingSchema).default([]),\n\tvolumes: z.array(VolumeMappingSchema).default([]),\n\tenvironment: z.array(EnvVariableSchema).default([]),\n\thealthcheck: HealthCheckSchema.optional(),\n\tcommand: z.string().optional(),\n\tentrypoint: z.string().optional(),\n\tdependsOn: z.array(z.string()).default([]),\n\trestartPolicy: RestartPolicySchema.default(\"unless-stopped\"),\n\tnetworks: z.array(z.string()).default([\"openclaw-network\"]),\n\tlabels: z.record(z.string(), z.string()).optional(),\n\tdeploy: DeploySchema.optional(),\n\n\t// OpenClaw Integration\n\tskills: z.array(SkillBindingSchema).default([]),\n\topenclawEnvVars: z.array(EnvVariableSchema).default([]),\n\topenclawVolumeMounts: z.array(VolumeMappingSchema).optional(),\n\n\t// Metadata\n\tdocsUrl: z.string().url(),\n\tselfHostedDocsUrl: z.string().url().optional(),\n\ttags: z.array(z.string()).default([]),\n\tmaturity: MaturitySchema.default(\"stable\"),\n\n\t// Dependencies & Conflicts\n\trequires: z.array(z.string()).default([]),\n\trecommends: z.array(z.string()).default([]),\n\tconflictsWith: z.array(z.string()).default([]),\n\tmandatory: z.boolean().default(false).optional(),\n\tremovalWarning: z.string().optional(),\n\n\t// Platform Constraints\n\tplatforms: z.array(PlatformSchema).optional(),\n\tminMemoryMB: z.number().int().min(0).optional(),\n\tgpuRequired: z.boolean().default(false),\n\n\t// Bare-metal native (install/run on host when no Docker)\n\tnativeSupported: z.boolean().optional(),\n\tnativeRecipes: z.array(NativeRecipeSchema).optional(),\n});\n\n// ─── Skill Pack ─────────────────────────────────────────────────────────────\n\nexport const SkillPackSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\trequiredServices: z.array(z.string()).min(1),\n\tskills: z.array(z.string()),\n\ticon: z.string().optional(),\n\ttags: z.array(z.string()).default([]),\n});\n\n// ─── Preset ─────────────────────────────────────────────────────────────────\n\nexport const PresetSchema = z.object({\n\tid: z\n\t\t.string()\n\t\t.min(1)\n\t\t.regex(/^[a-z0-9-]+$/),\n\tname: z.string().min(1),\n\tdescription: z.string(),\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\testimatedMemoryMB: z.number().int().min(0).optional(),\n});\n\n// ─── Generation Input ───────────────────────────────────────────────────────\n\nexport const GenerationInputSchema = z.object({\n\tconfigVersion: z.number().int().min(1).optional(),\n\tprojectName: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(64)\n\t\t.regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/, {\n\t\t\tmessage:\n\t\t\t\t\"Project name must be lowercase alphanumeric with hyphens, cannot start or end with hyphen\",\n\t\t}),\n\tservices: z.array(z.string()).default([]),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\tdeploymentType: DeploymentTypeSchema.default(\"docker\"),\n\tgenerateSecrets: z.boolean().default(true),\n\topenclawVersion: z.string().default(\"latest\"),\n\tmonitoring: z.boolean().default(false),\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n\tdeployTarget: DeployTargetSchema.default(\"local\"),\n\thardened: z.boolean().default(true),\n});\n\n// ─── Resolver Output ────────────────────────────────────────────────────────\n\nexport const ResolvedServiceSchema = z.object({\n\tdefinition: ServiceDefinitionSchema,\n\taddedBy: z.enum([\"user\", \"dependency\", \"skill-pack\", \"proxy\", \"monitoring\"]).default(\"user\"),\n});\n\nexport const AddedDependencySchema = z.object({\n\tservice: z.string(),\n\tserviceId: z.string().optional(),\n\trequiredBy: z.string().optional(),\n\treason: z.string(),\n});\n\nexport const WarningSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ErrorSchema = z.object({\n\ttype: z.string(),\n\tmessage: z.string(),\n});\n\nexport const ResolverOutputSchema = z.object({\n\tservices: z.array(ResolvedServiceSchema),\n\taddedDependencies: z.array(AddedDependencySchema),\n\tremovedConflicts: z.array(z.object({ service: z.string(), reason: z.string() })),\n\twarnings: z.array(WarningSchema),\n\terrors: z.array(ErrorSchema),\n\tisValid: z.boolean(),\n\testimatedMemoryMB: z.number().int().min(0),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n});\n\n// ─── Compose Options ────────────────────────────────────────────────────────\n\nexport const ComposeOptionsSchema = z.object({\n\tprojectName: z.string(),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tproxyHttpPort: z.number().int().min(1).max(65535).optional(),\n\tproxyHttpsPort: z.number().int().min(1).max(65535).optional(),\n\tportOverrides: z\n\t\t.record(z.string(), z.record(z.string(), z.number().int().min(1).max(65535)))\n\t\t.optional(),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n\tdeployment: DeploymentTargetSchema.default(\"local\"),\n\topenclawVersion: z.string().default(\"latest\"),\n\t/** When true, gateway gets extra_hosts so it can reach host-run (native) services. */\n\tbareMetalNativeHost: z.boolean().optional(),\n\t/** OpenClaw Docker image variant: official, coolify, or alpine. */\n\topenclawImage: OpenclawImageVariantSchema.default(\"official\"),\n\t/** Whether to apply security hardening (cap_drop, no-new-privileges, etc.) */\n\thardened: z.boolean().default(true),\n\t/** How to install OpenClaw itself: docker (in container) or direct (host install). */\n\topenclawInstallMethod: OpenclawInstallMethodSchema.default(\"docker\"),\n});\n\n// ─── API Request/Response ───────────────────────────────────────────────────\n\nexport const ValidateRequestSchema = z.object({\n\tservices: z.array(z.string()),\n\tskillPacks: z.array(z.string()).default([]),\n\taiProviders: z.array(AiProviderSchema).default([]),\n\tgsdRuntimes: z.array(GsdRuntimeSchema).default([]),\n\tproxy: ProxyTypeSchema.default(\"none\"),\n\tdomain: z.string().optional(),\n\tgpu: z.boolean().default(false),\n\tplatform: PlatformSchema.default(\"linux/amd64\"),\n});\n\nexport const ValidateResponseSchema = z.object({\n\tvalid: z.boolean(),\n\tresolvedServices: z.array(z.string()),\n\taddedDependencies: z.array(AddedDependencySchema),\n\twarnings: z.array(WarningSchema),\n\tconflicts: z.array(ErrorSchema),\n\testimatedMemoryMB: z.number(),\n});\n\nexport const ApiErrorSchema = z.object({\n\terror: z.object({\n\t\tcode: z.enum([\n\t\t\t\"VALIDATION_ERROR\",\n\t\t\t\"CONFLICT_ERROR\",\n\t\t\t\"GENERATION_ERROR\",\n\t\t\t\"RATE_LIMITED\",\n\t\t\t\"INTERNAL_ERROR\",\n\t\t]),\n\t\tmessage: z.string(),\n\t\tdetails: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tfield: z.string().optional(),\n\t\t\t\t\tmessage: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t}),\n});\n"],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/services/definitions/adguard-home.ts
3
+ const adguardHomeDefinition = {
4
+ id: "adguard-home",
5
+ name: "AdGuard Home",
6
+ description: "Network-wide ad and tracker blocking DNS server with parental controls, DHCP, and encrypted DNS support.",
7
+ category: "dns-networking",
8
+ icon: "🛡️",
9
+ image: "adguard/adguardhome",
10
+ imageTag: "latest",
11
+ ports: [{
12
+ host: 3100,
13
+ container: 3e3,
14
+ description: "AdGuard web UI",
15
+ exposed: true
16
+ }, {
17
+ host: 53,
18
+ container: 53,
19
+ description: "DNS server",
20
+ exposed: true
21
+ }],
22
+ volumes: [{
23
+ name: "adguard-work",
24
+ containerPath: "/opt/adguardhome/work",
25
+ description: "AdGuard working data"
26
+ }, {
27
+ name: "adguard-conf",
28
+ containerPath: "/opt/adguardhome/conf",
29
+ description: "AdGuard configuration"
30
+ }],
31
+ environment: [],
32
+ healthcheck: {
33
+ test: "wget -qO- http://localhost:3000 || exit 1",
34
+ interval: "30s",
35
+ timeout: "10s",
36
+ retries: 3,
37
+ startPeriod: "10s"
38
+ },
39
+ dependsOn: [],
40
+ restartPolicy: "unless-stopped",
41
+ networks: ["openclaw-network"],
42
+ skills: [],
43
+ openclawEnvVars: [{
44
+ key: "ADGUARD_HOST",
45
+ defaultValue: "adguard-home",
46
+ secret: false,
47
+ description: "AdGuard Home hostname",
48
+ required: false
49
+ }, {
50
+ key: "ADGUARD_PORT",
51
+ defaultValue: "3000",
52
+ secret: false,
53
+ description: "AdGuard Home web port",
54
+ required: false
55
+ }],
56
+ docsUrl: "https://adguard.com/en/adguard-home/overview.html",
57
+ tags: [
58
+ "dns",
59
+ "ad-blocking",
60
+ "privacy",
61
+ "dhcp",
62
+ "pihole-alternative"
63
+ ],
64
+ maturity: "stable",
65
+ requires: [],
66
+ recommends: [],
67
+ conflictsWith: ["pihole"],
68
+ minMemoryMB: 128,
69
+ gpuRequired: false
70
+ };
71
+ //#endregion
72
+ exports.adguardHomeDefinition = adguardHomeDefinition;
73
+
74
+ //# sourceMappingURL=adguard-home.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adguard-home.cjs","names":[],"sources":["../../../src/services/definitions/adguard-home.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const adguardHomeDefinition: ServiceDefinition = {\n\tid: \"adguard-home\",\n\tname: \"AdGuard Home\",\n\tdescription:\n\t\t\"Network-wide ad and tracker blocking DNS server with parental controls, DHCP, and encrypted DNS support.\",\n\tcategory: \"dns-networking\",\n\ticon: \"🛡️\",\n\n\timage: \"adguard/adguardhome\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3100,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"AdGuard web UI\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 53,\n\t\t\tcontainer: 53,\n\t\t\tdescription: \"DNS server\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"adguard-work\",\n\t\t\tcontainerPath: \"/opt/adguardhome/work\",\n\t\t\tdescription: \"AdGuard working data\",\n\t\t},\n\t\t{\n\t\t\tname: \"adguard-conf\",\n\t\t\tcontainerPath: \"/opt/adguardhome/conf\",\n\t\t\tdescription: \"AdGuard configuration\",\n\t\t},\n\t],\n\tenvironment: [],\n\thealthcheck: {\n\t\ttest: \"wget -qO- http://localhost:3000 || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"10s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"ADGUARD_HOST\",\n\t\t\tdefaultValue: \"adguard-home\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"AdGuard Home hostname\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"ADGUARD_PORT\",\n\t\t\tdefaultValue: \"3000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"AdGuard Home web port\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://adguard.com/en/adguard-home/overview.html\",\n\ttags: [\"dns\", \"ad-blocking\", \"privacy\", \"dhcp\", \"pihole-alternative\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [\"pihole\"],\n\n\tminMemoryMB: 128,\n\tgpuRequired: false,\n};\n"],"mappings":";;AAEA,MAAa,wBAA2C;CACvD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,EACD;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,EACD;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,EAAE;CACf,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CAED,SAAS;CACT,MAAM;EAAC;EAAO;EAAe;EAAW;EAAQ;EAAqB;CACrE,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,CAAC,SAAS;CAEzB,aAAa;CACb,aAAa;CACb"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.cjs";
2
+
3
+ //#region src/services/definitions/adguard-home.d.ts
4
+ declare const adguardHomeDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { adguardHomeDefinition };
7
+ //# sourceMappingURL=adguard-home.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adguard-home.d.cts","names":[],"sources":["../../../src/services/definitions/adguard-home.ts"],"mappings":";;;cAEa,qBAAA,EAAuB,iBAAA"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.mjs";
2
+
3
+ //#region src/services/definitions/adguard-home.d.ts
4
+ declare const adguardHomeDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { adguardHomeDefinition };
7
+ //# sourceMappingURL=adguard-home.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adguard-home.d.mts","names":[],"sources":["../../../src/services/definitions/adguard-home.ts"],"mappings":";;;cAEa,qBAAA,EAAuB,iBAAA"}