@better-openclaw/core 1.0.22 → 1.0.24

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 (697) hide show
  1. package/dist/bare-metal-partition.test.cjs +3 -4
  2. package/dist/bare-metal-partition.test.cjs.map +1 -1
  3. package/dist/bare-metal-partition.test.mjs +3 -4
  4. package/dist/bare-metal-partition.test.mjs.map +1 -1
  5. package/dist/composer.cjs +40 -14
  6. package/dist/composer.cjs.map +1 -1
  7. package/dist/composer.d.cts.map +1 -1
  8. package/dist/composer.d.mts.map +1 -1
  9. package/dist/composer.mjs +40 -14
  10. package/dist/composer.mjs.map +1 -1
  11. package/dist/composer.snapshot.test.cjs +1 -1
  12. package/dist/composer.snapshot.test.mjs +1 -1
  13. package/dist/composer.test.cjs +3 -2
  14. package/dist/composer.test.cjs.map +1 -1
  15. package/dist/composer.test.mjs +3 -2
  16. package/dist/composer.test.mjs.map +1 -1
  17. package/dist/deployers/strip-host-ports.test.cjs +1 -1
  18. package/dist/deployers/strip-host-ports.test.mjs +1 -1
  19. package/dist/generate.cjs +7 -2
  20. package/dist/generate.cjs.map +1 -1
  21. package/dist/generate.d.cts.map +1 -1
  22. package/dist/generate.d.mts.map +1 -1
  23. package/dist/generate.mjs +7 -2
  24. package/dist/generate.mjs.map +1 -1
  25. package/dist/generate.test.cjs +2 -2
  26. package/dist/generate.test.cjs.map +1 -1
  27. package/dist/generate.test.mjs +2 -2
  28. package/dist/generate.test.mjs.map +1 -1
  29. package/dist/generators/bare-metal-install.test.cjs +1 -1
  30. package/dist/generators/bare-metal-install.test.mjs +1 -1
  31. package/dist/generators/caddy.test.cjs +1 -1
  32. package/dist/generators/caddy.test.mjs +1 -1
  33. package/dist/generators/clone-repos.cjs +140 -0
  34. package/dist/generators/clone-repos.cjs.map +1 -0
  35. package/dist/generators/clone-repos.d.cts +11 -0
  36. package/dist/generators/clone-repos.d.cts.map +1 -0
  37. package/dist/generators/clone-repos.d.mts +11 -0
  38. package/dist/generators/clone-repos.d.mts.map +1 -0
  39. package/dist/generators/clone-repos.mjs +139 -0
  40. package/dist/generators/clone-repos.mjs.map +1 -0
  41. package/dist/generators/clone-repos.test.cjs +140 -0
  42. package/dist/generators/clone-repos.test.cjs.map +1 -0
  43. package/dist/generators/clone-repos.test.d.cts +1 -0
  44. package/dist/generators/clone-repos.test.d.mts +1 -0
  45. package/dist/generators/clone-repos.test.mjs +141 -0
  46. package/dist/generators/clone-repos.test.mjs.map +1 -0
  47. package/dist/generators/env.cjs +146 -0
  48. package/dist/generators/env.cjs.map +1 -1
  49. package/dist/generators/env.d.cts.map +1 -1
  50. package/dist/generators/env.d.mts.map +1 -1
  51. package/dist/generators/env.mjs +146 -0
  52. package/dist/generators/env.mjs.map +1 -1
  53. package/dist/generators/env.test.cjs +1 -1
  54. package/dist/generators/env.test.mjs +1 -1
  55. package/dist/generators/health-check.test.cjs +1 -1
  56. package/dist/generators/health-check.test.mjs +1 -1
  57. package/dist/generators/openclaw-json.cjs +102 -7
  58. package/dist/generators/openclaw-json.cjs.map +1 -1
  59. package/dist/generators/openclaw-json.mjs +102 -7
  60. package/dist/generators/openclaw-json.mjs.map +1 -1
  61. package/dist/generators/postgres-init.cjs +20 -0
  62. package/dist/generators/postgres-init.cjs.map +1 -1
  63. package/dist/generators/postgres-init.d.cts.map +1 -1
  64. package/dist/generators/postgres-init.d.mts.map +1 -1
  65. package/dist/generators/postgres-init.mjs +20 -0
  66. package/dist/generators/postgres-init.mjs.map +1 -1
  67. package/dist/generators/readme.cjs +2 -1
  68. package/dist/generators/readme.cjs.map +1 -1
  69. package/dist/generators/readme.mjs +2 -1
  70. package/dist/generators/readme.mjs.map +1 -1
  71. package/dist/generators/scripts.cjs +332 -3
  72. package/dist/generators/scripts.cjs.map +1 -1
  73. package/dist/generators/scripts.d.cts +3 -1
  74. package/dist/generators/scripts.d.cts.map +1 -1
  75. package/dist/generators/scripts.d.mts +3 -1
  76. package/dist/generators/scripts.d.mts.map +1 -1
  77. package/dist/generators/scripts.mjs +332 -3
  78. package/dist/generators/scripts.mjs.map +1 -1
  79. package/dist/generators/scripts.test.cjs +39 -5
  80. package/dist/generators/scripts.test.cjs.map +1 -1
  81. package/dist/generators/scripts.test.mjs +39 -5
  82. package/dist/generators/scripts.test.mjs.map +1 -1
  83. package/dist/generators/stack-manifest.cjs +1 -0
  84. package/dist/generators/stack-manifest.cjs.map +1 -1
  85. package/dist/generators/stack-manifest.d.cts +3 -2
  86. package/dist/generators/stack-manifest.d.cts.map +1 -1
  87. package/dist/generators/stack-manifest.d.mts +3 -2
  88. package/dist/generators/stack-manifest.d.mts.map +1 -1
  89. package/dist/generators/stack-manifest.mjs +1 -0
  90. package/dist/generators/stack-manifest.mjs.map +1 -1
  91. package/dist/generators/traefik.test.cjs +1 -1
  92. package/dist/generators/traefik.test.mjs +1 -1
  93. package/dist/index.cjs +8 -1
  94. package/dist/index.d.cts +5 -3
  95. package/dist/index.d.mts +5 -3
  96. package/dist/index.mjs +5 -3
  97. package/dist/migrations.test.cjs +1 -1
  98. package/dist/migrations.test.mjs +1 -1
  99. package/dist/presets/registry.cjs +19 -0
  100. package/dist/presets/registry.cjs.map +1 -1
  101. package/dist/presets/registry.d.cts.map +1 -1
  102. package/dist/presets/registry.d.mts.map +1 -1
  103. package/dist/presets/registry.mjs +19 -0
  104. package/dist/presets/registry.mjs.map +1 -1
  105. package/dist/presets/registry.test.cjs +1 -1
  106. package/dist/presets/registry.test.mjs +1 -1
  107. package/dist/resolver.cjs +8 -0
  108. package/dist/resolver.cjs.map +1 -1
  109. package/dist/resolver.mjs +9 -1
  110. package/dist/resolver.mjs.map +1 -1
  111. package/dist/resolver.test.cjs +47 -12
  112. package/dist/resolver.test.cjs.map +1 -1
  113. package/dist/resolver.test.mjs +47 -12
  114. package/dist/resolver.test.mjs.map +1 -1
  115. package/dist/{schema-C_hc7e4k.d.cts → schema-eX44HhRp.d.mts} +78 -8
  116. package/dist/schema-eX44HhRp.d.mts.map +1 -0
  117. package/dist/{schema-CaesJaS2.d.mts → schema-tn5RK8CM.d.cts} +78 -8
  118. package/dist/schema-tn5RK8CM.d.cts.map +1 -0
  119. package/dist/schema.cjs +26 -4
  120. package/dist/schema.cjs.map +1 -1
  121. package/dist/schema.d.cts +2 -2
  122. package/dist/schema.d.mts +2 -2
  123. package/dist/schema.mjs +25 -5
  124. package/dist/schema.mjs.map +1 -1
  125. package/dist/schema.test.cjs +1 -1
  126. package/dist/schema.test.mjs +1 -1
  127. package/dist/services/definitions/adguard-home.cjs +74 -0
  128. package/dist/services/definitions/adguard-home.cjs.map +1 -0
  129. package/dist/services/definitions/adguard-home.d.cts +7 -0
  130. package/dist/services/definitions/adguard-home.d.cts.map +1 -0
  131. package/dist/services/definitions/adguard-home.d.mts +7 -0
  132. package/dist/services/definitions/adguard-home.d.mts.map +1 -0
  133. package/dist/services/definitions/adguard-home.mjs +73 -0
  134. package/dist/services/definitions/adguard-home.mjs.map +1 -0
  135. package/dist/services/definitions/apptension-saas.cjs +87 -0
  136. package/dist/services/definitions/apptension-saas.cjs.map +1 -0
  137. package/dist/services/definitions/apptension-saas.d.cts +7 -0
  138. package/dist/services/definitions/apptension-saas.d.cts.map +1 -0
  139. package/dist/services/definitions/apptension-saas.d.mts +7 -0
  140. package/dist/services/definitions/apptension-saas.d.mts.map +1 -0
  141. package/dist/services/definitions/apptension-saas.mjs +86 -0
  142. package/dist/services/definitions/apptension-saas.mjs.map +1 -0
  143. package/dist/services/definitions/audiobookshelf.cjs +81 -0
  144. package/dist/services/definitions/audiobookshelf.cjs.map +1 -0
  145. package/dist/services/definitions/audiobookshelf.d.cts +7 -0
  146. package/dist/services/definitions/audiobookshelf.d.cts.map +1 -0
  147. package/dist/services/definitions/audiobookshelf.d.mts +7 -0
  148. package/dist/services/definitions/audiobookshelf.d.mts.map +1 -0
  149. package/dist/services/definitions/audiobookshelf.mjs +80 -0
  150. package/dist/services/definitions/audiobookshelf.mjs.map +1 -0
  151. package/dist/services/definitions/baserow.cjs +115 -0
  152. package/dist/services/definitions/baserow.cjs.map +1 -0
  153. package/dist/services/definitions/baserow.d.cts +7 -0
  154. package/dist/services/definitions/baserow.d.cts.map +1 -0
  155. package/dist/services/definitions/baserow.d.mts +7 -0
  156. package/dist/services/definitions/baserow.d.mts.map +1 -0
  157. package/dist/services/definitions/baserow.mjs +114 -0
  158. package/dist/services/definitions/baserow.mjs.map +1 -0
  159. package/dist/services/definitions/boxyhq-saas.cjs +88 -0
  160. package/dist/services/definitions/boxyhq-saas.cjs.map +1 -0
  161. package/dist/services/definitions/boxyhq-saas.d.cts +7 -0
  162. package/dist/services/definitions/boxyhq-saas.d.cts.map +1 -0
  163. package/dist/services/definitions/boxyhq-saas.d.mts +7 -0
  164. package/dist/services/definitions/boxyhq-saas.d.mts.map +1 -0
  165. package/dist/services/definitions/boxyhq-saas.mjs +87 -0
  166. package/dist/services/definitions/boxyhq-saas.mjs.map +1 -0
  167. package/dist/services/definitions/calibre-web.cjs +91 -0
  168. package/dist/services/definitions/calibre-web.cjs.map +1 -0
  169. package/dist/services/definitions/calibre-web.d.cts +7 -0
  170. package/dist/services/definitions/calibre-web.d.cts.map +1 -0
  171. package/dist/services/definitions/calibre-web.d.mts +7 -0
  172. package/dist/services/definitions/calibre-web.d.mts.map +1 -0
  173. package/dist/services/definitions/calibre-web.mjs +90 -0
  174. package/dist/services/definitions/calibre-web.mjs.map +1 -0
  175. package/dist/services/definitions/clickhouse.cjs +113 -0
  176. package/dist/services/definitions/clickhouse.cjs.map +1 -0
  177. package/dist/services/definitions/clickhouse.d.cts +7 -0
  178. package/dist/services/definitions/clickhouse.d.cts.map +1 -0
  179. package/dist/services/definitions/clickhouse.d.mts +7 -0
  180. package/dist/services/definitions/clickhouse.d.mts.map +1 -0
  181. package/dist/services/definitions/clickhouse.mjs +112 -0
  182. package/dist/services/definitions/clickhouse.mjs.map +1 -0
  183. package/dist/services/definitions/cloudflared.cjs +55 -0
  184. package/dist/services/definitions/cloudflared.cjs.map +1 -0
  185. package/dist/services/definitions/cloudflared.d.cts +7 -0
  186. package/dist/services/definitions/cloudflared.d.cts.map +1 -0
  187. package/dist/services/definitions/cloudflared.d.mts +7 -0
  188. package/dist/services/definitions/cloudflared.d.mts.map +1 -0
  189. package/dist/services/definitions/cloudflared.mjs +54 -0
  190. package/dist/services/definitions/cloudflared.mjs.map +1 -0
  191. package/dist/services/definitions/cmsaas-starter.cjs +86 -0
  192. package/dist/services/definitions/cmsaas-starter.cjs.map +1 -0
  193. package/dist/services/definitions/cmsaas-starter.d.cts +7 -0
  194. package/dist/services/definitions/cmsaas-starter.d.cts.map +1 -0
  195. package/dist/services/definitions/cmsaas-starter.d.mts +7 -0
  196. package/dist/services/definitions/cmsaas-starter.d.mts.map +1 -0
  197. package/dist/services/definitions/cmsaas-starter.mjs +85 -0
  198. package/dist/services/definitions/cmsaas-starter.mjs.map +1 -0
  199. package/dist/services/definitions/cockroachdb.cjs +70 -0
  200. package/dist/services/definitions/cockroachdb.cjs.map +1 -0
  201. package/dist/services/definitions/cockroachdb.d.cts +7 -0
  202. package/dist/services/definitions/cockroachdb.d.cts.map +1 -0
  203. package/dist/services/definitions/cockroachdb.d.mts +7 -0
  204. package/dist/services/definitions/cockroachdb.d.mts.map +1 -0
  205. package/dist/services/definitions/cockroachdb.mjs +69 -0
  206. package/dist/services/definitions/cockroachdb.mjs.map +1 -0
  207. package/dist/services/definitions/coder.cjs +64 -0
  208. package/dist/services/definitions/coder.cjs.map +1 -0
  209. package/dist/services/definitions/coder.d.cts +7 -0
  210. package/dist/services/definitions/coder.d.cts.map +1 -0
  211. package/dist/services/definitions/coder.d.mts +7 -0
  212. package/dist/services/definitions/coder.d.mts.map +1 -0
  213. package/dist/services/definitions/coder.mjs +63 -0
  214. package/dist/services/definitions/coder.mjs.map +1 -0
  215. package/dist/services/definitions/dragonfly.cjs +64 -0
  216. package/dist/services/definitions/dragonfly.cjs.map +1 -0
  217. package/dist/services/definitions/dragonfly.d.cts +7 -0
  218. package/dist/services/definitions/dragonfly.d.cts.map +1 -0
  219. package/dist/services/definitions/dragonfly.d.mts +7 -0
  220. package/dist/services/definitions/dragonfly.d.mts.map +1 -0
  221. package/dist/services/definitions/dragonfly.mjs +63 -0
  222. package/dist/services/definitions/dragonfly.mjs.map +1 -0
  223. package/dist/services/definitions/drone-ci.cjs +95 -0
  224. package/dist/services/definitions/drone-ci.cjs.map +1 -0
  225. package/dist/services/definitions/drone-ci.d.cts +7 -0
  226. package/dist/services/definitions/drone-ci.d.cts.map +1 -0
  227. package/dist/services/definitions/drone-ci.d.mts +7 -0
  228. package/dist/services/definitions/drone-ci.d.mts.map +1 -0
  229. package/dist/services/definitions/drone-ci.mjs +94 -0
  230. package/dist/services/definitions/drone-ci.mjs.map +1 -0
  231. package/dist/services/definitions/element-web.cjs +61 -0
  232. package/dist/services/definitions/element-web.cjs.map +1 -0
  233. package/dist/services/definitions/element-web.d.cts +7 -0
  234. package/dist/services/definitions/element-web.d.cts.map +1 -0
  235. package/dist/services/definitions/element-web.d.mts +7 -0
  236. package/dist/services/definitions/element-web.d.mts.map +1 -0
  237. package/dist/services/definitions/element-web.mjs +60 -0
  238. package/dist/services/definitions/element-web.mjs.map +1 -0
  239. package/dist/services/definitions/focalboard.cjs +65 -0
  240. package/dist/services/definitions/focalboard.cjs.map +1 -0
  241. package/dist/services/definitions/focalboard.d.cts +7 -0
  242. package/dist/services/definitions/focalboard.d.cts.map +1 -0
  243. package/dist/services/definitions/focalboard.d.mts +7 -0
  244. package/dist/services/definitions/focalboard.d.mts.map +1 -0
  245. package/dist/services/definitions/focalboard.mjs +64 -0
  246. package/dist/services/definitions/focalboard.mjs.map +1 -0
  247. package/dist/services/definitions/forgejo.cjs +108 -0
  248. package/dist/services/definitions/forgejo.cjs.map +1 -0
  249. package/dist/services/definitions/forgejo.d.cts +7 -0
  250. package/dist/services/definitions/forgejo.d.cts.map +1 -0
  251. package/dist/services/definitions/forgejo.d.mts +7 -0
  252. package/dist/services/definitions/forgejo.d.mts.map +1 -0
  253. package/dist/services/definitions/forgejo.mjs +107 -0
  254. package/dist/services/definitions/forgejo.mjs.map +1 -0
  255. package/dist/services/definitions/graylog.cjs +103 -0
  256. package/dist/services/definitions/graylog.cjs.map +1 -0
  257. package/dist/services/definitions/graylog.d.cts +7 -0
  258. package/dist/services/definitions/graylog.d.cts.map +1 -0
  259. package/dist/services/definitions/graylog.d.mts +7 -0
  260. package/dist/services/definitions/graylog.d.mts.map +1 -0
  261. package/dist/services/definitions/graylog.mjs +102 -0
  262. package/dist/services/definitions/graylog.mjs.map +1 -0
  263. package/dist/services/definitions/index.cjs +154 -1
  264. package/dist/services/definitions/index.cjs.map +1 -1
  265. package/dist/services/definitions/index.d.cts +52 -1
  266. package/dist/services/definitions/index.d.cts.map +1 -1
  267. package/dist/services/definitions/index.d.mts +52 -1
  268. package/dist/services/definitions/index.d.mts.map +1 -1
  269. package/dist/services/definitions/index.mjs +104 -2
  270. package/dist/services/definitions/index.mjs.map +1 -1
  271. package/dist/services/definitions/influxdb.cjs +105 -0
  272. package/dist/services/definitions/influxdb.cjs.map +1 -0
  273. package/dist/services/definitions/influxdb.d.cts +7 -0
  274. package/dist/services/definitions/influxdb.d.cts.map +1 -0
  275. package/dist/services/definitions/influxdb.d.mts +7 -0
  276. package/dist/services/definitions/influxdb.d.mts.map +1 -0
  277. package/dist/services/definitions/influxdb.mjs +104 -0
  278. package/dist/services/definitions/influxdb.mjs.map +1 -0
  279. package/dist/services/definitions/invoke-ai.cjs +70 -0
  280. package/dist/services/definitions/invoke-ai.cjs.map +1 -0
  281. package/dist/services/definitions/invoke-ai.d.cts +7 -0
  282. package/dist/services/definitions/invoke-ai.d.cts.map +1 -0
  283. package/dist/services/definitions/invoke-ai.d.mts +7 -0
  284. package/dist/services/definitions/invoke-ai.d.mts.map +1 -0
  285. package/dist/services/definitions/invoke-ai.mjs +69 -0
  286. package/dist/services/definitions/invoke-ai.mjs.map +1 -0
  287. package/dist/services/definitions/ixartz-saas.cjs +88 -0
  288. package/dist/services/definitions/ixartz-saas.cjs.map +1 -0
  289. package/dist/services/definitions/ixartz-saas.d.cts +7 -0
  290. package/dist/services/definitions/ixartz-saas.d.cts.map +1 -0
  291. package/dist/services/definitions/ixartz-saas.d.mts +7 -0
  292. package/dist/services/definitions/ixartz-saas.d.mts.map +1 -0
  293. package/dist/services/definitions/ixartz-saas.mjs +87 -0
  294. package/dist/services/definitions/ixartz-saas.mjs.map +1 -0
  295. package/dist/services/definitions/jaeger.cjs +95 -0
  296. package/dist/services/definitions/jaeger.cjs.map +1 -0
  297. package/dist/services/definitions/jaeger.d.cts +7 -0
  298. package/dist/services/definitions/jaeger.d.cts.map +1 -0
  299. package/dist/services/definitions/jaeger.d.mts +7 -0
  300. package/dist/services/definitions/jaeger.d.mts.map +1 -0
  301. package/dist/services/definitions/jaeger.mjs +94 -0
  302. package/dist/services/definitions/jaeger.mjs.map +1 -0
  303. package/dist/services/definitions/jan.cjs +64 -0
  304. package/dist/services/definitions/jan.cjs.map +1 -0
  305. package/dist/services/definitions/jan.d.cts +7 -0
  306. package/dist/services/definitions/jan.d.cts.map +1 -0
  307. package/dist/services/definitions/jan.d.mts +7 -0
  308. package/dist/services/definitions/jan.d.mts.map +1 -0
  309. package/dist/services/definitions/jan.mjs +63 -0
  310. package/dist/services/definitions/jan.mjs.map +1 -0
  311. package/dist/services/definitions/jitsi-meet.cjs +102 -0
  312. package/dist/services/definitions/jitsi-meet.cjs.map +1 -0
  313. package/dist/services/definitions/jitsi-meet.d.cts +7 -0
  314. package/dist/services/definitions/jitsi-meet.d.cts.map +1 -0
  315. package/dist/services/definitions/jitsi-meet.d.mts +7 -0
  316. package/dist/services/definitions/jitsi-meet.d.mts.map +1 -0
  317. package/dist/services/definitions/jitsi-meet.mjs +101 -0
  318. package/dist/services/definitions/jitsi-meet.mjs.map +1 -0
  319. package/dist/services/definitions/local-ai.cjs +86 -0
  320. package/dist/services/definitions/local-ai.cjs.map +1 -0
  321. package/dist/services/definitions/local-ai.d.cts +7 -0
  322. package/dist/services/definitions/local-ai.d.cts.map +1 -0
  323. package/dist/services/definitions/local-ai.d.mts +7 -0
  324. package/dist/services/definitions/local-ai.d.mts.map +1 -0
  325. package/dist/services/definitions/local-ai.mjs +85 -0
  326. package/dist/services/definitions/local-ai.mjs.map +1 -0
  327. package/dist/services/definitions/metabase.cjs +108 -0
  328. package/dist/services/definitions/metabase.cjs.map +1 -0
  329. package/dist/services/definitions/metabase.d.cts +7 -0
  330. package/dist/services/definitions/metabase.d.cts.map +1 -0
  331. package/dist/services/definitions/metabase.d.mts +7 -0
  332. package/dist/services/definitions/metabase.d.mts.map +1 -0
  333. package/dist/services/definitions/metabase.mjs +107 -0
  334. package/dist/services/definitions/metabase.mjs.map +1 -0
  335. package/dist/services/definitions/mission-control.cjs +16 -2
  336. package/dist/services/definitions/mission-control.cjs.map +1 -1
  337. package/dist/services/definitions/mission-control.mjs +16 -2
  338. package/dist/services/definitions/mission-control.mjs.map +1 -1
  339. package/dist/services/definitions/mosquitto.cjs +82 -0
  340. package/dist/services/definitions/mosquitto.cjs.map +1 -0
  341. package/dist/services/definitions/mosquitto.d.cts +7 -0
  342. package/dist/services/definitions/mosquitto.d.cts.map +1 -0
  343. package/dist/services/definitions/mosquitto.d.mts +7 -0
  344. package/dist/services/definitions/mosquitto.d.mts.map +1 -0
  345. package/dist/services/definitions/mosquitto.mjs +81 -0
  346. package/dist/services/definitions/mosquitto.mjs.map +1 -0
  347. package/dist/services/definitions/navidrome.cjs +90 -0
  348. package/dist/services/definitions/navidrome.cjs.map +1 -0
  349. package/dist/services/definitions/navidrome.d.cts +7 -0
  350. package/dist/services/definitions/navidrome.d.cts.map +1 -0
  351. package/dist/services/definitions/navidrome.d.mts +7 -0
  352. package/dist/services/definitions/navidrome.d.mts.map +1 -0
  353. package/dist/services/definitions/navidrome.mjs +89 -0
  354. package/dist/services/definitions/navidrome.mjs.map +1 -0
  355. package/dist/services/definitions/nginx-proxy-manager.cjs +71 -0
  356. package/dist/services/definitions/nginx-proxy-manager.cjs.map +1 -0
  357. package/dist/services/definitions/nginx-proxy-manager.d.cts +7 -0
  358. package/dist/services/definitions/nginx-proxy-manager.d.cts.map +1 -0
  359. package/dist/services/definitions/nginx-proxy-manager.d.mts +7 -0
  360. package/dist/services/definitions/nginx-proxy-manager.d.mts.map +1 -0
  361. package/dist/services/definitions/nginx-proxy-manager.mjs +70 -0
  362. package/dist/services/definitions/nginx-proxy-manager.mjs.map +1 -0
  363. package/dist/services/definitions/node-red.cjs +77 -0
  364. package/dist/services/definitions/node-red.cjs.map +1 -0
  365. package/dist/services/definitions/node-red.d.cts +7 -0
  366. package/dist/services/definitions/node-red.d.cts.map +1 -0
  367. package/dist/services/definitions/node-red.d.mts +7 -0
  368. package/dist/services/definitions/node-red.d.mts.map +1 -0
  369. package/dist/services/definitions/node-red.mjs +76 -0
  370. package/dist/services/definitions/node-red.mjs.map +1 -0
  371. package/dist/services/definitions/open-saas.cjs +81 -0
  372. package/dist/services/definitions/open-saas.cjs.map +1 -0
  373. package/dist/services/definitions/open-saas.d.cts +7 -0
  374. package/dist/services/definitions/open-saas.d.cts.map +1 -0
  375. package/dist/services/definitions/open-saas.d.mts +7 -0
  376. package/dist/services/definitions/open-saas.d.mts.map +1 -0
  377. package/dist/services/definitions/open-saas.mjs +80 -0
  378. package/dist/services/definitions/open-saas.mjs.map +1 -0
  379. package/dist/services/definitions/photoprism.cjs +126 -0
  380. package/dist/services/definitions/photoprism.cjs.map +1 -0
  381. package/dist/services/definitions/photoprism.d.cts +7 -0
  382. package/dist/services/definitions/photoprism.d.cts.map +1 -0
  383. package/dist/services/definitions/photoprism.d.mts +7 -0
  384. package/dist/services/definitions/photoprism.d.mts.map +1 -0
  385. package/dist/services/definitions/photoprism.mjs +125 -0
  386. package/dist/services/definitions/photoprism.mjs.map +1 -0
  387. package/dist/services/definitions/pihole.cjs +73 -0
  388. package/dist/services/definitions/pihole.cjs.map +1 -0
  389. package/dist/services/definitions/pihole.d.cts +7 -0
  390. package/dist/services/definitions/pihole.d.cts.map +1 -0
  391. package/dist/services/definitions/pihole.d.mts +7 -0
  392. package/dist/services/definitions/pihole.d.mts.map +1 -0
  393. package/dist/services/definitions/pihole.mjs +72 -0
  394. package/dist/services/definitions/pihole.mjs.map +1 -0
  395. package/dist/services/definitions/piper-tts.cjs +70 -0
  396. package/dist/services/definitions/piper-tts.cjs.map +1 -0
  397. package/dist/services/definitions/piper-tts.d.cts +7 -0
  398. package/dist/services/definitions/piper-tts.d.cts.map +1 -0
  399. package/dist/services/definitions/piper-tts.d.mts +7 -0
  400. package/dist/services/definitions/piper-tts.d.mts.map +1 -0
  401. package/dist/services/definitions/piper-tts.mjs +69 -0
  402. package/dist/services/definitions/piper-tts.mjs.map +1 -0
  403. package/dist/services/definitions/plane.cjs +75 -0
  404. package/dist/services/definitions/plane.cjs.map +1 -0
  405. package/dist/services/definitions/plane.d.cts +7 -0
  406. package/dist/services/definitions/plane.d.cts.map +1 -0
  407. package/dist/services/definitions/plane.d.mts +7 -0
  408. package/dist/services/definitions/plane.d.mts.map +1 -0
  409. package/dist/services/definitions/plane.mjs +74 -0
  410. package/dist/services/definitions/plane.mjs.map +1 -0
  411. package/dist/services/definitions/plausible.cjs +94 -0
  412. package/dist/services/definitions/plausible.cjs.map +1 -0
  413. package/dist/services/definitions/plausible.d.cts +7 -0
  414. package/dist/services/definitions/plausible.d.cts.map +1 -0
  415. package/dist/services/definitions/plausible.d.mts +7 -0
  416. package/dist/services/definitions/plausible.d.mts.map +1 -0
  417. package/dist/services/definitions/plausible.mjs +93 -0
  418. package/dist/services/definitions/plausible.mjs.map +1 -0
  419. package/dist/services/definitions/pocket-id.cjs +101 -0
  420. package/dist/services/definitions/pocket-id.cjs.map +1 -0
  421. package/dist/services/definitions/pocket-id.d.cts +7 -0
  422. package/dist/services/definitions/pocket-id.d.cts.map +1 -0
  423. package/dist/services/definitions/pocket-id.d.mts +7 -0
  424. package/dist/services/definitions/pocket-id.d.mts.map +1 -0
  425. package/dist/services/definitions/pocket-id.mjs +100 -0
  426. package/dist/services/definitions/pocket-id.mjs.map +1 -0
  427. package/dist/services/definitions/posthog.cjs +94 -0
  428. package/dist/services/definitions/posthog.cjs.map +1 -0
  429. package/dist/services/definitions/posthog.d.cts +7 -0
  430. package/dist/services/definitions/posthog.d.cts.map +1 -0
  431. package/dist/services/definitions/posthog.d.mts +7 -0
  432. package/dist/services/definitions/posthog.d.mts.map +1 -0
  433. package/dist/services/definitions/posthog.mjs +93 -0
  434. package/dist/services/definitions/posthog.mjs.map +1 -0
  435. package/dist/services/definitions/redis.cjs +1 -1
  436. package/dist/services/definitions/redis.cjs.map +1 -1
  437. package/dist/services/definitions/redis.mjs +1 -1
  438. package/dist/services/definitions/redis.mjs.map +1 -1
  439. package/dist/services/definitions/revolt.cjs +64 -0
  440. package/dist/services/definitions/revolt.cjs.map +1 -0
  441. package/dist/services/definitions/revolt.d.cts +7 -0
  442. package/dist/services/definitions/revolt.d.cts.map +1 -0
  443. package/dist/services/definitions/revolt.d.mts +7 -0
  444. package/dist/services/definitions/revolt.d.mts.map +1 -0
  445. package/dist/services/definitions/revolt.mjs +63 -0
  446. package/dist/services/definitions/revolt.mjs.map +1 -0
  447. package/dist/services/definitions/sentry.cjs +101 -0
  448. package/dist/services/definitions/sentry.cjs.map +1 -0
  449. package/dist/services/definitions/sentry.d.cts +7 -0
  450. package/dist/services/definitions/sentry.d.cts.map +1 -0
  451. package/dist/services/definitions/sentry.d.mts +7 -0
  452. package/dist/services/definitions/sentry.d.mts.map +1 -0
  453. package/dist/services/definitions/sentry.mjs +100 -0
  454. package/dist/services/definitions/sentry.mjs.map +1 -0
  455. package/dist/services/definitions/sonarqube.cjs +86 -0
  456. package/dist/services/definitions/sonarqube.cjs.map +1 -0
  457. package/dist/services/definitions/sonarqube.d.cts +7 -0
  458. package/dist/services/definitions/sonarqube.d.cts.map +1 -0
  459. package/dist/services/definitions/sonarqube.d.mts +7 -0
  460. package/dist/services/definitions/sonarqube.d.mts.map +1 -0
  461. package/dist/services/definitions/sonarqube.mjs +85 -0
  462. package/dist/services/definitions/sonarqube.mjs.map +1 -0
  463. package/dist/services/definitions/superset.cjs +77 -0
  464. package/dist/services/definitions/superset.cjs.map +1 -0
  465. package/dist/services/definitions/superset.d.cts +7 -0
  466. package/dist/services/definitions/superset.d.cts.map +1 -0
  467. package/dist/services/definitions/superset.d.mts +7 -0
  468. package/dist/services/definitions/superset.d.mts.map +1 -0
  469. package/dist/services/definitions/superset.mjs +76 -0
  470. package/dist/services/definitions/superset.mjs.map +1 -0
  471. package/dist/services/definitions/surrealdb.cjs +72 -0
  472. package/dist/services/definitions/surrealdb.cjs.map +1 -0
  473. package/dist/services/definitions/surrealdb.d.cts +7 -0
  474. package/dist/services/definitions/surrealdb.d.cts.map +1 -0
  475. package/dist/services/definitions/surrealdb.d.mts +7 -0
  476. package/dist/services/definitions/surrealdb.d.mts.map +1 -0
  477. package/dist/services/definitions/surrealdb.mjs +71 -0
  478. package/dist/services/definitions/surrealdb.mjs.map +1 -0
  479. package/dist/services/definitions/tabby-ml.cjs +70 -0
  480. package/dist/services/definitions/tabby-ml.cjs.map +1 -0
  481. package/dist/services/definitions/tabby-ml.d.cts +7 -0
  482. package/dist/services/definitions/tabby-ml.d.cts.map +1 -0
  483. package/dist/services/definitions/tabby-ml.d.mts +7 -0
  484. package/dist/services/definitions/tabby-ml.d.mts.map +1 -0
  485. package/dist/services/definitions/tabby-ml.mjs +69 -0
  486. package/dist/services/definitions/tabby-ml.mjs.map +1 -0
  487. package/dist/services/definitions/tempo.cjs +57 -0
  488. package/dist/services/definitions/tempo.cjs.map +1 -0
  489. package/dist/services/definitions/tempo.d.cts +7 -0
  490. package/dist/services/definitions/tempo.d.cts.map +1 -0
  491. package/dist/services/definitions/tempo.d.mts +7 -0
  492. package/dist/services/definitions/tempo.d.mts.map +1 -0
  493. package/dist/services/definitions/tempo.mjs +56 -0
  494. package/dist/services/definitions/tempo.mjs.map +1 -0
  495. package/dist/services/definitions/text-gen-webui.cjs +88 -0
  496. package/dist/services/definitions/text-gen-webui.cjs.map +1 -0
  497. package/dist/services/definitions/text-gen-webui.d.cts +7 -0
  498. package/dist/services/definitions/text-gen-webui.d.cts.map +1 -0
  499. package/dist/services/definitions/text-gen-webui.d.mts +7 -0
  500. package/dist/services/definitions/text-gen-webui.d.mts.map +1 -0
  501. package/dist/services/definitions/text-gen-webui.mjs +87 -0
  502. package/dist/services/definitions/text-gen-webui.mjs.map +1 -0
  503. package/dist/services/definitions/timescaledb.cjs +87 -0
  504. package/dist/services/definitions/timescaledb.cjs.map +1 -0
  505. package/dist/services/definitions/timescaledb.d.cts +7 -0
  506. package/dist/services/definitions/timescaledb.d.cts.map +1 -0
  507. package/dist/services/definitions/timescaledb.d.mts +7 -0
  508. package/dist/services/definitions/timescaledb.d.mts.map +1 -0
  509. package/dist/services/definitions/timescaledb.mjs +86 -0
  510. package/dist/services/definitions/timescaledb.mjs.map +1 -0
  511. package/dist/services/definitions/valkey.cjs +1 -1
  512. package/dist/services/definitions/valkey.cjs.map +1 -1
  513. package/dist/services/definitions/valkey.mjs +1 -1
  514. package/dist/services/definitions/valkey.mjs.map +1 -1
  515. package/dist/services/definitions/vector-log.cjs +59 -0
  516. package/dist/services/definitions/vector-log.cjs.map +1 -0
  517. package/dist/services/definitions/vector-log.d.cts +7 -0
  518. package/dist/services/definitions/vector-log.d.cts.map +1 -0
  519. package/dist/services/definitions/vector-log.d.mts +7 -0
  520. package/dist/services/definitions/vector-log.d.mts.map +1 -0
  521. package/dist/services/definitions/vector-log.mjs +58 -0
  522. package/dist/services/definitions/vector-log.mjs.map +1 -0
  523. package/dist/services/definitions/vikunja.cjs +96 -0
  524. package/dist/services/definitions/vikunja.cjs.map +1 -0
  525. package/dist/services/definitions/vikunja.d.cts +7 -0
  526. package/dist/services/definitions/vikunja.d.cts.map +1 -0
  527. package/dist/services/definitions/vikunja.d.mts +7 -0
  528. package/dist/services/definitions/vikunja.d.mts.map +1 -0
  529. package/dist/services/definitions/vikunja.mjs +95 -0
  530. package/dist/services/definitions/vikunja.mjs.map +1 -0
  531. package/dist/services/definitions/wireguard.cjs +88 -0
  532. package/dist/services/definitions/wireguard.cjs.map +1 -0
  533. package/dist/services/definitions/wireguard.d.cts +7 -0
  534. package/dist/services/definitions/wireguard.d.cts.map +1 -0
  535. package/dist/services/definitions/wireguard.d.mts +7 -0
  536. package/dist/services/definitions/wireguard.d.mts.map +1 -0
  537. package/dist/services/definitions/wireguard.mjs +87 -0
  538. package/dist/services/definitions/wireguard.mjs.map +1 -0
  539. package/dist/services/definitions/woodpecker-ci.cjs +93 -0
  540. package/dist/services/definitions/woodpecker-ci.cjs.map +1 -0
  541. package/dist/services/definitions/woodpecker-ci.d.cts +7 -0
  542. package/dist/services/definitions/woodpecker-ci.d.cts.map +1 -0
  543. package/dist/services/definitions/woodpecker-ci.d.mts +7 -0
  544. package/dist/services/definitions/woodpecker-ci.d.mts.map +1 -0
  545. package/dist/services/definitions/woodpecker-ci.mjs +92 -0
  546. package/dist/services/definitions/woodpecker-ci.mjs.map +1 -0
  547. package/dist/services/definitions/zulip.cjs +116 -0
  548. package/dist/services/definitions/zulip.cjs.map +1 -0
  549. package/dist/services/definitions/zulip.d.cts +7 -0
  550. package/dist/services/definitions/zulip.d.cts.map +1 -0
  551. package/dist/services/definitions/zulip.d.mts +7 -0
  552. package/dist/services/definitions/zulip.d.mts.map +1 -0
  553. package/dist/services/definitions/zulip.mjs +115 -0
  554. package/dist/services/definitions/zulip.mjs.map +1 -0
  555. package/dist/services/registry.cjs +3 -0
  556. package/dist/services/registry.cjs.map +1 -1
  557. package/dist/services/registry.d.cts.map +1 -1
  558. package/dist/services/registry.d.mts.map +1 -1
  559. package/dist/services/registry.mjs +3 -0
  560. package/dist/services/registry.mjs.map +1 -1
  561. package/dist/services/registry.test.cjs +8 -1
  562. package/dist/services/registry.test.cjs.map +1 -1
  563. package/dist/services/registry.test.mjs +8 -1
  564. package/dist/services/registry.test.mjs.map +1 -1
  565. package/dist/{skill-manifest-BVUXU0__.mjs → skill-manifest-6XhrhWsG.mjs} +49 -1
  566. package/dist/{skill-manifest--IgY9REK.cjs.map → skill-manifest-6XhrhWsG.mjs.map} +1 -1
  567. package/dist/{skill-manifest--IgY9REK.cjs → skill-manifest-B8znSsym.cjs} +49 -1
  568. package/dist/{skill-manifest-BVUXU0__.mjs.map → skill-manifest-B8znSsym.cjs.map} +1 -1
  569. package/dist/skills/registry.cjs +3 -3
  570. package/dist/skills/registry.cjs.map +1 -1
  571. package/dist/skills/registry.mjs +3 -3
  572. package/dist/skills/registry.mjs.map +1 -1
  573. package/dist/skills/skill-manifest.cjs +1 -1
  574. package/dist/skills/skill-manifest.mjs +1 -1
  575. package/dist/track-analytics.cjs +50 -0
  576. package/dist/track-analytics.cjs.map +1 -0
  577. package/dist/track-analytics.d.cts +34 -0
  578. package/dist/track-analytics.d.cts.map +1 -0
  579. package/dist/track-analytics.d.mts +34 -0
  580. package/dist/track-analytics.d.mts.map +1 -0
  581. package/dist/track-analytics.mjs +48 -0
  582. package/dist/track-analytics.mjs.map +1 -0
  583. package/dist/track-analytics.test.cjs +91 -0
  584. package/dist/track-analytics.test.cjs.map +1 -0
  585. package/dist/track-analytics.test.d.cts +1 -0
  586. package/dist/track-analytics.test.d.mts +1 -0
  587. package/dist/track-analytics.test.mjs +92 -0
  588. package/dist/track-analytics.test.mjs.map +1 -0
  589. package/dist/types.cjs +35 -0
  590. package/dist/types.cjs.map +1 -1
  591. package/dist/types.d.cts +5 -2
  592. package/dist/types.d.cts.map +1 -1
  593. package/dist/types.d.mts +5 -2
  594. package/dist/types.d.mts.map +1 -1
  595. package/dist/types.mjs +35 -0
  596. package/dist/types.mjs.map +1 -1
  597. package/dist/validator.test.cjs +1 -1
  598. package/dist/validator.test.mjs +1 -1
  599. package/dist/version-manager.cjs +1 -1
  600. package/dist/version-manager.cjs.map +1 -1
  601. package/dist/version-manager.mjs +1 -1
  602. package/dist/version-manager.mjs.map +1 -1
  603. package/dist/version-manager.test.cjs +7 -5
  604. package/dist/version-manager.test.cjs.map +1 -1
  605. package/dist/version-manager.test.mjs +7 -5
  606. package/dist/version-manager.test.mjs.map +1 -1
  607. package/dist/{vi.2VT5v0um-DvC3SVNc.mjs → vi.2VT5v0um-C_jmO7m2.mjs} +5 -5
  608. package/dist/{vi.2VT5v0um-DvC3SVNc.mjs.map → vi.2VT5v0um-C_jmO7m2.mjs.map} +1 -1
  609. package/dist/{vi.2VT5v0um-CRqXre87.cjs → vi.2VT5v0um-iVBt6Fyq.cjs} +5 -5
  610. package/dist/{vi.2VT5v0um-CRqXre87.cjs.map → vi.2VT5v0um-iVBt6Fyq.cjs.map} +1 -1
  611. package/package.json +1 -1
  612. package/src/__snapshots__/composer.snapshot.test.ts.snap +285 -65
  613. package/src/bare-metal-partition.test.ts +4 -3
  614. package/src/composer.test.ts +4 -2
  615. package/src/composer.ts +45 -16
  616. package/src/generate.test.ts +2 -1
  617. package/src/generate.ts +11 -1
  618. package/src/generators/clone-repos.test.ts +154 -0
  619. package/src/generators/clone-repos.ts +159 -0
  620. package/src/generators/env.ts +214 -0
  621. package/src/generators/openclaw-json.ts +156 -1
  622. package/src/generators/postgres-init.ts +17 -0
  623. package/src/generators/readme.ts +2 -1
  624. package/src/generators/scripts.test.ts +52 -4
  625. package/src/generators/scripts.ts +351 -3
  626. package/src/generators/stack-manifest.ts +4 -2
  627. package/src/index.ts +8 -0
  628. package/src/presets/registry.ts +20 -0
  629. package/src/resolver.test.ts +53 -15
  630. package/src/resolver.ts +13 -1
  631. package/src/schema.ts +37 -4
  632. package/src/services/definitions/adguard-home.ts +79 -0
  633. package/src/services/definitions/apptension-saas.ts +84 -0
  634. package/src/services/definitions/audiobookshelf.ts +83 -0
  635. package/src/services/definitions/baserow.ts +118 -0
  636. package/src/services/definitions/boxyhq-saas.ts +84 -0
  637. package/src/services/definitions/calibre-web.ts +95 -0
  638. package/src/services/definitions/clickhouse.ts +115 -0
  639. package/src/services/definitions/cloudflared.ts +55 -0
  640. package/src/services/definitions/cmsaas-starter.ts +84 -0
  641. package/src/services/definitions/cockroachdb.ts +75 -0
  642. package/src/services/definitions/coder.ts +68 -0
  643. package/src/services/definitions/dragonfly.ts +68 -0
  644. package/src/services/definitions/drone-ci.ts +96 -0
  645. package/src/services/definitions/element-web.ts +62 -0
  646. package/src/services/definitions/focalboard.ts +69 -0
  647. package/src/services/definitions/forgejo.ts +109 -0
  648. package/src/services/definitions/graylog.ts +101 -0
  649. package/src/services/definitions/index.ts +159 -0
  650. package/src/services/definitions/influxdb.ts +109 -0
  651. package/src/services/definitions/invoke-ai.ts +76 -0
  652. package/src/services/definitions/ixartz-saas.ts +84 -0
  653. package/src/services/definitions/jaeger.ts +94 -0
  654. package/src/services/definitions/jan.ts +68 -0
  655. package/src/services/definitions/jitsi-meet.ts +108 -0
  656. package/src/services/definitions/local-ai.ts +90 -0
  657. package/src/services/definitions/metabase.ts +111 -0
  658. package/src/services/definitions/mission-control.ts +19 -2
  659. package/src/services/definitions/mosquitto.ts +84 -0
  660. package/src/services/definitions/navidrome.ts +95 -0
  661. package/src/services/definitions/nginx-proxy-manager.ts +70 -0
  662. package/src/services/definitions/node-red.ts +83 -0
  663. package/src/services/definitions/open-saas.ts +79 -0
  664. package/src/services/definitions/photoprism.ts +130 -0
  665. package/src/services/definitions/pihole.ts +79 -0
  666. package/src/services/definitions/piper-tts.ts +76 -0
  667. package/src/services/definitions/plane.ts +75 -0
  668. package/src/services/definitions/plausible.ts +97 -0
  669. package/src/services/definitions/pocket-id.ts +98 -0
  670. package/src/services/definitions/posthog.ts +97 -0
  671. package/src/services/definitions/redis.ts +1 -1
  672. package/src/services/definitions/revolt.ts +68 -0
  673. package/src/services/definitions/sentry.ts +104 -0
  674. package/src/services/definitions/sonarqube.ts +85 -0
  675. package/src/services/definitions/superset.ts +84 -0
  676. package/src/services/definitions/surrealdb.ts +77 -0
  677. package/src/services/definitions/tabby-ml.ts +76 -0
  678. package/src/services/definitions/tempo.ts +59 -0
  679. package/src/services/definitions/text-gen-webui.ts +92 -0
  680. package/src/services/definitions/timescaledb.ts +90 -0
  681. package/src/services/definitions/valkey.ts +1 -1
  682. package/src/services/definitions/vector-log.ts +61 -0
  683. package/src/services/definitions/vikunja.ts +96 -0
  684. package/src/services/definitions/wireguard.ts +89 -0
  685. package/src/services/definitions/woodpecker-ci.ts +97 -0
  686. package/src/services/definitions/zulip.ts +117 -0
  687. package/src/services/registry.test.ts +8 -0
  688. package/src/services/registry.ts +7 -0
  689. package/src/skills/manifest.json +64 -0
  690. package/src/skills/registry.ts +3 -3
  691. package/src/track-analytics.test.ts +82 -0
  692. package/src/track-analytics.ts +76 -0
  693. package/src/types.ts +40 -0
  694. package/src/version-manager.test.ts +10 -5
  695. package/src/version-manager.ts +1 -1
  696. package/dist/schema-C_hc7e4k.d.cts.map +0 -1
  697. package/dist/schema-CaesJaS2.d.mts.map +0 -1
