@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,46 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/openpanel.ts
|
|
2
|
-
const openpanelDefinition = {
|
|
3
|
-
id: "openpanel",
|
|
4
|
-
name: "OpenPanel",
|
|
5
|
-
description: "Open-source analytics platform with real-time dashboards and event tracking. Modern alternative for tracking user behavior and application metrics.",
|
|
6
|
-
category: "analytics",
|
|
7
|
-
icon: "📉",
|
|
8
|
-
image: "ghcr.io/openpanel-dev/openpanel",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 3060,
|
|
12
|
-
container: 3e3,
|
|
13
|
-
description: "OpenPanel Web UI",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [],
|
|
17
|
-
environment: [{
|
|
18
|
-
key: "DATABASE_URL",
|
|
19
|
-
defaultValue: "postgresql://openpanel:${OPENPANEL_DB_PASSWORD}@postgresql:5432/openpanel",
|
|
20
|
-
secret: false,
|
|
21
|
-
description: "PostgreSQL connection string for OpenPanel",
|
|
22
|
-
required: true
|
|
23
|
-
}],
|
|
24
|
-
dependsOn: [],
|
|
25
|
-
restartPolicy: "unless-stopped",
|
|
26
|
-
networks: ["openclaw-network"],
|
|
27
|
-
skills: [],
|
|
28
|
-
openclawEnvVars: [],
|
|
29
|
-
docsUrl: "https://openpanel.dev/docs",
|
|
30
|
-
tags: [
|
|
31
|
-
"analytics",
|
|
32
|
-
"events",
|
|
33
|
-
"real-time",
|
|
34
|
-
"dashboards"
|
|
35
|
-
],
|
|
36
|
-
maturity: "beta",
|
|
37
|
-
requires: [],
|
|
38
|
-
recommends: ["postgresql"],
|
|
39
|
-
conflictsWith: [],
|
|
40
|
-
minMemoryMB: 256,
|
|
41
|
-
gpuRequired: false
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
//#endregion
|
|
45
|
-
export { openpanelDefinition as t };
|
|
46
|
-
//# sourceMappingURL=openpanel-BuWHhDze.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openpanel-BuWHhDze.mjs","names":[],"sources":["../src/services/definitions/openpanel.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const openpanelDefinition: ServiceDefinition = {\n\tid: \"openpanel\",\n\tname: \"OpenPanel\",\n\tdescription:\n\t\t\"Open-source analytics platform with real-time dashboards and event tracking. Modern alternative for tracking user behavior and application metrics.\",\n\tcategory: \"analytics\",\n\ticon: \"📉\",\n\n\timage: \"ghcr.io/openpanel-dev/openpanel\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3060,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"OpenPanel Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"DATABASE_URL\",\n\t\t\tdefaultValue: \"postgresql://openpanel:${OPENPANEL_DB_PASSWORD}@postgresql:5432/openpanel\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL connection string for OpenPanel\",\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://openpanel.dev/docs\",\n\ttags: [\"analytics\", \"events\", \"real-time\", \"dashboards\"],\n\tmaturity: \"beta\",\n\n\trequires: [],\n\trecommends: [\"postgresql\"],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,sBAAyC;CACrD,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,CACZ;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;EAAU;EAAa;EAAa;CACxD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,CAAC,aAAa;CAC1B,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/outline.ts
|
|
2
|
-
const outlineDefinition = {
|
|
3
|
-
id: "outline",
|
|
4
|
-
name: "Outline",
|
|
5
|
-
description: "Modern team wiki and knowledge base. Beautiful, fast, and collaborative. Self-hosted Notion alternative.",
|
|
6
|
-
category: "knowledge",
|
|
7
|
-
icon: "📝",
|
|
8
|
-
image: "outlinewiki/outline",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 3140,
|
|
12
|
-
container: 3e3,
|
|
13
|
-
description: "Outline Web UI",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [{
|
|
17
|
-
name: "outline-data",
|
|
18
|
-
containerPath: "/var/lib/outline/data",
|
|
19
|
-
description: "Outline file storage"
|
|
20
|
-
}],
|
|
21
|
-
environment: [
|
|
22
|
-
{
|
|
23
|
-
key: "SECRET_KEY",
|
|
24
|
-
defaultValue: "",
|
|
25
|
-
secret: true,
|
|
26
|
-
description: "Outline secret key for encrypting sessions and tokens",
|
|
27
|
-
required: true
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
key: "UTILS_SECRET",
|
|
31
|
-
defaultValue: "",
|
|
32
|
-
secret: true,
|
|
33
|
-
description: "Outline utils secret for internal cryptographic operations",
|
|
34
|
-
required: true
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
key: "DATABASE_URL",
|
|
38
|
-
defaultValue: "postgresql://outline:${OUTLINE_DB_PASSWORD}@postgresql:5432/outline",
|
|
39
|
-
secret: false,
|
|
40
|
-
description: "PostgreSQL connection string for Outline",
|
|
41
|
-
required: true
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
key: "REDIS_URL",
|
|
45
|
-
defaultValue: "redis://:${REDIS_PASSWORD}@redis:6379",
|
|
46
|
-
secret: false,
|
|
47
|
-
description: "Redis connection string for caching and background jobs",
|
|
48
|
-
required: true
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
dependsOn: [],
|
|
52
|
-
restartPolicy: "unless-stopped",
|
|
53
|
-
networks: ["openclaw-network"],
|
|
54
|
-
skills: [],
|
|
55
|
-
openclawEnvVars: [],
|
|
56
|
-
docsUrl: "https://www.getoutline.com/developers",
|
|
57
|
-
tags: [
|
|
58
|
-
"wiki",
|
|
59
|
-
"knowledge-base",
|
|
60
|
-
"documentation",
|
|
61
|
-
"team",
|
|
62
|
-
"notion-alternative"
|
|
63
|
-
],
|
|
64
|
-
maturity: "stable",
|
|
65
|
-
requires: ["postgresql", "redis"],
|
|
66
|
-
recommends: [],
|
|
67
|
-
conflictsWith: [],
|
|
68
|
-
minMemoryMB: 256,
|
|
69
|
-
gpuRequired: false
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
//#endregion
|
|
73
|
-
export { outlineDefinition as t };
|
|
74
|
-
//# sourceMappingURL=outline-Dy-YzdYS.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"outline-Dy-YzdYS.mjs","names":[],"sources":["../src/services/definitions/outline.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const outlineDefinition: ServiceDefinition = {\n\tid: \"outline\",\n\tname: \"Outline\",\n\tdescription:\n\t\t\"Modern team wiki and knowledge base. Beautiful, fast, and collaborative. Self-hosted Notion alternative.\",\n\tcategory: \"knowledge\",\n\ticon: \"📝\",\n\n\timage: \"outlinewiki/outline\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3140,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Outline Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"outline-data\",\n\t\t\tcontainerPath: \"/var/lib/outline/data\",\n\t\t\tdescription: \"Outline file storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"SECRET_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Outline secret key for encrypting sessions and tokens\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"UTILS_SECRET\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Outline utils secret for internal cryptographic operations\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"DATABASE_URL\",\n\t\t\tdefaultValue: \"postgresql://outline:${OUTLINE_DB_PASSWORD}@postgresql:5432/outline\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL connection string for Outline\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"REDIS_URL\",\n\t\t\tdefaultValue: \"redis://:${REDIS_PASSWORD}@redis:6379\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Redis connection string for caching and background jobs\",\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://www.getoutline.com/developers\",\n\ttags: [\"wiki\", \"knowledge-base\", \"documentation\", \"team\", \"notion-alternative\"],\n\tmaturity: \"stable\",\n\n\trequires: [\"postgresql\", \"redis\"],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,oBAAuC;CACnD,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;EACZ;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;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAQ;EAAkB;EAAiB;EAAQ;EAAqB;CAC/E,UAAU;CAEV,UAAU,CAAC,cAAc,QAAQ;CACjC,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/paperless-ngx.ts
|
|
2
|
-
const paperlessNgxDefinition = {
|
|
3
|
-
id: "paperless-ngx",
|
|
4
|
-
name: "Paperless-ngx",
|
|
5
|
-
description: "Document management system with OCR, AI-powered classification, and full-text search.",
|
|
6
|
-
category: "knowledge",
|
|
7
|
-
icon: "🗃️",
|
|
8
|
-
image: "ghcr.io/paperless-ngx/paperless-ngx",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 8010,
|
|
12
|
-
container: 8e3,
|
|
13
|
-
description: "Paperless-ngx Web UI",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [
|
|
17
|
-
{
|
|
18
|
-
name: "paperless-data",
|
|
19
|
-
containerPath: "/usr/src/paperless/data",
|
|
20
|
-
description: "Paperless application data and database"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "paperless-media",
|
|
24
|
-
containerPath: "/usr/src/paperless/media",
|
|
25
|
-
description: "Paperless stored and processed documents"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: "paperless-consume",
|
|
29
|
-
containerPath: "/usr/src/paperless/consume",
|
|
30
|
-
description: "Paperless intake folder for automatic document ingestion"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
environment: [
|
|
34
|
-
{
|
|
35
|
-
key: "PAPERLESS_SECRET_KEY",
|
|
36
|
-
defaultValue: "",
|
|
37
|
-
secret: true,
|
|
38
|
-
description: "Django secret key for cryptographic signing",
|
|
39
|
-
required: true
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
key: "PAPERLESS_DBHOST",
|
|
43
|
-
defaultValue: "postgresql",
|
|
44
|
-
secret: false,
|
|
45
|
-
description: "PostgreSQL host for Paperless-ngx",
|
|
46
|
-
required: true
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
key: "PAPERLESS_DBUSER",
|
|
50
|
-
defaultValue: "paperless",
|
|
51
|
-
secret: false,
|
|
52
|
-
description: "PostgreSQL user for Paperless-ngx",
|
|
53
|
-
required: true
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
key: "PAPERLESS_DBPASS",
|
|
57
|
-
defaultValue: "${PAPERLESS_DB_PASSWORD}",
|
|
58
|
-
secret: true,
|
|
59
|
-
description: "PostgreSQL password for Paperless-ngx",
|
|
60
|
-
required: true
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
key: "PAPERLESS_DBNAME",
|
|
64
|
-
defaultValue: "paperless",
|
|
65
|
-
secret: false,
|
|
66
|
-
description: "PostgreSQL database name for Paperless-ngx",
|
|
67
|
-
required: true
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
dependsOn: [],
|
|
71
|
-
restartPolicy: "unless-stopped",
|
|
72
|
-
networks: ["openclaw-network"],
|
|
73
|
-
skills: [],
|
|
74
|
-
openclawEnvVars: [],
|
|
75
|
-
docsUrl: "https://docs.paperless-ngx.com/",
|
|
76
|
-
tags: [
|
|
77
|
-
"documents",
|
|
78
|
-
"ocr",
|
|
79
|
-
"classification",
|
|
80
|
-
"archive",
|
|
81
|
-
"search"
|
|
82
|
-
],
|
|
83
|
-
maturity: "stable",
|
|
84
|
-
requires: ["postgresql"],
|
|
85
|
-
recommends: ["redis"],
|
|
86
|
-
conflictsWith: [],
|
|
87
|
-
minMemoryMB: 512,
|
|
88
|
-
gpuRequired: false
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
//#endregion
|
|
92
|
-
export { paperlessNgxDefinition as t };
|
|
93
|
-
//# sourceMappingURL=paperless-ngx-DVtWWpKg.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paperless-ngx-DVtWWpKg.mjs","names":[],"sources":["../src/services/definitions/paperless-ngx.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const paperlessNgxDefinition: ServiceDefinition = {\n\tid: \"paperless-ngx\",\n\tname: \"Paperless-ngx\",\n\tdescription:\n\t\t\"Document management system with OCR, AI-powered classification, and full-text search.\",\n\tcategory: \"knowledge\",\n\ticon: \"🗃️\",\n\n\timage: \"ghcr.io/paperless-ngx/paperless-ngx\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 8010,\n\t\t\tcontainer: 8000,\n\t\t\tdescription: \"Paperless-ngx Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"paperless-data\",\n\t\t\tcontainerPath: \"/usr/src/paperless/data\",\n\t\t\tdescription: \"Paperless application data and database\",\n\t\t},\n\t\t{\n\t\t\tname: \"paperless-media\",\n\t\t\tcontainerPath: \"/usr/src/paperless/media\",\n\t\t\tdescription: \"Paperless stored and processed documents\",\n\t\t},\n\t\t{\n\t\t\tname: \"paperless-consume\",\n\t\t\tcontainerPath: \"/usr/src/paperless/consume\",\n\t\t\tdescription: \"Paperless intake folder for automatic document ingestion\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"PAPERLESS_SECRET_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Django secret key for cryptographic signing\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"PAPERLESS_DBHOST\",\n\t\t\tdefaultValue: \"postgresql\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL host for Paperless-ngx\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"PAPERLESS_DBUSER\",\n\t\t\tdefaultValue: \"paperless\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL user for Paperless-ngx\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"PAPERLESS_DBPASS\",\n\t\t\tdefaultValue: \"${PAPERLESS_DB_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"PostgreSQL password for Paperless-ngx\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"PAPERLESS_DBNAME\",\n\t\t\tdefaultValue: \"paperless\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL database name for Paperless-ngx\",\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.paperless-ngx.com/\",\n\ttags: [\"documents\", \"ocr\", \"classification\", \"archive\", \"search\"],\n\tmaturity: \"stable\",\n\n\trequires: [\"postgresql\"],\n\trecommends: [\"redis\"],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,yBAA4C;CACxD,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;EACR;GACC,MAAM;GACN,eAAe;GACf,aAAa;GACb;EACD;GACC,MAAM;GACN,eAAe;GACf,aAAa;GACb;EACD;GACC,MAAM;GACN,eAAe;GACf,aAAa;GACb;EACD;CACD,aAAa;EACZ;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;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAa;EAAO;EAAkB;EAAW;EAAS;CACjE,UAAU;CAEV,UAAU,CAAC,aAAa;CACxB,YAAY,CAAC,QAAQ;CACrB,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/playwright-server.ts
|
|
2
|
-
const playwrightServerDefinition = {
|
|
3
|
-
id: "playwright-server",
|
|
4
|
-
name: "Playwright Server",
|
|
5
|
-
description: "Microsoft Playwright browser automation server for headless testing and web scraping.",
|
|
6
|
-
category: "browser",
|
|
7
|
-
icon: "🎭",
|
|
8
|
-
image: "mcr.microsoft.com/playwright",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 3040,
|
|
12
|
-
container: 3e3,
|
|
13
|
-
description: "Playwright Server",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [],
|
|
17
|
-
environment: [],
|
|
18
|
-
command: "npx playwright run-server --port 3000",
|
|
19
|
-
dependsOn: [],
|
|
20
|
-
restartPolicy: "unless-stopped",
|
|
21
|
-
networks: ["openclaw-network"],
|
|
22
|
-
skills: [],
|
|
23
|
-
openclawEnvVars: [],
|
|
24
|
-
docsUrl: "https://playwright.dev/docs/intro",
|
|
25
|
-
tags: [
|
|
26
|
-
"browser",
|
|
27
|
-
"testing",
|
|
28
|
-
"automation",
|
|
29
|
-
"scraping",
|
|
30
|
-
"headless"
|
|
31
|
-
],
|
|
32
|
-
maturity: "beta",
|
|
33
|
-
requires: [],
|
|
34
|
-
recommends: [],
|
|
35
|
-
conflictsWith: [],
|
|
36
|
-
minMemoryMB: 512,
|
|
37
|
-
gpuRequired: false
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
//#endregion
|
|
41
|
-
export { playwrightServerDefinition as t };
|
|
42
|
-
//# sourceMappingURL=playwright-server-Boiz8--G.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-server-Boiz8--G.mjs","names":[],"sources":["../src/services/definitions/playwright-server.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const playwrightServerDefinition: ServiceDefinition = {\n\tid: \"playwright-server\",\n\tname: \"Playwright Server\",\n\tdescription:\n\t\t\"Microsoft Playwright browser automation server for headless testing and web scraping.\",\n\tcategory: \"browser\",\n\ticon: \"🎭\",\n\n\timage: \"mcr.microsoft.com/playwright\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3040,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Playwright Server\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [],\n\tcommand: \"npx playwright run-server --port 3000\",\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://playwright.dev/docs/intro\",\n\ttags: [\"browser\", \"testing\", \"automation\", \"scraping\", \"headless\"],\n\tmaturity: \"beta\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,6BAAgD;CAC5D,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,SAAS;CACT,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAW;EAAW;EAAc;EAAY;EAAW;CAClE,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/portainer.ts
|
|
2
|
-
const portainerDefinition = {
|
|
3
|
-
id: "portainer",
|
|
4
|
-
name: "Portainer",
|
|
5
|
-
description: "Docker management UI for monitoring and managing your entire stack visually.",
|
|
6
|
-
category: "dev-tools",
|
|
7
|
-
icon: "🐳",
|
|
8
|
-
image: "portainer/portainer-ce",
|
|
9
|
-
imageTag: "latest",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 9443,
|
|
12
|
-
container: 9443,
|
|
13
|
-
description: "Portainer HTTPS UI",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [{
|
|
17
|
-
name: "portainer-data",
|
|
18
|
-
containerPath: "/data",
|
|
19
|
-
description: "Portainer data"
|
|
20
|
-
}, {
|
|
21
|
-
name: "portainer-docker-sock",
|
|
22
|
-
containerPath: "/var/run/docker.sock",
|
|
23
|
-
description: "Docker socket (must be bind-mounted to /var/run/docker.sock on host)"
|
|
24
|
-
}],
|
|
25
|
-
environment: [],
|
|
26
|
-
dependsOn: [],
|
|
27
|
-
restartPolicy: "unless-stopped",
|
|
28
|
-
networks: ["openclaw-network"],
|
|
29
|
-
skills: [],
|
|
30
|
-
openclawEnvVars: [],
|
|
31
|
-
docsUrl: "https://docs.portainer.io/",
|
|
32
|
-
tags: [
|
|
33
|
-
"docker",
|
|
34
|
-
"management",
|
|
35
|
-
"monitoring",
|
|
36
|
-
"ui",
|
|
37
|
-
"containers"
|
|
38
|
-
],
|
|
39
|
-
maturity: "stable",
|
|
40
|
-
requires: [],
|
|
41
|
-
recommends: [],
|
|
42
|
-
conflictsWith: [],
|
|
43
|
-
minMemoryMB: 64,
|
|
44
|
-
gpuRequired: false
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
//#endregion
|
|
48
|
-
export { portainerDefinition as t };
|
|
49
|
-
//# sourceMappingURL=portainer-D9MU96UI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"portainer-D9MU96UI.mjs","names":[],"sources":["../src/services/definitions/portainer.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const portainerDefinition: ServiceDefinition = {\n\tid: \"portainer\",\n\tname: \"Portainer\",\n\tdescription: \"Docker management UI for monitoring and managing your entire stack visually.\",\n\tcategory: \"dev-tools\",\n\ticon: \"🐳\",\n\n\timage: \"portainer/portainer-ce\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 9443,\n\t\t\tcontainer: 9443,\n\t\t\tdescription: \"Portainer HTTPS UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"portainer-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Portainer data\",\n\t\t},\n\t\t{\n\t\t\tname: \"portainer-docker-sock\",\n\t\t\tcontainerPath: \"/var/run/docker.sock\",\n\t\t\tdescription: \"Docker socket (must be bind-mounted to /var/run/docker.sock on host)\",\n\t\t},\n\t],\n\tenvironment: [],\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://docs.portainer.io/\",\n\ttags: [\"docker\", \"management\", \"monitoring\", \"ui\", \"containers\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 64,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,sBAAyC;CACrD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,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,EACD;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,EAAE;CACf,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAU;EAAc;EAAc;EAAM;EAAa;CAChE,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
//#region src/generators/postgres-init.ts
|
|
2
|
-
/**
|
|
3
|
-
* Known database requirements for services that need their own PostgreSQL database.
|
|
4
|
-
* Maps service ID to the DB name, user, and password env var they expect.
|
|
5
|
-
*/
|
|
6
|
-
const DB_REQUIREMENTS = {
|
|
7
|
-
n8n: {
|
|
8
|
-
dbName: "n8n",
|
|
9
|
-
dbUser: "n8n",
|
|
10
|
-
passwordEnvVar: "N8N_DB_PASSWORD"
|
|
11
|
-
},
|
|
12
|
-
postiz: {
|
|
13
|
-
dbName: "postiz",
|
|
14
|
-
dbUser: "postiz",
|
|
15
|
-
passwordEnvVar: "POSTIZ_DB_PASSWORD"
|
|
16
|
-
},
|
|
17
|
-
outline: {
|
|
18
|
-
dbName: "outline",
|
|
19
|
-
dbUser: "outline",
|
|
20
|
-
passwordEnvVar: "OUTLINE_DB_PASSWORD"
|
|
21
|
-
},
|
|
22
|
-
dify: {
|
|
23
|
-
dbName: "dify",
|
|
24
|
-
dbUser: "dify",
|
|
25
|
-
passwordEnvVar: "DIFY_DB_PASSWORD"
|
|
26
|
-
},
|
|
27
|
-
temporal: {
|
|
28
|
-
dbName: "temporal",
|
|
29
|
-
dbUser: "temporal",
|
|
30
|
-
passwordEnvVar: "TEMPORAL_DB_PASSWORD"
|
|
31
|
-
},
|
|
32
|
-
mattermost: {
|
|
33
|
-
dbName: "mattermost",
|
|
34
|
-
dbUser: "mattermost",
|
|
35
|
-
passwordEnvVar: "MATTERMOST_DB_PASSWORD"
|
|
36
|
-
},
|
|
37
|
-
"matrix-synapse": {
|
|
38
|
-
dbName: "synapse",
|
|
39
|
-
dbUser: "synapse",
|
|
40
|
-
passwordEnvVar: "SYNAPSE_DB_PASSWORD"
|
|
41
|
-
},
|
|
42
|
-
"paperless-ngx": {
|
|
43
|
-
dbName: "paperless",
|
|
44
|
-
dbUser: "paperless",
|
|
45
|
-
passwordEnvVar: "PAPERLESS_DB_PASSWORD"
|
|
46
|
-
},
|
|
47
|
-
umami: {
|
|
48
|
-
dbName: "umami",
|
|
49
|
-
dbUser: "umami",
|
|
50
|
-
passwordEnvVar: "UMAMI_DB_PASSWORD"
|
|
51
|
-
},
|
|
52
|
-
matomo: {
|
|
53
|
-
dbName: "matomo",
|
|
54
|
-
dbUser: "matomo",
|
|
55
|
-
passwordEnvVar: "MATOMO_DB_PASSWORD"
|
|
56
|
-
},
|
|
57
|
-
mixpost: {
|
|
58
|
-
dbName: "mixpost",
|
|
59
|
-
dbUser: "mixpost",
|
|
60
|
-
passwordEnvVar: "MIXPOST_DB_PASSWORD"
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Get the list of database requirements for all resolved services.
|
|
65
|
-
* Exported so other generators (env, composer) can access the same data.
|
|
66
|
-
*/
|
|
67
|
-
function getDbRequirements(resolved) {
|
|
68
|
-
const reqs = [];
|
|
69
|
-
for (const { definition } of resolved.services) {
|
|
70
|
-
const req = DB_REQUIREMENTS[definition.id];
|
|
71
|
-
if (req) reqs.push({
|
|
72
|
-
serviceId: definition.id,
|
|
73
|
-
serviceName: definition.name,
|
|
74
|
-
...req
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return reqs;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Generates a PostgreSQL initialization script that creates databases and users
|
|
81
|
-
* for all companion services that need their own DB.
|
|
82
|
-
*
|
|
83
|
-
* Returns null if PostgreSQL is not in the resolved stack or no services need extra DBs.
|
|
84
|
-
* The script is designed to be mounted at /docker-entrypoint-initdb.d/init-databases.sh
|
|
85
|
-
* and runs automatically during PostgreSQL's first initialization.
|
|
86
|
-
*/
|
|
87
|
-
function generatePostgresInit(resolved) {
|
|
88
|
-
if (!resolved.services.some((s) => s.definition.id === "postgresql")) return null;
|
|
89
|
-
const reqs = getDbRequirements(resolved);
|
|
90
|
-
if (reqs.length === 0) return null;
|
|
91
|
-
return `#!/bin/bash
|
|
92
|
-
set -e
|
|
93
|
-
|
|
94
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
95
|
-
# PostgreSQL Initialization Script
|
|
96
|
-
# Generated by better-openclaw
|
|
97
|
-
#
|
|
98
|
-
# This script runs automatically during PostgreSQL's first initialization.
|
|
99
|
-
# It creates databases and users for all companion services in your stack.
|
|
100
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
101
|
-
|
|
102
|
-
create_db_and_user() {
|
|
103
|
-
local db="$1"
|
|
104
|
-
local user="$2"
|
|
105
|
-
local password="$3"
|
|
106
|
-
|
|
107
|
-
echo ">>> Creating database '$db' with user '$user'..."
|
|
108
|
-
|
|
109
|
-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
|
110
|
-
-- Create user if not exists
|
|
111
|
-
DO \\$\\$
|
|
112
|
-
BEGIN
|
|
113
|
-
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$user') THEN
|
|
114
|
-
CREATE ROLE "$user" WITH LOGIN PASSWORD '$password';
|
|
115
|
-
RAISE NOTICE 'Created user: $user';
|
|
116
|
-
ELSE
|
|
117
|
-
-- Update password in case it changed
|
|
118
|
-
ALTER ROLE "$user" WITH PASSWORD '$password';
|
|
119
|
-
RAISE NOTICE 'User already exists, updated password: $user';
|
|
120
|
-
END IF;
|
|
121
|
-
END
|
|
122
|
-
\\$\\$;
|
|
123
|
-
|
|
124
|
-
-- Create database if not exists
|
|
125
|
-
SELECT 'CREATE DATABASE "$db" OWNER "$user"'
|
|
126
|
-
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$db')\\gexec
|
|
127
|
-
|
|
128
|
-
-- Grant privileges
|
|
129
|
-
GRANT ALL PRIVILEGES ON DATABASE "$db" TO "$user";
|
|
130
|
-
EOSQL
|
|
131
|
-
|
|
132
|
-
echo ">>> Done: database '$db' with user '$user'"
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
echo "═══════════════════════════════════════════════════════════"
|
|
136
|
-
echo " Initializing databases for companion services..."
|
|
137
|
-
echo "═══════════════════════════════════════════════════════════"
|
|
138
|
-
|
|
139
|
-
${reqs.map((r) => `create_db_and_user "${r.dbName}" "${r.dbUser}" "\${${r.passwordEnvVar}:-$POSTGRES_PASSWORD}"`).join("\n")}
|
|
140
|
-
|
|
141
|
-
echo ""
|
|
142
|
-
echo "═══════════════════════════════════════════════════════════"
|
|
143
|
-
echo " All databases initialized successfully!"
|
|
144
|
-
echo " Services: ${reqs.map((r) => r.serviceName).join(", ")}"
|
|
145
|
-
echo "═══════════════════════════════════════════════════════════"
|
|
146
|
-
`;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
//#endregion
|
|
150
|
-
export { getDbRequirements as n, generatePostgresInit as t };
|
|
151
|
-
//# sourceMappingURL=postgres-init-BiM-xZtq.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-init-BiM-xZtq.mjs","names":[],"sources":["../src/generators/postgres-init.ts"],"sourcesContent":["import type { ResolverOutput } from \"../types.js\";\n\n/**\n * Database requirement descriptor for a service.\n */\ninterface DbRequirement {\n\tserviceId: string;\n\tserviceName: string;\n\tdbName: string;\n\tdbUser: string;\n\tpasswordEnvVar: string;\n}\n\n/**\n * Known database requirements for services that need their own PostgreSQL database.\n * Maps service ID to the DB name, user, and password env var they expect.\n */\nconst DB_REQUIREMENTS: Record<string, Omit<DbRequirement, \"serviceId\" | \"serviceName\">> = {\n\tn8n: { dbName: \"n8n\", dbUser: \"n8n\", passwordEnvVar: \"N8N_DB_PASSWORD\" },\n\tpostiz: { dbName: \"postiz\", dbUser: \"postiz\", passwordEnvVar: \"POSTIZ_DB_PASSWORD\" },\n\toutline: { dbName: \"outline\", dbUser: \"outline\", passwordEnvVar: \"OUTLINE_DB_PASSWORD\" },\n\tdify: { dbName: \"dify\", dbUser: \"dify\", passwordEnvVar: \"DIFY_DB_PASSWORD\" },\n\ttemporal: { dbName: \"temporal\", dbUser: \"temporal\", passwordEnvVar: \"TEMPORAL_DB_PASSWORD\" },\n\tmattermost: {\n\t\tdbName: \"mattermost\",\n\t\tdbUser: \"mattermost\",\n\t\tpasswordEnvVar: \"MATTERMOST_DB_PASSWORD\",\n\t},\n\t\"matrix-synapse\": { dbName: \"synapse\", dbUser: \"synapse\", passwordEnvVar: \"SYNAPSE_DB_PASSWORD\" },\n\t\"paperless-ngx\": {\n\t\tdbName: \"paperless\",\n\t\tdbUser: \"paperless\",\n\t\tpasswordEnvVar: \"PAPERLESS_DB_PASSWORD\",\n\t},\n\tumami: { dbName: \"umami\", dbUser: \"umami\", passwordEnvVar: \"UMAMI_DB_PASSWORD\" },\n\tmatomo: { dbName: \"matomo\", dbUser: \"matomo\", passwordEnvVar: \"MATOMO_DB_PASSWORD\" },\n\tmixpost: { dbName: \"mixpost\", dbUser: \"mixpost\", passwordEnvVar: \"MIXPOST_DB_PASSWORD\" },\n};\n\n/**\n * Get the list of database requirements for all resolved services.\n * Exported so other generators (env, composer) can access the same data.\n */\nexport function getDbRequirements(resolved: ResolverOutput): DbRequirement[] {\n\tconst reqs: DbRequirement[] = [];\n\tfor (const { definition } of resolved.services) {\n\t\tconst req = DB_REQUIREMENTS[definition.id];\n\t\tif (req) {\n\t\t\treqs.push({\n\t\t\t\tserviceId: definition.id,\n\t\t\t\tserviceName: definition.name,\n\t\t\t\t...req,\n\t\t\t});\n\t\t}\n\t}\n\treturn reqs;\n}\n\n/**\n * Generates a PostgreSQL initialization script that creates databases and users\n * for all companion services that need their own DB.\n *\n * Returns null if PostgreSQL is not in the resolved stack or no services need extra DBs.\n * The script is designed to be mounted at /docker-entrypoint-initdb.d/init-databases.sh\n * and runs automatically during PostgreSQL's first initialization.\n */\nexport function generatePostgresInit(resolved: ResolverOutput): string | null {\n\tconst hasPostgres = resolved.services.some((s) => s.definition.id === \"postgresql\");\n\tif (!hasPostgres) return null;\n\n\tconst reqs = getDbRequirements(resolved);\n\tif (reqs.length === 0) return null;\n\n\tconst createCalls = reqs\n\t\t.map(\n\t\t\t(r) =>\n\t\t\t\t`create_db_and_user \"${r.dbName}\" \"${r.dbUser}\" \"\\${${r.passwordEnvVar}:-$POSTGRES_PASSWORD}\"`,\n\t\t)\n\t\t.join(\"\\n\");\n\n\treturn `#!/bin/bash\nset -e\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# PostgreSQL Initialization Script\n# Generated by better-openclaw\n#\n# This script runs automatically during PostgreSQL's first initialization.\n# It creates databases and users for all companion services in your stack.\n# ═══════════════════════════════════════════════════════════════════════════════\n\ncreate_db_and_user() {\n local db=\"$1\"\n local user=\"$2\"\n local password=\"$3\"\n\n echo \">>> Creating database '$db' with user '$user'...\"\n\n psql -v ON_ERROR_STOP=1 --username \"$POSTGRES_USER\" --dbname \"$POSTGRES_DB\" <<-EOSQL\n -- Create user if not exists\n DO \\\\$\\\\$\n BEGIN\n IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$user') THEN\n CREATE ROLE \"$user\" WITH LOGIN PASSWORD '$password';\n RAISE NOTICE 'Created user: $user';\n ELSE\n -- Update password in case it changed\n ALTER ROLE \"$user\" WITH PASSWORD '$password';\n RAISE NOTICE 'User already exists, updated password: $user';\n END IF;\n END\n \\\\$\\\\$;\n\n -- Create database if not exists\n SELECT 'CREATE DATABASE \"$db\" OWNER \"$user\"'\n WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$db')\\\\gexec\n\n -- Grant privileges\n GRANT ALL PRIVILEGES ON DATABASE \"$db\" TO \"$user\";\nEOSQL\n\n echo \">>> Done: database '$db' with user '$user'\"\n}\n\necho \"═══════════════════════════════════════════════════════════\"\necho \" Initializing databases for companion services...\"\necho \"═══════════════════════════════════════════════════════════\"\n\n${createCalls}\n\necho \"\"\necho \"═══════════════════════════════════════════════════════════\"\necho \" All databases initialized successfully!\"\necho \" Services: ${reqs.map((r) => r.serviceName).join(\", \")}\"\necho \"═══════════════════════════════════════════════════════════\"\n`;\n}\n"],"mappings":";;;;;AAiBA,MAAM,kBAAoF;CACzF,KAAK;EAAE,QAAQ;EAAO,QAAQ;EAAO,gBAAgB;EAAmB;CACxE,QAAQ;EAAE,QAAQ;EAAU,QAAQ;EAAU,gBAAgB;EAAsB;CACpF,SAAS;EAAE,QAAQ;EAAW,QAAQ;EAAW,gBAAgB;EAAuB;CACxF,MAAM;EAAE,QAAQ;EAAQ,QAAQ;EAAQ,gBAAgB;EAAoB;CAC5E,UAAU;EAAE,QAAQ;EAAY,QAAQ;EAAY,gBAAgB;EAAwB;CAC5F,YAAY;EACX,QAAQ;EACR,QAAQ;EACR,gBAAgB;EAChB;CACD,kBAAkB;EAAE,QAAQ;EAAW,QAAQ;EAAW,gBAAgB;EAAuB;CACjG,iBAAiB;EAChB,QAAQ;EACR,QAAQ;EACR,gBAAgB;EAChB;CACD,OAAO;EAAE,QAAQ;EAAS,QAAQ;EAAS,gBAAgB;EAAqB;CAChF,QAAQ;EAAE,QAAQ;EAAU,QAAQ;EAAU,gBAAgB;EAAsB;CACpF,SAAS;EAAE,QAAQ;EAAW,QAAQ;EAAW,gBAAgB;EAAuB;CACxF;;;;;AAMD,SAAgB,kBAAkB,UAA2C;CAC5E,MAAM,OAAwB,EAAE;AAChC,MAAK,MAAM,EAAE,gBAAgB,SAAS,UAAU;EAC/C,MAAM,MAAM,gBAAgB,WAAW;AACvC,MAAI,IACH,MAAK,KAAK;GACT,WAAW,WAAW;GACtB,aAAa,WAAW;GACxB,GAAG;GACH,CAAC;;AAGJ,QAAO;;;;;;;;;;AAWR,SAAgB,qBAAqB,UAAyC;AAE7E,KAAI,CADgB,SAAS,SAAS,MAAM,MAAM,EAAE,WAAW,OAAO,aAAa,CACjE,QAAO;CAEzB,MAAM,OAAO,kBAAkB,SAAS;AACxC,KAAI,KAAK,WAAW,EAAG,QAAO;AAS9B,QAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAPa,KAClB,KACC,MACA,uBAAuB,EAAE,OAAO,KAAK,EAAE,OAAO,QAAQ,EAAE,eAAe,wBACxE,CACA,KAAK,KAAK,CAkDC;;;;;mBAKK,KAAK,KAAK,MAAM,EAAE,YAAY,CAAC,KAAK,KAAK,CAAC"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
//#region src/services/definitions/postgresql.ts
|
|
2
|
-
const postgresqlDefinition = {
|
|
3
|
-
id: "postgresql",
|
|
4
|
-
name: "PostgreSQL",
|
|
5
|
-
description: "Powerful open-source relational database for structured data, supporting advanced SQL features, JSONB, and full-text search.",
|
|
6
|
-
category: "database",
|
|
7
|
-
icon: "🐘",
|
|
8
|
-
image: "postgres",
|
|
9
|
-
imageTag: "16-alpine",
|
|
10
|
-
ports: [{
|
|
11
|
-
host: 5432,
|
|
12
|
-
container: 5432,
|
|
13
|
-
description: "PostgreSQL server port",
|
|
14
|
-
exposed: true
|
|
15
|
-
}],
|
|
16
|
-
volumes: [{
|
|
17
|
-
name: "postgres-data",
|
|
18
|
-
containerPath: "/var/lib/postgresql/data",
|
|
19
|
-
description: "Persistent PostgreSQL data"
|
|
20
|
-
}],
|
|
21
|
-
environment: [
|
|
22
|
-
{
|
|
23
|
-
key: "POSTGRES_USER",
|
|
24
|
-
defaultValue: "openclaw",
|
|
25
|
-
secret: false,
|
|
26
|
-
description: "PostgreSQL superuser name",
|
|
27
|
-
required: true
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
key: "POSTGRES_PASSWORD",
|
|
31
|
-
defaultValue: "",
|
|
32
|
-
secret: true,
|
|
33
|
-
description: "PostgreSQL superuser password",
|
|
34
|
-
required: true
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
key: "POSTGRES_DB",
|
|
38
|
-
defaultValue: "openclaw",
|
|
39
|
-
secret: false,
|
|
40
|
-
description: "Default database to create on first run",
|
|
41
|
-
required: true
|
|
42
|
-
}
|
|
43
|
-
],
|
|
44
|
-
healthcheck: {
|
|
45
|
-
test: "pg_isready -U openclaw",
|
|
46
|
-
interval: "10s",
|
|
47
|
-
timeout: "5s",
|
|
48
|
-
retries: 3,
|
|
49
|
-
startPeriod: "30s"
|
|
50
|
-
},
|
|
51
|
-
dependsOn: [],
|
|
52
|
-
restartPolicy: "unless-stopped",
|
|
53
|
-
networks: ["openclaw-network"],
|
|
54
|
-
skills: [],
|
|
55
|
-
openclawEnvVars: [{
|
|
56
|
-
key: "POSTGRES_HOST",
|
|
57
|
-
defaultValue: "postgresql",
|
|
58
|
-
secret: false,
|
|
59
|
-
description: "PostgreSQL hostname for OpenClaw",
|
|
60
|
-
required: true
|
|
61
|
-
}, {
|
|
62
|
-
key: "POSTGRES_PORT",
|
|
63
|
-
defaultValue: "5432",
|
|
64
|
-
secret: false,
|
|
65
|
-
description: "PostgreSQL port for OpenClaw",
|
|
66
|
-
required: true
|
|
67
|
-
}],
|
|
68
|
-
docsUrl: "https://www.postgresql.org/docs/",
|
|
69
|
-
tags: [
|
|
70
|
-
"relational",
|
|
71
|
-
"sql",
|
|
72
|
-
"structured-data"
|
|
73
|
-
],
|
|
74
|
-
maturity: "stable",
|
|
75
|
-
requires: [],
|
|
76
|
-
recommends: [],
|
|
77
|
-
conflictsWith: [],
|
|
78
|
-
minMemoryMB: 256,
|
|
79
|
-
gpuRequired: false
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
//#endregion
|
|
83
|
-
export { postgresqlDefinition as t };
|
|
84
|
-
//# sourceMappingURL=postgresql-s65Z9RqR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-s65Z9RqR.mjs","names":[],"sources":["../src/services/definitions/postgresql.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const postgresqlDefinition: ServiceDefinition = {\n\tid: \"postgresql\",\n\tname: \"PostgreSQL\",\n\tdescription:\n\t\t\"Powerful open-source relational database for structured data, supporting advanced SQL features, JSONB, and full-text search.\",\n\tcategory: \"database\",\n\ticon: \"🐘\",\n\n\timage: \"postgres\",\n\timageTag: \"16-alpine\",\n\tports: [\n\t\t{\n\t\t\thost: 5432,\n\t\t\tcontainer: 5432,\n\t\t\tdescription: \"PostgreSQL server port\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"postgres-data\",\n\t\t\tcontainerPath: \"/var/lib/postgresql/data\",\n\t\t\tdescription: \"Persistent PostgreSQL data\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"POSTGRES_USER\",\n\t\t\tdefaultValue: \"openclaw\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL superuser name\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"POSTGRES_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"PostgreSQL superuser password\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"POSTGRES_DB\",\n\t\t\tdefaultValue: \"openclaw\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Default database to create on first run\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"pg_isready -U openclaw\",\n\t\tinterval: \"10s\",\n\t\ttimeout: \"5s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"30s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"POSTGRES_HOST\",\n\t\t\tdefaultValue: \"postgresql\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"POSTGRES_PORT\",\n\t\t\tdefaultValue: \"5432\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://www.postgresql.org/docs/\",\n\ttags: [\"relational\", \"sql\", \"structured-data\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\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;EACZ;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;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CAED,SAAS;CACT,MAAM;EAAC;EAAc;EAAO;EAAkB;CAC9C,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
|