@better-openclaw/core 1.0.21 → 1.0.22
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.
- package/dist/bare-metal-partition.cjs +2 -3
- package/dist/bare-metal-partition.cjs.map +1 -1
- package/dist/bare-metal-partition.d.mts.map +1 -1
- package/dist/bare-metal-partition.mjs +1 -1
- package/dist/bare-metal-partition.test.cjs +4 -5
- package/dist/bare-metal-partition.test.cjs.map +1 -1
- package/dist/bare-metal-partition.test.mjs +3 -4
- package/dist/bare-metal-partition.test.mjs.map +1 -1
- package/dist/compose-validation.test.cjs +5 -6
- package/dist/compose-validation.test.cjs.map +1 -1
- package/dist/compose-validation.test.mjs +2 -3
- package/dist/compose-validation.test.mjs.map +1 -1
- package/dist/composer.cjs +4 -5
- package/dist/composer.cjs.map +1 -1
- package/dist/composer.d.mts.map +1 -1
- package/dist/composer.mjs +1 -2
- package/dist/composer.mjs.map +1 -1
- package/dist/composer.snapshot.test.cjs +4 -5
- package/dist/composer.snapshot.test.cjs.map +1 -1
- package/dist/composer.snapshot.test.mjs +3 -4
- package/dist/composer.snapshot.test.mjs.map +1 -1
- package/dist/composer.test.cjs +5 -6
- package/dist/composer.test.cjs.map +1 -1
- package/dist/composer.test.mjs +3 -4
- package/dist/composer.test.mjs.map +1 -1
- package/dist/coolify-BVGGcMrT.d.mts +18 -0
- package/dist/coolify-BVGGcMrT.d.mts.map +1 -0
- package/dist/coolify-vlb1G9V2.d.cts +18 -0
- package/dist/coolify-vlb1G9V2.d.cts.map +1 -0
- package/dist/deployers/coolify.cjs +3 -4
- package/dist/deployers/coolify.cjs.map +1 -1
- package/dist/deployers/coolify.d.cts +2 -18
- package/dist/deployers/coolify.d.mts +2 -18
- package/dist/deployers/coolify.mjs +1 -2
- package/dist/deployers/coolify.mjs.map +1 -1
- package/dist/deployers/dokploy.cjs +3 -4
- package/dist/deployers/dokploy.cjs.map +1 -1
- package/dist/deployers/dokploy.d.cts +2 -25
- package/dist/deployers/dokploy.d.mts +2 -25
- package/dist/deployers/dokploy.mjs +1 -2
- package/dist/deployers/dokploy.mjs.map +1 -1
- package/dist/deployers/index.cjs +4 -5
- package/dist/deployers/index.cjs.map +1 -1
- package/dist/deployers/index.d.cts +3 -3
- package/dist/deployers/index.d.mts +3 -3
- package/dist/deployers/index.mjs +1 -2
- package/dist/deployers/index.mjs.map +1 -1
- package/dist/deployers/strip-host-ports.cjs +3 -4
- package/dist/deployers/strip-host-ports.cjs.map +1 -1
- package/dist/deployers/strip-host-ports.mjs +1 -2
- package/dist/deployers/strip-host-ports.mjs.map +1 -1
- package/dist/deployers/strip-host-ports.test.cjs +3 -4
- package/dist/deployers/strip-host-ports.test.cjs.map +1 -1
- package/dist/deployers/strip-host-ports.test.mjs +3 -4
- package/dist/deployers/strip-host-ports.test.mjs.map +1 -1
- package/dist/deployers/types.d.cts +2 -243
- package/dist/deployers/types.d.mts +2 -243
- package/dist/deployers/types.mjs +1 -1
- package/dist/dokploy-8cbrxUun.d.cts +25 -0
- package/dist/dokploy-8cbrxUun.d.cts.map +1 -0
- package/dist/dokploy-BTflLhTM.d.mts +25 -0
- package/dist/dokploy-BTflLhTM.d.mts.map +1 -0
- package/dist/errors.cjs +2 -3
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.mjs +1 -1
- package/dist/errors.mjs.map +1 -1
- package/dist/generate.cjs +27 -28
- package/dist/generate.cjs.map +1 -1
- package/dist/generate.d.mts.map +1 -1
- package/dist/generate.mjs +1 -2
- package/dist/generate.mjs.map +1 -1
- package/dist/generate.test.cjs +4 -5
- package/dist/generate.test.cjs.map +1 -1
- package/dist/generate.test.mjs +3 -4
- package/dist/generate.test.mjs.map +1 -1
- package/dist/generators/bare-metal-install.cjs +2 -3
- package/dist/generators/bare-metal-install.cjs.map +1 -1
- package/dist/generators/bare-metal-install.d.mts.map +1 -1
- package/dist/generators/bare-metal-install.mjs +1 -1
- package/dist/generators/bare-metal-install.test.cjs +3 -4
- package/dist/generators/bare-metal-install.test.cjs.map +1 -1
- package/dist/generators/bare-metal-install.test.mjs +3 -4
- package/dist/generators/bare-metal-install.test.mjs.map +1 -1
- package/dist/generators/caddy.cjs +2 -3
- package/dist/generators/caddy.cjs.map +1 -1
- package/dist/generators/caddy.d.mts.map +1 -1
- package/dist/generators/caddy.mjs +1 -1
- package/dist/generators/caddy.test.cjs +3 -4
- package/dist/generators/caddy.test.cjs.map +1 -1
- package/dist/generators/caddy.test.mjs +3 -4
- package/dist/generators/caddy.test.mjs.map +1 -1
- package/dist/generators/cloud-init.cjs +2 -3
- package/dist/generators/cloud-init.cjs.map +1 -1
- package/dist/generators/cloud-init.mjs +1 -1
- package/dist/generators/env.cjs +4 -5
- package/dist/generators/env.cjs.map +1 -1
- package/dist/generators/env.d.mts.map +1 -1
- package/dist/generators/env.mjs +1 -2
- package/dist/generators/env.mjs.map +1 -1
- package/dist/generators/env.test.cjs +3 -4
- package/dist/generators/env.test.cjs.map +1 -1
- package/dist/generators/env.test.mjs +3 -4
- package/dist/generators/env.test.mjs.map +1 -1
- package/dist/generators/get-shit-done.cjs +2 -3
- package/dist/generators/get-shit-done.cjs.map +1 -1
- package/dist/generators/get-shit-done.mjs +1 -1
- package/dist/generators/grafana.cjs +2 -3
- package/dist/generators/grafana.cjs.map +1 -1
- package/dist/generators/grafana.mjs +1 -1
- package/dist/generators/health-check.cjs +2 -3
- package/dist/generators/health-check.cjs.map +1 -1
- package/dist/generators/health-check.d.mts.map +1 -1
- package/dist/generators/health-check.mjs +1 -1
- package/dist/generators/health-check.test.cjs +3 -4
- package/dist/generators/health-check.test.cjs.map +1 -1
- package/dist/generators/health-check.test.mjs +3 -4
- package/dist/generators/health-check.test.mjs.map +1 -1
- package/dist/generators/n8n-workflows.cjs +2 -3
- package/dist/generators/n8n-workflows.cjs.map +1 -1
- package/dist/generators/n8n-workflows.d.mts.map +1 -1
- package/dist/generators/n8n-workflows.mjs +1 -1
- package/dist/generators/native-services.cjs +2 -3
- package/dist/generators/native-services.cjs.map +1 -1
- package/dist/generators/native-services.mjs +1 -1
- package/dist/generators/openclaw-install-script.cjs +2 -3
- package/dist/generators/openclaw-install-script.cjs.map +1 -1
- package/dist/generators/openclaw-install-script.mjs +1 -1
- package/dist/generators/openclaw-json.cjs +2 -3
- package/dist/generators/openclaw-json.cjs.map +1 -1
- package/dist/generators/openclaw-json.mjs +1 -1
- package/dist/generators/postgres-init.cjs +32 -3
- package/dist/generators/postgres-init.cjs.map +1 -1
- package/dist/generators/postgres-init.d.cts.map +1 -1
- package/dist/generators/postgres-init.d.mts.map +1 -1
- package/dist/generators/postgres-init.mjs +31 -1
- package/dist/generators/postgres-init.mjs.map +1 -1
- package/dist/generators/prometheus.cjs +2 -3
- package/dist/generators/prometheus.cjs.map +1 -1
- package/dist/generators/prometheus.d.mts.map +1 -1
- package/dist/generators/prometheus.mjs +1 -1
- package/dist/generators/readme.cjs +2 -3
- package/dist/generators/readme.cjs.map +1 -1
- package/dist/generators/readme.d.mts.map +1 -1
- package/dist/generators/readme.mjs +1 -1
- package/dist/generators/scripts.cjs +2 -3
- package/dist/generators/scripts.cjs.map +1 -1
- package/dist/generators/scripts.mjs +1 -1
- package/dist/generators/scripts.test.cjs +3 -4
- package/dist/generators/scripts.test.cjs.map +1 -1
- package/dist/generators/scripts.test.mjs +3 -4
- package/dist/generators/scripts.test.mjs.map +1 -1
- package/dist/generators/skills.cjs +3 -590
- package/dist/generators/skills.d.mts.map +1 -1
- package/dist/generators/skills.mjs +1 -2
- package/dist/generators/skills.mjs.map +1 -1
- package/dist/generators/stack-manifest.cjs +2 -3
- package/dist/generators/stack-manifest.cjs.map +1 -1
- package/dist/generators/stack-manifest.mjs +1 -1
- package/dist/generators/traefik.cjs +2 -3
- package/dist/generators/traefik.cjs.map +1 -1
- package/dist/generators/traefik.mjs +1 -1
- package/dist/generators/traefik.test.cjs +4 -5
- package/dist/generators/traefik.test.cjs.map +1 -1
- package/dist/generators/traefik.test.mjs +3 -4
- package/dist/generators/traefik.test.mjs.map +1 -1
- package/dist/index.cjs +35 -36
- package/dist/index.d.cts +4 -4
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +2 -3
- package/dist/{magic-string.es-D2agHT3I.cjs → magic-string.es-CJq41xdM.cjs} +2 -4
- package/dist/{magic-string.es-CfFonO_S.mjs.map → magic-string.es-CJq41xdM.cjs.map} +1 -1
- package/dist/{magic-string.es-CfFonO_S.mjs → magic-string.es-CoDyF8pj.mjs} +2 -3
- package/dist/{magic-string.es-D2agHT3I.cjs.map → magic-string.es-CoDyF8pj.mjs.map} +1 -1
- package/dist/migrations.cjs +5 -6
- package/dist/migrations.cjs.map +1 -1
- package/dist/migrations.mjs +4 -4
- package/dist/migrations.mjs.map +1 -1
- package/dist/migrations.test.cjs +6 -7
- package/dist/migrations.test.cjs.map +1 -1
- package/dist/migrations.test.mjs +7 -8
- package/dist/migrations.test.mjs.map +1 -1
- package/dist/port-scanner.cjs +2 -3
- package/dist/port-scanner.cjs.map +1 -1
- package/dist/port-scanner.d.mts.map +1 -1
- package/dist/port-scanner.mjs +1 -1
- package/dist/presets/presets.test.cjs +11 -8
- package/dist/presets/presets.test.cjs.map +1 -1
- package/dist/presets/presets.test.mjs +7 -4
- package/dist/presets/presets.test.mjs.map +1 -1
- package/dist/presets/registry.cjs +152 -3
- package/dist/presets/registry.cjs.map +1 -1
- package/dist/presets/registry.d.cts.map +1 -1
- package/dist/presets/registry.d.mts.map +1 -1
- package/dist/presets/registry.mjs +151 -1
- package/dist/presets/registry.mjs.map +1 -1
- package/dist/presets/registry.test.cjs +3 -4
- package/dist/presets/registry.test.cjs.map +1 -1
- package/dist/presets/registry.test.mjs +3 -4
- package/dist/presets/registry.test.mjs.map +1 -1
- package/dist/resolver.cjs +4 -5
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.d.mts.map +1 -1
- package/dist/resolver.mjs +1 -2
- package/dist/resolver.mjs.map +1 -1
- package/dist/resolver.test.cjs +3 -4
- package/dist/resolver.test.cjs.map +1 -1
- package/dist/resolver.test.mjs +3 -4
- package/dist/resolver.test.mjs.map +1 -1
- package/dist/schema-C_hc7e4k.d.cts +898 -0
- package/dist/schema-C_hc7e4k.d.cts.map +1 -0
- package/dist/schema-CaesJaS2.d.mts +898 -0
- package/dist/schema-CaesJaS2.d.mts.map +1 -0
- package/dist/schema.cjs +15 -5
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +2 -854
- package/dist/schema.d.mts +2 -854
- package/dist/schema.mjs +13 -3
- package/dist/schema.mjs.map +1 -1
- package/dist/schema.test.cjs +3 -4
- package/dist/schema.test.cjs.map +1 -1
- package/dist/schema.test.mjs +3 -4
- package/dist/schema.test.mjs.map +1 -1
- package/dist/services/definitions/airbyte.cjs +76 -0
- package/dist/services/definitions/airbyte.cjs.map +1 -0
- package/dist/services/definitions/airbyte.d.cts +7 -0
- package/dist/services/definitions/airbyte.d.cts.map +1 -0
- package/dist/services/definitions/airbyte.d.mts +7 -0
- package/dist/services/definitions/airbyte.d.mts.map +1 -0
- package/dist/services/definitions/airbyte.mjs +75 -0
- package/dist/services/definitions/airbyte.mjs.map +1 -0
- package/dist/services/definitions/airflow.cjs +109 -0
- package/dist/services/definitions/airflow.cjs.map +1 -0
- package/dist/services/definitions/airflow.d.cts +7 -0
- package/dist/services/definitions/airflow.d.cts.map +1 -0
- package/dist/services/definitions/airflow.d.mts +7 -0
- package/dist/services/definitions/airflow.d.mts.map +1 -0
- package/dist/services/definitions/airflow.mjs +108 -0
- package/dist/services/definitions/airflow.mjs.map +1 -0
- package/dist/services/definitions/anything-llm.cjs +2 -3
- package/dist/services/definitions/anything-llm.cjs.map +1 -1
- package/dist/services/definitions/anything-llm.mjs +1 -1
- package/dist/services/definitions/appflowy.cjs +2 -3
- package/dist/services/definitions/appflowy.cjs.map +1 -1
- package/dist/services/definitions/appflowy.mjs +1 -1
- package/dist/services/definitions/appwrite.cjs +190 -0
- package/dist/services/definitions/appwrite.cjs.map +1 -0
- package/dist/services/definitions/appwrite.d.cts +7 -0
- package/dist/services/definitions/appwrite.d.cts.map +1 -0
- package/dist/services/definitions/appwrite.d.mts +7 -0
- package/dist/services/definitions/appwrite.d.mts.map +1 -0
- package/dist/services/definitions/appwrite.mjs +189 -0
- package/dist/services/definitions/appwrite.mjs.map +1 -0
- package/dist/services/definitions/authelia.cjs +145 -0
- package/dist/services/definitions/authelia.cjs.map +1 -0
- package/dist/services/definitions/authelia.d.cts +7 -0
- package/dist/services/definitions/authelia.d.cts.map +1 -0
- package/dist/services/definitions/authelia.d.mts +7 -0
- package/dist/services/definitions/authelia.d.mts.map +1 -0
- package/dist/services/definitions/authelia.mjs +144 -0
- package/dist/services/definitions/authelia.mjs.map +1 -0
- package/dist/services/definitions/authentik.cjs +2 -3
- package/dist/services/definitions/authentik.cjs.map +1 -1
- package/dist/services/definitions/authentik.mjs +1 -1
- package/dist/services/definitions/axolotl.cjs +67 -0
- package/dist/services/definitions/axolotl.cjs.map +1 -0
- package/dist/services/definitions/axolotl.d.cts +7 -0
- package/dist/services/definitions/axolotl.d.cts.map +1 -0
- package/dist/services/definitions/axolotl.d.mts +7 -0
- package/dist/services/definitions/axolotl.d.mts.map +1 -0
- package/dist/services/definitions/axolotl.mjs +66 -0
- package/dist/services/definitions/axolotl.mjs.map +1 -0
- package/dist/services/definitions/beszel.cjs +2 -3
- package/dist/services/definitions/beszel.cjs.map +1 -1
- package/dist/services/definitions/beszel.mjs +1 -1
- package/dist/services/definitions/browserless.cjs +2 -3
- package/dist/services/definitions/browserless.cjs.map +1 -1
- package/dist/services/definitions/browserless.mjs +1 -1
- package/dist/services/definitions/caddy.cjs +2 -3
- package/dist/services/definitions/caddy.cjs.map +1 -1
- package/dist/services/definitions/caddy.mjs +1 -1
- package/dist/services/definitions/cal-com.cjs +2 -3
- package/dist/services/definitions/cal-com.cjs.map +1 -1
- package/dist/services/definitions/cal-com.mjs +1 -1
- package/dist/services/definitions/chatwoot-worker.cjs +95 -0
- package/dist/services/definitions/chatwoot-worker.cjs.map +1 -0
- package/dist/services/definitions/chatwoot-worker.d.cts +7 -0
- package/dist/services/definitions/chatwoot-worker.d.cts.map +1 -0
- package/dist/services/definitions/chatwoot-worker.d.mts +7 -0
- package/dist/services/definitions/chatwoot-worker.d.mts.map +1 -0
- package/dist/services/definitions/chatwoot-worker.mjs +94 -0
- package/dist/services/definitions/chatwoot-worker.mjs.map +1 -0
- package/dist/services/definitions/chatwoot.cjs +112 -0
- package/dist/services/definitions/chatwoot.cjs.map +1 -0
- package/dist/services/definitions/chatwoot.d.cts +7 -0
- package/dist/services/definitions/chatwoot.d.cts.map +1 -0
- package/dist/services/definitions/chatwoot.d.mts +7 -0
- package/dist/services/definitions/chatwoot.d.mts.map +1 -0
- package/dist/services/definitions/chatwoot.mjs +111 -0
- package/dist/services/definitions/chatwoot.mjs.map +1 -0
- package/dist/services/definitions/chromadb.cjs +2 -3
- package/dist/services/definitions/chromadb.cjs.map +1 -1
- package/dist/services/definitions/chromadb.mjs +1 -1
- package/dist/services/definitions/claude-code.cjs +2 -3
- package/dist/services/definitions/claude-code.cjs.map +1 -1
- package/dist/services/definitions/claude-code.mjs +1 -1
- package/dist/services/definitions/code-server.cjs +2 -3
- package/dist/services/definitions/code-server.cjs.map +1 -1
- package/dist/services/definitions/code-server.mjs +1 -1
- package/dist/services/definitions/codex.cjs +2 -3
- package/dist/services/definitions/codex.cjs.map +1 -1
- package/dist/services/definitions/codex.mjs +1 -1
- package/dist/services/definitions/comfyui.cjs +2 -3
- package/dist/services/definitions/comfyui.cjs.map +1 -1
- package/dist/services/definitions/comfyui.mjs +1 -1
- package/dist/services/definitions/convex-dashboard.cjs +2 -3
- package/dist/services/definitions/convex-dashboard.cjs.map +1 -1
- package/dist/services/definitions/convex-dashboard.mjs +1 -1
- package/dist/services/definitions/convex.cjs +2 -3
- package/dist/services/definitions/convex.cjs.map +1 -1
- package/dist/services/definitions/convex.mjs +1 -1
- package/dist/services/definitions/coolify.cjs +2 -3
- package/dist/services/definitions/coolify.cjs.map +1 -1
- package/dist/services/definitions/coolify.mjs +1 -1
- package/dist/services/definitions/crowdsec.cjs +2 -3
- package/dist/services/definitions/crowdsec.cjs.map +1 -1
- package/dist/services/definitions/crowdsec.mjs +1 -1
- package/dist/services/definitions/dagster.cjs +83 -0
- package/dist/services/definitions/dagster.cjs.map +1 -0
- package/dist/services/definitions/dagster.d.cts +7 -0
- package/dist/services/definitions/dagster.d.cts.map +1 -0
- package/dist/services/definitions/dagster.d.mts +7 -0
- package/dist/services/definitions/dagster.d.mts.map +1 -0
- package/dist/services/definitions/dagster.mjs +82 -0
- package/dist/services/definitions/dagster.mjs.map +1 -0
- package/dist/services/definitions/desktop-environment.cjs +2 -3
- package/dist/services/definitions/desktop-environment.cjs.map +1 -1
- package/dist/services/definitions/desktop-environment.mjs +1 -1
- package/dist/services/definitions/dify.cjs +2 -3
- package/dist/services/definitions/dify.cjs.map +1 -1
- package/dist/services/definitions/dify.mjs +1 -1
- package/dist/services/definitions/directus.cjs +115 -0
- package/dist/services/definitions/directus.cjs.map +1 -0
- package/dist/services/definitions/directus.d.cts +7 -0
- package/dist/services/definitions/directus.d.cts.map +1 -0
- package/dist/services/definitions/directus.d.mts +7 -0
- package/dist/services/definitions/directus.d.mts.map +1 -0
- package/dist/services/definitions/directus.mjs +114 -0
- package/dist/services/definitions/directus.mjs.map +1 -0
- package/dist/services/definitions/docsgpt.cjs +2 -3
- package/dist/services/definitions/docsgpt.cjs.map +1 -1
- package/dist/services/definitions/docsgpt.mjs +1 -1
- package/dist/services/definitions/dokploy.cjs +2 -3
- package/dist/services/definitions/dokploy.cjs.map +1 -1
- package/dist/services/definitions/dokploy.mjs +1 -1
- package/dist/services/definitions/dozzle.cjs +2 -3
- package/dist/services/definitions/dozzle.cjs.map +1 -1
- package/dist/services/definitions/dozzle.mjs +1 -1
- package/dist/services/definitions/duplicati.cjs +76 -0
- package/dist/services/definitions/duplicati.cjs.map +1 -0
- package/dist/services/definitions/duplicati.d.cts +7 -0
- package/dist/services/definitions/duplicati.d.cts.map +1 -0
- package/dist/services/definitions/duplicati.d.mts +7 -0
- package/dist/services/definitions/duplicati.d.mts.map +1 -0
- package/dist/services/definitions/duplicati.mjs +75 -0
- package/dist/services/definitions/duplicati.mjs.map +1 -0
- package/dist/services/definitions/excalidraw.cjs +48 -0
- package/dist/services/definitions/excalidraw.cjs.map +1 -0
- package/dist/services/definitions/excalidraw.d.cts +7 -0
- package/dist/services/definitions/excalidraw.d.cts.map +1 -0
- package/dist/services/definitions/excalidraw.d.mts +7 -0
- package/dist/services/definitions/excalidraw.d.mts.map +1 -0
- package/dist/services/definitions/excalidraw.mjs +47 -0
- package/dist/services/definitions/excalidraw.mjs.map +1 -0
- package/dist/services/definitions/ffmpeg.cjs +2 -3
- package/dist/services/definitions/ffmpeg.cjs.map +1 -1
- package/dist/services/definitions/ffmpeg.mjs +1 -1
- package/dist/services/definitions/firecrawl-playwright.cjs +61 -0
- package/dist/services/definitions/firecrawl-playwright.cjs.map +1 -0
- package/dist/services/definitions/firecrawl-playwright.d.cts +7 -0
- package/dist/services/definitions/firecrawl-playwright.d.cts.map +1 -0
- package/dist/services/definitions/firecrawl-playwright.d.mts +7 -0
- package/dist/services/definitions/firecrawl-playwright.d.mts.map +1 -0
- package/dist/services/definitions/firecrawl-playwright.mjs +60 -0
- package/dist/services/definitions/firecrawl-playwright.mjs.map +1 -0
- package/dist/services/definitions/firecrawl.cjs +163 -0
- package/dist/services/definitions/firecrawl.cjs.map +1 -0
- package/dist/services/definitions/firecrawl.d.cts +7 -0
- package/dist/services/definitions/firecrawl.d.cts.map +1 -0
- package/dist/services/definitions/firecrawl.d.mts +7 -0
- package/dist/services/definitions/firecrawl.d.mts.map +1 -0
- package/dist/services/definitions/firecrawl.mjs +162 -0
- package/dist/services/definitions/firecrawl.mjs.map +1 -0
- package/dist/services/definitions/flagsmith.cjs +77 -0
- package/dist/services/definitions/flagsmith.cjs.map +1 -0
- package/dist/services/definitions/flagsmith.d.cts +7 -0
- package/dist/services/definitions/flagsmith.d.cts.map +1 -0
- package/dist/services/definitions/flagsmith.d.mts +7 -0
- package/dist/services/definitions/flagsmith.d.mts.map +1 -0
- package/dist/services/definitions/flagsmith.mjs +76 -0
- package/dist/services/definitions/flagsmith.mjs.map +1 -0
- package/dist/services/definitions/flowise.cjs +2 -3
- package/dist/services/definitions/flowise.cjs.map +1 -1
- package/dist/services/definitions/flowise.mjs +1 -1
- package/dist/services/definitions/fonoster.cjs +66 -0
- package/dist/services/definitions/fonoster.cjs.map +1 -0
- package/dist/services/definitions/fonoster.d.cts +7 -0
- package/dist/services/definitions/fonoster.d.cts.map +1 -0
- package/dist/services/definitions/fonoster.d.mts +7 -0
- package/dist/services/definitions/fonoster.d.mts.map +1 -0
- package/dist/services/definitions/fonoster.mjs +65 -0
- package/dist/services/definitions/fonoster.mjs.map +1 -0
- package/dist/services/definitions/formbricks.cjs +75 -0
- package/dist/services/definitions/formbricks.cjs.map +1 -0
- package/dist/services/definitions/formbricks.d.cts +7 -0
- package/dist/services/definitions/formbricks.d.cts.map +1 -0
- package/dist/services/definitions/formbricks.d.mts +7 -0
- package/dist/services/definitions/formbricks.d.mts.map +1 -0
- package/dist/services/definitions/formbricks.mjs +74 -0
- package/dist/services/definitions/formbricks.mjs.map +1 -0
- package/dist/services/definitions/gemini-cli.cjs +2 -3
- package/dist/services/definitions/gemini-cli.cjs.map +1 -1
- package/dist/services/definitions/gemini-cli.mjs +1 -1
- package/dist/services/definitions/ghost.cjs +2 -3
- package/dist/services/definitions/ghost.cjs.map +1 -1
- package/dist/services/definitions/ghost.mjs +1 -1
- package/dist/services/definitions/gitea.cjs +2 -3
- package/dist/services/definitions/gitea.cjs.map +1 -1
- package/dist/services/definitions/gitea.mjs +1 -1
- package/dist/services/definitions/gotify.cjs +2 -3
- package/dist/services/definitions/gotify.cjs.map +1 -1
- package/dist/services/definitions/gotify.mjs +1 -1
- package/dist/services/definitions/grafana.cjs +2 -3
- package/dist/services/definitions/grafana.cjs.map +1 -1
- package/dist/services/definitions/grafana.mjs +1 -1
- package/dist/services/definitions/headscale.cjs +2 -3
- package/dist/services/definitions/headscale.cjs.map +1 -1
- package/dist/services/definitions/headscale.mjs +1 -1
- package/dist/services/definitions/hedgedoc.cjs +82 -0
- package/dist/services/definitions/hedgedoc.cjs.map +1 -0
- package/dist/services/definitions/hedgedoc.d.cts +7 -0
- package/dist/services/definitions/hedgedoc.d.cts.map +1 -0
- package/dist/services/definitions/hedgedoc.d.mts +7 -0
- package/dist/services/definitions/hedgedoc.d.mts.map +1 -0
- package/dist/services/definitions/hedgedoc.mjs +81 -0
- package/dist/services/definitions/hedgedoc.mjs.map +1 -0
- package/dist/services/definitions/hexstrike.cjs +2 -3
- package/dist/services/definitions/hexstrike.cjs.map +1 -1
- package/dist/services/definitions/hexstrike.mjs +1 -1
- package/dist/services/definitions/heyform.cjs +64 -0
- package/dist/services/definitions/heyform.cjs.map +1 -0
- package/dist/services/definitions/heyform.d.cts +7 -0
- package/dist/services/definitions/heyform.d.cts.map +1 -0
- package/dist/services/definitions/heyform.d.mts +7 -0
- package/dist/services/definitions/heyform.d.mts.map +1 -0
- package/dist/services/definitions/heyform.mjs +63 -0
- package/dist/services/definitions/heyform.mjs.map +1 -0
- package/dist/services/definitions/homeassistant.cjs +2 -3
- package/dist/services/definitions/homeassistant.cjs.map +1 -1
- package/dist/services/definitions/homeassistant.mjs +1 -1
- package/dist/services/definitions/hoppscotch.cjs +76 -0
- package/dist/services/definitions/hoppscotch.cjs.map +1 -0
- package/dist/services/definitions/hoppscotch.d.cts +7 -0
- package/dist/services/definitions/hoppscotch.d.cts.map +1 -0
- package/dist/services/definitions/hoppscotch.d.mts +7 -0
- package/dist/services/definitions/hoppscotch.d.mts.map +1 -0
- package/dist/services/definitions/hoppscotch.mjs +75 -0
- package/dist/services/definitions/hoppscotch.mjs.map +1 -0
- package/dist/services/definitions/immich.cjs +2 -3
- package/dist/services/definitions/immich.cjs.map +1 -1
- package/dist/services/definitions/immich.mjs +1 -1
- package/dist/services/definitions/index.cjs +220 -98
- package/dist/services/definitions/index.cjs.map +1 -1
- package/dist/services/definitions/index.d.cts +42 -1
- package/dist/services/definitions/index.d.cts.map +1 -1
- package/dist/services/definitions/index.d.mts +42 -1
- package/dist/services/definitions/index.d.mts.map +1 -1
- package/dist/services/definitions/index.mjs +85 -4
- package/dist/services/definitions/index.mjs.map +1 -1
- package/dist/services/definitions/infisical.cjs +99 -0
- package/dist/services/definitions/infisical.cjs.map +1 -0
- package/dist/services/definitions/infisical.d.cts +7 -0
- package/dist/services/definitions/infisical.d.cts.map +1 -0
- package/dist/services/definitions/infisical.d.mts +7 -0
- package/dist/services/definitions/infisical.d.mts.map +1 -0
- package/dist/services/definitions/infisical.mjs +98 -0
- package/dist/services/definitions/infisical.mjs.map +1 -0
- package/dist/services/definitions/jellyfin.cjs +2 -3
- package/dist/services/definitions/jellyfin.cjs.map +1 -1
- package/dist/services/definitions/jellyfin.mjs +1 -1
- package/dist/services/definitions/jenkins.cjs +2 -3
- package/dist/services/definitions/jenkins.cjs.map +1 -1
- package/dist/services/definitions/jenkins.mjs +1 -1
- package/dist/services/definitions/keycloak.cjs +122 -0
- package/dist/services/definitions/keycloak.cjs.map +1 -0
- package/dist/services/definitions/keycloak.d.cts +7 -0
- package/dist/services/definitions/keycloak.d.cts.map +1 -0
- package/dist/services/definitions/keycloak.d.mts +7 -0
- package/dist/services/definitions/keycloak.d.mts.map +1 -0
- package/dist/services/definitions/keycloak.mjs +121 -0
- package/dist/services/definitions/keycloak.mjs.map +1 -0
- package/dist/services/definitions/kimi.cjs +2 -3
- package/dist/services/definitions/kimi.cjs.map +1 -1
- package/dist/services/definitions/kimi.mjs +1 -1
- package/dist/services/definitions/kong.cjs +121 -0
- package/dist/services/definitions/kong.cjs.map +1 -0
- package/dist/services/definitions/kong.d.cts +7 -0
- package/dist/services/definitions/kong.d.cts.map +1 -0
- package/dist/services/definitions/kong.d.mts +7 -0
- package/dist/services/definitions/kong.d.mts.map +1 -0
- package/dist/services/definitions/kong.mjs +120 -0
- package/dist/services/definitions/kong.mjs.map +1 -0
- package/dist/services/definitions/lago.cjs +95 -0
- package/dist/services/definitions/lago.cjs.map +1 -0
- package/dist/services/definitions/lago.d.cts +7 -0
- package/dist/services/definitions/lago.d.cts.map +1 -0
- package/dist/services/definitions/lago.d.mts +7 -0
- package/dist/services/definitions/lago.d.mts.map +1 -0
- package/dist/services/definitions/lago.mjs +94 -0
- package/dist/services/definitions/lago.mjs.map +1 -0
- package/dist/services/definitions/langflow.cjs +88 -0
- package/dist/services/definitions/langflow.cjs.map +1 -0
- package/dist/services/definitions/langflow.d.cts +7 -0
- package/dist/services/definitions/langflow.d.cts.map +1 -0
- package/dist/services/definitions/langflow.d.mts +7 -0
- package/dist/services/definitions/langflow.d.mts.map +1 -0
- package/dist/services/definitions/langflow.mjs +87 -0
- package/dist/services/definitions/langflow.mjs.map +1 -0
- package/dist/services/definitions/langfuse.cjs +79 -0
- package/dist/services/definitions/langfuse.cjs.map +1 -0
- package/dist/services/definitions/langfuse.d.cts +7 -0
- package/dist/services/definitions/langfuse.d.cts.map +1 -0
- package/dist/services/definitions/langfuse.d.mts +7 -0
- package/dist/services/definitions/langfuse.d.mts.map +1 -0
- package/dist/services/definitions/langfuse.mjs +78 -0
- package/dist/services/definitions/langfuse.mjs.map +1 -0
- package/dist/services/definitions/lasuite-meet-agents.cjs +2 -3
- package/dist/services/definitions/lasuite-meet-agents.cjs.map +1 -1
- package/dist/services/definitions/lasuite-meet-agents.mjs +1 -1
- package/dist/services/definitions/lasuite-meet-backend.cjs +2 -3
- package/dist/services/definitions/lasuite-meet-backend.cjs.map +1 -1
- package/dist/services/definitions/lasuite-meet-backend.mjs +1 -1
- package/dist/services/definitions/lasuite-meet-frontend.cjs +2 -3
- package/dist/services/definitions/lasuite-meet-frontend.cjs.map +1 -1
- package/dist/services/definitions/lasuite-meet-frontend.mjs +1 -1
- package/dist/services/definitions/librechat.cjs +2 -3
- package/dist/services/definitions/librechat.cjs.map +1 -1
- package/dist/services/definitions/librechat.mjs +1 -1
- package/dist/services/definitions/lightpanda.cjs +2 -3
- package/dist/services/definitions/lightpanda.cjs.map +1 -1
- package/dist/services/definitions/lightpanda.mjs +1 -1
- package/dist/services/definitions/listmonk.cjs +118 -0
- package/dist/services/definitions/listmonk.cjs.map +1 -0
- package/dist/services/definitions/listmonk.d.cts +7 -0
- package/dist/services/definitions/listmonk.d.cts.map +1 -0
- package/dist/services/definitions/listmonk.d.mts +7 -0
- package/dist/services/definitions/listmonk.d.mts.map +1 -0
- package/dist/services/definitions/listmonk.mjs +117 -0
- package/dist/services/definitions/listmonk.mjs.map +1 -0
- package/dist/services/definitions/litellm.cjs +2 -3
- package/dist/services/definitions/litellm.cjs.map +1 -1
- package/dist/services/definitions/litellm.mjs +1 -1
- package/dist/services/definitions/livekit.cjs +2 -3
- package/dist/services/definitions/livekit.cjs.map +1 -1
- package/dist/services/definitions/livekit.mjs +1 -1
- package/dist/services/definitions/loki.cjs +2 -3
- package/dist/services/definitions/loki.cjs.map +1 -1
- package/dist/services/definitions/loki.mjs +1 -1
- package/dist/services/definitions/mariadb.cjs +81 -0
- package/dist/services/definitions/mariadb.cjs.map +1 -0
- package/dist/services/definitions/mariadb.d.cts +7 -0
- package/dist/services/definitions/mariadb.d.cts.map +1 -0
- package/dist/services/definitions/mariadb.d.mts +7 -0
- package/dist/services/definitions/mariadb.d.mts.map +1 -0
- package/dist/services/definitions/mariadb.mjs +80 -0
- package/dist/services/definitions/mariadb.mjs.map +1 -0
- package/dist/services/definitions/matomo.cjs +2 -3
- package/dist/services/definitions/matomo.cjs.map +1 -1
- package/dist/services/definitions/matomo.mjs +1 -1
- package/dist/services/definitions/matrix-synapse.cjs +2 -3
- package/dist/services/definitions/matrix-synapse.cjs.map +1 -1
- package/dist/services/definitions/matrix-synapse.mjs +1 -1
- package/dist/services/definitions/mattermost.cjs +2 -3
- package/dist/services/definitions/mattermost.cjs.map +1 -1
- package/dist/services/definitions/mattermost.mjs +1 -1
- package/dist/services/definitions/mautic.cjs +83 -0
- package/dist/services/definitions/mautic.cjs.map +1 -0
- package/dist/services/definitions/mautic.d.cts +7 -0
- package/dist/services/definitions/mautic.d.cts.map +1 -0
- package/dist/services/definitions/mautic.d.mts +7 -0
- package/dist/services/definitions/mautic.d.mts.map +1 -0
- package/dist/services/definitions/mautic.mjs +82 -0
- package/dist/services/definitions/mautic.mjs.map +1 -0
- package/dist/services/definitions/medusa.cjs +83 -0
- package/dist/services/definitions/medusa.cjs.map +1 -0
- package/dist/services/definitions/medusa.d.cts +7 -0
- package/dist/services/definitions/medusa.d.cts.map +1 -0
- package/dist/services/definitions/medusa.d.mts +7 -0
- package/dist/services/definitions/medusa.d.mts.map +1 -0
- package/dist/services/definitions/medusa.mjs +82 -0
- package/dist/services/definitions/medusa.mjs.map +1 -0
- package/dist/services/definitions/meilisearch.cjs +2 -3
- package/dist/services/definitions/meilisearch.cjs.map +1 -1
- package/dist/services/definitions/meilisearch.mjs +1 -1
- package/dist/services/definitions/milvus.cjs +2 -3
- package/dist/services/definitions/milvus.cjs.map +1 -1
- package/dist/services/definitions/milvus.mjs +1 -1
- package/dist/services/definitions/minio.cjs +2 -3
- package/dist/services/definitions/minio.cjs.map +1 -1
- package/dist/services/definitions/minio.mjs +1 -1
- package/dist/services/definitions/mission-control.cjs +2 -3
- package/dist/services/definitions/mission-control.cjs.map +1 -1
- package/dist/services/definitions/mission-control.mjs +1 -1
- package/dist/services/definitions/mixpost.cjs +2 -3
- package/dist/services/definitions/mixpost.cjs.map +1 -1
- package/dist/services/definitions/mixpost.mjs +1 -1
- package/dist/services/definitions/motion-canvas.cjs +2 -3
- package/dist/services/definitions/motion-canvas.cjs.map +1 -1
- package/dist/services/definitions/motion-canvas.mjs +1 -1
- package/dist/services/definitions/mysql.cjs +81 -0
- package/dist/services/definitions/mysql.cjs.map +1 -0
- package/dist/services/definitions/mysql.d.cts +7 -0
- package/dist/services/definitions/mysql.d.cts.map +1 -0
- package/dist/services/definitions/mysql.d.mts +7 -0
- package/dist/services/definitions/mysql.d.mts.map +1 -0
- package/dist/services/definitions/mysql.mjs +80 -0
- package/dist/services/definitions/mysql.mjs.map +1 -0
- package/dist/services/definitions/n8n.cjs +2 -3
- package/dist/services/definitions/n8n.cjs.map +1 -1
- package/dist/services/definitions/n8n.mjs +1 -1
- package/dist/services/definitions/neo4j.cjs +2 -3
- package/dist/services/definitions/neo4j.cjs.map +1 -1
- package/dist/services/definitions/neo4j.mjs +1 -1
- package/dist/services/definitions/nextcloud.cjs +2 -3
- package/dist/services/definitions/nextcloud.cjs.map +1 -1
- package/dist/services/definitions/nextcloud.mjs +1 -1
- package/dist/services/definitions/nocodb.cjs +2 -3
- package/dist/services/definitions/nocodb.cjs.map +1 -1
- package/dist/services/definitions/nocodb.mjs +1 -1
- package/dist/services/definitions/ntfy.cjs +2 -3
- package/dist/services/definitions/ntfy.cjs.map +1 -1
- package/dist/services/definitions/ntfy.mjs +1 -1
- package/dist/services/definitions/ollama.cjs +2 -3
- package/dist/services/definitions/ollama.cjs.map +1 -1
- package/dist/services/definitions/ollama.mjs +1 -1
- package/dist/services/definitions/open-webui.cjs +2 -3
- package/dist/services/definitions/open-webui.cjs.map +1 -1
- package/dist/services/definitions/open-webui.mjs +1 -1
- package/dist/services/definitions/opencode.cjs +2 -3
- package/dist/services/definitions/opencode.cjs.map +1 -1
- package/dist/services/definitions/opencode.mjs +1 -1
- package/dist/services/definitions/openhands.cjs +58 -0
- package/dist/services/definitions/openhands.cjs.map +1 -0
- package/dist/services/definitions/openhands.d.cts +7 -0
- package/dist/services/definitions/openhands.d.cts.map +1 -0
- package/dist/services/definitions/openhands.d.mts +7 -0
- package/dist/services/definitions/openhands.d.mts.map +1 -0
- package/dist/services/definitions/openhands.mjs +57 -0
- package/dist/services/definitions/openhands.mjs.map +1 -0
- package/dist/services/definitions/openpanel.cjs +2 -3
- package/dist/services/definitions/openpanel.cjs.map +1 -1
- package/dist/services/definitions/openpanel.mjs +1 -1
- package/dist/services/definitions/opensearch.cjs +94 -0
- package/dist/services/definitions/opensearch.cjs.map +1 -0
- package/dist/services/definitions/opensearch.d.cts +7 -0
- package/dist/services/definitions/opensearch.d.cts.map +1 -0
- package/dist/services/definitions/opensearch.d.mts +7 -0
- package/dist/services/definitions/opensearch.d.mts.map +1 -0
- package/dist/services/definitions/opensearch.mjs +93 -0
- package/dist/services/definitions/opensearch.mjs.map +1 -0
- package/dist/services/definitions/outline.cjs +2 -3
- package/dist/services/definitions/outline.cjs.map +1 -1
- package/dist/services/definitions/outline.mjs +1 -1
- package/dist/services/definitions/paperless-ngx.cjs +2 -3
- package/dist/services/definitions/paperless-ngx.cjs.map +1 -1
- package/dist/services/definitions/paperless-ngx.mjs +1 -1
- package/dist/services/definitions/pentagi.cjs +2 -3
- package/dist/services/definitions/pentagi.cjs.map +1 -1
- package/dist/services/definitions/pentagi.mjs +1 -1
- package/dist/services/definitions/pentestagent.cjs +2 -3
- package/dist/services/definitions/pentestagent.cjs.map +1 -1
- package/dist/services/definitions/pentestagent.mjs +1 -1
- package/dist/services/definitions/playwright-server.cjs +2 -3
- package/dist/services/definitions/playwright-server.cjs.map +1 -1
- package/dist/services/definitions/playwright-server.mjs +1 -1
- package/dist/services/definitions/pocketbase.cjs +61 -0
- package/dist/services/definitions/pocketbase.cjs.map +1 -0
- package/dist/services/definitions/pocketbase.d.cts +7 -0
- package/dist/services/definitions/pocketbase.d.cts.map +1 -0
- package/dist/services/definitions/pocketbase.d.mts +7 -0
- package/dist/services/definitions/pocketbase.d.mts.map +1 -0
- package/dist/services/definitions/pocketbase.mjs +60 -0
- package/dist/services/definitions/pocketbase.mjs.map +1 -0
- package/dist/services/definitions/portainer.cjs +2 -3
- package/dist/services/definitions/portainer.cjs.map +1 -1
- package/dist/services/definitions/portainer.mjs +1 -1
- package/dist/services/definitions/postgresql.cjs +2 -3
- package/dist/services/definitions/postgresql.cjs.map +1 -1
- package/dist/services/definitions/postgresql.mjs +1 -1
- package/dist/services/definitions/postiz.cjs +2 -3
- package/dist/services/definitions/postiz.cjs.map +1 -1
- package/dist/services/definitions/postiz.mjs +1 -1
- package/dist/services/definitions/prometheus.cjs +2 -3
- package/dist/services/definitions/prometheus.cjs.map +1 -1
- package/dist/services/definitions/prometheus.mjs +1 -1
- package/dist/services/definitions/qdrant.cjs +2 -3
- package/dist/services/definitions/qdrant.cjs.map +1 -1
- package/dist/services/definitions/qdrant.mjs +1 -1
- package/dist/services/definitions/rabbitmq.cjs +80 -0
- package/dist/services/definitions/rabbitmq.cjs.map +1 -0
- package/dist/services/definitions/rabbitmq.d.cts +7 -0
- package/dist/services/definitions/rabbitmq.d.cts.map +1 -0
- package/dist/services/definitions/rabbitmq.d.mts +7 -0
- package/dist/services/definitions/rabbitmq.d.mts.map +1 -0
- package/dist/services/definitions/rabbitmq.mjs +79 -0
- package/dist/services/definitions/rabbitmq.mjs.map +1 -0
- package/dist/services/definitions/ragflow.cjs +192 -0
- package/dist/services/definitions/ragflow.cjs.map +1 -0
- package/dist/services/definitions/ragflow.d.cts +7 -0
- package/dist/services/definitions/ragflow.d.cts.map +1 -0
- package/dist/services/definitions/ragflow.d.mts +7 -0
- package/dist/services/definitions/ragflow.d.mts.map +1 -0
- package/dist/services/definitions/ragflow.mjs +191 -0
- package/dist/services/definitions/ragflow.mjs.map +1 -0
- package/dist/services/definitions/redis.cjs +2 -3
- package/dist/services/definitions/redis.cjs.map +1 -1
- package/dist/services/definitions/redis.mjs +1 -1
- package/dist/services/definitions/remotion.cjs +2 -3
- package/dist/services/definitions/remotion.cjs.map +1 -1
- package/dist/services/definitions/remotion.mjs +1 -1
- package/dist/services/definitions/restic.cjs +58 -0
- package/dist/services/definitions/restic.cjs.map +1 -0
- package/dist/services/definitions/restic.d.cts +7 -0
- package/dist/services/definitions/restic.d.cts.map +1 -0
- package/dist/services/definitions/restic.d.mts +7 -0
- package/dist/services/definitions/restic.d.mts.map +1 -0
- package/dist/services/definitions/restic.mjs +57 -0
- package/dist/services/definitions/restic.mjs.map +1 -0
- package/dist/services/definitions/rocketchat.cjs +2 -3
- package/dist/services/definitions/rocketchat.cjs.map +1 -1
- package/dist/services/definitions/rocketchat.mjs +1 -1
- package/dist/services/definitions/saleor.cjs +76 -0
- package/dist/services/definitions/saleor.cjs.map +1 -0
- package/dist/services/definitions/saleor.d.cts +7 -0
- package/dist/services/definitions/saleor.d.cts.map +1 -0
- package/dist/services/definitions/saleor.d.mts +7 -0
- package/dist/services/definitions/saleor.d.mts.map +1 -0
- package/dist/services/definitions/saleor.mjs +75 -0
- package/dist/services/definitions/saleor.mjs.map +1 -0
- package/dist/services/definitions/scrapling.cjs +2 -3
- package/dist/services/definitions/scrapling.cjs.map +1 -1
- package/dist/services/definitions/scrapling.mjs +1 -1
- package/dist/services/definitions/searxng.cjs +2 -3
- package/dist/services/definitions/searxng.cjs.map +1 -1
- package/dist/services/definitions/searxng.mjs +1 -1
- package/dist/services/definitions/signoz.cjs +2 -3
- package/dist/services/definitions/signoz.cjs.map +1 -1
- package/dist/services/definitions/signoz.mjs +1 -1
- package/dist/services/definitions/solidityguard.cjs +2 -3
- package/dist/services/definitions/solidityguard.cjs.map +1 -1
- package/dist/services/definitions/solidityguard.mjs +1 -1
- package/dist/services/definitions/stable-diffusion.cjs +2 -3
- package/dist/services/definitions/stable-diffusion.cjs.map +1 -1
- package/dist/services/definitions/stable-diffusion.mjs +1 -1
- package/dist/services/definitions/steel-browser.cjs +2 -3
- package/dist/services/definitions/steel-browser.cjs.map +1 -1
- package/dist/services/definitions/steel-browser.mjs +1 -1
- package/dist/services/definitions/stirling-pdf.cjs +74 -0
- package/dist/services/definitions/stirling-pdf.cjs.map +1 -0
- package/dist/services/definitions/stirling-pdf.d.cts +7 -0
- package/dist/services/definitions/stirling-pdf.d.cts.map +1 -0
- package/dist/services/definitions/stirling-pdf.d.mts +7 -0
- package/dist/services/definitions/stirling-pdf.d.mts.map +1 -0
- package/dist/services/definitions/stirling-pdf.mjs +73 -0
- package/dist/services/definitions/stirling-pdf.mjs.map +1 -0
- package/dist/services/definitions/strapi.cjs +124 -0
- package/dist/services/definitions/strapi.cjs.map +1 -0
- package/dist/services/definitions/strapi.d.cts +7 -0
- package/dist/services/definitions/strapi.d.cts.map +1 -0
- package/dist/services/definitions/strapi.d.mts +7 -0
- package/dist/services/definitions/strapi.d.mts.map +1 -0
- package/dist/services/definitions/strapi.mjs +123 -0
- package/dist/services/definitions/strapi.mjs.map +1 -0
- package/dist/services/definitions/stream-gateway.cjs +2 -3
- package/dist/services/definitions/stream-gateway.cjs.map +1 -1
- package/dist/services/definitions/stream-gateway.mjs +1 -1
- package/dist/services/definitions/supabase.cjs +2 -3
- package/dist/services/definitions/supabase.cjs.map +1 -1
- package/dist/services/definitions/supabase.mjs +1 -1
- package/dist/services/definitions/tailscale.cjs +2 -3
- package/dist/services/definitions/tailscale.cjs.map +1 -1
- package/dist/services/definitions/tailscale.mjs +1 -1
- package/dist/services/definitions/temporal.cjs +2 -3
- package/dist/services/definitions/temporal.cjs.map +1 -1
- package/dist/services/definitions/temporal.mjs +1 -1
- package/dist/services/definitions/traefik.cjs +2 -3
- package/dist/services/definitions/traefik.cjs.map +1 -1
- package/dist/services/definitions/traefik.mjs +1 -1
- package/dist/services/definitions/twenty.cjs +83 -0
- package/dist/services/definitions/twenty.cjs.map +1 -0
- package/dist/services/definitions/twenty.d.cts +7 -0
- package/dist/services/definitions/twenty.d.cts.map +1 -0
- package/dist/services/definitions/twenty.d.mts +7 -0
- package/dist/services/definitions/twenty.d.mts.map +1 -0
- package/dist/services/definitions/twenty.mjs +82 -0
- package/dist/services/definitions/twenty.mjs.map +1 -0
- package/dist/services/definitions/umami.cjs +2 -3
- package/dist/services/definitions/umami.cjs.map +1 -1
- package/dist/services/definitions/umami.mjs +1 -1
- package/dist/services/definitions/uptime-kuma.cjs +2 -3
- package/dist/services/definitions/uptime-kuma.cjs.map +1 -1
- package/dist/services/definitions/uptime-kuma.mjs +1 -1
- package/dist/services/definitions/usesend.cjs +2 -3
- package/dist/services/definitions/usesend.cjs.map +1 -1
- package/dist/services/definitions/usesend.mjs +1 -1
- package/dist/services/definitions/valkey.cjs +2 -3
- package/dist/services/definitions/valkey.cjs.map +1 -1
- package/dist/services/definitions/valkey.mjs +1 -1
- package/dist/services/definitions/vault.cjs +71 -0
- package/dist/services/definitions/vault.cjs.map +1 -0
- package/dist/services/definitions/vault.d.cts +7 -0
- package/dist/services/definitions/vault.d.cts.map +1 -0
- package/dist/services/definitions/vault.d.mts +7 -0
- package/dist/services/definitions/vault.d.mts.map +1 -0
- package/dist/services/definitions/vault.mjs +70 -0
- package/dist/services/definitions/vault.mjs.map +1 -0
- package/dist/services/definitions/vaultwarden.cjs +2 -3
- package/dist/services/definitions/vaultwarden.cjs.map +1 -1
- package/dist/services/definitions/vaultwarden.mjs +1 -1
- package/dist/services/definitions/watchtower.cjs +2 -3
- package/dist/services/definitions/watchtower.cjs.map +1 -1
- package/dist/services/definitions/watchtower.mjs +1 -1
- package/dist/services/definitions/weaviate.cjs +2 -3
- package/dist/services/definitions/weaviate.cjs.map +1 -1
- package/dist/services/definitions/weaviate.mjs +1 -1
- package/dist/services/definitions/whisper.cjs +2 -3
- package/dist/services/definitions/whisper.cjs.map +1 -1
- package/dist/services/definitions/whisper.mjs +1 -1
- package/dist/services/definitions/xyops.cjs +2 -3
- package/dist/services/definitions/xyops.cjs.map +1 -1
- package/dist/services/definitions/xyops.mjs +1 -1
- package/dist/services/registry.cjs +3 -4
- package/dist/services/registry.cjs.map +1 -1
- package/dist/services/registry.d.mts.map +1 -1
- package/dist/services/registry.mjs +1 -2
- package/dist/services/registry.mjs.map +1 -1
- package/dist/services/registry.test.cjs +3 -4
- package/dist/services/registry.test.cjs.map +1 -1
- package/dist/services/registry.test.mjs +3 -4
- package/dist/services/registry.test.mjs.map +1 -1
- package/dist/{manifest-4uLbISXV.cjs → skill-manifest--IgY9REK.cjs} +40 -10
- package/dist/skill-manifest--IgY9REK.cjs.map +1 -0
- package/dist/{manifest-B8UDsVlR.mjs → skill-manifest-BVUXU0__.mjs} +24 -5
- package/dist/skill-manifest-BVUXU0__.mjs.map +1 -0
- package/dist/skills/registry.cjs +262 -3
- package/dist/skills/registry.cjs.map +1 -1
- package/dist/skills/registry.d.cts.map +1 -1
- package/dist/skills/registry.d.mts.map +1 -1
- package/dist/skills/registry.mjs +261 -1
- package/dist/skills/registry.mjs.map +1 -1
- package/dist/skills/skill-manifest.cjs +5 -23
- package/dist/skills/skill-manifest.mjs +1 -19
- package/dist/skills-BlzpHmpH.cjs +620 -0
- package/dist/skills-BlzpHmpH.cjs.map +1 -0
- package/dist/types-CR83OJiq.d.cts +243 -0
- package/dist/types-CR83OJiq.d.cts.map +1 -0
- package/dist/types-zYjGTuyn.d.mts +243 -0
- package/dist/types-zYjGTuyn.d.mts.map +1 -0
- package/dist/types.cjs +79 -3
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.mjs +78 -1
- package/dist/types.mjs.map +1 -1
- package/dist/validator.cjs +3 -4
- package/dist/validator.cjs.map +1 -1
- package/dist/validator.mjs +1 -2
- package/dist/validator.mjs.map +1 -1
- package/dist/validator.test.cjs +5 -6
- package/dist/validator.test.cjs.map +1 -1
- package/dist/validator.test.mjs +3 -4
- package/dist/validator.test.mjs.map +1 -1
- package/dist/version-manager.cjs +3 -4
- package/dist/version-manager.cjs.map +1 -1
- package/dist/version-manager.d.mts.map +1 -1
- package/dist/version-manager.mjs +1 -2
- package/dist/version-manager.mjs.map +1 -1
- package/dist/version-manager.test.cjs +5 -6
- package/dist/version-manager.test.cjs.map +1 -1
- package/dist/version-manager.test.mjs +3 -4
- package/dist/version-manager.test.mjs.map +1 -1
- package/dist/{vi.2VT5v0um-BmRMvymT.cjs → vi.2VT5v0um-CRqXre87.cjs} +82 -202
- package/dist/{vi.2VT5v0um-CFyDIn0m.mjs.map → vi.2VT5v0um-CRqXre87.cjs.map} +1 -1
- package/dist/{vi.2VT5v0um-CFyDIn0m.mjs → vi.2VT5v0um-DvC3SVNc.mjs} +67 -186
- package/dist/{vi.2VT5v0um-BmRMvymT.cjs.map → vi.2VT5v0um-DvC3SVNc.mjs.map} +1 -1
- package/package.json +3 -3
- package/src/generators/postgres-init.ts +6 -0
- package/src/presets/presets.test.ts +4 -0
- package/src/presets/registry.ts +88 -0
- package/src/schema.ts +11 -0
- package/src/services/definitions/airbyte.ts +75 -0
- package/src/services/definitions/airflow.ts +109 -0
- package/src/services/definitions/appwrite.ts +181 -0
- package/src/services/definitions/authelia.ts +145 -0
- package/src/services/definitions/axolotl.ts +65 -0
- package/src/services/definitions/chatwoot-worker.ts +93 -0
- package/src/services/definitions/chatwoot.ts +106 -0
- package/src/services/definitions/dagster.ts +82 -0
- package/src/services/definitions/directus.ts +115 -0
- package/src/services/definitions/duplicati.ts +77 -0
- package/src/services/definitions/excalidraw.ts +46 -0
- package/src/services/definitions/firecrawl-playwright.ts +62 -0
- package/src/services/definitions/firecrawl.ts +146 -0
- package/src/services/definitions/flagsmith.ts +76 -0
- package/src/services/definitions/fonoster.ts +67 -0
- package/src/services/definitions/formbricks.ts +75 -0
- package/src/services/definitions/hedgedoc.ts +81 -0
- package/src/services/definitions/heyform.ts +67 -0
- package/src/services/definitions/hoppscotch.ts +74 -0
- package/src/services/definitions/index.ts +124 -0
- package/src/services/definitions/infisical.ts +97 -0
- package/src/services/definitions/keycloak.ts +119 -0
- package/src/services/definitions/kong.ts +116 -0
- package/src/services/definitions/lago.ts +95 -0
- package/src/services/definitions/langflow.ts +82 -0
- package/src/services/definitions/langfuse.ts +76 -0
- package/src/services/definitions/listmonk.ts +118 -0
- package/src/services/definitions/mariadb.ts +82 -0
- package/src/services/definitions/mautic.ts +82 -0
- package/src/services/definitions/medusa.ts +82 -0
- package/src/services/definitions/mysql.ts +82 -0
- package/src/services/definitions/openhands.ts +60 -0
- package/src/services/definitions/opensearch.ts +95 -0
- package/src/services/definitions/pocketbase.ts +62 -0
- package/src/services/definitions/rabbitmq.ts +81 -0
- package/src/services/definitions/ragflow.ts +175 -0
- package/src/services/definitions/restic.ts +60 -0
- package/src/services/definitions/saleor.ts +75 -0
- package/src/services/definitions/stirling-pdf.ts +73 -0
- package/src/services/definitions/strapi.ts +124 -0
- package/src/services/definitions/twenty.ts +82 -0
- package/src/services/definitions/vault.ts +74 -0
- package/src/skills/manifest.json +8 -0
- package/src/skills/registry.ts +119 -0
- package/src/types.ts +91 -2
- package/dist/chunk-C0xms8kb.cjs +0 -34
- package/dist/deployers/coolify.d.cts.map +0 -1
- package/dist/deployers/coolify.d.mts.map +0 -1
- package/dist/deployers/dokploy.d.cts.map +0 -1
- package/dist/deployers/dokploy.d.mts.map +0 -1
- package/dist/deployers/types.d.cts.map +0 -1
- package/dist/deployers/types.d.mts.map +0 -1
- package/dist/generators/skills.cjs.map +0 -1
- package/dist/manifest-4uLbISXV.cjs.map +0 -1
- package/dist/manifest-B8UDsVlR.mjs.map +0 -1
- package/dist/schema.d.cts.map +0 -1
- package/dist/schema.d.mts.map +0 -1
- package/dist/skills/skill-manifest.cjs.map +0 -1
- package/dist/skills/skill-manifest.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-scanner.cjs","names":[],"sources":["../src/port-scanner.ts"],"sourcesContent":["import type { ServiceDefinition } from \"./types.js\";\n\n/**\n * Scans system for ports in use and suggests alternatives for conflicts\n */\nexport interface PortConflict {\n\tport: number;\n\tserviceId: string;\n\tdescription: string;\n\tsuggestedPort: number;\n}\n\n/**\n * Check if a port is available using a two-phase approach:\n * 1. TCP connect — detects if something is already listening\n * 2. Bind check — detects OS-reserved/excluded port ranges (e.g. Hyper-V on Windows)\n *\n * The connect-only approach misses Windows excluded port ranges because\n * ECONNREFUSED (nothing listening) looks the same as \"available\" even though\n * Docker's bind() will fail on those reserved ranges.\n */\nasync function isPortAvailable(port: number): Promise<boolean> {\n\ttry {\n\t\tconst net = await import(\"node:net\");\n\n\t\t// Phase 1: TCP connect check — is something actively listening?\n\t\tconst isListening = await new Promise<boolean>((resolve) => {\n\t\t\tconst socket = new net.Socket();\n\t\t\tlet resolved = false;\n\n\t\t\tconst cleanup = () => {\n\t\t\t\tif (!resolved) {\n\t\t\t\t\tresolved = true;\n\t\t\t\t\tsocket.removeAllListeners();\n\t\t\t\t\tsocket.destroy();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tsocket.once(\"connect\", () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(true);\n\t\t\t});\n\n\t\t\tsocket.once(\"error\", () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tsocket.setTimeout(500);\n\t\t\tsocket.once(\"timeout\", () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tsocket.connect(port, \"127.0.0.1\");\n\t\t});\n\n\t\tif (isListening) return false; // Port is in use\n\n\t\t// Phase 2: Bind check — catches OS-reserved/excluded port ranges\n\t\t// On Windows, Hyper-V/WSL reserve dynamic port ranges that TCP connect\n\t\t// cannot detect. Attempting to bind reveals these reservations.\n\t\tconst canBind = await new Promise<boolean>((resolve) => {\n\t\t\tconst server = net.createServer();\n\n\t\t\tserver.once(\"error\", (_err: NodeJS.ErrnoException) => {\n\t\t\t\t// EACCES / EADDRINUSE / EPERM = port is reserved or in use\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tserver.listen(port, \"0.0.0.0\", () => {\n\t\t\t\t// Successfully bound — port is truly available\n\t\t\t\tserver.close(() => resolve(true));\n\t\t\t});\n\t\t});\n\n\t\treturn canBind;\n\t} catch (error) {\n\t\tconsole.warn(`Port scanner error for port ${port}:`, error);\n\t\treturn true; // Failsafe: assume available\n\t}\n}\n\n/**\n * Find next available port starting from a base port.\n * Also skips ports already claimed by other services in this generation.\n */\nasync function findNextAvailablePort(\n\tstartPort: number,\n\tclaimedPorts: Set<number>,\n\tmaxAttempts = 100,\n): Promise<number> {\n\tfor (let i = 0; i < maxAttempts; i++) {\n\t\tconst port = startPort + i;\n\t\tif (port > 65535) break;\n\t\tif (claimedPorts.has(port)) continue;\n\t\tif (await isPortAvailable(port)) {\n\t\t\treturn port;\n\t\t}\n\t}\n\t// Fallback: return a high random port\n\treturn 50000 + Math.floor(Math.random() * 10000);\n}\n\n/**\n * Scan for port conflicts and suggest alternatives.\n *\n * Detects two types of conflicts:\n * 1. Host conflicts — port is already in use or reserved by the OS\n * 2. Inter-service conflicts — multiple selected services claim the same host port\n */\nexport async function scanPortConflicts(\n\tservices: ServiceDefinition[],\n): Promise<Map<string, Map<number, number>>> {\n\tconst portReassignments = new Map<string, Map<number, number>>();\n\n\t// Track which host ports are already claimed by services in this stack.\n\t// First service to claim a port wins; subsequent services get reassigned.\n\tconst claimedPorts = new Map<number, string>(); // port → serviceId that claimed it\n\n\tfor (const service of services) {\n\t\tif (!service.ports || service.ports.length === 0) continue;\n\n\t\tconst serviceReassignments = new Map<number, number>();\n\n\t\tfor (const portDef of service.ports) {\n\t\t\tif (!portDef.exposed) continue;\n\n\t\t\tconst port = portDef.host;\n\n\t\t\t// Check inter-service conflict first\n\t\t\tconst claimedBy = claimedPorts.get(port);\n\t\t\tif (claimedBy && claimedBy !== service.id) {\n\t\t\t\t// Another service already claimed this port — must reassign\n\t\t\t\tconst newPort = await findNextAvailablePort(port + 1000, new Set(claimedPorts.keys()));\n\t\t\t\tserviceReassignments.set(port, newPort);\n\t\t\t\tclaimedPorts.set(newPort, service.id);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check host availability (TCP connect + bind check)\n\t\t\tconst isAvailable = await isPortAvailable(port);\n\n\t\t\tif (!isAvailable) {\n\t\t\t\tconst newPort = await findNextAvailablePort(port + 1000, new Set(claimedPorts.keys()));\n\t\t\t\tserviceReassignments.set(port, newPort);\n\t\t\t\tclaimedPorts.set(newPort, service.id);\n\t\t\t} else {\n\t\t\t\t// Port is available and not claimed — claim it\n\t\t\t\tclaimedPorts.set(port, service.id);\n\t\t\t}\n\t\t}\n\n\t\tif (serviceReassignments.size > 0) {\n\t\t\tportReassignments.set(service.id, serviceReassignments);\n\t\t}\n\t}\n\n\treturn portReassignments;\n}\n\n/**\n * Get conflicts in a user-friendly format\n */\nexport function formatPortConflicts(\n\tservices: ServiceDefinition[],\n\treassignments: Map<string, Map<number, number>>,\n): PortConflict[] {\n\tconst conflicts: PortConflict[] = [];\n\n\tfor (const service of services) {\n\t\tconst serviceReassignments = reassignments.get(service.id);\n\t\tif (!serviceReassignments) continue;\n\n\t\tfor (const portDef of service.ports || []) {\n\t\t\tconst newPort = serviceReassignments.get(portDef.host);\n\t\t\tif (newPort) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tport: portDef.host,\n\t\t\t\t\tserviceId: service.id,\n\t\t\t\t\tdescription: portDef.description || `${service.name} port`,\n\t\t\t\t\tsuggestedPort: newPort,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn conflicts;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"port-scanner.cjs","names":[],"sources":["../src/port-scanner.ts"],"sourcesContent":["import type { ServiceDefinition } from \"./types.js\";\n\n/**\n * Scans system for ports in use and suggests alternatives for conflicts\n */\nexport interface PortConflict {\n\tport: number;\n\tserviceId: string;\n\tdescription: string;\n\tsuggestedPort: number;\n}\n\n/**\n * Check if a port is available using a two-phase approach:\n * 1. TCP connect — detects if something is already listening\n * 2. Bind check — detects OS-reserved/excluded port ranges (e.g. Hyper-V on Windows)\n *\n * The connect-only approach misses Windows excluded port ranges because\n * ECONNREFUSED (nothing listening) looks the same as \"available\" even though\n * Docker's bind() will fail on those reserved ranges.\n */\nasync function isPortAvailable(port: number): Promise<boolean> {\n\ttry {\n\t\tconst net = await import(\"node:net\");\n\n\t\t// Phase 1: TCP connect check — is something actively listening?\n\t\tconst isListening = await new Promise<boolean>((resolve) => {\n\t\t\tconst socket = new net.Socket();\n\t\t\tlet resolved = false;\n\n\t\t\tconst cleanup = () => {\n\t\t\t\tif (!resolved) {\n\t\t\t\t\tresolved = true;\n\t\t\t\t\tsocket.removeAllListeners();\n\t\t\t\t\tsocket.destroy();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tsocket.once(\"connect\", () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(true);\n\t\t\t});\n\n\t\t\tsocket.once(\"error\", () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tsocket.setTimeout(500);\n\t\t\tsocket.once(\"timeout\", () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tsocket.connect(port, \"127.0.0.1\");\n\t\t});\n\n\t\tif (isListening) return false; // Port is in use\n\n\t\t// Phase 2: Bind check — catches OS-reserved/excluded port ranges\n\t\t// On Windows, Hyper-V/WSL reserve dynamic port ranges that TCP connect\n\t\t// cannot detect. Attempting to bind reveals these reservations.\n\t\tconst canBind = await new Promise<boolean>((resolve) => {\n\t\t\tconst server = net.createServer();\n\n\t\t\tserver.once(\"error\", (_err: NodeJS.ErrnoException) => {\n\t\t\t\t// EACCES / EADDRINUSE / EPERM = port is reserved or in use\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tserver.listen(port, \"0.0.0.0\", () => {\n\t\t\t\t// Successfully bound — port is truly available\n\t\t\t\tserver.close(() => resolve(true));\n\t\t\t});\n\t\t});\n\n\t\treturn canBind;\n\t} catch (error) {\n\t\tconsole.warn(`Port scanner error for port ${port}:`, error);\n\t\treturn true; // Failsafe: assume available\n\t}\n}\n\n/**\n * Find next available port starting from a base port.\n * Also skips ports already claimed by other services in this generation.\n */\nasync function findNextAvailablePort(\n\tstartPort: number,\n\tclaimedPorts: Set<number>,\n\tmaxAttempts = 100,\n): Promise<number> {\n\tfor (let i = 0; i < maxAttempts; i++) {\n\t\tconst port = startPort + i;\n\t\tif (port > 65535) break;\n\t\tif (claimedPorts.has(port)) continue;\n\t\tif (await isPortAvailable(port)) {\n\t\t\treturn port;\n\t\t}\n\t}\n\t// Fallback: return a high random port\n\treturn 50000 + Math.floor(Math.random() * 10000);\n}\n\n/**\n * Scan for port conflicts and suggest alternatives.\n *\n * Detects two types of conflicts:\n * 1. Host conflicts — port is already in use or reserved by the OS\n * 2. Inter-service conflicts — multiple selected services claim the same host port\n */\nexport async function scanPortConflicts(\n\tservices: ServiceDefinition[],\n): Promise<Map<string, Map<number, number>>> {\n\tconst portReassignments = new Map<string, Map<number, number>>();\n\n\t// Track which host ports are already claimed by services in this stack.\n\t// First service to claim a port wins; subsequent services get reassigned.\n\tconst claimedPorts = new Map<number, string>(); // port → serviceId that claimed it\n\n\tfor (const service of services) {\n\t\tif (!service.ports || service.ports.length === 0) continue;\n\n\t\tconst serviceReassignments = new Map<number, number>();\n\n\t\tfor (const portDef of service.ports) {\n\t\t\tif (!portDef.exposed) continue;\n\n\t\t\tconst port = portDef.host;\n\n\t\t\t// Check inter-service conflict first\n\t\t\tconst claimedBy = claimedPorts.get(port);\n\t\t\tif (claimedBy && claimedBy !== service.id) {\n\t\t\t\t// Another service already claimed this port — must reassign\n\t\t\t\tconst newPort = await findNextAvailablePort(port + 1000, new Set(claimedPorts.keys()));\n\t\t\t\tserviceReassignments.set(port, newPort);\n\t\t\t\tclaimedPorts.set(newPort, service.id);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check host availability (TCP connect + bind check)\n\t\t\tconst isAvailable = await isPortAvailable(port);\n\n\t\t\tif (!isAvailable) {\n\t\t\t\tconst newPort = await findNextAvailablePort(port + 1000, new Set(claimedPorts.keys()));\n\t\t\t\tserviceReassignments.set(port, newPort);\n\t\t\t\tclaimedPorts.set(newPort, service.id);\n\t\t\t} else {\n\t\t\t\t// Port is available and not claimed — claim it\n\t\t\t\tclaimedPorts.set(port, service.id);\n\t\t\t}\n\t\t}\n\n\t\tif (serviceReassignments.size > 0) {\n\t\t\tportReassignments.set(service.id, serviceReassignments);\n\t\t}\n\t}\n\n\treturn portReassignments;\n}\n\n/**\n * Get conflicts in a user-friendly format\n */\nexport function formatPortConflicts(\n\tservices: ServiceDefinition[],\n\treassignments: Map<string, Map<number, number>>,\n): PortConflict[] {\n\tconst conflicts: PortConflict[] = [];\n\n\tfor (const service of services) {\n\t\tconst serviceReassignments = reassignments.get(service.id);\n\t\tif (!serviceReassignments) continue;\n\n\t\tfor (const portDef of service.ports || []) {\n\t\t\tconst newPort = serviceReassignments.get(portDef.host);\n\t\t\tif (newPort) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tport: portDef.host,\n\t\t\t\t\tserviceId: service.id,\n\t\t\t\t\tdescription: portDef.description || `${service.name} port`,\n\t\t\t\t\tsuggestedPort: newPort,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn conflicts;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-scanner.d.mts","names":[],"sources":["../src/port-scanner.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"port-scanner.d.mts","names":[],"sources":["../src/port-scanner.ts"],"mappings":";;;;;;UAKiB,YAAA;EAChB,IAAA;EACA,SAAA;EACA,WAAA;EACA,aAAA;AAAA;;;;;AAsGD;;;iBAAsB,iBAAA,CACrB,QAAA,EAAU,iBAAA,KACR,OAAA,CAAQ,GAAA,SAAY,GAAA;;;;iBAmDP,mBAAA,CACf,QAAA,EAAU,iBAAA,IACV,aAAA,EAAe,GAAA,SAAY,GAAA,oBACzB,YAAA"}
|
package/dist/port-scanner.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
const
|
|
2
|
-
const require_resolver = require(
|
|
3
|
-
const require_generate = require(
|
|
4
|
-
const require_presets_registry = require(
|
|
1
|
+
const require_skills = require("../skills-BlzpHmpH.cjs");
|
|
2
|
+
const require_resolver = require("../resolver.cjs");
|
|
3
|
+
const require_generate = require("../generate.cjs");
|
|
4
|
+
const require_presets_registry = require("./registry.cjs");
|
|
5
5
|
let yaml = require("yaml");
|
|
6
|
-
yaml =
|
|
7
|
-
|
|
6
|
+
yaml = require_skills.__toESM(yaml);
|
|
8
7
|
//#region src/presets/presets.test.ts
|
|
9
8
|
const allPresets = require_presets_registry.getAllPresets();
|
|
10
9
|
describe("preset smoke tests", () => {
|
|
@@ -38,7 +37,11 @@ describe("preset smoke tests", () => {
|
|
|
38
37
|
deploymentType: "docker",
|
|
39
38
|
generateSecrets: false,
|
|
40
39
|
openclawVersion: "latest",
|
|
41
|
-
monitoring: false
|
|
40
|
+
monitoring: false,
|
|
41
|
+
openclawImage: "official",
|
|
42
|
+
openclawInstallMethod: "docker",
|
|
43
|
+
deployTarget: "local",
|
|
44
|
+
hardened: false
|
|
42
45
|
});
|
|
43
46
|
expect(result.files["docker-compose.yml"]).toBeDefined();
|
|
44
47
|
expect(result.files[".env.example"]).toBeDefined();
|
|
@@ -60,6 +63,6 @@ describe("preset smoke tests", () => {
|
|
|
60
63
|
expect(result.isValid).toBe(true);
|
|
61
64
|
});
|
|
62
65
|
});
|
|
63
|
-
|
|
64
66
|
//#endregion
|
|
67
|
+
|
|
65
68
|
//# sourceMappingURL=presets.test.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.test.cjs","names":["getAllPresets","getPresetById","generate","resolve"],"sources":["../../src/presets/presets.test.ts"],"sourcesContent":["import * as yaml from \"yaml\";\nimport { generate } from \"../generate.js\";\nimport { getAllPresets, getPresetById } from \"../presets/registry.js\";\nimport { resolve } from \"../resolver.js\";\n\nconst allPresets = getAllPresets();\n\ndescribe(\"preset smoke tests\", () => {\n\tit(\"all presets are defined\", () => {\n\t\texpect(allPresets.length).toBeGreaterThanOrEqual(5);\n\t});\n\n\tit(\"all preset IDs are unique\", () => {\n\t\tconst ids = allPresets.map((p) => p.id);\n\t\tconst uniqueIds = new Set(ids);\n\t\texpect(uniqueIds.size).toBe(ids.length);\n\t});\n\n\tfor (const preset of allPresets) {\n\t\tit(`getPresetById returns correct preset for \"${preset.id}\"`, () => {\n\t\t\tconst found = getPresetById(preset.id);\n\t\t\texpect(found).toBeDefined();\n\t\t\texpect(found!.id).toBe(preset.id);\n\t\t\texpect(found!.name).toBe(preset.name);\n\t\t\texpect(found!.services).toEqual(preset.services);\n\t\t\texpect(found!.skillPacks).toEqual(preset.skillPacks);\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" generates valid configuration`, () => {\n\t\t\tconst result = generate({\n\t\t\t\tprojectName: \"test-project\",\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\taiProviders: [],\n\t\t\t\tgsdRuntimes: [],\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tdeployment: \"local\",\n\t\t\t\tdeploymentType: \"docker\",\n\t\t\t\tgenerateSecrets: false,\n\t\t\t\topenclawVersion: \"latest\",\n\t\t\t\tmonitoring: false,\n\t\t\t});\n\n\t\t\texpect(result.files[\"docker-compose.yml\"]).toBeDefined();\n\t\t\texpect(result.files[\".env.example\"]).toBeDefined();\n\t\t\texpect(result.metadata.serviceCount).toBeGreaterThan(0);\n\n\t\t\tconst composeContent = result.files[\"docker-compose.yml\"]!;\n\t\t\tconst parsed = yaml.parse(composeContent);\n\t\t\texpect(parsed).toBeDefined();\n\t\t\texpect(parsed.services).toBeDefined();\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" resolves without errors`, () => {\n\t\t\tconst result = resolve({\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tmonitoring: false,\n\t\t\t});\n\n\t\t\texpect(result.isValid).toBe(true);\n\t\t});\n\t}\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"presets.test.cjs","names":["getAllPresets","getPresetById","generate","resolve"],"sources":["../../src/presets/presets.test.ts"],"sourcesContent":["import * as yaml from \"yaml\";\nimport { generate } from \"../generate.js\";\nimport { getAllPresets, getPresetById } from \"../presets/registry.js\";\nimport { resolve } from \"../resolver.js\";\n\nconst allPresets = getAllPresets();\n\ndescribe(\"preset smoke tests\", () => {\n\tit(\"all presets are defined\", () => {\n\t\texpect(allPresets.length).toBeGreaterThanOrEqual(5);\n\t});\n\n\tit(\"all preset IDs are unique\", () => {\n\t\tconst ids = allPresets.map((p) => p.id);\n\t\tconst uniqueIds = new Set(ids);\n\t\texpect(uniqueIds.size).toBe(ids.length);\n\t});\n\n\tfor (const preset of allPresets) {\n\t\tit(`getPresetById returns correct preset for \"${preset.id}\"`, () => {\n\t\t\tconst found = getPresetById(preset.id);\n\t\t\texpect(found).toBeDefined();\n\t\t\texpect(found!.id).toBe(preset.id);\n\t\t\texpect(found!.name).toBe(preset.name);\n\t\t\texpect(found!.services).toEqual(preset.services);\n\t\t\texpect(found!.skillPacks).toEqual(preset.skillPacks);\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" generates valid configuration`, () => {\n\t\t\tconst result = generate({\n\t\t\t\tprojectName: \"test-project\",\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\taiProviders: [],\n\t\t\t\tgsdRuntimes: [],\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tdeployment: \"local\",\n\t\t\t\tdeploymentType: \"docker\",\n\t\t\t\tgenerateSecrets: false,\n\t\t\t\topenclawVersion: \"latest\",\n\t\t\t\tmonitoring: false,\n\t\t\t\topenclawImage: \"official\",\n\t\t\t\topenclawInstallMethod: \"docker\",\n\t\t\t\tdeployTarget: \"local\",\n\t\t\t\thardened: false,\n\t\t\t});\n\n\t\t\texpect(result.files[\"docker-compose.yml\"]).toBeDefined();\n\t\t\texpect(result.files[\".env.example\"]).toBeDefined();\n\t\t\texpect(result.metadata.serviceCount).toBeGreaterThan(0);\n\n\t\t\tconst composeContent = result.files[\"docker-compose.yml\"]!;\n\t\t\tconst parsed = yaml.parse(composeContent);\n\t\t\texpect(parsed).toBeDefined();\n\t\t\texpect(parsed.services).toBeDefined();\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" resolves without errors`, () => {\n\t\t\tconst result = resolve({\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tmonitoring: false,\n\t\t\t});\n\n\t\t\texpect(result.isValid).toBe(true);\n\t\t});\n\t}\n});\n"],"mappings":";;;;;;;AAKA,MAAM,aAAaA,yBAAAA,eAAe;AAElC,SAAS,4BAA4B;AACpC,IAAG,iCAAiC;AACnC,SAAO,WAAW,OAAO,CAAC,uBAAuB,EAAE;GAClD;AAEF,IAAG,mCAAmC;EACrC,MAAM,MAAM,WAAW,KAAK,MAAM,EAAE,GAAG;EACvC,MAAM,YAAY,IAAI,IAAI,IAAI;AAC9B,SAAO,UAAU,KAAK,CAAC,KAAK,IAAI,OAAO;GACtC;AAEF,MAAK,MAAM,UAAU,WACpB,IAAG,6CAA6C,OAAO,GAAG,UAAU;EACnE,MAAM,QAAQC,yBAAAA,cAAc,OAAO,GAAG;AACtC,SAAO,MAAM,CAAC,aAAa;AAC3B,SAAO,MAAO,GAAG,CAAC,KAAK,OAAO,GAAG;AACjC,SAAO,MAAO,KAAK,CAAC,KAAK,OAAO,KAAK;AACrC,SAAO,MAAO,SAAS,CAAC,QAAQ,OAAO,SAAS;AAChD,SAAO,MAAO,WAAW,CAAC,QAAQ,OAAO,WAAW;GACnD;AAGH,MAAK,MAAM,UAAU,WACpB,IAAG,WAAW,OAAO,GAAG,wCAAwC;EAC/D,MAAM,SAASC,iBAAAA,SAAS;GACvB,aAAa;GACb,UAAU,OAAO;GACjB,YAAY,OAAO;GACnB,aAAa,EAAE;GACf,aAAa,EAAE;GACf,OAAO;GACP,KAAK;GACL,UAAU;GACV,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GACjB,iBAAiB;GACjB,YAAY;GACZ,eAAe;GACf,uBAAuB;GACvB,cAAc;GACd,UAAU;GACV,CAAC;AAEF,SAAO,OAAO,MAAM,sBAAsB,CAAC,aAAa;AACxD,SAAO,OAAO,MAAM,gBAAgB,CAAC,aAAa;AAClD,SAAO,OAAO,SAAS,aAAa,CAAC,gBAAgB,EAAE;EAEvD,MAAM,iBAAiB,OAAO,MAAM;EACpC,MAAM,SAAS,KAAK,MAAM,eAAe;AACzC,SAAO,OAAO,CAAC,aAAa;AAC5B,SAAO,OAAO,SAAS,CAAC,aAAa;GACpC;AAGH,MAAK,MAAM,UAAU,WACpB,IAAG,WAAW,OAAO,GAAG,kCAAkC;EACzD,MAAM,SAASC,iBAAAA,QAAQ;GACtB,UAAU,OAAO;GACjB,YAAY,OAAO;GACnB,OAAO;GACP,KAAK;GACL,UAAU;GACV,YAAY;GACZ,CAAC;AAEF,SAAO,OAAO,QAAQ,CAAC,KAAK,KAAK;GAChC;EAEF"}
|
|
@@ -2,7 +2,6 @@ import { resolve } from "../resolver.mjs";
|
|
|
2
2
|
import { generate } from "../generate.mjs";
|
|
3
3
|
import { getAllPresets, getPresetById } from "./registry.mjs";
|
|
4
4
|
import * as yaml from "yaml";
|
|
5
|
-
|
|
6
5
|
//#region src/presets/presets.test.ts
|
|
7
6
|
const allPresets = getAllPresets();
|
|
8
7
|
describe("preset smoke tests", () => {
|
|
@@ -36,7 +35,11 @@ describe("preset smoke tests", () => {
|
|
|
36
35
|
deploymentType: "docker",
|
|
37
36
|
generateSecrets: false,
|
|
38
37
|
openclawVersion: "latest",
|
|
39
|
-
monitoring: false
|
|
38
|
+
monitoring: false,
|
|
39
|
+
openclawImage: "official",
|
|
40
|
+
openclawInstallMethod: "docker",
|
|
41
|
+
deployTarget: "local",
|
|
42
|
+
hardened: false
|
|
40
43
|
});
|
|
41
44
|
expect(result.files["docker-compose.yml"]).toBeDefined();
|
|
42
45
|
expect(result.files[".env.example"]).toBeDefined();
|
|
@@ -58,7 +61,7 @@ describe("preset smoke tests", () => {
|
|
|
58
61
|
expect(result.isValid).toBe(true);
|
|
59
62
|
});
|
|
60
63
|
});
|
|
61
|
-
|
|
62
64
|
//#endregion
|
|
63
|
-
export {
|
|
65
|
+
export {};
|
|
66
|
+
|
|
64
67
|
//# sourceMappingURL=presets.test.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.test.mjs","names":[],"sources":["../../src/presets/presets.test.ts"],"sourcesContent":["import * as yaml from \"yaml\";\nimport { generate } from \"../generate.js\";\nimport { getAllPresets, getPresetById } from \"../presets/registry.js\";\nimport { resolve } from \"../resolver.js\";\n\nconst allPresets = getAllPresets();\n\ndescribe(\"preset smoke tests\", () => {\n\tit(\"all presets are defined\", () => {\n\t\texpect(allPresets.length).toBeGreaterThanOrEqual(5);\n\t});\n\n\tit(\"all preset IDs are unique\", () => {\n\t\tconst ids = allPresets.map((p) => p.id);\n\t\tconst uniqueIds = new Set(ids);\n\t\texpect(uniqueIds.size).toBe(ids.length);\n\t});\n\n\tfor (const preset of allPresets) {\n\t\tit(`getPresetById returns correct preset for \"${preset.id}\"`, () => {\n\t\t\tconst found = getPresetById(preset.id);\n\t\t\texpect(found).toBeDefined();\n\t\t\texpect(found!.id).toBe(preset.id);\n\t\t\texpect(found!.name).toBe(preset.name);\n\t\t\texpect(found!.services).toEqual(preset.services);\n\t\t\texpect(found!.skillPacks).toEqual(preset.skillPacks);\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" generates valid configuration`, () => {\n\t\t\tconst result = generate({\n\t\t\t\tprojectName: \"test-project\",\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\taiProviders: [],\n\t\t\t\tgsdRuntimes: [],\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tdeployment: \"local\",\n\t\t\t\tdeploymentType: \"docker\",\n\t\t\t\tgenerateSecrets: false,\n\t\t\t\topenclawVersion: \"latest\",\n\t\t\t\tmonitoring: false,\n\t\t\t});\n\n\t\t\texpect(result.files[\"docker-compose.yml\"]).toBeDefined();\n\t\t\texpect(result.files[\".env.example\"]).toBeDefined();\n\t\t\texpect(result.metadata.serviceCount).toBeGreaterThan(0);\n\n\t\t\tconst composeContent = result.files[\"docker-compose.yml\"]!;\n\t\t\tconst parsed = yaml.parse(composeContent);\n\t\t\texpect(parsed).toBeDefined();\n\t\t\texpect(parsed.services).toBeDefined();\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" resolves without errors`, () => {\n\t\t\tconst result = resolve({\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tmonitoring: false,\n\t\t\t});\n\n\t\t\texpect(result.isValid).toBe(true);\n\t\t});\n\t}\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"presets.test.mjs","names":[],"sources":["../../src/presets/presets.test.ts"],"sourcesContent":["import * as yaml from \"yaml\";\nimport { generate } from \"../generate.js\";\nimport { getAllPresets, getPresetById } from \"../presets/registry.js\";\nimport { resolve } from \"../resolver.js\";\n\nconst allPresets = getAllPresets();\n\ndescribe(\"preset smoke tests\", () => {\n\tit(\"all presets are defined\", () => {\n\t\texpect(allPresets.length).toBeGreaterThanOrEqual(5);\n\t});\n\n\tit(\"all preset IDs are unique\", () => {\n\t\tconst ids = allPresets.map((p) => p.id);\n\t\tconst uniqueIds = new Set(ids);\n\t\texpect(uniqueIds.size).toBe(ids.length);\n\t});\n\n\tfor (const preset of allPresets) {\n\t\tit(`getPresetById returns correct preset for \"${preset.id}\"`, () => {\n\t\t\tconst found = getPresetById(preset.id);\n\t\t\texpect(found).toBeDefined();\n\t\t\texpect(found!.id).toBe(preset.id);\n\t\t\texpect(found!.name).toBe(preset.name);\n\t\t\texpect(found!.services).toEqual(preset.services);\n\t\t\texpect(found!.skillPacks).toEqual(preset.skillPacks);\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" generates valid configuration`, () => {\n\t\t\tconst result = generate({\n\t\t\t\tprojectName: \"test-project\",\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\taiProviders: [],\n\t\t\t\tgsdRuntimes: [],\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tdeployment: \"local\",\n\t\t\t\tdeploymentType: \"docker\",\n\t\t\t\tgenerateSecrets: false,\n\t\t\t\topenclawVersion: \"latest\",\n\t\t\t\tmonitoring: false,\n\t\t\t\topenclawImage: \"official\",\n\t\t\t\topenclawInstallMethod: \"docker\",\n\t\t\t\tdeployTarget: \"local\",\n\t\t\t\thardened: false,\n\t\t\t});\n\n\t\t\texpect(result.files[\"docker-compose.yml\"]).toBeDefined();\n\t\t\texpect(result.files[\".env.example\"]).toBeDefined();\n\t\t\texpect(result.metadata.serviceCount).toBeGreaterThan(0);\n\n\t\t\tconst composeContent = result.files[\"docker-compose.yml\"]!;\n\t\t\tconst parsed = yaml.parse(composeContent);\n\t\t\texpect(parsed).toBeDefined();\n\t\t\texpect(parsed.services).toBeDefined();\n\t\t});\n\t}\n\n\tfor (const preset of allPresets) {\n\t\tit(`preset \"${preset.id}\" resolves without errors`, () => {\n\t\t\tconst result = resolve({\n\t\t\t\tservices: preset.services,\n\t\t\t\tskillPacks: preset.skillPacks,\n\t\t\t\tproxy: \"none\",\n\t\t\t\tgpu: false,\n\t\t\t\tplatform: \"linux/amd64\",\n\t\t\t\tmonitoring: false,\n\t\t\t});\n\n\t\t\texpect(result.isValid).toBe(true);\n\t\t});\n\t}\n});\n"],"mappings":";;;;;AAKA,MAAM,aAAa,eAAe;AAElC,SAAS,4BAA4B;AACpC,IAAG,iCAAiC;AACnC,SAAO,WAAW,OAAO,CAAC,uBAAuB,EAAE;GAClD;AAEF,IAAG,mCAAmC;EACrC,MAAM,MAAM,WAAW,KAAK,MAAM,EAAE,GAAG;EACvC,MAAM,YAAY,IAAI,IAAI,IAAI;AAC9B,SAAO,UAAU,KAAK,CAAC,KAAK,IAAI,OAAO;GACtC;AAEF,MAAK,MAAM,UAAU,WACpB,IAAG,6CAA6C,OAAO,GAAG,UAAU;EACnE,MAAM,QAAQ,cAAc,OAAO,GAAG;AACtC,SAAO,MAAM,CAAC,aAAa;AAC3B,SAAO,MAAO,GAAG,CAAC,KAAK,OAAO,GAAG;AACjC,SAAO,MAAO,KAAK,CAAC,KAAK,OAAO,KAAK;AACrC,SAAO,MAAO,SAAS,CAAC,QAAQ,OAAO,SAAS;AAChD,SAAO,MAAO,WAAW,CAAC,QAAQ,OAAO,WAAW;GACnD;AAGH,MAAK,MAAM,UAAU,WACpB,IAAG,WAAW,OAAO,GAAG,wCAAwC;EAC/D,MAAM,SAAS,SAAS;GACvB,aAAa;GACb,UAAU,OAAO;GACjB,YAAY,OAAO;GACnB,aAAa,EAAE;GACf,aAAa,EAAE;GACf,OAAO;GACP,KAAK;GACL,UAAU;GACV,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GACjB,iBAAiB;GACjB,YAAY;GACZ,eAAe;GACf,uBAAuB;GACvB,cAAc;GACd,UAAU;GACV,CAAC;AAEF,SAAO,OAAO,MAAM,sBAAsB,CAAC,aAAa;AACxD,SAAO,OAAO,MAAM,gBAAgB,CAAC,aAAa;AAClD,SAAO,OAAO,SAAS,aAAa,CAAC,gBAAgB,EAAE;EAEvD,MAAM,iBAAiB,OAAO,MAAM;EACpC,MAAM,SAAS,KAAK,MAAM,eAAe;AACzC,SAAO,OAAO,CAAC,aAAa;AAC5B,SAAO,OAAO,SAAS,CAAC,aAAa;GACpC;AAGH,MAAK,MAAM,UAAU,WACpB,IAAG,WAAW,OAAO,GAAG,kCAAkC;EACzD,MAAM,SAAS,QAAQ;GACtB,UAAU,OAAO;GACjB,YAAY,OAAO;GACnB,OAAO;GACP,KAAK;GACL,UAAU;GACV,YAAY;GACZ,CAAC;AAEF,SAAO,OAAO,QAAQ,CAAC,KAAK,KAAK;GAChC;EAEF"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
2
|
//#region src/presets/registry.ts
|
|
4
3
|
const presets = [
|
|
5
4
|
{
|
|
@@ -171,6 +170,156 @@ const presets = [
|
|
|
171
170
|
],
|
|
172
171
|
skillPacks: [],
|
|
173
172
|
estimatedMemoryMB: 2048
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: "backend-platform",
|
|
176
|
+
name: "Backend Platform",
|
|
177
|
+
description: "BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows",
|
|
178
|
+
services: [
|
|
179
|
+
"appwrite",
|
|
180
|
+
"mariadb",
|
|
181
|
+
"redis",
|
|
182
|
+
"rabbitmq",
|
|
183
|
+
"caddy"
|
|
184
|
+
],
|
|
185
|
+
skillPacks: ["appwrite-platform"],
|
|
186
|
+
estimatedMemoryMB: 3072
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: "rag-platform",
|
|
190
|
+
name: "RAG Platform",
|
|
191
|
+
description: "RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants",
|
|
192
|
+
services: [
|
|
193
|
+
"ragflow",
|
|
194
|
+
"mysql",
|
|
195
|
+
"redis",
|
|
196
|
+
"minio",
|
|
197
|
+
"opensearch",
|
|
198
|
+
"caddy"
|
|
199
|
+
],
|
|
200
|
+
skillPacks: ["ragflow-platform"],
|
|
201
|
+
estimatedMemoryMB: 6144
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: "zero-trust",
|
|
205
|
+
name: "Zero-Trust Security",
|
|
206
|
+
description: "SSO, secrets management, and access control with Authelia, Keycloak, and Infisical",
|
|
207
|
+
services: [
|
|
208
|
+
"authelia",
|
|
209
|
+
"keycloak",
|
|
210
|
+
"infisical",
|
|
211
|
+
"postgresql",
|
|
212
|
+
"redis",
|
|
213
|
+
"caddy"
|
|
214
|
+
],
|
|
215
|
+
skillPacks: ["authelia-security"],
|
|
216
|
+
estimatedMemoryMB: 3584
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
id: "content-platform",
|
|
220
|
+
name: "Content Platform",
|
|
221
|
+
description: "CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF",
|
|
222
|
+
services: [
|
|
223
|
+
"directus",
|
|
224
|
+
"strapi",
|
|
225
|
+
"listmonk",
|
|
226
|
+
"postgresql",
|
|
227
|
+
"redis",
|
|
228
|
+
"stirling-pdf",
|
|
229
|
+
"caddy"
|
|
230
|
+
],
|
|
231
|
+
skillPacks: ["cms-stack"],
|
|
232
|
+
estimatedMemoryMB: 3584
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
id: "ai-orchestrator",
|
|
236
|
+
name: "AI Orchestrator",
|
|
237
|
+
description: "Langflow and Firecrawl for building and deploying AI workflows",
|
|
238
|
+
services: [
|
|
239
|
+
"langflow",
|
|
240
|
+
"firecrawl",
|
|
241
|
+
"postgresql",
|
|
242
|
+
"redis",
|
|
243
|
+
"caddy"
|
|
244
|
+
],
|
|
245
|
+
skillPacks: ["ai-agent-orchestra"],
|
|
246
|
+
estimatedMemoryMB: 3072
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
id: "support-desk",
|
|
250
|
+
name: "Support Desk",
|
|
251
|
+
description: "AI-powered customer support with live chat, LLM observability, and ticket management",
|
|
252
|
+
services: [
|
|
253
|
+
"chatwoot",
|
|
254
|
+
"chatwoot-worker",
|
|
255
|
+
"langfuse",
|
|
256
|
+
"redis",
|
|
257
|
+
"postgresql",
|
|
258
|
+
"caddy"
|
|
259
|
+
],
|
|
260
|
+
skillPacks: ["customer-support"],
|
|
261
|
+
estimatedMemoryMB: 3072
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
id: "sales-machine",
|
|
265
|
+
name: "Sales Machine",
|
|
266
|
+
description: "CRM-driven sales pipeline with email marketing, newsletters, and workflow automation",
|
|
267
|
+
services: [
|
|
268
|
+
"twenty",
|
|
269
|
+
"mautic",
|
|
270
|
+
"listmonk",
|
|
271
|
+
"n8n",
|
|
272
|
+
"postgresql",
|
|
273
|
+
"mysql",
|
|
274
|
+
"redis",
|
|
275
|
+
"caddy"
|
|
276
|
+
],
|
|
277
|
+
skillPacks: ["sales-pipeline"],
|
|
278
|
+
estimatedMemoryMB: 4096
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
id: "data-warehouse",
|
|
282
|
+
name: "Data Warehouse",
|
|
283
|
+
description: "End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring",
|
|
284
|
+
services: [
|
|
285
|
+
"airflow",
|
|
286
|
+
"airbyte",
|
|
287
|
+
"postgresql",
|
|
288
|
+
"grafana",
|
|
289
|
+
"prometheus",
|
|
290
|
+
"redis",
|
|
291
|
+
"caddy"
|
|
292
|
+
],
|
|
293
|
+
skillPacks: ["data-pipeline"],
|
|
294
|
+
estimatedMemoryMB: 4096
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
id: "voice-center",
|
|
298
|
+
name: "Voice Center",
|
|
299
|
+
description: "AI voice agent stack with programmable telephony, transcription, and real-time comms",
|
|
300
|
+
services: [
|
|
301
|
+
"fonoster",
|
|
302
|
+
"livekit",
|
|
303
|
+
"whisper",
|
|
304
|
+
"redis",
|
|
305
|
+
"caddy"
|
|
306
|
+
],
|
|
307
|
+
skillPacks: ["voice-agent"],
|
|
308
|
+
estimatedMemoryMB: 3072
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
id: "shopfront",
|
|
312
|
+
name: "Shopfront",
|
|
313
|
+
description: "AI-managed headless e-commerce with product management and object storage",
|
|
314
|
+
services: [
|
|
315
|
+
"medusa",
|
|
316
|
+
"minio",
|
|
317
|
+
"postgresql",
|
|
318
|
+
"redis",
|
|
319
|
+
"caddy"
|
|
320
|
+
],
|
|
321
|
+
skillPacks: ["ecommerce-ops"],
|
|
322
|
+
estimatedMemoryMB: 2560
|
|
174
323
|
}
|
|
175
324
|
];
|
|
176
325
|
const presetMap = /* @__PURE__ */ new Map();
|
|
@@ -185,9 +334,9 @@ function getPresetById(id) {
|
|
|
185
334
|
function getAllPresets() {
|
|
186
335
|
return [...presets];
|
|
187
336
|
}
|
|
188
|
-
|
|
189
337
|
//#endregion
|
|
190
338
|
exports.getAllPresets = getAllPresets;
|
|
191
339
|
exports.getPresetById = getPresetById;
|
|
192
340
|
exports.presetRegistry = presetRegistry;
|
|
341
|
+
|
|
193
342
|
//# sourceMappingURL=registry.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.cjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":";;;AAEA,MAAM,UAAoB;CACzB;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU,CAAC,SAAS,QAAQ;EAC5B,YAAY,EAAE;EACd,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAY;GAAS;GAAS;GAAQ;EAC3D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAW;GAAe;GAAS;GAAS;GAAa;EAC9E,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAO;GAAc;GAAS;GAAe;GAAW;GAAc;GAAQ;EACzF,YAAY,CAAC,UAAU;EACvB,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;GACA;GACA;GACA;EACD,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAU;GAAS;GAAS;GAAc;GAAS;GAAQ;EAChF,YAAY,CAAC,kBAAkB;EAC/B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAc;GAAW;GAAgB;GAAS;GAAQ;EAC/E,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAe;GAAY;GAAS;GAAe;GAAS;GAAQ;EAC/E,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,YAAY,EAAE;EACd,mBAAmB;EACnB;CACD;AAED,MAAM,4BAAY,IAAI,KAAqB;AAC3C,KAAK,MAAM,UAAU,SAAS;AAC7B,KAAI,UAAU,IAAI,OAAO,GAAG,CAC3B,OAAM,IAAI,MAAM,yBAAyB,OAAO,GAAG,GAAG;AAEvD,WAAU,IAAI,OAAO,IAAI,OAAO;;AAGjC,MAAa,iBAA8C;AAE3D,SAAgB,cAAc,IAAgC;AAC7D,QAAO,UAAU,IAAI,GAAG;;AAGzB,SAAgB,gBAA0B;AACzC,QAAO,CAAC,GAAG,QAAQ"}
|
|
1
|
+
{"version":3,"file":"registry.cjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t// ── New service presets ─────────────────────────────────────────────────\n\t{\n\t\tid: \"backend-platform\",\n\t\tname: \"Backend Platform\",\n\t\tdescription:\n\t\t\t\"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n\t\tservices: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n\t\tskillPacks: [\"appwrite-platform\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"rag-platform\",\n\t\tname: \"RAG Platform\",\n\t\tdescription:\n\t\t\t\"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n\t\tservices: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n\t\tskillPacks: [\"ragflow-platform\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"zero-trust\",\n\t\tname: \"Zero-Trust Security\",\n\t\tdescription:\n\t\t\t\"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n\t\tservices: [\"authelia\", \"keycloak\", \"infisical\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"authelia-security\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"content-platform\",\n\t\tname: \"Content Platform\",\n\t\tdescription: \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n\t\tservices: [\"directus\", \"strapi\", \"listmonk\", \"postgresql\", \"redis\", \"stirling-pdf\", \"caddy\"],\n\t\tskillPacks: [\"cms-stack\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"ai-orchestrator\",\n\t\tname: \"AI Orchestrator\",\n\t\tdescription: \"Langflow and Firecrawl for building and deploying AI workflows\",\n\t\tservices: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-agent-orchestra\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t// ── New Presets (from feature analysis) ───────────────────────────────────\n\t{\n\t\tid: \"support-desk\",\n\t\tname: \"Support Desk\",\n\t\tdescription:\n\t\t\t\"AI-powered customer support with live chat, LLM observability, and ticket management\",\n\t\tservices: [\"chatwoot\", \"chatwoot-worker\", \"langfuse\", \"redis\", \"postgresql\", \"caddy\"],\n\t\tskillPacks: [\"customer-support\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"sales-machine\",\n\t\tname: \"Sales Machine\",\n\t\tdescription:\n\t\t\t\"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n\t\tservices: [\"twenty\", \"mautic\", \"listmonk\", \"n8n\", \"postgresql\", \"mysql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"sales-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"data-warehouse\",\n\t\tname: \"Data Warehouse\",\n\t\tdescription: \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n\t\tservices: [\"airflow\", \"airbyte\", \"postgresql\", \"grafana\", \"prometheus\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"data-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"voice-center\",\n\t\tname: \"Voice Center\",\n\t\tdescription:\n\t\t\t\"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n\t\tservices: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"voice-agent\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"shopfront\",\n\t\tname: \"Shopfront\",\n\t\tdescription: \"AI-managed headless e-commerce with product management and object storage\",\n\t\tservices: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ecommerce-ops\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.cts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.d.cts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;cAoOa,cAAA,EAAgB,WAAA,SAAoB,MAAA;AAAA,iBAEjC,aAAA,CAAc,EAAA,WAAa,MAAA;AAAA,iBAI3B,aAAA,CAAA,GAAiB,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/presets/registry.ts"],"mappings":";;;cAoOa,cAAA,EAAgB,WAAA,SAAoB,MAAA;AAAA,iBAEjC,aAAA,CAAc,EAAA,WAAa,MAAA;AAAA,iBAI3B,aAAA,CAAA,GAAiB,MAAA"}
|
|
@@ -169,6 +169,156 @@ const presets = [
|
|
|
169
169
|
],
|
|
170
170
|
skillPacks: [],
|
|
171
171
|
estimatedMemoryMB: 2048
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: "backend-platform",
|
|
175
|
+
name: "Backend Platform",
|
|
176
|
+
description: "BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows",
|
|
177
|
+
services: [
|
|
178
|
+
"appwrite",
|
|
179
|
+
"mariadb",
|
|
180
|
+
"redis",
|
|
181
|
+
"rabbitmq",
|
|
182
|
+
"caddy"
|
|
183
|
+
],
|
|
184
|
+
skillPacks: ["appwrite-platform"],
|
|
185
|
+
estimatedMemoryMB: 3072
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: "rag-platform",
|
|
189
|
+
name: "RAG Platform",
|
|
190
|
+
description: "RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants",
|
|
191
|
+
services: [
|
|
192
|
+
"ragflow",
|
|
193
|
+
"mysql",
|
|
194
|
+
"redis",
|
|
195
|
+
"minio",
|
|
196
|
+
"opensearch",
|
|
197
|
+
"caddy"
|
|
198
|
+
],
|
|
199
|
+
skillPacks: ["ragflow-platform"],
|
|
200
|
+
estimatedMemoryMB: 6144
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
id: "zero-trust",
|
|
204
|
+
name: "Zero-Trust Security",
|
|
205
|
+
description: "SSO, secrets management, and access control with Authelia, Keycloak, and Infisical",
|
|
206
|
+
services: [
|
|
207
|
+
"authelia",
|
|
208
|
+
"keycloak",
|
|
209
|
+
"infisical",
|
|
210
|
+
"postgresql",
|
|
211
|
+
"redis",
|
|
212
|
+
"caddy"
|
|
213
|
+
],
|
|
214
|
+
skillPacks: ["authelia-security"],
|
|
215
|
+
estimatedMemoryMB: 3584
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: "content-platform",
|
|
219
|
+
name: "Content Platform",
|
|
220
|
+
description: "CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF",
|
|
221
|
+
services: [
|
|
222
|
+
"directus",
|
|
223
|
+
"strapi",
|
|
224
|
+
"listmonk",
|
|
225
|
+
"postgresql",
|
|
226
|
+
"redis",
|
|
227
|
+
"stirling-pdf",
|
|
228
|
+
"caddy"
|
|
229
|
+
],
|
|
230
|
+
skillPacks: ["cms-stack"],
|
|
231
|
+
estimatedMemoryMB: 3584
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
id: "ai-orchestrator",
|
|
235
|
+
name: "AI Orchestrator",
|
|
236
|
+
description: "Langflow and Firecrawl for building and deploying AI workflows",
|
|
237
|
+
services: [
|
|
238
|
+
"langflow",
|
|
239
|
+
"firecrawl",
|
|
240
|
+
"postgresql",
|
|
241
|
+
"redis",
|
|
242
|
+
"caddy"
|
|
243
|
+
],
|
|
244
|
+
skillPacks: ["ai-agent-orchestra"],
|
|
245
|
+
estimatedMemoryMB: 3072
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
id: "support-desk",
|
|
249
|
+
name: "Support Desk",
|
|
250
|
+
description: "AI-powered customer support with live chat, LLM observability, and ticket management",
|
|
251
|
+
services: [
|
|
252
|
+
"chatwoot",
|
|
253
|
+
"chatwoot-worker",
|
|
254
|
+
"langfuse",
|
|
255
|
+
"redis",
|
|
256
|
+
"postgresql",
|
|
257
|
+
"caddy"
|
|
258
|
+
],
|
|
259
|
+
skillPacks: ["customer-support"],
|
|
260
|
+
estimatedMemoryMB: 3072
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
id: "sales-machine",
|
|
264
|
+
name: "Sales Machine",
|
|
265
|
+
description: "CRM-driven sales pipeline with email marketing, newsletters, and workflow automation",
|
|
266
|
+
services: [
|
|
267
|
+
"twenty",
|
|
268
|
+
"mautic",
|
|
269
|
+
"listmonk",
|
|
270
|
+
"n8n",
|
|
271
|
+
"postgresql",
|
|
272
|
+
"mysql",
|
|
273
|
+
"redis",
|
|
274
|
+
"caddy"
|
|
275
|
+
],
|
|
276
|
+
skillPacks: ["sales-pipeline"],
|
|
277
|
+
estimatedMemoryMB: 4096
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
id: "data-warehouse",
|
|
281
|
+
name: "Data Warehouse",
|
|
282
|
+
description: "End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring",
|
|
283
|
+
services: [
|
|
284
|
+
"airflow",
|
|
285
|
+
"airbyte",
|
|
286
|
+
"postgresql",
|
|
287
|
+
"grafana",
|
|
288
|
+
"prometheus",
|
|
289
|
+
"redis",
|
|
290
|
+
"caddy"
|
|
291
|
+
],
|
|
292
|
+
skillPacks: ["data-pipeline"],
|
|
293
|
+
estimatedMemoryMB: 4096
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
id: "voice-center",
|
|
297
|
+
name: "Voice Center",
|
|
298
|
+
description: "AI voice agent stack with programmable telephony, transcription, and real-time comms",
|
|
299
|
+
services: [
|
|
300
|
+
"fonoster",
|
|
301
|
+
"livekit",
|
|
302
|
+
"whisper",
|
|
303
|
+
"redis",
|
|
304
|
+
"caddy"
|
|
305
|
+
],
|
|
306
|
+
skillPacks: ["voice-agent"],
|
|
307
|
+
estimatedMemoryMB: 3072
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
id: "shopfront",
|
|
311
|
+
name: "Shopfront",
|
|
312
|
+
description: "AI-managed headless e-commerce with product management and object storage",
|
|
313
|
+
services: [
|
|
314
|
+
"medusa",
|
|
315
|
+
"minio",
|
|
316
|
+
"postgresql",
|
|
317
|
+
"redis",
|
|
318
|
+
"caddy"
|
|
319
|
+
],
|
|
320
|
+
skillPacks: ["ecommerce-ops"],
|
|
321
|
+
estimatedMemoryMB: 2560
|
|
172
322
|
}
|
|
173
323
|
];
|
|
174
324
|
const presetMap = /* @__PURE__ */ new Map();
|
|
@@ -183,7 +333,7 @@ function getPresetById(id) {
|
|
|
183
333
|
function getAllPresets() {
|
|
184
334
|
return [...presets];
|
|
185
335
|
}
|
|
186
|
-
|
|
187
336
|
//#endregion
|
|
188
337
|
export { getAllPresets, getPresetById, presetRegistry };
|
|
338
|
+
|
|
189
339
|
//# sourceMappingURL=registry.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.mjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":";AAEA,MAAM,UAAoB;CACzB;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU,CAAC,SAAS,QAAQ;EAC5B,YAAY,EAAE;EACd,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAY;GAAS;GAAS;GAAQ;EAC3D,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAW;GAAe;GAAS;GAAS;GAAa;EAC9E,YAAY,CAAC,iBAAiB;EAC9B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAO;GAAc;GAAS;GAAe;GAAW;GAAc;GAAQ;EACzF,YAAY,CAAC,UAAU;EACvB,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,YAAY;GACX;GACA;GACA;GACA;GACA;GACA;GACA;EACD,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAU;GAAS;GAAS;GAAc;GAAS;GAAQ;EAChF,YAAY,CAAC,kBAAkB;EAC/B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAU;GAAc;GAAW;GAAgB;GAAS;GAAQ;EAC/E,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,YAAY,CAAC,gBAAgB;EAC7B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GAAC;GAAe;GAAY;GAAS;GAAe;GAAS;GAAQ;EAC/E,YAAY,CAAC,cAAc;EAC3B,mBAAmB;EACnB;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,UAAU;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,YAAY,EAAE;EACd,mBAAmB;EACnB;CACD;AAED,MAAM,4BAAY,IAAI,KAAqB;AAC3C,KAAK,MAAM,UAAU,SAAS;AAC7B,KAAI,UAAU,IAAI,OAAO,GAAG,CAC3B,OAAM,IAAI,MAAM,yBAAyB,OAAO,GAAG,GAAG;AAEvD,WAAU,IAAI,OAAO,IAAI,OAAO;;AAGjC,MAAa,iBAA8C;AAE3D,SAAgB,cAAc,IAAgC;AAC7D,QAAO,UAAU,IAAI,GAAG;;AAGzB,SAAgB,gBAA0B;AACzC,QAAO,CAAC,GAAG,QAAQ"}
|
|
1
|
+
{"version":3,"file":"registry.mjs","names":[],"sources":["../../src/presets/registry.ts"],"sourcesContent":["import type { Preset } from \"../types.js\";\n\nconst presets: Preset[] = [\n\t{\n\t\tid: \"minimal\",\n\t\tname: \"Minimal\",\n\t\tdescription: \"OpenClaw + Redis for caching and session management\",\n\t\tservices: [\"redis\", \"caddy\"],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 1024,\n\t},\n\t{\n\t\tid: \"creator\",\n\t\tname: \"Creator\",\n\t\tdescription: \"Full media creation stack with FFmpeg, Remotion, and MinIO storage\",\n\t\tservices: [\"ffmpeg\", \"remotion\", \"minio\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"video-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"researcher\",\n\t\tname: \"Researcher\",\n\t\tdescription: \"Research agent with vector search, web scraping, and meta search\",\n\t\tservices: [\"qdrant\", \"searxng\", \"browserless\", \"redis\", \"caddy\", \"postgresql\"],\n\t\tskillPacks: [\"research-agent\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"devops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Full monitoring and automation stack with n8n, Grafana, and Uptime Kuma\",\n\t\tservices: [\"n8n\", \"postgresql\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\", \"caddy\"],\n\t\tskillPacks: [\"dev-ops\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"full\",\n\t\tname: \"Full Stack\",\n\t\tdescription: \"Everything enabled — all services and skill packs\",\n\t\tservices: [\n\t\t\t\"redis\",\n\t\t\t\"postgresql\",\n\t\t\t\"qdrant\",\n\t\t\t\"n8n\",\n\t\t\t\"ffmpeg\",\n\t\t\t\"remotion\",\n\t\t\t\"minio\",\n\t\t\t\"caddy\",\n\t\t\t\"browserless\",\n\t\t\t\"searxng\",\n\t\t\t\"meilisearch\",\n\t\t\t\"uptime-kuma\",\n\t\t\t\"grafana\",\n\t\t\t\"prometheus\",\n\t\t\t\"ollama\",\n\t\t\t\"whisper\",\n\t\t\t\"gotify\",\n\t\t],\n\t\tskillPacks: [\n\t\t\t\"video-creator\",\n\t\t\t\"research-agent\",\n\t\t\t\"social-media\",\n\t\t\t\"dev-ops\",\n\t\t\t\"knowledge-base\",\n\t\t\t\"local-ai\",\n\t\t],\n\t\testimatedMemoryMB: 8192,\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription: \"Social media scheduling with Postiz, media processing, and analytics\",\n\t\tservices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\", \"umami\", \"caddy\"],\n\t\tskillPacks: [\"content-creator\"],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\"ollama\", \"open-webui\", \"litellm\", \"anything-llm\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"ai-powerhouse\",\n\t\tname: \"AI Powerhouse\",\n\t\tdescription: \"Local AI stack with Ollama, Open WebUI, LiteLLM gateway, and document chat\",\n\t\tservices: [\n\t\t\t\"ollama\",\n\t\t\t\"redis\",\n\t\t\t\"qdrant\",\n\t\t\t\"minio\",\n\t\t\t\"litellm\",\n\t\t\t\"anything-llm\",\n\t\t\t\"n8n\",\n\t\t\t\"postgresql\",\n\t\t\t\"caddy\",\n\t\t\t\"open-webui\",\n\t\t\t\"searxng\",\n\t\t],\n\t\tskillPacks: [\"ai-playground\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription: \"AI development environment with coding agents, Git, and browser IDE\",\n\t\tservices: [\"claude-code\", \"opencode\", \"gitea\", \"code-server\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"coding-team\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n\t{\n\t\tid: \"lasuite-meet\",\n\t\tname: \"La Suite Meet\",\n\t\tdescription: \"Open-source video conferencing from La Suite numérique (Django + LiveKit)\",\n\t\tservices: [\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t],\n\t\tskillPacks: [],\n\t\testimatedMemoryMB: 2048,\n\t},\n\t// ── New service presets ─────────────────────────────────────────────────\n\t{\n\t\tid: \"backend-platform\",\n\t\tname: \"Backend Platform\",\n\t\tdescription:\n\t\t\t\"BaaS stack with Appwrite, MariaDB, Redis, RabbitMQ for auth, storage, and async workflows\",\n\t\tservices: [\"appwrite\", \"mariadb\", \"redis\", \"rabbitmq\", \"caddy\"],\n\t\tskillPacks: [\"appwrite-platform\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"rag-platform\",\n\t\tname: \"RAG Platform\",\n\t\tdescription:\n\t\t\t\"RAGFlow with MySQL, Redis, MinIO, OpenSearch for knowledge ingestion and grounded AI assistants\",\n\t\tservices: [\"ragflow\", \"mysql\", \"redis\", \"minio\", \"opensearch\", \"caddy\"],\n\t\tskillPacks: [\"ragflow-platform\"],\n\t\testimatedMemoryMB: 6144,\n\t},\n\t{\n\t\tid: \"zero-trust\",\n\t\tname: \"Zero-Trust Security\",\n\t\tdescription:\n\t\t\t\"SSO, secrets management, and access control with Authelia, Keycloak, and Infisical\",\n\t\tservices: [\"authelia\", \"keycloak\", \"infisical\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"authelia-security\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"content-platform\",\n\t\tname: \"Content Platform\",\n\t\tdescription: \"CMS and newsletter stack with Directus, Strapi, Listmonk, and Stirling PDF\",\n\t\tservices: [\"directus\", \"strapi\", \"listmonk\", \"postgresql\", \"redis\", \"stirling-pdf\", \"caddy\"],\n\t\tskillPacks: [\"cms-stack\"],\n\t\testimatedMemoryMB: 3584,\n\t},\n\t{\n\t\tid: \"ai-orchestrator\",\n\t\tname: \"AI Orchestrator\",\n\t\tdescription: \"Langflow and Firecrawl for building and deploying AI workflows\",\n\t\tservices: [\"langflow\", \"firecrawl\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ai-agent-orchestra\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t// ── New Presets (from feature analysis) ───────────────────────────────────\n\t{\n\t\tid: \"support-desk\",\n\t\tname: \"Support Desk\",\n\t\tdescription:\n\t\t\t\"AI-powered customer support with live chat, LLM observability, and ticket management\",\n\t\tservices: [\"chatwoot\", \"chatwoot-worker\", \"langfuse\", \"redis\", \"postgresql\", \"caddy\"],\n\t\tskillPacks: [\"customer-support\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"sales-machine\",\n\t\tname: \"Sales Machine\",\n\t\tdescription:\n\t\t\t\"CRM-driven sales pipeline with email marketing, newsletters, and workflow automation\",\n\t\tservices: [\"twenty\", \"mautic\", \"listmonk\", \"n8n\", \"postgresql\", \"mysql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"sales-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"data-warehouse\",\n\t\tname: \"Data Warehouse\",\n\t\tdescription: \"End-to-end data pipeline with DAG orchestration, 300+ connectors, and monitoring\",\n\t\tservices: [\"airflow\", \"airbyte\", \"postgresql\", \"grafana\", \"prometheus\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"data-pipeline\"],\n\t\testimatedMemoryMB: 4096,\n\t},\n\t{\n\t\tid: \"voice-center\",\n\t\tname: \"Voice Center\",\n\t\tdescription:\n\t\t\t\"AI voice agent stack with programmable telephony, transcription, and real-time comms\",\n\t\tservices: [\"fonoster\", \"livekit\", \"whisper\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"voice-agent\"],\n\t\testimatedMemoryMB: 3072,\n\t},\n\t{\n\t\tid: \"shopfront\",\n\t\tname: \"Shopfront\",\n\t\tdescription: \"AI-managed headless e-commerce with product management and object storage\",\n\t\tservices: [\"medusa\", \"minio\", \"postgresql\", \"redis\", \"caddy\"],\n\t\tskillPacks: [\"ecommerce-ops\"],\n\t\testimatedMemoryMB: 2560,\n\t},\n];\n\nconst presetMap = new Map<string, Preset>();\nfor (const preset of presets) {\n\tif (presetMap.has(preset.id)) {\n\t\tthrow new Error(`Duplicate preset ID: \"${preset.id}\"`);\n\t}\n\tpresetMap.set(preset.id, preset);\n}\n\nexport const presetRegistry: ReadonlyMap<string, Preset> = presetMap;\n\nexport function getPresetById(id: string): Preset | undefined {\n\treturn presetMap.get(id);\n}\n\nexport function getAllPresets(): Preset[] {\n\treturn [...presets];\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
const require_vi_2VT5v0um = require(
|
|
2
|
-
const require_presets_registry = require(
|
|
3
|
-
|
|
1
|
+
const require_vi_2VT5v0um = require("../vi.2VT5v0um-CRqXre87.cjs");
|
|
2
|
+
const require_presets_registry = require("./registry.cjs");
|
|
4
3
|
//#region src/presets/registry.test.ts
|
|
5
4
|
require_vi_2VT5v0um.describe("preset registry", () => {
|
|
6
5
|
require_vi_2VT5v0um.it("getPresetById returns undefined for unknown id", () => {
|
|
@@ -31,6 +30,6 @@ require_vi_2VT5v0um.describe("preset registry", () => {
|
|
|
31
30
|
require_vi_2VT5v0um.globalExpect(lasuite.name).toBe("La Suite Meet");
|
|
32
31
|
});
|
|
33
32
|
});
|
|
34
|
-
|
|
35
33
|
//#endregion
|
|
34
|
+
|
|
36
35
|
//# sourceMappingURL=registry.test.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.cjs","names":["describe","getPresetById","getAllPresets"],"sources":["../../src/presets/registry.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { getAllPresets, getPresetById } from \"./registry.js\";\n\ndescribe(\"preset registry\", () => {\n\tit(\"getPresetById returns undefined for unknown id\", () => {\n\t\texpect(getPresetById(\"unknown\")).toBeUndefined();\n\t});\n\n\tit(\"getPresetById returns La Suite Meet preset with correct services\", () => {\n\t\tconst preset = getPresetById(\"lasuite-meet\");\n\t\texpect(preset).toBeDefined();\n\t\texpect(preset!.id).toBe(\"lasuite-meet\");\n\t\texpect(preset!.name).toBe(\"La Suite Meet\");\n\t\texpect(preset!.services).toEqual([\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t]);\n\t\texpect(preset!.skillPacks).toEqual([]);\n\t\texpect(preset!.estimatedMemoryMB).toBe(2048);\n\t});\n\n\tit(\"getAllPresets includes La Suite Meet\", () => {\n\t\tconst all = getAllPresets();\n\t\tconst lasuite = all.find((p) => p.id === \"lasuite-meet\");\n\t\texpect(lasuite).toBeDefined();\n\t\texpect(lasuite!.name).toBe(\"La Suite Meet\");\n\t});\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.test.cjs","names":["describe","getPresetById","getAllPresets"],"sources":["../../src/presets/registry.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { getAllPresets, getPresetById } from \"./registry.js\";\n\ndescribe(\"preset registry\", () => {\n\tit(\"getPresetById returns undefined for unknown id\", () => {\n\t\texpect(getPresetById(\"unknown\")).toBeUndefined();\n\t});\n\n\tit(\"getPresetById returns La Suite Meet preset with correct services\", () => {\n\t\tconst preset = getPresetById(\"lasuite-meet\");\n\t\texpect(preset).toBeDefined();\n\t\texpect(preset!.id).toBe(\"lasuite-meet\");\n\t\texpect(preset!.name).toBe(\"La Suite Meet\");\n\t\texpect(preset!.services).toEqual([\n\t\t\t\"postgresql\",\n\t\t\t\"redis\",\n\t\t\t\"livekit\",\n\t\t\t\"lasuite-meet-backend\",\n\t\t\t\"lasuite-meet-frontend\",\n\t\t\t\"lasuite-meet-agents\",\n\t\t\t\"whisper\",\n\t\t\t\"ollama\",\n\t\t\t\"caddy\",\n\t\t]);\n\t\texpect(preset!.skillPacks).toEqual([]);\n\t\texpect(preset!.estimatedMemoryMB).toBe(2048);\n\t});\n\n\tit(\"getAllPresets includes La Suite Meet\", () => {\n\t\tconst all = getAllPresets();\n\t\tconst lasuite = all.find((p) => p.id === \"lasuite-meet\");\n\t\texpect(lasuite).toBeDefined();\n\t\texpect(lasuite!.name).toBe(\"La Suite Meet\");\n\t});\n});\n"],"mappings":";;;AAGAA,oBAAAA,SAAS,yBAAyB;AACjC,qBAAA,GAAG,wDAAwD;AAC1D,sBAAA,aAAOC,yBAAAA,cAAc,UAAU,CAAC,CAAC,eAAe;GAC/C;AAEF,qBAAA,GAAG,0EAA0E;EAC5E,MAAM,SAASA,yBAAAA,cAAc,eAAe;AAC5C,sBAAA,aAAO,OAAO,CAAC,aAAa;AAC5B,sBAAA,aAAO,OAAQ,GAAG,CAAC,KAAK,eAAe;AACvC,sBAAA,aAAO,OAAQ,KAAK,CAAC,KAAK,gBAAgB;AAC1C,sBAAA,aAAO,OAAQ,SAAS,CAAC,QAAQ;GAChC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,CAAC;AACF,sBAAA,aAAO,OAAQ,WAAW,CAAC,QAAQ,EAAE,CAAC;AACtC,sBAAA,aAAO,OAAQ,kBAAkB,CAAC,KAAK,KAAK;GAC3C;AAEF,qBAAA,GAAG,8CAA8C;EAEhD,MAAM,UADMC,yBAAAA,eAAe,CACP,MAAM,MAAM,EAAE,OAAO,eAAe;AACxD,sBAAA,aAAO,QAAQ,CAAC,aAAa;AAC7B,sBAAA,aAAO,QAAS,KAAK,CAAC,KAAK,gBAAgB;GAC1C;EACD"}
|