@@ -0,0 +1,91 @@
1
+ const require_vi_2VT5v0um = require("./vi.2VT5v0um-iVBt6Fyq.cjs");
2
+ const require_track_analytics = require("./track-analytics.cjs");
3
+ //#region src/track-analytics.test.ts
4
+ const baseInput = {
5
+ projectName: "test-stack",
6
+ services: [
7
+ "postgresql",
8
+ "redis",
9
+ "n8n"
10
+ ],
11
+ skillPacks: ["research-agent"],
12
+ aiProviders: ["openai"],
13
+ gsdRuntimes: [],
14
+ proxy: "caddy",
15
+ domain: "example.com",
16
+ gpu: false,
17
+ platform: "linux/amd64",
18
+ deployment: "local",
19
+ deploymentType: "docker",
20
+ generateSecrets: true,
21
+ openclawVersion: "latest",
22
+ monitoring: true,
23
+ openclawImage: "official",
24
+ openclawInstallMethod: "docker",
25
+ hardened: true,
26
+ deployTarget: "local"
27
+ };
28
+ const baseMetadata = {
29
+ serviceCount: 5,
30
+ skillCount: 1,
31
+ estimatedMemoryMB: 2048,
32
+ resolvedServices: [
33
+ "postgresql",
34
+ "redis",
35
+ "n8n",
36
+ "caddy",
37
+ "searxng"
38
+ ],
39
+ generatedAt: "2026-03-09T00:00:00.000Z"
40
+ };
41
+ require_vi_2VT5v0um.describe("buildAnalyticsPayload", () => {
42
+ require_vi_2VT5v0um.it("builds payload for a preset-based CLI generation", () => {
43
+ const payload = require_track_analytics.buildAnalyticsPayload(baseInput, baseMetadata, "cli", "researcher");
44
+ require_vi_2VT5v0um.globalExpect(payload.source).toBe("cli");
45
+ require_vi_2VT5v0um.globalExpect(payload.buildMethod).toBe("preset");
46
+ require_vi_2VT5v0um.globalExpect(payload.presetId).toBe("researcher");
47
+ require_vi_2VT5v0um.globalExpect(payload.services).toEqual([
48
+ "postgresql",
49
+ "redis",
50
+ "n8n"
51
+ ]);
52
+ require_vi_2VT5v0um.globalExpect(payload.skillPacks).toEqual(["research-agent"]);
53
+ require_vi_2VT5v0um.globalExpect(payload.serviceCount).toBe(5);
54
+ require_vi_2VT5v0um.globalExpect(payload.proxy).toBe("caddy");
55
+ require_vi_2VT5v0um.globalExpect(payload.deployment).toBe("local");
56
+ require_vi_2VT5v0um.globalExpect(payload.deploymentType).toBe("docker");
57
+ require_vi_2VT5v0um.globalExpect(payload.platform).toBe("linux/amd64");
58
+ require_vi_2VT5v0um.globalExpect(payload.gpu).toBe(false);
59
+ require_vi_2VT5v0um.globalExpect(payload.monitoring).toBe(true);
60
+ require_vi_2VT5v0um.globalExpect(payload.hasDomain).toBe(true);
61
+ require_vi_2VT5v0um.globalExpect(payload.openclawImage).toBe("official");
62
+ require_vi_2VT5v0um.globalExpect(payload.estimatedMemoryMB).toBe(2048);
63
+ });
64
+ require_vi_2VT5v0um.it("sets buildMethod to custom when no presetId", () => {
65
+ const payload = require_track_analytics.buildAnalyticsPayload(baseInput, baseMetadata, "web");
66
+ require_vi_2VT5v0um.globalExpect(payload.buildMethod).toBe("custom");
67
+ require_vi_2VT5v0um.globalExpect(payload.presetId).toBeNull();
68
+ });
69
+ require_vi_2VT5v0um.it("sets buildMethod to custom when presetId is null", () => {
70
+ const payload = require_track_analytics.buildAnalyticsPayload(baseInput, baseMetadata, "api", null);
71
+ require_vi_2VT5v0um.globalExpect(payload.buildMethod).toBe("custom");
72
+ require_vi_2VT5v0um.globalExpect(payload.presetId).toBeNull();
73
+ });
74
+ require_vi_2VT5v0um.it("sets hasDomain to false when no domain in input", () => {
75
+ require_vi_2VT5v0um.globalExpect(require_track_analytics.buildAnalyticsPayload({
76
+ ...baseInput,
77
+ domain: void 0
78
+ }, baseMetadata, "mcp").hasDomain).toBe(false);
79
+ });
80
+ require_vi_2VT5v0um.it("preserves all source types", () => {
81
+ for (const source of [
82
+ "cli",
83
+ "web",
84
+ "api",
85
+ "mcp"
86
+ ]) require_vi_2VT5v0um.globalExpect(require_track_analytics.buildAnalyticsPayload(baseInput, baseMetadata, source).source).toBe(source);
87
+ });
88
+ });
89
+ //#endregion
90
+
91
+ //# sourceMappingURL=track-analytics.test.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-analytics.test.cjs","names":["describe","buildAnalyticsPayload"],"sources":["../src/track-analytics.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { buildAnalyticsPayload } from \"./track-analytics.js\";\nimport type { GenerationInput, GenerationMetadata } from \"./types.js\";\n\nconst baseInput: GenerationInput = {\n\tprojectName: \"test-stack\",\n\tservices: [\"postgresql\", \"redis\", \"n8n\"],\n\tskillPacks: [\"research-agent\"],\n\taiProviders: [\"openai\"],\n\tgsdRuntimes: [],\n\tproxy: \"caddy\",\n\tdomain: \"example.com\",\n\tgpu: false,\n\tplatform: \"linux/amd64\",\n\tdeployment: \"local\",\n\tdeploymentType: \"docker\",\n\tgenerateSecrets: true,\n\topenclawVersion: \"latest\",\n\tmonitoring: true,\n\topenclawImage: \"official\",\n\topenclawInstallMethod: \"docker\",\n\thardened: true,\n\tdeployTarget: \"local\",\n};\n\nconst baseMetadata: GenerationMetadata = {\n\tserviceCount: 5,\n\tskillCount: 1,\n\testimatedMemoryMB: 2048,\n\tresolvedServices: [\"postgresql\", \"redis\", \"n8n\", \"caddy\", \"searxng\"],\n\tgeneratedAt: \"2026-03-09T00:00:00.000Z\",\n};\n\ndescribe(\"buildAnalyticsPayload\", () => {\n\tit(\"builds payload for a preset-based CLI generation\", () => {\n\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, \"cli\", \"researcher\");\n\n\t\texpect(payload.source).toBe(\"cli\");\n\t\texpect(payload.buildMethod).toBe(\"preset\");\n\t\texpect(payload.presetId).toBe(\"researcher\");\n\t\texpect(payload.services).toEqual([\"postgresql\", \"redis\", \"n8n\"]);\n\t\texpect(payload.skillPacks).toEqual([\"research-agent\"]);\n\t\texpect(payload.serviceCount).toBe(5);\n\t\texpect(payload.proxy).toBe(\"caddy\");\n\t\texpect(payload.deployment).toBe(\"local\");\n\t\texpect(payload.deploymentType).toBe(\"docker\");\n\t\texpect(payload.platform).toBe(\"linux/amd64\");\n\t\texpect(payload.gpu).toBe(false);\n\t\texpect(payload.monitoring).toBe(true);\n\t\texpect(payload.hasDomain).toBe(true);\n\t\texpect(payload.openclawImage).toBe(\"official\");\n\t\texpect(payload.estimatedMemoryMB).toBe(2048);\n\t});\n\n\tit(\"sets buildMethod to custom when no presetId\", () => {\n\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, \"web\");\n\n\t\texpect(payload.buildMethod).toBe(\"custom\");\n\t\texpect(payload.presetId).toBeNull();\n\t});\n\n\tit(\"sets buildMethod to custom when presetId is null\", () => {\n\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, \"api\", null);\n\n\t\texpect(payload.buildMethod).toBe(\"custom\");\n\t\texpect(payload.presetId).toBeNull();\n\t});\n\n\tit(\"sets hasDomain to false when no domain in input\", () => {\n\t\tconst noDomainInput = { ...baseInput, domain: undefined };\n\t\tconst payload = buildAnalyticsPayload(noDomainInput, baseMetadata, \"mcp\");\n\n\t\texpect(payload.hasDomain).toBe(false);\n\t});\n\n\tit(\"preserves all source types\", () => {\n\t\tfor (const source of [\"cli\", \"web\", \"api\", \"mcp\"] as const) {\n\t\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, source);\n\t\t\texpect(payload.source).toBe(source);\n\t\t}\n\t});\n});\n"],"mappings":";;;AAIA,MAAM,YAA6B;CAClC,aAAa;CACb,UAAU;EAAC;EAAc;EAAS;EAAM;CACxC,YAAY,CAAC,iBAAiB;CAC9B,aAAa,CAAC,SAAS;CACvB,aAAa,EAAE;CACf,OAAO;CACP,QAAQ;CACR,KAAK;CACL,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,iBAAiB;CACjB,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,uBAAuB;CACvB,UAAU;CACV,cAAc;CACd;AAED,MAAM,eAAmC;CACxC,cAAc;CACd,YAAY;CACZ,mBAAmB;CACnB,kBAAkB;EAAC;EAAc;EAAS;EAAO;EAAS;EAAU;CACpE,aAAa;CACb;AAEDA,oBAAAA,SAAS,+BAA+B;AACvC,qBAAA,GAAG,0DAA0D;EAC5D,MAAM,UAAUC,wBAAAA,sBAAsB,WAAW,cAAc,OAAO,aAAa;AAEnF,sBAAA,aAAO,QAAQ,OAAO,CAAC,KAAK,MAAM;AAClC,sBAAA,aAAO,QAAQ,YAAY,CAAC,KAAK,SAAS;AAC1C,sBAAA,aAAO,QAAQ,SAAS,CAAC,KAAK,aAAa;AAC3C,sBAAA,aAAO,QAAQ,SAAS,CAAC,QAAQ;GAAC;GAAc;GAAS;GAAM,CAAC;AAChE,sBAAA,aAAO,QAAQ,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AACtD,sBAAA,aAAO,QAAQ,aAAa,CAAC,KAAK,EAAE;AACpC,sBAAA,aAAO,QAAQ,MAAM,CAAC,KAAK,QAAQ;AACnC,sBAAA,aAAO,QAAQ,WAAW,CAAC,KAAK,QAAQ;AACxC,sBAAA,aAAO,QAAQ,eAAe,CAAC,KAAK,SAAS;AAC7C,sBAAA,aAAO,QAAQ,SAAS,CAAC,KAAK,cAAc;AAC5C,sBAAA,aAAO,QAAQ,IAAI,CAAC,KAAK,MAAM;AAC/B,sBAAA,aAAO,QAAQ,WAAW,CAAC,KAAK,KAAK;AACrC,sBAAA,aAAO,QAAQ,UAAU,CAAC,KAAK,KAAK;AACpC,sBAAA,aAAO,QAAQ,cAAc,CAAC,KAAK,WAAW;AAC9C,sBAAA,aAAO,QAAQ,kBAAkB,CAAC,KAAK,KAAK;GAC3C;AAEF,qBAAA,GAAG,qDAAqD;EACvD,MAAM,UAAUA,wBAAAA,sBAAsB,WAAW,cAAc,MAAM;AAErE,sBAAA,aAAO,QAAQ,YAAY,CAAC,KAAK,SAAS;AAC1C,sBAAA,aAAO,QAAQ,SAAS,CAAC,UAAU;GAClC;AAEF,qBAAA,GAAG,0DAA0D;EAC5D,MAAM,UAAUA,wBAAAA,sBAAsB,WAAW,cAAc,OAAO,KAAK;AAE3E,sBAAA,aAAO,QAAQ,YAAY,CAAC,KAAK,SAAS;AAC1C,sBAAA,aAAO,QAAQ,SAAS,CAAC,UAAU;GAClC;AAEF,qBAAA,GAAG,yDAAyD;AAI3D,sBAAA,aAFgBA,wBAAAA,sBADM;GAAE,GAAG;GAAW,QAAQ,KAAA;GAAW,EACJ,cAAc,MAAM,CAE1D,UAAU,CAAC,KAAK,MAAM;GACpC;AAEF,qBAAA,GAAG,oCAAoC;AACtC,OAAK,MAAM,UAAU;GAAC;GAAO;GAAO;GAAO;GAAM,CAEhD,qBAAA,aADgBA,wBAAAA,sBAAsB,WAAW,cAAc,OAAO,CACvD,OAAO,CAAC,KAAK,OAAO;GAEnC;EACD"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,92 @@
1
+ import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-C_jmO7m2.mjs";
2
+ import { buildAnalyticsPayload } from "./track-analytics.mjs";
3
+ //#region src/track-analytics.test.ts
4
+ const baseInput = {
5
+ projectName: "test-stack",
6
+ services: [
7
+ "postgresql",
8
+ "redis",
9
+ "n8n"
10
+ ],
11
+ skillPacks: ["research-agent"],
12
+ aiProviders: ["openai"],
13
+ gsdRuntimes: [],
14
+ proxy: "caddy",
15
+ domain: "example.com",
16
+ gpu: false,
17
+ platform: "linux/amd64",
18
+ deployment: "local",
19
+ deploymentType: "docker",
20
+ generateSecrets: true,
21
+ openclawVersion: "latest",
22
+ monitoring: true,
23
+ openclawImage: "official",
24
+ openclawInstallMethod: "docker",
25
+ hardened: true,
26
+ deployTarget: "local"
27
+ };
28
+ const baseMetadata = {
29
+ serviceCount: 5,
30
+ skillCount: 1,
31
+ estimatedMemoryMB: 2048,
32
+ resolvedServices: [
33
+ "postgresql",
34
+ "redis",
35
+ "n8n",
36
+ "caddy",
37
+ "searxng"
38
+ ],
39
+ generatedAt: "2026-03-09T00:00:00.000Z"
40
+ };
41
+ describe("buildAnalyticsPayload", () => {
42
+ it("builds payload for a preset-based CLI generation", () => {
43
+ const payload = buildAnalyticsPayload(baseInput, baseMetadata, "cli", "researcher");
44
+ globalExpect(payload.source).toBe("cli");
45
+ globalExpect(payload.buildMethod).toBe("preset");
46
+ globalExpect(payload.presetId).toBe("researcher");
47
+ globalExpect(payload.services).toEqual([
48
+ "postgresql",
49
+ "redis",
50
+ "n8n"
51
+ ]);
52
+ globalExpect(payload.skillPacks).toEqual(["research-agent"]);
53
+ globalExpect(payload.serviceCount).toBe(5);
54
+ globalExpect(payload.proxy).toBe("caddy");
55
+ globalExpect(payload.deployment).toBe("local");
56
+ globalExpect(payload.deploymentType).toBe("docker");
57
+ globalExpect(payload.platform).toBe("linux/amd64");
58
+ globalExpect(payload.gpu).toBe(false);
59
+ globalExpect(payload.monitoring).toBe(true);
60
+ globalExpect(payload.hasDomain).toBe(true);
61
+ globalExpect(payload.openclawImage).toBe("official");
62
+ globalExpect(payload.estimatedMemoryMB).toBe(2048);
63
+ });
64
+ it("sets buildMethod to custom when no presetId", () => {
65
+ const payload = buildAnalyticsPayload(baseInput, baseMetadata, "web");
66
+ globalExpect(payload.buildMethod).toBe("custom");
67
+ globalExpect(payload.presetId).toBeNull();
68
+ });
69
+ it("sets buildMethod to custom when presetId is null", () => {
70
+ const payload = buildAnalyticsPayload(baseInput, baseMetadata, "api", null);
71
+ globalExpect(payload.buildMethod).toBe("custom");
72
+ globalExpect(payload.presetId).toBeNull();
73
+ });
74
+ it("sets hasDomain to false when no domain in input", () => {
75
+ globalExpect(buildAnalyticsPayload({
76
+ ...baseInput,
77
+ domain: void 0
78
+ }, baseMetadata, "mcp").hasDomain).toBe(false);
79
+ });
80
+ it("preserves all source types", () => {
81
+ for (const source of [
82
+ "cli",
83
+ "web",
84
+ "api",
85
+ "mcp"
86
+ ]) globalExpect(buildAnalyticsPayload(baseInput, baseMetadata, source).source).toBe(source);
87
+ });
88
+ });
89
+ //#endregion
90
+ export {};
91
+
92
+ //# sourceMappingURL=track-analytics.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-analytics.test.mjs","names":[],"sources":["../src/track-analytics.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { buildAnalyticsPayload } from \"./track-analytics.js\";\nimport type { GenerationInput, GenerationMetadata } from \"./types.js\";\n\nconst baseInput: GenerationInput = {\n\tprojectName: \"test-stack\",\n\tservices: [\"postgresql\", \"redis\", \"n8n\"],\n\tskillPacks: [\"research-agent\"],\n\taiProviders: [\"openai\"],\n\tgsdRuntimes: [],\n\tproxy: \"caddy\",\n\tdomain: \"example.com\",\n\tgpu: false,\n\tplatform: \"linux/amd64\",\n\tdeployment: \"local\",\n\tdeploymentType: \"docker\",\n\tgenerateSecrets: true,\n\topenclawVersion: \"latest\",\n\tmonitoring: true,\n\topenclawImage: \"official\",\n\topenclawInstallMethod: \"docker\",\n\thardened: true,\n\tdeployTarget: \"local\",\n};\n\nconst baseMetadata: GenerationMetadata = {\n\tserviceCount: 5,\n\tskillCount: 1,\n\testimatedMemoryMB: 2048,\n\tresolvedServices: [\"postgresql\", \"redis\", \"n8n\", \"caddy\", \"searxng\"],\n\tgeneratedAt: \"2026-03-09T00:00:00.000Z\",\n};\n\ndescribe(\"buildAnalyticsPayload\", () => {\n\tit(\"builds payload for a preset-based CLI generation\", () => {\n\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, \"cli\", \"researcher\");\n\n\t\texpect(payload.source).toBe(\"cli\");\n\t\texpect(payload.buildMethod).toBe(\"preset\");\n\t\texpect(payload.presetId).toBe(\"researcher\");\n\t\texpect(payload.services).toEqual([\"postgresql\", \"redis\", \"n8n\"]);\n\t\texpect(payload.skillPacks).toEqual([\"research-agent\"]);\n\t\texpect(payload.serviceCount).toBe(5);\n\t\texpect(payload.proxy).toBe(\"caddy\");\n\t\texpect(payload.deployment).toBe(\"local\");\n\t\texpect(payload.deploymentType).toBe(\"docker\");\n\t\texpect(payload.platform).toBe(\"linux/amd64\");\n\t\texpect(payload.gpu).toBe(false);\n\t\texpect(payload.monitoring).toBe(true);\n\t\texpect(payload.hasDomain).toBe(true);\n\t\texpect(payload.openclawImage).toBe(\"official\");\n\t\texpect(payload.estimatedMemoryMB).toBe(2048);\n\t});\n\n\tit(\"sets buildMethod to custom when no presetId\", () => {\n\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, \"web\");\n\n\t\texpect(payload.buildMethod).toBe(\"custom\");\n\t\texpect(payload.presetId).toBeNull();\n\t});\n\n\tit(\"sets buildMethod to custom when presetId is null\", () => {\n\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, \"api\", null);\n\n\t\texpect(payload.buildMethod).toBe(\"custom\");\n\t\texpect(payload.presetId).toBeNull();\n\t});\n\n\tit(\"sets hasDomain to false when no domain in input\", () => {\n\t\tconst noDomainInput = { ...baseInput, domain: undefined };\n\t\tconst payload = buildAnalyticsPayload(noDomainInput, baseMetadata, \"mcp\");\n\n\t\texpect(payload.hasDomain).toBe(false);\n\t});\n\n\tit(\"preserves all source types\", () => {\n\t\tfor (const source of [\"cli\", \"web\", \"api\", \"mcp\"] as const) {\n\t\t\tconst payload = buildAnalyticsPayload(baseInput, baseMetadata, source);\n\t\t\texpect(payload.source).toBe(source);\n\t\t}\n\t});\n});\n"],"mappings":";;;AAIA,MAAM,YAA6B;CAClC,aAAa;CACb,UAAU;EAAC;EAAc;EAAS;EAAM;CACxC,YAAY,CAAC,iBAAiB;CAC9B,aAAa,CAAC,SAAS;CACvB,aAAa,EAAE;CACf,OAAO;CACP,QAAQ;CACR,KAAK;CACL,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,iBAAiB;CACjB,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,uBAAuB;CACvB,UAAU;CACV,cAAc;CACd;AAED,MAAM,eAAmC;CACxC,cAAc;CACd,YAAY;CACZ,mBAAmB;CACnB,kBAAkB;EAAC;EAAc;EAAS;EAAO;EAAS;EAAU;CACpE,aAAa;CACb;AAED,SAAS,+BAA+B;AACvC,IAAG,0DAA0D;EAC5D,MAAM,UAAU,sBAAsB,WAAW,cAAc,OAAO,aAAa;AAEnF,eAAO,QAAQ,OAAO,CAAC,KAAK,MAAM;AAClC,eAAO,QAAQ,YAAY,CAAC,KAAK,SAAS;AAC1C,eAAO,QAAQ,SAAS,CAAC,KAAK,aAAa;AAC3C,eAAO,QAAQ,SAAS,CAAC,QAAQ;GAAC;GAAc;GAAS;GAAM,CAAC;AAChE,eAAO,QAAQ,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AACtD,eAAO,QAAQ,aAAa,CAAC,KAAK,EAAE;AACpC,eAAO,QAAQ,MAAM,CAAC,KAAK,QAAQ;AACnC,eAAO,QAAQ,WAAW,CAAC,KAAK,QAAQ;AACxC,eAAO,QAAQ,eAAe,CAAC,KAAK,SAAS;AAC7C,eAAO,QAAQ,SAAS,CAAC,KAAK,cAAc;AAC5C,eAAO,QAAQ,IAAI,CAAC,KAAK,MAAM;AAC/B,eAAO,QAAQ,WAAW,CAAC,KAAK,KAAK;AACrC,eAAO,QAAQ,UAAU,CAAC,KAAK,KAAK;AACpC,eAAO,QAAQ,cAAc,CAAC,KAAK,WAAW;AAC9C,eAAO,QAAQ,kBAAkB,CAAC,KAAK,KAAK;GAC3C;AAEF,IAAG,qDAAqD;EACvD,MAAM,UAAU,sBAAsB,WAAW,cAAc,MAAM;AAErE,eAAO,QAAQ,YAAY,CAAC,KAAK,SAAS;AAC1C,eAAO,QAAQ,SAAS,CAAC,UAAU;GAClC;AAEF,IAAG,0DAA0D;EAC5D,MAAM,UAAU,sBAAsB,WAAW,cAAc,OAAO,KAAK;AAE3E,eAAO,QAAQ,YAAY,CAAC,KAAK,SAAS;AAC1C,eAAO,QAAQ,SAAS,CAAC,UAAU;GAClC;AAEF,IAAG,yDAAyD;AAI3D,eAFgB,sBADM;GAAE,GAAG;GAAW,QAAQ,KAAA;GAAW,EACJ,cAAc,MAAM,CAE1D,UAAU,CAAC,KAAK,MAAM;GACpC;AAEF,IAAG,oCAAoC;AACtC,OAAK,MAAM,UAAU;GAAC;GAAO;GAAO;GAAO;GAAM,CAEhD,cADgB,sBAAsB,WAAW,cAAc,OAAO,CACvD,OAAO,CAAC,KAAK,OAAO;GAEnC;EACD"}
package/dist/types.cjs CHANGED
@@ -217,6 +217,41 @@ const SERVICE_CATEGORIES = [
217
217
  description: "AI Fine-Tuning",
218
218
  label: "AI Fine-Tuning",
219
219
  icon: "🎯"
220
+ },
221
+ {
222
+ id: "project-management",
223
+ name: "Project Management",
224
+ description: "Project Management",
225
+ label: "Project Management",
226
+ icon: "📋"
227
+ },
228
+ {
229
+ id: "business-intelligence",
230
+ name: "Business Intelligence",
231
+ description: "Business Intelligence",
232
+ label: "Business Intelligence",
233
+ icon: "📈"
234
+ },
235
+ {
236
+ id: "dns-networking",
237
+ name: "DNS & Networking",
238
+ description: "DNS & Networking",
239
+ label: "DNS & Networking",
240
+ icon: "🌐"
241
+ },
242
+ {
243
+ id: "iot",
244
+ name: "IoT & Edge",
245
+ description: "IoT & Edge",
246
+ label: "IoT & Edge",
247
+ icon: "📡"
248
+ },
249
+ {
250
+ id: "saas-boilerplate",
251
+ name: "SaaS Boilerplates",
252
+ description: "Full-stack SaaS starter kits and boilerplates",
253
+ label: "SaaS Boilerplates",
254
+ icon: "🚀"
220
255
  }
