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,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Builtin Memory Engine"
|
|
3
|
+
summary: "The default SQLite-based memory backend with keyword, vector, and hybrid search"
|
|
4
|
+
read_when:
|
|
5
|
+
- You want to understand the default memory backend
|
|
6
|
+
- You want to configure embedding providers or hybrid search
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Builtin Memory Engine
|
|
10
|
+
|
|
11
|
+
The builtin engine is the default memory backend. It stores your memory index in
|
|
12
|
+
a per-agent SQLite database and needs no extra dependencies to get started.
|
|
13
|
+
|
|
14
|
+
## What it provides
|
|
15
|
+
|
|
16
|
+
- **Keyword search** via FTS5 full-text indexing (BM25 scoring).
|
|
17
|
+
- **Vector search** via embeddings from any supported provider.
|
|
18
|
+
- **Hybrid search** that combines both for best results.
|
|
19
|
+
- **CJK support** via trigram tokenization for Chinese, Japanese, and Korean.
|
|
20
|
+
- **sqlite-vec acceleration** for in-database vector queries (optional).
|
|
21
|
+
|
|
22
|
+
## Getting started
|
|
23
|
+
|
|
24
|
+
If you have an API key for OpenAI, Gemini, Voyage, or Mistral, the builtin
|
|
25
|
+
engine auto-detects it and enables vector search. No config needed.
|
|
26
|
+
|
|
27
|
+
To set a provider explicitly:
|
|
28
|
+
|
|
29
|
+
```json5
|
|
30
|
+
{
|
|
31
|
+
agents: {
|
|
32
|
+
defaults: {
|
|
33
|
+
memorySearch: {
|
|
34
|
+
provider: "openai",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Without an embedding provider, only keyword search is available.
|
|
42
|
+
|
|
43
|
+
## Supported embedding providers
|
|
44
|
+
|
|
45
|
+
| Provider | ID | Auto-detected | Notes |
|
|
46
|
+
| -------- | --------- | ------------- | ----------------------------------- |
|
|
47
|
+
| OpenAI | `openai` | Yes | Default: `text-embedding-3-small` |
|
|
48
|
+
| Gemini | `gemini` | Yes | Supports multimodal (image + audio) |
|
|
49
|
+
| Voyage | `voyage` | Yes | |
|
|
50
|
+
| Mistral | `mistral` | Yes | |
|
|
51
|
+
| Ollama | `ollama` | No | Local, set explicitly |
|
|
52
|
+
| Local | `local` | Yes (first) | GGUF model, ~0.6 GB download |
|
|
53
|
+
|
|
54
|
+
Auto-detection picks the first provider whose API key can be resolved, in the
|
|
55
|
+
order shown. Set `memorySearch.provider` to override.
|
|
56
|
+
|
|
57
|
+
## How indexing works
|
|
58
|
+
|
|
59
|
+
Durar indexes `MEMORY.md` and `memory/*.md` into chunks (~400 tokens with
|
|
60
|
+
80-token overlap) and stores them in a per-agent SQLite database.
|
|
61
|
+
|
|
62
|
+
- **Index location:** `~/.Durar/memory/<agentId>.sqlite`
|
|
63
|
+
- **File watching:** changes to memory files trigger a debounced reindex (1.5s).
|
|
64
|
+
- **Auto-reindex:** when the embedding provider, model, or chunking config
|
|
65
|
+
changes, the entire index is rebuilt automatically.
|
|
66
|
+
- **Reindex on demand:** `Durar memory index --force`
|
|
67
|
+
|
|
68
|
+
<Info>
|
|
69
|
+
You can also index Markdown files outside the workspace with
|
|
70
|
+
`memorySearch.extraPaths`. See the
|
|
71
|
+
[configuration reference](/reference/memory-config#additional-memory-paths).
|
|
72
|
+
</Info>
|
|
73
|
+
|
|
74
|
+
## When to use
|
|
75
|
+
|
|
76
|
+
The builtin engine is the right choice for most users:
|
|
77
|
+
|
|
78
|
+
- Works out of the box with no extra dependencies.
|
|
79
|
+
- Handles keyword and vector search well.
|
|
80
|
+
- Supports all embedding providers.
|
|
81
|
+
- Hybrid search combines the best of both retrieval approaches.
|
|
82
|
+
|
|
83
|
+
Consider switching to [QMD](/concepts/memory-qmd) if you need reranking, query
|
|
84
|
+
expansion, or want to index directories outside the workspace.
|
|
85
|
+
|
|
86
|
+
Consider [Honcho](/concepts/memory-honcho) if you want cross-session memory with
|
|
87
|
+
automatic user modeling.
|
|
88
|
+
|
|
89
|
+
## Troubleshooting
|
|
90
|
+
|
|
91
|
+
**Memory search disabled?** Check `Durar memory status`. If no provider is
|
|
92
|
+
detected, set one explicitly or add an API key.
|
|
93
|
+
|
|
94
|
+
**Stale results?** Run `Durar memory index --force` to rebuild. The watcher
|
|
95
|
+
may miss changes in rare edge cases.
|
|
96
|
+
|
|
97
|
+
**sqlite-vec not loading?** Durar falls back to in-process cosine similarity
|
|
98
|
+
automatically. Check logs for the specific load error.
|
|
99
|
+
|
|
100
|
+
## Configuration
|
|
101
|
+
|
|
102
|
+
For embedding provider setup, hybrid search tuning (weights, MMR, temporal
|
|
103
|
+
decay), batch indexing, multimodal memory, sqlite-vec, extra paths, and all
|
|
104
|
+
other config knobs, see the
|
|
105
|
+
[Memory configuration reference](/reference/memory-config).
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Honcho Memory"
|
|
3
|
+
summary: "AI-native cross-session memory via the Honcho plugin"
|
|
4
|
+
read_when:
|
|
5
|
+
- You want persistent memory that works across sessions and channels
|
|
6
|
+
- You want AI-powered recall and user modeling
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Honcho Memory
|
|
10
|
+
|
|
11
|
+
[Honcho](https://honcho.dev) adds AI-native memory to Durar. It persists
|
|
12
|
+
conversations to a dedicated service and builds user and agent models over time,
|
|
13
|
+
giving your agent cross-session context that goes beyond workspace Markdown
|
|
14
|
+
files.
|
|
15
|
+
|
|
16
|
+
## What it provides
|
|
17
|
+
|
|
18
|
+
- **Cross-session memory** -- conversations are persisted after every turn, so
|
|
19
|
+
context carries across session resets, compaction, and channel switches.
|
|
20
|
+
- **User modeling** -- Honcho maintains a profile for each user (preferences,
|
|
21
|
+
facts, communication style) and for the agent (personality, learned
|
|
22
|
+
behaviors).
|
|
23
|
+
- **Semantic search** -- search over observations from past conversations, not
|
|
24
|
+
just the current session.
|
|
25
|
+
- **Multi-agent awareness** -- parent agents automatically track spawned
|
|
26
|
+
sub-agents, with parents added as observers in child sessions.
|
|
27
|
+
|
|
28
|
+
## Available tools
|
|
29
|
+
|
|
30
|
+
Honcho registers tools that the agent can use during conversation:
|
|
31
|
+
|
|
32
|
+
**Data retrieval (fast, no LLM call):**
|
|
33
|
+
|
|
34
|
+
| Tool | What it does |
|
|
35
|
+
| --------------------------- | ------------------------------------------------------ |
|
|
36
|
+
| `honcho_context` | Full user representation across sessions |
|
|
37
|
+
| `honcho_search_conclusions` | Semantic search over stored conclusions |
|
|
38
|
+
| `honcho_search_messages` | Find messages across sessions (filter by sender, date) |
|
|
39
|
+
| `honcho_session` | Current session history and summary |
|
|
40
|
+
|
|
41
|
+
**Q&A (LLM-powered):**
|
|
42
|
+
|
|
43
|
+
| Tool | What it does |
|
|
44
|
+
| ------------ | ------------------------------------------------------------------------- |
|
|
45
|
+
| `honcho_ask` | Ask about the user. `depth='quick'` for facts, `'thorough'` for synthesis |
|
|
46
|
+
|
|
47
|
+
## Getting started
|
|
48
|
+
|
|
49
|
+
Install the plugin and run setup:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
Durar plugins install @honcho-ai/Durar-honcho
|
|
53
|
+
Durar honcho setup
|
|
54
|
+
Durar gateway --force
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The setup command prompts for your API credentials, writes the config, and
|
|
58
|
+
optionally migrates existing workspace memory files.
|
|
59
|
+
|
|
60
|
+
<Info>
|
|
61
|
+
Honcho can run entirely locally (self-hosted) or via the managed API at
|
|
62
|
+
`api.honcho.dev`. No external dependencies are required for the self-hosted
|
|
63
|
+
option.
|
|
64
|
+
</Info>
|
|
65
|
+
|
|
66
|
+
## Configuration
|
|
67
|
+
|
|
68
|
+
Settings live under `plugins.entries["Durar-honcho"].config`:
|
|
69
|
+
|
|
70
|
+
```json5
|
|
71
|
+
{
|
|
72
|
+
plugins: {
|
|
73
|
+
entries: {
|
|
74
|
+
"Durar-honcho": {
|
|
75
|
+
config: {
|
|
76
|
+
apiKey: "your-api-key", // omit for self-hosted
|
|
77
|
+
workspaceId: "Durar", // memory isolation
|
|
78
|
+
baseUrl: "https://api.honcho.dev",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
For self-hosted instances, point `baseUrl` to your local server (for example
|
|
87
|
+
`http://localhost:8000`) and omit the API key.
|
|
88
|
+
|
|
89
|
+
## Migrating existing memory
|
|
90
|
+
|
|
91
|
+
If you have existing workspace memory files (`USER.md`, `MEMORY.md`,
|
|
92
|
+
`IDENTITY.md`, `memory/`, `canvas/`), `Durar honcho setup` detects and
|
|
93
|
+
offers to migrate them.
|
|
94
|
+
|
|
95
|
+
<Info>
|
|
96
|
+
Migration is non-destructive -- files are uploaded to Honcho. Originals are
|
|
97
|
+
never deleted or moved.
|
|
98
|
+
</Info>
|
|
99
|
+
|
|
100
|
+
## How it works
|
|
101
|
+
|
|
102
|
+
After every AI turn, the conversation is persisted to Honcho. Both user and
|
|
103
|
+
agent messages are observed, allowing Honcho to build and refine its models over
|
|
104
|
+
time.
|
|
105
|
+
|
|
106
|
+
During conversation, Honcho tools query the service in the `before_prompt_build`
|
|
107
|
+
phase, injecting relevant context before the model sees the prompt. This ensures
|
|
108
|
+
accurate turn boundaries and relevant recall.
|
|
109
|
+
|
|
110
|
+
## Honcho vs builtin memory
|
|
111
|
+
|
|
112
|
+
| | Builtin / QMD | Honcho |
|
|
113
|
+
| ----------------- | ---------------------------- | ----------------------------------- |
|
|
114
|
+
| **Storage** | Workspace Markdown files | Dedicated service (local or hosted) |
|
|
115
|
+
| **Cross-session** | Via memory files | Automatic, built-in |
|
|
116
|
+
| **User modeling** | Manual (write to MEMORY.md) | Automatic profiles |
|
|
117
|
+
| **Search** | Vector + keyword (hybrid) | Semantic over observations |
|
|
118
|
+
| **Multi-agent** | Not tracked | Parent/child awareness |
|
|
119
|
+
| **Dependencies** | None (builtin) or QMD binary | Plugin install |
|
|
120
|
+
|
|
121
|
+
Honcho and the builtin memory system can work together. When QMD is configured,
|
|
122
|
+
additional tools become available for searching local Markdown files alongside
|
|
123
|
+
Honcho's cross-session memory.
|
|
124
|
+
|
|
125
|
+
## CLI commands
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
Durar honcho setup # Configure API key and migrate files
|
|
129
|
+
Durar honcho status # Check connection status
|
|
130
|
+
Durar honcho ask <question> # Query Honcho about the user
|
|
131
|
+
Durar honcho search <query> [-k N] [-d D] # Semantic search over memory
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Further reading
|
|
135
|
+
|
|
136
|
+
- [Plugin source code](https://github.com/plastic-labs/Durar-honcho)
|
|
137
|
+
- [Honcho documentation](https://docs.honcho.dev)
|
|
138
|
+
- [Honcho Durar integration guide](https://docs.honcho.dev/v3/guides/integrations/Durar)
|
|
139
|
+
- [Memory](/concepts/memory) -- Durar memory overview
|
|
140
|
+
- [Context Engines](/concepts/context-engine) -- how plugin context engines work
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "QMD Memory Engine"
|
|
3
|
+
summary: "Local-first search sidecar with BM25, vectors, reranking, and query expansion"
|
|
4
|
+
read_when:
|
|
5
|
+
- You want to set up QMD as your memory backend
|
|
6
|
+
- You want advanced memory features like reranking or extra indexed paths
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# QMD Memory Engine
|
|
10
|
+
|
|
11
|
+
[QMD](https://github.com/tobi/qmd) is a local-first search sidecar that runs
|
|
12
|
+
alongside Durar. It combines BM25, vector search, and reranking in a single
|
|
13
|
+
binary, and can index content beyond your workspace memory files.
|
|
14
|
+
|
|
15
|
+
## What it adds over builtin
|
|
16
|
+
|
|
17
|
+
- **Reranking and query expansion** for better recall.
|
|
18
|
+
- **Index extra directories** -- project docs, team notes, anything on disk.
|
|
19
|
+
- **Index session transcripts** -- recall earlier conversations.
|
|
20
|
+
- **Fully local** -- runs via Bun + node-llama-cpp, auto-downloads GGUF models.
|
|
21
|
+
- **Automatic fallback** -- if QMD is unavailable, Durar falls back to the
|
|
22
|
+
builtin engine seamlessly.
|
|
23
|
+
|
|
24
|
+
## Getting started
|
|
25
|
+
|
|
26
|
+
### Prerequisites
|
|
27
|
+
|
|
28
|
+
- Install QMD: `bun install -g @tobilu/qmd`
|
|
29
|
+
- SQLite build that allows extensions (`brew install sqlite` on macOS).
|
|
30
|
+
- QMD must be on the gateway's `PATH`.
|
|
31
|
+
- macOS and Linux work out of the box. Windows is best supported via WSL2.
|
|
32
|
+
|
|
33
|
+
### Enable
|
|
34
|
+
|
|
35
|
+
```json5
|
|
36
|
+
{
|
|
37
|
+
memory: {
|
|
38
|
+
backend: "qmd",
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Durar creates a self-contained QMD home under
|
|
44
|
+
`~/.Durar/agents/<agentId>/qmd/` and manages the sidecar lifecycle
|
|
45
|
+
automatically -- collections, updates, and embedding runs are handled for you.
|
|
46
|
+
|
|
47
|
+
## How the sidecar works
|
|
48
|
+
|
|
49
|
+
- Durar creates collections from your workspace memory files and any
|
|
50
|
+
configured `memory.qmd.paths`, then runs `qmd update` + `qmd embed` on boot
|
|
51
|
+
and periodically (default every 5 minutes).
|
|
52
|
+
- Boot refresh runs in the background so chat startup is not blocked.
|
|
53
|
+
- Searches use the configured `searchMode` (default: `search`; also supports
|
|
54
|
+
`vsearch` and `query`). If a mode fails, Durar retries with `qmd query`.
|
|
55
|
+
- If QMD fails entirely, Durar falls back to the builtin SQLite engine.
|
|
56
|
+
|
|
57
|
+
<Info>
|
|
58
|
+
The first search may be slow -- QMD auto-downloads GGUF models (~2 GB) for
|
|
59
|
+
reranking and query expansion on the first `qmd query` run.
|
|
60
|
+
</Info>
|
|
61
|
+
|
|
62
|
+
## Indexing extra paths
|
|
63
|
+
|
|
64
|
+
Point QMD at additional directories to make them searchable:
|
|
65
|
+
|
|
66
|
+
```json5
|
|
67
|
+
{
|
|
68
|
+
memory: {
|
|
69
|
+
backend: "qmd",
|
|
70
|
+
qmd: {
|
|
71
|
+
paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Snippets from extra paths appear as `qmd/<collection>/<relative-path>` in
|
|
78
|
+
search results. `memory_get` understands this prefix and reads from the correct
|
|
79
|
+
collection root.
|
|
80
|
+
|
|
81
|
+
## Indexing session transcripts
|
|
82
|
+
|
|
83
|
+
Enable session indexing to recall earlier conversations:
|
|
84
|
+
|
|
85
|
+
```json5
|
|
86
|
+
{
|
|
87
|
+
memory: {
|
|
88
|
+
backend: "qmd",
|
|
89
|
+
qmd: {
|
|
90
|
+
sessions: { enabled: true },
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Transcripts are exported as sanitized User/Assistant turns into a dedicated QMD
|
|
97
|
+
collection under `~/.Durar/agents/<id>/qmd/sessions/`.
|
|
98
|
+
|
|
99
|
+
## Search scope
|
|
100
|
+
|
|
101
|
+
By default, QMD search results are only surfaced in DM sessions (not groups or
|
|
102
|
+
channels). Configure `memory.qmd.scope` to change this:
|
|
103
|
+
|
|
104
|
+
```json5
|
|
105
|
+
{
|
|
106
|
+
memory: {
|
|
107
|
+
qmd: {
|
|
108
|
+
scope: {
|
|
109
|
+
default: "deny",
|
|
110
|
+
rules: [{ action: "allow", match: { chatType: "direct" } }],
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
When scope denies a search, Durar logs a warning with the derived channel and
|
|
118
|
+
chat type so empty results are easier to debug.
|
|
119
|
+
|
|
120
|
+
## Citations
|
|
121
|
+
|
|
122
|
+
When `memory.citations` is `auto` or `on`, search snippets include a
|
|
123
|
+
`Source: <path#line>` footer. Set `memory.citations = "off"` to omit the footer
|
|
124
|
+
while still passing the path to the agent internally.
|
|
125
|
+
|
|
126
|
+
## When to use
|
|
127
|
+
|
|
128
|
+
Choose QMD when you need:
|
|
129
|
+
|
|
130
|
+
- Reranking for higher-quality results.
|
|
131
|
+
- To search project docs or notes outside the workspace.
|
|
132
|
+
- To recall past session conversations.
|
|
133
|
+
- Fully local search with no API keys.
|
|
134
|
+
|
|
135
|
+
For simpler setups, the [builtin engine](/concepts/memory-builtin) works well
|
|
136
|
+
with no extra dependencies.
|
|
137
|
+
|
|
138
|
+
## Troubleshooting
|
|
139
|
+
|
|
140
|
+
**QMD not found?** Ensure the binary is on the gateway's `PATH`. If Durar
|
|
141
|
+
runs as a service, create a symlink:
|
|
142
|
+
`sudo ln -s ~/.bun/bin/qmd /usr/local/bin/qmd`.
|
|
143
|
+
|
|
144
|
+
**First search very slow?** QMD downloads GGUF models on first use. Pre-warm
|
|
145
|
+
with `qmd query "test"` using the same XDG dirs Durar uses.
|
|
146
|
+
|
|
147
|
+
**Search times out?** Increase `memory.qmd.limits.timeoutMs` (default: 4000ms).
|
|
148
|
+
Set to `120000` for slower hardware.
|
|
149
|
+
|
|
150
|
+
**Empty results in group chats?** Check `memory.qmd.scope` -- the default only
|
|
151
|
+
allows DM sessions.
|
|
152
|
+
|
|
153
|
+
**Workspace-visible temp repos causing `ENAMETOOLONG` or broken indexing?**
|
|
154
|
+
QMD traversal currently follows the underlying QMD scanner behavior rather than
|
|
155
|
+
Durar's builtin symlink rules. Keep temporary monorepo checkouts under
|
|
156
|
+
hidden directories like `.tmp/` or outside indexed QMD roots until QMD exposes
|
|
157
|
+
cycle-safe traversal or explicit exclusion controls.
|
|
158
|
+
|
|
159
|
+
## Configuration
|
|
160
|
+
|
|
161
|
+
For the full config surface (`memory.qmd.*`), search modes, update intervals,
|
|
162
|
+
scope rules, and all other knobs, see the
|
|
163
|
+
[Memory configuration reference](/reference/memory-config).
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Memory Search"
|
|
3
|
+
summary: "How memory search finds relevant notes using embeddings and hybrid retrieval"
|
|
4
|
+
read_when:
|
|
5
|
+
- You want to understand how memory_search works
|
|
6
|
+
- You want to choose an embedding provider
|
|
7
|
+
- You want to tune search quality
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Memory Search
|
|
11
|
+
|
|
12
|
+
`memory_search` finds relevant notes from your memory files, even when the
|
|
13
|
+
wording differs from the original text. It works by indexing memory into small
|
|
14
|
+
chunks and searching them using embeddings, keywords, or both.
|
|
15
|
+
|
|
16
|
+
## Quick start
|
|
17
|
+
|
|
18
|
+
If you have an OpenAI, Gemini, Voyage, or Mistral API key configured, memory
|
|
19
|
+
search works automatically. To set a provider explicitly:
|
|
20
|
+
|
|
21
|
+
```json5
|
|
22
|
+
{
|
|
23
|
+
agents: {
|
|
24
|
+
defaults: {
|
|
25
|
+
memorySearch: {
|
|
26
|
+
provider: "openai", // or "gemini", "local", "ollama", etc.
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For local embeddings with no API key, use `provider: "local"` (requires
|
|
34
|
+
node-llama-cpp).
|
|
35
|
+
|
|
36
|
+
## Supported providers
|
|
37
|
+
|
|
38
|
+
| Provider | ID | Needs API key | Notes |
|
|
39
|
+
| -------- | --------- | ------------- | ----------------------------- |
|
|
40
|
+
| OpenAI | `openai` | Yes | Auto-detected, fast |
|
|
41
|
+
| Gemini | `gemini` | Yes | Supports image/audio indexing |
|
|
42
|
+
| Voyage | `voyage` | Yes | Auto-detected |
|
|
43
|
+
| Mistral | `mistral` | Yes | Auto-detected |
|
|
44
|
+
| Ollama | `ollama` | No | Local, must set explicitly |
|
|
45
|
+
| Local | `local` | No | GGUF model, ~0.6 GB download |
|
|
46
|
+
|
|
47
|
+
## How search works
|
|
48
|
+
|
|
49
|
+
Durar runs two retrieval paths in parallel and merges the results:
|
|
50
|
+
|
|
51
|
+
```mermaid
|
|
52
|
+
flowchart LR
|
|
53
|
+
Q["Query"] --> E["Embedding"]
|
|
54
|
+
Q --> T["Tokenize"]
|
|
55
|
+
E --> VS["Vector Search"]
|
|
56
|
+
T --> BM["BM25 Search"]
|
|
57
|
+
VS --> M["Weighted Merge"]
|
|
58
|
+
BM --> M
|
|
59
|
+
M --> R["Top Results"]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- **Vector search** finds notes with similar meaning ("gateway host" matches
|
|
63
|
+
"the machine running Durar").
|
|
64
|
+
- **BM25 keyword search** finds exact matches (IDs, error strings, config
|
|
65
|
+
keys).
|
|
66
|
+
|
|
67
|
+
If only one path is available (no embeddings or no FTS), the other runs alone.
|
|
68
|
+
|
|
69
|
+
## Improving search quality
|
|
70
|
+
|
|
71
|
+
Two optional features help when you have a large note history:
|
|
72
|
+
|
|
73
|
+
### Temporal decay
|
|
74
|
+
|
|
75
|
+
Old notes gradually lose ranking weight so recent information surfaces first.
|
|
76
|
+
With the default half-life of 30 days, a note from last month scores at 50% of
|
|
77
|
+
its original weight. Evergreen files like `MEMORY.md` are never decayed.
|
|
78
|
+
|
|
79
|
+
<Tip>
|
|
80
|
+
Enable temporal decay if your agent has months of daily notes and stale
|
|
81
|
+
information keeps outranking recent context.
|
|
82
|
+
</Tip>
|
|
83
|
+
|
|
84
|
+
### MMR (diversity)
|
|
85
|
+
|
|
86
|
+
Reduces redundant results. If five notes all mention the same router config, MMR
|
|
87
|
+
ensures the top results cover different topics instead of repeating.
|
|
88
|
+
|
|
89
|
+
<Tip>
|
|
90
|
+
Enable MMR if `memory_search` keeps returning near-duplicate snippets from
|
|
91
|
+
different daily notes.
|
|
92
|
+
</Tip>
|
|
93
|
+
|
|
94
|
+
### Enable both
|
|
95
|
+
|
|
96
|
+
```json5
|
|
97
|
+
{
|
|
98
|
+
agents: {
|
|
99
|
+
defaults: {
|
|
100
|
+
memorySearch: {
|
|
101
|
+
query: {
|
|
102
|
+
hybrid: {
|
|
103
|
+
mmr: { enabled: true },
|
|
104
|
+
temporalDecay: { enabled: true },
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Multimodal memory
|
|
114
|
+
|
|
115
|
+
With Gemini Embedding 2, you can index images and audio files alongside
|
|
116
|
+
Markdown. Search queries remain text, but they match against visual and audio
|
|
117
|
+
content. See the [Memory configuration reference](/reference/memory-config) for
|
|
118
|
+
setup.
|
|
119
|
+
|
|
120
|
+
## Session memory search
|
|
121
|
+
|
|
122
|
+
You can optionally index session transcripts so `memory_search` can recall
|
|
123
|
+
earlier conversations. This is opt-in via
|
|
124
|
+
`memorySearch.experimental.sessionMemory`. See the
|
|
125
|
+
[configuration reference](/reference/memory-config) for details.
|
|
126
|
+
|
|
127
|
+
## Troubleshooting
|
|
128
|
+
|
|
129
|
+
**No results?** Run `Durar memory status` to check the index. If empty, run
|
|
130
|
+
`Durar memory index --force`.
|
|
131
|
+
|
|
132
|
+
**Only keyword matches?** Your embedding provider may not be configured. Check
|
|
133
|
+
`Durar memory status --deep`.
|
|
134
|
+
|
|
135
|
+
**CJK text not found?** Rebuild the FTS index with
|
|
136
|
+
`Durar memory index --force`.
|
|
137
|
+
|
|
138
|
+
## Further reading
|
|
139
|
+
|
|
140
|
+
- [Memory](/concepts/memory) -- file layout, backends, tools
|
|
141
|
+
- [Memory configuration reference](/reference/memory-config) -- all config knobs
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Memory Overview"
|
|
3
|
+
summary: "How Durar remembers things across sessions"
|
|
4
|
+
read_when:
|
|
5
|
+
- You want to understand how memory works
|
|
6
|
+
- You want to know what memory files to write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Memory Overview
|
|
10
|
+
|
|
11
|
+
Durar remembers things by writing **plain Markdown files** in your agent's
|
|
12
|
+
workspace. The model only "remembers" what gets saved to disk -- there is no
|
|
13
|
+
hidden state.
|
|
14
|
+
|
|
15
|
+
## How it works
|
|
16
|
+
|
|
17
|
+
Your agent has two places to store memories:
|
|
18
|
+
|
|
19
|
+
- **`MEMORY.md`** -- long-term memory. Durable facts, preferences, and
|
|
20
|
+
decisions. Loaded at the start of every DM session.
|
|
21
|
+
- **`memory/YYYY-MM-DD.md`** -- daily notes. Running context and observations.
|
|
22
|
+
Today and yesterday's notes are loaded automatically.
|
|
23
|
+
|
|
24
|
+
These files live in the agent workspace (default `~/.Durar/workspace`).
|
|
25
|
+
|
|
26
|
+
<Tip>
|
|
27
|
+
If you want your agent to remember something, just ask it: "Remember that I
|
|
28
|
+
prefer TypeScript." It will write it to the appropriate file.
|
|
29
|
+
</Tip>
|
|
30
|
+
|
|
31
|
+
## Memory tools
|
|
32
|
+
|
|
33
|
+
The agent has two tools for working with memory:
|
|
34
|
+
|
|
35
|
+
- **`memory_search`** -- finds relevant notes using semantic search, even when
|
|
36
|
+
the wording differs from the original.
|
|
37
|
+
- **`memory_get`** -- reads a specific memory file or line range.
|
|
38
|
+
|
|
39
|
+
Both tools are provided by the active memory plugin (default: `memory-core`).
|
|
40
|
+
|
|
41
|
+
## Memory search
|
|
42
|
+
|
|
43
|
+
When an embedding provider is configured, `memory_search` uses **hybrid
|
|
44
|
+
search** -- combining vector similarity (semantic meaning) with keyword matching
|
|
45
|
+
(exact terms like IDs and code symbols). This works out of the box once you have
|
|
46
|
+
an API key for any supported provider.
|
|
47
|
+
|
|
48
|
+
<Info>
|
|
49
|
+
Durar auto-detects your embedding provider from available API keys. If you
|
|
50
|
+
have an OpenAI, Gemini, Voyage, or Mistral key configured, memory search is
|
|
51
|
+
enabled automatically.
|
|
52
|
+
</Info>
|
|
53
|
+
|
|
54
|
+
For details on how search works, tuning options, and provider setup, see
|
|
55
|
+
[Memory Search](/concepts/memory-search).
|
|
56
|
+
|
|
57
|
+
## Memory backends
|
|
58
|
+
|
|
59
|
+
<CardGroup cols={3}>
|
|
60
|
+
<Card title="Builtin (default)" icon="database" href="/concepts/memory-builtin">
|
|
61
|
+
SQLite-based. Works out of the box with keyword search, vector similarity, and
|
|
62
|
+
hybrid search. No extra dependencies.
|
|
63
|
+
</Card>
|
|
64
|
+
<Card title="QMD" icon="search" href="/concepts/memory-qmd">
|
|
65
|
+
Local-first sidecar with reranking, query expansion, and the ability to index
|
|
66
|
+
directories outside the workspace.
|
|
67
|
+
</Card>
|
|
68
|
+
<Card title="Honcho" icon="brain" href="/concepts/memory-honcho">
|
|
69
|
+
AI-native cross-session memory with user modeling, semantic search, and
|
|
70
|
+
multi-agent awareness. Plugin install.
|
|
71
|
+
</Card>
|
|
72
|
+
</CardGroup>
|
|
73
|
+
|
|
74
|
+
## Automatic memory flush
|
|
75
|
+
|
|
76
|
+
Before [compaction](/concepts/compaction) summarizes your conversation, Durar
|
|
77
|
+
runs a silent turn that reminds the agent to save important context to memory
|
|
78
|
+
files. This is on by default -- you do not need to configure anything.
|
|
79
|
+
|
|
80
|
+
<Tip>
|
|
81
|
+
The memory flush prevents context loss during compaction. If your agent has
|
|
82
|
+
important facts in the conversation that are not yet written to a file, they
|
|
83
|
+
will be saved automatically before the summary happens.
|
|
84
|
+
</Tip>
|
|
85
|
+
|
|
86
|
+
## Dreaming (experimental)
|
|
87
|
+
|
|
88
|
+
Dreaming is an optional background consolidation pass for memory. It revisits
|
|
89
|
+
short-term recalls from daily files (`memory/YYYY-MM-DD.md`), scores them, and
|
|
90
|
+
promotes only qualified items into long-term memory (`MEMORY.md`).
|
|
91
|
+
|
|
92
|
+
It is designed to keep long-term memory high signal:
|
|
93
|
+
|
|
94
|
+
- **Opt-in**: disabled by default.
|
|
95
|
+
- **Scheduled**: when enabled, `memory-core` manages the recurring task
|
|
96
|
+
automatically.
|
|
97
|
+
- **Thresholded**: promotions must pass score, recall frequency, and query
|
|
98
|
+
diversity gates.
|
|
99
|
+
|
|
100
|
+
For mode behavior (`off`, `core`, `rem`, `deep`), scoring signals, and tuning
|
|
101
|
+
knobs, see [Dreaming (experimental)](/concepts/dreaming).
|
|
102
|
+
|
|
103
|
+
## CLI
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
Durar memory status # Check index status and provider
|
|
107
|
+
Durar memory search "query" # Search from the command line
|
|
108
|
+
Durar memory index --force # Rebuild the index
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Further reading
|
|
112
|
+
|
|
113
|
+
- [Builtin Memory Engine](/concepts/memory-builtin) -- default SQLite backend
|
|
114
|
+
- [QMD Memory Engine](/concepts/memory-qmd) -- advanced local-first sidecar
|
|
115
|
+
- [Honcho Memory](/concepts/memory-honcho) -- AI-native cross-session memory
|
|
116
|
+
- [Memory Search](/concepts/memory-search) -- search pipeline, providers, and
|
|
117
|
+
tuning
|
|
118
|
+
- [Dreaming (experimental)](/concepts/dreaming) -- background promotion
|
|
119
|
+
from short-term recall to long-term memory
|
|
120
|
+
- [Memory configuration reference](/reference/memory-config) -- all config knobs
|
|
121
|
+
- [Compaction](/concepts/compaction) -- how compaction interacts with memory
|