@better-openclaw/core 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish-core.yml +1 -1
- package/dist/bare-metal-partition.d.mts +0 -1
- package/dist/bare-metal-partition.d.mts.map +1 -1
- package/dist/bare-metal-partition.mjs +47 -2
- package/dist/bare-metal-partition.mjs.map +1 -0
- package/dist/bare-metal-partition.test.mjs +3 -3
- package/dist/composer.d.mts +0 -1
- package/dist/composer.d.mts.map +1 -1
- package/dist/composer.mjs +286 -2
- package/dist/composer.mjs.map +1 -0
- package/dist/composer.snapshot.test.mjs +3 -3
- package/dist/composer.test.mjs +3 -3
- package/dist/generate.d.mts +0 -2
- package/dist/generate.d.mts.map +1 -1
- package/dist/generate.mjs +15 -15
- package/dist/generate.test.mjs +1 -1
- package/dist/generators/bare-metal-install.d.mts +0 -2
- package/dist/generators/bare-metal-install.d.mts.map +1 -1
- package/dist/generators/bare-metal-install.mjs +223 -2
- package/dist/generators/bare-metal-install.mjs.map +1 -0
- package/dist/generators/bare-metal-install.test.mjs +2 -2
- package/dist/generators/caddy.d.mts +0 -2
- package/dist/generators/caddy.d.mts.map +1 -1
- package/dist/generators/caddy.mjs +76 -2
- package/dist/generators/caddy.mjs.map +1 -0
- package/dist/generators/env.d.mts +0 -1
- package/dist/generators/env.d.mts.map +1 -1
- package/dist/generators/env.mjs +249 -2
- package/dist/generators/env.mjs.map +1 -0
- package/dist/generators/grafana.d.mts.map +1 -1
- package/dist/generators/grafana.mjs +292 -2
- package/dist/generators/grafana.mjs.map +1 -0
- package/dist/generators/n8n-workflows.d.mts +0 -2
- package/dist/generators/n8n-workflows.d.mts.map +1 -1
- package/dist/generators/n8n-workflows.mjs +74 -2
- package/dist/generators/n8n-workflows.mjs.map +1 -0
- package/dist/generators/native-services.d.mts +0 -1
- package/dist/generators/native-services.d.mts.map +1 -1
- package/dist/generators/native-services.mjs +77 -2
- package/dist/generators/native-services.mjs.map +1 -0
- package/dist/generators/postgres-init.d.mts +0 -1
- package/dist/generators/postgres-init.d.mts.map +1 -1
- package/dist/generators/postgres-init.mjs +150 -2
- package/dist/generators/postgres-init.mjs.map +1 -0
- package/dist/generators/prometheus.d.mts +0 -2
- package/dist/generators/prometheus.d.mts.map +1 -1
- package/dist/generators/prometheus.mjs +106 -2
- package/dist/generators/prometheus.mjs.map +1 -0
- package/dist/generators/readme.d.mts +0 -1
- package/dist/generators/readme.d.mts.map +1 -1
- package/dist/generators/readme.mjs +198 -2
- package/dist/generators/readme.mjs.map +1 -0
- package/dist/generators/scripts.d.mts.map +1 -1
- package/dist/generators/scripts.mjs +350 -2
- package/dist/generators/scripts.mjs.map +1 -0
- package/dist/generators/skills.d.mts +0 -2
- package/dist/generators/skills.d.mts.map +1 -1
- package/dist/generators/skills.mjs +586 -2
- package/dist/generators/skills.mjs.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +15 -15
- package/dist/{magic-string.es-Dew0Rnsa.mjs → magic-string.es-1uTtupLe.mjs} +14 -14
- package/dist/magic-string.es-1uTtupLe.mjs.map +1 -0
- package/dist/presets/registry.d.mts +0 -1
- package/dist/presets/registry.d.mts.map +1 -1
- package/dist/presets/registry.test.mjs +1 -1
- package/dist/resolver.d.mts +0 -2
- package/dist/resolver.d.mts.map +1 -1
- package/dist/resolver.mjs +193 -2
- package/dist/resolver.mjs.map +1 -0
- package/dist/resolver.test.mjs +2 -2
- package/dist/schema.d.mts +714 -2
- package/dist/schema.d.mts.map +1 -0
- package/dist/schema.mjs +6 -2
- package/dist/schema.mjs.map +1 -1
- package/dist/schema.test.mjs +1 -1
- package/dist/services/definitions/anything-llm.d.mts +0 -1
- package/dist/services/definitions/anything-llm.d.mts.map +1 -1
- package/dist/services/definitions/anything-llm.mjs +43 -2
- package/dist/services/definitions/anything-llm.mjs.map +1 -0
- package/dist/services/definitions/appflowy.d.mts +0 -1
- package/dist/services/definitions/appflowy.d.mts.map +1 -1
- package/dist/services/definitions/appflowy.mjs +44 -2
- package/dist/services/definitions/appflowy.mjs.map +1 -0
- package/dist/services/definitions/beszel.d.mts +0 -1
- package/dist/services/definitions/beszel.d.mts.map +1 -1
- package/dist/services/definitions/beszel.mjs +44 -2
- package/dist/services/definitions/beszel.mjs.map +1 -0
- package/dist/services/definitions/browserless.d.mts +0 -1
- package/dist/services/definitions/browserless.d.mts.map +1 -1
- package/dist/services/definitions/browserless.mjs +84 -2
- package/dist/services/definitions/browserless.mjs.map +1 -0
- package/dist/services/definitions/caddy.d.mts +0 -1
- package/dist/services/definitions/caddy.d.mts.map +1 -1
- package/dist/services/definitions/caddy.mjs +51 -2
- package/dist/services/definitions/caddy.mjs.map +1 -0
- package/dist/services/definitions/chromadb.d.mts +0 -1
- package/dist/services/definitions/chromadb.d.mts.map +1 -1
- package/dist/services/definitions/chromadb.mjs +62 -2
- package/dist/services/definitions/chromadb.mjs.map +1 -0
- package/dist/services/definitions/claude-code.d.mts +0 -1
- package/dist/services/definitions/claude-code.d.mts.map +1 -1
- package/dist/services/definitions/claude-code.mjs +51 -2
- package/dist/services/definitions/claude-code.mjs.map +1 -0
- package/dist/services/definitions/code-server.d.mts +0 -1
- package/dist/services/definitions/code-server.d.mts.map +1 -1
- package/dist/services/definitions/code-server.mjs +65 -2
- package/dist/services/definitions/code-server.mjs.map +1 -0
- package/dist/services/definitions/codex.d.mts +0 -1
- package/dist/services/definitions/codex.d.mts.map +1 -1
- package/dist/services/definitions/codex.mjs +44 -2
- package/dist/services/definitions/codex.mjs.map +1 -0
- package/dist/services/definitions/comfyui.d.mts +7 -0
- package/dist/services/definitions/comfyui.d.mts.map +1 -0
- package/dist/services/definitions/comfyui.mjs +83 -0
- package/dist/services/definitions/comfyui.mjs.map +1 -0
- package/dist/services/definitions/convex-dashboard.d.mts +7 -0
- package/dist/services/definitions/convex-dashboard.d.mts.map +1 -0
- package/dist/services/definitions/convex-dashboard.mjs +46 -0
- package/dist/services/definitions/convex-dashboard.mjs.map +1 -0
- package/dist/services/definitions/convex.d.mts +7 -0
- package/dist/services/definitions/convex.d.mts.map +1 -0
- package/dist/services/definitions/convex.mjs +118 -0
- package/dist/services/definitions/convex.mjs.map +1 -0
- package/dist/services/definitions/coolify.d.mts +0 -1
- package/dist/services/definitions/coolify.d.mts.map +1 -1
- package/dist/services/definitions/coolify.mjs +48 -2
- package/dist/services/definitions/coolify.mjs.map +1 -0
- package/dist/services/definitions/desktop-environment.d.mts +7 -0
- package/dist/services/definitions/desktop-environment.d.mts.map +1 -0
- package/dist/services/definitions/desktop-environment.mjs +153 -0
- package/dist/services/definitions/desktop-environment.mjs.map +1 -0
- package/dist/services/definitions/dify.d.mts +0 -1
- package/dist/services/definitions/dify.d.mts.map +1 -1
- package/dist/services/definitions/dify.mjs +80 -2
- package/dist/services/definitions/dify.mjs.map +1 -0
- package/dist/services/definitions/docsgpt.d.mts +0 -1
- package/dist/services/definitions/docsgpt.d.mts.map +1 -1
- package/dist/services/definitions/docsgpt.mjs +44 -2
- package/dist/services/definitions/docsgpt.mjs.map +1 -0
- package/dist/services/definitions/dokploy.d.mts +0 -1
- package/dist/services/definitions/dokploy.d.mts.map +1 -1
- package/dist/services/definitions/dokploy.mjs +48 -2
- package/dist/services/definitions/dokploy.mjs.map +1 -0
- package/dist/services/definitions/dozzle.d.mts +0 -1
- package/dist/services/definitions/dozzle.d.mts.map +1 -1
- package/dist/services/definitions/dozzle.mjs +40 -2
- package/dist/services/definitions/dozzle.mjs.map +1 -0
- package/dist/services/definitions/ffmpeg.d.mts +0 -1
- package/dist/services/definitions/ffmpeg.d.mts.map +1 -1
- package/dist/services/definitions/ffmpeg.mjs +65 -2
- package/dist/services/definitions/ffmpeg.mjs.map +1 -0
- package/dist/services/definitions/flowise.d.mts +0 -1
- package/dist/services/definitions/flowise.d.mts.map +1 -1
- package/dist/services/definitions/flowise.mjs +44 -2
- package/dist/services/definitions/flowise.mjs.map +1 -0
- package/dist/services/definitions/gemini-cli.d.mts +0 -1
- package/dist/services/definitions/gemini-cli.d.mts.map +1 -1
- package/dist/services/definitions/gemini-cli.mjs +45 -2
- package/dist/services/definitions/gemini-cli.mjs.map +1 -0
- package/dist/services/definitions/gitea.d.mts +0 -1
- package/dist/services/definitions/gitea.d.mts.map +1 -1
- package/dist/services/definitions/gitea.mjs +48 -2
- package/dist/services/definitions/gitea.mjs.map +1 -0
- package/dist/services/definitions/gotify.d.mts +0 -1
- package/dist/services/definitions/gotify.d.mts.map +1 -1
- package/dist/services/definitions/gotify.mjs +61 -2
- package/dist/services/definitions/gotify.mjs.map +1 -0
- package/dist/services/definitions/grafana.d.mts +0 -1
- package/dist/services/definitions/grafana.d.mts.map +1 -1
- package/dist/services/definitions/grafana.mjs +62 -2
- package/dist/services/definitions/grafana.mjs.map +1 -0
- package/dist/services/definitions/index.d.mts +8 -2
- package/dist/services/definitions/index.d.mts.map +1 -1
- package/dist/services/definitions/index.mjs +151 -67
- package/dist/services/definitions/index.mjs.map +1 -0
- package/dist/services/definitions/kimi.d.mts +0 -1
- package/dist/services/definitions/kimi.d.mts.map +1 -1
- package/dist/services/definitions/kimi.mjs +45 -2
- package/dist/services/definitions/kimi.mjs.map +1 -0
- package/dist/services/definitions/lasuite-meet-agents.d.mts +0 -1
- package/dist/services/definitions/lasuite-meet-agents.d.mts.map +1 -1
- package/dist/services/definitions/lasuite-meet-agents.mjs +35 -2
- package/dist/services/definitions/lasuite-meet-agents.mjs.map +1 -0
- package/dist/services/definitions/lasuite-meet-backend.d.mts +0 -1
- package/dist/services/definitions/lasuite-meet-backend.d.mts.map +1 -1
- package/dist/services/definitions/lasuite-meet-backend.mjs +133 -2
- package/dist/services/definitions/lasuite-meet-backend.mjs.map +1 -0
- package/dist/services/definitions/lasuite-meet-frontend.d.mts +0 -1
- package/dist/services/definitions/lasuite-meet-frontend.d.mts.map +1 -1
- package/dist/services/definitions/lasuite-meet-frontend.mjs +47 -2
- package/dist/services/definitions/lasuite-meet-frontend.mjs.map +1 -0
- package/dist/services/definitions/librechat.d.mts +0 -1
- package/dist/services/definitions/librechat.d.mts.map +1 -1
- package/dist/services/definitions/librechat.mjs +49 -2
- package/dist/services/definitions/librechat.mjs.map +1 -0
- package/dist/services/definitions/lightpanda.d.mts +0 -1
- package/dist/services/definitions/lightpanda.d.mts.map +1 -1
- package/dist/services/definitions/lightpanda.mjs +58 -2
- package/dist/services/definitions/lightpanda.mjs.map +1 -0
- package/dist/services/definitions/litellm.d.mts +0 -1
- package/dist/services/definitions/litellm.d.mts.map +1 -1
- package/dist/services/definitions/litellm.mjs +46 -2
- package/dist/services/definitions/litellm.mjs.map +1 -0
- package/dist/services/definitions/livekit.d.mts +0 -1
- package/dist/services/definitions/livekit.d.mts.map +1 -1
- package/dist/services/definitions/livekit.mjs +55 -2
- package/dist/services/definitions/livekit.mjs.map +1 -0
- package/dist/services/definitions/matomo.d.mts +0 -1
- package/dist/services/definitions/matomo.d.mts.map +1 -1
- package/dist/services/definitions/matomo.mjs +79 -2
- package/dist/services/definitions/matomo.mjs.map +1 -0
- package/dist/services/definitions/matrix-synapse.d.mts +0 -1
- package/dist/services/definitions/matrix-synapse.d.mts.map +1 -1
- package/dist/services/definitions/matrix-synapse.mjs +87 -2
- package/dist/services/definitions/matrix-synapse.mjs.map +1 -0
- package/dist/services/definitions/mattermost.d.mts +0 -1
- package/dist/services/definitions/mattermost.d.mts.map +1 -1
- package/dist/services/definitions/mattermost.mjs +60 -2
- package/dist/services/definitions/mattermost.mjs.map +1 -0
- package/dist/services/definitions/meilisearch.d.mts +0 -1
- package/dist/services/definitions/meilisearch.d.mts.map +1 -1
- package/dist/services/definitions/meilisearch.mjs +77 -2
- package/dist/services/definitions/meilisearch.mjs.map +1 -0
- package/dist/services/definitions/minio.d.mts +0 -1
- package/dist/services/definitions/minio.d.mts.map +1 -1
- package/dist/services/definitions/minio.mjs +101 -2
- package/dist/services/definitions/minio.mjs.map +1 -0
- package/dist/services/definitions/mission-control.d.mts +7 -0
- package/dist/services/definitions/mission-control.d.mts.map +1 -0
- package/dist/services/definitions/mission-control.mjs +67 -0
- package/dist/services/definitions/mission-control.mjs.map +1 -0
- package/dist/services/definitions/mixpost.d.mts +0 -1
- package/dist/services/definitions/mixpost.d.mts.map +1 -1
- package/dist/services/definitions/mixpost.mjs +86 -2
- package/dist/services/definitions/mixpost.mjs.map +1 -0
- package/dist/services/definitions/motion-canvas.d.mts +0 -1
- package/dist/services/definitions/motion-canvas.d.mts.map +1 -1
- package/dist/services/definitions/motion-canvas.mjs +51 -2
- package/dist/services/definitions/motion-canvas.mjs.map +1 -0
- package/dist/services/definitions/n8n.d.mts +0 -1
- package/dist/services/definitions/n8n.d.mts.map +1 -1
- package/dist/services/definitions/n8n.mjs +153 -2
- package/dist/services/definitions/n8n.mjs.map +1 -0
- package/dist/services/definitions/nocodb.d.mts +0 -1
- package/dist/services/definitions/nocodb.d.mts.map +1 -1
- package/dist/services/definitions/nocodb.mjs +44 -2
- package/dist/services/definitions/nocodb.mjs.map +1 -0
- package/dist/services/definitions/ntfy.d.mts +0 -1
- package/dist/services/definitions/ntfy.d.mts.map +1 -1
- package/dist/services/definitions/ntfy.mjs +62 -2
- package/dist/services/definitions/ntfy.mjs.map +1 -0
- package/dist/services/definitions/ollama.d.mts +0 -1
- package/dist/services/definitions/ollama.d.mts.map +1 -1
- package/dist/services/definitions/ollama.mjs +65 -2
- package/dist/services/definitions/ollama.mjs.map +1 -0
- package/dist/services/definitions/open-webui.d.mts +0 -1
- package/dist/services/definitions/open-webui.d.mts.map +1 -1
- package/dist/services/definitions/open-webui.mjs +49 -2
- package/dist/services/definitions/open-webui.mjs.map +1 -0
- package/dist/services/definitions/opencode.d.mts +0 -1
- package/dist/services/definitions/opencode.d.mts.map +1 -1
- package/dist/services/definitions/opencode.mjs +49 -2
- package/dist/services/definitions/opencode.mjs.map +1 -0
- package/dist/services/definitions/openpanel.d.mts +0 -1
- package/dist/services/definitions/openpanel.d.mts.map +1 -1
- package/dist/services/definitions/openpanel.mjs +45 -2
- package/dist/services/definitions/openpanel.mjs.map +1 -0
- package/dist/services/definitions/outline.d.mts +0 -1
- package/dist/services/definitions/outline.d.mts.map +1 -1
- package/dist/services/definitions/outline.mjs +73 -2
- package/dist/services/definitions/outline.mjs.map +1 -0
- package/dist/services/definitions/paperless-ngx.d.mts +0 -1
- package/dist/services/definitions/paperless-ngx.d.mts.map +1 -1
- package/dist/services/definitions/paperless-ngx.mjs +92 -2
- package/dist/services/definitions/paperless-ngx.mjs.map +1 -0
- package/dist/services/definitions/playwright-server.d.mts +0 -1
- package/dist/services/definitions/playwright-server.d.mts.map +1 -1
- package/dist/services/definitions/playwright-server.mjs +41 -2
- package/dist/services/definitions/playwright-server.mjs.map +1 -0
- package/dist/services/definitions/portainer.d.mts +0 -1
- package/dist/services/definitions/portainer.d.mts.map +1 -1
- package/dist/services/definitions/portainer.mjs +48 -2
- package/dist/services/definitions/portainer.mjs.map +1 -0
- package/dist/services/definitions/postgresql.d.mts +0 -1
- package/dist/services/definitions/postgresql.d.mts.map +1 -1
- package/dist/services/definitions/postgresql.mjs +83 -2
- package/dist/services/definitions/postgresql.mjs.map +1 -0
- package/dist/services/definitions/postiz.d.mts +0 -1
- package/dist/services/definitions/postiz.d.mts.map +1 -1
- package/dist/services/definitions/postiz.mjs +82 -2
- package/dist/services/definitions/postiz.mjs.map +1 -0
- package/dist/services/definitions/prometheus.d.mts +0 -1
- package/dist/services/definitions/prometheus.d.mts.map +1 -1
- package/dist/services/definitions/prometheus.mjs +51 -2
- package/dist/services/definitions/prometheus.mjs.map +1 -0
- package/dist/services/definitions/qdrant.d.mts +0 -1
- package/dist/services/definitions/qdrant.d.mts.map +1 -1
- package/dist/services/definitions/qdrant.mjs +76 -2
- package/dist/services/definitions/qdrant.mjs.map +1 -0
- package/dist/services/definitions/redis.d.mts +0 -1
- package/dist/services/definitions/redis.d.mts.map +1 -1
- package/dist/services/definitions/redis.mjs +90 -2
- package/dist/services/definitions/redis.mjs.map +1 -0
- package/dist/services/definitions/remotion.d.mts +0 -1
- package/dist/services/definitions/remotion.d.mts.map +1 -1
- package/dist/services/definitions/remotion.mjs +54 -2
- package/dist/services/definitions/remotion.mjs.map +1 -0
- package/dist/services/definitions/rocketchat.d.mts +0 -1
- package/dist/services/definitions/rocketchat.d.mts.map +1 -1
- package/dist/services/definitions/rocketchat.mjs +56 -2
- package/dist/services/definitions/rocketchat.mjs.map +1 -0
- package/dist/services/definitions/searxng.d.mts +0 -1
- package/dist/services/definitions/searxng.d.mts.map +1 -1
- package/dist/services/definitions/searxng.mjs +64 -2
- package/dist/services/definitions/searxng.mjs.map +1 -0
- package/dist/services/definitions/stable-diffusion.d.mts +0 -1
- package/dist/services/definitions/stable-diffusion.d.mts.map +1 -1
- package/dist/services/definitions/stable-diffusion.mjs +47 -2
- package/dist/services/definitions/stable-diffusion.mjs.map +1 -0
- package/dist/services/definitions/steel-browser.d.mts +0 -1
- package/dist/services/definitions/steel-browser.d.mts.map +1 -1
- package/dist/services/definitions/steel-browser.mjs +76 -2
- package/dist/services/definitions/steel-browser.mjs.map +1 -0
- package/dist/services/definitions/stream-gateway.d.mts +7 -0
- package/dist/services/definitions/stream-gateway.d.mts.map +1 -0
- package/dist/services/definitions/stream-gateway.mjs +133 -0
- package/dist/services/definitions/stream-gateway.mjs.map +1 -0
- package/dist/services/definitions/tailscale.d.mts +0 -1
- package/dist/services/definitions/tailscale.d.mts.map +1 -1
- package/dist/services/definitions/tailscale.mjs +69 -2
- package/dist/services/definitions/tailscale.mjs.map +1 -0
- package/dist/services/definitions/temporal.d.mts +0 -1
- package/dist/services/definitions/temporal.d.mts.map +1 -1
- package/dist/services/definitions/temporal.mjs +99 -2
- package/dist/services/definitions/temporal.mjs.map +1 -0
- package/dist/services/definitions/traefik.d.mts +0 -1
- package/dist/services/definitions/traefik.d.mts.map +1 -1
- package/dist/services/definitions/traefik.mjs +57 -2
- package/dist/services/definitions/traefik.mjs.map +1 -0
- package/dist/services/definitions/umami.d.mts +0 -1
- package/dist/services/definitions/umami.d.mts.map +1 -1
- package/dist/services/definitions/umami.mjs +45 -2
- package/dist/services/definitions/umami.mjs.map +1 -0
- package/dist/services/definitions/uptime-kuma.d.mts +0 -1
- package/dist/services/definitions/uptime-kuma.d.mts.map +1 -1
- package/dist/services/definitions/uptime-kuma.mjs +50 -2
- package/dist/services/definitions/uptime-kuma.mjs.map +1 -0
- package/dist/services/definitions/usesend.d.mts +7 -0
- package/dist/services/definitions/usesend.d.mts.map +1 -0
- package/dist/services/definitions/usesend.mjs +99 -0
- package/dist/services/definitions/usesend.mjs.map +1 -0
- package/dist/services/definitions/valkey.d.mts +0 -1
- package/dist/services/definitions/valkey.d.mts.map +1 -1
- package/dist/services/definitions/valkey.mjs +60 -2
- package/dist/services/definitions/valkey.mjs.map +1 -0
- package/dist/services/definitions/watchtower.d.mts +0 -1
- package/dist/services/definitions/watchtower.d.mts.map +1 -1
- package/dist/services/definitions/watchtower.mjs +46 -2
- package/dist/services/definitions/watchtower.mjs.map +1 -0
- package/dist/services/definitions/weaviate.d.mts +0 -1
- package/dist/services/definitions/weaviate.d.mts.map +1 -1
- package/dist/services/definitions/weaviate.mjs +89 -2
- package/dist/services/definitions/weaviate.mjs.map +1 -0
- package/dist/services/definitions/whisper.d.mts +0 -1
- package/dist/services/definitions/whisper.d.mts.map +1 -1
- package/dist/services/definitions/whisper.mjs +61 -2
- package/dist/services/definitions/whisper.mjs.map +1 -0
- package/dist/services/registry.d.mts +0 -1
- package/dist/services/registry.d.mts.map +1 -1
- package/dist/services/registry.mjs +29 -2
- package/dist/services/registry.mjs.map +1 -0
- package/dist/services/registry.test.mjs +2 -2
- package/dist/skills/registry.d.mts +0 -1
- package/dist/skills/registry.d.mts.map +1 -1
- package/dist/skills/registry.mjs +214 -2
- package/dist/skills/registry.mjs.map +1 -0
- package/dist/types.d.mts +1 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +10 -0
- package/dist/types.mjs.map +1 -1
- package/dist/validator.d.mts +0 -1
- package/dist/validator.d.mts.map +1 -1
- package/dist/validator.mjs +110 -2
- package/dist/validator.mjs.map +1 -0
- package/dist/validator.test.mjs +4 -4
- package/dist/version-manager.d.mts +0 -1
- package/dist/version-manager.d.mts.map +1 -1
- package/dist/version-manager.mjs +1 -1
- package/dist/{vi.2VT5v0um-Cs3Z_fCB.mjs → vi.2VT5v0um-Qk6MgAnK.mjs} +1183 -1183
- package/dist/vi.2VT5v0um-Qk6MgAnK.mjs.map +1 -0
- package/package.json +14 -13
- package/src/schema.ts +4 -1
- package/src/services/definitions/comfyui.ts +90 -0
- package/src/services/definitions/convex-dashboard.ts +48 -0
- package/src/services/definitions/convex.ts +123 -0
- package/src/services/definitions/desktop-environment.ts +163 -0
- package/src/services/definitions/index.ts +21 -0
- package/src/services/definitions/mission-control.ts +71 -0
- package/src/services/definitions/stream-gateway.ts +148 -0
- package/src/services/definitions/tailscale.ts +2 -0
- package/src/services/definitions/usesend.ts +98 -0
- package/src/types.ts +2 -0
- package/tsdown.config.ts +1 -0
- package/dist/anything-llm-DIIPhz6K.mjs +0 -44
- package/dist/anything-llm-DIIPhz6K.mjs.map +0 -1
- package/dist/appflowy-DdoE-dKg.mjs +0 -45
- package/dist/appflowy-DdoE-dKg.mjs.map +0 -1
- package/dist/bare-metal-install-DpYZDoGq.mjs +0 -224
- package/dist/bare-metal-install-DpYZDoGq.mjs.map +0 -1
- package/dist/bare-metal-partition-CYlOxf9B.mjs +0 -48
- package/dist/bare-metal-partition-CYlOxf9B.mjs.map +0 -1
- package/dist/beszel-DHAG1zl0.mjs +0 -45
- package/dist/beszel-DHAG1zl0.mjs.map +0 -1
- package/dist/browserless-gUuvGmMD.mjs +0 -85
- package/dist/browserless-gUuvGmMD.mjs.map +0 -1
- package/dist/caddy-BJDrqnmw.mjs +0 -77
- package/dist/caddy-BJDrqnmw.mjs.map +0 -1
- package/dist/caddy-_NIdWKrf.mjs +0 -52
- package/dist/caddy-_NIdWKrf.mjs.map +0 -1
- package/dist/chromadb-g4rIsfAl.mjs +0 -63
- package/dist/chromadb-g4rIsfAl.mjs.map +0 -1
- package/dist/claude-code-DPRA1fy_.mjs +0 -52
- package/dist/claude-code-DPRA1fy_.mjs.map +0 -1
- package/dist/code-server-BdZZxxm5.mjs +0 -66
- package/dist/code-server-BdZZxxm5.mjs.map +0 -1
- package/dist/codex-DFVzfrfX.mjs +0 -45
- package/dist/codex-DFVzfrfX.mjs.map +0 -1
- package/dist/composer-CSM5YycB.mjs +0 -287
- package/dist/composer-CSM5YycB.mjs.map +0 -1
- package/dist/coolify-Z5_zDgM3.mjs +0 -49
- package/dist/coolify-Z5_zDgM3.mjs.map +0 -1
- package/dist/definitions-BXpb1kzs.mjs +0 -138
- package/dist/definitions-BXpb1kzs.mjs.map +0 -1
- package/dist/dify-jDc9U6Ku.mjs +0 -81
- package/dist/dify-jDc9U6Ku.mjs.map +0 -1
- package/dist/docsgpt-BXM1c2JC.mjs +0 -45
- package/dist/docsgpt-BXM1c2JC.mjs.map +0 -1
- package/dist/dokploy-Ci8_fb0_.mjs +0 -49
- package/dist/dokploy-Ci8_fb0_.mjs.map +0 -1
- package/dist/dozzle-fAt2sLRL.mjs +0 -41
- package/dist/dozzle-fAt2sLRL.mjs.map +0 -1
- package/dist/env-D2h46lHT.mjs +0 -250
- package/dist/env-D2h46lHT.mjs.map +0 -1
- package/dist/ffmpeg-BCtnA8m_.mjs +0 -66
- package/dist/ffmpeg-BCtnA8m_.mjs.map +0 -1
- package/dist/flowise-CJTTBa7J.mjs +0 -45
- package/dist/flowise-CJTTBa7J.mjs.map +0 -1
- package/dist/gemini-cli-Bfwv6hYe.mjs +0 -46
- package/dist/gemini-cli-Bfwv6hYe.mjs.map +0 -1
- package/dist/gitea-BGkqa-sD.mjs +0 -49
- package/dist/gitea-BGkqa-sD.mjs.map +0 -1
- package/dist/gotify-D7p8oNM3.mjs +0 -62
- package/dist/gotify-D7p8oNM3.mjs.map +0 -1
- package/dist/grafana-BlnWc6js.mjs +0 -63
- package/dist/grafana-BlnWc6js.mjs.map +0 -1
- package/dist/grafana-D3kIm8RX.mjs +0 -293
- package/dist/grafana-D3kIm8RX.mjs.map +0 -1
- package/dist/kimi-BFu1v1sU.mjs +0 -46
- package/dist/kimi-BFu1v1sU.mjs.map +0 -1
- package/dist/lasuite-meet-agents-nlPhMEaN.mjs +0 -36
- package/dist/lasuite-meet-agents-nlPhMEaN.mjs.map +0 -1
- package/dist/lasuite-meet-backend-9H7rZ8Pc.mjs +0 -134
- package/dist/lasuite-meet-backend-9H7rZ8Pc.mjs.map +0 -1
- package/dist/lasuite-meet-frontend-B4xNbnBa.mjs +0 -48
- package/dist/lasuite-meet-frontend-B4xNbnBa.mjs.map +0 -1
- package/dist/librechat-CoPIHXKK.mjs +0 -50
- package/dist/librechat-CoPIHXKK.mjs.map +0 -1
- package/dist/lightpanda-QchAPgNX.mjs +0 -59
- package/dist/lightpanda-QchAPgNX.mjs.map +0 -1
- package/dist/litellm-Dgl6iTry.mjs +0 -47
- package/dist/litellm-Dgl6iTry.mjs.map +0 -1
- package/dist/livekit-C13SxlVB.mjs +0 -56
- package/dist/livekit-C13SxlVB.mjs.map +0 -1
- package/dist/magic-string.es-Dew0Rnsa.mjs.map +0 -1
- package/dist/matomo-CiOoggYl.mjs +0 -80
- package/dist/matomo-CiOoggYl.mjs.map +0 -1
- package/dist/matrix-synapse-CP20A7NN.mjs +0 -88
- package/dist/matrix-synapse-CP20A7NN.mjs.map +0 -1
- package/dist/mattermost-CeFVuhIr.mjs +0 -61
- package/dist/mattermost-CeFVuhIr.mjs.map +0 -1
- package/dist/meilisearch-CLiQiTdN.mjs +0 -78
- package/dist/meilisearch-CLiQiTdN.mjs.map +0 -1
- package/dist/minio-_QuguAeo.mjs +0 -102
- package/dist/minio-_QuguAeo.mjs.map +0 -1
- package/dist/mixpost-eSFPM9XK.mjs +0 -87
- package/dist/mixpost-eSFPM9XK.mjs.map +0 -1
- package/dist/motion-canvas-Bk1ruvuX.mjs +0 -52
- package/dist/motion-canvas-Bk1ruvuX.mjs.map +0 -1
- package/dist/n8n-W5qeU34C.mjs +0 -154
- package/dist/n8n-W5qeU34C.mjs.map +0 -1
- package/dist/n8n-workflows-BPmKVx8z.mjs +0 -75
- package/dist/n8n-workflows-BPmKVx8z.mjs.map +0 -1
- package/dist/native-services-CwOCM-Xz.mjs +0 -78
- package/dist/native-services-CwOCM-Xz.mjs.map +0 -1
- package/dist/nocodb-DQNbSYh_.mjs +0 -45
- package/dist/nocodb-DQNbSYh_.mjs.map +0 -1
- package/dist/ntfy-B8_cZAx2.mjs +0 -63
- package/dist/ntfy-B8_cZAx2.mjs.map +0 -1
- package/dist/ollama-BiKAypcO.mjs +0 -66
- package/dist/ollama-BiKAypcO.mjs.map +0 -1
- package/dist/open-webui-DZOG4_xL.mjs +0 -50
- package/dist/open-webui-DZOG4_xL.mjs.map +0 -1
- package/dist/opencode-Dvfh5KvA.mjs +0 -50
- package/dist/opencode-Dvfh5KvA.mjs.map +0 -1
- package/dist/openpanel-BuWHhDze.mjs +0 -46
- package/dist/openpanel-BuWHhDze.mjs.map +0 -1
- package/dist/outline-Dy-YzdYS.mjs +0 -74
- package/dist/outline-Dy-YzdYS.mjs.map +0 -1
- package/dist/paperless-ngx-DVtWWpKg.mjs +0 -93
- package/dist/paperless-ngx-DVtWWpKg.mjs.map +0 -1
- package/dist/playwright-server-Boiz8--G.mjs +0 -42
- package/dist/playwright-server-Boiz8--G.mjs.map +0 -1
- package/dist/portainer-D9MU96UI.mjs +0 -49
- package/dist/portainer-D9MU96UI.mjs.map +0 -1
- package/dist/postgres-init-BiM-xZtq.mjs +0 -151
- package/dist/postgres-init-BiM-xZtq.mjs.map +0 -1
- package/dist/postgresql-s65Z9RqR.mjs +0 -84
- package/dist/postgresql-s65Z9RqR.mjs.map +0 -1
- package/dist/postiz-U6EK23EY.mjs +0 -83
- package/dist/postiz-U6EK23EY.mjs.map +0 -1
- package/dist/prometheus-WOlk-a1G.mjs +0 -107
- package/dist/prometheus-WOlk-a1G.mjs.map +0 -1
- package/dist/prometheus-x901F67p.mjs +0 -52
- package/dist/prometheus-x901F67p.mjs.map +0 -1
- package/dist/qdrant-DZW9uW4e.mjs +0 -77
- package/dist/qdrant-DZW9uW4e.mjs.map +0 -1
- package/dist/readme-C7M3QE9a.mjs +0 -199
- package/dist/readme-C7M3QE9a.mjs.map +0 -1
- package/dist/redis-DPMOf237.mjs +0 -91
- package/dist/redis-DPMOf237.mjs.map +0 -1
- package/dist/registry-CqLarEm5.mjs +0 -30
- package/dist/registry-CqLarEm5.mjs.map +0 -1
- package/dist/registry-DLX9Q4VQ.mjs +0 -215
- package/dist/registry-DLX9Q4VQ.mjs.map +0 -1
- package/dist/remotion-COkr0wpr.mjs +0 -55
- package/dist/remotion-COkr0wpr.mjs.map +0 -1
- package/dist/resolver-Dl5clk-d.mjs +0 -194
- package/dist/resolver-Dl5clk-d.mjs.map +0 -1
- package/dist/rocketchat-BebQT1MZ.mjs +0 -57
- package/dist/rocketchat-BebQT1MZ.mjs.map +0 -1
- package/dist/schema-PSUY6yJU.d.mts +0 -700
- package/dist/schema-PSUY6yJU.d.mts.map +0 -1
- package/dist/scripts-DsljWbP4.mjs +0 -351
- package/dist/scripts-DsljWbP4.mjs.map +0 -1
- package/dist/searxng-tJpBkchC.mjs +0 -65
- package/dist/searxng-tJpBkchC.mjs.map +0 -1
- package/dist/skills-DWG72Y3X.mjs +0 -587
- package/dist/skills-DWG72Y3X.mjs.map +0 -1
- package/dist/stable-diffusion-BulAzkyT.mjs +0 -48
- package/dist/stable-diffusion-BulAzkyT.mjs.map +0 -1
- package/dist/steel-browser-Cc0bYBjM.mjs +0 -77
- package/dist/steel-browser-Cc0bYBjM.mjs.map +0 -1
- package/dist/tailscale-CrM4EZlF.mjs +0 -69
- package/dist/tailscale-CrM4EZlF.mjs.map +0 -1
- package/dist/temporal-49gA0msh.mjs +0 -100
- package/dist/temporal-49gA0msh.mjs.map +0 -1
- package/dist/traefik-Da-c1f55.mjs +0 -58
- package/dist/traefik-Da-c1f55.mjs.map +0 -1
- package/dist/umami-csBSsHqO.mjs +0 -46
- package/dist/umami-csBSsHqO.mjs.map +0 -1
- package/dist/uptime-kuma-D0NvVuXD.mjs +0 -51
- package/dist/uptime-kuma-D0NvVuXD.mjs.map +0 -1
- package/dist/validator-2FspYNva.mjs +0 -111
- package/dist/validator-2FspYNva.mjs.map +0 -1
- package/dist/valkey-BCZqGJ0L.mjs +0 -61
- package/dist/valkey-BCZqGJ0L.mjs.map +0 -1
- package/dist/vi.2VT5v0um-Cs3Z_fCB.mjs.map +0 -1
- package/dist/watchtower-BWuvFGpA.mjs +0 -47
- package/dist/watchtower-BWuvFGpA.mjs.map +0 -1
- package/dist/weaviate-DttY1Hn7.mjs +0 -90
- package/dist/weaviate-DttY1Hn7.mjs.map +0 -1
- package/dist/whisper-CLu7-Vd8.mjs +0 -62
- package/dist/whisper-CLu7-Vd8.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis-DPMOf237.mjs","names":[],"sources":["../src/services/definitions/redis.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const redisDefinition: ServiceDefinition = {\n\tid: \"redis\",\n\tname: \"Redis\",\n\tdescription:\n\t\t\"In-memory data store used for caching, session management, pub/sub messaging, and as a high-performance key-value database.\",\n\tcategory: \"database\",\n\ticon: \"🔴\",\n\n\timage: \"redis\",\n\timageTag: \"7-alpine\",\n\tports: [\n\t\t{\n\t\t\thost: 6379,\n\t\t\tcontainer: 6379,\n\t\t\tdescription: \"Redis server port\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"redis-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent Redis data\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"REDIS_PASSWORD\",\n\t\t\tdefaultValue: \"changeme\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Password for Redis authentication\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"redis-cli ping\",\n\t\tinterval: \"10s\",\n\t\ttimeout: \"5s\",\n\t\tretries: 3,\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [{ skillId: \"redis-cache\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"REDIS_HOST\",\n\t\t\tdefaultValue: \"redis\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Redis hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"REDIS_PORT\",\n\t\t\tdefaultValue: \"6379\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Redis port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"REDIS_PASSWORD\",\n\t\t\tdefaultValue: \"${REDIS_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Redis password for OpenClaw (references service password)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://redis.io/docs\",\n\ttags: [\"cache\", \"pubsub\", \"message-bus\", \"session-store\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [\"valkey\"],\n\n\tminMemoryMB: 128,\n\tgpuRequired: false,\n\n\tnativeSupported: true,\n\tnativeRecipes: [\n\t\t{\n\t\t\tplatform: \"linux\",\n\t\t\tinstallSteps: [\n\t\t\t\t\"command -v redis-server >/dev/null 2>&1 || (command -v apt-get >/dev/null 2>&1 && sudo apt-get update -qq && sudo apt-get install -y -qq redis-server)\",\n\t\t\t\t\"command -v redis-server >/dev/null 2>&1 || (command -v dnf >/dev/null 2>&1 && sudo dnf install -y redis)\",\n\t\t\t],\n\t\t\tstartCommand: \"sudo systemctl start redis-server 2>/dev/null || sudo systemctl start redis\",\n\t\t\tstopCommand: \"sudo systemctl stop redis-server 2>/dev/null || sudo systemctl stop redis\",\n\t\t\tconfigPath: \"/etc/redis/redis.conf\",\n\t\t\tconfigTemplate:\n\t\t\t\t\"# Generated for OpenClaw bare-metal\\nport 6379\\nrequirepass ${REDIS_PASSWORD}\\nbind 127.0.0.1 ::1\\n\",\n\t\t\tsystemdUnit: \"redis-server\",\n\t\t},\n\t],\n};\n"],"mappings":";AAEA,MAAa,kBAAqC;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,CAAC;EAAE,SAAS;EAAe,aAAa;EAAM,CAAC;CACvD,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAS;EAAU;EAAe;EAAgB;CACzD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,CAAC,SAAS;CAEzB,aAAa;CACb,aAAa;CAEb,iBAAiB;CACjB,eAAe,CACd;EACC,UAAU;EACV,cAAc,CACb,0JACA,2GACA;EACD,cAAc;EACd,aAAa;EACb,YAAY;EACZ,gBACC;EACD,aAAa;EACb,CACD;CACD"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { t as allServiceDefinitions } from "./definitions-BXpb1kzs.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/services/registry.ts
|
|
4
|
-
const registryMap = /* @__PURE__ */ new Map();
|
|
5
|
-
for (const def of allServiceDefinitions) {
|
|
6
|
-
if (registryMap.has(def.id)) throw new Error(`Duplicate service definition ID: "${def.id}". Each service must have a unique ID.`);
|
|
7
|
-
registryMap.set(def.id, def);
|
|
8
|
-
}
|
|
9
|
-
/** Readonly map of all registered services indexed by ID */
|
|
10
|
-
const serviceRegistry = registryMap;
|
|
11
|
-
/** Look up a service by its unique ID */
|
|
12
|
-
function getServiceById(id) {
|
|
13
|
-
return registryMap.get(id);
|
|
14
|
-
}
|
|
15
|
-
/** Get all services in a given category */
|
|
16
|
-
function getServicesByCategory(category) {
|
|
17
|
-
return allServiceDefinitions.filter((s) => s.category === category);
|
|
18
|
-
}
|
|
19
|
-
/** Get all registered services */
|
|
20
|
-
function getAllServices() {
|
|
21
|
-
return [...allServiceDefinitions];
|
|
22
|
-
}
|
|
23
|
-
/** Get services matching a specific tag */
|
|
24
|
-
function getServicesByTag(tag) {
|
|
25
|
-
return allServiceDefinitions.filter((s) => s.tags.includes(tag));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
//#endregion
|
|
29
|
-
export { serviceRegistry as a, getServicesByTag as i, getServiceById as n, getServicesByCategory as r, getAllServices as t };
|
|
30
|
-
//# sourceMappingURL=registry-CqLarEm5.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry-CqLarEm5.mjs","names":[],"sources":["../src/services/registry.ts"],"sourcesContent":["import type { ServiceCategory, ServiceDefinition } from \"../types.js\";\nimport { allServiceDefinitions } from \"./definitions/index.js\";\n\n// Build the registry map and validate no duplicates\nconst registryMap = new Map<string, ServiceDefinition>();\n\nfor (const def of allServiceDefinitions) {\n\tif (registryMap.has(def.id)) {\n\t\tthrow new Error(\n\t\t\t`Duplicate service definition ID: \"${def.id}\". Each service must have a unique ID.`,\n\t\t);\n\t}\n\tregistryMap.set(def.id, def);\n}\n\n/** Readonly map of all registered services indexed by ID */\nexport const serviceRegistry: ReadonlyMap<string, ServiceDefinition> = registryMap;\n\n/** Look up a service by its unique ID */\nexport function getServiceById(id: string): ServiceDefinition | undefined {\n\treturn registryMap.get(id);\n}\n\n/** Get all services in a given category */\nexport function getServicesByCategory(category: ServiceCategory): ServiceDefinition[] {\n\treturn allServiceDefinitions.filter((s) => s.category === category);\n}\n\n/** Get all registered services */\nexport function getAllServices(): ServiceDefinition[] {\n\treturn [...allServiceDefinitions];\n}\n\n/** Get services matching a specific tag */\nexport function getServicesByTag(tag: string): ServiceDefinition[] {\n\treturn allServiceDefinitions.filter((s) => s.tags.includes(tag));\n}\n"],"mappings":";;;AAIA,MAAM,8BAAc,IAAI,KAAgC;AAExD,KAAK,MAAM,OAAO,uBAAuB;AACxC,KAAI,YAAY,IAAI,IAAI,GAAG,CAC1B,OAAM,IAAI,MACT,qCAAqC,IAAI,GAAG,wCAC5C;AAEF,aAAY,IAAI,IAAI,IAAI,IAAI;;;AAI7B,MAAa,kBAA0D;;AAGvE,SAAgB,eAAe,IAA2C;AACzE,QAAO,YAAY,IAAI,GAAG;;;AAI3B,SAAgB,sBAAsB,UAAgD;AACrF,QAAO,sBAAsB,QAAQ,MAAM,EAAE,aAAa,SAAS;;;AAIpE,SAAgB,iBAAsC;AACrD,QAAO,CAAC,GAAG,sBAAsB;;;AAIlC,SAAgB,iBAAiB,KAAkC;AAClE,QAAO,sBAAsB,QAAQ,MAAM,EAAE,KAAK,SAAS,IAAI,CAAC"}
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
//#region src/skills/registry.ts
|
|
2
|
-
const skillPacks = [
|
|
3
|
-
{
|
|
4
|
-
id: "video-creator",
|
|
5
|
-
name: "Video Creator",
|
|
6
|
-
description: "Create and process videos programmatically with FFmpeg, Remotion, and MinIO storage",
|
|
7
|
-
requiredServices: [
|
|
8
|
-
"ffmpeg",
|
|
9
|
-
"remotion",
|
|
10
|
-
"minio"
|
|
11
|
-
],
|
|
12
|
-
skills: [
|
|
13
|
-
"ffmpeg-process",
|
|
14
|
-
"remotion-render",
|
|
15
|
-
"minio-storage"
|
|
16
|
-
],
|
|
17
|
-
icon: "🎬",
|
|
18
|
-
tags: [
|
|
19
|
-
"video",
|
|
20
|
-
"media",
|
|
21
|
-
"rendering"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: "research-agent",
|
|
26
|
-
name: "Research Agent",
|
|
27
|
-
description: "Research the web, store findings in vector memory, and scrape full pages",
|
|
28
|
-
requiredServices: [
|
|
29
|
-
"qdrant",
|
|
30
|
-
"searxng",
|
|
31
|
-
"browserless"
|
|
32
|
-
],
|
|
33
|
-
skills: [
|
|
34
|
-
"qdrant-memory",
|
|
35
|
-
"searxng-search",
|
|
36
|
-
"browserless-browse"
|
|
37
|
-
],
|
|
38
|
-
icon: "🔬",
|
|
39
|
-
tags: [
|
|
40
|
-
"research",
|
|
41
|
-
"rag",
|
|
42
|
-
"web-scraping"
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
id: "social-media",
|
|
47
|
-
name: "Social Media",
|
|
48
|
-
description: "Process and manage social media content with video tools, caching, and asset storage",
|
|
49
|
-
requiredServices: [
|
|
50
|
-
"ffmpeg",
|
|
51
|
-
"redis",
|
|
52
|
-
"minio"
|
|
53
|
-
],
|
|
54
|
-
skills: [
|
|
55
|
-
"ffmpeg-process",
|
|
56
|
-
"redis-cache",
|
|
57
|
-
"minio-storage"
|
|
58
|
-
],
|
|
59
|
-
icon: "📱",
|
|
60
|
-
tags: [
|
|
61
|
-
"social",
|
|
62
|
-
"content",
|
|
63
|
-
"scheduling"
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
id: "dev-ops",
|
|
68
|
-
name: "DevOps",
|
|
69
|
-
description: "Monitor services, automate workflows, and manage infrastructure alerts",
|
|
70
|
-
requiredServices: [
|
|
71
|
-
"n8n",
|
|
72
|
-
"redis",
|
|
73
|
-
"uptime-kuma",
|
|
74
|
-
"grafana",
|
|
75
|
-
"prometheus"
|
|
76
|
-
],
|
|
77
|
-
skills: ["n8n-trigger", "redis-cache"],
|
|
78
|
-
icon: "⚙️",
|
|
79
|
-
tags: [
|
|
80
|
-
"devops",
|
|
81
|
-
"monitoring",
|
|
82
|
-
"automation"
|
|
83
|
-
]
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
id: "knowledge-base",
|
|
87
|
-
name: "Knowledge Base",
|
|
88
|
-
description: "Index documents with vector search and full-text search for comprehensive retrieval",
|
|
89
|
-
requiredServices: [
|
|
90
|
-
"qdrant",
|
|
91
|
-
"postgresql",
|
|
92
|
-
"meilisearch"
|
|
93
|
-
],
|
|
94
|
-
skills: ["qdrant-memory"],
|
|
95
|
-
icon: "📚",
|
|
96
|
-
tags: [
|
|
97
|
-
"knowledge",
|
|
98
|
-
"search",
|
|
99
|
-
"indexing"
|
|
100
|
-
]
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
id: "local-ai",
|
|
104
|
-
name: "Local AI",
|
|
105
|
-
description: "Run local LLM inference and speech-to-text transcription without external APIs",
|
|
106
|
-
requiredServices: ["ollama", "whisper"],
|
|
107
|
-
skills: ["ollama-local-llm", "whisper-transcribe"],
|
|
108
|
-
icon: "🤖",
|
|
109
|
-
tags: [
|
|
110
|
-
"local-llm",
|
|
111
|
-
"transcription",
|
|
112
|
-
"offline"
|
|
113
|
-
]
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
id: "content-creator",
|
|
117
|
-
name: "Content Creator",
|
|
118
|
-
description: "Full social media content pipeline with scheduling, media processing, analytics, and storage",
|
|
119
|
-
requiredServices: [
|
|
120
|
-
"postiz",
|
|
121
|
-
"ffmpeg",
|
|
122
|
-
"minio",
|
|
123
|
-
"redis",
|
|
124
|
-
"postgresql"
|
|
125
|
-
],
|
|
126
|
-
skills: [
|
|
127
|
-
"ffmpeg-process",
|
|
128
|
-
"minio-storage",
|
|
129
|
-
"redis-cache"
|
|
130
|
-
],
|
|
131
|
-
icon: "📱",
|
|
132
|
-
tags: [
|
|
133
|
-
"social-media",
|
|
134
|
-
"content",
|
|
135
|
-
"scheduling",
|
|
136
|
-
"analytics"
|
|
137
|
-
]
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
id: "ai-playground",
|
|
141
|
-
name: "AI Playground",
|
|
142
|
-
description: "Full AI experimentation stack with chat UIs, LLM gateway, local models, and document chat",
|
|
143
|
-
requiredServices: [
|
|
144
|
-
"ollama",
|
|
145
|
-
"open-webui",
|
|
146
|
-
"litellm"
|
|
147
|
-
],
|
|
148
|
-
skills: ["ollama-local-llm"],
|
|
149
|
-
icon: "🧪",
|
|
150
|
-
tags: [
|
|
151
|
-
"ai",
|
|
152
|
-
"llm",
|
|
153
|
-
"playground",
|
|
154
|
-
"experimentation"
|
|
155
|
-
]
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
id: "coding-team",
|
|
159
|
-
name: "Coding Team",
|
|
160
|
-
description: "AI-powered development environment with coding agents, Git hosting, and browser IDE",
|
|
161
|
-
requiredServices: [
|
|
162
|
-
"claude-code",
|
|
163
|
-
"gitea",
|
|
164
|
-
"code-server"
|
|
165
|
-
],
|
|
166
|
-
skills: [],
|
|
167
|
-
icon: "💻",
|
|
168
|
-
tags: [
|
|
169
|
-
"coding",
|
|
170
|
-
"development",
|
|
171
|
-
"ide",
|
|
172
|
-
"git"
|
|
173
|
-
]
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
id: "knowledge-hub",
|
|
177
|
-
name: "Knowledge Hub",
|
|
178
|
-
description: "Enterprise knowledge management with wiki, document processing, analytics, and vector search",
|
|
179
|
-
requiredServices: [
|
|
180
|
-
"outline",
|
|
181
|
-
"paperless-ngx",
|
|
182
|
-
"qdrant",
|
|
183
|
-
"postgresql",
|
|
184
|
-
"redis"
|
|
185
|
-
],
|
|
186
|
-
skills: ["qdrant-memory"],
|
|
187
|
-
icon: "📚",
|
|
188
|
-
tags: [
|
|
189
|
-
"knowledge",
|
|
190
|
-
"wiki",
|
|
191
|
-
"documents",
|
|
192
|
-
"search"
|
|
193
|
-
]
|
|
194
|
-
}
|
|
195
|
-
];
|
|
196
|
-
const packMap = /* @__PURE__ */ new Map();
|
|
197
|
-
for (const pack of skillPacks) {
|
|
198
|
-
if (packMap.has(pack.id)) throw new Error(`Duplicate skill pack ID: "${pack.id}"`);
|
|
199
|
-
packMap.set(pack.id, pack);
|
|
200
|
-
}
|
|
201
|
-
const skillPackRegistry = packMap;
|
|
202
|
-
function getSkillPackById(id) {
|
|
203
|
-
return packMap.get(id);
|
|
204
|
-
}
|
|
205
|
-
function getAllSkillPacks() {
|
|
206
|
-
return [...skillPacks];
|
|
207
|
-
}
|
|
208
|
-
/** Get skill packs whose required services are all present in the given service list */
|
|
209
|
-
function getCompatibleSkillPacks(availableServiceIds) {
|
|
210
|
-
return skillPacks.filter((pack) => pack.requiredServices.every((req) => availableServiceIds.includes(req)));
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
//#endregion
|
|
214
|
-
export { skillPackRegistry as i, getCompatibleSkillPacks as n, getSkillPackById as r, getAllSkillPacks as t };
|
|
215
|
-
//# sourceMappingURL=registry-DLX9Q4VQ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry-DLX9Q4VQ.mjs","names":[],"sources":["../src/skills/registry.ts"],"sourcesContent":["import type { SkillPack } from \"../types.js\";\n\nconst skillPacks: SkillPack[] = [\n\t{\n\t\tid: \"video-creator\",\n\t\tname: \"Video Creator\",\n\t\tdescription:\n\t\t\t\"Create and process videos programmatically with FFmpeg, Remotion, and MinIO storage\",\n\t\trequiredServices: [\"ffmpeg\", \"remotion\", \"minio\"],\n\t\tskills: [\"ffmpeg-process\", \"remotion-render\", \"minio-storage\"],\n\t\ticon: \"🎬\",\n\t\ttags: [\"video\", \"media\", \"rendering\"],\n\t},\n\t{\n\t\tid: \"research-agent\",\n\t\tname: \"Research Agent\",\n\t\tdescription: \"Research the web, store findings in vector memory, and scrape full pages\",\n\t\trequiredServices: [\"qdrant\", \"searxng\", \"browserless\"],\n\t\tskills: [\"qdrant-memory\", \"searxng-search\", \"browserless-browse\"],\n\t\ticon: \"🔬\",\n\t\ttags: [\"research\", \"rag\", \"web-scraping\"],\n\t},\n\t{\n\t\tid: \"social-media\",\n\t\tname: \"Social Media\",\n\t\tdescription:\n\t\t\t\"Process and manage social media content with video tools, caching, and asset storage\",\n\t\trequiredServices: [\"ffmpeg\", \"redis\", \"minio\"],\n\t\tskills: [\"ffmpeg-process\", \"redis-cache\", \"minio-storage\"],\n\t\ticon: \"📱\",\n\t\ttags: [\"social\", \"content\", \"scheduling\"],\n\t},\n\t{\n\t\tid: \"dev-ops\",\n\t\tname: \"DevOps\",\n\t\tdescription: \"Monitor services, automate workflows, and manage infrastructure alerts\",\n\t\trequiredServices: [\"n8n\", \"redis\", \"uptime-kuma\", \"grafana\", \"prometheus\"],\n\t\tskills: [\"n8n-trigger\", \"redis-cache\"],\n\t\ticon: \"⚙️\",\n\t\ttags: [\"devops\", \"monitoring\", \"automation\"],\n\t},\n\t{\n\t\tid: \"knowledge-base\",\n\t\tname: \"Knowledge Base\",\n\t\tdescription:\n\t\t\t\"Index documents with vector search and full-text search for comprehensive retrieval\",\n\t\trequiredServices: [\"qdrant\", \"postgresql\", \"meilisearch\"],\n\t\tskills: [\"qdrant-memory\"],\n\t\ticon: \"📚\",\n\t\ttags: [\"knowledge\", \"search\", \"indexing\"],\n\t},\n\t{\n\t\tid: \"local-ai\",\n\t\tname: \"Local AI\",\n\t\tdescription: \"Run local LLM inference and speech-to-text transcription without external APIs\",\n\t\trequiredServices: [\"ollama\", \"whisper\"],\n\t\tskills: [\"ollama-local-llm\", \"whisper-transcribe\"],\n\t\ticon: \"🤖\",\n\t\ttags: [\"local-llm\", \"transcription\", \"offline\"],\n\t},\n\t{\n\t\tid: \"content-creator\",\n\t\tname: \"Content Creator\",\n\t\tdescription:\n\t\t\t\"Full social media content pipeline with scheduling, media processing, analytics, and storage\",\n\t\trequiredServices: [\"postiz\", \"ffmpeg\", \"minio\", \"redis\", \"postgresql\"],\n\t\tskills: [\"ffmpeg-process\", \"minio-storage\", \"redis-cache\"],\n\t\ticon: \"📱\",\n\t\ttags: [\"social-media\", \"content\", \"scheduling\", \"analytics\"],\n\t},\n\t{\n\t\tid: \"ai-playground\",\n\t\tname: \"AI Playground\",\n\t\tdescription:\n\t\t\t\"Full AI experimentation stack with chat UIs, LLM gateway, local models, and document chat\",\n\t\trequiredServices: [\"ollama\", \"open-webui\", \"litellm\"],\n\t\tskills: [\"ollama-local-llm\"],\n\t\ticon: \"🧪\",\n\t\ttags: [\"ai\", \"llm\", \"playground\", \"experimentation\"],\n\t},\n\t{\n\t\tid: \"coding-team\",\n\t\tname: \"Coding Team\",\n\t\tdescription:\n\t\t\t\"AI-powered development environment with coding agents, Git hosting, and browser IDE\",\n\t\trequiredServices: [\"claude-code\", \"gitea\", \"code-server\"],\n\t\tskills: [],\n\t\ticon: \"💻\",\n\t\ttags: [\"coding\", \"development\", \"ide\", \"git\"],\n\t},\n\t{\n\t\tid: \"knowledge-hub\",\n\t\tname: \"Knowledge Hub\",\n\t\tdescription:\n\t\t\t\"Enterprise knowledge management with wiki, document processing, analytics, and vector search\",\n\t\trequiredServices: [\"outline\", \"paperless-ngx\", \"qdrant\", \"postgresql\", \"redis\"],\n\t\tskills: [\"qdrant-memory\"],\n\t\ticon: \"📚\",\n\t\ttags: [\"knowledge\", \"wiki\", \"documents\", \"search\"],\n\t},\n];\n\nconst packMap = new Map<string, SkillPack>();\nfor (const pack of skillPacks) {\n\tif (packMap.has(pack.id)) {\n\t\tthrow new Error(`Duplicate skill pack ID: \"${pack.id}\"`);\n\t}\n\tpackMap.set(pack.id, pack);\n}\n\nexport const skillPackRegistry: ReadonlyMap<string, SkillPack> = packMap;\n\nexport function getSkillPackById(id: string): SkillPack | undefined {\n\treturn packMap.get(id);\n}\n\nexport function getAllSkillPacks(): SkillPack[] {\n\treturn [...skillPacks];\n}\n\n/** Get skill packs whose required services are all present in the given service list */\nexport function getCompatibleSkillPacks(availableServiceIds: string[]): SkillPack[] {\n\treturn skillPacks.filter((pack) =>\n\t\tpack.requiredServices.every((req) => availableServiceIds.includes(req)),\n\t);\n}\n"],"mappings":";AAEA,MAAM,aAA0B;CAC/B;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAY;GAAQ;EACjD,QAAQ;GAAC;GAAkB;GAAmB;GAAgB;EAC9D,MAAM;EACN,MAAM;GAAC;GAAS;GAAS;GAAY;EACrC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,kBAAkB;GAAC;GAAU;GAAW;GAAc;EACtD,QAAQ;GAAC;GAAiB;GAAkB;GAAqB;EACjE,MAAM;EACN,MAAM;GAAC;GAAY;GAAO;GAAe;EACzC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAS;GAAQ;EAC9C,QAAQ;GAAC;GAAkB;GAAe;GAAgB;EAC1D,MAAM;EACN,MAAM;GAAC;GAAU;GAAW;GAAa;EACzC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,kBAAkB;GAAC;GAAO;GAAS;GAAe;GAAW;GAAa;EAC1E,QAAQ,CAAC,eAAe,cAAc;EACtC,MAAM;EACN,MAAM;GAAC;GAAU;GAAc;GAAa;EAC5C;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAc;GAAc;EACzD,QAAQ,CAAC,gBAAgB;EACzB,MAAM;EACN,MAAM;GAAC;GAAa;GAAU;GAAW;EACzC;CACD;EACC,IAAI;EACJ,MAAM;EACN,aAAa;EACb,kBAAkB,CAAC,UAAU,UAAU;EACvC,QAAQ,CAAC,oBAAoB,qBAAqB;EAClD,MAAM;EACN,MAAM;GAAC;GAAa;GAAiB;GAAU;EAC/C;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAU;GAAS;GAAS;GAAa;EACtE,QAAQ;GAAC;GAAkB;GAAiB;GAAc;EAC1D,MAAM;EACN,MAAM;GAAC;GAAgB;GAAW;GAAc;GAAY;EAC5D;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAU;GAAc;GAAU;EACrD,QAAQ,CAAC,mBAAmB;EAC5B,MAAM;EACN,MAAM;GAAC;GAAM;GAAO;GAAc;GAAkB;EACpD;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAe;GAAS;GAAc;EACzD,QAAQ,EAAE;EACV,MAAM;EACN,MAAM;GAAC;GAAU;GAAe;GAAO;GAAM;EAC7C;CACD;EACC,IAAI;EACJ,MAAM;EACN,aACC;EACD,kBAAkB;GAAC;GAAW;GAAiB;GAAU;GAAc;GAAQ;EAC/E,QAAQ,CAAC,gBAAgB;EACzB,MAAM;EACN,MAAM;GAAC;GAAa;GAAQ;GAAa;GAAS;EAClD;CACD;AAED,MAAM,0BAAU,IAAI,KAAwB;AAC5C,KAAK,MAAM,QAAQ,YAAY;AAC9B,KAAI,QAAQ,IAAI,KAAK,GAAG,CACvB,OAAM,IAAI,MAAM,6BAA6B,KAAK,GAAG,GAAG;AAEzD,SAAQ,IAAI,KAAK,IAAI,KAAK;;AAG3B,MAAa,oBAAoD;AAEjE,SAAgB,iBAAiB,IAAmC;AACnE,QAAO,QAAQ,IAAI,GAAG;;AAGvB,SAAgB,mBAAgC;AAC/C,QAAO,CAAC,GAAG,WAAW;;;AAIvB,SAAgB,wBAAwB,qBAA4C;AACnF,QAAO,WAAW,QAAQ,SACzB,KAAK,iBAAiB,OAAO,QAAQ,oBAAoB,SAAS,IAAI,CAAC,CACvE"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/remotion.ts
|
|
2
|
-
const remotionDefinition = {
|
|
3
|
-
id: "remotion",
|
|
4
|
-
name: "Remotion Studio",
|
|
5
|
-
description: "Programmatic video creation framework for React that lets you create motion graphics and render videos using code.",
|
|
6
|
-
category: "media",
|
|
7
|
-
icon: "🎥",
|
|
8
|
-
image: "remotion-dev/studio",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 3020,
|
|
12
|
-
container: 3e3,
|
|
13
|
-
description: "Remotion Studio web interface",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [],
|
|
17
|
-
environment: [],
|
|
18
|
-
dependsOn: [],
|
|
19
|
-
restartPolicy: "unless-stopped",
|
|
20
|
-
networks: ["openclaw-network"],
|
|
21
|
-
skills: [{
|
|
22
|
-
skillId: "remotion-render",
|
|
23
|
-
autoInstall: true
|
|
24
|
-
}],
|
|
25
|
-
openclawEnvVars: [{
|
|
26
|
-
key: "REMOTION_HOST",
|
|
27
|
-
defaultValue: "remotion",
|
|
28
|
-
secret: false,
|
|
29
|
-
description: "Remotion hostname for OpenClaw",
|
|
30
|
-
required: true
|
|
31
|
-
}, {
|
|
32
|
-
key: "REMOTION_PORT",
|
|
33
|
-
defaultValue: "3000",
|
|
34
|
-
secret: false,
|
|
35
|
-
description: "Remotion port for OpenClaw",
|
|
36
|
-
required: true
|
|
37
|
-
}],
|
|
38
|
-
docsUrl: "https://www.remotion.dev/docs/",
|
|
39
|
-
tags: [
|
|
40
|
-
"video",
|
|
41
|
-
"react",
|
|
42
|
-
"motion-graphics",
|
|
43
|
-
"rendering"
|
|
44
|
-
],
|
|
45
|
-
maturity: "beta",
|
|
46
|
-
requires: [],
|
|
47
|
-
recommends: [],
|
|
48
|
-
conflictsWith: [],
|
|
49
|
-
minMemoryMB: 512,
|
|
50
|
-
gpuRequired: false
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
//#endregion
|
|
54
|
-
export { remotionDefinition as t };
|
|
55
|
-
//# sourceMappingURL=remotion-COkr0wpr.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remotion-COkr0wpr.mjs","names":[],"sources":["../src/services/definitions/remotion.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const remotionDefinition: ServiceDefinition = {\n\tid: \"remotion\",\n\tname: \"Remotion Studio\",\n\tdescription:\n\t\t\"Programmatic video creation framework for React that lets you create motion graphics and render videos using code.\",\n\tcategory: \"media\",\n\ticon: \"🎥\",\n\n\timage: \"remotion-dev/studio\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3020,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Remotion Studio web interface\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [],\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [{ skillId: \"remotion-render\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"REMOTION_HOST\",\n\t\t\tdefaultValue: \"remotion\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Remotion hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"REMOTION_PORT\",\n\t\t\tdefaultValue: \"3000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Remotion port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://www.remotion.dev/docs/\",\n\ttags: [\"video\", \"react\", \"motion-graphics\", \"rendering\"],\n\tmaturity: \"beta\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,qBAAwC;CACpD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa,EAAE;CACf,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,CAAC;EAAE,SAAS;EAAmB,aAAa;EAAM,CAAC;CAC3D,iBAAiB,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CAED,SAAS;CACT,MAAM;EAAC;EAAS;EAAS;EAAmB;EAAY;CACxD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import { n as getServiceById } from "./registry-CqLarEm5.mjs";
|
|
2
|
-
import { r as getSkillPackById } from "./registry-DLX9Q4VQ.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/resolver.ts
|
|
5
|
-
/**
|
|
6
|
-
* Resolves user selections into a complete, valid service list.
|
|
7
|
-
*
|
|
8
|
-
* Algorithm:
|
|
9
|
-
* 1. Expand skill pack requirements into service list
|
|
10
|
-
* 2. Resolve transitive `requires` dependencies (iterate until stable)
|
|
11
|
-
* 3. Detect `conflictsWith` violations
|
|
12
|
-
* 4. Check platform compatibility and GPU requirements
|
|
13
|
-
* 5. Estimate total memory (sum minMemoryMB)
|
|
14
|
-
* 6. Deduplicate
|
|
15
|
-
* 7. Topological sort by dependency graph, alphabetical for ties
|
|
16
|
-
*
|
|
17
|
-
* Deterministic: same input -> same output, always.
|
|
18
|
-
*/
|
|
19
|
-
function resolve(input) {
|
|
20
|
-
const addedDependencies = [];
|
|
21
|
-
const warnings = [];
|
|
22
|
-
const errors = [];
|
|
23
|
-
const serviceIds = new Set(input.services);
|
|
24
|
-
const serviceAddedBy = /* @__PURE__ */ new Map();
|
|
25
|
-
for (const id of input.services) serviceAddedBy.set(id, "user");
|
|
26
|
-
for (const packId of input.skillPacks) {
|
|
27
|
-
const pack = getSkillPackById(packId);
|
|
28
|
-
if (!pack) {
|
|
29
|
-
errors.push({
|
|
30
|
-
type: "unknown_skill_pack",
|
|
31
|
-
message: `Unknown skill pack: "${packId}"`
|
|
32
|
-
});
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
for (const requiredService of pack.requiredServices) if (!serviceIds.has(requiredService)) {
|
|
36
|
-
serviceIds.add(requiredService);
|
|
37
|
-
serviceAddedBy.set(requiredService, "skill-pack");
|
|
38
|
-
addedDependencies.push({
|
|
39
|
-
service: requiredService,
|
|
40
|
-
reason: `Required by skill pack: ${pack.name}`
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (input.proxy && input.proxy !== "none") {
|
|
45
|
-
if (!serviceIds.has(input.proxy)) {
|
|
46
|
-
serviceIds.add(input.proxy);
|
|
47
|
-
serviceAddedBy.set(input.proxy, "proxy");
|
|
48
|
-
addedDependencies.push({
|
|
49
|
-
service: input.proxy,
|
|
50
|
-
reason: `Selected as reverse proxy`
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (input.monitoring) {
|
|
55
|
-
for (const svc of [
|
|
56
|
-
"uptime-kuma",
|
|
57
|
-
"grafana",
|
|
58
|
-
"prometheus"
|
|
59
|
-
]) if (!serviceIds.has(svc)) {
|
|
60
|
-
serviceIds.add(svc);
|
|
61
|
-
serviceAddedBy.set(svc, "monitoring");
|
|
62
|
-
addedDependencies.push({
|
|
63
|
-
service: svc,
|
|
64
|
-
reason: "Included with monitoring stack"
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
const unknownIds = [];
|
|
69
|
-
for (const id of serviceIds) if (!getServiceById(id)) unknownIds.push(id);
|
|
70
|
-
if (unknownIds.length > 0) for (const id of unknownIds) {
|
|
71
|
-
errors.push({
|
|
72
|
-
type: "unknown_service",
|
|
73
|
-
message: `Unknown service: "${id}"`
|
|
74
|
-
});
|
|
75
|
-
serviceIds.delete(id);
|
|
76
|
-
}
|
|
77
|
-
let changed = true;
|
|
78
|
-
const maxIterations = 50;
|
|
79
|
-
let iteration = 0;
|
|
80
|
-
while (changed && iteration < maxIterations) {
|
|
81
|
-
changed = false;
|
|
82
|
-
iteration++;
|
|
83
|
-
for (const id of [...serviceIds]) {
|
|
84
|
-
const def = getServiceById(id);
|
|
85
|
-
if (!def) continue;
|
|
86
|
-
for (const reqId of def.requires) if (!serviceIds.has(reqId)) {
|
|
87
|
-
serviceIds.add(reqId);
|
|
88
|
-
serviceAddedBy.set(reqId, "dependency");
|
|
89
|
-
addedDependencies.push({
|
|
90
|
-
service: reqId,
|
|
91
|
-
reason: `Required by ${def.name}`
|
|
92
|
-
});
|
|
93
|
-
changed = true;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
const resolvedDefs = [];
|
|
98
|
-
for (const id of serviceIds) {
|
|
99
|
-
const def = getServiceById(id);
|
|
100
|
-
if (def) resolvedDefs.push(def);
|
|
101
|
-
}
|
|
102
|
-
for (let i = 0; i < resolvedDefs.length; i++) for (let j = i + 1; j < resolvedDefs.length; j++) {
|
|
103
|
-
const a = resolvedDefs[i];
|
|
104
|
-
const b = resolvedDefs[j];
|
|
105
|
-
if (a.conflictsWith.includes(b.id) || b.conflictsWith.includes(a.id)) errors.push({
|
|
106
|
-
type: "conflict",
|
|
107
|
-
message: `${a.name} and ${b.name} cannot be used together`
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
if (input.platform) {
|
|
111
|
-
for (const def of resolvedDefs) if (def.platforms && def.platforms.length > 0 && !def.platforms.includes(input.platform)) warnings.push({
|
|
112
|
-
type: "platform",
|
|
113
|
-
message: `${def.name} may not be compatible with ${input.platform}. Supported: ${def.platforms.join(", ")}`
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
const gpuServices = resolvedDefs.filter((d) => d.gpuRequired);
|
|
117
|
-
if (gpuServices.length > 0 && !input.gpu) for (const svc of gpuServices) warnings.push({
|
|
118
|
-
type: "gpu",
|
|
119
|
-
message: `${svc.name} requires GPU passthrough. Enable --gpu flag for optimal performance.`
|
|
120
|
-
});
|
|
121
|
-
let estimatedMemoryMB = 512;
|
|
122
|
-
for (const def of resolvedDefs) estimatedMemoryMB += def.minMemoryMB ?? 128;
|
|
123
|
-
if (estimatedMemoryMB > 8192) warnings.push({
|
|
124
|
-
type: "memory",
|
|
125
|
-
message: `Estimated ${(estimatedMemoryMB / 1024).toFixed(1)}GB RAM required. Ensure your server has sufficient resources.`
|
|
126
|
-
});
|
|
127
|
-
else if (estimatedMemoryMB > 4096) warnings.push({
|
|
128
|
-
type: "memory",
|
|
129
|
-
message: `Estimated ${(estimatedMemoryMB / 1024).toFixed(1)}GB RAM required. A server with at least 8GB RAM is recommended.`
|
|
130
|
-
});
|
|
131
|
-
else if (estimatedMemoryMB > 2048) warnings.push({
|
|
132
|
-
type: "memory",
|
|
133
|
-
message: `Estimated ${(estimatedMemoryMB / 1024).toFixed(1)}GB RAM required.`
|
|
134
|
-
});
|
|
135
|
-
return {
|
|
136
|
-
services: topologicalSort(resolvedDefs).map((def) => ({
|
|
137
|
-
definition: def,
|
|
138
|
-
addedBy: serviceAddedBy.get(def.id) ?? "user"
|
|
139
|
-
})),
|
|
140
|
-
addedDependencies,
|
|
141
|
-
removedConflicts: [],
|
|
142
|
-
warnings,
|
|
143
|
-
errors,
|
|
144
|
-
isValid: errors.length === 0,
|
|
145
|
-
estimatedMemoryMB
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Topological sort using Kahn's algorithm.
|
|
150
|
-
* Ties broken alphabetically by service ID for determinism.
|
|
151
|
-
*/
|
|
152
|
-
function topologicalSort(definitions) {
|
|
153
|
-
const idSet = new Set(definitions.map((d) => d.id));
|
|
154
|
-
const graph = /* @__PURE__ */ new Map();
|
|
155
|
-
const inDegree = /* @__PURE__ */ new Map();
|
|
156
|
-
for (const def of definitions) {
|
|
157
|
-
graph.set(def.id, []);
|
|
158
|
-
inDegree.set(def.id, 0);
|
|
159
|
-
}
|
|
160
|
-
for (const def of definitions) for (const reqId of [...def.requires, ...def.dependsOn]) if (idSet.has(reqId)) {
|
|
161
|
-
graph.get(reqId)?.push(def.id);
|
|
162
|
-
inDegree.set(def.id, (inDegree.get(def.id) ?? 0) + 1);
|
|
163
|
-
}
|
|
164
|
-
const queue = [];
|
|
165
|
-
for (const [id, deg] of inDegree) if (deg === 0) queue.push(id);
|
|
166
|
-
queue.sort();
|
|
167
|
-
const sorted = [];
|
|
168
|
-
const defMap = new Map(definitions.map((d) => [d.id, d]));
|
|
169
|
-
while (queue.length > 0) {
|
|
170
|
-
const id = queue.shift();
|
|
171
|
-
const def = defMap.get(id);
|
|
172
|
-
if (def) sorted.push(def);
|
|
173
|
-
const neighbors = graph.get(id) ?? [];
|
|
174
|
-
const newReady = [];
|
|
175
|
-
for (const neighbor of neighbors) {
|
|
176
|
-
const deg = (inDegree.get(neighbor) ?? 0) - 1;
|
|
177
|
-
inDegree.set(neighbor, deg);
|
|
178
|
-
if (deg === 0) newReady.push(neighbor);
|
|
179
|
-
}
|
|
180
|
-
newReady.sort();
|
|
181
|
-
queue.push(...newReady);
|
|
182
|
-
}
|
|
183
|
-
if (sorted.length < definitions.length) {
|
|
184
|
-
const sortedIds = new Set(sorted.map((d) => d.id));
|
|
185
|
-
const remaining = definitions.filter((d) => !sortedIds.has(d.id));
|
|
186
|
-
remaining.sort((a, b) => a.id.localeCompare(b.id));
|
|
187
|
-
sorted.push(...remaining);
|
|
188
|
-
}
|
|
189
|
-
return sorted;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
//#endregion
|
|
193
|
-
export { resolve as t };
|
|
194
|
-
//# sourceMappingURL=resolver-Dl5clk-d.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver-Dl5clk-d.mjs","names":[],"sources":["../src/resolver.ts"],"sourcesContent":["import { getServiceById } from \"./services/registry.js\";\nimport { getSkillPackById } from \"./skills/registry.js\";\nimport type {\n\tAddedDependency,\n\tResolvedService,\n\tResolverError,\n\tResolverInput,\n\tResolverOutput,\n\tServiceDefinition,\n\tWarning,\n} from \"./types.js\";\n\n/**\n * Resolves user selections into a complete, valid service list.\n *\n * Algorithm:\n * 1. Expand skill pack requirements into service list\n * 2. Resolve transitive `requires` dependencies (iterate until stable)\n * 3. Detect `conflictsWith` violations\n * 4. Check platform compatibility and GPU requirements\n * 5. Estimate total memory (sum minMemoryMB)\n * 6. Deduplicate\n * 7. Topological sort by dependency graph, alphabetical for ties\n *\n * Deterministic: same input -> same output, always.\n */\nexport function resolve(input: ResolverInput): ResolverOutput {\n\tconst addedDependencies: AddedDependency[] = [];\n\tconst warnings: Warning[] = [];\n\tconst errors: ResolverError[] = [];\n\n\t// Track all service IDs needed\n\tconst serviceIds = new Set<string>(input.services);\n\tconst serviceAddedBy = new Map<string, ResolvedService[\"addedBy\"]>();\n\n\t// Mark user-selected services\n\tfor (const id of input.services) {\n\t\tserviceAddedBy.set(id, \"user\");\n\t}\n\n\t// 1. Expand skill pack requirements\n\tfor (const packId of input.skillPacks) {\n\t\tconst pack = getSkillPackById(packId);\n\t\tif (!pack) {\n\t\t\terrors.push({\n\t\t\t\ttype: \"unknown_skill_pack\",\n\t\t\t\tmessage: `Unknown skill pack: \"${packId}\"`,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const requiredService of pack.requiredServices) {\n\t\t\tif (!serviceIds.has(requiredService)) {\n\t\t\t\tserviceIds.add(requiredService);\n\t\t\t\tserviceAddedBy.set(requiredService, \"skill-pack\");\n\t\t\t\taddedDependencies.push({\n\t\t\t\t\tservice: requiredService,\n\t\t\t\t\treason: `Required by skill pack: ${pack.name}`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add proxy if specified\n\tif (input.proxy && input.proxy !== \"none\") {\n\t\tif (!serviceIds.has(input.proxy)) {\n\t\t\tserviceIds.add(input.proxy);\n\t\t\tserviceAddedBy.set(input.proxy, \"proxy\");\n\t\t\taddedDependencies.push({\n\t\t\t\tservice: input.proxy,\n\t\t\t\treason: `Selected as reverse proxy`,\n\t\t\t});\n\t\t}\n\t}\n\n\t// Add monitoring stack if requested\n\tif (input.monitoring) {\n\t\tconst monitoringServices = [\"uptime-kuma\", \"grafana\", \"prometheus\"];\n\t\tfor (const svc of monitoringServices) {\n\t\t\tif (!serviceIds.has(svc)) {\n\t\t\t\tserviceIds.add(svc);\n\t\t\t\tserviceAddedBy.set(svc, \"monitoring\");\n\t\t\t\taddedDependencies.push({\n\t\t\t\t\tservice: svc,\n\t\t\t\t\treason: \"Included with monitoring stack\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Validate all service IDs exist\n\tconst unknownIds: string[] = [];\n\tfor (const id of serviceIds) {\n\t\tif (!getServiceById(id)) {\n\t\t\tunknownIds.push(id);\n\t\t}\n\t}\n\tif (unknownIds.length > 0) {\n\t\tfor (const id of unknownIds) {\n\t\t\terrors.push({\n\t\t\t\ttype: \"unknown_service\",\n\t\t\t\tmessage: `Unknown service: \"${id}\"`,\n\t\t\t});\n\t\t\tserviceIds.delete(id);\n\t\t}\n\t}\n\n\t// 2. Resolve transitive dependencies (iterate until stable)\n\tlet changed = true;\n\tconst maxIterations = 50; // safety bound\n\tlet iteration = 0;\n\twhile (changed && iteration < maxIterations) {\n\t\tchanged = false;\n\t\titeration++;\n\t\tfor (const id of [...serviceIds]) {\n\t\t\tconst def = getServiceById(id);\n\t\t\tif (!def) continue;\n\t\t\tfor (const reqId of def.requires) {\n\t\t\t\tif (!serviceIds.has(reqId)) {\n\t\t\t\t\tserviceIds.add(reqId);\n\t\t\t\t\tserviceAddedBy.set(reqId, \"dependency\");\n\t\t\t\t\taddedDependencies.push({\n\t\t\t\t\t\tservice: reqId,\n\t\t\t\t\t\treason: `Required by ${def.name}`,\n\t\t\t\t\t});\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 3. Detect conflicts\n\tconst resolvedDefs: ServiceDefinition[] = [];\n\tfor (const id of serviceIds) {\n\t\tconst def = getServiceById(id);\n\t\tif (def) resolvedDefs.push(def);\n\t}\n\n\tfor (let i = 0; i < resolvedDefs.length; i++) {\n\t\tfor (let j = i + 1; j < resolvedDefs.length; j++) {\n\t\t\tconst a = resolvedDefs[i]!;\n\t\t\tconst b = resolvedDefs[j]!;\n\t\t\tif (a.conflictsWith.includes(b.id) || b.conflictsWith.includes(a.id)) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: \"conflict\",\n\t\t\t\t\tmessage: `${a.name} and ${b.name} cannot be used together`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// 4. Check platform compatibility\n\tif (input.platform) {\n\t\tfor (const def of resolvedDefs) {\n\t\t\tif (def.platforms && def.platforms.length > 0 && !def.platforms.includes(input.platform)) {\n\t\t\t\twarnings.push({\n\t\t\t\t\ttype: \"platform\",\n\t\t\t\t\tmessage: `${def.name} may not be compatible with ${input.platform}. Supported: ${def.platforms.join(\", \")}`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check GPU requirements\n\tconst gpuServices = resolvedDefs.filter((d) => d.gpuRequired);\n\tif (gpuServices.length > 0 && !input.gpu) {\n\t\tfor (const svc of gpuServices) {\n\t\t\twarnings.push({\n\t\t\t\ttype: \"gpu\",\n\t\t\t\tmessage: `${svc.name} requires GPU passthrough. Enable --gpu flag for optimal performance.`,\n\t\t\t});\n\t\t}\n\t}\n\n\t// 5. Estimate total memory\n\tlet estimatedMemoryMB = 512; // Base for OpenClaw itself\n\tfor (const def of resolvedDefs) {\n\t\testimatedMemoryMB += def.minMemoryMB ?? 128;\n\t}\n\n\t// Memory warnings\n\tif (estimatedMemoryMB > 8192) {\n\t\twarnings.push({\n\t\t\ttype: \"memory\",\n\t\t\tmessage: `Estimated ${(estimatedMemoryMB / 1024).toFixed(1)}GB RAM required. Ensure your server has sufficient resources.`,\n\t\t});\n\t} else if (estimatedMemoryMB > 4096) {\n\t\twarnings.push({\n\t\t\ttype: \"memory\",\n\t\t\tmessage: `Estimated ${(estimatedMemoryMB / 1024).toFixed(1)}GB RAM required. A server with at least 8GB RAM is recommended.`,\n\t\t});\n\t} else if (estimatedMemoryMB > 2048) {\n\t\twarnings.push({\n\t\t\ttype: \"memory\",\n\t\t\tmessage: `Estimated ${(estimatedMemoryMB / 1024).toFixed(1)}GB RAM required.`,\n\t\t});\n\t}\n\n\t// 7. Topological sort by dependency graph\n\tconst sorted = topologicalSort(resolvedDefs);\n\n\t// Build final resolved services list\n\tconst services: ResolvedService[] = sorted.map((def) => ({\n\t\tdefinition: def,\n\t\taddedBy: serviceAddedBy.get(def.id) ?? \"user\",\n\t}));\n\n\tconst isValid = errors.length === 0;\n\n\treturn {\n\t\tservices,\n\t\taddedDependencies,\n\t\tremovedConflicts: [],\n\t\twarnings,\n\t\terrors,\n\t\tisValid,\n\t\testimatedMemoryMB,\n\t};\n}\n\n/**\n * Topological sort using Kahn's algorithm.\n * Ties broken alphabetically by service ID for determinism.\n */\nfunction topologicalSort(definitions: ServiceDefinition[]): ServiceDefinition[] {\n\tconst idSet = new Set(definitions.map((d) => d.id));\n\tconst graph = new Map<string, string[]>(); // id -> list of IDs that depend on it\n\tconst inDegree = new Map<string, number>();\n\n\t// Initialize\n\tfor (const def of definitions) {\n\t\tgraph.set(def.id, []);\n\t\tinDegree.set(def.id, 0);\n\t}\n\n\t// Build edges: if A requires B, then B -> A (B must come before A)\n\tfor (const def of definitions) {\n\t\tfor (const reqId of [...def.requires, ...def.dependsOn]) {\n\t\t\tif (idSet.has(reqId)) {\n\t\t\t\tgraph.get(reqId)?.push(def.id);\n\t\t\t\tinDegree.set(def.id, (inDegree.get(def.id) ?? 0) + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Kahn's algorithm with alphabetical tie-breaking\n\tconst queue: string[] = [];\n\tfor (const [id, deg] of inDegree) {\n\t\tif (deg === 0) queue.push(id);\n\t}\n\tqueue.sort(); // alphabetical for determinism\n\n\tconst sorted: ServiceDefinition[] = [];\n\tconst defMap = new Map(definitions.map((d) => [d.id, d]));\n\n\twhile (queue.length > 0) {\n\t\tconst id = queue.shift()!;\n\t\tconst def = defMap.get(id);\n\t\tif (def) sorted.push(def);\n\n\t\tconst neighbors = graph.get(id) ?? [];\n\t\tconst newReady: string[] = [];\n\t\tfor (const neighbor of neighbors) {\n\t\t\tconst deg = (inDegree.get(neighbor) ?? 0) - 1;\n\t\t\tinDegree.set(neighbor, deg);\n\t\t\tif (deg === 0) newReady.push(neighbor);\n\t\t}\n\t\t// Sort newly ready nodes alphabetically and add to queue in order\n\t\tnewReady.sort();\n\t\tqueue.push(...newReady);\n\t}\n\n\t// If not all nodes are in sorted, there's a cycle\n\tif (sorted.length < definitions.length) {\n\t\t// Return what we have plus remaining (cycle detected but we still produce output)\n\t\tconst sortedIds = new Set(sorted.map((d) => d.id));\n\t\tconst remaining = definitions.filter((d) => !sortedIds.has(d.id));\n\t\tremaining.sort((a, b) => a.id.localeCompare(b.id));\n\t\tsorted.push(...remaining);\n\t}\n\n\treturn sorted;\n}\n"],"mappings":"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"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/rocketchat.ts
|
|
2
|
-
const rocketchatDefinition = {
|
|
3
|
-
id: "rocketchat",
|
|
4
|
-
name: "Rocket.Chat",
|
|
5
|
-
description: "Open-source team chat platform with AI features, channels, DMs, video calls, and integrations.",
|
|
6
|
-
category: "communication",
|
|
7
|
-
icon: "🚀",
|
|
8
|
-
image: "rocket.chat",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 3200,
|
|
12
|
-
container: 3e3,
|
|
13
|
-
description: "Rocket.Chat Web UI",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [{
|
|
17
|
-
name: "rocketchat-uploads",
|
|
18
|
-
containerPath: "/app/uploads",
|
|
19
|
-
description: "Rocket.Chat file uploads and attachments"
|
|
20
|
-
}],
|
|
21
|
-
environment: [{
|
|
22
|
-
key: "ROOT_URL",
|
|
23
|
-
defaultValue: "http://localhost:3200",
|
|
24
|
-
secret: false,
|
|
25
|
-
description: "Public root URL for Rocket.Chat",
|
|
26
|
-
required: true
|
|
27
|
-
}, {
|
|
28
|
-
key: "MONGO_URL",
|
|
29
|
-
defaultValue: "mongodb://mongodb:27017/rocketchat",
|
|
30
|
-
secret: false,
|
|
31
|
-
description: "MongoDB connection string for Rocket.Chat",
|
|
32
|
-
required: true
|
|
33
|
-
}],
|
|
34
|
-
dependsOn: [],
|
|
35
|
-
restartPolicy: "unless-stopped",
|
|
36
|
-
networks: ["openclaw-network"],
|
|
37
|
-
skills: [],
|
|
38
|
-
openclawEnvVars: [],
|
|
39
|
-
docsUrl: "https://docs.rocket.chat/",
|
|
40
|
-
tags: [
|
|
41
|
-
"team-chat",
|
|
42
|
-
"messaging",
|
|
43
|
-
"video-calls",
|
|
44
|
-
"ai",
|
|
45
|
-
"slack-alternative"
|
|
46
|
-
],
|
|
47
|
-
maturity: "stable",
|
|
48
|
-
requires: [],
|
|
49
|
-
recommends: [],
|
|
50
|
-
conflictsWith: [],
|
|
51
|
-
minMemoryMB: 512,
|
|
52
|
-
gpuRequired: false
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
//#endregion
|
|
56
|
-
export { rocketchatDefinition as t };
|
|
57
|
-
//# sourceMappingURL=rocketchat-BebQT1MZ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rocketchat-BebQT1MZ.mjs","names":[],"sources":["../src/services/definitions/rocketchat.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const rocketchatDefinition: ServiceDefinition = {\n\tid: \"rocketchat\",\n\tname: \"Rocket.Chat\",\n\tdescription:\n\t\t\"Open-source team chat platform with AI features, channels, DMs, video calls, and integrations.\",\n\tcategory: \"communication\",\n\ticon: \"🚀\",\n\n\timage: \"rocket.chat\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3200,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Rocket.Chat Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"rocketchat-uploads\",\n\t\t\tcontainerPath: \"/app/uploads\",\n\t\t\tdescription: \"Rocket.Chat file uploads and attachments\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"ROOT_URL\",\n\t\t\tdefaultValue: \"http://localhost:3200\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Public root URL for Rocket.Chat\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MONGO_URL\",\n\t\t\tdefaultValue: \"mongodb://mongodb:27017/rocketchat\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MongoDB connection string for Rocket.Chat\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://docs.rocket.chat/\",\n\ttags: [\"team-chat\", \"messaging\", \"video-calls\", \"ai\", \"slack-alternative\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,uBAA0C;CACtD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAa;EAAa;EAAe;EAAM;EAAoB;CAC1E,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|