221
256
  ];
222
257
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n\tAddedDependencySchema,\n\tAiProviderSchema,\n\tApiErrorSchema,\n\tComposeOptionsSchema,\n\tDeploymentTargetSchema,\n\tDeploymentTypeSchema,\n\tDeploySchema,\n\tDeployTargetSchema,\n\tEnvVariableSchema,\n\tErrorSchema,\n\tGenerationInputSchema,\n\tGsdRuntimeSchema,\n\tHealthCheckSchema,\n\tMaturitySchema,\n\tNativePlatformSchema,\n\tNativeRecipeSchema,\n\tOpenclawImageVariantSchema,\n\tOpenclawInstallMethodSchema,\n\tOutputFormatSchema,\n\tPlatformSchema,\n\tPortMappingSchema,\n\tPresetSchema,\n\tProxyTypeSchema,\n\tResolvedServiceSchema,\n\tResolverOutputSchema,\n\tResourceLimitsSchema,\n\tRestartPolicySchema,\n\tServiceCategorySchema,\n\tServiceDefinitionSchema,\n\tSkillBindingSchema,\n\tSkillPackSchema,\n\tValidateRequestSchema,\n\tValidateResponseSchema,\n\tVolumeMappingSchema,\n\tWarningSchema,\n} from \"./schema.js\";\n\n// ─── Inferred Types ─────────────────────────────────────────────────────────\n\nexport type AiProvider = z.infer<typeof AiProviderSchema>;\nexport type GsdRuntime = z.infer<typeof GsdRuntimeSchema>;\nexport type ServiceCategory = z.infer<typeof ServiceCategorySchema>;\nexport type Maturity = z.infer<typeof MaturitySchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type RestartPolicy = z.infer<typeof RestartPolicySchema>;\nexport type ProxyType = z.infer<typeof ProxyTypeSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\nexport type NativePlatform = z.infer<typeof NativePlatformSchema>;\nexport type NativeRecipe = z.infer<typeof NativeRecipeSchema>;\nexport type OutputFormat = z.infer<typeof OutputFormatSchema>;\nexport type OpenclawImageVariant = z.infer<typeof OpenclawImageVariantSchema>;\nexport type OpenclawInstallMethod = z.infer<typeof OpenclawInstallMethodSchema>;\nexport type DeployTarget = z.infer<typeof DeployTargetSchema>;\n\nexport type PortMapping = z.infer<typeof PortMappingSchema>;\nexport type VolumeMapping = z.infer<typeof VolumeMappingSchema>;\nexport type EnvVariable = z.infer<typeof EnvVariableSchema>;\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\nexport type ResourceLimits = z.infer<typeof ResourceLimitsSchema>;\nexport type Deploy = z.infer<typeof DeploySchema>;\nexport type SkillBinding = z.infer<typeof SkillBindingSchema>;\n\nexport type ServiceDefinition = z.infer<typeof ServiceDefinitionSchema>;\nexport type SkillPack = z.infer<typeof SkillPackSchema>;\nexport type Preset = z.infer<typeof PresetSchema>;\n\nexport type GenerationInput = z.infer<typeof GenerationInputSchema>;\nexport type ComposeOptions = z.infer<typeof ComposeOptionsSchema> & {\n\t/** Dynamic Traefik labels per service, computed by the Traefik generator. */\n\ttraefikLabels?: Map<string, Record<string, string>>;\n};\nexport type ResolvedService = z.infer<typeof ResolvedServiceSchema>;\nexport type AddedDependency = z.infer<typeof AddedDependencySchema>;\nexport type Warning = z.infer<typeof WarningSchema>;\nexport type ResolverError = z.infer<typeof ErrorSchema>;\nexport type ResolverOutput = z.infer<typeof ResolverOutputSchema>;\n\nexport type ValidateRequest = z.infer<typeof ValidateRequestSchema>;\nexport type ValidateResponse = z.infer<typeof ValidateResponseSchema>;\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n\n// ─── Additional Types ───────────────────────────────────────────────────────\n\nexport interface ResolverInput {\n\tservices: string[];\n\tskillPacks: string[];\n\taiProviders?: AiProvider[];\n\tgsdRuntimes?: GsdRuntime[];\n\tproxy?: ProxyType;\n\tgpu?: boolean;\n\tplatform?: Platform;\n\tdeployment?: DeploymentType;\n\tdeploymentType?: DeploymentType;\n\tmonitoring?: boolean;\n\tmemoryThresholds?: { info: number; warning: number; critical: number };\n}\n\nexport interface GeneratedFiles {\n\t[path: string]: string;\n}\n\nexport interface GenerationMetadata {\n\tserviceCount: number;\n\tskillCount: number;\n\testimatedMemoryMB: number;\n\tgeneratedAt: string;\n}\n\nexport interface GenerationResult {\n\tfiles: GeneratedFiles;\n\tmetadata: GenerationMetadata;\n}\n\nexport interface CategoryInfo {\n\tid: ServiceCategory;\n\tname: string;\n\tdescription?: string;\n\tlabel?: string;\n\ticon: string;\n}\n\nexport const SERVICE_CATEGORIES: CategoryInfo[] = [\n\t{\n\t\tid: \"coding-agent\",\n\t\tname: \"AI Coding Agents\",\n\t\tdescription: \"AI Coding Agents\",\n\t\tlabel: \"AI Coding Agents\",\n\t\ticon: \"💻\",\n\t},\n\t{\n\t\tid: \"ai-platform\",\n\t\tname: \"AI Platforms & Chat UIs\",\n\t\tdescription: \"AI Platforms & Chat UIs\",\n\t\tlabel: \"AI Platforms & Chat UIs\",\n\t\ticon: \"🧪\",\n\t},\n\t{\n\t\tid: \"ai\",\n\t\tname: \"AI / Local Models\",\n\t\tdescription: \"AI / Local Models\",\n\t\tlabel: \"AI / Local Models\",\n\t\ticon: \"🤖\",\n\t},\n\t{\n\t\tid: \"automation\",\n\t\tname: \"Automation & Workflows\",\n\t\tdescription: \"Automation & Workflows\",\n\t\tlabel: \"Automation & Workflows\",\n\t\ticon: \"🔄\",\n\t},\n\t{\n\t\tid: \"vector-db\",\n\t\tname: \"Vector Databases\",\n\t\tdescription: \"Vector Databases\",\n\t\tlabel: \"Vector Databases\",\n\t\ticon: \"🧠\",\n\t},\n\t{\n\t\tid: \"media\",\n\t\tname: \"Media & Video\",\n\t\tdescription: \"Media & Video\",\n\t\tlabel: \"Media & Video\",\n\t\ticon: \"🎬\",\n\t},\n\t{\n\t\tid: \"social-media\",\n\t\tname: \"Social Media\",\n\t\tdescription: \"Social Media\",\n\t\tlabel: \"Social Media\",\n\t\ticon: \"📱\",\n\t},\n\t{\n\t\tid: \"analytics\",\n\t\tname: \"Analytics\",\n\t\tdescription: \"Analytics\",\n\t\tlabel: \"Analytics\",\n\t\ticon: \"📊\",\n\t},\n\t{\n\t\tid: \"knowledge\",\n\t\tname: \"Knowledge & Documents\",\n\t\tdescription: \"Knowledge & Documents\",\n\t\tlabel: \"Knowledge & Documents\",\n\t\ticon: \"📚\",\n\t},\n\t{\n\t\tid: \"storage\",\n\t\tname: \"Object Storage\",\n\t\tdescription: \"Object Storage\",\n\t\tlabel: \"Object Storage\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"database\",\n\t\tname: \"Databases & Caching\",\n\t\tdescription: \"Databases & Caching\",\n\t\tlabel: \"Databases & Caching\",\n\t\ticon: \"🗄️\",\n\t},\n\t{\n\t\tid: \"dev-tools\",\n\t\tname: \"Developer Tools\",\n\t\tdescription: \"Developer Tools\",\n\t\tlabel: \"Developer Tools\",\n\t\ticon: \"🛠️\",\n\t},\n\t{\n\t\tid: \"proxy\",\n\t\tname: \"Reverse Proxy\",\n\t\tdescription: \"Reverse Proxy\",\n\t\tlabel: \"Reverse Proxy\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"monitoring\",\n\t\tname: \"Monitoring\",\n\t\tdescription: \"Monitoring\",\n\t\tlabel: \"Monitoring\",\n\t\ticon: \"📡\",\n\t},\n\t{\n\t\tid: \"browser\",\n\t\tname: \"Browser Automation\",\n\t\tdescription: \"Browser Automation\",\n\t\tlabel: \"Browser Automation\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"search\",\n\t\tname: \"Search\",\n\t\tdescription: \"Search\",\n\t\tlabel: \"Search\",\n\t\ticon: \"🔍\",\n\t},\n\t{\n\t\tid: \"communication\",\n\t\tname: \"Notifications\",\n\t\tdescription: \"Notifications\",\n\t\tlabel: \"Notifications\",\n\t\ticon: \"🔔\",\n\t},\n\t{\n\t\tid: \"desktop\",\n\t\tname: \"Desktop Environment\",\n\t\tdescription: \"Desktop Environment\",\n\t\tlabel: \"Desktop Environment\",\n\t\ticon: \"🖥️\",\n\t},\n\t{\n\t\tid: \"streaming\",\n\t\tname: \"Streaming & Relay\",\n\t\tdescription: \"Streaming & Relay\",\n\t\tlabel: \"Streaming & Relay\",\n\t\ticon: \"📺\",\n\t},\n\t{\n\t\tid: \"security\",\n\t\tname: \"Security & Pentesting\",\n\t\tdescription: \"Security & Pentesting\",\n\t\tlabel: \"Security & Pentesting\",\n\t\ticon: \"🛡️\",\n\t},\n\t{\n\t\tid: \"billing\",\n\t\tname: \"Billing & Payments\",\n\t\tdescription: \"Billing & Payments\",\n\t\tlabel: \"Billing & Payments\",\n\t\ticon: \"💳\",\n\t},\n\t{\n\t\tid: \"crm\",\n\t\tname: \"CRM & Customer Management\",\n\t\tdescription: \"CRM & Customer Management\",\n\t\tlabel: \"CRM & Customer Management\",\n\t\ticon: \"🤝\",\n\t},\n\t{\n\t\tid: \"email-marketing\",\n\t\tname: \"Email & Marketing\",\n\t\tdescription: \"Email & Marketing\",\n\t\tlabel: \"Email & Marketing\",\n\t\ticon: \"📧\",\n\t},\n\t{\n\t\tid: \"forms\",\n\t\tname: \"Forms & Surveys\",\n\t\tdescription: \"Forms & Surveys\",\n\t\tlabel: \"Forms & Surveys\",\n\t\ticon: \"📋\",\n\t},\n\t{\n\t\tid: \"api-gateway\",\n\t\tname: \"API Management\",\n\t\tdescription: \"API Management\",\n\t\tlabel: \"API Management\",\n\t\ticon: \"🔌\",\n\t},\n\t{\n\t\tid: \"backup\",\n\t\tname: \"Backup & Recovery\",\n\t\tdescription: \"Backup & Recovery\",\n\t\tlabel: \"Backup & Recovery\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"voice\",\n\t\tname: \"Voice & Telephony\",\n\t\tdescription: \"Voice & Telephony\",\n\t\tlabel: \"Voice & Telephony\",\n\t\ticon: \"📞\",\n\t},\n\t{\n\t\tid: \"ecommerce\",\n\t\tname: \"E-Commerce\",\n\t\tdescription: \"E-Commerce\",\n\t\tlabel: \"E-Commerce\",\n\t\ticon: \"🛒\",\n\t},\n\t{\n\t\tid: \"collaboration\",\n\t\tname: \"Real-Time Collaboration\",\n\t\tdescription: \"Real-Time Collaboration\",\n\t\tlabel: \"Real-Time Collaboration\",\n\t\ticon: \"✏️\",\n\t},\n\t{\n\t\tid: \"ai-observability\",\n\t\tname: \"AI Observability\",\n\t\tdescription: \"AI Observability\",\n\t\tlabel: \"AI Observability\",\n\t\ticon: \"🔭\",\n\t},\n\t{\n\t\tid: \"fine-tuning\",\n\t\tname: \"AI Fine-Tuning\",\n\t\tdescription: \"AI Fine-Tuning\",\n\t\tlabel: \"AI Fine-Tuning\",\n\t\ticon: \"🎯\",\n\t},\n];\n"],"mappings":";;AA4HA,MAAa,qBAAqC;CACjD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD"}
1
+ {"version":3,"file":"types.cjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n\tAddedDependencySchema,\n\tAiProviderSchema,\n\tApiErrorSchema,\n\tBuildContextSchema,\n\tComposeOptionsSchema,\n\tDeploymentTargetSchema,\n\tDeploymentTypeSchema,\n\tDeploySchema,\n\tDeployTargetSchema,\n\tEnvVariableSchema,\n\tErrorSchema,\n\tGenerationInputSchema,\n\tGitSourceSchema,\n\tGsdRuntimeSchema,\n\tHealthCheckSchema,\n\tMaturitySchema,\n\tNativePlatformSchema,\n\tNativeRecipeSchema,\n\tOpenclawImageVariantSchema,\n\tOpenclawInstallMethodSchema,\n\tOutputFormatSchema,\n\tPlatformSchema,\n\tPortMappingSchema,\n\tPresetSchema,\n\tProxyTypeSchema,\n\tResolvedServiceSchema,\n\tResolverOutputSchema,\n\tResourceLimitsSchema,\n\tRestartPolicySchema,\n\tServiceCategorySchema,\n\tServiceDefinitionSchema,\n\tSkillBindingSchema,\n\tSkillPackSchema,\n\tValidateRequestSchema,\n\tValidateResponseSchema,\n\tVolumeMappingSchema,\n\tWarningSchema,\n} from \"./schema.js\";\n\n// ─── Inferred Types ─────────────────────────────────────────────────────────\n\nexport type AiProvider = z.infer<typeof AiProviderSchema>;\nexport type GsdRuntime = z.infer<typeof GsdRuntimeSchema>;\nexport type ServiceCategory = z.infer<typeof ServiceCategorySchema>;\nexport type Maturity = z.infer<typeof MaturitySchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type RestartPolicy = z.infer<typeof RestartPolicySchema>;\nexport type ProxyType = z.infer<typeof ProxyTypeSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\nexport type NativePlatform = z.infer<typeof NativePlatformSchema>;\nexport type NativeRecipe = z.infer<typeof NativeRecipeSchema>;\nexport type GitSource = z.infer<typeof GitSourceSchema>;\nexport type BuildContext = z.infer<typeof BuildContextSchema>;\nexport type OutputFormat = z.infer<typeof OutputFormatSchema>;\nexport type OpenclawImageVariant = z.infer<typeof OpenclawImageVariantSchema>;\nexport type OpenclawInstallMethod = z.infer<typeof OpenclawInstallMethodSchema>;\nexport type DeployTarget = z.infer<typeof DeployTargetSchema>;\n\nexport type PortMapping = z.infer<typeof PortMappingSchema>;\nexport type VolumeMapping = z.infer<typeof VolumeMappingSchema>;\nexport type EnvVariable = z.infer<typeof EnvVariableSchema>;\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\nexport type ResourceLimits = z.infer<typeof ResourceLimitsSchema>;\nexport type Deploy = z.infer<typeof DeploySchema>;\nexport type SkillBinding = z.infer<typeof SkillBindingSchema>;\n\nexport type ServiceDefinition = z.infer<typeof ServiceDefinitionSchema>;\nexport type SkillPack = z.infer<typeof SkillPackSchema>;\nexport type Preset = z.infer<typeof PresetSchema>;\n\nexport type GenerationInput = z.infer<typeof GenerationInputSchema>;\nexport type ComposeOptions = z.infer<typeof ComposeOptionsSchema> & {\n\t/** Dynamic Traefik labels per service, computed by the Traefik generator. */\n\ttraefikLabels?: Map<string, Record<string, string>>;\n};\nexport type ResolvedService = z.infer<typeof ResolvedServiceSchema>;\nexport type AddedDependency = z.infer<typeof AddedDependencySchema>;\nexport type Warning = z.infer<typeof WarningSchema>;\nexport type ResolverError = z.infer<typeof ErrorSchema>;\nexport type ResolverOutput = z.infer<typeof ResolverOutputSchema>;\n\nexport type ValidateRequest = z.infer<typeof ValidateRequestSchema>;\nexport type ValidateResponse = z.infer<typeof ValidateResponseSchema>;\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n\n// ─── Additional Types ───────────────────────────────────────────────────────\n\nexport interface ResolverInput {\n\tservices: string[];\n\tskillPacks: string[];\n\taiProviders?: AiProvider[];\n\tgsdRuntimes?: GsdRuntime[];\n\tproxy?: ProxyType;\n\tgpu?: boolean;\n\tplatform?: Platform;\n\tdeployment?: DeploymentType;\n\tdeploymentType?: DeploymentType;\n\tmonitoring?: boolean;\n\tmemoryThresholds?: { info: number; warning: number; critical: number };\n}\n\nexport interface GeneratedFiles {\n\t[path: string]: string;\n}\n\nexport interface GenerationMetadata {\n\tserviceCount: number;\n\tskillCount: number;\n\testimatedMemoryMB: number;\n\tresolvedServices: string[];\n\tgeneratedAt: string;\n}\n\nexport interface GenerationResult {\n\tfiles: GeneratedFiles;\n\tmetadata: GenerationMetadata;\n}\n\nexport interface CategoryInfo {\n\tid: ServiceCategory;\n\tname: string;\n\tdescription?: string;\n\tlabel?: string;\n\ticon: string;\n}\n\nexport const SERVICE_CATEGORIES: CategoryInfo[] = [\n\t{\n\t\tid: \"coding-agent\",\n\t\tname: \"AI Coding Agents\",\n\t\tdescription: \"AI Coding Agents\",\n\t\tlabel: \"AI Coding Agents\",\n\t\ticon: \"💻\",\n\t},\n\t{\n\t\tid: \"ai-platform\",\n\t\tname: \"AI Platforms & Chat UIs\",\n\t\tdescription: \"AI Platforms & Chat UIs\",\n\t\tlabel: \"AI Platforms & Chat UIs\",\n\t\ticon: \"🧪\",\n\t},\n\t{\n\t\tid: \"ai\",\n\t\tname: \"AI / Local Models\",\n\t\tdescription: \"AI / Local Models\",\n\t\tlabel: \"AI / Local Models\",\n\t\ticon: \"🤖\",\n\t},\n\t{\n\t\tid: \"automation\",\n\t\tname: \"Automation & Workflows\",\n\t\tdescription: \"Automation & Workflows\",\n\t\tlabel: \"Automation & Workflows\",\n\t\ticon: \"🔄\",\n\t},\n\t{\n\t\tid: \"vector-db\",\n\t\tname: \"Vector Databases\",\n\t\tdescription: \"Vector Databases\",\n\t\tlabel: \"Vector Databases\",\n\t\ticon: \"🧠\",\n\t},\n\t{\n\t\tid: \"media\",\n\t\tname: \"Media & Video\",\n\t\tdescription: \"Media & Video\",\n\t\tlabel: \"Media & Video\",\n\t\ticon: \"🎬\",\n\t},\n\t{\n\t\tid: \"social-media\",\n\t\tname: \"Social Media\",\n\t\tdescription: \"Social Media\",\n\t\tlabel: \"Social Media\",\n\t\ticon: \"📱\",\n\t},\n\t{\n\t\tid: \"analytics\",\n\t\tname: \"Analytics\",\n\t\tdescription: \"Analytics\",\n\t\tlabel: \"Analytics\",\n\t\ticon: \"📊\",\n\t},\n\t{\n\t\tid: \"knowledge\",\n\t\tname: \"Knowledge & Documents\",\n\t\tdescription: \"Knowledge & Documents\",\n\t\tlabel: \"Knowledge & Documents\",\n\t\ticon: \"📚\",\n\t},\n\t{\n\t\tid: \"storage\",\n\t\tname: \"Object Storage\",\n\t\tdescription: \"Object Storage\",\n\t\tlabel: \"Object Storage\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"database\",\n\t\tname: \"Databases & Caching\",\n\t\tdescription: \"Databases & Caching\",\n\t\tlabel: \"Databases & Caching\",\n\t\ticon: \"🗄️\",\n\t},\n\t{\n\t\tid: \"dev-tools\",\n\t\tname: \"Developer Tools\",\n\t\tdescription: \"Developer Tools\",\n\t\tlabel: \"Developer Tools\",\n\t\ticon: \"🛠️\",\n\t},\n\t{\n\t\tid: \"proxy\",\n\t\tname: \"Reverse Proxy\",\n\t\tdescription: \"Reverse Proxy\",\n\t\tlabel: \"Reverse Proxy\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"monitoring\",\n\t\tname: \"Monitoring\",\n\t\tdescription: \"Monitoring\",\n\t\tlabel: \"Monitoring\",\n\t\ticon: \"📡\",\n\t},\n\t{\n\t\tid: \"browser\",\n\t\tname: \"Browser Automation\",\n\t\tdescription: \"Browser Automation\",\n\t\tlabel: \"Browser Automation\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"search\",\n\t\tname: \"Search\",\n\t\tdescription: \"Search\",\n\t\tlabel: \"Search\",\n\t\ticon: \"🔍\",\n\t},\n\t{\n\t\tid: \"communication\",\n\t\tname: \"Notifications\",\n\t\tdescription: \"Notifications\",\n\t\tlabel: \"Notifications\",\n\t\ticon: \"🔔\",\n\t},\n\t{\n\t\tid: \"desktop\",\n\t\tname: \"Desktop Environment\",\n\t\tdescription: \"Desktop Environment\",\n\t\tlabel: \"Desktop Environment\",\n\t\ticon: \"🖥️\",\n\t},\n\t{\n\t\tid: \"streaming\",\n\t\tname: \"Streaming & Relay\",\n\t\tdescription: \"Streaming & Relay\",\n\t\tlabel: \"Streaming & Relay\",\n\t\ticon: \"📺\",\n\t},\n\t{\n\t\tid: \"security\",\n\t\tname: \"Security & Pentesting\",\n\t\tdescription: \"Security & Pentesting\",\n\t\tlabel: \"Security & Pentesting\",\n\t\ticon: \"🛡️\",\n\t},\n\t{\n\t\tid: \"billing\",\n\t\tname: \"Billing & Payments\",\n\t\tdescription: \"Billing & Payments\",\n\t\tlabel: \"Billing & Payments\",\n\t\ticon: \"💳\",\n\t},\n\t{\n\t\tid: \"crm\",\n\t\tname: \"CRM & Customer Management\",\n\t\tdescription: \"CRM & Customer Management\",\n\t\tlabel: \"CRM & Customer Management\",\n\t\ticon: \"🤝\",\n\t},\n\t{\n\t\tid: \"email-marketing\",\n\t\tname: \"Email & Marketing\",\n\t\tdescription: \"Email & Marketing\",\n\t\tlabel: \"Email & Marketing\",\n\t\ticon: \"📧\",\n\t},\n\t{\n\t\tid: \"forms\",\n\t\tname: \"Forms & Surveys\",\n\t\tdescription: \"Forms & Surveys\",\n\t\tlabel: \"Forms & Surveys\",\n\t\ticon: \"📋\",\n\t},\n\t{\n\t\tid: \"api-gateway\",\n\t\tname: \"API Management\",\n\t\tdescription: \"API Management\",\n\t\tlabel: \"API Management\",\n\t\ticon: \"🔌\",\n\t},\n\t{\n\t\tid: \"backup\",\n\t\tname: \"Backup & Recovery\",\n\t\tdescription: \"Backup & Recovery\",\n\t\tlabel: \"Backup & Recovery\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"voice\",\n\t\tname: \"Voice & Telephony\",\n\t\tdescription: \"Voice & Telephony\",\n\t\tlabel: \"Voice & Telephony\",\n\t\ticon: \"📞\",\n\t},\n\t{\n\t\tid: \"ecommerce\",\n\t\tname: \"E-Commerce\",\n\t\tdescription: \"E-Commerce\",\n\t\tlabel: \"E-Commerce\",\n\t\ticon: \"🛒\",\n\t},\n\t{\n\t\tid: \"collaboration\",\n\t\tname: \"Real-Time Collaboration\",\n\t\tdescription: \"Real-Time Collaboration\",\n\t\tlabel: \"Real-Time Collaboration\",\n\t\ticon: \"✏️\",\n\t},\n\t{\n\t\tid: \"ai-observability\",\n\t\tname: \"AI Observability\",\n\t\tdescription: \"AI Observability\",\n\t\tlabel: \"AI Observability\",\n\t\ticon: \"🔭\",\n\t},\n\t{\n\t\tid: \"fine-tuning\",\n\t\tname: \"AI Fine-Tuning\",\n\t\tdescription: \"AI Fine-Tuning\",\n\t\tlabel: \"AI Fine-Tuning\",\n\t\ticon: \"🎯\",\n\t},\n\t{\n\t\tid: \"project-management\",\n\t\tname: \"Project Management\",\n\t\tdescription: \"Project Management\",\n\t\tlabel: \"Project Management\",\n\t\ticon: \"📋\",\n\t},\n\t{\n\t\tid: \"business-intelligence\",\n\t\tname: \"Business Intelligence\",\n\t\tdescription: \"Business Intelligence\",\n\t\tlabel: \"Business Intelligence\",\n\t\ticon: \"📈\",\n\t},\n\t{\n\t\tid: \"dns-networking\",\n\t\tname: \"DNS & Networking\",\n\t\tdescription: \"DNS & Networking\",\n\t\tlabel: \"DNS & Networking\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"iot\",\n\t\tname: \"IoT & Edge\",\n\t\tdescription: \"IoT & Edge\",\n\t\tlabel: \"IoT & Edge\",\n\t\ticon: \"📡\",\n\t},\n\t{\n\t\tid: \"saas-boilerplate\",\n\t\tname: \"SaaS Boilerplates\",\n\t\tdescription: \"Full-stack SaaS starter kits and boilerplates\",\n\t\tlabel: \"SaaS Boilerplates\",\n\t\ticon: \"🚀\",\n\t},\n];\n"],"mappings":";;AAiIA,MAAa,qBAAqC;CACjD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD"}
package/dist/types.d.cts CHANGED
@@ -1,4 +1,4 @@
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, 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 RestartPolicySchema, C as PlatformSchema, D as ResolvedServiceSchema, E as ProxyTypeSchema, F as ValidateRequestSchema, I as ValidateResponseSchema, L as VolumeMappingSchema, M as ServiceDefinitionSchema, N as SkillBindingSchema, O as ResolverOutputSchema, P as SkillPackSchema, R as WarningSchema, S as OutputFormatSchema, T as PresetSchema, _ as MaturitySchema, a as ComposeOptionsSchema, b as OpenclawImageVariantSchema, c as DeployTargetSchema, d as EnvVariableSchema, f as ErrorSchema, g as HealthCheckSchema, h as GsdRuntimeSchema, i as BuildContextSchema, j as ServiceCategorySchema, k as ResourceLimitsSchema, l as DeploymentTargetSchema, m as GitSourceSchema, n as AiProviderSchema, p as GenerationInputSchema, r as ApiErrorSchema, s as DeploySchema, t as AddedDependencySchema, u as DeploymentTypeSchema, v as NativePlatformSchema, w as PortMappingSchema, x as OpenclawInstallMethodSchema, y as NativeRecipeSchema } from "./schema-tn5RK8CM.cjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/types.d.ts
@@ -13,6 +13,8 @@ type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;
13
13
  type DeploymentType = z.infer<typeof DeploymentTypeSchema>;
