@better-openclaw/core 1.0.0
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/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-lint.log +360 -0
- package/.turbo/turbo-typecheck.log +4 -0
- package/dist/bare-metal-partition.d.ts +22 -0
- package/dist/bare-metal-partition.d.ts.map +1 -0
- package/dist/bare-metal-partition.js +49 -0
- package/dist/bare-metal-partition.js.map +1 -0
- package/dist/composer.d.ts +17 -0
- package/dist/composer.d.ts.map +1 -0
- package/dist/composer.js +305 -0
- package/dist/composer.js.map +1 -0
- package/dist/generate.d.ts +7 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +218 -0
- package/dist/generate.js.map +1 -0
- package/dist/generators/bare-metal-install.d.ts +18 -0
- package/dist/generators/bare-metal-install.d.ts.map +1 -0
- package/dist/generators/bare-metal-install.js +228 -0
- package/dist/generators/bare-metal-install.js.map +1 -0
- package/dist/generators/caddy.d.ts +13 -0
- package/dist/generators/caddy.d.ts.map +1 -0
- package/dist/generators/caddy.js +85 -0
- package/dist/generators/caddy.js.map +1 -0
- package/dist/generators/env.d.ts +42 -0
- package/dist/generators/env.d.ts.map +1 -0
- package/dist/generators/env.js +276 -0
- package/dist/generators/env.js.map +1 -0
- package/dist/generators/grafana.d.ts +19 -0
- package/dist/generators/grafana.d.ts.map +1 -0
- package/dist/generators/grafana.js +247 -0
- package/dist/generators/grafana.js.map +1 -0
- package/dist/generators/n8n-workflows.d.ts +7 -0
- package/dist/generators/n8n-workflows.d.ts.map +1 -0
- package/dist/generators/n8n-workflows.js +78 -0
- package/dist/generators/n8n-workflows.js.map +1 -0
- package/dist/generators/native-services.d.ts +13 -0
- package/dist/generators/native-services.d.ts.map +1 -0
- package/dist/generators/native-services.js +85 -0
- package/dist/generators/native-services.js.map +1 -0
- package/dist/generators/postgres-init.d.ts +27 -0
- package/dist/generators/postgres-init.d.ts.map +1 -0
- package/dist/generators/postgres-init.js +119 -0
- package/dist/generators/postgres-init.js.map +1 -0
- package/dist/generators/prometheus.d.ts +10 -0
- package/dist/generators/prometheus.d.ts.map +1 -0
- package/dist/generators/prometheus.js +79 -0
- package/dist/generators/prometheus.js.map +1 -0
- package/dist/generators/readme.d.ts +21 -0
- package/dist/generators/readme.d.ts.map +1 -0
- package/dist/generators/readme.js +224 -0
- package/dist/generators/readme.js.map +1 -0
- package/dist/generators/scripts.d.ts +7 -0
- package/dist/generators/scripts.d.ts.map +1 -0
- package/dist/generators/scripts.js +352 -0
- package/dist/generators/scripts.js.map +1 -0
- package/dist/generators/skills.d.ts +10 -0
- package/dist/generators/skills.d.ts.map +1 -0
- package/dist/generators/skills.js +596 -0
- package/dist/generators/skills.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/registry.d.ts +5 -0
- package/dist/presets/registry.d.ts.map +1 -0
- package/dist/presets/registry.js +121 -0
- package/dist/presets/registry.js.map +1 -0
- package/dist/resolver.d.ts +17 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +254 -0
- package/dist/resolver.js.map +1 -0
- package/dist/schema.d.ts +2426 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +259 -0
- package/dist/schema.js.map +1 -0
- package/dist/services/definitions/anything-llm.d.ts +3 -0
- package/dist/services/definitions/anything-llm.d.ts.map +1 -0
- package/dist/services/definitions/anything-llm.js +39 -0
- package/dist/services/definitions/anything-llm.js.map +1 -0
- package/dist/services/definitions/appflowy.d.ts +3 -0
- package/dist/services/definitions/appflowy.d.ts.map +1 -0
- package/dist/services/definitions/appflowy.js +39 -0
- package/dist/services/definitions/appflowy.js.map +1 -0
- package/dist/services/definitions/beszel.d.ts +3 -0
- package/dist/services/definitions/beszel.d.ts.map +1 -0
- package/dist/services/definitions/beszel.js +39 -0
- package/dist/services/definitions/beszel.js.map +1 -0
- package/dist/services/definitions/browserless.d.ts +3 -0
- package/dist/services/definitions/browserless.d.ts.map +1 -0
- package/dist/services/definitions/browserless.js +77 -0
- package/dist/services/definitions/browserless.js.map +1 -0
- package/dist/services/definitions/caddy.d.ts +3 -0
- package/dist/services/definitions/caddy.d.ts.map +1 -0
- package/dist/services/definitions/caddy.js +50 -0
- package/dist/services/definitions/caddy.js.map +1 -0
- package/dist/services/definitions/chromadb.d.ts +3 -0
- package/dist/services/definitions/chromadb.d.ts.map +1 -0
- package/dist/services/definitions/chromadb.js +61 -0
- package/dist/services/definitions/chromadb.js.map +1 -0
- package/dist/services/definitions/claude-code.d.ts +3 -0
- package/dist/services/definitions/claude-code.d.ts.map +1 -0
- package/dist/services/definitions/claude-code.js +49 -0
- package/dist/services/definitions/claude-code.js.map +1 -0
- package/dist/services/definitions/code-server.d.ts +3 -0
- package/dist/services/definitions/code-server.d.ts.map +1 -0
- package/dist/services/definitions/code-server.js +61 -0
- package/dist/services/definitions/code-server.js.map +1 -0
- package/dist/services/definitions/codex.d.ts +3 -0
- package/dist/services/definitions/codex.d.ts.map +1 -0
- package/dist/services/definitions/codex.js +41 -0
- package/dist/services/definitions/codex.js.map +1 -0
- package/dist/services/definitions/coolify.d.ts +3 -0
- package/dist/services/definitions/coolify.d.ts.map +1 -0
- package/dist/services/definitions/coolify.js +44 -0
- package/dist/services/definitions/coolify.js.map +1 -0
- package/dist/services/definitions/dify.d.ts +3 -0
- package/dist/services/definitions/dify.d.ts.map +1 -0
- package/dist/services/definitions/dify.js +75 -0
- package/dist/services/definitions/dify.js.map +1 -0
- package/dist/services/definitions/docsgpt.d.ts +3 -0
- package/dist/services/definitions/docsgpt.d.ts.map +1 -0
- package/dist/services/definitions/docsgpt.js +39 -0
- package/dist/services/definitions/docsgpt.js.map +1 -0
- package/dist/services/definitions/dokploy.d.ts +3 -0
- package/dist/services/definitions/dokploy.d.ts.map +1 -0
- package/dist/services/definitions/dokploy.js +44 -0
- package/dist/services/definitions/dokploy.js.map +1 -0
- package/dist/services/definitions/dozzle.d.ts +3 -0
- package/dist/services/definitions/dozzle.d.ts.map +1 -0
- package/dist/services/definitions/dozzle.js +33 -0
- package/dist/services/definitions/dozzle.js.map +1 -0
- package/dist/services/definitions/ffmpeg.d.ts +3 -0
- package/dist/services/definitions/ffmpeg.d.ts.map +1 -0
- package/dist/services/definitions/ffmpeg.js +63 -0
- package/dist/services/definitions/ffmpeg.js.map +1 -0
- package/dist/services/definitions/flowise.d.ts +3 -0
- package/dist/services/definitions/flowise.d.ts.map +1 -0
- package/dist/services/definitions/flowise.js +39 -0
- package/dist/services/definitions/flowise.js.map +1 -0
- package/dist/services/definitions/gemini-cli.d.ts +3 -0
- package/dist/services/definitions/gemini-cli.d.ts.map +1 -0
- package/dist/services/definitions/gemini-cli.js +41 -0
- package/dist/services/definitions/gemini-cli.js.map +1 -0
- package/dist/services/definitions/gitea.d.ts +3 -0
- package/dist/services/definitions/gitea.d.ts.map +1 -0
- package/dist/services/definitions/gitea.js +45 -0
- package/dist/services/definitions/gitea.js.map +1 -0
- package/dist/services/definitions/gotify.d.ts +3 -0
- package/dist/services/definitions/gotify.d.ts.map +1 -0
- package/dist/services/definitions/gotify.js +60 -0
- package/dist/services/definitions/gotify.js.map +1 -0
- package/dist/services/definitions/grafana.d.ts +3 -0
- package/dist/services/definitions/grafana.d.ts.map +1 -0
- package/dist/services/definitions/grafana.js +61 -0
- package/dist/services/definitions/grafana.js.map +1 -0
- package/dist/services/definitions/index.d.ts +68 -0
- package/dist/services/definitions/index.d.ts.map +1 -0
- package/dist/services/definitions/index.js +198 -0
- package/dist/services/definitions/index.js.map +1 -0
- package/dist/services/definitions/kimi.d.ts +3 -0
- package/dist/services/definitions/kimi.d.ts.map +1 -0
- package/dist/services/definitions/kimi.js +41 -0
- package/dist/services/definitions/kimi.js.map +1 -0
- package/dist/services/definitions/lasuite-meet-agents.d.ts +3 -0
- package/dist/services/definitions/lasuite-meet-agents.d.ts.map +1 -0
- package/dist/services/definitions/lasuite-meet-agents.js +26 -0
- package/dist/services/definitions/lasuite-meet-agents.js.map +1 -0
- package/dist/services/definitions/lasuite-meet-backend.d.ts +3 -0
- package/dist/services/definitions/lasuite-meet-backend.d.ts.map +1 -0
- package/dist/services/definitions/lasuite-meet-backend.js +118 -0
- package/dist/services/definitions/lasuite-meet-backend.js.map +1 -0
- package/dist/services/definitions/lasuite-meet-frontend.d.ts +3 -0
- package/dist/services/definitions/lasuite-meet-frontend.d.ts.map +1 -0
- package/dist/services/definitions/lasuite-meet-frontend.js +31 -0
- package/dist/services/definitions/lasuite-meet-frontend.js.map +1 -0
- package/dist/services/definitions/librechat.d.ts +3 -0
- package/dist/services/definitions/librechat.d.ts.map +1 -0
- package/dist/services/definitions/librechat.js +47 -0
- package/dist/services/definitions/librechat.js.map +1 -0
- package/dist/services/definitions/lightpanda.d.ts +3 -0
- package/dist/services/definitions/lightpanda.d.ts.map +1 -0
- package/dist/services/definitions/lightpanda.js +59 -0
- package/dist/services/definitions/lightpanda.js.map +1 -0
- package/dist/services/definitions/litellm.d.ts +3 -0
- package/dist/services/definitions/litellm.d.ts.map +1 -0
- package/dist/services/definitions/litellm.js +41 -0
- package/dist/services/definitions/litellm.js.map +1 -0
- package/dist/services/definitions/livekit.d.ts +3 -0
- package/dist/services/definitions/livekit.d.ts.map +1 -0
- package/dist/services/definitions/livekit.js +31 -0
- package/dist/services/definitions/livekit.js.map +1 -0
- package/dist/services/definitions/matomo.d.ts +3 -0
- package/dist/services/definitions/matomo.d.ts.map +1 -0
- package/dist/services/definitions/matomo.js +75 -0
- package/dist/services/definitions/matomo.js.map +1 -0
- package/dist/services/definitions/matrix-synapse.d.ts +3 -0
- package/dist/services/definitions/matrix-synapse.d.ts.map +1 -0
- package/dist/services/definitions/matrix-synapse.js +82 -0
- package/dist/services/definitions/matrix-synapse.js.map +1 -0
- package/dist/services/definitions/mattermost.d.ts +3 -0
- package/dist/services/definitions/mattermost.d.ts.map +1 -0
- package/dist/services/definitions/mattermost.js +59 -0
- package/dist/services/definitions/mattermost.js.map +1 -0
- package/dist/services/definitions/meilisearch.d.ts +3 -0
- package/dist/services/definitions/meilisearch.d.ts.map +1 -0
- package/dist/services/definitions/meilisearch.js +76 -0
- package/dist/services/definitions/meilisearch.js.map +1 -0
- package/dist/services/definitions/minio.d.ts +3 -0
- package/dist/services/definitions/minio.d.ts.map +1 -0
- package/dist/services/definitions/minio.js +98 -0
- package/dist/services/definitions/minio.js.map +1 -0
- package/dist/services/definitions/mixpost.d.ts +3 -0
- package/dist/services/definitions/mixpost.d.ts.map +1 -0
- package/dist/services/definitions/mixpost.js +82 -0
- package/dist/services/definitions/mixpost.js.map +1 -0
- package/dist/services/definitions/motion-canvas.d.ts +3 -0
- package/dist/services/definitions/motion-canvas.d.ts.map +1 -0
- package/dist/services/definitions/motion-canvas.js +48 -0
- package/dist/services/definitions/motion-canvas.js.map +1 -0
- package/dist/services/definitions/n8n.d.ts +3 -0
- package/dist/services/definitions/n8n.d.ts.map +1 -0
- package/dist/services/definitions/n8n.js +146 -0
- package/dist/services/definitions/n8n.js.map +1 -0
- package/dist/services/definitions/nocodb.d.ts +3 -0
- package/dist/services/definitions/nocodb.d.ts.map +1 -0
- package/dist/services/definitions/nocodb.js +39 -0
- package/dist/services/definitions/nocodb.js.map +1 -0
- package/dist/services/definitions/ntfy.d.ts +3 -0
- package/dist/services/definitions/ntfy.d.ts.map +1 -0
- package/dist/services/definitions/ntfy.js +61 -0
- package/dist/services/definitions/ntfy.js.map +1 -0
- package/dist/services/definitions/ollama.d.ts +3 -0
- package/dist/services/definitions/ollama.d.ts.map +1 -0
- package/dist/services/definitions/ollama.js +61 -0
- package/dist/services/definitions/ollama.js.map +1 -0
- package/dist/services/definitions/open-webui.d.ts +3 -0
- package/dist/services/definitions/open-webui.d.ts.map +1 -0
- package/dist/services/definitions/open-webui.js +47 -0
- package/dist/services/definitions/open-webui.js.map +1 -0
- package/dist/services/definitions/opencode.d.ts +3 -0
- package/dist/services/definitions/opencode.d.ts.map +1 -0
- package/dist/services/definitions/opencode.js +47 -0
- package/dist/services/definitions/opencode.js.map +1 -0
- package/dist/services/definitions/openpanel.d.ts +3 -0
- package/dist/services/definitions/openpanel.d.ts.map +1 -0
- package/dist/services/definitions/openpanel.js +41 -0
- package/dist/services/definitions/openpanel.js.map +1 -0
- package/dist/services/definitions/outline.d.ts +3 -0
- package/dist/services/definitions/outline.d.ts.map +1 -0
- package/dist/services/definitions/outline.js +68 -0
- package/dist/services/definitions/outline.js.map +1 -0
- package/dist/services/definitions/paperless-ngx.d.ts +3 -0
- package/dist/services/definitions/paperless-ngx.d.ts.map +1 -0
- package/dist/services/definitions/paperless-ngx.js +85 -0
- package/dist/services/definitions/paperless-ngx.js.map +1 -0
- package/dist/services/definitions/playwright-server.d.ts +3 -0
- package/dist/services/definitions/playwright-server.d.ts.map +1 -0
- package/dist/services/definitions/playwright-server.js +34 -0
- package/dist/services/definitions/playwright-server.js.map +1 -0
- package/dist/services/definitions/portainer.d.ts +3 -0
- package/dist/services/definitions/portainer.d.ts.map +1 -0
- package/dist/services/definitions/portainer.js +44 -0
- package/dist/services/definitions/portainer.js.map +1 -0
- package/dist/services/definitions/postgresql.d.ts +3 -0
- package/dist/services/definitions/postgresql.d.ts.map +1 -0
- package/dist/services/definitions/postgresql.js +83 -0
- package/dist/services/definitions/postgresql.js.map +1 -0
- package/dist/services/definitions/postiz.d.ts +3 -0
- package/dist/services/definitions/postiz.d.ts.map +1 -0
- package/dist/services/definitions/postiz.js +79 -0
- package/dist/services/definitions/postiz.js.map +1 -0
- package/dist/services/definitions/prometheus.d.ts +3 -0
- package/dist/services/definitions/prometheus.d.ts.map +1 -0
- package/dist/services/definitions/prometheus.js +47 -0
- package/dist/services/definitions/prometheus.js.map +1 -0
- package/dist/services/definitions/qdrant.d.ts +3 -0
- package/dist/services/definitions/qdrant.d.ts.map +1 -0
- package/dist/services/definitions/qdrant.js +75 -0
- package/dist/services/definitions/qdrant.js.map +1 -0
- package/dist/services/definitions/redis.d.ts +3 -0
- package/dist/services/definitions/redis.d.ts.map +1 -0
- package/dist/services/definitions/redis.js +90 -0
- package/dist/services/definitions/redis.js.map +1 -0
- package/dist/services/definitions/remotion.d.ts +3 -0
- package/dist/services/definitions/remotion.d.ts.map +1 -0
- package/dist/services/definitions/remotion.js +48 -0
- package/dist/services/definitions/remotion.js.map +1 -0
- package/dist/services/definitions/rocketchat.d.ts +3 -0
- package/dist/services/definitions/rocketchat.d.ts.map +1 -0
- package/dist/services/definitions/rocketchat.js +54 -0
- package/dist/services/definitions/rocketchat.js.map +1 -0
- package/dist/services/definitions/searxng.d.ts +3 -0
- package/dist/services/definitions/searxng.d.ts.map +1 -0
- package/dist/services/definitions/searxng.js +61 -0
- package/dist/services/definitions/searxng.js.map +1 -0
- package/dist/services/definitions/stable-diffusion.d.ts +3 -0
- package/dist/services/definitions/stable-diffusion.d.ts.map +1 -0
- package/dist/services/definitions/stable-diffusion.js +44 -0
- package/dist/services/definitions/stable-diffusion.js.map +1 -0
- package/dist/services/definitions/steel-browser.d.ts +3 -0
- package/dist/services/definitions/steel-browser.d.ts.map +1 -0
- package/dist/services/definitions/steel-browser.js +68 -0
- package/dist/services/definitions/steel-browser.js.map +1 -0
- package/dist/services/definitions/tailscale.d.ts +3 -0
- package/dist/services/definitions/tailscale.d.ts.map +1 -0
- package/dist/services/definitions/tailscale.js +62 -0
- package/dist/services/definitions/tailscale.js.map +1 -0
- package/dist/services/definitions/temporal.d.ts +3 -0
- package/dist/services/definitions/temporal.d.ts.map +1 -0
- package/dist/services/definitions/temporal.js +97 -0
- package/dist/services/definitions/temporal.js.map +1 -0
- package/dist/services/definitions/traefik.d.ts +3 -0
- package/dist/services/definitions/traefik.d.ts.map +1 -0
- package/dist/services/definitions/traefik.js +52 -0
- package/dist/services/definitions/traefik.js.map +1 -0
- package/dist/services/definitions/umami.d.ts +3 -0
- package/dist/services/definitions/umami.d.ts.map +1 -0
- package/dist/services/definitions/umami.js +41 -0
- package/dist/services/definitions/umami.js.map +1 -0
- package/dist/services/definitions/uptime-kuma.d.ts +3 -0
- package/dist/services/definitions/uptime-kuma.d.ts.map +1 -0
- package/dist/services/definitions/uptime-kuma.js +46 -0
- package/dist/services/definitions/uptime-kuma.js.map +1 -0
- package/dist/services/definitions/valkey.d.ts +3 -0
- package/dist/services/definitions/valkey.d.ts.map +1 -0
- package/dist/services/definitions/valkey.js +60 -0
- package/dist/services/definitions/valkey.js.map +1 -0
- package/dist/services/definitions/watchtower.d.ts +3 -0
- package/dist/services/definitions/watchtower.d.ts.map +1 -0
- package/dist/services/definitions/watchtower.js +41 -0
- package/dist/services/definitions/watchtower.js.map +1 -0
- package/dist/services/definitions/weaviate.d.ts +3 -0
- package/dist/services/definitions/weaviate.d.ts.map +1 -0
- package/dist/services/definitions/weaviate.js +89 -0
- package/dist/services/definitions/weaviate.js.map +1 -0
- package/dist/services/definitions/whisper.d.ts +3 -0
- package/dist/services/definitions/whisper.d.ts.map +1 -0
- package/dist/services/definitions/whisper.js +55 -0
- package/dist/services/definitions/whisper.js.map +1 -0
- package/dist/services/registry.d.ts +12 -0
- package/dist/services/registry.d.ts.map +1 -0
- package/dist/services/registry.js +28 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/skills/registry.d.ts +7 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +111 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/dist/validator.d.ts +16 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +142 -0
- package/dist/validator.js.map +1 -0
- package/dist/version-manager.d.ts +10 -0
- package/dist/version-manager.d.ts.map +1 -0
- package/dist/version-manager.js +60 -0
- package/dist/version-manager.js.map +1 -0
- package/package.json +37 -0
- package/src/__snapshots__/composer.snapshot.test.ts.snap +903 -0
- package/src/bare-metal-partition.test.ts +63 -0
- package/src/bare-metal-partition.ts +64 -0
- package/src/composer.snapshot.test.ts +87 -0
- package/src/composer.test.ts +224 -0
- package/src/composer.ts +403 -0
- package/src/generate.test.ts +349 -0
- package/src/generate.ts +259 -0
- package/src/generators/bare-metal-install.test.ts +43 -0
- package/src/generators/bare-metal-install.ts +249 -0
- package/src/generators/caddy.ts +99 -0
- package/src/generators/env.ts +405 -0
- package/src/generators/grafana.ts +255 -0
- package/src/generators/n8n-workflows.ts +88 -0
- package/src/generators/native-services.ts +103 -0
- package/src/generators/postgres-init.ts +137 -0
- package/src/generators/prometheus.ts +89 -0
- package/src/generators/readme.ts +274 -0
- package/src/generators/scripts.ts +362 -0
- package/src/generators/skills.ts +628 -0
- package/src/index.ts +118 -0
- package/src/presets/registry.test.ts +32 -0
- package/src/presets/registry.ts +126 -0
- package/src/resolver.test.ts +204 -0
- package/src/resolver.ts +282 -0
- package/src/schema.test.ts +295 -0
- package/src/schema.ts +307 -0
- package/src/services/definitions/anything-llm.ts +46 -0
- package/src/services/definitions/appflowy.ts +46 -0
- package/src/services/definitions/beszel.ts +46 -0
- package/src/services/definitions/browserless.ts +84 -0
- package/src/services/definitions/caddy.ts +57 -0
- package/src/services/definitions/chromadb.ts +68 -0
- package/src/services/definitions/claude-code.ts +56 -0
- package/src/services/definitions/code-server.ts +67 -0
- package/src/services/definitions/codex.ts +48 -0
- package/src/services/definitions/coolify.ts +51 -0
- package/src/services/definitions/dify.ts +82 -0
- package/src/services/definitions/docsgpt.ts +45 -0
- package/src/services/definitions/dokploy.ts +51 -0
- package/src/services/definitions/dozzle.ts +40 -0
- package/src/services/definitions/ffmpeg.ts +70 -0
- package/src/services/definitions/flowise.ts +45 -0
- package/src/services/definitions/gemini-cli.ts +48 -0
- package/src/services/definitions/gitea.ts +52 -0
- package/src/services/definitions/gotify.ts +67 -0
- package/src/services/definitions/grafana.ts +68 -0
- package/src/services/definitions/index.ts +200 -0
- package/src/services/definitions/kimi.ts +48 -0
- package/src/services/definitions/lasuite-meet-agents.ts +33 -0
- package/src/services/definitions/lasuite-meet-backend.ts +125 -0
- package/src/services/definitions/lasuite-meet-frontend.ts +38 -0
- package/src/services/definitions/librechat.ts +54 -0
- package/src/services/definitions/lightpanda.ts +61 -0
- package/src/services/definitions/litellm.ts +48 -0
- package/src/services/definitions/livekit.ts +38 -0
- package/src/services/definitions/matomo.ts +82 -0
- package/src/services/definitions/matrix-synapse.ts +89 -0
- package/src/services/definitions/mattermost.ts +67 -0
- package/src/services/definitions/meilisearch.ts +83 -0
- package/src/services/definitions/minio.ts +105 -0
- package/src/services/definitions/mixpost.ts +89 -0
- package/src/services/definitions/motion-canvas.ts +55 -0
- package/src/services/definitions/n8n.ts +153 -0
- package/src/services/definitions/nocodb.ts +46 -0
- package/src/services/definitions/ntfy.ts +68 -0
- package/src/services/definitions/ollama.ts +68 -0
- package/src/services/definitions/open-webui.ts +54 -0
- package/src/services/definitions/opencode.ts +54 -0
- package/src/services/definitions/openpanel.ts +48 -0
- package/src/services/definitions/outline.ts +75 -0
- package/src/services/definitions/paperless-ngx.ts +92 -0
- package/src/services/definitions/playwright-server.ts +41 -0
- package/src/services/definitions/portainer.ts +50 -0
- package/src/services/definitions/postgresql.ts +90 -0
- package/src/services/definitions/postiz.ts +86 -0
- package/src/services/definitions/prometheus.ts +54 -0
- package/src/services/definitions/qdrant.ts +82 -0
- package/src/services/definitions/redis.ts +99 -0
- package/src/services/definitions/remotion.ts +55 -0
- package/src/services/definitions/rocketchat.ts +61 -0
- package/src/services/definitions/searxng.ts +68 -0
- package/src/services/definitions/stable-diffusion.ts +50 -0
- package/src/services/definitions/steel-browser.ts +70 -0
- package/src/services/definitions/tailscale.ts +69 -0
- package/src/services/definitions/temporal.ts +104 -0
- package/src/services/definitions/traefik.ts +60 -0
- package/src/services/definitions/umami.ts +48 -0
- package/src/services/definitions/uptime-kuma.ts +53 -0
- package/src/services/definitions/valkey.ts +67 -0
- package/src/services/definitions/watchtower.ts +47 -0
- package/src/services/definitions/weaviate.ts +96 -0
- package/src/services/definitions/whisper.ts +62 -0
- package/src/services/registry.test.ts +98 -0
- package/src/services/registry.ts +37 -0
- package/src/skills/registry.ts +126 -0
- package/src/types.ts +123 -0
- package/src/validator.test.ts +66 -0
- package/src/validator.ts +166 -0
- package/src/version-manager.ts +65 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/generators/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates Grafana provisioning configuration files.
|
|
3
|
+
*
|
|
4
|
+
* Returns a map of file paths (relative to project root) to file contents.
|
|
5
|
+
* Includes datasource provisioning YAML for the Prometheus connection.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateGrafanaConfig(): Record<string, string>;
|
|
8
|
+
/**
|
|
9
|
+
* Generates a Grafana dashboard JSON for the OpenClaw stack overview.
|
|
10
|
+
*
|
|
11
|
+
* The dashboard includes:
|
|
12
|
+
* - Service Health (stat panel)
|
|
13
|
+
* - Memory Usage (gauge)
|
|
14
|
+
* - Request Rate (graph)
|
|
15
|
+
*
|
|
16
|
+
* Uses Prometheus as the datasource.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateGrafanaDashboard(): string;
|
|
19
|
+
//# sourceMappingURL=grafana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana.d.ts","sourceRoot":"","sources":["../../src/generators/grafana.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqF9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAuJjD"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates Grafana provisioning configuration files.
|
|
3
|
+
*
|
|
4
|
+
* Returns a map of file paths (relative to project root) to file contents.
|
|
5
|
+
* Includes datasource provisioning YAML for the Prometheus connection.
|
|
6
|
+
*/
|
|
7
|
+
export function generateGrafanaConfig() {
|
|
8
|
+
const files = {};
|
|
9
|
+
// ── Datasource Provisioning ─────────────────────────────────────────────
|
|
10
|
+
files["config/grafana/provisioning/datasources/prometheus.yml"] =
|
|
11
|
+
`# ═══════════════════════════════════════════════════════════════════════════════
|
|
12
|
+
# Grafana Datasource Provisioning — Auto-generated by OpenClaw
|
|
13
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
14
|
+
|
|
15
|
+
apiVersion: 1
|
|
16
|
+
|
|
17
|
+
datasources:
|
|
18
|
+
# Prometheus — primary metrics datasource
|
|
19
|
+
- name: Prometheus
|
|
20
|
+
type: prometheus
|
|
21
|
+
access: proxy
|
|
22
|
+
url: http://prometheus:9090
|
|
23
|
+
isDefault: true
|
|
24
|
+
editable: true
|
|
25
|
+
jsonData:
|
|
26
|
+
httpMethod: POST
|
|
27
|
+
timeInterval: "15s"
|
|
28
|
+
exemplarTraceIdDestinations:
|
|
29
|
+
- name: traceID
|
|
30
|
+
datasourceUid: ""
|
|
31
|
+
version: 1
|
|
32
|
+
`;
|
|
33
|
+
// ── Dashboard Provisioning ───────────────────────────────────────────────
|
|
34
|
+
files["config/grafana/provisioning/dashboards/default.yml"] =
|
|
35
|
+
`# ═══════════════════════════════════════════════════════════════════════════════
|
|
36
|
+
# Grafana Dashboard Provisioning — Auto-generated by OpenClaw
|
|
37
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
38
|
+
|
|
39
|
+
apiVersion: 1
|
|
40
|
+
|
|
41
|
+
providers:
|
|
42
|
+
- name: "OpenClaw Dashboards"
|
|
43
|
+
orgId: 1
|
|
44
|
+
folder: "OpenClaw"
|
|
45
|
+
type: file
|
|
46
|
+
disableDeletion: false
|
|
47
|
+
editable: true
|
|
48
|
+
updateIntervalSeconds: 30
|
|
49
|
+
allowUiUpdates: true
|
|
50
|
+
options:
|
|
51
|
+
path: /var/lib/grafana/dashboards
|
|
52
|
+
foldersFromFilesStructure: false
|
|
53
|
+
`;
|
|
54
|
+
// ── Grafana Configuration (grafana.ini overrides) ────────────────────────
|
|
55
|
+
files["config/grafana/grafana.ini"] =
|
|
56
|
+
`# ═══════════════════════════════════════════════════════════════════════════════
|
|
57
|
+
# Grafana Configuration — Auto-generated by OpenClaw
|
|
58
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
59
|
+
|
|
60
|
+
[server]
|
|
61
|
+
root_url = %(protocol)s://%(domain)s/
|
|
62
|
+
|
|
63
|
+
[security]
|
|
64
|
+
# Admin credentials are set via environment variables:
|
|
65
|
+
# GF_SECURITY_ADMIN_USER
|
|
66
|
+
# GF_SECURITY_ADMIN_PASSWORD
|
|
67
|
+
|
|
68
|
+
[auth.anonymous]
|
|
69
|
+
enabled = false
|
|
70
|
+
|
|
71
|
+
[dashboards]
|
|
72
|
+
default_home_dashboard_path = /var/lib/grafana/dashboards/home.json
|
|
73
|
+
|
|
74
|
+
[alerting]
|
|
75
|
+
enabled = true
|
|
76
|
+
|
|
77
|
+
[unified_alerting]
|
|
78
|
+
enabled = true
|
|
79
|
+
|
|
80
|
+
[log]
|
|
81
|
+
mode = console
|
|
82
|
+
level = info
|
|
83
|
+
`;
|
|
84
|
+
return files;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Generates a Grafana dashboard JSON for the OpenClaw stack overview.
|
|
88
|
+
*
|
|
89
|
+
* The dashboard includes:
|
|
90
|
+
* - Service Health (stat panel)
|
|
91
|
+
* - Memory Usage (gauge)
|
|
92
|
+
* - Request Rate (graph)
|
|
93
|
+
*
|
|
94
|
+
* Uses Prometheus as the datasource.
|
|
95
|
+
*/
|
|
96
|
+
export function generateGrafanaDashboard() {
|
|
97
|
+
const dashboard = {
|
|
98
|
+
annotations: { list: [] },
|
|
99
|
+
editable: true,
|
|
100
|
+
fiscalYearStartMonth: 0,
|
|
101
|
+
graphTooltip: 1,
|
|
102
|
+
links: [],
|
|
103
|
+
panels: [
|
|
104
|
+
{
|
|
105
|
+
// ── Service Health (stat panel) ──
|
|
106
|
+
id: 1,
|
|
107
|
+
title: "Service Health",
|
|
108
|
+
type: "stat",
|
|
109
|
+
gridPos: { h: 8, w: 8, x: 0, y: 0 },
|
|
110
|
+
datasource: { type: "prometheus", uid: "prometheus" },
|
|
111
|
+
targets: [
|
|
112
|
+
{
|
|
113
|
+
expr: 'count(up{job=~".+"} == 1)',
|
|
114
|
+
legendFormat: "Healthy Services",
|
|
115
|
+
refId: "A",
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
fieldConfig: {
|
|
119
|
+
defaults: {
|
|
120
|
+
thresholds: {
|
|
121
|
+
mode: "absolute",
|
|
122
|
+
steps: [
|
|
123
|
+
{ color: "red", value: null },
|
|
124
|
+
{ color: "yellow", value: 1 },
|
|
125
|
+
{ color: "green", value: 3 },
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
color: { mode: "thresholds" },
|
|
129
|
+
mappings: [],
|
|
130
|
+
},
|
|
131
|
+
overrides: [],
|
|
132
|
+
},
|
|
133
|
+
options: {
|
|
134
|
+
reduceOptions: {
|
|
135
|
+
values: false,
|
|
136
|
+
calcs: ["lastNotNull"],
|
|
137
|
+
fields: "",
|
|
138
|
+
},
|
|
139
|
+
orientation: "auto",
|
|
140
|
+
textMode: "auto",
|
|
141
|
+
colorMode: "background",
|
|
142
|
+
graphMode: "none",
|
|
143
|
+
justifyMode: "auto",
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
// ── Memory Usage (gauge) ──
|
|
148
|
+
id: 2,
|
|
149
|
+
title: "Memory Usage",
|
|
150
|
+
type: "gauge",
|
|
151
|
+
gridPos: { h: 8, w: 8, x: 8, y: 0 },
|
|
152
|
+
datasource: { type: "prometheus", uid: "prometheus" },
|
|
153
|
+
targets: [
|
|
154
|
+
{
|
|
155
|
+
expr: "sum(container_memory_usage_bytes) / sum(machine_memory_bytes) * 100",
|
|
156
|
+
legendFormat: "Memory %",
|
|
157
|
+
refId: "A",
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
fieldConfig: {
|
|
161
|
+
defaults: {
|
|
162
|
+
thresholds: {
|
|
163
|
+
mode: "absolute",
|
|
164
|
+
steps: [
|
|
165
|
+
{ color: "green", value: null },
|
|
166
|
+
{ color: "yellow", value: 60 },
|
|
167
|
+
{ color: "red", value: 85 },
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
color: { mode: "thresholds" },
|
|
171
|
+
min: 0,
|
|
172
|
+
max: 100,
|
|
173
|
+
unit: "percent",
|
|
174
|
+
mappings: [],
|
|
175
|
+
},
|
|
176
|
+
overrides: [],
|
|
177
|
+
},
|
|
178
|
+
options: {
|
|
179
|
+
reduceOptions: {
|
|
180
|
+
values: false,
|
|
181
|
+
calcs: ["lastNotNull"],
|
|
182
|
+
fields: "",
|
|
183
|
+
},
|
|
184
|
+
orientation: "auto",
|
|
185
|
+
showThresholdLabels: false,
|
|
186
|
+
showThresholdMarkers: true,
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
// ── Request Rate (graph / timeseries) ──
|
|
191
|
+
id: 3,
|
|
192
|
+
title: "Request Rate",
|
|
193
|
+
type: "timeseries",
|
|
194
|
+
gridPos: { h: 8, w: 8, x: 16, y: 0 },
|
|
195
|
+
datasource: { type: "prometheus", uid: "prometheus" },
|
|
196
|
+
targets: [
|
|
197
|
+
{
|
|
198
|
+
expr: 'sum(rate(http_requests_total{job=~".+"}[5m])) by (job)',
|
|
199
|
+
legendFormat: "{{job}}",
|
|
200
|
+
refId: "A",
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
fieldConfig: {
|
|
204
|
+
defaults: {
|
|
205
|
+
color: { mode: "palette-classic" },
|
|
206
|
+
custom: {
|
|
207
|
+
axisBorderShow: false,
|
|
208
|
+
axisCenteredZero: false,
|
|
209
|
+
axisColorMode: "text",
|
|
210
|
+
axisLabel: "req/s",
|
|
211
|
+
drawStyle: "line",
|
|
212
|
+
fillOpacity: 10,
|
|
213
|
+
gradientMode: "none",
|
|
214
|
+
lineInterpolation: "smooth",
|
|
215
|
+
lineWidth: 2,
|
|
216
|
+
pointSize: 5,
|
|
217
|
+
showPoints: "auto",
|
|
218
|
+
spanNulls: false,
|
|
219
|
+
stacking: { group: "A", mode: "none" },
|
|
220
|
+
},
|
|
221
|
+
mappings: [],
|
|
222
|
+
thresholds: {
|
|
223
|
+
mode: "absolute",
|
|
224
|
+
steps: [{ color: "green", value: null }],
|
|
225
|
+
},
|
|
226
|
+
unit: "reqps",
|
|
227
|
+
},
|
|
228
|
+
overrides: [],
|
|
229
|
+
},
|
|
230
|
+
options: {
|
|
231
|
+
legend: { calcs: [], displayMode: "list", placement: "bottom" },
|
|
232
|
+
tooltip: { mode: "multi", sort: "desc" },
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
schemaVersion: 39,
|
|
237
|
+
tags: ["openclaw"],
|
|
238
|
+
templating: { list: [] },
|
|
239
|
+
time: { from: "now-1h", to: "now" },
|
|
240
|
+
timepicker: {},
|
|
241
|
+
timezone: "browser",
|
|
242
|
+
title: "OpenClaw Stack Overview",
|
|
243
|
+
uid: "openclaw-stack-overview",
|
|
244
|
+
};
|
|
245
|
+
return JSON.stringify(dashboard, null, 2);
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=grafana.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana.js","sourceRoot":"","sources":["../../src/generators/grafana.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ResolverOutput } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Generates n8n workflow template files.
|
|
4
|
+
* Returns a map of file paths to JSON content strings.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateN8nWorkflows(resolved: ResolverOutput): Record<string, string>;
|
|
7
|
+
//# sourceMappingURL=n8n-workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"n8n-workflows.d.ts","sourceRoot":"","sources":["../../src/generators/n8n-workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcrF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates n8n workflow template files.
|
|
3
|
+
* Returns a map of file paths to JSON content strings.
|
|
4
|
+
*/
|
|
5
|
+
export function generateN8nWorkflows(resolved) {
|
|
6
|
+
const files = {};
|
|
7
|
+
// Only generate if n8n is in the stack
|
|
8
|
+
const hasN8n = resolved.services.some((s) => s.definition.id === "n8n");
|
|
9
|
+
if (!hasN8n)
|
|
10
|
+
return files;
|
|
11
|
+
files["n8n/workflows/openclaw-webhook-handler.json"] = JSON.stringify(createWebhookHandlerWorkflow(resolved), null, 2);
|
|
12
|
+
return files;
|
|
13
|
+
}
|
|
14
|
+
function createWebhookHandlerWorkflow(resolved) {
|
|
15
|
+
// Create a basic n8n workflow JSON that:
|
|
16
|
+
// 1. Has a Webhook trigger node listening on /openclaw-webhook
|
|
17
|
+
// 2. Has a Function node that processes the payload
|
|
18
|
+
// 3. Outputs to a Respond to Webhook node
|
|
19
|
+
const serviceNames = resolved.services.map((s) => s.definition.name).join(", ");
|
|
20
|
+
return {
|
|
21
|
+
name: "OpenClaw Webhook Handler",
|
|
22
|
+
nodes: [
|
|
23
|
+
{
|
|
24
|
+
parameters: {
|
|
25
|
+
httpMethod: "POST",
|
|
26
|
+
path: "openclaw-webhook",
|
|
27
|
+
responseMode: "responseNode",
|
|
28
|
+
options: {},
|
|
29
|
+
},
|
|
30
|
+
id: "webhook-trigger",
|
|
31
|
+
name: "Webhook",
|
|
32
|
+
type: "n8n-nodes-base.webhook",
|
|
33
|
+
typeVersion: 2,
|
|
34
|
+
position: [250, 300],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
parameters: {
|
|
38
|
+
jsCode: "// Process OpenClaw webhook payload\n" +
|
|
39
|
+
"const payload = $input.all()[0].json;\n" +
|
|
40
|
+
"\n" +
|
|
41
|
+
"// Available services in this stack:\n" +
|
|
42
|
+
`// ${serviceNames}\n` +
|
|
43
|
+
"\n" +
|
|
44
|
+
"return [{ json: { received: true, timestamp: new Date().toISOString(), payload } }];",
|
|
45
|
+
},
|
|
46
|
+
id: "process-payload",
|
|
47
|
+
name: "Process Payload",
|
|
48
|
+
type: "n8n-nodes-base.code",
|
|
49
|
+
typeVersion: 2,
|
|
50
|
+
position: [470, 300],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
parameters: {
|
|
54
|
+
respondWith: "json",
|
|
55
|
+
responseBody: "={{ JSON.stringify($json) }}",
|
|
56
|
+
options: {},
|
|
57
|
+
},
|
|
58
|
+
id: "respond",
|
|
59
|
+
name: "Respond to Webhook",
|
|
60
|
+
type: "n8n-nodes-base.respondToWebhook",
|
|
61
|
+
typeVersion: 1,
|
|
62
|
+
position: [690, 300],
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
connections: {
|
|
66
|
+
Webhook: {
|
|
67
|
+
main: [[{ node: "Process Payload", type: "main", index: 0 }]],
|
|
68
|
+
},
|
|
69
|
+
"Process Payload": {
|
|
70
|
+
main: [[{ node: "Respond to Webhook", type: "main", index: 0 }]],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
active: false,
|
|
74
|
+
settings: { executionOrder: "v1" },
|
|
75
|
+
tags: [{ name: "openclaw" }],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=n8n-workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"n8n-workflows.js","sourceRoot":"","sources":["../../src/generators/n8n-workflows.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwB;IAC5D,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,uCAAuC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,KAAK,CAAC,6CAA6C,CAAC,GAAG,IAAI,CAAC,SAAS,CACpE,4BAA4B,CAAC,QAAQ,CAAC,EACtC,IAAI,EACJ,CAAC,CACD,CAAC;IAEF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAwB;IAC7D,yCAAyC;IACzC,+DAA+D;IAC/D,oDAAoD;IACpD,0CAA0C;IAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhF,OAAO;QACN,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE;YACN;gBACC,UAAU,EAAE;oBACX,UAAU,EAAE,MAAM;oBAClB,IAAI,EAAE,kBAAkB;oBACxB,YAAY,EAAE,cAAc;oBAC5B,OAAO,EAAE,EAAE;iBACX;gBACD,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB;YACD;gBACC,UAAU,EAAE;oBACX,MAAM,EACL,uCAAuC;wBACvC,yCAAyC;wBACzC,IAAI;wBACJ,wCAAwC;wBACxC,MAAM,YAAY,IAAI;wBACtB,IAAI;wBACJ,sFAAsF;iBACvF;gBACD,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB;YACD;gBACC,UAAU,EAAE;oBACX,WAAW,EAAE,MAAM;oBACnB,YAAY,EAAE,8BAA8B;oBAC5C,OAAO,EAAE,EAAE;iBACX;gBACD,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,iCAAiC;gBACvC,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB;SACD;QACD,WAAW,EAAE;YACZ,OAAO,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7D;YACD,iBAAiB,EAAE;gBAClB,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAChE;SACD;QACD,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;QAClC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAC5B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NativePlatform, ResolvedService } from "../types.js";
|
|
2
|
+
export interface NativeServicesGeneratorOptions {
|
|
3
|
+
nativeServices: ResolvedService[];
|
|
4
|
+
platform: NativePlatform;
|
|
5
|
+
projectName: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Generates native install/run scripts for services that have a native recipe.
|
|
9
|
+
* Returns e.g. native/install-linux.sh (or native/install.ps1 for Windows).
|
|
10
|
+
* Scripts source .env and run install steps then start commands in dependency order.
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateNativeInstallScripts(options: NativeServicesGeneratorOptions): Record<string, string>;
|
|
13
|
+
//# sourceMappingURL=native-services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-services.d.ts","sourceRoot":"","sources":["../../src/generators/native-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,WAAW,8BAA8B;IAC9C,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,8BAA8B,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates native install/run scripts for services that have a native recipe.
|
|
3
|
+
* Returns e.g. native/install-linux.sh (or native/install.ps1 for Windows).
|
|
4
|
+
* Scripts source .env and run install steps then start commands in dependency order.
|
|
5
|
+
*/
|
|
6
|
+
export function generateNativeInstallScripts(options) {
|
|
7
|
+
const { nativeServices, platform } = options;
|
|
8
|
+
const files = {};
|
|
9
|
+
if (platform === "linux") {
|
|
10
|
+
files["native/install-linux.sh"] = buildLinuxNativeScript(nativeServices);
|
|
11
|
+
}
|
|
12
|
+
else if (platform === "windows") {
|
|
13
|
+
files["native/install-windows.ps1"] = buildWindowsNativeScript(nativeServices);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// macos: use bash script similar to linux
|
|
17
|
+
files["native/install-macos.sh"] = buildLinuxNativeScript(nativeServices);
|
|
18
|
+
}
|
|
19
|
+
return files;
|
|
20
|
+
}
|
|
21
|
+
function buildLinuxNativeScript(nativeServices) {
|
|
22
|
+
const lines = [
|
|
23
|
+
"#!/usr/bin/env bash",
|
|
24
|
+
"set -euo pipefail",
|
|
25
|
+
"# OpenClaw native services — install and start (Linux). Run from project root. Source .env first.",
|
|
26
|
+
"",
|
|
27
|
+
'SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"',
|
|
28
|
+
'PROJECT_DIR="$(dirname "$SCRIPT_DIR")"',
|
|
29
|
+
'cd "$PROJECT_DIR"',
|
|
30
|
+
"",
|
|
31
|
+
"if [ -f .env ]; then set -a; source .env; set +a; fi",
|
|
32
|
+
"",
|
|
33
|
+
];
|
|
34
|
+
for (const { definition: def } of nativeServices) {
|
|
35
|
+
const recipe = def.nativeRecipes?.find((r) => r.platform === "linux");
|
|
36
|
+
if (!recipe)
|
|
37
|
+
continue;
|
|
38
|
+
lines.push(`# ─── ${def.icon} ${def.name} ─────────────────────────────────────────`);
|
|
39
|
+
lines.push("");
|
|
40
|
+
if (recipe.configPath && recipe.configTemplate) {
|
|
41
|
+
const delim = `ENDOF_${def.id.toUpperCase().replace(/-/g, "_")}_CONF`;
|
|
42
|
+
lines.push(`# Write config for ${def.id}`);
|
|
43
|
+
lines.push(`sudo mkdir -p "$(dirname "${recipe.configPath}")" 2>/dev/null || true`);
|
|
44
|
+
lines.push(`sudo tee "${recipe.configPath}" > /dev/null << ${delim}`);
|
|
45
|
+
lines.push(recipe.configTemplate.trim());
|
|
46
|
+
lines.push(delim);
|
|
47
|
+
lines.push("");
|
|
48
|
+
}
|
|
49
|
+
for (const step of recipe.installSteps) {
|
|
50
|
+
lines.push(`# Install: ${def.id}`);
|
|
51
|
+
lines.push(step);
|
|
52
|
+
lines.push("");
|
|
53
|
+
}
|
|
54
|
+
lines.push(`# Start: ${def.id}`);
|
|
55
|
+
lines.push(recipe.startCommand);
|
|
56
|
+
lines.push("");
|
|
57
|
+
}
|
|
58
|
+
lines.push("echo 'Native services started.'");
|
|
59
|
+
return lines.join("\n");
|
|
60
|
+
}
|
|
61
|
+
function buildWindowsNativeScript(nativeServices) {
|
|
62
|
+
const lines = [
|
|
63
|
+
"# OpenClaw native services — install and start (Windows). Run from project root.",
|
|
64
|
+
"$ErrorActionPreference = 'Stop'",
|
|
65
|
+
"$ProjectDir = (Get-Item $PSScriptRoot).Parent.FullName",
|
|
66
|
+
"Set-Location $ProjectDir",
|
|
67
|
+
"",
|
|
68
|
+
"if (Test-Path .env) { Get-Content .env | ForEach-Object { if ($_ -match '^([^#=]+)=(.*)$') { [System.Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim(), 'Process') } } }",
|
|
69
|
+
"",
|
|
70
|
+
];
|
|
71
|
+
for (const { definition: def } of nativeServices) {
|
|
72
|
+
const recipe = def.nativeRecipes?.find((r) => r.platform === "windows");
|
|
73
|
+
if (!recipe)
|
|
74
|
+
continue;
|
|
75
|
+
lines.push(`# ${def.name}`);
|
|
76
|
+
for (const step of recipe.installSteps) {
|
|
77
|
+
lines.push(`Invoke-Expression "${step.replace(/"/g, '`"')}"`);
|
|
78
|
+
}
|
|
79
|
+
lines.push(recipe.startCommand);
|
|
80
|
+
lines.push("");
|
|
81
|
+
}
|
|
82
|
+
lines.push("Write-Host 'Native services started.'");
|
|
83
|
+
return lines.join("\n");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=native-services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-services.js","sourceRoot":"","sources":["../../src/generators/native-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ResolverOutput } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Database requirement descriptor for a service.
|
|
4
|
+
*/
|
|
5
|
+
interface DbRequirement {
|
|
6
|
+
serviceId: string;
|
|
7
|
+
serviceName: string;
|
|
8
|
+
dbName: string;
|
|
9
|
+
dbUser: string;
|
|
10
|
+
passwordEnvVar: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get the list of database requirements for all resolved services.
|
|
14
|
+
* Exported so other generators (env, composer) can access the same data.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getDbRequirements(resolved: ResolverOutput): DbRequirement[];
|
|
17
|
+
/**
|
|
18
|
+
* Generates a PostgreSQL initialization script that creates databases and users
|
|
19
|
+
* for all companion services that need their own DB.
|
|
20
|
+
*
|
|
21
|
+
* Returns null if PostgreSQL is not in the resolved stack or no services need extra DBs.
|
|
22
|
+
* The script is designed to be mounted at /docker-entrypoint-initdb.d/init-databases.sh
|
|
23
|
+
* and runs automatically during PostgreSQL's first initialization.
|
|
24
|
+
*/
|
|
25
|
+
export declare function generatePostgresInit(resolved: ResolverOutput): string | null;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=postgres-init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-init.d.ts","sourceRoot":"","sources":["../../src/generators/postgres-init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,UAAU,aAAa;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACvB;AA4BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,EAAE,CAa3E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAsE5E"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known database requirements for services that need their own PostgreSQL database.
|
|
3
|
+
* Maps service ID to the DB name, user, and password env var they expect.
|
|
4
|
+
*/
|
|
5
|
+
const DB_REQUIREMENTS = {
|
|
6
|
+
n8n: { dbName: "n8n", dbUser: "n8n", passwordEnvVar: "N8N_DB_PASSWORD" },
|
|
7
|
+
postiz: { dbName: "postiz", dbUser: "postiz", passwordEnvVar: "POSTIZ_DB_PASSWORD" },
|
|
8
|
+
outline: { dbName: "outline", dbUser: "outline", passwordEnvVar: "OUTLINE_DB_PASSWORD" },
|
|
9
|
+
dify: { dbName: "dify", dbUser: "dify", passwordEnvVar: "DIFY_DB_PASSWORD" },
|
|
10
|
+
temporal: { dbName: "temporal", dbUser: "temporal", passwordEnvVar: "TEMPORAL_DB_PASSWORD" },
|
|
11
|
+
mattermost: {
|
|
12
|
+
dbName: "mattermost",
|
|
13
|
+
dbUser: "mattermost",
|
|
14
|
+
passwordEnvVar: "MATTERMOST_DB_PASSWORD",
|
|
15
|
+
},
|
|
16
|
+
"matrix-synapse": { dbName: "synapse", dbUser: "synapse", passwordEnvVar: "SYNAPSE_DB_PASSWORD" },
|
|
17
|
+
"paperless-ngx": {
|
|
18
|
+
dbName: "paperless",
|
|
19
|
+
dbUser: "paperless",
|
|
20
|
+
passwordEnvVar: "PAPERLESS_DB_PASSWORD",
|
|
21
|
+
},
|
|
22
|
+
umami: { dbName: "umami", dbUser: "umami", passwordEnvVar: "UMAMI_DB_PASSWORD" },
|
|
23
|
+
matomo: { dbName: "matomo", dbUser: "matomo", passwordEnvVar: "MATOMO_DB_PASSWORD" },
|
|
24
|
+
mixpost: { dbName: "mixpost", dbUser: "mixpost", passwordEnvVar: "MIXPOST_DB_PASSWORD" },
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Get the list of database requirements for all resolved services.
|
|
28
|
+
* Exported so other generators (env, composer) can access the same data.
|
|
29
|
+
*/
|
|
30
|
+
export function getDbRequirements(resolved) {
|
|
31
|
+
const reqs = [];
|
|
32
|
+
for (const { definition } of resolved.services) {
|
|
33
|
+
const req = DB_REQUIREMENTS[definition.id];
|
|
34
|
+
if (req) {
|
|
35
|
+
reqs.push({
|
|
36
|
+
serviceId: definition.id,
|
|
37
|
+
serviceName: definition.name,
|
|
38
|
+
...req,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return reqs;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Generates a PostgreSQL initialization script that creates databases and users
|
|
46
|
+
* for all companion services that need their own DB.
|
|
47
|
+
*
|
|
48
|
+
* Returns null if PostgreSQL is not in the resolved stack or no services need extra DBs.
|
|
49
|
+
* The script is designed to be mounted at /docker-entrypoint-initdb.d/init-databases.sh
|
|
50
|
+
* and runs automatically during PostgreSQL's first initialization.
|
|
51
|
+
*/
|
|
52
|
+
export function generatePostgresInit(resolved) {
|
|
53
|
+
const hasPostgres = resolved.services.some((s) => s.definition.id === "postgresql");
|
|
54
|
+
if (!hasPostgres)
|
|
55
|
+
return null;
|
|
56
|
+
const reqs = getDbRequirements(resolved);
|
|
57
|
+
if (reqs.length === 0)
|
|
58
|
+
return null;
|
|
59
|
+
const createCalls = reqs
|
|
60
|
+
.map((r) => `create_db_and_user "${r.dbName}" "${r.dbUser}" "\${${r.passwordEnvVar}:-$POSTGRES_PASSWORD}"`)
|
|
61
|
+
.join("\n");
|
|
62
|
+
return `#!/bin/bash
|
|
63
|
+
set -e
|
|
64
|
+
|
|
65
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
66
|
+
# PostgreSQL Initialization Script
|
|
67
|
+
# Generated by better-openclaw
|
|
68
|
+
#
|
|
69
|
+
# This script runs automatically during PostgreSQL's first initialization.
|
|
70
|
+
# It creates databases and users for all companion services in your stack.
|
|
71
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
72
|
+
|
|
73
|
+
create_db_and_user() {
|
|
74
|
+
local db="$1"
|
|
75
|
+
local user="$2"
|
|
76
|
+
local password="$3"
|
|
77
|
+
|
|
78
|
+
echo ">>> Creating database '$db' with user '$user'..."
|
|
79
|
+
|
|
80
|
+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
|
81
|
+
-- Create user if not exists
|
|
82
|
+
DO \\$\\$
|
|
83
|
+
BEGIN
|
|
84
|
+
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$user') THEN
|
|
85
|
+
CREATE ROLE "$user" WITH LOGIN PASSWORD '$password';
|
|
86
|
+
RAISE NOTICE 'Created user: $user';
|
|
87
|
+
ELSE
|
|
88
|
+
-- Update password in case it changed
|
|
89
|
+
ALTER ROLE "$user" WITH PASSWORD '$password';
|
|
90
|
+
RAISE NOTICE 'User already exists, updated password: $user';
|
|
91
|
+
END IF;
|
|
92
|
+
END
|
|
93
|
+
\\$\\$;
|
|
94
|
+
|
|
95
|
+
-- Create database if not exists
|
|
96
|
+
SELECT 'CREATE DATABASE "$db" OWNER "$user"'
|
|
97
|
+
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$db')\\gexec
|
|
98
|
+
|
|
99
|
+
-- Grant privileges
|
|
100
|
+
GRANT ALL PRIVILEGES ON DATABASE "$db" TO "$user";
|
|
101
|
+
EOSQL
|
|
102
|
+
|
|
103
|
+
echo ">>> Done: database '$db' with user '$user'"
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
echo "═══════════════════════════════════════════════════════════"
|
|
107
|
+
echo " Initializing databases for companion services..."
|
|
108
|
+
echo "═══════════════════════════════════════════════════════════"
|
|
109
|
+
|
|
110
|
+
${createCalls}
|
|
111
|
+
|
|
112
|
+
echo ""
|
|
113
|
+
echo "═══════════════════════════════════════════════════════════"
|
|
114
|
+
echo " All databases initialized successfully!"
|
|
115
|
+
echo " Services: ${reqs.map((r) => r.serviceName).join(", ")}"
|
|
116
|
+
echo "═══════════════════════════════════════════════════════════"
|
|
117
|
+
`;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=postgres-init.js.map
|