durar-ai 2026.4.4
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/CHANGELOG.md +5497 -0
- package/LICENSE +21 -0
- package/README.md +614 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/docs/.i18n/README.md +72 -0
- package/docs/.i18n/ar-navigation.json +18 -0
- package/docs/.i18n/de-navigation.json +18 -0
- package/docs/.i18n/es-navigation.json +18 -0
- package/docs/.i18n/fr-navigation.json +18 -0
- package/docs/.i18n/glossary.ar.json +5 -0
- package/docs/.i18n/glossary.de.json +5 -0
- package/docs/.i18n/glossary.es.json +5 -0
- package/docs/.i18n/glossary.fr.json +5 -0
- package/docs/.i18n/glossary.id.json +5 -0
- package/docs/.i18n/glossary.it.json +5 -0
- package/docs/.i18n/glossary.ja-JP.json +14 -0
- package/docs/.i18n/glossary.ko.json +5 -0
- package/docs/.i18n/glossary.pl.json +5 -0
- package/docs/.i18n/glossary.pt-BR.json +5 -0
- package/docs/.i18n/glossary.tr.json +5 -0
- package/docs/.i18n/glossary.zh-CN.json +358 -0
- package/docs/.i18n/id-navigation.json +18 -0
- package/docs/.i18n/it-navigation.json +18 -0
- package/docs/.i18n/ja-navigation.json +18 -0
- package/docs/.i18n/ko-navigation.json +18 -0
- package/docs/.i18n/pl-navigation.json +18 -0
- package/docs/.i18n/pt-BR-navigation.json +18 -0
- package/docs/.i18n/tr-navigation.json +18 -0
- package/docs/.i18n/zh-Hans-navigation.json +544 -0
- package/docs/assets/install-script.svg +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text-dark.svg +418 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/openclaw-logo-text.svg +418 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith-light.svg +14 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex-light.svg +16 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/github-light.svg +3 -0
- package/docs/assets/sponsors/github.svg +3 -0
- package/docs/assets/sponsors/nvidia-dark.svg +9 -0
- package/docs/assets/sponsors/nvidia.svg +9 -0
- package/docs/assets/sponsors/openai-light.svg +3 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel-light.svg +5 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +80 -0
- package/docs/automation/auth-monitoring.md +8 -0
- package/docs/automation/clawflow.md +8 -0
- package/docs/automation/cron-jobs.md +410 -0
- package/docs/automation/cron-vs-heartbeat.md +8 -0
- package/docs/automation/gmail-pubsub.md +8 -0
- package/docs/automation/hooks.md +303 -0
- package/docs/automation/index.md +115 -0
- package/docs/automation/poll.md +8 -0
- package/docs/automation/standing-orders.md +254 -0
- package/docs/automation/taskflow.md +82 -0
- package/docs/automation/tasks.md +323 -0
- package/docs/automation/troubleshooting.md +8 -0
- package/docs/automation/webhook.md +8 -0
- package/docs/brave-search.md +103 -0
- package/docs/channels/bluebubbles.md +435 -0
- package/docs/channels/broadcast-groups.md +442 -0
- package/docs/channels/channel-routing.md +139 -0
- package/docs/channels/discord.md +1254 -0
- package/docs/channels/feishu.md +793 -0
- package/docs/channels/googlechat.md +270 -0
- package/docs/channels/group-messages.md +84 -0
- package/docs/channels/groups.md +410 -0
- package/docs/channels/imessage.md +427 -0
- package/docs/channels/index.md +50 -0
- package/docs/channels/irc.md +252 -0
- package/docs/channels/line.md +225 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +869 -0
- package/docs/channels/mattermost.md +472 -0
- package/docs/channels/msteams.md +805 -0
- package/docs/channels/nextcloud-talk.md +149 -0
- package/docs/channels/nostr.md +252 -0
- package/docs/channels/pairing.md +129 -0
- package/docs/channels/qqbot.md +193 -0
- package/docs/channels/signal.md +337 -0
- package/docs/channels/slack.md +681 -0
- package/docs/channels/synology-chat.md +185 -0
- package/docs/channels/telegram.md +1072 -0
- package/docs/channels/tlon.md +290 -0
- package/docs/channels/troubleshooting.md +133 -0
- package/docs/channels/twitch.md +394 -0
- package/docs/channels/whatsapp.md +488 -0
- package/docs/channels/zalo.md +254 -0
- package/docs/channels/zalouser.md +195 -0
- package/docs/ci.md +66 -0
- package/docs/cli/acp.md +316 -0
- package/docs/cli/agent.md +57 -0
- package/docs/cli/agents.md +220 -0
- package/docs/cli/approvals.md +136 -0
- package/docs/cli/backup.md +84 -0
- package/docs/cli/browser.md +233 -0
- package/docs/cli/channels.md +131 -0
- package/docs/cli/clawbot.md +21 -0
- package/docs/cli/completion.md +35 -0
- package/docs/cli/config.md +353 -0
- package/docs/cli/configure.md +70 -0
- package/docs/cli/cron.md +167 -0
- package/docs/cli/daemon.md +57 -0
- package/docs/cli/dashboard.md +22 -0
- package/docs/cli/devices.md +171 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +48 -0
- package/docs/cli/docs.md +28 -0
- package/docs/cli/doctor.md +63 -0
- package/docs/cli/flows.md +18 -0
- package/docs/cli/gateway.md +307 -0
- package/docs/cli/health.md +36 -0
- package/docs/cli/hooks.md +337 -0
- package/docs/cli/index.md +1836 -0
- package/docs/cli/logs.md +59 -0
- package/docs/cli/mcp.md +505 -0
- package/docs/cli/memory.md +139 -0
- package/docs/cli/message.md +300 -0
- package/docs/cli/models.md +136 -0
- package/docs/cli/node.md +137 -0
- package/docs/cli/nodes.md +66 -0
- package/docs/cli/onboard.md +171 -0
- package/docs/cli/pairing.md +65 -0
- package/docs/cli/plugins.md +305 -0
- package/docs/cli/qr.md +52 -0
- package/docs/cli/reset.md +35 -0
- package/docs/cli/sandbox.md +197 -0
- package/docs/cli/secrets.md +197 -0
- package/docs/cli/security.md +86 -0
- package/docs/cli/sessions.md +113 -0
- package/docs/cli/setup.md +45 -0
- package/docs/cli/skills.md +59 -0
- package/docs/cli/status.md +35 -0
- package/docs/cli/system.md +71 -0
- package/docs/cli/tui.md +30 -0
- package/docs/cli/uninstall.md +39 -0
- package/docs/cli/update.md +113 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +91 -0
- package/docs/concepts/agent-loop.md +168 -0
- package/docs/concepts/agent-workspace.md +246 -0
- package/docs/concepts/agent.md +129 -0
- package/docs/concepts/architecture.md +156 -0
- package/docs/concepts/compaction.md +122 -0
- package/docs/concepts/context-engine.md +274 -0
- package/docs/concepts/context.md +179 -0
- package/docs/concepts/delegate-architecture.md +307 -0
- package/docs/concepts/dreaming.md +173 -0
- package/docs/concepts/features.md +76 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory-builtin.md +105 -0
- package/docs/concepts/memory-honcho.md +140 -0
- package/docs/concepts/memory-qmd.md +163 -0
- package/docs/concepts/memory-search.md +141 -0
- package/docs/concepts/memory.md +121 -0
- package/docs/concepts/messages.md +161 -0
- package/docs/concepts/model-failover.md +349 -0
- package/docs/concepts/model-providers.md +799 -0
- package/docs/concepts/models.md +255 -0
- package/docs/concepts/multi-agent.md +615 -0
- package/docs/concepts/oauth.md +225 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +92 -0
- package/docs/concepts/session-tool.md +141 -0
- package/docs/concepts/session.md +116 -0
- package/docs/concepts/soul.md +110 -0
- package/docs/concepts/streaming.md +161 -0
- package/docs/concepts/system-prompt.md +182 -0
- package/docs/concepts/timezone.md +97 -0
- package/docs/concepts/typebox.md +307 -0
- package/docs/concepts/typing-indicators.md +69 -0
- package/docs/concepts/usage-tracking.md +59 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +85 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +1601 -0
- package/docs/gateway/authentication.md +218 -0
- package/docs/gateway/background-process.md +131 -0
- package/docs/gateway/bonjour.md +179 -0
- package/docs/gateway/bridge-protocol.md +89 -0
- package/docs/gateway/cli-backends.md +310 -0
- package/docs/gateway/configuration-examples.md +631 -0
- package/docs/gateway/configuration-reference.md +3618 -0
- package/docs/gateway/configuration.md +698 -0
- package/docs/gateway/discovery.md +141 -0
- package/docs/gateway/doctor.md +494 -0
- package/docs/gateway/gateway-lock.md +37 -0
- package/docs/gateway/health.md +61 -0
- package/docs/gateway/heartbeat.md +443 -0
- package/docs/gateway/index.md +367 -0
- package/docs/gateway/local-models.md +163 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +120 -0
- package/docs/gateway/network-model.md +25 -0
- package/docs/gateway/openai-http-api.md +280 -0
- package/docs/gateway/openresponses-http-api.md +340 -0
- package/docs/gateway/openshell.md +307 -0
- package/docs/gateway/pairing.md +138 -0
- package/docs/gateway/protocol.md +588 -0
- package/docs/gateway/remote-gateway-readme.md +164 -0
- package/docs/gateway/remote.md +251 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +141 -0
- package/docs/gateway/sandboxing.md +473 -0
- package/docs/gateway/secrets-plan-contract.md +116 -0
- package/docs/gateway/secrets.md +541 -0
- package/docs/gateway/security/index.md +1362 -0
- package/docs/gateway/tailscale.md +136 -0
- package/docs/gateway/tools-invoke-http-api.md +161 -0
- package/docs/gateway/troubleshooting.md +451 -0
- package/docs/gateway/trusted-proxy-auth.md +399 -0
- package/docs/help/debugging.md +168 -0
- package/docs/help/environment.md +165 -0
- package/docs/help/faq.md +3244 -0
- package/docs/help/index.md +28 -0
- package/docs/help/scripts.md +27 -0
- package/docs/help/testing.md +640 -0
- package/docs/help/troubleshooting.md +372 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/feishu-verification-token.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +196 -0
- package/docs/install/ansible.md +230 -0
- package/docs/install/azure.md +311 -0
- package/docs/install/bun.md +55 -0
- package/docs/install/clawdock.md +106 -0
- package/docs/install/development-channels.md +131 -0
- package/docs/install/digitalocean.md +129 -0
- package/docs/install/docker-vm-runtime.md +142 -0
- package/docs/install/docker.md +412 -0
- package/docs/install/exe-dev.md +133 -0
- package/docs/install/fly.md +504 -0
- package/docs/install/gcp.md +412 -0
- package/docs/install/hetzner.md +259 -0
- package/docs/install/index.md +212 -0
- package/docs/install/installer.md +443 -0
- package/docs/install/kubernetes.md +192 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-matrix.md +349 -0
- package/docs/install/migrating.md +112 -0
- package/docs/install/nix.md +89 -0
- package/docs/install/node.md +144 -0
- package/docs/install/northflank.mdx +42 -0
- package/docs/install/oracle.md +158 -0
- package/docs/install/podman.md +210 -0
- package/docs/install/railway.mdx +90 -0
- package/docs/install/raspberry-pi.md +159 -0
- package/docs/install/render.mdx +165 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +142 -0
- package/docs/logging.md +389 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +69 -0
- package/docs/nodes/audio.md +191 -0
- package/docs/nodes/camera.md +162 -0
- package/docs/nodes/images.md +73 -0
- package/docs/nodes/index.md +408 -0
- package/docs/nodes/location-command.md +98 -0
- package/docs/nodes/media-understanding.md +432 -0
- package/docs/nodes/talk.md +92 -0
- package/docs/nodes/troubleshooting.md +123 -0
- package/docs/nodes/voicewake.md +66 -0
- package/docs/perplexity.md +181 -0
- package/docs/pi-dev.md +80 -0
- package/docs/pi.md +570 -0
- package/docs/platforms/android.md +244 -0
- package/docs/platforms/digitalocean.md +266 -0
- package/docs/platforms/index.md +55 -0
- package/docs/platforms/ios.md +223 -0
- package/docs/platforms/linux.md +100 -0
- package/docs/platforms/mac/bundled-gateway.md +75 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +107 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +50 -0
- package/docs/platforms/mac/remote.md +84 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +40 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +51 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +229 -0
- package/docs/platforms/oracle.md +305 -0
- package/docs/platforms/raspberry-pi.md +420 -0
- package/docs/platforms/windows.md +241 -0
- package/docs/plugins/agent-tools.md +10 -0
- package/docs/plugins/architecture.md +1609 -0
- package/docs/plugins/building-extensions.md +10 -0
- package/docs/plugins/building-plugins.md +319 -0
- package/docs/plugins/bundles.md +292 -0
- package/docs/plugins/community.md +149 -0
- package/docs/plugins/manifest.md +412 -0
- package/docs/plugins/sdk-channel-plugins.md +508 -0
- package/docs/plugins/sdk-entrypoints.md +210 -0
- package/docs/plugins/sdk-migration.md +359 -0
- package/docs/plugins/sdk-overview.md +475 -0
- package/docs/plugins/sdk-provider-plugins.md +712 -0
- package/docs/plugins/sdk-runtime.md +381 -0
- package/docs/plugins/sdk-setup.md +516 -0
- package/docs/plugins/sdk-testing.md +263 -0
- package/docs/plugins/voice-call.md +466 -0
- package/docs/plugins/zalouser.md +78 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +402 -0
- package/docs/providers/bedrock-mantle.md +91 -0
- package/docs/providers/bedrock.md +273 -0
- package/docs/providers/chutes.md +103 -0
- package/docs/providers/claude-max-api-proxy.md +163 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/deepseek.md +53 -0
- package/docs/providers/fireworks.md +69 -0
- package/docs/providers/github-copilot.md +80 -0
- package/docs/providers/glm.md +68 -0
- package/docs/providers/google.md +149 -0
- package/docs/providers/groq.md +105 -0
- package/docs/providers/huggingface.md +193 -0
- package/docs/providers/index.md +81 -0
- package/docs/providers/kilocode.md +89 -0
- package/docs/providers/litellm.md +159 -0
- package/docs/providers/minimax.md +281 -0
- package/docs/providers/mistral.md +68 -0
- package/docs/providers/models.md +56 -0
- package/docs/providers/moonshot.md +224 -0
- package/docs/providers/nvidia.md +58 -0
- package/docs/providers/ollama.md +379 -0
- package/docs/providers/openai.md +472 -0
- package/docs/providers/opencode-go.md +45 -0
- package/docs/providers/opencode.md +68 -0
- package/docs/providers/openrouter.md +59 -0
- package/docs/providers/perplexity-provider.md +62 -0
- package/docs/providers/qianfan.md +90 -0
- package/docs/providers/qwen.md +128 -0
- package/docs/providers/qwen_modelstudio.md +137 -0
- package/docs/providers/sglang.md +115 -0
- package/docs/providers/stepfun.md +152 -0
- package/docs/providers/synthetic.md +101 -0
- package/docs/providers/together.md +70 -0
- package/docs/providers/venice.md +282 -0
- package/docs/providers/vercel-ai-gateway.md +60 -0
- package/docs/providers/vllm.md +103 -0
- package/docs/providers/volcengine.md +94 -0
- package/docs/providers/xai.md +94 -0
- package/docs/providers/xiaomi.md +89 -0
- package/docs/providers/zai.md +75 -0
- package/docs/reference/AGENTS.default.md +126 -0
- package/docs/reference/RELEASING.md +138 -0
- package/docs/reference/api-usage-costs.md +198 -0
- package/docs/reference/credits.md +30 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/memory-config.md +421 -0
- package/docs/reference/prompt-caching.md +344 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +148 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +607 -0
- package/docs/reference/session-management-compaction.md +352 -0
- package/docs/reference/templates/AGENTS.dev.md +84 -0
- package/docs/reference/templates/AGENTS.md +219 -0
- package/docs/reference/templates/BOOT.md +12 -0
- package/docs/reference/templates/BOOTSTRAP.md +62 -0
- package/docs/reference/templates/CLAUDE.md +1 -0
- package/docs/reference/templates/HEARTBEAT.md +14 -0
- package/docs/reference/templates/IDENTITY.dev.md +48 -0
- package/docs/reference/templates/IDENTITY.md +30 -0
- package/docs/reference/templates/SOUL.dev.md +77 -0
- package/docs/reference/templates/SOUL.md +45 -0
- package/docs/reference/templates/TOOLS.dev.md +25 -0
- package/docs/reference/templates/TOOLS.md +47 -0
- package/docs/reference/templates/USER.dev.md +19 -0
- package/docs/reference/templates/USER.md +24 -0
- package/docs/reference/test.md +119 -0
- package/docs/reference/token-use.md +197 -0
- package/docs/reference/transcript-hygiene.md +151 -0
- package/docs/reference/wizard.md +245 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +608 -0
- package/docs/security/formal-verification.md +167 -0
- package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +9 -0
- package/docs/snippets/plugin-publish/minimal-package.json +16 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +67 -0
- package/docs/start/getting-started.md +148 -0
- package/docs/start/hubs.md +199 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding-overview.md +69 -0
- package/docs/start/onboarding.md +92 -0
- package/docs/start/openclaw.md +225 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +172 -0
- package/docs/start/showcase.md +418 -0
- package/docs/start/wizard-cli-automation.md +233 -0
- package/docs/start/wizard-cli-reference.md +324 -0
- package/docs/start/wizard.md +127 -0
- package/docs/style.css +37 -0
- package/docs/tools/acp-agents.md +837 -0
- package/docs/tools/agent-send.md +100 -0
- package/docs/tools/apply-patch.md +52 -0
- package/docs/tools/brave-search.md +107 -0
- package/docs/tools/browser-linux-troubleshooting.md +145 -0
- package/docs/tools/browser-login.md +73 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +221 -0
- package/docs/tools/browser.md +890 -0
- package/docs/tools/btw.md +142 -0
- package/docs/tools/capability-cookbook.md +119 -0
- package/docs/tools/clawhub.md +348 -0
- package/docs/tools/code-execution.md +90 -0
- package/docs/tools/creating-skills.md +119 -0
- package/docs/tools/diffs.md +434 -0
- package/docs/tools/duckduckgo-search.md +102 -0
- package/docs/tools/elevated.md +116 -0
- package/docs/tools/exa-search.md +127 -0
- package/docs/tools/exec-approvals.md +635 -0
- package/docs/tools/exec.md +237 -0
- package/docs/tools/firecrawl.md +147 -0
- package/docs/tools/gemini-search.md +98 -0
- package/docs/tools/grok-search.md +102 -0
- package/docs/tools/image-generation.md +139 -0
- package/docs/tools/index.md +174 -0
- package/docs/tools/kimi-search.md +98 -0
- package/docs/tools/llm-task.md +119 -0
- package/docs/tools/lobster.md +348 -0
- package/docs/tools/loop-detection.md +100 -0
- package/docs/tools/minimax-search.md +99 -0
- package/docs/tools/multi-agent-sandbox-tools.md +373 -0
- package/docs/tools/ollama-search.md +100 -0
- package/docs/tools/pdf.md +176 -0
- package/docs/tools/perplexity-search.md +185 -0
- package/docs/tools/plugin.md +348 -0
- package/docs/tools/reactions.md +78 -0
- package/docs/tools/searxng-search.md +132 -0
- package/docs/tools/skills-config.md +133 -0
- package/docs/tools/skills.md +377 -0
- package/docs/tools/slash-commands.md +322 -0
- package/docs/tools/subagents.md +341 -0
- package/docs/tools/tavily.md +129 -0
- package/docs/tools/thinking.md +102 -0
- package/docs/tools/tts.md +452 -0
- package/docs/tools/web-fetch.md +159 -0
- package/docs/tools/web.md +417 -0
- package/docs/tts.md +452 -0
- package/docs/vps.md +115 -0
- package/docs/web/control-ui.md +318 -0
- package/docs/web/dashboard.md +93 -0
- package/docs/web/index.md +126 -0
- package/docs/web/tui.md +176 -0
- package/docs/web/webchat.md +77 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/durar.mjs +180 -0
- package/package.json +1259 -0
- package/scripts/npm-runner.mjs +111 -0
- package/scripts/postinstall-bundled-plugins.mjs +188 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +199 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +316 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gh-issues/SKILL.md +885 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +122 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/node-connect/SKILL.md +142 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +62 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +88 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +151 -0
- package/skills/sherpa-onnx-tts/SKILL.md +109 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/taskflow/SKILL.md +149 -0
- package/skills/taskflow/examples/inbox-triage.lobster +33 -0
- package/skills/taskflow/examples/pr-intake.lobster +32 -0
- package/skills/taskflow-inbox-triage/SKILL.md +119 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +170 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +108 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +129 -0
- package/skills/xurl/SKILL.md +461 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar config` (get/set/unset/file/schema/validate)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to read or edit config non-interactively
|
|
5
|
+
title: "config"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `Durar config`
|
|
9
|
+
|
|
10
|
+
Config helpers for non-interactive edits in `Durar.json`: get/set/unset/file/schema/validate
|
|
11
|
+
values by path and print the active config file. Run without a subcommand to
|
|
12
|
+
open the configure wizard (same as `Durar configure`).
|
|
13
|
+
|
|
14
|
+
Root options:
|
|
15
|
+
|
|
16
|
+
- `--section <section>`: repeatable guided-setup section filter when you run `Durar config` without a subcommand
|
|
17
|
+
|
|
18
|
+
Supported guided sections:
|
|
19
|
+
|
|
20
|
+
- `workspace`
|
|
21
|
+
- `model`
|
|
22
|
+
- `web`
|
|
23
|
+
- `gateway`
|
|
24
|
+
- `daemon`
|
|
25
|
+
- `channels`
|
|
26
|
+
- `plugins`
|
|
27
|
+
- `skills`
|
|
28
|
+
- `health`
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
Durar config file
|
|
34
|
+
Durar config --section model
|
|
35
|
+
Durar config --section gateway --section daemon
|
|
36
|
+
Durar config schema
|
|
37
|
+
Durar config get browser.executablePath
|
|
38
|
+
Durar config set browser.executablePath "/usr/bin/google-chrome"
|
|
39
|
+
Durar config set agents.defaults.heartbeat.every "2h"
|
|
40
|
+
Durar config set agents.list[0].tools.exec.node "node-id-or-name"
|
|
41
|
+
Durar config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
|
|
42
|
+
Durar config set secrets.providers.vaultfile --provider-source file --provider-path /etc/Durar/secrets.json --provider-mode json
|
|
43
|
+
Durar config unset plugins.entries.brave.config.webSearch.apiKey
|
|
44
|
+
Durar config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-run
|
|
45
|
+
Durar config validate
|
|
46
|
+
Durar config validate --json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### `config schema`
|
|
50
|
+
|
|
51
|
+
Print the generated JSON schema for `Durar.json` to stdout as JSON.
|
|
52
|
+
|
|
53
|
+
What it includes:
|
|
54
|
+
|
|
55
|
+
- The current root config schema, plus a root `$schema` string field for editor tooling
|
|
56
|
+
- Field `title` and `description` docs metadata used by the Control UI
|
|
57
|
+
- Nested object, wildcard (`*`), and array-item (`[]`) nodes inherit the same `title` / `description` metadata when matching field documentation exists
|
|
58
|
+
- `anyOf` / `oneOf` / `allOf` branches inherit the same docs metadata too when matching field documentation exists
|
|
59
|
+
- Best-effort live plugin + channel schema metadata when runtime manifests can be loaded
|
|
60
|
+
- A clean fallback schema even when the current config is invalid
|
|
61
|
+
|
|
62
|
+
Related runtime RPC:
|
|
63
|
+
|
|
64
|
+
- `config.schema.lookup` returns one normalized config path with a shallow
|
|
65
|
+
schema node (`title`, `description`, `type`, `enum`, `const`, common bounds),
|
|
66
|
+
matched UI hint metadata, and immediate child summaries. Use it for
|
|
67
|
+
path-scoped drill-down in Control UI or custom clients.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
Durar config schema
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Pipe it into a file when you want to inspect or validate it with other tools:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
Durar config schema > Durar.schema.json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Paths
|
|
80
|
+
|
|
81
|
+
Paths use dot or bracket notation:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
Durar config get agents.defaults.workspace
|
|
85
|
+
Durar config get agents.list[0].id
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Use the agent list index to target a specific agent:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
Durar config get agents.list
|
|
92
|
+
Durar config set agents.list[1].tools.exec.node "node-id-or-name"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Values
|
|
96
|
+
|
|
97
|
+
Values are parsed as JSON5 when possible; otherwise they are treated as strings.
|
|
98
|
+
Use `--strict-json` to require JSON5 parsing. `--json` remains supported as a legacy alias.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
Durar config set agents.defaults.heartbeat.every "0m"
|
|
102
|
+
Durar config set gateway.port 19001 --strict-json
|
|
103
|
+
Durar config set channels.whatsapp.groups '["*"]' --strict-json
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`config get <path> --json` prints the raw value as JSON instead of terminal-formatted text.
|
|
107
|
+
|
|
108
|
+
## `config set` modes
|
|
109
|
+
|
|
110
|
+
`Durar config set` supports four assignment styles:
|
|
111
|
+
|
|
112
|
+
1. Value mode: `Durar config set <path> <value>`
|
|
113
|
+
2. SecretRef builder mode:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
Durar config set channels.discord.token \
|
|
117
|
+
--ref-provider default \
|
|
118
|
+
--ref-source env \
|
|
119
|
+
--ref-id DISCORD_BOT_TOKEN
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
3. Provider builder mode (`secrets.providers.<alias>` path only):
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
Durar config set secrets.providers.vault \
|
|
126
|
+
--provider-source exec \
|
|
127
|
+
--provider-command /usr/local/bin/Durar-vault \
|
|
128
|
+
--provider-arg read \
|
|
129
|
+
--provider-arg openai/api-key \
|
|
130
|
+
--provider-timeout-ms 5000
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
4. Batch mode (`--batch-json` or `--batch-file`):
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
Durar config set --batch-json '[
|
|
137
|
+
{
|
|
138
|
+
"path": "secrets.providers.default",
|
|
139
|
+
"provider": { "source": "env" }
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"path": "channels.discord.token",
|
|
143
|
+
"ref": { "source": "env", "provider": "default", "id": "DISCORD_BOT_TOKEN" }
|
|
144
|
+
}
|
|
145
|
+
]'
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
Durar config set --batch-file ./config-set.batch.json --dry-run
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Policy note:
|
|
153
|
+
|
|
154
|
+
- SecretRef assignments are rejected on unsupported runtime-mutable surfaces (for example `hooks.token`, `commands.ownerDisplaySecret`, Discord thread-binding webhook tokens, and WhatsApp creds JSON). See [SecretRef Credential Surface](/reference/secretref-credential-surface).
|
|
155
|
+
|
|
156
|
+
Batch parsing always uses the batch payload (`--batch-json`/`--batch-file`) as the source of truth.
|
|
157
|
+
`--strict-json` / `--json` do not change batch parsing behavior.
|
|
158
|
+
|
|
159
|
+
JSON path/value mode remains supported for both SecretRefs and providers:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
Durar config set channels.discord.token \
|
|
163
|
+
'{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}' \
|
|
164
|
+
--strict-json
|
|
165
|
+
|
|
166
|
+
Durar config set secrets.providers.vaultfile \
|
|
167
|
+
'{"source":"file","path":"/etc/Durar/secrets.json","mode":"json"}' \
|
|
168
|
+
--strict-json
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Provider Builder Flags
|
|
172
|
+
|
|
173
|
+
Provider builder targets must use `secrets.providers.<alias>` as the path.
|
|
174
|
+
|
|
175
|
+
Common flags:
|
|
176
|
+
|
|
177
|
+
- `--provider-source <env|file|exec>`
|
|
178
|
+
- `--provider-timeout-ms <ms>` (`file`, `exec`)
|
|
179
|
+
|
|
180
|
+
Env provider (`--provider-source env`):
|
|
181
|
+
|
|
182
|
+
- `--provider-allowlist <ENV_VAR>` (repeatable)
|
|
183
|
+
|
|
184
|
+
File provider (`--provider-source file`):
|
|
185
|
+
|
|
186
|
+
- `--provider-path <path>` (required)
|
|
187
|
+
- `--provider-mode <singleValue|json>`
|
|
188
|
+
- `--provider-max-bytes <bytes>`
|
|
189
|
+
|
|
190
|
+
Exec provider (`--provider-source exec`):
|
|
191
|
+
|
|
192
|
+
- `--provider-command <path>` (required)
|
|
193
|
+
- `--provider-arg <arg>` (repeatable)
|
|
194
|
+
- `--provider-no-output-timeout-ms <ms>`
|
|
195
|
+
- `--provider-max-output-bytes <bytes>`
|
|
196
|
+
- `--provider-json-only`
|
|
197
|
+
- `--provider-env <KEY=VALUE>` (repeatable)
|
|
198
|
+
- `--provider-pass-env <ENV_VAR>` (repeatable)
|
|
199
|
+
- `--provider-trusted-dir <path>` (repeatable)
|
|
200
|
+
- `--provider-allow-insecure-path`
|
|
201
|
+
- `--provider-allow-symlink-command`
|
|
202
|
+
|
|
203
|
+
Hardened exec provider example:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
Durar config set secrets.providers.vault \
|
|
207
|
+
--provider-source exec \
|
|
208
|
+
--provider-command /usr/local/bin/Durar-vault \
|
|
209
|
+
--provider-arg read \
|
|
210
|
+
--provider-arg openai/api-key \
|
|
211
|
+
--provider-json-only \
|
|
212
|
+
--provider-pass-env VAULT_TOKEN \
|
|
213
|
+
--provider-trusted-dir /usr/local/bin \
|
|
214
|
+
--provider-timeout-ms 5000
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Dry run
|
|
218
|
+
|
|
219
|
+
Use `--dry-run` to validate changes without writing `Durar.json`.
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
Durar config set channels.discord.token \
|
|
223
|
+
--ref-provider default \
|
|
224
|
+
--ref-source env \
|
|
225
|
+
--ref-id DISCORD_BOT_TOKEN \
|
|
226
|
+
--dry-run
|
|
227
|
+
|
|
228
|
+
Durar config set channels.discord.token \
|
|
229
|
+
--ref-provider default \
|
|
230
|
+
--ref-source env \
|
|
231
|
+
--ref-id DISCORD_BOT_TOKEN \
|
|
232
|
+
--dry-run \
|
|
233
|
+
--json
|
|
234
|
+
|
|
235
|
+
Durar config set channels.discord.token \
|
|
236
|
+
--ref-provider vault \
|
|
237
|
+
--ref-source exec \
|
|
238
|
+
--ref-id discord/token \
|
|
239
|
+
--dry-run \
|
|
240
|
+
--allow-exec
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Dry-run behavior:
|
|
244
|
+
|
|
245
|
+
- Builder mode: runs SecretRef resolvability checks for changed refs/providers.
|
|
246
|
+
- JSON mode (`--strict-json`, `--json`, or batch mode): runs schema validation plus SecretRef resolvability checks.
|
|
247
|
+
- Policy validation also runs for known unsupported SecretRef target surfaces.
|
|
248
|
+
- Policy checks evaluate the full post-change config, so parent-object writes (for example setting `hooks` as an object) cannot bypass unsupported-surface validation.
|
|
249
|
+
- Exec SecretRef checks are skipped by default during dry-run to avoid command side effects.
|
|
250
|
+
- Use `--allow-exec` with `--dry-run` to opt in to exec SecretRef checks (this may execute provider commands).
|
|
251
|
+
- `--allow-exec` is dry-run only and errors if used without `--dry-run`.
|
|
252
|
+
|
|
253
|
+
`--dry-run --json` prints a machine-readable report:
|
|
254
|
+
|
|
255
|
+
- `ok`: whether dry-run passed
|
|
256
|
+
- `operations`: number of assignments evaluated
|
|
257
|
+
- `checks`: whether schema/resolvability checks ran
|
|
258
|
+
- `checks.resolvabilityComplete`: whether resolvability checks ran to completion (false when exec refs are skipped)
|
|
259
|
+
- `refsChecked`: number of refs actually resolved during dry-run
|
|
260
|
+
- `skippedExecRefs`: number of exec refs skipped because `--allow-exec` was not set
|
|
261
|
+
- `errors`: structured schema/resolvability failures when `ok=false`
|
|
262
|
+
|
|
263
|
+
### JSON Output Shape
|
|
264
|
+
|
|
265
|
+
```json5
|
|
266
|
+
{
|
|
267
|
+
ok: boolean,
|
|
268
|
+
operations: number,
|
|
269
|
+
configPath: string,
|
|
270
|
+
inputModes: ["value" | "json" | "builder", ...],
|
|
271
|
+
checks: {
|
|
272
|
+
schema: boolean,
|
|
273
|
+
resolvability: boolean,
|
|
274
|
+
resolvabilityComplete: boolean,
|
|
275
|
+
},
|
|
276
|
+
refsChecked: number,
|
|
277
|
+
skippedExecRefs: number,
|
|
278
|
+
errors?: [
|
|
279
|
+
{
|
|
280
|
+
kind: "schema" | "resolvability",
|
|
281
|
+
message: string,
|
|
282
|
+
ref?: string, // present for resolvability errors
|
|
283
|
+
},
|
|
284
|
+
],
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Success example:
|
|
289
|
+
|
|
290
|
+
```json
|
|
291
|
+
{
|
|
292
|
+
"ok": true,
|
|
293
|
+
"operations": 1,
|
|
294
|
+
"configPath": "~/.Durar/Durar.json",
|
|
295
|
+
"inputModes": ["builder"],
|
|
296
|
+
"checks": {
|
|
297
|
+
"schema": false,
|
|
298
|
+
"resolvability": true,
|
|
299
|
+
"resolvabilityComplete": true
|
|
300
|
+
},
|
|
301
|
+
"refsChecked": 1,
|
|
302
|
+
"skippedExecRefs": 0
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Failure example:
|
|
307
|
+
|
|
308
|
+
```json
|
|
309
|
+
{
|
|
310
|
+
"ok": false,
|
|
311
|
+
"operations": 1,
|
|
312
|
+
"configPath": "~/.Durar/Durar.json",
|
|
313
|
+
"inputModes": ["builder"],
|
|
314
|
+
"checks": {
|
|
315
|
+
"schema": false,
|
|
316
|
+
"resolvability": true,
|
|
317
|
+
"resolvabilityComplete": true
|
|
318
|
+
},
|
|
319
|
+
"refsChecked": 1,
|
|
320
|
+
"skippedExecRefs": 0,
|
|
321
|
+
"errors": [
|
|
322
|
+
{
|
|
323
|
+
"kind": "resolvability",
|
|
324
|
+
"message": "Error: Environment variable \"MISSING_TEST_SECRET\" is not set.",
|
|
325
|
+
"ref": "env:default:MISSING_TEST_SECRET"
|
|
326
|
+
}
|
|
327
|
+
]
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
If dry-run fails:
|
|
332
|
+
|
|
333
|
+
- `config schema validation failed`: your post-change config shape is invalid; fix path/value or provider/ref object shape.
|
|
334
|
+
- `Config policy validation failed: unsupported SecretRef usage`: move that credential back to plaintext/string input and keep SecretRefs on supported surfaces only.
|
|
335
|
+
- `SecretRef assignment(s) could not be resolved`: referenced provider/ref currently cannot resolve (missing env var, invalid file pointer, exec provider failure, or provider/source mismatch).
|
|
336
|
+
- `Dry run note: skipped <n> exec SecretRef resolvability check(s)`: dry-run skipped exec refs; rerun with `--allow-exec` if you need exec resolvability validation.
|
|
337
|
+
- For batch mode, fix failing entries and rerun `--dry-run` before writing.
|
|
338
|
+
|
|
339
|
+
## Subcommands
|
|
340
|
+
|
|
341
|
+
- `config file`: Print the active config file path (resolved from `Durar_CONFIG_PATH` or default location).
|
|
342
|
+
|
|
343
|
+
Restart the gateway after edits.
|
|
344
|
+
|
|
345
|
+
## Validate
|
|
346
|
+
|
|
347
|
+
Validate the current config against the active schema without starting the
|
|
348
|
+
gateway.
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
Durar config validate
|
|
352
|
+
Durar config validate --json
|
|
353
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar configure` (interactive configuration prompts)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to tweak credentials, devices, or agent defaults interactively
|
|
5
|
+
title: "configure"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `Durar configure`
|
|
9
|
+
|
|
10
|
+
Interactive prompt to set up credentials, devices, and agent defaults.
|
|
11
|
+
|
|
12
|
+
Note: The **Model** section now includes a multi-select for the
|
|
13
|
+
`agents.defaults.models` allowlist (what shows up in `/model` and the model picker).
|
|
14
|
+
|
|
15
|
+
When configure starts from a provider auth choice, the default-model and
|
|
16
|
+
allowlist pickers prefer that provider automatically. For paired providers such
|
|
17
|
+
as Volcengine/BytePlus, the same preference also matches their coding-plan
|
|
18
|
+
variants (`volcengine-plan/*`, `byteplus-plan/*`). If the preferred-provider
|
|
19
|
+
filter would produce an empty list, configure falls back to the unfiltered
|
|
20
|
+
catalog instead of showing a blank picker.
|
|
21
|
+
|
|
22
|
+
Tip: `Durar config` without a subcommand opens the same wizard. Use
|
|
23
|
+
`Durar config get|set|unset` for non-interactive edits.
|
|
24
|
+
|
|
25
|
+
For web search, `Durar configure --section web` lets you choose a provider
|
|
26
|
+
and configure its credentials. Some providers also show provider-specific
|
|
27
|
+
follow-up prompts:
|
|
28
|
+
|
|
29
|
+
- **Grok** can offer optional `x_search` setup with the same `XAI_API_KEY` and
|
|
30
|
+
let you pick an `x_search` model.
|
|
31
|
+
- **Kimi** can ask for the Moonshot API region (`api.moonshot.ai` vs
|
|
32
|
+
`api.moonshot.cn`) and the default Kimi web-search model.
|
|
33
|
+
|
|
34
|
+
Related:
|
|
35
|
+
|
|
36
|
+
- Gateway configuration reference: [Configuration](/gateway/configuration)
|
|
37
|
+
- Config CLI: [Config](/cli/config)
|
|
38
|
+
|
|
39
|
+
## Options
|
|
40
|
+
|
|
41
|
+
- `--section <section>`: repeatable section filter
|
|
42
|
+
|
|
43
|
+
Available sections:
|
|
44
|
+
|
|
45
|
+
- `workspace`
|
|
46
|
+
- `model`
|
|
47
|
+
- `web`
|
|
48
|
+
- `gateway`
|
|
49
|
+
- `daemon`
|
|
50
|
+
- `channels`
|
|
51
|
+
- `plugins`
|
|
52
|
+
- `skills`
|
|
53
|
+
- `health`
|
|
54
|
+
|
|
55
|
+
Notes:
|
|
56
|
+
|
|
57
|
+
- Choosing where the Gateway runs always updates `gateway.mode`. You can select "Continue" without other sections if that is all you need.
|
|
58
|
+
- Channel-oriented services (Slack/Discord/Matrix/Microsoft Teams) prompt for channel/room allowlists during setup. You can enter names or IDs; the wizard resolves names to IDs when possible.
|
|
59
|
+
- If you run the daemon install step, token auth requires a token, and `gateway.auth.token` is SecretRef-managed, configure validates the SecretRef but does not persist resolved plaintext token values into supervisor service environment metadata.
|
|
60
|
+
- If token auth requires a token and the configured token SecretRef is unresolved, configure blocks daemon install with actionable remediation guidance.
|
|
61
|
+
- If both `gateway.auth.token` and `gateway.auth.password` are configured and `gateway.auth.mode` is unset, configure blocks daemon install until mode is set explicitly.
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
Durar configure
|
|
67
|
+
Durar configure --section web
|
|
68
|
+
Durar configure --section model --section channels
|
|
69
|
+
Durar configure --section gateway --section daemon
|
|
70
|
+
```
|
package/docs/cli/cron.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar cron` (schedule and run background jobs)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want scheduled jobs and wakeups
|
|
5
|
+
- You’re debugging cron execution and logs
|
|
6
|
+
title: "cron"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar cron`
|
|
10
|
+
|
|
11
|
+
Manage cron jobs for the Gateway scheduler.
|
|
12
|
+
|
|
13
|
+
Related:
|
|
14
|
+
|
|
15
|
+
- Cron jobs: [Cron jobs](/automation/cron-jobs)
|
|
16
|
+
|
|
17
|
+
Tip: run `Durar cron --help` for the full command surface.
|
|
18
|
+
|
|
19
|
+
Note: isolated `cron add` jobs default to `--announce` delivery. Use `--no-deliver` to keep
|
|
20
|
+
output internal. `--deliver` remains as a deprecated alias for `--announce`.
|
|
21
|
+
|
|
22
|
+
Note: cron-owned isolated runs expect a plain-text summary and the runner owns
|
|
23
|
+
the final send path. `--no-deliver` keeps the run internal; it does not hand
|
|
24
|
+
delivery back to the agent's message tool.
|
|
25
|
+
|
|
26
|
+
Note: one-shot (`--at`) jobs delete after success by default. Use `--keep-after-run` to keep them.
|
|
27
|
+
|
|
28
|
+
Note: `--session` supports `main`, `isolated`, `current`, and `session:<id>`.
|
|
29
|
+
Use `current` to bind to the active session at creation time, or `session:<id>` for
|
|
30
|
+
an explicit persistent session key.
|
|
31
|
+
|
|
32
|
+
Note: for one-shot CLI jobs, offset-less `--at` datetimes are treated as UTC unless you also pass
|
|
33
|
+
`--tz <iana>`, which interprets that local wall-clock time in the given timezone.
|
|
34
|
+
|
|
35
|
+
Note: recurring jobs now use exponential retry backoff after consecutive errors (30s → 1m → 5m → 15m → 60m), then return to normal schedule after the next successful run.
|
|
36
|
+
|
|
37
|
+
Note: `Durar cron run` now returns as soon as the manual run is queued for execution. Successful responses include `{ ok: true, enqueued: true, runId }`; use `Durar cron runs --id <job-id>` to follow the eventual outcome.
|
|
38
|
+
|
|
39
|
+
Note: `Durar cron run <job-id>` force-runs by default. Use `--due` to keep the
|
|
40
|
+
older "only run if due" behavior.
|
|
41
|
+
|
|
42
|
+
Note: isolated cron turns suppress stale acknowledgement-only replies. If the
|
|
43
|
+
first result is just an interim status update and no descendant subagent run is
|
|
44
|
+
responsible for the eventual answer, cron re-prompts once for the real result
|
|
45
|
+
before delivery.
|
|
46
|
+
|
|
47
|
+
Note: if an isolated cron run returns only the silent token (`NO_REPLY` /
|
|
48
|
+
`no_reply`), cron suppresses direct outbound delivery and the fallback queued
|
|
49
|
+
summary path as well, so nothing is posted back to chat.
|
|
50
|
+
|
|
51
|
+
Note: `cron add|edit --model ...` uses that selected allowed model for the job.
|
|
52
|
+
If the model is not allowed, cron warns and falls back to the job's agent/default
|
|
53
|
+
model selection instead. Configured fallback chains still apply, but a plain
|
|
54
|
+
model override with no explicit per-job fallback list no longer appends the
|
|
55
|
+
agent primary as a hidden extra retry target.
|
|
56
|
+
|
|
57
|
+
Note: isolated cron model precedence is Gmail-hook override first, then per-job
|
|
58
|
+
`--model`, then any stored cron-session model override, then the normal
|
|
59
|
+
agent/default selection.
|
|
60
|
+
|
|
61
|
+
Note: isolated cron fast mode follows the resolved live model selection. Model
|
|
62
|
+
config `params.fastMode` applies by default, but a stored session `fastMode`
|
|
63
|
+
override still wins over config.
|
|
64
|
+
|
|
65
|
+
Note: if an isolated run throws `LiveSessionModelSwitchError`, cron persists the
|
|
66
|
+
switched provider/model (and switched auth profile override when present) before
|
|
67
|
+
retrying. The outer retry loop is bounded to 2 switch retries after the initial
|
|
68
|
+
attempt, then aborts instead of looping forever.
|
|
69
|
+
|
|
70
|
+
Note: failure notifications use `delivery.failureDestination` first, then
|
|
71
|
+
global `cron.failureDestination`, and finally fall back to the job's primary
|
|
72
|
+
announce target when no explicit failure destination is configured.
|
|
73
|
+
|
|
74
|
+
Note: retention/pruning is controlled in config:
|
|
75
|
+
|
|
76
|
+
- `cron.sessionRetention` (default `24h`) prunes completed isolated run sessions.
|
|
77
|
+
- `cron.runLog.maxBytes` + `cron.runLog.keepLines` prune `~/.Durar/cron/runs/<jobId>.jsonl`.
|
|
78
|
+
|
|
79
|
+
Upgrade note: if you have older cron jobs from before the current delivery/store format, run
|
|
80
|
+
`Durar doctor --fix`. Doctor now normalizes legacy cron fields (`jobId`, `schedule.cron`,
|
|
81
|
+
top-level delivery fields including legacy `threadId`, payload `provider` delivery aliases) and migrates simple
|
|
82
|
+
`notify: true` webhook fallback jobs to explicit webhook delivery when `cron.webhook` is
|
|
83
|
+
configured.
|
|
84
|
+
|
|
85
|
+
## Common edits
|
|
86
|
+
|
|
87
|
+
Update delivery settings without changing the message:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
Durar cron edit <job-id> --announce --channel telegram --to "123456789"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Disable delivery for an isolated job:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
Durar cron edit <job-id> --no-deliver
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Enable lightweight bootstrap context for an isolated job:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
Durar cron edit <job-id> --light-context
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Announce to a specific channel:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
Durar cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Create an isolated job with lightweight bootstrap context:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
Durar cron add \
|
|
115
|
+
--name "Lightweight morning brief" \
|
|
116
|
+
--cron "0 7 * * *" \
|
|
117
|
+
--session isolated \
|
|
118
|
+
--message "Summarize overnight updates." \
|
|
119
|
+
--light-context \
|
|
120
|
+
--no-deliver
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
`--light-context` applies to isolated agent-turn jobs only. For cron runs, lightweight mode keeps bootstrap context empty instead of injecting the full workspace bootstrap set.
|
|
124
|
+
|
|
125
|
+
Delivery ownership note:
|
|
126
|
+
|
|
127
|
+
- Cron-owned isolated jobs always route final user-visible delivery through the
|
|
128
|
+
cron runner (`announce`, `webhook`, or internal-only `none`).
|
|
129
|
+
- If the task mentions messaging some external recipient, the agent should
|
|
130
|
+
describe the intended destination in its result instead of trying to send it
|
|
131
|
+
directly.
|
|
132
|
+
|
|
133
|
+
## Common admin commands
|
|
134
|
+
|
|
135
|
+
Manual run:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
Durar cron run <job-id>
|
|
139
|
+
Durar cron run <job-id> --due
|
|
140
|
+
Durar cron runs --id <job-id> --limit 50
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Agent/session retargeting:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
Durar cron edit <job-id> --agent ops
|
|
147
|
+
Durar cron edit <job-id> --clear-agent
|
|
148
|
+
Durar cron edit <job-id> --session current
|
|
149
|
+
Durar cron edit <job-id> --session "session:daily-brief"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Delivery tweaks:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
Durar cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
|
156
|
+
Durar cron edit <job-id> --best-effort-deliver
|
|
157
|
+
Durar cron edit <job-id> --no-best-effort-deliver
|
|
158
|
+
Durar cron edit <job-id> --no-deliver
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Failure-delivery note:
|
|
162
|
+
|
|
163
|
+
- `delivery.failureDestination` is supported for isolated jobs.
|
|
164
|
+
- Main-session jobs may only use `delivery.failureDestination` when primary
|
|
165
|
+
delivery mode is `webhook`.
|
|
166
|
+
- If you do not set any failure destination and the job already announces to a
|
|
167
|
+
channel, failure notifications reuse that same announce target.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar daemon` (legacy alias for gateway service management)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You still use `Durar daemon ...` in scripts
|
|
5
|
+
- You need service lifecycle commands (install/start/stop/restart/status)
|
|
6
|
+
title: "daemon"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar daemon`
|
|
10
|
+
|
|
11
|
+
Legacy alias for Gateway service management commands.
|
|
12
|
+
|
|
13
|
+
`Durar daemon ...` maps to the same service control surface as `Durar gateway ...` service commands.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
Durar daemon status
|
|
19
|
+
Durar daemon install
|
|
20
|
+
Durar daemon start
|
|
21
|
+
Durar daemon stop
|
|
22
|
+
Durar daemon restart
|
|
23
|
+
Durar daemon uninstall
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Subcommands
|
|
27
|
+
|
|
28
|
+
- `status`: show service install state and probe Gateway health
|
|
29
|
+
- `install`: install service (`launchd`/`systemd`/`schtasks`)
|
|
30
|
+
- `uninstall`: remove service
|
|
31
|
+
- `start`: start service
|
|
32
|
+
- `stop`: stop service
|
|
33
|
+
- `restart`: restart service
|
|
34
|
+
|
|
35
|
+
## Common options
|
|
36
|
+
|
|
37
|
+
- `status`: `--url`, `--token`, `--password`, `--timeout`, `--no-probe`, `--require-rpc`, `--deep`, `--json`
|
|
38
|
+
- `install`: `--port`, `--runtime <node|bun>`, `--token`, `--force`, `--json`
|
|
39
|
+
- lifecycle (`uninstall|start|stop|restart`): `--json`
|
|
40
|
+
|
|
41
|
+
Notes:
|
|
42
|
+
|
|
43
|
+
- `status` resolves configured auth SecretRefs for probe auth when possible.
|
|
44
|
+
- If a required auth SecretRef is unresolved in this command path, `daemon status --json` reports `rpc.authWarning` when probe connectivity/auth fails; pass `--token`/`--password` explicitly or resolve the secret source first.
|
|
45
|
+
- If the probe succeeds, unresolved auth-ref warnings are suppressed to avoid false positives.
|
|
46
|
+
- `status --deep` adds a best-effort system-level service scan. When it finds other gateway-like services, human output prints cleanup hints and warns that one gateway per machine is still the normal recommendation.
|
|
47
|
+
- On Linux systemd installs, `status` token-drift checks include both `Environment=` and `EnvironmentFile=` unit sources.
|
|
48
|
+
- Drift checks resolve `gateway.auth.token` SecretRefs using merged runtime env (service command env first, then process env fallback).
|
|
49
|
+
- If token auth is not effectively active (explicit `gateway.auth.mode` of `password`/`none`/`trusted-proxy`, or mode unset where password can win and no token candidate can win), token-drift checks skip config token resolution.
|
|
50
|
+
- When token auth requires a token and `gateway.auth.token` is SecretRef-managed, `install` validates that the SecretRef is resolvable but does not persist the resolved token into service environment metadata.
|
|
51
|
+
- If token auth requires a token and the configured token SecretRef is unresolved, install fails closed.
|
|
52
|
+
- If both `gateway.auth.token` and `gateway.auth.password` are configured and `gateway.auth.mode` is unset, install is blocked until mode is set explicitly.
|
|
53
|
+
- If you intentionally run multiple gateways on one host, isolate ports, config/state, and workspaces; see [/gateway#multiple-gateways-same-host](/gateway#multiple-gateways-same-host).
|
|
54
|
+
|
|
55
|
+
## Prefer
|
|
56
|
+
|
|
57
|
+
Use [`Durar gateway`](/cli/gateway) for current docs and examples.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar dashboard` (open the Control UI)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to open the Control UI with your current token
|
|
5
|
+
- You want to print the URL without launching a browser
|
|
6
|
+
title: "dashboard"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar dashboard`
|
|
10
|
+
|
|
11
|
+
Open the Control UI using your current auth.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
Durar dashboard
|
|
15
|
+
Durar dashboard --no-open
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Notes:
|
|
19
|
+
|
|
20
|
+
- `dashboard` resolves configured `gateway.auth.token` SecretRefs when possible.
|
|
21
|
+
- For SecretRef-managed tokens (resolved or unresolved), `dashboard` prints/copies/opens a non-tokenized URL to avoid exposing external secrets in terminal output, clipboard history, or browser-launch arguments.
|
|
22
|
+
- If `gateway.auth.token` is SecretRef-managed but unresolved in this command path, the command prints a non-tokenized URL and explicit remediation guidance instead of embedding an invalid token placeholder.
|