14
14
  type NativePlatform = z.infer<typeof NativePlatformSchema>;
15
15
  type NativeRecipe = z.infer<typeof NativeRecipeSchema>;
16
+ type GitSource = z.infer<typeof GitSourceSchema>;
17
+ type BuildContext = z.infer<typeof BuildContextSchema>;
16
18
  type OutputFormat = z.infer<typeof OutputFormatSchema>;
17
19
  type OpenclawImageVariant = z.infer<typeof OpenclawImageVariantSchema>;
18
20
  type OpenclawInstallMethod = z.infer<typeof OpenclawInstallMethodSchema>;
@@ -63,6 +65,7 @@ interface GenerationMetadata {
63
65
  serviceCount: number;
64
66
  skillCount: number;
65
67
  estimatedMemoryMB: number;
68
+ resolvedServices: string[];
66
69
  generatedAt: string;
67
70
  }
68
71
  interface GenerationResult {
@@ -78,5 +81,5 @@ interface CategoryInfo {
78
81
  }
79
82
  declare const SERVICE_CATEGORIES: CategoryInfo[];
80
83
  //#endregion
81
- export { AddedDependency, AiProvider, ApiError, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning };
84
+ export { AddedDependency, AiProvider, ApiError, BuildContext, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GitSource, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning };
82
85
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -1,4 +1,4 @@
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, 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 RestartPolicySchema, C as PlatformSchema, D as ResolvedServiceSchema, E as ProxyTypeSchema, F as ValidateRequestSchema, I as ValidateResponseSchema, L as VolumeMappingSchema, M as ServiceDefinitionSchema, N as SkillBindingSchema, O as ResolverOutputSchema, P as SkillPackSchema, R as WarningSchema, S as OutputFormatSchema, T as PresetSchema, _ as MaturitySchema, a as ComposeOptionsSchema, b as OpenclawImageVariantSchema, c as DeployTargetSchema, d as EnvVariableSchema, f as ErrorSchema, g as HealthCheckSchema, h as GsdRuntimeSchema, i as BuildContextSchema, j as ServiceCategorySchema, k as ResourceLimitsSchema, l as DeploymentTargetSchema, m as GitSourceSchema, n as AiProviderSchema, p as GenerationInputSchema, r as ApiErrorSchema, s as DeploySchema, t as AddedDependencySchema, u as DeploymentTypeSchema, v as NativePlatformSchema, w as PortMappingSchema, x as OpenclawInstallMethodSchema, y as NativeRecipeSchema } from "./schema-eX44HhRp.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/types.d.ts
@@ -13,6 +13,8 @@ type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;
13
13
  type DeploymentType = z.infer<typeof DeploymentTypeSchema>;
