nodmix 2026.5.25
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 +11573 -0
- package/LICENSE +21 -0
- package/README.md +486 -0
- package/docs/.i18n/README.md +81 -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 +78 -0
- package/docs/.i18n/glossary.de.json +78 -0
- package/docs/.i18n/glossary.es.json +78 -0
- package/docs/.i18n/glossary.fa.json +78 -0
- package/docs/.i18n/glossary.fr.json +78 -0
- package/docs/.i18n/glossary.id.json +78 -0
- package/docs/.i18n/glossary.it.json +78 -0
- package/docs/.i18n/glossary.ja-JP.json +98 -0
- package/docs/.i18n/glossary.ko.json +78 -0
- package/docs/.i18n/glossary.nl.json +78 -0
- package/docs/.i18n/glossary.pl.json +78 -0
- package/docs/.i18n/glossary.pt-BR.json +78 -0
- package/docs/.i18n/glossary.th.json +78 -0
- package/docs/.i18n/glossary.tr.json +78 -0
- package/docs/.i18n/glossary.uk.json +78 -0
- package/docs/.i18n/glossary.vi.json +78 -0
- package/docs/.i18n/glossary.zh-CN.json +1002 -0
- package/docs/.i18n/glossary.zh-TW.json +78 -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/translation-workflow.md +111 -0
- package/docs/.i18n/zh-Hans-navigation.json +542 -0
- package/docs/AGENTS.md +36 -0
- package/docs/announcements/bluebubbles-imessage.md +79 -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/pr/quick-settings-browser-tools.png +0 -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 +124 -0
- package/docs/automation/auth-monitoring.md +11 -0
- package/docs/automation/clawflow.md +12 -0
- package/docs/automation/cron-jobs.md +500 -0
- package/docs/automation/cron-vs-heartbeat.md +11 -0
- package/docs/automation/gmail-pubsub.md +11 -0
- package/docs/automation/hooks.md +365 -0
- package/docs/automation/index.md +135 -0
- package/docs/automation/poll.md +12 -0
- package/docs/automation/standing-orders.md +250 -0
- package/docs/automation/taskflow.md +155 -0
- package/docs/automation/tasks.md +374 -0
- package/docs/automation/troubleshooting.md +12 -0
- package/docs/automation/webhook.md +12 -0
- package/docs/brave-search.md +11 -0
- package/docs/channels/access-groups.md +201 -0
- package/docs/channels/ambient-room-events.md +214 -0
- package/docs/channels/bot-loop-protection.md +131 -0
- package/docs/channels/broadcast-groups.md +472 -0
- package/docs/channels/channel-routing.md +162 -0
- package/docs/channels/clickclack.md +138 -0
- package/docs/channels/discord.md +1762 -0
- package/docs/channels/feishu.md +502 -0
- package/docs/channels/googlechat.md +284 -0
- package/docs/channels/group-messages.md +95 -0
- package/docs/channels/groups.md +519 -0
- package/docs/channels/imessage-from-bluebubbles.md +259 -0
- package/docs/channels/imessage.md +813 -0
- package/docs/channels/index.md +64 -0
- package/docs/channels/irc.md +253 -0
- package/docs/channels/line.md +243 -0
- package/docs/channels/location.md +71 -0
- package/docs/channels/matrix-migration.md +370 -0
- package/docs/channels/matrix-presentation.md +77 -0
- package/docs/channels/matrix-push-rules.md +150 -0
- package/docs/channels/matrix.md +921 -0
- package/docs/channels/mattermost.md +542 -0
- package/docs/channels/msteams.md +1042 -0
- package/docs/channels/nextcloud-talk.md +176 -0
- package/docs/channels/nostr.md +253 -0
- package/docs/channels/pairing.md +214 -0
- package/docs/channels/qqbot.md +309 -0
- package/docs/channels/signal.md +400 -0
- package/docs/channels/slack.md +1564 -0
- package/docs/channels/synology-chat.md +187 -0
- package/docs/channels/telegram.md +1107 -0
- package/docs/channels/tlon.md +296 -0
- package/docs/channels/troubleshooting.md +161 -0
- package/docs/channels/twitch.md +431 -0
- package/docs/channels/wechat.md +171 -0
- package/docs/channels/whatsapp.md +739 -0
- package/docs/channels/yuanbao.md +416 -0
- package/docs/channels/zalo.md +253 -0
- package/docs/channels/zalouser.md +199 -0
- package/docs/ci.md +612 -0
- package/docs/clawhub/publishing.md +96 -0
- package/docs/cli/acp.md +370 -0
- package/docs/cli/agent.md +103 -0
- package/docs/cli/agents.md +232 -0
- package/docs/cli/approvals.md +190 -0
- package/docs/cli/backup.md +97 -0
- package/docs/cli/browser.md +307 -0
- package/docs/cli/channels.md +154 -0
- package/docs/cli/clawbot.md +25 -0
- package/docs/cli/commitments.md +90 -0
- package/docs/cli/completion.md +39 -0
- package/docs/cli/config.md +504 -0
- package/docs/cli/configure.md +77 -0
- package/docs/cli/crestodian.md +332 -0
- package/docs/cli/cron.md +281 -0
- package/docs/cli/daemon.md +67 -0
- package/docs/cli/dashboard.md +33 -0
- package/docs/cli/devices.md +204 -0
- package/docs/cli/directory.md +68 -0
- package/docs/cli/dns.md +53 -0
- package/docs/cli/docs.md +73 -0
- package/docs/cli/doctor.md +237 -0
- package/docs/cli/flows.md +52 -0
- package/docs/cli/gateway.md +567 -0
- package/docs/cli/health.md +43 -0
- package/docs/cli/hooks.md +345 -0
- package/docs/cli/index.md +396 -0
- package/docs/cli/infer.md +364 -0
- package/docs/cli/logs.md +65 -0
- package/docs/cli/mcp.md +529 -0
- package/docs/cli/memory.md +183 -0
- package/docs/cli/message.md +317 -0
- package/docs/cli/migrate.md +290 -0
- package/docs/cli/models.md +224 -0
- package/docs/cli/node.md +177 -0
- package/docs/cli/nodes.md +76 -0
- package/docs/cli/onboard.md +245 -0
- package/docs/cli/pairing.md +77 -0
- package/docs/cli/path.md +502 -0
- package/docs/cli/plugins.md +454 -0
- package/docs/cli/policy.md +418 -0
- package/docs/cli/proxy.md +89 -0
- package/docs/cli/qr.md +56 -0
- package/docs/cli/reset.md +39 -0
- package/docs/cli/sandbox.md +208 -0
- package/docs/cli/secrets.md +202 -0
- package/docs/cli/security.md +124 -0
- package/docs/cli/sessions.md +164 -0
- package/docs/cli/setup.md +59 -0
- package/docs/cli/skills.md +102 -0
- package/docs/cli/status.md +45 -0
- package/docs/cli/system.md +89 -0
- package/docs/cli/tasks.md +111 -0
- package/docs/cli/tui.md +89 -0
- package/docs/cli/uninstall.md +44 -0
- package/docs/cli/update.md +242 -0
- package/docs/cli/voicecall.md +204 -0
- package/docs/cli/webhooks.md +117 -0
- package/docs/cli/wiki.md +256 -0
- package/docs/concepts/active-memory.md +856 -0
- package/docs/concepts/agent-loop.md +185 -0
- package/docs/concepts/agent-runtimes.md +243 -0
- package/docs/concepts/agent-workspace.md +230 -0
- package/docs/concepts/agent.md +136 -0
- package/docs/concepts/architecture.md +154 -0
- package/docs/concepts/channel-docking.md +145 -0
- package/docs/concepts/commitments.md +150 -0
- package/docs/concepts/compaction.md +203 -0
- package/docs/concepts/context-engine.md +306 -0
- package/docs/concepts/context.md +199 -0
- package/docs/concepts/delegate-architecture.md +319 -0
- package/docs/concepts/dreaming.md +261 -0
- package/docs/concepts/experimental-features.md +108 -0
- package/docs/concepts/features.md +91 -0
- package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
- package/docs/concepts/mantis.md +740 -0
- package/docs/concepts/markdown-formatting.md +139 -0
- package/docs/concepts/memory-builtin.md +146 -0
- package/docs/concepts/memory-honcho.md +144 -0
- package/docs/concepts/memory-qmd.md +271 -0
- package/docs/concepts/memory-search.md +166 -0
- package/docs/concepts/memory.md +258 -0
- package/docs/concepts/message-lifecycle-refactor.md +1128 -0
- package/docs/concepts/messages.md +214 -0
- package/docs/concepts/model-failover.md +385 -0
- package/docs/concepts/model-providers.md +715 -0
- package/docs/concepts/models.md +370 -0
- package/docs/concepts/multi-agent.md +619 -0
- package/docs/concepts/oauth.md +198 -0
- package/docs/concepts/openclaw-sdk.md +323 -0
- package/docs/concepts/parallel-specialist-lanes.md +127 -0
- package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
- package/docs/concepts/presence.md +117 -0
- package/docs/concepts/progress-drafts.md +362 -0
- package/docs/concepts/qa-e2e-automation.md +820 -0
- package/docs/concepts/qa-matrix.md +139 -0
- package/docs/concepts/queue-steering.md +90 -0
- package/docs/concepts/queue.md +122 -0
- package/docs/concepts/retry.md +86 -0
- package/docs/concepts/session-pruning.md +104 -0
- package/docs/concepts/session-tool.md +190 -0
- package/docs/concepts/session.md +164 -0
- package/docs/concepts/soul.md +116 -0
- package/docs/concepts/streaming.md +251 -0
- package/docs/concepts/system-prompt.md +310 -0
- package/docs/concepts/timezone.md +47 -0
- package/docs/concepts/typebox.md +309 -0
- package/docs/concepts/typing-indicators.md +88 -0
- package/docs/concepts/usage-tracking.md +66 -0
- package/docs/date-time.md +126 -0
- package/docs/debug/node-issue.md +90 -0
- package/docs/diagnostics/flags.md +138 -0
- package/docs/docs.json +1832 -0
- package/docs/gateway/authentication.md +239 -0
- package/docs/gateway/background-process.md +147 -0
- package/docs/gateway/bonjour.md +303 -0
- package/docs/gateway/bridge-protocol.md +94 -0
- package/docs/gateway/cli-backends.md +420 -0
- package/docs/gateway/config-agents.md +1514 -0
- package/docs/gateway/config-channels.md +945 -0
- package/docs/gateway/config-tools.md +769 -0
- package/docs/gateway/configuration-examples.md +705 -0
- package/docs/gateway/configuration-reference.md +1393 -0
- package/docs/gateway/configuration.md +737 -0
- package/docs/gateway/diagnostics.md +213 -0
- package/docs/gateway/discovery.md +154 -0
- package/docs/gateway/doctor.md +574 -0
- package/docs/gateway/gateway-lock.md +37 -0
- package/docs/gateway/health.md +73 -0
- package/docs/gateway/heartbeat.md +493 -0
- package/docs/gateway/index.md +383 -0
- package/docs/gateway/local-model-services.md +205 -0
- package/docs/gateway/local-models.md +355 -0
- package/docs/gateway/logging.md +149 -0
- package/docs/gateway/multiple-gateways.md +178 -0
- package/docs/gateway/network-model.md +15 -0
- package/docs/gateway/openai-http-api.md +350 -0
- package/docs/gateway/openresponses-http-api.md +347 -0
- package/docs/gateway/openshell.md +316 -0
- package/docs/gateway/opentelemetry.md +404 -0
- package/docs/gateway/operator-scopes.md +111 -0
- package/docs/gateway/pairing.md +207 -0
- package/docs/gateway/prometheus.md +230 -0
- package/docs/gateway/protocol.md +803 -0
- package/docs/gateway/remote-gateway-readme.md +169 -0
- package/docs/gateway/remote.md +280 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
- package/docs/gateway/sandboxing.md +545 -0
- package/docs/gateway/secrets-plan-contract.md +114 -0
- package/docs/gateway/secrets.md +609 -0
- package/docs/gateway/security/audit-checks.md +127 -0
- package/docs/gateway/security/index.md +1326 -0
- package/docs/gateway/security/secure-file-operations.md +76 -0
- package/docs/gateway/tailscale.md +156 -0
- package/docs/gateway/tools-invoke-http-api.md +169 -0
- package/docs/gateway/troubleshooting.md +772 -0
- package/docs/gateway/trusted-proxy-auth.md +451 -0
- package/docs/help/debugging.md +344 -0
- package/docs/help/environment.md +214 -0
- package/docs/help/faq-first-run.md +867 -0
- package/docs/help/faq-models.md +553 -0
- package/docs/help/faq.md +1975 -0
- package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
- package/docs/help/gpt55-codex-agentic-parity.md +230 -0
- package/docs/help/index.md +39 -0
- package/docs/help/scripts.md +56 -0
- package/docs/help/testing-live.md +580 -0
- package/docs/help/testing-updates-plugins.md +291 -0
- package/docs/help/testing.md +928 -0
- package/docs/help/troubleshooting.md +424 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-get-group-id.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 +233 -0
- package/docs/install/azure.md +315 -0
- package/docs/install/bun.md +59 -0
- package/docs/install/clawdock.md +112 -0
- package/docs/install/development-channels.md +135 -0
- package/docs/install/digitalocean.md +174 -0
- package/docs/install/docker-vm-runtime.md +154 -0
- package/docs/install/docker.md +562 -0
- package/docs/install/exe-dev.md +201 -0
- package/docs/install/fly.md +524 -0
- package/docs/install/gcp.md +418 -0
- package/docs/install/hetzner.md +285 -0
- package/docs/install/hostinger.md +98 -0
- package/docs/install/index.md +221 -0
- package/docs/install/installer.md +455 -0
- package/docs/install/kubernetes.md +196 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-claude.md +165 -0
- package/docs/install/migrating-hermes.md +177 -0
- package/docs/install/migrating.md +137 -0
- package/docs/install/nix.md +112 -0
- package/docs/install/node.md +142 -0
- package/docs/install/northflank.mdx +44 -0
- package/docs/install/oracle.md +218 -0
- package/docs/install/podman.md +210 -0
- package/docs/install/railway.mdx +92 -0
- package/docs/install/raspberry-pi.md +234 -0
- package/docs/install/render.mdx +167 -0
- package/docs/install/uninstall.md +131 -0
- package/docs/install/updating.md +280 -0
- package/docs/logging.md +318 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +72 -0
- package/docs/nodes/audio.md +215 -0
- package/docs/nodes/camera.md +166 -0
- package/docs/nodes/images.md +77 -0
- package/docs/nodes/index.md +439 -0
- package/docs/nodes/location-command.md +102 -0
- package/docs/nodes/media-understanding.md +469 -0
- package/docs/nodes/talk.md +154 -0
- package/docs/nodes/troubleshooting.md +123 -0
- package/docs/nodes/voicewake.md +93 -0
- package/docs/perplexity.md +11 -0
- package/docs/pi-dev.md +82 -0
- package/docs/pi.md +573 -0
- package/docs/plan/codex-context-engine-harness.md +624 -0
- package/docs/plan/ui-channels.md +284 -0
- package/docs/platforms/android.md +285 -0
- package/docs/platforms/digitalocean.md +12 -0
- package/docs/platforms/index.md +60 -0
- package/docs/platforms/ios.md +283 -0
- package/docs/platforms/linux.md +141 -0
- package/docs/platforms/mac/bundled-gateway.md +79 -0
- package/docs/platforms/mac/canvas.md +128 -0
- package/docs/platforms/mac/child-process.md +72 -0
- package/docs/platforms/mac/dev-setup.md +112 -0
- package/docs/platforms/mac/health.md +39 -0
- package/docs/platforms/mac/icon.md +36 -0
- package/docs/platforms/mac/logging.md +62 -0
- package/docs/platforms/mac/menu-bar.md +93 -0
- package/docs/platforms/mac/peekaboo.md +92 -0
- package/docs/platforms/mac/permissions.md +53 -0
- package/docs/platforms/mac/remote.md +123 -0
- package/docs/platforms/mac/signing.md +52 -0
- package/docs/platforms/mac/skills.md +43 -0
- package/docs/platforms/mac/voice-overlay.md +66 -0
- package/docs/platforms/mac/voicewake.md +73 -0
- package/docs/platforms/mac/webchat.md +54 -0
- package/docs/platforms/mac/xpc.md +66 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +12 -0
- package/docs/platforms/raspberry-pi.md +13 -0
- package/docs/platforms/windows.md +286 -0
- package/docs/plugins/adding-capabilities.md +133 -0
- package/docs/plugins/admin-http-rpc.md +216 -0
- package/docs/plugins/agent-tools.md +13 -0
- package/docs/plugins/architecture-internals.md +1195 -0
- package/docs/plugins/architecture.md +481 -0
- package/docs/plugins/building-extensions.md +13 -0
- package/docs/plugins/building-plugins.md +330 -0
- package/docs/plugins/bundles.md +310 -0
- package/docs/plugins/cli-backend-plugins.md +310 -0
- package/docs/plugins/codex-computer-use.md +293 -0
- package/docs/plugins/codex-harness-reference.md +409 -0
- package/docs/plugins/codex-harness-runtime.md +247 -0
- package/docs/plugins/codex-harness.md +746 -0
- package/docs/plugins/codex-native-plugins.md +276 -0
- package/docs/plugins/community.md +77 -0
- package/docs/plugins/compatibility.md +164 -0
- package/docs/plugins/dependency-resolution.md +143 -0
- package/docs/plugins/google-meet.md +1737 -0
- package/docs/plugins/hooks.md +459 -0
- package/docs/plugins/install-overrides.md +80 -0
- package/docs/plugins/manage-plugins.md +210 -0
- package/docs/plugins/manifest.md +1359 -0
- package/docs/plugins/memory-lancedb.md +385 -0
- package/docs/plugins/memory-wiki.md +529 -0
- package/docs/plugins/message-presentation.md +473 -0
- package/docs/plugins/oc-path.md +166 -0
- package/docs/plugins/plugin-inventory.md +182 -0
- package/docs/plugins/reference/acpx.md +23 -0
- package/docs/plugins/reference/admin-http-rpc.md +23 -0
- package/docs/plugins/reference/alibaba.md +23 -0
- package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
- package/docs/plugins/reference/amazon-bedrock.md +23 -0
- package/docs/plugins/reference/anthropic-vertex.md +19 -0
- package/docs/plugins/reference/anthropic.md +23 -0
- package/docs/plugins/reference/arcee.md +23 -0
- package/docs/plugins/reference/azure-speech.md +23 -0
- package/docs/plugins/reference/bonjour.md +19 -0
- package/docs/plugins/reference/brave.md +23 -0
- package/docs/plugins/reference/browser.md +23 -0
- package/docs/plugins/reference/byteplus.md +19 -0
- package/docs/plugins/reference/canvas.md +19 -0
- package/docs/plugins/reference/cerebras.md +23 -0
- package/docs/plugins/reference/chutes.md +23 -0
- package/docs/plugins/reference/clickclack.md +23 -0
- package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
- package/docs/plugins/reference/codex.md +23 -0
- package/docs/plugins/reference/comfy.md +23 -0
- package/docs/plugins/reference/copilot-proxy.md +19 -0
- package/docs/plugins/reference/deepgram.md +23 -0
- package/docs/plugins/reference/deepinfra.md +23 -0
- package/docs/plugins/reference/deepseek.md +23 -0
- package/docs/plugins/reference/diagnostics-otel.md +19 -0
- package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
- package/docs/plugins/reference/diffs.md +19 -0
- package/docs/plugins/reference/discord.md +23 -0
- package/docs/plugins/reference/document-extract.md +23 -0
- package/docs/plugins/reference/duckduckgo.md +23 -0
- package/docs/plugins/reference/elevenlabs.md +23 -0
- package/docs/plugins/reference/exa.md +23 -0
- package/docs/plugins/reference/fal.md +23 -0
- package/docs/plugins/reference/feishu.md +23 -0
- package/docs/plugins/reference/file-transfer.md +19 -0
- package/docs/plugins/reference/firecrawl.md +23 -0
- package/docs/plugins/reference/fireworks.md +23 -0
- package/docs/plugins/reference/github-copilot.md +23 -0
- package/docs/plugins/reference/google-meet.md +23 -0
- package/docs/plugins/reference/google.md +23 -0
- package/docs/plugins/reference/googlechat.md +23 -0
- package/docs/plugins/reference/gradium.md +23 -0
- package/docs/plugins/reference/groq.md +23 -0
- package/docs/plugins/reference/huggingface.md +23 -0
- package/docs/plugins/reference/imessage.md +23 -0
- package/docs/plugins/reference/inworld.md +23 -0
- package/docs/plugins/reference/irc.md +23 -0
- package/docs/plugins/reference/kilocode.md +23 -0
- package/docs/plugins/reference/kimi.md +23 -0
- package/docs/plugins/reference/line.md +23 -0
- package/docs/plugins/reference/litellm.md +23 -0
- package/docs/plugins/reference/llm-task.md +19 -0
- package/docs/plugins/reference/lmstudio.md +23 -0
- package/docs/plugins/reference/lobster.md +19 -0
- package/docs/plugins/reference/matrix.md +23 -0
- package/docs/plugins/reference/mattermost.md +23 -0
- package/docs/plugins/reference/memory-core.md +19 -0
- package/docs/plugins/reference/memory-lancedb.md +23 -0
- package/docs/plugins/reference/memory-wiki.md +23 -0
- package/docs/plugins/reference/microsoft-foundry.md +19 -0
- package/docs/plugins/reference/microsoft.md +19 -0
- package/docs/plugins/reference/migrate-claude.md +19 -0
- package/docs/plugins/reference/migrate-hermes.md +19 -0
- package/docs/plugins/reference/minimax.md +23 -0
- package/docs/plugins/reference/mistral.md +23 -0
- package/docs/plugins/reference/moonshot.md +23 -0
- package/docs/plugins/reference/msteams.md +23 -0
- package/docs/plugins/reference/nextcloud-talk.md +23 -0
- package/docs/plugins/reference/nostr.md +23 -0
- package/docs/plugins/reference/nvidia.md +23 -0
- package/docs/plugins/reference/oc-path.md +23 -0
- package/docs/plugins/reference/ollama.md +23 -0
- package/docs/plugins/reference/open-prose.md +19 -0
- package/docs/plugins/reference/openai.md +23 -0
- package/docs/plugins/reference/opencode-go.md +23 -0
- package/docs/plugins/reference/opencode.md +23 -0
- package/docs/plugins/reference/openrouter.md +23 -0
- package/docs/plugins/reference/openshell.md +19 -0
- package/docs/plugins/reference/perplexity.md +23 -0
- package/docs/plugins/reference/policy.md +23 -0
- package/docs/plugins/reference/qa-channel.md +23 -0
- package/docs/plugins/reference/qa-lab.md +19 -0
- package/docs/plugins/reference/qa-matrix.md +19 -0
- package/docs/plugins/reference/qianfan.md +23 -0
- package/docs/plugins/reference/qqbot.md +23 -0
- package/docs/plugins/reference/qwen.md +23 -0
- package/docs/plugins/reference/runway.md +23 -0
- package/docs/plugins/reference/searxng.md +19 -0
- package/docs/plugins/reference/senseaudio.md +23 -0
- package/docs/plugins/reference/sglang.md +23 -0
- package/docs/plugins/reference/signal.md +23 -0
- package/docs/plugins/reference/skill-workshop.md +23 -0
- package/docs/plugins/reference/slack.md +23 -0
- package/docs/plugins/reference/stepfun.md +23 -0
- package/docs/plugins/reference/synology-chat.md +23 -0
- package/docs/plugins/reference/synthetic.md +23 -0
- package/docs/plugins/reference/tavily.md +23 -0
- package/docs/plugins/reference/telegram.md +23 -0
- package/docs/plugins/reference/tencent.md +23 -0
- package/docs/plugins/reference/tlon.md +23 -0
- package/docs/plugins/reference/together.md +23 -0
- package/docs/plugins/reference/tokenjuice.md +23 -0
- package/docs/plugins/reference/tts-local-cli.md +19 -0
- package/docs/plugins/reference/twitch.md +23 -0
- package/docs/plugins/reference/venice.md +23 -0
- package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
- package/docs/plugins/reference/vllm.md +23 -0
- package/docs/plugins/reference/voice-call.md +23 -0
- package/docs/plugins/reference/volcengine.md +23 -0
- package/docs/plugins/reference/voyage.md +19 -0
- package/docs/plugins/reference/vydra.md +23 -0
- package/docs/plugins/reference/web-readability.md +19 -0
- package/docs/plugins/reference/webhooks.md +23 -0
- package/docs/plugins/reference/whatsapp.md +23 -0
- package/docs/plugins/reference/xai.md +23 -0
- package/docs/plugins/reference/xiaomi.md +23 -0
- package/docs/plugins/reference/zai.md +23 -0
- package/docs/plugins/reference/zalo.md +23 -0
- package/docs/plugins/reference/zalouser.md +24 -0
- package/docs/plugins/reference.md +138 -0
- package/docs/plugins/sdk-agent-harness.md +339 -0
- package/docs/plugins/sdk-channel-ingress.md +137 -0
- package/docs/plugins/sdk-channel-message.md +458 -0
- package/docs/plugins/sdk-channel-plugins.md +762 -0
- package/docs/plugins/sdk-channel-turn.md +580 -0
- package/docs/plugins/sdk-entrypoints.md +333 -0
- package/docs/plugins/sdk-migration.md +949 -0
- package/docs/plugins/sdk-overview.md +501 -0
- package/docs/plugins/sdk-provider-plugins.md +807 -0
- package/docs/plugins/sdk-runtime.md +676 -0
- package/docs/plugins/sdk-setup.md +550 -0
- package/docs/plugins/sdk-subpaths.md +396 -0
- package/docs/plugins/sdk-testing.md +401 -0
- package/docs/plugins/skill-workshop.md +713 -0
- package/docs/plugins/tool-plugins.md +411 -0
- package/docs/plugins/voice-call.md +943 -0
- package/docs/plugins/webhooks.md +192 -0
- package/docs/plugins/zalouser.md +86 -0
- package/docs/prose.md +137 -0
- package/docs/providers/alibaba.md +158 -0
- package/docs/providers/anthropic.md +344 -0
- package/docs/providers/arcee.md +144 -0
- package/docs/providers/azure-speech.md +119 -0
- package/docs/providers/bedrock-mantle.md +211 -0
- package/docs/providers/bedrock.md +414 -0
- package/docs/providers/cerebras.md +130 -0
- package/docs/providers/chutes.md +153 -0
- package/docs/providers/claude-max-api-proxy.md +188 -0
- package/docs/providers/cloudflare-ai-gateway.md +119 -0
- package/docs/providers/comfy.md +362 -0
- package/docs/providers/deepgram.md +184 -0
- package/docs/providers/deepinfra.md +87 -0
- package/docs/providers/deepseek.md +146 -0
- package/docs/providers/ds4.md +309 -0
- package/docs/providers/elevenlabs.md +130 -0
- package/docs/providers/fal.md +204 -0
- package/docs/providers/fireworks.md +144 -0
- package/docs/providers/github-copilot.md +225 -0
- package/docs/providers/glm.md +137 -0
- package/docs/providers/google.md +472 -0
- package/docs/providers/gradium.md +123 -0
- package/docs/providers/groq.md +180 -0
- package/docs/providers/huggingface.md +235 -0
- package/docs/providers/index.md +102 -0
- package/docs/providers/inferrs.md +272 -0
- package/docs/providers/inworld.md +120 -0
- package/docs/providers/kilocode.md +135 -0
- package/docs/providers/litellm.md +234 -0
- package/docs/providers/lmstudio.md +224 -0
- package/docs/providers/minimax.md +505 -0
- package/docs/providers/mistral.md +235 -0
- package/docs/providers/models.md +65 -0
- package/docs/providers/moonshot.md +413 -0
- package/docs/providers/nvidia.md +140 -0
- package/docs/providers/ollama.md +1180 -0
- package/docs/providers/openai.md +1057 -0
- package/docs/providers/opencode-go.md +123 -0
- package/docs/providers/opencode.md +149 -0
- package/docs/providers/openrouter.md +349 -0
- package/docs/providers/perplexity-provider.md +123 -0
- package/docs/providers/qianfan.md +132 -0
- package/docs/providers/qwen.md +332 -0
- package/docs/providers/runway.md +103 -0
- package/docs/providers/senseaudio.md +68 -0
- package/docs/providers/sglang.md +161 -0
- package/docs/providers/stepfun.md +229 -0
- package/docs/providers/synthetic.md +154 -0
- package/docs/providers/tencent.md +130 -0
- package/docs/providers/together.md +141 -0
- package/docs/providers/venice.md +315 -0
- package/docs/providers/vercel-ai-gateway.md +128 -0
- package/docs/providers/vllm.md +383 -0
- package/docs/providers/volcengine.md +199 -0
- package/docs/providers/vydra.md +180 -0
- package/docs/providers/xai.md +560 -0
- package/docs/providers/xiaomi.md +188 -0
- package/docs/providers/zai.md +203 -0
- package/docs/refactor/access.md +9 -0
- package/docs/refactor/acp.md +298 -0
- package/docs/refactor/canvas.md +131 -0
- package/docs/refactor/ingress-core.md +341 -0
- package/docs/reference/AGENTS.default.md +129 -0
- package/docs/reference/RELEASING.md +767 -0
- package/docs/reference/api-usage-costs.md +202 -0
- package/docs/reference/application-modernization-plan.md +208 -0
- package/docs/reference/code-mode.md +757 -0
- package/docs/reference/credits.md +33 -0
- package/docs/reference/device-models.md +50 -0
- package/docs/reference/full-release-validation.md +202 -0
- package/docs/reference/memory-config.md +630 -0
- package/docs/reference/openclaw-sdk-api-design.md +390 -0
- package/docs/reference/prompt-caching.md +358 -0
- package/docs/reference/rich-output-protocol.md +79 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +159 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
- package/docs/reference/session-management-compaction.md +461 -0
- package/docs/reference/templates/AGENTS.dev.md +89 -0
- package/docs/reference/templates/AGENTS.md +225 -0
- package/docs/reference/templates/BOOT.md +16 -0
- package/docs/reference/templates/BOOTSTRAP.md +66 -0
- package/docs/reference/templates/HEARTBEAT.md +16 -0
- package/docs/reference/templates/IDENTITY.dev.md +52 -0
- package/docs/reference/templates/IDENTITY.md +34 -0
- package/docs/reference/templates/SOUL.dev.md +82 -0
- package/docs/reference/templates/SOUL.md +49 -0
- package/docs/reference/templates/TOOLS.dev.md +29 -0
- package/docs/reference/templates/TOOLS.md +51 -0
- package/docs/reference/templates/USER.dev.md +23 -0
- package/docs/reference/templates/USER.md +28 -0
- package/docs/reference/test.md +239 -0
- package/docs/reference/token-use.md +233 -0
- package/docs/reference/transcript-hygiene.md +214 -0
- package/docs/reference/wizard.md +252 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +170 -0
- package/docs/security/incident-response.md +59 -0
- package/docs/security/network-proxy.md +268 -0
- package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
- package/docs/snippets/plugin-publish/minimal-package.json +16 -0
- package/docs/start/bootstrapping.md +49 -0
- package/docs/start/docs-directory.md +69 -0
- package/docs/start/getting-started.md +152 -0
- package/docs/start/hubs.md +201 -0
- package/docs/start/lore.md +223 -0
- package/docs/start/onboarding-overview.md +72 -0
- package/docs/start/onboarding.md +95 -0
- package/docs/start/openclaw.md +244 -0
- package/docs/start/quickstart.md +25 -0
- package/docs/start/setup.md +178 -0
- package/docs/start/showcase.md +383 -0
- package/docs/start/wizard-cli-automation.md +232 -0
- package/docs/start/wizard-cli-reference.md +331 -0
- package/docs/start/wizard.md +141 -0
- package/docs/style.css +184 -0
- package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
- package/docs/tools/acp-agents-setup.md +352 -0
- package/docs/tools/acp-agents.md +847 -0
- package/docs/tools/agent-send.md +112 -0
- package/docs/tools/apply-patch.md +64 -0
- package/docs/tools/brave-search.md +139 -0
- package/docs/tools/browser-control.md +391 -0
- package/docs/tools/browser-linux-troubleshooting.md +173 -0
- package/docs/tools/browser-login.md +77 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
- package/docs/tools/browser.md +769 -0
- package/docs/tools/btw.md +159 -0
- package/docs/tools/capability-cookbook.md +12 -0
- package/docs/tools/clawhub.md +5 -0
- package/docs/tools/code-execution.md +173 -0
- package/docs/tools/creating-skills.md +120 -0
- package/docs/tools/diffs.md +506 -0
- package/docs/tools/duckduckgo-search.md +109 -0
- package/docs/tools/elevated.md +128 -0
- package/docs/tools/exa-search.md +152 -0
- package/docs/tools/exec-approvals-advanced.md +360 -0
- package/docs/tools/exec-approvals.md +474 -0
- package/docs/tools/exec.md +282 -0
- package/docs/tools/firecrawl.md +155 -0
- package/docs/tools/gemini-search.md +114 -0
- package/docs/tools/grok-search.md +113 -0
- package/docs/tools/image-generation.md +433 -0
- package/docs/tools/index.md +178 -0
- package/docs/tools/kimi-search.md +105 -0
- package/docs/tools/llm-task.md +137 -0
- package/docs/tools/lobster.md +365 -0
- package/docs/tools/loop-detection.md +154 -0
- package/docs/tools/media-overview.md +157 -0
- package/docs/tools/minimax-search.md +102 -0
- package/docs/tools/multi-agent-sandbox-tools.md +409 -0
- package/docs/tools/music-generation.md +371 -0
- package/docs/tools/ollama-search.md +153 -0
- package/docs/tools/pdf.md +195 -0
- package/docs/tools/perplexity-search.md +220 -0
- package/docs/tools/plugin.md +327 -0
- package/docs/tools/reactions.md +100 -0
- package/docs/tools/searxng-search.md +141 -0
- package/docs/tools/skills-config.md +195 -0
- package/docs/tools/skills.md +535 -0
- package/docs/tools/slash-commands.md +488 -0
- package/docs/tools/steer.md +84 -0
- package/docs/tools/subagents.md +650 -0
- package/docs/tools/tavily.md +162 -0
- package/docs/tools/thinking.md +140 -0
- package/docs/tools/tokenjuice.md +81 -0
- package/docs/tools/tool-search.md +269 -0
- package/docs/tools/trajectory.md +229 -0
- package/docs/tools/tts.md +1004 -0
- package/docs/tools/video-generation.md +552 -0
- package/docs/tools/web-fetch.md +195 -0
- package/docs/tools/web.md +459 -0
- package/docs/tts.md +11 -0
- package/docs/vps.md +139 -0
- package/docs/web/control-ui.md +503 -0
- package/docs/web/dashboard.md +107 -0
- package/docs/web/index.md +133 -0
- package/docs/web/tui.md +246 -0
- package/docs/web/webchat.md +99 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/nodmix.mjs +487 -0
- package/package.json +1852 -0
- package/patches/.gitkeep +0 -0
- package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
- package/pnpm-workspace.yaml +63 -0
- package/scripts/crabbox-wrapper.mjs +353 -0
- package/scripts/lib/official-external-channel-catalog.json +559 -0
- package/scripts/lib/official-external-plugin-catalog.json +192 -0
- package/scripts/lib/official-external-provider-catalog.json +117 -0
- package/scripts/lib/package-dist-imports.mjs +171 -0
- package/scripts/npm-runner.mjs +91 -0
- package/scripts/postinstall-bundled-plugins.mjs +978 -0
- package/scripts/preinstall-package-manager-warning.mjs +64 -0
- package/scripts/windows-cmd-helpers.mjs +20 -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/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +78 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +149 -0
- package/skills/diagram-maker/SKILL.md +53 -0
- package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
- package/skills/diagram-maker/references/svg-template.md +112 -0
- package/skills/discord/SKILL.md +136 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +47 -0
- package/skills/gh-issues/SKILL.md +213 -0
- package/skills/gifgrep/SKILL.md +85 -0
- package/skills/github/SKILL.md +84 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +105 -0
- package/skills/himalaya/SKILL.md +80 -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/meme-maker/SKILL.md +42 -0
- package/skills/meme-maker/references/templates.json +358 -0
- package/skills/meme-maker/scripts/meme.mjs +398 -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 +319 -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/node-inspect-debugger/SKILL.md +85 -0
- package/skills/notion/SKILL.md +150 -0
- package/skills/obsidian/SKILL.md +119 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +71 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +126 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/pyproject.toml +10 -0
- package/skills/python-debugpy/SKILL.md +73 -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 +78 -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 +169 -0
- package/skills/skill-creator/scripts/test_package_skill.py +161 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
- package/skills/slack/SKILL.md +78 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spike/SKILL.md +51 -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 +91 -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 +64 -0
- package/skills/xurl/SKILL.md +120 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Background memory consolidation with light, deep, and REM phases plus a Dream Diary"
|
|
3
|
+
title: "Dreaming"
|
|
4
|
+
sidebarTitle: "Dreaming"
|
|
5
|
+
read_when:
|
|
6
|
+
- You want memory promotion to run automatically
|
|
7
|
+
- You want to understand what each dreaming phase does
|
|
8
|
+
- You want to tune consolidation without polluting MEMORY.md
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Dreaming is the background memory consolidation system in `memory-core`. It helps Nodmix move strong short-term signals into durable memory while keeping the process explainable and reviewable.
|
|
12
|
+
|
|
13
|
+
<Note>
|
|
14
|
+
Dreaming is **opt-in** and disabled by default.
|
|
15
|
+
</Note>
|
|
16
|
+
|
|
17
|
+
## What dreaming writes
|
|
18
|
+
|
|
19
|
+
Dreaming keeps two kinds of output:
|
|
20
|
+
|
|
21
|
+
- **Machine state** in `memory/.dreams/` (recall store, phase signals, ingestion checkpoints, locks).
|
|
22
|
+
- **Human-readable output** in `DREAMS.md` (or existing `dreams.md`) and optional phase report files under `memory/dreaming/<phase>/YYYY-MM-DD.md`.
|
|
23
|
+
|
|
24
|
+
Long-term promotion still writes only to `MEMORY.md`.
|
|
25
|
+
|
|
26
|
+
## Phase model
|
|
27
|
+
|
|
28
|
+
Dreaming uses three cooperative phases:
|
|
29
|
+
|
|
30
|
+
| Phase | Purpose | Durable write |
|
|
31
|
+
| ----- | ----------------------------------------- | ----------------- |
|
|
32
|
+
| Light | Sort and stage recent short-term material | No |
|
|
33
|
+
| Deep | Score and promote durable candidates | Yes (`MEMORY.md`) |
|
|
34
|
+
| REM | Reflect on themes and recurring ideas | No |
|
|
35
|
+
|
|
36
|
+
These phases are internal implementation details, not separate user-configured "modes."
|
|
37
|
+
|
|
38
|
+
<AccordionGroup>
|
|
39
|
+
<Accordion title="Light phase">
|
|
40
|
+
Light phase ingests recent daily memory signals and recall traces, dedupes them, and stages candidate lines.
|
|
41
|
+
|
|
42
|
+
- Reads from short-term recall state, recent daily memory files, and redacted session transcripts when available.
|
|
43
|
+
- Writes a managed `## Light Sleep` block when storage includes inline output.
|
|
44
|
+
- Records reinforcement signals for later deep ranking.
|
|
45
|
+
- Never writes to `MEMORY.md`.
|
|
46
|
+
|
|
47
|
+
</Accordion>
|
|
48
|
+
<Accordion title="Deep phase">
|
|
49
|
+
Deep phase decides what becomes long-term memory.
|
|
50
|
+
|
|
51
|
+
- Ranks candidates using weighted scoring and threshold gates.
|
|
52
|
+
- Requires `minScore`, `minRecallCount`, and `minUniqueQueries` to pass.
|
|
53
|
+
- Rehydrates snippets from live daily files before writing, so stale/deleted snippets are skipped.
|
|
54
|
+
- Appends promoted entries to `MEMORY.md`.
|
|
55
|
+
- Writes a `## Deep Sleep` summary into `DREAMS.md` and optionally writes `memory/dreaming/deep/YYYY-MM-DD.md`.
|
|
56
|
+
|
|
57
|
+
</Accordion>
|
|
58
|
+
<Accordion title="REM phase">
|
|
59
|
+
REM phase extracts patterns and reflective signals.
|
|
60
|
+
|
|
61
|
+
- Builds theme and reflection summaries from recent short-term traces.
|
|
62
|
+
- Writes a managed `## REM Sleep` block when storage includes inline output.
|
|
63
|
+
- Records REM reinforcement signals used by deep ranking.
|
|
64
|
+
- Never writes to `MEMORY.md`.
|
|
65
|
+
|
|
66
|
+
</Accordion>
|
|
67
|
+
</AccordionGroup>
|
|
68
|
+
|
|
69
|
+
## Session transcript ingestion
|
|
70
|
+
|
|
71
|
+
Dreaming can ingest redacted session transcripts into the dreaming corpus. When transcripts are available, they are fed into the light phase alongside daily memory signals and recall traces. Personal and sensitive content is redacted before ingestion.
|
|
72
|
+
|
|
73
|
+
## Dream Diary
|
|
74
|
+
|
|
75
|
+
Dreaming also keeps a narrative **Dream Diary** in `DREAMS.md`. After each phase has enough material, `memory-core` runs a best-effort background subagent turn and appends a short diary entry. It uses the default runtime model unless `dreaming.model` is configured. If the configured model is unavailable, Dream Diary retries once with the session default model.
|
|
76
|
+
|
|
77
|
+
<Note>
|
|
78
|
+
This diary is for human reading in the Dreams UI, not a promotion source. Dreaming-generated diary/report artifacts are excluded from short-term promotion. Only grounded memory snippets are eligible to promote into `MEMORY.md`.
|
|
79
|
+
</Note>
|
|
80
|
+
|
|
81
|
+
There is also a grounded historical backfill lane for review and recovery work:
|
|
82
|
+
|
|
83
|
+
<AccordionGroup>
|
|
84
|
+
<Accordion title="Backfill commands">
|
|
85
|
+
- `memory rem-harness --path ... --grounded` previews grounded diary output from historical `YYYY-MM-DD.md` notes.
|
|
86
|
+
- `memory rem-backfill --path ...` writes reversible grounded diary entries into `DREAMS.md`.
|
|
87
|
+
- `memory rem-backfill --path ... --stage-short-term` stages grounded durable candidates into the same short-term evidence store the normal deep phase already uses.
|
|
88
|
+
- `memory rem-backfill --rollback` and `--rollback-short-term` remove those staged backfill artifacts without touching ordinary diary entries or live short-term recall.
|
|
89
|
+
|
|
90
|
+
</Accordion>
|
|
91
|
+
</AccordionGroup>
|
|
92
|
+
|
|
93
|
+
The Control UI exposes the same diary backfill/reset flow so you can inspect results in the Dreams scene before deciding whether the grounded candidates deserve promotion. The Scene also shows a distinct grounded lane so you can see which staged short-term entries came from historical replay, which promoted items were grounded-led, and clear only grounded-only staged entries without touching ordinary live short-term state.
|
|
94
|
+
|
|
95
|
+
## Deep ranking signals
|
|
96
|
+
|
|
97
|
+
Deep ranking uses six weighted base signals plus phase reinforcement:
|
|
98
|
+
|
|
99
|
+
| Signal | Weight | Description |
|
|
100
|
+
| ------------------- | ------ | ------------------------------------------------- |
|
|
101
|
+
| Frequency | 0.24 | How many short-term signals the entry accumulated |
|
|
102
|
+
| Relevance | 0.30 | Average retrieval quality for the entry |
|
|
103
|
+
| Query diversity | 0.15 | Distinct query/day contexts that surfaced it |
|
|
104
|
+
| Recency | 0.15 | Time-decayed freshness score |
|
|
105
|
+
| Consolidation | 0.10 | Multi-day recurrence strength |
|
|
106
|
+
| Conceptual richness | 0.06 | Concept-tag density from snippet/path |
|
|
107
|
+
|
|
108
|
+
Light and REM phase hits add a small recency-decayed boost from `memory/.dreams/phase-signals.json`.
|
|
109
|
+
|
|
110
|
+
## QA shadow trial report coverage
|
|
111
|
+
|
|
112
|
+
QA Lab includes a report-only scenario for exploring how a future dreaming
|
|
113
|
+
shadow trial could review a candidate memory before promotion. The scenario asks
|
|
114
|
+
an agent to compare a baseline answer with an answer that can use the candidate
|
|
115
|
+
memory, then write a local report with a verdict, reason, and risk flags.
|
|
116
|
+
|
|
117
|
+
This coverage is intentionally scoped to QA. It verifies that the report artifact
|
|
118
|
+
stays separate from `MEMORY.md` and that the agent does not claim the candidate
|
|
119
|
+
was promoted. It does not add production shadow-trial behavior or change the
|
|
120
|
+
deep-phase promotion engine.
|
|
121
|
+
|
|
122
|
+
## Scheduling
|
|
123
|
+
|
|
124
|
+
When enabled, `memory-core` auto-manages one cron job for a full dreaming sweep. Each sweep runs phases in order: light → REM → deep.
|
|
125
|
+
|
|
126
|
+
The sweep includes the primary runtime workspace and any configured agent workspaces, deduped by path, so subagent workspace fan-out does not exclude the main agent's `DREAMS.md` and memory state.
|
|
127
|
+
|
|
128
|
+
Default cadence behavior:
|
|
129
|
+
|
|
130
|
+
| Setting | Default |
|
|
131
|
+
| -------------------- | ------------- |
|
|
132
|
+
| `dreaming.frequency` | `0 3 * * *` |
|
|
133
|
+
| `dreaming.model` | default model |
|
|
134
|
+
|
|
135
|
+
## Quick start
|
|
136
|
+
|
|
137
|
+
<Tabs>
|
|
138
|
+
<Tab title="Enable dreaming">
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"plugins": {
|
|
142
|
+
"entries": {
|
|
143
|
+
"memory-core": {
|
|
144
|
+
"config": {
|
|
145
|
+
"dreaming": {
|
|
146
|
+
"enabled": true
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
</Tab>
|
|
155
|
+
<Tab title="Custom sweep cadence">
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"plugins": {
|
|
159
|
+
"entries": {
|
|
160
|
+
"memory-core": {
|
|
161
|
+
"config": {
|
|
162
|
+
"dreaming": {
|
|
163
|
+
"enabled": true,
|
|
164
|
+
"timezone": "America/Los_Angeles",
|
|
165
|
+
"frequency": "0 */6 * * *"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
</Tab>
|
|
174
|
+
</Tabs>
|
|
175
|
+
|
|
176
|
+
## Slash command
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
/dreaming status
|
|
180
|
+
/dreaming on
|
|
181
|
+
/dreaming off
|
|
182
|
+
/dreaming help
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## CLI workflow
|
|
186
|
+
|
|
187
|
+
<Tabs>
|
|
188
|
+
<Tab title="Promotion preview / apply">
|
|
189
|
+
```bash
|
|
190
|
+
nodmix memory promote
|
|
191
|
+
nodmix memory promote --apply
|
|
192
|
+
nodmix memory promote --limit 5
|
|
193
|
+
nodmix memory status --deep
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Manual `memory promote` uses deep-phase thresholds by default unless overridden with CLI flags.
|
|
197
|
+
|
|
198
|
+
</Tab>
|
|
199
|
+
<Tab title="Explain promotion">
|
|
200
|
+
Explain why a specific candidate would or would not promote:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
nodmix memory promote-explain "router vlan"
|
|
204
|
+
nodmix memory promote-explain "router vlan" --json
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
</Tab>
|
|
208
|
+
<Tab title="REM harness preview">
|
|
209
|
+
Preview REM reflections, candidate truths, and deep promotion output without writing anything:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
nodmix memory rem-harness
|
|
213
|
+
nodmix memory rem-harness --json
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
</Tab>
|
|
217
|
+
</Tabs>
|
|
218
|
+
|
|
219
|
+
## Key defaults
|
|
220
|
+
|
|
221
|
+
All settings live under `plugins.entries.memory-core.config.dreaming`.
|
|
222
|
+
|
|
223
|
+
<ParamField path="enabled" type="boolean" default="false">
|
|
224
|
+
Enable or disable the dreaming sweep.
|
|
225
|
+
</ParamField>
|
|
226
|
+
<ParamField path="frequency" type="string" default="0 3 * * *">
|
|
227
|
+
Cron cadence for the full dreaming sweep.
|
|
228
|
+
</ParamField>
|
|
229
|
+
<ParamField path="model" type="string">
|
|
230
|
+
Optional Dream Diary subagent model override. Use a canonical `provider/model` value when also setting a subagent `allowedModels` allowlist.
|
|
231
|
+
</ParamField>
|
|
232
|
+
|
|
233
|
+
<Warning>
|
|
234
|
+
`dreaming.model` requires `plugins.entries.memory-core.subagent.allowModelOverride: true`. To restrict it, also set `plugins.entries.memory-core.subagent.allowedModels`. Trust or allowlist failures stay visible instead of falling back silently; the retry only covers model-unavailable errors.
|
|
235
|
+
</Warning>
|
|
236
|
+
|
|
237
|
+
<Note>
|
|
238
|
+
Phase policy, thresholds, and storage behavior are internal implementation details (not user-facing config). See [Memory configuration reference](/reference/memory-config#dreaming) for the full key list.
|
|
239
|
+
</Note>
|
|
240
|
+
|
|
241
|
+
## Dreams UI
|
|
242
|
+
|
|
243
|
+
When enabled, the Gateway **Dreams** tab shows:
|
|
244
|
+
|
|
245
|
+
- current dreaming enabled state
|
|
246
|
+
- phase-level status and managed-sweep presence
|
|
247
|
+
- short-term, grounded, signal, and promoted-today counts
|
|
248
|
+
- next scheduled run timing
|
|
249
|
+
- a distinct grounded Scene lane for staged historical replay entries
|
|
250
|
+
- an expandable Dream Diary reader backed by `doctor.memory.dreamDiary`
|
|
251
|
+
|
|
252
|
+
## Dreaming never runs: status shows blocked
|
|
253
|
+
|
|
254
|
+
If `nodmix memory status` reports `Dreaming status: blocked`, the managed cron exists but the default agent heartbeat is not firing. Check that heartbeat is enabled for the default agent and that its target is not `none`, then run `nodmix memory status --deep` again after the next heartbeat interval.
|
|
255
|
+
|
|
256
|
+
## Related
|
|
257
|
+
|
|
258
|
+
- [Memory](/concepts/memory)
|
|
259
|
+
- [Memory CLI](/cli/memory)
|
|
260
|
+
- [Memory configuration reference](/reference/memory-config)
|
|
261
|
+
- [Memory search](/concepts/memory-search)
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "What experimental flags mean in Nodmix and which ones are currently documented"
|
|
3
|
+
title: "Experimental features"
|
|
4
|
+
read_when:
|
|
5
|
+
- You see an `.experimental` config key and want to know whether it is stable
|
|
6
|
+
- You want to try preview runtime features without confusing them with normal defaults
|
|
7
|
+
- You want one place to find the currently documented experimental flags
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Experimental features in Nodmix are **opt-in preview surfaces**. They are
|
|
11
|
+
behind explicit flags because they still need real-world mileage before they
|
|
12
|
+
deserve a stable default or a long-lived public contract.
|
|
13
|
+
|
|
14
|
+
Treat them differently from normal config:
|
|
15
|
+
|
|
16
|
+
- Keep them **off by default** unless the related doc tells you to try one.
|
|
17
|
+
- Expect **shape and behavior to change** faster than stable config.
|
|
18
|
+
- Prefer the stable path first when one already exists.
|
|
19
|
+
- If you are rolling Nodmix out broadly, test experimental flags in a smaller
|
|
20
|
+
environment before baking them into a shared baseline.
|
|
21
|
+
|
|
22
|
+
## Currently documented flags
|
|
23
|
+
|
|
24
|
+
| Surface | Key | Use it when | More |
|
|
25
|
+
| ------------------------ | ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
26
|
+
| Local model runtime | `agents.defaults.experimental.localModelLean`, `agents.list[].experimental.localModelLean` | A smaller or stricter local backend chokes on Nodmix's full default tool surface | [Local Models](/gateway/local-models) |
|
|
27
|
+
| Memory search | `agents.defaults.memorySearch.experimental.sessionMemory` | You want `memory_search` to index prior session transcripts and accept the extra storage/indexing cost | [Memory configuration reference](/reference/memory-config#session-memory-search-experimental) |
|
|
28
|
+
| Structured planning tool | `tools.experimental.planTool` | You want the structured `update_plan` tool exposed for multi-step work tracking in compatible runtimes and UIs | [Gateway configuration reference](/gateway/config-tools#toolsexperimental) |
|
|
29
|
+
|
|
30
|
+
## Local model lean mode
|
|
31
|
+
|
|
32
|
+
`agents.defaults.experimental.localModelLean: true` is a pressure-release valve for weaker local-model setups. When it is on, Nodmix drops three default tools — `browser`, `cron`, and `message` — from the agent's tool surface for every turn. Nothing else changes. Use `agents.list[].experimental.localModelLean` to enable or disable the same behavior for one configured agent.
|
|
33
|
+
|
|
34
|
+
### Why these three tools
|
|
35
|
+
|
|
36
|
+
These three tools have the largest descriptions and the most parameter shapes in the default Nodmix runtime. On a small-context or stricter OpenAI-compatible backend that is the difference between:
|
|
37
|
+
|
|
38
|
+
- Tool schemas fitting cleanly in the prompt vs. crowding out conversation history.
|
|
39
|
+
- The model picking the right tool vs. emitting malformed tool calls because there are too many similar-looking schemas.
|
|
40
|
+
- The Chat Completions adapter staying inside the server's structured-output limits vs. tripping a 400 on tool-call payload size.
|
|
41
|
+
|
|
42
|
+
Removing them does not silently rewire Nodmix — it just makes the tool list shorter. The model still has `read`, `write`, `edit`, `exec`, `apply_patch`, web search/fetch (when configured), memory, and session/agent tools available.
|
|
43
|
+
|
|
44
|
+
### When to turn it on
|
|
45
|
+
|
|
46
|
+
Enable lean mode when you have already proved the model can talk to the Gateway but full agent turns misbehave. The typical signal chain is:
|
|
47
|
+
|
|
48
|
+
1. `nodmix infer model run --gateway --model <ref> --prompt "Reply with exactly: pong"` succeeds.
|
|
49
|
+
2. A normal agent turn fails with malformed tool calls, oversized prompts, or the model ignoring its tools.
|
|
50
|
+
3. Toggling `localModelLean: true` clears the failure.
|
|
51
|
+
|
|
52
|
+
### When to leave it off
|
|
53
|
+
|
|
54
|
+
If your backend handles the full default runtime cleanly, leave this off. Lean mode is a workaround, not a default. It exists because some local stacks need a smaller tool surface to behave; hosted models and well-resourced local rigs do not.
|
|
55
|
+
|
|
56
|
+
Lean mode also does not replace `tools.profile`, `tools.allow`/`tools.deny`, or the model `compat.supportsTools: false` escape hatch. If you need a permanent narrower tool surface for a specific agent, prefer those stable knobs over the experimental flag.
|
|
57
|
+
|
|
58
|
+
### Enable
|
|
59
|
+
|
|
60
|
+
```json5
|
|
61
|
+
{
|
|
62
|
+
agents: {
|
|
63
|
+
defaults: {
|
|
64
|
+
experimental: {
|
|
65
|
+
localModelLean: true,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
For one agent only:
|
|
73
|
+
|
|
74
|
+
```json5
|
|
75
|
+
{
|
|
76
|
+
agents: {
|
|
77
|
+
list: [
|
|
78
|
+
{
|
|
79
|
+
id: "local",
|
|
80
|
+
model: "lmstudio/gemma-4-e4b-it",
|
|
81
|
+
experimental: {
|
|
82
|
+
localModelLean: true,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Restart the Gateway after changing the flag, then confirm the trimmed tool list with:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
nodmix status --deep
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The deep status output lists the active agent tools; `browser`, `cron`, and `message` should be absent when lean mode is on.
|
|
97
|
+
|
|
98
|
+
## Experimental does not mean hidden
|
|
99
|
+
|
|
100
|
+
If a feature is experimental, Nodmix should say so plainly in docs and in the
|
|
101
|
+
config path itself. What it should **not** do is smuggle preview behavior into a
|
|
102
|
+
stable-looking default knob and pretend that is normal. That's how config
|
|
103
|
+
surfaces get messy.
|
|
104
|
+
|
|
105
|
+
## Related
|
|
106
|
+
|
|
107
|
+
- [Features](/concepts/features)
|
|
108
|
+
- [Release channels](/install/development-channels)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Nodmix capabilities across channels, routing, media, and UX."
|
|
3
|
+
read_when:
|
|
4
|
+
- You want a full list of what Nodmix supports
|
|
5
|
+
title: "Features"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Highlights
|
|
9
|
+
|
|
10
|
+
<Columns>
|
|
11
|
+
<Card title="Channels" icon="message-square" href="/channels">
|
|
12
|
+
Discord, iMessage, Signal, Slack, Telegram, WhatsApp, WebChat, and more with a single Gateway.
|
|
13
|
+
</Card>
|
|
14
|
+
<Card title="Plugins" icon="plug" href="/tools/plugin">
|
|
15
|
+
Bundled plugins add Matrix, Nextcloud Talk, Nostr, Twitch, Zalo, and more without separate installs in normal current releases.
|
|
16
|
+
</Card>
|
|
17
|
+
<Card title="Routing" icon="route" href="/concepts/multi-agent">
|
|
18
|
+
Multi-agent routing with isolated sessions.
|
|
19
|
+
</Card>
|
|
20
|
+
<Card title="Media" icon="image" href="/nodes/images">
|
|
21
|
+
Images, audio, video, documents, and image/video generation.
|
|
22
|
+
</Card>
|
|
23
|
+
<Card title="Apps and UI" icon="monitor" href="/web/control-ui">
|
|
24
|
+
Web Control UI and macOS companion app.
|
|
25
|
+
</Card>
|
|
26
|
+
<Card title="Mobile nodes" icon="smartphone" href="/nodes">
|
|
27
|
+
iOS and Android nodes with pairing, voice/chat, and rich device commands.
|
|
28
|
+
</Card>
|
|
29
|
+
</Columns>
|
|
30
|
+
|
|
31
|
+
## Full list
|
|
32
|
+
|
|
33
|
+
**Channels:**
|
|
34
|
+
|
|
35
|
+
- Built-in channels include Discord, Google Chat, iMessage, IRC, Signal, Slack, Telegram, WebChat, and WhatsApp
|
|
36
|
+
- Bundled plugin channels include Feishu, LINE, Matrix, Mattermost, Microsoft Teams, Nextcloud Talk, Nostr, QQ Bot, Synology Chat, Tlon, Twitch, Zalo, and Zalo Personal
|
|
37
|
+
- Optional separately installed channel plugins include Voice Call and third-party packages such as WeChat
|
|
38
|
+
- Third-party channel plugins can extend the Gateway further, such as WeChat
|
|
39
|
+
- Group chat support with mention-based activation
|
|
40
|
+
- DM safety with allowlists and pairing
|
|
41
|
+
|
|
42
|
+
**Agent:**
|
|
43
|
+
|
|
44
|
+
- Embedded agent runtime with tool streaming
|
|
45
|
+
- Multi-agent routing with isolated sessions per workspace or sender
|
|
46
|
+
- Sessions: direct chats collapse into shared `main`; groups are isolated
|
|
47
|
+
- Streaming and chunking for long responses
|
|
48
|
+
|
|
49
|
+
**Auth and providers:**
|
|
50
|
+
|
|
51
|
+
- 35+ model providers (Anthropic, OpenAI, Google, and more)
|
|
52
|
+
- Subscription auth via OAuth (e.g. OpenAI Codex)
|
|
53
|
+
- Custom and self-hosted provider support (vLLM, SGLang, Ollama, and any OpenAI-compatible or Anthropic-compatible endpoint)
|
|
54
|
+
|
|
55
|
+
**Media:**
|
|
56
|
+
|
|
57
|
+
- Images, audio, video, and documents in and out
|
|
58
|
+
- Shared image generation and video generation capability surfaces
|
|
59
|
+
- Voice note transcription
|
|
60
|
+
- Text-to-speech with multiple providers
|
|
61
|
+
|
|
62
|
+
**Apps and interfaces:**
|
|
63
|
+
|
|
64
|
+
- WebChat and browser Control UI
|
|
65
|
+
- macOS menu bar companion app
|
|
66
|
+
- iOS node with pairing, Canvas, camera, screen recording, location, and voice
|
|
67
|
+
- Android node with pairing, chat, voice, Canvas, camera, and device commands
|
|
68
|
+
|
|
69
|
+
**Tools and automation:**
|
|
70
|
+
|
|
71
|
+
- Browser automation, exec, sandboxing
|
|
72
|
+
- Web search (Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG, Tavily)
|
|
73
|
+
- Cron jobs and heartbeat scheduling
|
|
74
|
+
- Skills, plugins, and workflow pipelines (Lobster)
|
|
75
|
+
|
|
76
|
+
## Related
|
|
77
|
+
|
|
78
|
+
<CardGroup cols={2}>
|
|
79
|
+
<Card title="Experimental features" href="/concepts/experimental-features" icon="flask">
|
|
80
|
+
Opt-in features that have not yet shipped to the default surface.
|
|
81
|
+
</Card>
|
|
82
|
+
<Card title="Agent runtime" href="/concepts/agent" icon="robot">
|
|
83
|
+
Agent runtime model and how runs are dispatched.
|
|
84
|
+
</Card>
|
|
85
|
+
<Card title="Channels" href="/channels" icon="message-square">
|
|
86
|
+
Connect Telegram, WhatsApp, Discord, Slack, and more from one Gateway.
|
|
87
|
+
</Card>
|
|
88
|
+
<Card title="Plugins" href="/tools/plugin" icon="plug">
|
|
89
|
+
Bundled and third-party plugins that extend Nodmix.
|
|
90
|
+
</Card>
|
|
91
|
+
</CardGroup>
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Operator runbook for Mantis Slack desktop QA: GitHub dispatch, local CLI, warm VNC leases, hydrate modes, timing interpretation, artifacts, and failure handling."
|
|
3
|
+
read_when:
|
|
4
|
+
- Running Mantis Slack desktop QA from GitHub or locally
|
|
5
|
+
- Debugging slow Mantis Slack desktop runs
|
|
6
|
+
- Choosing source, prehydrated, or warm-lease mode
|
|
7
|
+
- Posting screenshot and video evidence to a PR
|
|
8
|
+
title: "Mantis Slack desktop runbook"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Mantis Slack desktop QA is the real-UI lane for Slack-class bugs that need a
|
|
12
|
+
Linux desktop, VNC rescue, Slack Web, a real Nodmix gateway, screenshots,
|
|
13
|
+
videos, and a PR evidence comment.
|
|
14
|
+
|
|
15
|
+
Use it when unit tests or the headless Slack live lane cannot prove the bug.
|
|
16
|
+
|
|
17
|
+
## Storage model
|
|
18
|
+
|
|
19
|
+
Mantis uses three different storage layers:
|
|
20
|
+
|
|
21
|
+
- Provider image: owned by Crabbox and stored in the cloud provider account.
|
|
22
|
+
It contains machine capabilities such as Chrome/Chromium, ffmpeg, scrot,
|
|
23
|
+
Node/corepack/pnpm, native build tools, and empty cache directories.
|
|
24
|
+
- Warm lease state: owned by the current operator session. It can contain a
|
|
25
|
+
logged-in browser profile, `/var/cache/crabbox/pnpm`, and a prepared source
|
|
26
|
+
checkout while the lease is alive.
|
|
27
|
+
- Mantis artifacts: owned by the Nodmix run. They live under
|
|
28
|
+
`.artifacts/qa-e2e/mantis/...`, then GitHub Actions uploads them and the
|
|
29
|
+
Mantis GitHub App comments inline evidence on the PR.
|
|
30
|
+
|
|
31
|
+
Never put secrets, browser cookies, Slack login state, repository checkouts,
|
|
32
|
+
`node_modules`, or `dist/` into a prebaked provider image.
|
|
33
|
+
|
|
34
|
+
## GitHub dispatch
|
|
35
|
+
|
|
36
|
+
Run the workflow from `main`:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
gh workflow run mantis-slack-desktop-smoke.yml \
|
|
40
|
+
--ref main \
|
|
41
|
+
-f candidate_ref=<trusted-ref-or-sha> \
|
|
42
|
+
-f pr_number=<pr-number> \
|
|
43
|
+
-f scenario_id=slack-canary \
|
|
44
|
+
-f crabbox_provider=aws \
|
|
45
|
+
-f keep_vm=false \
|
|
46
|
+
-f hydrate_mode=source
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Allowed `candidate_ref` values are intentionally narrow because the workflow
|
|
50
|
+
uses live credentials: current `main` ancestry, release tags, or an open PR head
|
|
51
|
+
from `nodmix/nodmix`.
|
|
52
|
+
|
|
53
|
+
The workflow writes:
|
|
54
|
+
|
|
55
|
+
- uploaded artifact: `mantis-slack-desktop-smoke-<run-id>-<attempt>`;
|
|
56
|
+
- inline PR comment from the Mantis GitHub App;
|
|
57
|
+
- `slack-desktop-smoke.png`;
|
|
58
|
+
- `slack-desktop-smoke.mp4`;
|
|
59
|
+
- `slack-desktop-smoke-preview.gif`;
|
|
60
|
+
- `slack-desktop-smoke-change.mp4`;
|
|
61
|
+
- `mantis-slack-desktop-smoke-summary.json`;
|
|
62
|
+
- `mantis-slack-desktop-smoke-report.md`;
|
|
63
|
+
- remote logs such as `slack-desktop-command.log`, `nodmix-gateway.log`,
|
|
64
|
+
`chrome.log`, and `ffmpeg.log`.
|
|
65
|
+
|
|
66
|
+
The PR comment is updated in place by the hidden
|
|
67
|
+
`<!-- mantis-slack-desktop-smoke -->` marker.
|
|
68
|
+
|
|
69
|
+
## Local CLI
|
|
70
|
+
|
|
71
|
+
Cold source proof:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pnpm nodmix qa mantis slack-desktop-smoke \
|
|
75
|
+
--provider aws \
|
|
76
|
+
--class standard \
|
|
77
|
+
--gateway-setup \
|
|
78
|
+
--credential-source convex \
|
|
79
|
+
--credential-role maintainer \
|
|
80
|
+
--provider-mode live-frontier \
|
|
81
|
+
--model openai/gpt-5.4 \
|
|
82
|
+
--alt-model openai/gpt-5.4 \
|
|
83
|
+
--scenario slack-canary \
|
|
84
|
+
--hydrate-mode source
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Keep the VM for VNC rescue:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
pnpm nodmix qa mantis slack-desktop-smoke \
|
|
91
|
+
--provider aws \
|
|
92
|
+
--class standard \
|
|
93
|
+
--gateway-setup \
|
|
94
|
+
--scenario slack-canary \
|
|
95
|
+
--keep-lease
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Open VNC:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
crabbox vnc --provider aws --id <cbx_id> --open
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Reuse a warm lease:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
pnpm nodmix qa mantis slack-desktop-smoke \
|
|
108
|
+
--provider aws \
|
|
109
|
+
--lease-id <cbx_id-or-slug> \
|
|
110
|
+
--gateway-setup \
|
|
111
|
+
--scenario slack-canary \
|
|
112
|
+
--hydrate-mode source
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Use `--hydrate-mode prehydrated` only when the reused remote workspace already
|
|
116
|
+
has `node_modules` and a built `dist/`. Mantis fails closed if those are
|
|
117
|
+
missing.
|
|
118
|
+
|
|
119
|
+
## Hydrate modes
|
|
120
|
+
|
|
121
|
+
| Mode | Use when | Remote behavior | Tradeoff |
|
|
122
|
+
| ------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------- |
|
|
123
|
+
| `source` | Normal PR proof, cold machines, CI | Runs `pnpm install --frozen-lockfile --prefer-offline` and `pnpm build` inside the VM | Slowest, strongest source-checkout proof |
|
|
124
|
+
| `prehydrated` | You intentionally prepared a reused lease | Requires existing `node_modules` and `dist/`; skips install/build | Fast, but only valid for operator-controlled warm leases |
|
|
125
|
+
|
|
126
|
+
GitHub Actions always prepares the candidate checkout before the VM run. Its
|
|
127
|
+
pnpm store is cached by OS, Node version, and lockfile. The VM source run also
|
|
128
|
+
uses `/var/cache/crabbox/pnpm` when present.
|
|
129
|
+
|
|
130
|
+
## Timing interpretation
|
|
131
|
+
|
|
132
|
+
`mantis-slack-desktop-smoke-report.md` includes phase timings:
|
|
133
|
+
|
|
134
|
+
- `crabbox.warmup`: cloud provider boot, desktop/browser readiness, and SSH.
|
|
135
|
+
- `crabbox.inspect`: lease metadata lookup.
|
|
136
|
+
- `credentials.prepare`: Convex credential lease acquisition.
|
|
137
|
+
- `crabbox.remote_run`: sync, browser launch, Nodmix install/build or
|
|
138
|
+
hydrate validation, gateway startup, screenshot, and video capture.
|
|
139
|
+
- `artifacts.copy`: rsync back from the VM.
|
|
140
|
+
|
|
141
|
+
`crabbox.remote_run` can be marked `accepted` when Crabbox returns a non-zero
|
|
142
|
+
remote status after Mantis has copied metadata proving that the Nodmix gateway
|
|
143
|
+
is alive and the setup completed. Treat `accepted` as pass-with-explanation,
|
|
144
|
+
not a failed scenario.
|
|
145
|
+
|
|
146
|
+
If the run is slow:
|
|
147
|
+
|
|
148
|
+
- warmup dominates: prebake or promote a better Crabbox provider image;
|
|
149
|
+
- remote_run dominates in `source`: use a warm lease, improve pnpm store reuse,
|
|
150
|
+
or move machine prerequisites into the provider image;
|
|
151
|
+
- remote_run dominates in `prehydrated`: the remote workspace was not actually
|
|
152
|
+
ready, or the gateway/browser/Slack setup is slow;
|
|
153
|
+
- artifact copy dominates: inspect video size and artifact directory contents.
|
|
154
|
+
|
|
155
|
+
## Evidence checklist
|
|
156
|
+
|
|
157
|
+
A good PR comment should show:
|
|
158
|
+
|
|
159
|
+
- scenario id and candidate SHA;
|
|
160
|
+
- GitHub Actions run URL;
|
|
161
|
+
- artifact URL;
|
|
162
|
+
- inline screenshot;
|
|
163
|
+
- inline animated preview when available;
|
|
164
|
+
- full MP4 and trimmed MP4 links;
|
|
165
|
+
- pass/fail status;
|
|
166
|
+
- timing summary in the attached report.
|
|
167
|
+
|
|
168
|
+
Do not commit screenshots or videos into the repository. Keep them in GitHub
|
|
169
|
+
Actions artifacts or the PR comment.
|
|
170
|
+
|
|
171
|
+
## Failure handling
|
|
172
|
+
|
|
173
|
+
If the workflow fails before the VM run, inspect the Actions job first. Typical
|
|
174
|
+
causes are untrusted `candidate_ref`, missing environment secrets, or candidate
|
|
175
|
+
install/build failure.
|
|
176
|
+
|
|
177
|
+
If the VM run fails but screenshots were copied back, inspect:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
cat mantis-slack-desktop-smoke-report.md
|
|
181
|
+
cat mantis-slack-desktop-smoke-summary.json
|
|
182
|
+
cat slack-desktop-command.log
|
|
183
|
+
cat nodmix-gateway.log
|
|
184
|
+
cat chrome.log
|
|
185
|
+
cat ffmpeg.log
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
If the run kept the lease, open VNC with the report's `crabbox vnc ...` command.
|
|
189
|
+
Stop the lease when done:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
crabbox stop --provider aws <cbx_id-or-slug>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
If Slack login expired, repair it in VNC on a kept lease and rerun with
|
|
196
|
+
`--lease-id`. Do not bake that browser profile into a provider image.
|
|
197
|
+
|
|
198
|
+
## Related
|
|
199
|
+
|
|
200
|
+
- [QA overview](/concepts/qa-e2e-automation)
|
|
201
|
+
- [Slack channel](/channels/slack)
|
|
202
|
+
- [Testing](/help/testing)
|