14
14
  type NativePlatform = z.infer<typeof NativePlatformSchema>;
15
15
  type NativeRecipe = z.infer<typeof NativeRecipeSchema>;
16
+ type GitSource = z.infer<typeof GitSourceSchema>;
17
+ type BuildContext = z.infer<typeof BuildContextSchema>;
16
18
  type OutputFormat = z.infer<typeof OutputFormatSchema>;
17
19
  type OpenclawImageVariant = z.infer<typeof OpenclawImageVariantSchema>;
18
20
  type OpenclawInstallMethod = z.infer<typeof OpenclawInstallMethodSchema>;
@@ -63,6 +65,7 @@ interface GenerationMetadata {
63
65
  serviceCount: number;
64
66
  skillCount: number;
65
67
  estimatedMemoryMB: number;
68
+ resolvedServices: string[];
66
69
  generatedAt: string;
67
70
  }
68
71
  interface GenerationResult {
@@ -78,5 +81,5 @@ interface CategoryInfo {
78
81
  }
79
82
  declare const SERVICE_CATEGORIES: CategoryInfo[];
80
83
  //#endregion
81
- export { AddedDependency, AiProvider, ApiError, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning };
84
+ export { AddedDependency, AiProvider, ApiError, BuildContext, CategoryInfo, ComposeOptions, Deploy, DeployTarget, DeploymentTarget, DeploymentType, EnvVariable, GeneratedFiles, GenerationInput, GenerationMetadata, GenerationResult, GitSource, GsdRuntime, HealthCheck, Maturity, NativePlatform, NativeRecipe, OpenclawImageVariant, OpenclawInstallMethod, OutputFormat, Platform, PortMapping, Preset, ProxyType, ResolvedService, ResolverError, ResolverInput, ResolverOutput, ResourceLimits, RestartPolicy, SERVICE_CATEGORIES, ServiceCategory, ServiceDefinition, SkillBinding, SkillPack, ValidateRequest, ValidateResponse, VolumeMapping, Warning };
82
85
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
package/dist/types.mjs CHANGED
@@ -216,6 +216,41 @@ const SERVICE_CATEGORIES = [
216
216
  description: "AI Fine-Tuning",
217
217
  label: "AI Fine-Tuning",
218
218
  icon: "🎯"
219
+ },
220
+ {
221
+ id: "project-management",
222
+ name: "Project Management",
223
+ description: "Project Management",
224
+ label: "Project Management",
225
+ icon: "📋"
226
+ },
227
+ {
228
+ id: "business-intelligence",
229
+ name: "Business Intelligence",
230
+ description: "Business Intelligence",
231
+ label: "Business Intelligence",
232
+ icon: "📈"
233
+ },
234
+ {
235
+ id: "dns-networking",
236
+ name: "DNS & Networking",
237
+ description: "DNS & Networking",
238
+ label: "DNS & Networking",
239
+ icon: "🌐"
240
+ },
241
+ {
242
+ id: "iot",
243
+ name: "IoT & Edge",
244
+ description: "IoT & Edge",
245
+ label: "IoT & Edge",
246
+ icon: "📡"
247
+ },
248
+ {
249
+ id: "saas-boilerplate",
250
+ name: "SaaS Boilerplates",
251
+ description: "Full-stack SaaS starter kits and boilerplates",
252
+ label: "SaaS Boilerplates",
253
+ icon: "🚀"
219
254
  }
220
255
  ];
221
256
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n\tAddedDependencySchema,\n\tAiProviderSchema,\n\tApiErrorSchema,\n\tComposeOptionsSchema,\n\tDeploymentTargetSchema,\n\tDeploymentTypeSchema,\n\tDeploySchema,\n\tDeployTargetSchema,\n\tEnvVariableSchema,\n\tErrorSchema,\n\tGenerationInputSchema,\n\tGsdRuntimeSchema,\n\tHealthCheckSchema,\n\tMaturitySchema,\n\tNativePlatformSchema,\n\tNativeRecipeSchema,\n\tOpenclawImageVariantSchema,\n\tOpenclawInstallMethodSchema,\n\tOutputFormatSchema,\n\tPlatformSchema,\n\tPortMappingSchema,\n\tPresetSchema,\n\tProxyTypeSchema,\n\tResolvedServiceSchema,\n\tResolverOutputSchema,\n\tResourceLimitsSchema,\n\tRestartPolicySchema,\n\tServiceCategorySchema,\n\tServiceDefinitionSchema,\n\tSkillBindingSchema,\n\tSkillPackSchema,\n\tValidateRequestSchema,\n\tValidateResponseSchema,\n\tVolumeMappingSchema,\n\tWarningSchema,\n} from \"./schema.js\";\n\n// ─── Inferred Types ─────────────────────────────────────────────────────────\n\nexport type AiProvider = z.infer<typeof AiProviderSchema>;\nexport type GsdRuntime = z.infer<typeof GsdRuntimeSchema>;\nexport type ServiceCategory = z.infer<typeof ServiceCategorySchema>;\nexport type Maturity = z.infer<typeof MaturitySchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type RestartPolicy = z.infer<typeof RestartPolicySchema>;\nexport type ProxyType = z.infer<typeof ProxyTypeSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\nexport type NativePlatform = z.infer<typeof NativePlatformSchema>;\nexport type NativeRecipe = z.infer<typeof NativeRecipeSchema>;\nexport type OutputFormat = z.infer<typeof OutputFormatSchema>;\nexport type OpenclawImageVariant = z.infer<typeof OpenclawImageVariantSchema>;\nexport type OpenclawInstallMethod = z.infer<typeof OpenclawInstallMethodSchema>;\nexport type DeployTarget = z.infer<typeof DeployTargetSchema>;\n\nexport type PortMapping = z.infer<typeof PortMappingSchema>;\nexport type VolumeMapping = z.infer<typeof VolumeMappingSchema>;\nexport type EnvVariable = z.infer<typeof EnvVariableSchema>;\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\nexport type ResourceLimits = z.infer<typeof ResourceLimitsSchema>;\nexport type Deploy = z.infer<typeof DeploySchema>;\nexport type SkillBinding = z.infer<typeof SkillBindingSchema>;\n\nexport type ServiceDefinition = z.infer<typeof ServiceDefinitionSchema>;\nexport type SkillPack = z.infer<typeof SkillPackSchema>;\nexport type Preset = z.infer<typeof PresetSchema>;\n\nexport type GenerationInput = z.infer<typeof GenerationInputSchema>;\nexport type ComposeOptions = z.infer<typeof ComposeOptionsSchema> & {\n\t/** Dynamic Traefik labels per service, computed by the Traefik generator. */\n\ttraefikLabels?: Map<string, Record<string, string>>;\n};\nexport type ResolvedService = z.infer<typeof ResolvedServiceSchema>;\nexport type AddedDependency = z.infer<typeof AddedDependencySchema>;\nexport type Warning = z.infer<typeof WarningSchema>;\nexport type ResolverError = z.infer<typeof ErrorSchema>;\nexport type ResolverOutput = z.infer<typeof ResolverOutputSchema>;\n\nexport type ValidateRequest = z.infer<typeof ValidateRequestSchema>;\nexport type ValidateResponse = z.infer<typeof ValidateResponseSchema>;\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n\n// ─── Additional Types ───────────────────────────────────────────────────────\n\nexport interface ResolverInput {\n\tservices: string[];\n\tskillPacks: string[];\n\taiProviders?: AiProvider[];\n\tgsdRuntimes?: GsdRuntime[];\n\tproxy?: ProxyType;\n\tgpu?: boolean;\n\tplatform?: Platform;\n\tdeployment?: DeploymentType;\n\tdeploymentType?: DeploymentType;\n\tmonitoring?: boolean;\n\tmemoryThresholds?: { info: number; warning: number; critical: number };\n}\n\nexport interface GeneratedFiles {\n\t[path: string]: string;\n}\n\nexport interface GenerationMetadata {\n\tserviceCount: number;\n\tskillCount: number;\n\testimatedMemoryMB: number;\n\tgeneratedAt: string;\n}\n\nexport interface GenerationResult {\n\tfiles: GeneratedFiles;\n\tmetadata: GenerationMetadata;\n}\n\nexport interface CategoryInfo {\n\tid: ServiceCategory;\n\tname: string;\n\tdescription?: string;\n\tlabel?: string;\n\ticon: string;\n}\n\nexport const SERVICE_CATEGORIES: CategoryInfo[] = [\n\t{\n\t\tid: \"coding-agent\",\n\t\tname: \"AI Coding Agents\",\n\t\tdescription: \"AI Coding Agents\",\n\t\tlabel: \"AI Coding Agents\",\n\t\ticon: \"💻\",\n\t},\n\t{\n\t\tid: \"ai-platform\",\n\t\tname: \"AI Platforms & Chat UIs\",\n\t\tdescription: \"AI Platforms & Chat UIs\",\n\t\tlabel: \"AI Platforms & Chat UIs\",\n\t\ticon: \"🧪\",\n\t},\n\t{\n\t\tid: \"ai\",\n\t\tname: \"AI / Local Models\",\n\t\tdescription: \"AI / Local Models\",\n\t\tlabel: \"AI / Local Models\",\n\t\ticon: \"🤖\",\n\t},\n\t{\n\t\tid: \"automation\",\n\t\tname: \"Automation & Workflows\",\n\t\tdescription: \"Automation & Workflows\",\n\t\tlabel: \"Automation & Workflows\",\n\t\ticon: \"🔄\",\n\t},\n\t{\n\t\tid: \"vector-db\",\n\t\tname: \"Vector Databases\",\n\t\tdescription: \"Vector Databases\",\n\t\tlabel: \"Vector Databases\",\n\t\ticon: \"🧠\",\n\t},\n\t{\n\t\tid: \"media\",\n\t\tname: \"Media & Video\",\n\t\tdescription: \"Media & Video\",\n\t\tlabel: \"Media & Video\",\n\t\ticon: \"🎬\",\n\t},\n\t{\n\t\tid: \"social-media\",\n\t\tname: \"Social Media\",\n\t\tdescription: \"Social Media\",\n\t\tlabel: \"Social Media\",\n\t\ticon: \"📱\",\n\t},\n\t{\n\t\tid: \"analytics\",\n\t\tname: \"Analytics\",\n\t\tdescription: \"Analytics\",\n\t\tlabel: \"Analytics\",\n\t\ticon: \"📊\",\n\t},\n\t{\n\t\tid: \"knowledge\",\n\t\tname: \"Knowledge & Documents\",\n\t\tdescription: \"Knowledge & Documents\",\n\t\tlabel: \"Knowledge & Documents\",\n\t\ticon: \"📚\",\n\t},\n\t{\n\t\tid: \"storage\",\n\t\tname: \"Object Storage\",\n\t\tdescription: \"Object Storage\",\n\t\tlabel: \"Object Storage\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"database\",\n\t\tname: \"Databases & Caching\",\n\t\tdescription: \"Databases & Caching\",\n\t\tlabel: \"Databases & Caching\",\n\t\ticon: \"🗄️\",\n\t},\n\t{\n\t\tid: \"dev-tools\",\n\t\tname: \"Developer Tools\",\n\t\tdescription: \"Developer Tools\",\n\t\tlabel: \"Developer Tools\",\n\t\ticon: \"🛠️\",\n\t},\n\t{\n\t\tid: \"proxy\",\n\t\tname: \"Reverse Proxy\",\n\t\tdescription: \"Reverse Proxy\",\n\t\tlabel: \"Reverse Proxy\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"monitoring\",\n\t\tname: \"Monitoring\",\n\t\tdescription: \"Monitoring\",\n\t\tlabel: \"Monitoring\",\n\t\ticon: \"📡\",\n\t},\n\t{\n\t\tid: \"browser\",\n\t\tname: \"Browser Automation\",\n\t\tdescription: \"Browser Automation\",\n\t\tlabel: \"Browser Automation\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"search\",\n\t\tname: \"Search\",\n\t\tdescription: \"Search\",\n\t\tlabel: \"Search\",\n\t\ticon: \"🔍\",\n\t},\n\t{\n\t\tid: \"communication\",\n\t\tname: \"Notifications\",\n\t\tdescription: \"Notifications\",\n\t\tlabel: \"Notifications\",\n\t\ticon: \"🔔\",\n\t},\n\t{\n\t\tid: \"desktop\",\n\t\tname: \"Desktop Environment\",\n\t\tdescription: \"Desktop Environment\",\n\t\tlabel: \"Desktop Environment\",\n\t\ticon: \"🖥️\",\n\t},\n\t{\n\t\tid: \"streaming\",\n\t\tname: \"Streaming & Relay\",\n\t\tdescription: \"Streaming & Relay\",\n\t\tlabel: \"Streaming & Relay\",\n\t\ticon: \"📺\",\n\t},\n\t{\n\t\tid: \"security\",\n\t\tname: \"Security & Pentesting\",\n\t\tdescription: \"Security & Pentesting\",\n\t\tlabel: \"Security & Pentesting\",\n\t\ticon: \"🛡️\",\n\t},\n\t{\n\t\tid: \"billing\",\n\t\tname: \"Billing & Payments\",\n\t\tdescription: \"Billing & Payments\",\n\t\tlabel: \"Billing & Payments\",\n\t\ticon: \"💳\",\n\t},\n\t{\n\t\tid: \"crm\",\n\t\tname: \"CRM & Customer Management\",\n\t\tdescription: \"CRM & Customer Management\",\n\t\tlabel: \"CRM & Customer Management\",\n\t\ticon: \"🤝\",\n\t},\n\t{\n\t\tid: \"email-marketing\",\n\t\tname: \"Email & Marketing\",\n\t\tdescription: \"Email & Marketing\",\n\t\tlabel: \"Email & Marketing\",\n\t\ticon: \"📧\",\n\t},\n\t{\n\t\tid: \"forms\",\n\t\tname: \"Forms & Surveys\",\n\t\tdescription: \"Forms & Surveys\",\n\t\tlabel: \"Forms & Surveys\",\n\t\ticon: \"📋\",\n\t},\n\t{\n\t\tid: \"api-gateway\",\n\t\tname: \"API Management\",\n\t\tdescription: \"API Management\",\n\t\tlabel: \"API Management\",\n\t\ticon: \"🔌\",\n\t},\n\t{\n\t\tid: \"backup\",\n\t\tname: \"Backup & Recovery\",\n\t\tdescription: \"Backup & Recovery\",\n\t\tlabel: \"Backup & Recovery\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"voice\",\n\t\tname: \"Voice & Telephony\",\n\t\tdescription: \"Voice & Telephony\",\n\t\tlabel: \"Voice & Telephony\",\n\t\ticon: \"📞\",\n\t},\n\t{\n\t\tid: \"ecommerce\",\n\t\tname: \"E-Commerce\",\n\t\tdescription: \"E-Commerce\",\n\t\tlabel: \"E-Commerce\",\n\t\ticon: \"🛒\",\n\t},\n\t{\n\t\tid: \"collaboration\",\n\t\tname: \"Real-Time Collaboration\",\n\t\tdescription: \"Real-Time Collaboration\",\n\t\tlabel: \"Real-Time Collaboration\",\n\t\ticon: \"✏️\",\n\t},\n\t{\n\t\tid: \"ai-observability\",\n\t\tname: \"AI Observability\",\n\t\tdescription: \"AI Observability\",\n\t\tlabel: \"AI Observability\",\n\t\ticon: \"🔭\",\n\t},\n\t{\n\t\tid: \"fine-tuning\",\n\t\tname: \"AI Fine-Tuning\",\n\t\tdescription: \"AI Fine-Tuning\",\n\t\tlabel: \"AI Fine-Tuning\",\n\t\ticon: \"🎯\",\n\t},\n];\n"],"mappings":";AA4HA,MAAa,qBAAqC;CACjD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD"}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type {\n\tAddedDependencySchema,\n\tAiProviderSchema,\n\tApiErrorSchema,\n\tBuildContextSchema,\n\tComposeOptionsSchema,\n\tDeploymentTargetSchema,\n\tDeploymentTypeSchema,\n\tDeploySchema,\n\tDeployTargetSchema,\n\tEnvVariableSchema,\n\tErrorSchema,\n\tGenerationInputSchema,\n\tGitSourceSchema,\n\tGsdRuntimeSchema,\n\tHealthCheckSchema,\n\tMaturitySchema,\n\tNativePlatformSchema,\n\tNativeRecipeSchema,\n\tOpenclawImageVariantSchema,\n\tOpenclawInstallMethodSchema,\n\tOutputFormatSchema,\n\tPlatformSchema,\n\tPortMappingSchema,\n\tPresetSchema,\n\tProxyTypeSchema,\n\tResolvedServiceSchema,\n\tResolverOutputSchema,\n\tResourceLimitsSchema,\n\tRestartPolicySchema,\n\tServiceCategorySchema,\n\tServiceDefinitionSchema,\n\tSkillBindingSchema,\n\tSkillPackSchema,\n\tValidateRequestSchema,\n\tValidateResponseSchema,\n\tVolumeMappingSchema,\n\tWarningSchema,\n} from \"./schema.js\";\n\n// ─── Inferred Types ─────────────────────────────────────────────────────────\n\nexport type AiProvider = z.infer<typeof AiProviderSchema>;\nexport type GsdRuntime = z.infer<typeof GsdRuntimeSchema>;\nexport type ServiceCategory = z.infer<typeof ServiceCategorySchema>;\nexport type Maturity = z.infer<typeof MaturitySchema>;\nexport type Platform = z.infer<typeof PlatformSchema>;\nexport type RestartPolicy = z.infer<typeof RestartPolicySchema>;\nexport type ProxyType = z.infer<typeof ProxyTypeSchema>;\nexport type DeploymentTarget = z.infer<typeof DeploymentTargetSchema>;\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\nexport type NativePlatform = z.infer<typeof NativePlatformSchema>;\nexport type NativeRecipe = z.infer<typeof NativeRecipeSchema>;\nexport type GitSource = z.infer<typeof GitSourceSchema>;\nexport type BuildContext = z.infer<typeof BuildContextSchema>;\nexport type OutputFormat = z.infer<typeof OutputFormatSchema>;\nexport type OpenclawImageVariant = z.infer<typeof OpenclawImageVariantSchema>;\nexport type OpenclawInstallMethod = z.infer<typeof OpenclawInstallMethodSchema>;\nexport type DeployTarget = z.infer<typeof DeployTargetSchema>;\n\nexport type PortMapping = z.infer<typeof PortMappingSchema>;\nexport type VolumeMapping = z.infer<typeof VolumeMappingSchema>;\nexport type EnvVariable = z.infer<typeof EnvVariableSchema>;\nexport type HealthCheck = z.infer<typeof HealthCheckSchema>;\nexport type ResourceLimits = z.infer<typeof ResourceLimitsSchema>;\nexport type Deploy = z.infer<typeof DeploySchema>;\nexport type SkillBinding = z.infer<typeof SkillBindingSchema>;\n\nexport type ServiceDefinition = z.infer<typeof ServiceDefinitionSchema>;\nexport type SkillPack = z.infer<typeof SkillPackSchema>;\nexport type Preset = z.infer<typeof PresetSchema>;\n\nexport type GenerationInput = z.infer<typeof GenerationInputSchema>;\nexport type ComposeOptions = z.infer<typeof ComposeOptionsSchema> & {\n\t/** Dynamic Traefik labels per service, computed by the Traefik generator. */\n\ttraefikLabels?: Map<string, Record<string, string>>;\n};\nexport type ResolvedService = z.infer<typeof ResolvedServiceSchema>;\nexport type AddedDependency = z.infer<typeof AddedDependencySchema>;\nexport type Warning = z.infer<typeof WarningSchema>;\nexport type ResolverError = z.infer<typeof ErrorSchema>;\nexport type ResolverOutput = z.infer<typeof ResolverOutputSchema>;\n\nexport type ValidateRequest = z.infer<typeof ValidateRequestSchema>;\nexport type ValidateResponse = z.infer<typeof ValidateResponseSchema>;\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n\n// ─── Additional Types ───────────────────────────────────────────────────────\n\nexport interface ResolverInput {\n\tservices: string[];\n\tskillPacks: string[];\n\taiProviders?: AiProvider[];\n\tgsdRuntimes?: GsdRuntime[];\n\tproxy?: ProxyType;\n\tgpu?: boolean;\n\tplatform?: Platform;\n\tdeployment?: DeploymentType;\n\tdeploymentType?: DeploymentType;\n\tmonitoring?: boolean;\n\tmemoryThresholds?: { info: number; warning: number; critical: number };\n}\n\nexport interface GeneratedFiles {\n\t[path: string]: string;\n}\n\nexport interface GenerationMetadata {\n\tserviceCount: number;\n\tskillCount: number;\n\testimatedMemoryMB: number;\n\tresolvedServices: string[];\n\tgeneratedAt: string;\n}\n\nexport interface GenerationResult {\n\tfiles: GeneratedFiles;\n\tmetadata: GenerationMetadata;\n}\n\nexport interface CategoryInfo {\n\tid: ServiceCategory;\n\tname: string;\n\tdescription?: string;\n\tlabel?: string;\n\ticon: string;\n}\n\nexport const SERVICE_CATEGORIES: CategoryInfo[] = [\n\t{\n\t\tid: \"coding-agent\",\n\t\tname: \"AI Coding Agents\",\n\t\tdescription: \"AI Coding Agents\",\n\t\tlabel: \"AI Coding Agents\",\n\t\ticon: \"💻\",\n\t},\n\t{\n\t\tid: \"ai-platform\",\n\t\tname: \"AI Platforms & Chat UIs\",\n\t\tdescription: \"AI Platforms & Chat UIs\",\n\t\tlabel: \"AI Platforms & Chat UIs\",\n\t\ticon: \"🧪\",\n\t},\n\t{\n\t\tid: \"ai\",\n\t\tname: \"AI / Local Models\",\n\t\tdescription: \"AI / Local Models\",\n\t\tlabel: \"AI / Local Models\",\n\t\ticon: \"🤖\",\n\t},\n\t{\n\t\tid: \"automation\",\n\t\tname: \"Automation & Workflows\",\n\t\tdescription: \"Automation & Workflows\",\n\t\tlabel: \"Automation & Workflows\",\n\t\ticon: \"🔄\",\n\t},\n\t{\n\t\tid: \"vector-db\",\n\t\tname: \"Vector Databases\",\n\t\tdescription: \"Vector Databases\",\n\t\tlabel: \"Vector Databases\",\n\t\ticon: \"🧠\",\n\t},\n\t{\n\t\tid: \"media\",\n\t\tname: \"Media & Video\",\n\t\tdescription: \"Media & Video\",\n\t\tlabel: \"Media & Video\",\n\t\ticon: \"🎬\",\n\t},\n\t{\n\t\tid: \"social-media\",\n\t\tname: \"Social Media\",\n\t\tdescription: \"Social Media\",\n\t\tlabel: \"Social Media\",\n\t\ticon: \"📱\",\n\t},\n\t{\n\t\tid: \"analytics\",\n\t\tname: \"Analytics\",\n\t\tdescription: \"Analytics\",\n\t\tlabel: \"Analytics\",\n\t\ticon: \"📊\",\n\t},\n\t{\n\t\tid: \"knowledge\",\n\t\tname: \"Knowledge & Documents\",\n\t\tdescription: \"Knowledge & Documents\",\n\t\tlabel: \"Knowledge & Documents\",\n\t\ticon: \"📚\",\n\t},\n\t{\n\t\tid: \"storage\",\n\t\tname: \"Object Storage\",\n\t\tdescription: \"Object Storage\",\n\t\tlabel: \"Object Storage\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"database\",\n\t\tname: \"Databases & Caching\",\n\t\tdescription: \"Databases & Caching\",\n\t\tlabel: \"Databases & Caching\",\n\t\ticon: \"🗄️\",\n\t},\n\t{\n\t\tid: \"dev-tools\",\n\t\tname: \"Developer Tools\",\n\t\tdescription: \"Developer Tools\",\n\t\tlabel: \"Developer Tools\",\n\t\ticon: \"🛠️\",\n\t},\n\t{\n\t\tid: \"proxy\",\n\t\tname: \"Reverse Proxy\",\n\t\tdescription: \"Reverse Proxy\",\n\t\tlabel: \"Reverse Proxy\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"monitoring\",\n\t\tname: \"Monitoring\",\n\t\tdescription: \"Monitoring\",\n\t\tlabel: \"Monitoring\",\n\t\ticon: \"📡\",\n\t},\n\t{\n\t\tid: \"browser\",\n\t\tname: \"Browser Automation\",\n\t\tdescription: \"Browser Automation\",\n\t\tlabel: \"Browser Automation\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"search\",\n\t\tname: \"Search\",\n\t\tdescription: \"Search\",\n\t\tlabel: \"Search\",\n\t\ticon: \"🔍\",\n\t},\n\t{\n\t\tid: \"communication\",\n\t\tname: \"Notifications\",\n\t\tdescription: \"Notifications\",\n\t\tlabel: \"Notifications\",\n\t\ticon: \"🔔\",\n\t},\n\t{\n\t\tid: \"desktop\",\n\t\tname: \"Desktop Environment\",\n\t\tdescription: \"Desktop Environment\",\n\t\tlabel: \"Desktop Environment\",\n\t\ticon: \"🖥️\",\n\t},\n\t{\n\t\tid: \"streaming\",\n\t\tname: \"Streaming & Relay\",\n\t\tdescription: \"Streaming & Relay\",\n\t\tlabel: \"Streaming & Relay\",\n\t\ticon: \"📺\",\n\t},\n\t{\n\t\tid: \"security\",\n\t\tname: \"Security & Pentesting\",\n\t\tdescription: \"Security & Pentesting\",\n\t\tlabel: \"Security & Pentesting\",\n\t\ticon: \"🛡️\",\n\t},\n\t{\n\t\tid: \"billing\",\n\t\tname: \"Billing & Payments\",\n\t\tdescription: \"Billing & Payments\",\n\t\tlabel: \"Billing & Payments\",\n\t\ticon: \"💳\",\n\t},\n\t{\n\t\tid: \"crm\",\n\t\tname: \"CRM & Customer Management\",\n\t\tdescription: \"CRM & Customer Management\",\n\t\tlabel: \"CRM & Customer Management\",\n\t\ticon: \"🤝\",\n\t},\n\t{\n\t\tid: \"email-marketing\",\n\t\tname: \"Email & Marketing\",\n\t\tdescription: \"Email & Marketing\",\n\t\tlabel: \"Email & Marketing\",\n\t\ticon: \"📧\",\n\t},\n\t{\n\t\tid: \"forms\",\n\t\tname: \"Forms & Surveys\",\n\t\tdescription: \"Forms & Surveys\",\n\t\tlabel: \"Forms & Surveys\",\n\t\ticon: \"📋\",\n\t},\n\t{\n\t\tid: \"api-gateway\",\n\t\tname: \"API Management\",\n\t\tdescription: \"API Management\",\n\t\tlabel: \"API Management\",\n\t\ticon: \"🔌\",\n\t},\n\t{\n\t\tid: \"backup\",\n\t\tname: \"Backup & Recovery\",\n\t\tdescription: \"Backup & Recovery\",\n\t\tlabel: \"Backup & Recovery\",\n\t\ticon: \"💾\",\n\t},\n\t{\n\t\tid: \"voice\",\n\t\tname: \"Voice & Telephony\",\n\t\tdescription: \"Voice & Telephony\",\n\t\tlabel: \"Voice & Telephony\",\n\t\ticon: \"📞\",\n\t},\n\t{\n\t\tid: \"ecommerce\",\n\t\tname: \"E-Commerce\",\n\t\tdescription: \"E-Commerce\",\n\t\tlabel: \"E-Commerce\",\n\t\ticon: \"🛒\",\n\t},\n\t{\n\t\tid: \"collaboration\",\n\t\tname: \"Real-Time Collaboration\",\n\t\tdescription: \"Real-Time Collaboration\",\n\t\tlabel: \"Real-Time Collaboration\",\n\t\ticon: \"✏️\",\n\t},\n\t{\n\t\tid: \"ai-observability\",\n\t\tname: \"AI Observability\",\n\t\tdescription: \"AI Observability\",\n\t\tlabel: \"AI Observability\",\n\t\ticon: \"🔭\",\n\t},\n\t{\n\t\tid: \"fine-tuning\",\n\t\tname: \"AI Fine-Tuning\",\n\t\tdescription: \"AI Fine-Tuning\",\n\t\tlabel: \"AI Fine-Tuning\",\n\t\ticon: \"🎯\",\n\t},\n\t{\n\t\tid: \"project-management\",\n\t\tname: \"Project Management\",\n\t\tdescription: \"Project Management\",\n\t\tlabel: \"Project Management\",\n\t\ticon: \"📋\",\n\t},\n\t{\n\t\tid: \"business-intelligence\",\n\t\tname: \"Business Intelligence\",\n\t\tdescription: \"Business Intelligence\",\n\t\tlabel: \"Business Intelligence\",\n\t\ticon: \"📈\",\n\t},\n\t{\n\t\tid: \"dns-networking\",\n\t\tname: \"DNS & Networking\",\n\t\tdescription: \"DNS & Networking\",\n\t\tlabel: \"DNS & Networking\",\n\t\ticon: \"🌐\",\n\t},\n\t{\n\t\tid: \"iot\",\n\t\tname: \"IoT & Edge\",\n\t\tdescription: \"IoT & Edge\",\n\t\tlabel: \"IoT & Edge\",\n\t\ticon: \"📡\",\n\t},\n\t{\n\t\tid: \"saas-boilerplate\",\n\t\tname: \"SaaS Boilerplates\",\n\t\tdescription: \"Full-stack SaaS starter kits and boilerplates\",\n\t\tlabel: \"SaaS Boilerplates\",\n\t\ticon: \"🚀\",\n\t},\n];\n"],"mappings":";AAiIA,MAAa,qBAAqC;CACjD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,MAAM;EACN;CACD"}
@@ -1,4 +1,4 @@
1
- const require_vi_2VT5v0um = require("./vi.2VT5v0um-CRqXre87.cjs");
1
+ const require_vi_2VT5v0um = require("./vi.2VT5v0um-iVBt6Fyq.cjs");
2
2
  const require_resolver = require("./resolver.cjs");
3
3
  const require_composer = require("./composer.cjs");
4
4
  const require_validator = require("./validator.cjs");
@@ -1,4 +1,4 @@
1
- import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-DvC3SVNc.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-C_jmO7m2.mjs";
2
2
  import { resolve } from "./resolver.mjs";
3
3
  import { compose } from "./composer.mjs";
4
4
  import { validate } from "./validator.mjs";
@@ -8,7 +8,7 @@ function getImageTag(serviceId) {
8
8
  /** Get the full image reference (image:tag) for a service */
9
9
  function getImageReference(serviceId) {
10
10
  const svc = require_services_registry.getServiceById(serviceId);
11
- if (!svc) return void 0;
11
+ if (!svc || !svc.image || !svc.imageTag) return void 0;
12
12
  return `${svc.image}:${svc.imageTag}`;
13
13
  }
14
14
  /** Pin all service image tags to the registry-defined versions (returns a copy) */
@@ -1 +1 @@
1
- {"version":3,"file":"version-manager.cjs","names":["getServiceById"],"sources":["../src/version-manager.ts"],"sourcesContent":["import { getServiceById } from \"./services/registry.js\";\nimport type { ResolverOutput, ServiceDefinition, Warning } from \"./types.js\";\n\n/** Get the pinned image tag for a service */\nexport function getImageTag(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\treturn svc?.imageTag;\n}\n\n/** Get the full image reference (image:tag) for a service */\nexport function getImageReference(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\tif (!svc) return undefined;\n\treturn `${svc.image}:${svc.imageTag}`;\n}\n\n/** Pin all service image tags to the registry-defined versions (returns a copy) */\nexport function pinImageTags(resolved: ResolverOutput): ResolverOutput {\n\treturn {\n\t\t...resolved,\n\t\tservices: resolved.services.map((s) => {\n\t\t\tconst registryDef = getServiceById(s.definition.id);\n\t\t\tconst pinnedTag = registryDef?.imageTag ?? s.definition.imageTag;\n\t\t\treturn {\n\t\t\t\t...s,\n\t\t\t\tdefinition: {\n\t\t\t\t\t...s.definition,\n\t\t\t\t\timageTag: pinnedTag,\n\t\t\t\t},\n\t\t\t};\n\t\t}),\n\t};\n}\n\n/** Check for known compatibility issues between services */\nexport function checkCompatibility(services: ServiceDefinition[]): Warning[] {\n\tconst warnings: Warning[] = [];\n\tconst ids = new Set(services.map((s) => s.id));\n\n\t// Redis + Valkey conflict (should already be caught by resolver, but double-check)\n\tif (ids.has(\"redis\") && ids.has(\"valkey\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Redis and Valkey cannot coexist. Choose one.\",\n\t\t});\n\t}\n\t// Caddy + Traefik conflict\n\tif (ids.has(\"caddy\") && ids.has(\"traefik\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Caddy and Traefik cannot coexist. Choose one reverse proxy.\",\n\t\t});\n\t}\n\t// Multiple vector DBs warning\n\tconst vectorDbs = [\"qdrant\", \"chromadb\", \"weaviate\"].filter((id) => ids.has(id));\n\tif (vectorDbs.length > 1) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Multiple vector databases selected (${vectorDbs.join(\", \")}). Consider using just one to reduce resource usage.`,\n\t\t});\n\t}\n\t// GPU services without GPU\n\tconst gpuServices = services.filter((s) => s.gpuRequired);\n\tif (gpuServices.length > 0) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Services requiring GPU: ${gpuServices.map((s) => s.name).join(\", \")}. Ensure NVIDIA Container Toolkit is installed.`,\n\t\t});\n\t}\n\n\treturn warnings;\n}\n"],"mappings":";;;;AAIA,SAAgB,YAAY,WAAuC;AAElE,QADYA,0BAAAA,eAAe,UAAU,EACzB;;;AAIb,SAAgB,kBAAkB,WAAuC;CACxE,MAAM,MAAMA,0BAAAA,eAAe,UAAU;AACrC,KAAI,CAAC,IAAK,QAAO,KAAA;AACjB,QAAO,GAAG,IAAI,MAAM,GAAG,IAAI;;;AAI5B,SAAgB,aAAa,UAA0C;AACtE,QAAO;EACN,GAAG;EACH,UAAU,SAAS,SAAS,KAAK,MAAM;GAEtC,MAAM,YADcA,0BAAAA,eAAe,EAAE,WAAW,GAAG,EACpB,YAAY,EAAE,WAAW;AACxD,UAAO;IACN,GAAG;IACH,YAAY;KACX,GAAG,EAAE;KACL,UAAU;KACV;IACD;IACA;EACF;;;AAIF,SAAgB,mBAAmB,UAA0C;CAC5E,MAAM,WAAsB,EAAE;CAC9B,MAAM,MAAM,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE,GAAG,CAAC;AAG9C,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,CACxC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;AAGH,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CACzC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;CAGH,MAAM,YAAY;EAAC;EAAU;EAAY;EAAW,CAAC,QAAQ,OAAO,IAAI,IAAI,GAAG,CAAC;AAChF,KAAI,UAAU,SAAS,EACtB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,uCAAuC,UAAU,KAAK,KAAK,CAAC;EACrE,CAAC;CAGH,MAAM,cAAc,SAAS,QAAQ,MAAM,EAAE,YAAY;AACzD,KAAI,YAAY,SAAS,EACxB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,2BAA2B,YAAY,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC;EAC9E,CAAC;AAGH,QAAO"}
1
+ {"version":3,"file":"version-manager.cjs","names":["getServiceById"],"sources":["../src/version-manager.ts"],"sourcesContent":["import { getServiceById } from \"./services/registry.js\";\nimport type { ResolverOutput, ServiceDefinition, Warning } from \"./types.js\";\n\n/** Get the pinned image tag for a service */\nexport function getImageTag(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\treturn svc?.imageTag;\n}\n\n/** Get the full image reference (image:tag) for a service */\nexport function getImageReference(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\tif (!svc || !svc.image || !svc.imageTag) return undefined;\n\treturn `${svc.image}:${svc.imageTag}`;\n}\n\n/** Pin all service image tags to the registry-defined versions (returns a copy) */\nexport function pinImageTags(resolved: ResolverOutput): ResolverOutput {\n\treturn {\n\t\t...resolved,\n\t\tservices: resolved.services.map((s) => {\n\t\t\tconst registryDef = getServiceById(s.definition.id);\n\t\t\tconst pinnedTag = registryDef?.imageTag ?? s.definition.imageTag;\n\t\t\treturn {\n\t\t\t\t...s,\n\t\t\t\tdefinition: {\n\t\t\t\t\t...s.definition,\n\t\t\t\t\timageTag: pinnedTag,\n\t\t\t\t},\n\t\t\t};\n\t\t}),\n\t};\n}\n\n/** Check for known compatibility issues between services */\nexport function checkCompatibility(services: ServiceDefinition[]): Warning[] {\n\tconst warnings: Warning[] = [];\n\tconst ids = new Set(services.map((s) => s.id));\n\n\t// Redis + Valkey conflict (should already be caught by resolver, but double-check)\n\tif (ids.has(\"redis\") && ids.has(\"valkey\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Redis and Valkey cannot coexist. Choose one.\",\n\t\t});\n\t}\n\t// Caddy + Traefik conflict\n\tif (ids.has(\"caddy\") && ids.has(\"traefik\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Caddy and Traefik cannot coexist. Choose one reverse proxy.\",\n\t\t});\n\t}\n\t// Multiple vector DBs warning\n\tconst vectorDbs = [\"qdrant\", \"chromadb\", \"weaviate\"].filter((id) => ids.has(id));\n\tif (vectorDbs.length > 1) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Multiple vector databases selected (${vectorDbs.join(\", \")}). Consider using just one to reduce resource usage.`,\n\t\t});\n\t}\n\t// GPU services without GPU\n\tconst gpuServices = services.filter((s) => s.gpuRequired);\n\tif (gpuServices.length > 0) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Services requiring GPU: ${gpuServices.map((s) => s.name).join(\", \")}. Ensure NVIDIA Container Toolkit is installed.`,\n\t\t});\n\t}\n\n\treturn warnings;\n}\n"],"mappings":";;;;AAIA,SAAgB,YAAY,WAAuC;AAElE,QADYA,0BAAAA,eAAe,UAAU,EACzB;;;AAIb,SAAgB,kBAAkB,WAAuC;CACxE,MAAM,MAAMA,0BAAAA,eAAe,UAAU;AACrC,KAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,SAAU,QAAO,KAAA;AAChD,QAAO,GAAG,IAAI,MAAM,GAAG,IAAI;;;AAI5B,SAAgB,aAAa,UAA0C;AACtE,QAAO;EACN,GAAG;EACH,UAAU,SAAS,SAAS,KAAK,MAAM;GAEtC,MAAM,YADcA,0BAAAA,eAAe,EAAE,WAAW,GAAG,EACpB,YAAY,EAAE,WAAW;AACxD,UAAO;IACN,GAAG;IACH,YAAY;KACX,GAAG,EAAE;KACL,UAAU;KACV;IACD;IACA;EACF;;;AAIF,SAAgB,mBAAmB,UAA0C;CAC5E,MAAM,WAAsB,EAAE;CAC9B,MAAM,MAAM,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE,GAAG,CAAC;AAG9C,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,CACxC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;AAGH,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CACzC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;CAGH,MAAM,YAAY;EAAC;EAAU;EAAY;EAAW,CAAC,QAAQ,OAAO,IAAI,IAAI,GAAG,CAAC;AAChF,KAAI,UAAU,SAAS,EACtB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,uCAAuC,UAAU,KAAK,KAAK,CAAC;EACrE,CAAC;CAGH,MAAM,cAAc,SAAS,QAAQ,MAAM,EAAE,YAAY;AACzD,KAAI,YAAY,SAAS,EACxB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,2BAA2B,YAAY,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC;EAC9E,CAAC;AAGH,QAAO"}
@@ -7,7 +7,7 @@ function getImageTag(serviceId) {
7
7
  /** Get the full image reference (image:tag) for a service */
8
8
  function getImageReference(serviceId) {
9
9
  const svc = getServiceById(serviceId);
10
- if (!svc) return void 0;
10
+ if (!svc || !svc.image || !svc.imageTag) return void 0;
11
11
  return `${svc.image}:${svc.imageTag}`;
12
12
  }
13
13
  /** Pin all service image tags to the registry-defined versions (returns a copy) */
@@ -1 +1 @@
1
- {"version":3,"file":"version-manager.mjs","names":[],"sources":["../src/version-manager.ts"],"sourcesContent":["import { getServiceById } from \"./services/registry.js\";\nimport type { ResolverOutput, ServiceDefinition, Warning } from \"./types.js\";\n\n/** Get the pinned image tag for a service */\nexport function getImageTag(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\treturn svc?.imageTag;\n}\n\n/** Get the full image reference (image:tag) for a service */\nexport function getImageReference(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\tif (!svc) return undefined;\n\treturn `${svc.image}:${svc.imageTag}`;\n}\n\n/** Pin all service image tags to the registry-defined versions (returns a copy) */\nexport function pinImageTags(resolved: ResolverOutput): ResolverOutput {\n\treturn {\n\t\t...resolved,\n\t\tservices: resolved.services.map((s) => {\n\t\t\tconst registryDef = getServiceById(s.definition.id);\n\t\t\tconst pinnedTag = registryDef?.imageTag ?? s.definition.imageTag;\n\t\t\treturn {\n\t\t\t\t...s,\n\t\t\t\tdefinition: {\n\t\t\t\t\t...s.definition,\n\t\t\t\t\timageTag: pinnedTag,\n\t\t\t\t},\n\t\t\t};\n\t\t}),\n\t};\n}\n\n/** Check for known compatibility issues between services */\nexport function checkCompatibility(services: ServiceDefinition[]): Warning[] {\n\tconst warnings: Warning[] = [];\n\tconst ids = new Set(services.map((s) => s.id));\n\n\t// Redis + Valkey conflict (should already be caught by resolver, but double-check)\n\tif (ids.has(\"redis\") && ids.has(\"valkey\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Redis and Valkey cannot coexist. Choose one.\",\n\t\t});\n\t}\n\t// Caddy + Traefik conflict\n\tif (ids.has(\"caddy\") && ids.has(\"traefik\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Caddy and Traefik cannot coexist. Choose one reverse proxy.\",\n\t\t});\n\t}\n\t// Multiple vector DBs warning\n\tconst vectorDbs = [\"qdrant\", \"chromadb\", \"weaviate\"].filter((id) => ids.has(id));\n\tif (vectorDbs.length > 1) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Multiple vector databases selected (${vectorDbs.join(\", \")}). Consider using just one to reduce resource usage.`,\n\t\t});\n\t}\n\t// GPU services without GPU\n\tconst gpuServices = services.filter((s) => s.gpuRequired);\n\tif (gpuServices.length > 0) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Services requiring GPU: ${gpuServices.map((s) => s.name).join(\", \")}. Ensure NVIDIA Container Toolkit is installed.`,\n\t\t});\n\t}\n\n\treturn warnings;\n}\n"],"mappings":";;;AAIA,SAAgB,YAAY,WAAuC;AAElE,QADY,eAAe,UAAU,EACzB;;;AAIb,SAAgB,kBAAkB,WAAuC;CACxE,MAAM,MAAM,eAAe,UAAU;AACrC,KAAI,CAAC,IAAK,QAAO,KAAA;AACjB,QAAO,GAAG,IAAI,MAAM,GAAG,IAAI;;;AAI5B,SAAgB,aAAa,UAA0C;AACtE,QAAO;EACN,GAAG;EACH,UAAU,SAAS,SAAS,KAAK,MAAM;GAEtC,MAAM,YADc,eAAe,EAAE,WAAW,GAAG,EACpB,YAAY,EAAE,WAAW;AACxD,UAAO;IACN,GAAG;IACH,YAAY;KACX,GAAG,EAAE;KACL,UAAU;KACV;IACD;IACA;EACF;;;AAIF,SAAgB,mBAAmB,UAA0C;CAC5E,MAAM,WAAsB,EAAE;CAC9B,MAAM,MAAM,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE,GAAG,CAAC;AAG9C,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,CACxC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;AAGH,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CACzC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;CAGH,MAAM,YAAY;EAAC;EAAU;EAAY;EAAW,CAAC,QAAQ,OAAO,IAAI,IAAI,GAAG,CAAC;AAChF,KAAI,UAAU,SAAS,EACtB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,uCAAuC,UAAU,KAAK,KAAK,CAAC;EACrE,CAAC;CAGH,MAAM,cAAc,SAAS,QAAQ,MAAM,EAAE,YAAY;AACzD,KAAI,YAAY,SAAS,EACxB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,2BAA2B,YAAY,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC;EAC9E,CAAC;AAGH,QAAO"}
1
+ {"version":3,"file":"version-manager.mjs","names":[],"sources":["../src/version-manager.ts"],"sourcesContent":["import { getServiceById } from \"./services/registry.js\";\nimport type { ResolverOutput, ServiceDefinition, Warning } from \"./types.js\";\n\n/** Get the pinned image tag for a service */\nexport function getImageTag(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\treturn svc?.imageTag;\n}\n\n/** Get the full image reference (image:tag) for a service */\nexport function getImageReference(serviceId: string): string | undefined {\n\tconst svc = getServiceById(serviceId);\n\tif (!svc || !svc.image || !svc.imageTag) return undefined;\n\treturn `${svc.image}:${svc.imageTag}`;\n}\n\n/** Pin all service image tags to the registry-defined versions (returns a copy) */\nexport function pinImageTags(resolved: ResolverOutput): ResolverOutput {\n\treturn {\n\t\t...resolved,\n\t\tservices: resolved.services.map((s) => {\n\t\t\tconst registryDef = getServiceById(s.definition.id);\n\t\t\tconst pinnedTag = registryDef?.imageTag ?? s.definition.imageTag;\n\t\t\treturn {\n\t\t\t\t...s,\n\t\t\t\tdefinition: {\n\t\t\t\t\t...s.definition,\n\t\t\t\t\timageTag: pinnedTag,\n\t\t\t\t},\n\t\t\t};\n\t\t}),\n\t};\n}\n\n/** Check for known compatibility issues between services */\nexport function checkCompatibility(services: ServiceDefinition[]): Warning[] {\n\tconst warnings: Warning[] = [];\n\tconst ids = new Set(services.map((s) => s.id));\n\n\t// Redis + Valkey conflict (should already be caught by resolver, but double-check)\n\tif (ids.has(\"redis\") && ids.has(\"valkey\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Redis and Valkey cannot coexist. Choose one.\",\n\t\t});\n\t}\n\t// Caddy + Traefik conflict\n\tif (ids.has(\"caddy\") && ids.has(\"traefik\")) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: \"Caddy and Traefik cannot coexist. Choose one reverse proxy.\",\n\t\t});\n\t}\n\t// Multiple vector DBs warning\n\tconst vectorDbs = [\"qdrant\", \"chromadb\", \"weaviate\"].filter((id) => ids.has(id));\n\tif (vectorDbs.length > 1) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Multiple vector databases selected (${vectorDbs.join(\", \")}). Consider using just one to reduce resource usage.`,\n\t\t});\n\t}\n\t// GPU services without GPU\n\tconst gpuServices = services.filter((s) => s.gpuRequired);\n\tif (gpuServices.length > 0) {\n\t\twarnings.push({\n\t\t\ttype: \"compatibility\",\n\t\t\tmessage: `Services requiring GPU: ${gpuServices.map((s) => s.name).join(\", \")}. Ensure NVIDIA Container Toolkit is installed.`,\n\t\t});\n\t}\n\n\treturn warnings;\n}\n"],"mappings":";;;AAIA,SAAgB,YAAY,WAAuC;AAElE,QADY,eAAe,UAAU,EACzB;;;AAIb,SAAgB,kBAAkB,WAAuC;CACxE,MAAM,MAAM,eAAe,UAAU;AACrC,KAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,SAAU,QAAO,KAAA;AAChD,QAAO,GAAG,IAAI,MAAM,GAAG,IAAI;;;AAI5B,SAAgB,aAAa,UAA0C;AACtE,QAAO;EACN,GAAG;EACH,UAAU,SAAS,SAAS,KAAK,MAAM;GAEtC,MAAM,YADc,eAAe,EAAE,WAAW,GAAG,EACpB,YAAY,EAAE,WAAW;AACxD,UAAO;IACN,GAAG;IACH,YAAY;KACX,GAAG,EAAE;KACL,UAAU;KACV;IACD;IACA;EACF;;;AAIF,SAAgB,mBAAmB,UAA0C;CAC5E,MAAM,WAAsB,EAAE;CAC9B,MAAM,MAAM,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE,GAAG,CAAC;AAG9C,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,CACxC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;AAGH,KAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CACzC,UAAS,KAAK;EACb,MAAM;EACN,SAAS;EACT,CAAC;CAGH,MAAM,YAAY;EAAC;EAAU;EAAY;EAAW,CAAC,QAAQ,OAAO,IAAI,IAAI,GAAG,CAAC;AAChF,KAAI,UAAU,SAAS,EACtB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,uCAAuC,UAAU,KAAK,KAAK,CAAC;EACrE,CAAC;CAGH,MAAM,cAAc,SAAS,QAAQ,MAAM,EAAE,YAAY;AACzD,KAAI,YAAY,SAAS,EACxB,UAAS,KAAK;EACb,MAAM;EACN,SAAS,2BAA2B,YAAY,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC;EAC9E,CAAC;AAGH,QAAO"}