@quantumclaw/quantumclaw 2026.3.22

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.
Files changed (821) hide show
  1. package/CHANGELOG.md +4601 -0
  2. package/LICENSE +21 -0
  3. package/README.md +559 -0
  4. package/assets/avatar-placeholder.svg +19 -0
  5. package/assets/chrome-extension/icons/icon128.png +0 -0
  6. package/assets/chrome-extension/icons/icon16.png +0 -0
  7. package/assets/chrome-extension/icons/icon32.png +0 -0
  8. package/assets/chrome-extension/icons/icon48.png +0 -0
  9. package/assets/dmg-background-small.png +0 -0
  10. package/assets/dmg-background.png +0 -0
  11. package/docs/.i18n/README.md +31 -0
  12. package/docs/.i18n/glossary.ja-JP.json +14 -0
  13. package/docs/.i18n/glossary.zh-CN.json +302 -0
  14. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  15. package/docs/assets/install-script.svg +1 -0
  16. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  17. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  18. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  19. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  20. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  21. package/docs/assets/pixel-lobster.svg +60 -0
  22. package/docs/assets/quantumclaw-logo-text-dark.png +0 -0
  23. package/docs/assets/quantumclaw-logo-text-dark.svg +418 -0
  24. package/docs/assets/quantumclaw-logo-text.png +0 -0
  25. package/docs/assets/quantumclaw-logo-text.svg +418 -0
  26. package/docs/assets/showcase/agents-ui.jpg +0 -0
  27. package/docs/assets/showcase/bambu-cli.png +0 -0
  28. package/docs/assets/showcase/codexmonitor.png +0 -0
  29. package/docs/assets/showcase/gohome-grafana.png +0 -0
  30. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  31. package/docs/assets/showcase/oura-health.png +0 -0
  32. package/docs/assets/showcase/padel-cli.svg +11 -0
  33. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  34. package/docs/assets/showcase/papla-tts.jpg +0 -0
  35. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  36. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  37. package/docs/assets/showcase/roborock-status.svg +13 -0
  38. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  39. package/docs/assets/showcase/snag.png +0 -0
  40. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  41. package/docs/assets/showcase/wienerlinien.png +0 -0
  42. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  43. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  44. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  45. package/docs/assets/sponsors/blacksmith.svg +14 -0
  46. package/docs/assets/sponsors/convex.svg +16 -0
  47. package/docs/assets/sponsors/openai.svg +3 -0
  48. package/docs/assets/sponsors/vercel.svg +5 -0
  49. package/docs/auth-credential-semantics.md +53 -0
  50. package/docs/automation/auth-monitoring.md +44 -0
  51. package/docs/automation/cron-jobs.md +727 -0
  52. package/docs/automation/cron-vs-heartbeat.md +286 -0
  53. package/docs/automation/gmail-pubsub.md +256 -0
  54. package/docs/automation/hooks.md +1056 -0
  55. package/docs/automation/poll.md +86 -0
  56. package/docs/automation/standing-orders.md +251 -0
  57. package/docs/automation/troubleshooting.md +122 -0
  58. package/docs/automation/webhook.md +217 -0
  59. package/docs/brave-search.md +93 -0
  60. package/docs/channels/bluebubbles.md +347 -0
  61. package/docs/channels/broadcast-groups.md +442 -0
  62. package/docs/channels/channel-routing.md +139 -0
  63. package/docs/channels/discord.md +1229 -0
  64. package/docs/channels/feishu.md +747 -0
  65. package/docs/channels/googlechat.md +261 -0
  66. package/docs/channels/group-messages.md +84 -0
  67. package/docs/channels/groups.md +379 -0
  68. package/docs/channels/imessage.md +367 -0
  69. package/docs/channels/index.md +47 -0
  70. package/docs/channels/irc.md +242 -0
  71. package/docs/channels/line.md +194 -0
  72. package/docs/channels/location.md +56 -0
  73. package/docs/channels/matrix.md +677 -0
  74. package/docs/channels/mattermost.md +427 -0
  75. package/docs/channels/msteams.md +780 -0
  76. package/docs/channels/nextcloud-talk.md +138 -0
  77. package/docs/channels/nostr.md +249 -0
  78. package/docs/channels/pairing.md +114 -0
  79. package/docs/channels/signal.md +329 -0
  80. package/docs/channels/slack.md +603 -0
  81. package/docs/channels/synology-chat.md +134 -0
  82. package/docs/channels/telegram.md +987 -0
  83. package/docs/channels/tlon.md +276 -0
  84. package/docs/channels/troubleshooting.md +118 -0
  85. package/docs/channels/twitch.md +379 -0
  86. package/docs/channels/whatsapp.md +460 -0
  87. package/docs/channels/zalo.md +243 -0
  88. package/docs/channels/zalouser.md +181 -0
  89. package/docs/ci.md +55 -0
  90. package/docs/cli/acp.md +288 -0
  91. package/docs/cli/agent.md +29 -0
  92. package/docs/cli/agents.md +123 -0
  93. package/docs/cli/approvals.md +50 -0
  94. package/docs/cli/backup.md +76 -0
  95. package/docs/cli/browser.md +106 -0
  96. package/docs/cli/channels.md +102 -0
  97. package/docs/cli/clawbot.md +21 -0
  98. package/docs/cli/completion.md +35 -0
  99. package/docs/cli/config.md +295 -0
  100. package/docs/cli/configure.md +36 -0
  101. package/docs/cli/cron.md +77 -0
  102. package/docs/cli/daemon.md +53 -0
  103. package/docs/cli/dashboard.md +22 -0
  104. package/docs/cli/devices.md +139 -0
  105. package/docs/cli/directory.md +63 -0
  106. package/docs/cli/dns.md +23 -0
  107. package/docs/cli/docs.md +15 -0
  108. package/docs/cli/doctor.md +48 -0
  109. package/docs/cli/gateway.md +235 -0
  110. package/docs/cli/health.md +21 -0
  111. package/docs/cli/hooks.md +329 -0
  112. package/docs/cli/index.md +1150 -0
  113. package/docs/cli/logs.md +28 -0
  114. package/docs/cli/memory.md +66 -0
  115. package/docs/cli/message.md +278 -0
  116. package/docs/cli/models.md +81 -0
  117. package/docs/cli/node.md +127 -0
  118. package/docs/cli/nodes.md +75 -0
  119. package/docs/cli/onboard.md +157 -0
  120. package/docs/cli/pairing.md +32 -0
  121. package/docs/cli/plugins.md +210 -0
  122. package/docs/cli/qr.md +46 -0
  123. package/docs/cli/reset.md +20 -0
  124. package/docs/cli/sandbox.md +197 -0
  125. package/docs/cli/secrets.md +188 -0
  126. package/docs/cli/security.md +79 -0
  127. package/docs/cli/sessions.md +110 -0
  128. package/docs/cli/setup.md +29 -0
  129. package/docs/cli/skills.md +36 -0
  130. package/docs/cli/status.md +30 -0
  131. package/docs/cli/system.md +60 -0
  132. package/docs/cli/tui.md +30 -0
  133. package/docs/cli/uninstall.md +20 -0
  134. package/docs/cli/update.md +103 -0
  135. package/docs/cli/voicecall.md +34 -0
  136. package/docs/cli/webhooks.md +25 -0
  137. package/docs/concepts/agent-loop.md +148 -0
  138. package/docs/concepts/agent-workspace.md +236 -0
  139. package/docs/concepts/agent.md +122 -0
  140. package/docs/concepts/architecture.md +137 -0
  141. package/docs/concepts/compaction.md +123 -0
  142. package/docs/concepts/context-engine.md +268 -0
  143. package/docs/concepts/context.md +172 -0
  144. package/docs/concepts/delegate-architecture.md +296 -0
  145. package/docs/concepts/features.md +73 -0
  146. package/docs/concepts/markdown-formatting.md +130 -0
  147. package/docs/concepts/memory.md +108 -0
  148. package/docs/concepts/messages.md +154 -0
  149. package/docs/concepts/model-failover.md +152 -0
  150. package/docs/concepts/model-providers.md +607 -0
  151. package/docs/concepts/models.md +225 -0
  152. package/docs/concepts/multi-agent.md +552 -0
  153. package/docs/concepts/oauth.md +158 -0
  154. package/docs/concepts/presence.md +102 -0
  155. package/docs/concepts/queue.md +89 -0
  156. package/docs/concepts/retry.md +69 -0
  157. package/docs/concepts/session-pruning.md +121 -0
  158. package/docs/concepts/session-tool.md +242 -0
  159. package/docs/concepts/session.md +310 -0
  160. package/docs/concepts/streaming.md +155 -0
  161. package/docs/concepts/system-prompt.md +132 -0
  162. package/docs/concepts/timezone.md +91 -0
  163. package/docs/concepts/typebox.md +291 -0
  164. package/docs/concepts/typing-indicators.md +68 -0
  165. package/docs/concepts/usage-tracking.md +35 -0
  166. package/docs/date-time.md +128 -0
  167. package/docs/debug/node-issue.md +85 -0
  168. package/docs/diagnostics/flags.md +91 -0
  169. package/docs/docs.json +2078 -0
  170. package/docs/gateway/authentication.md +179 -0
  171. package/docs/gateway/background-process.md +97 -0
  172. package/docs/gateway/bonjour.md +177 -0
  173. package/docs/gateway/bridge-protocol.md +91 -0
  174. package/docs/gateway/cli-backends.md +225 -0
  175. package/docs/gateway/configuration-examples.md +651 -0
  176. package/docs/gateway/configuration-reference.md +3123 -0
  177. package/docs/gateway/configuration.md +633 -0
  178. package/docs/gateway/discovery.md +123 -0
  179. package/docs/gateway/doctor.md +362 -0
  180. package/docs/gateway/gateway-lock.md +34 -0
  181. package/docs/gateway/health.md +44 -0
  182. package/docs/gateway/heartbeat.md +393 -0
  183. package/docs/gateway/index.md +261 -0
  184. package/docs/gateway/local-models.md +152 -0
  185. package/docs/gateway/logging.md +113 -0
  186. package/docs/gateway/multiple-gateways.md +112 -0
  187. package/docs/gateway/network-model.md +22 -0
  188. package/docs/gateway/openai-http-api.md +132 -0
  189. package/docs/gateway/openresponses-http-api.md +295 -0
  190. package/docs/gateway/openshell.md +307 -0
  191. package/docs/gateway/pairing.md +99 -0
  192. package/docs/gateway/protocol.md +267 -0
  193. package/docs/gateway/remote-gateway-readme.md +158 -0
  194. package/docs/gateway/remote.md +153 -0
  195. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
  196. package/docs/gateway/sandboxing.md +469 -0
  197. package/docs/gateway/secrets-plan-contract.md +116 -0
  198. package/docs/gateway/secrets.md +503 -0
  199. package/docs/gateway/security/index.md +1220 -0
  200. package/docs/gateway/tailscale.md +132 -0
  201. package/docs/gateway/tools-invoke-http-api.md +118 -0
  202. package/docs/gateway/troubleshooting.md +378 -0
  203. package/docs/gateway/trusted-proxy-auth.md +330 -0
  204. package/docs/help/debugging.md +168 -0
  205. package/docs/help/environment.md +163 -0
  206. package/docs/help/faq.md +2997 -0
  207. package/docs/help/index.md +28 -0
  208. package/docs/help/scripts.md +28 -0
  209. package/docs/help/testing.md +526 -0
  210. package/docs/help/troubleshooting.md +297 -0
  211. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  212. package/docs/images/feishu-step2-create-app.png +0 -0
  213. package/docs/images/feishu-step3-credentials.png +0 -0
  214. package/docs/images/feishu-step4-permissions.png +0 -0
  215. package/docs/images/feishu-step5-bot-capability.png +0 -0
  216. package/docs/images/feishu-step6-event-subscription.png +0 -0
  217. package/docs/images/feishu-verification-token.png +0 -0
  218. package/docs/images/groups-flow.svg +52 -0
  219. package/docs/images/mobile-ui-screenshot.png +0 -0
  220. package/docs/index.md +196 -0
  221. package/docs/install/ansible.md +230 -0
  222. package/docs/install/azure.md +311 -0
  223. package/docs/install/bun.md +55 -0
  224. package/docs/install/development-channels.md +120 -0
  225. package/docs/install/digitalocean.md +129 -0
  226. package/docs/install/docker-vm-runtime.md +142 -0
  227. package/docs/install/docker.md +375 -0
  228. package/docs/install/exe-dev.md +126 -0
  229. package/docs/install/fly.md +501 -0
  230. package/docs/install/gcp.md +402 -0
  231. package/docs/install/hetzner.md +251 -0
  232. package/docs/install/index.md +183 -0
  233. package/docs/install/installer.md +415 -0
  234. package/docs/install/kubernetes.md +191 -0
  235. package/docs/install/macos-vm.md +281 -0
  236. package/docs/install/migrating-matrix.md +346 -0
  237. package/docs/install/migrating.md +110 -0
  238. package/docs/install/nix.md +89 -0
  239. package/docs/install/node.md +138 -0
  240. package/docs/install/northflank.mdx +54 -0
  241. package/docs/install/oracle.md +156 -0
  242. package/docs/install/podman.md +133 -0
  243. package/docs/install/railway.mdx +100 -0
  244. package/docs/install/raspberry-pi.md +159 -0
  245. package/docs/install/render.mdx +169 -0
  246. package/docs/install/uninstall.md +128 -0
  247. package/docs/install/updating.md +128 -0
  248. package/docs/ja-JP/index.md +186 -0
  249. package/docs/ja-JP/start/getting-started.md +125 -0
  250. package/docs/ja-JP/start/wizard.md +77 -0
  251. package/docs/logging.md +352 -0
  252. package/docs/nav-tabs-underline.js +100 -0
  253. package/docs/network.md +54 -0
  254. package/docs/nodes/audio.md +187 -0
  255. package/docs/nodes/camera.md +162 -0
  256. package/docs/nodes/images.md +72 -0
  257. package/docs/nodes/index.md +393 -0
  258. package/docs/nodes/location-command.md +98 -0
  259. package/docs/nodes/media-understanding.md +394 -0
  260. package/docs/nodes/talk.md +92 -0
  261. package/docs/nodes/troubleshooting.md +114 -0
  262. package/docs/nodes/voicewake.md +66 -0
  263. package/docs/perplexity.md +174 -0
  264. package/docs/pi-dev.md +80 -0
  265. package/docs/pi.md +567 -0
  266. package/docs/platforms/android.md +168 -0
  267. package/docs/platforms/digitalocean.md +266 -0
  268. package/docs/platforms/index.md +54 -0
  269. package/docs/platforms/ios.md +220 -0
  270. package/docs/platforms/linux.md +94 -0
  271. package/docs/platforms/mac/bundled-gateway.md +73 -0
  272. package/docs/platforms/mac/canvas.md +125 -0
  273. package/docs/platforms/mac/child-process.md +69 -0
  274. package/docs/platforms/mac/dev-setup.md +104 -0
  275. package/docs/platforms/mac/health.md +34 -0
  276. package/docs/platforms/mac/icon.md +31 -0
  277. package/docs/platforms/mac/logging.md +57 -0
  278. package/docs/platforms/mac/menu-bar.md +81 -0
  279. package/docs/platforms/mac/peekaboo.md +65 -0
  280. package/docs/platforms/mac/permissions.md +50 -0
  281. package/docs/platforms/mac/remote.md +84 -0
  282. package/docs/platforms/mac/signing.md +47 -0
  283. package/docs/platforms/mac/skills.md +33 -0
  284. package/docs/platforms/mac/voice-overlay.md +60 -0
  285. package/docs/platforms/mac/voicewake.md +67 -0
  286. package/docs/platforms/mac/webchat.md +43 -0
  287. package/docs/platforms/mac/xpc.md +61 -0
  288. package/docs/platforms/macos.md +226 -0
  289. package/docs/platforms/oracle.md +303 -0
  290. package/docs/platforms/raspberry-pi.md +412 -0
  291. package/docs/platforms/windows.md +241 -0
  292. package/docs/plugins/agent-tools.md +10 -0
  293. package/docs/plugins/architecture.md +1366 -0
  294. package/docs/plugins/building-extensions.md +10 -0
  295. package/docs/plugins/building-plugins.md +239 -0
  296. package/docs/plugins/bundles.md +181 -0
  297. package/docs/plugins/community.md +145 -0
  298. package/docs/plugins/manifest.md +241 -0
  299. package/docs/plugins/sdk-channel-plugins.md +370 -0
  300. package/docs/plugins/sdk-entrypoints.md +161 -0
  301. package/docs/plugins/sdk-migration.md +172 -0
  302. package/docs/plugins/sdk-overview.md +196 -0
  303. package/docs/plugins/sdk-provider-plugins.md +370 -0
  304. package/docs/plugins/sdk-runtime.md +345 -0
  305. package/docs/plugins/sdk-setup.md +331 -0
  306. package/docs/plugins/sdk-testing.md +263 -0
  307. package/docs/plugins/voice-call.md +380 -0
  308. package/docs/plugins/zalouser.md +77 -0
  309. package/docs/prose.md +134 -0
  310. package/docs/providers/anthropic.md +259 -0
  311. package/docs/providers/bedrock.md +176 -0
  312. package/docs/providers/claude-max-api-proxy.md +154 -0
  313. package/docs/providers/cloudflare-ai-gateway.md +71 -0
  314. package/docs/providers/deepgram.md +93 -0
  315. package/docs/providers/github-copilot.md +72 -0
  316. package/docs/providers/glm.md +43 -0
  317. package/docs/providers/google.md +78 -0
  318. package/docs/providers/groq.md +96 -0
  319. package/docs/providers/huggingface.md +209 -0
  320. package/docs/providers/index.md +69 -0
  321. package/docs/providers/kilocode.md +74 -0
  322. package/docs/providers/litellm.md +154 -0
  323. package/docs/providers/minimax.md +224 -0
  324. package/docs/providers/mistral.md +54 -0
  325. package/docs/providers/models.md +45 -0
  326. package/docs/providers/modelstudio.md +66 -0
  327. package/docs/providers/moonshot.md +175 -0
  328. package/docs/providers/nvidia.md +55 -0
  329. package/docs/providers/ollama.md +352 -0
  330. package/docs/providers/openai.md +303 -0
  331. package/docs/providers/opencode-go.md +45 -0
  332. package/docs/providers/opencode.md +64 -0
  333. package/docs/providers/openrouter.md +37 -0
  334. package/docs/providers/perplexity-provider.md +62 -0
  335. package/docs/providers/qianfan.md +38 -0
  336. package/docs/providers/qwen.md +53 -0
  337. package/docs/providers/sglang.md +104 -0
  338. package/docs/providers/synthetic.md +99 -0
  339. package/docs/providers/together.md +66 -0
  340. package/docs/providers/venice.md +282 -0
  341. package/docs/providers/vercel-ai-gateway.md +60 -0
  342. package/docs/providers/vllm.md +92 -0
  343. package/docs/providers/volcengine.md +74 -0
  344. package/docs/providers/xai.md +60 -0
  345. package/docs/providers/xiaomi.md +86 -0
  346. package/docs/providers/zai.md +46 -0
  347. package/docs/reference/AGENTS.default.md +126 -0
  348. package/docs/reference/RELEASING.md +42 -0
  349. package/docs/reference/api-usage-costs.md +144 -0
  350. package/docs/reference/credits.md +30 -0
  351. package/docs/reference/device-models.md +47 -0
  352. package/docs/reference/memory-config.md +711 -0
  353. package/docs/reference/prompt-caching.md +185 -0
  354. package/docs/reference/rpc.md +43 -0
  355. package/docs/reference/secretref-credential-surface.md +140 -0
  356. package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
  357. package/docs/reference/session-management-compaction.md +324 -0
  358. package/docs/reference/templates/AGENTS.dev.md +83 -0
  359. package/docs/reference/templates/AGENTS.md +219 -0
  360. package/docs/reference/templates/BOOT.md +11 -0
  361. package/docs/reference/templates/BOOTSTRAP.md +62 -0
  362. package/docs/reference/templates/HEARTBEAT.md +14 -0
  363. package/docs/reference/templates/IDENTITY.dev.md +47 -0
  364. package/docs/reference/templates/IDENTITY.md +29 -0
  365. package/docs/reference/templates/SOUL.dev.md +76 -0
  366. package/docs/reference/templates/SOUL.md +43 -0
  367. package/docs/reference/templates/TOOLS.dev.md +24 -0
  368. package/docs/reference/templates/TOOLS.md +47 -0
  369. package/docs/reference/templates/USER.dev.md +18 -0
  370. package/docs/reference/templates/USER.md +23 -0
  371. package/docs/reference/test.md +90 -0
  372. package/docs/reference/token-use.md +175 -0
  373. package/docs/reference/transcript-hygiene.md +151 -0
  374. package/docs/reference/wizard.md +235 -0
  375. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
  376. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  377. package/docs/security/formal-verification.md +167 -0
  378. package/docs/start/bootstrapping.md +41 -0
  379. package/docs/start/docs-directory.md +66 -0
  380. package/docs/start/getting-started.md +116 -0
  381. package/docs/start/hubs.md +198 -0
  382. package/docs/start/lore.md +219 -0
  383. package/docs/start/onboarding-overview.md +67 -0
  384. package/docs/start/onboarding.md +91 -0
  385. package/docs/start/openclaw.md +221 -0
  386. package/docs/start/quickstart.md +22 -0
  387. package/docs/start/setup.md +164 -0
  388. package/docs/start/showcase.md +418 -0
  389. package/docs/start/wizard-cli-automation.md +215 -0
  390. package/docs/start/wizard-cli-reference.md +299 -0
  391. package/docs/start/wizard.md +125 -0
  392. package/docs/style.css +37 -0
  393. package/docs/tools/acp-agents.md +623 -0
  394. package/docs/tools/agent-send.md +100 -0
  395. package/docs/tools/apply-patch.md +51 -0
  396. package/docs/tools/brave-search.md +93 -0
  397. package/docs/tools/browser-linux-troubleshooting.md +138 -0
  398. package/docs/tools/browser-login.md +73 -0
  399. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
  400. package/docs/tools/browser.md +731 -0
  401. package/docs/tools/btw.md +142 -0
  402. package/docs/tools/capability-cookbook.md +119 -0
  403. package/docs/tools/clawhub.md +298 -0
  404. package/docs/tools/creating-skills.md +117 -0
  405. package/docs/tools/diffs.md +386 -0
  406. package/docs/tools/elevated.md +114 -0
  407. package/docs/tools/exec-approvals.md +430 -0
  408. package/docs/tools/exec.md +207 -0
  409. package/docs/tools/firecrawl.md +140 -0
  410. package/docs/tools/index.md +137 -0
  411. package/docs/tools/llm-task.md +119 -0
  412. package/docs/tools/lobster.md +340 -0
  413. package/docs/tools/loop-detection.md +100 -0
  414. package/docs/tools/multi-agent-sandbox-tools.md +364 -0
  415. package/docs/tools/pdf.md +156 -0
  416. package/docs/tools/perplexity-search.md +174 -0
  417. package/docs/tools/plugin.md +255 -0
  418. package/docs/tools/reactions.md +64 -0
  419. package/docs/tools/skills-config.md +86 -0
  420. package/docs/tools/skills.md +309 -0
  421. package/docs/tools/slash-commands.md +294 -0
  422. package/docs/tools/subagents.md +295 -0
  423. package/docs/tools/tavily.md +125 -0
  424. package/docs/tools/thinking.md +96 -0
  425. package/docs/tools/tts.md +406 -0
  426. package/docs/tools/web.md +516 -0
  427. package/docs/tts.md +406 -0
  428. package/docs/vps.md +112 -0
  429. package/docs/web/control-ui.md +275 -0
  430. package/docs/web/dashboard.md +54 -0
  431. package/docs/web/index.md +120 -0
  432. package/docs/web/tui.md +170 -0
  433. package/docs/web/webchat.md +61 -0
  434. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  435. package/docs/whatsapp-openclaw.jpg +0 -0
  436. package/docs/zh-CN/AGENTS.md +61 -0
  437. package/docs/zh-CN/automation/auth-monitoring.md +47 -0
  438. package/docs/zh-CN/automation/cron-jobs.md +435 -0
  439. package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
  440. package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
  441. package/docs/zh-CN/automation/hooks.md +1051 -0
  442. package/docs/zh-CN/automation/poll.md +76 -0
  443. package/docs/zh-CN/automation/troubleshooting.md +8 -0
  444. package/docs/zh-CN/automation/webhook.md +163 -0
  445. package/docs/zh-CN/brave-search.md +60 -0
  446. package/docs/zh-CN/channels/bluebubbles.md +354 -0
  447. package/docs/zh-CN/channels/broadcast-groups.md +449 -0
  448. package/docs/zh-CN/channels/channel-routing.md +117 -0
  449. package/docs/zh-CN/channels/discord.md +468 -0
  450. package/docs/zh-CN/channels/feishu.md +728 -0
  451. package/docs/zh-CN/channels/googlechat.md +257 -0
  452. package/docs/zh-CN/channels/grammy.md +38 -0
  453. package/docs/zh-CN/channels/group-messages.md +91 -0
  454. package/docs/zh-CN/channels/groups.md +379 -0
  455. package/docs/zh-CN/channels/imessage.md +302 -0
  456. package/docs/zh-CN/channels/index.md +53 -0
  457. package/docs/zh-CN/channels/line.md +180 -0
  458. package/docs/zh-CN/channels/location.md +63 -0
  459. package/docs/zh-CN/channels/matrix.md +221 -0
  460. package/docs/zh-CN/channels/mattermost.md +144 -0
  461. package/docs/zh-CN/channels/msteams.md +775 -0
  462. package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
  463. package/docs/zh-CN/channels/nostr.md +249 -0
  464. package/docs/zh-CN/channels/pairing.md +89 -0
  465. package/docs/zh-CN/channels/signal.md +209 -0
  466. package/docs/zh-CN/channels/slack.md +531 -0
  467. package/docs/zh-CN/channels/synology-chat.md +138 -0
  468. package/docs/zh-CN/channels/telegram.md +751 -0
  469. package/docs/zh-CN/channels/tlon.md +136 -0
  470. package/docs/zh-CN/channels/troubleshooting.md +36 -0
  471. package/docs/zh-CN/channels/twitch.md +385 -0
  472. package/docs/zh-CN/channels/whatsapp.md +411 -0
  473. package/docs/zh-CN/channels/zalo.md +196 -0
  474. package/docs/zh-CN/channels/zalouser.md +147 -0
  475. package/docs/zh-CN/cli/acp.md +173 -0
  476. package/docs/zh-CN/cli/agent.md +30 -0
  477. package/docs/zh-CN/cli/agents.md +82 -0
  478. package/docs/zh-CN/cli/approvals.md +57 -0
  479. package/docs/zh-CN/cli/browser.md +114 -0
  480. package/docs/zh-CN/cli/channels.md +86 -0
  481. package/docs/zh-CN/cli/config.md +57 -0
  482. package/docs/zh-CN/cli/configure.md +38 -0
  483. package/docs/zh-CN/cli/cron.md +43 -0
  484. package/docs/zh-CN/cli/dashboard.md +23 -0
  485. package/docs/zh-CN/cli/devices.md +74 -0
  486. package/docs/zh-CN/cli/directory.md +70 -0
  487. package/docs/zh-CN/cli/dns.md +30 -0
  488. package/docs/zh-CN/cli/docs.md +22 -0
  489. package/docs/zh-CN/cli/doctor.md +48 -0
  490. package/docs/zh-CN/cli/gateway.md +206 -0
  491. package/docs/zh-CN/cli/health.md +28 -0
  492. package/docs/zh-CN/cli/hooks.md +298 -0
  493. package/docs/zh-CN/cli/index.md +1143 -0
  494. package/docs/zh-CN/cli/logs.md +31 -0
  495. package/docs/zh-CN/cli/memory.md +52 -0
  496. package/docs/zh-CN/cli/message.md +246 -0
  497. package/docs/zh-CN/cli/models.md +85 -0
  498. package/docs/zh-CN/cli/node.md +115 -0
  499. package/docs/zh-CN/cli/nodes.md +80 -0
  500. package/docs/zh-CN/cli/onboard.md +164 -0
  501. package/docs/zh-CN/cli/pairing.md +28 -0
  502. package/docs/zh-CN/cli/plugins.md +66 -0
  503. package/docs/zh-CN/cli/reset.md +24 -0
  504. package/docs/zh-CN/cli/sandbox.md +158 -0
  505. package/docs/zh-CN/cli/security.md +33 -0
  506. package/docs/zh-CN/cli/sessions.md +23 -0
  507. package/docs/zh-CN/cli/setup.md +36 -0
  508. package/docs/zh-CN/cli/skills.md +33 -0
  509. package/docs/zh-CN/cli/status.md +33 -0
  510. package/docs/zh-CN/cli/system.md +63 -0
  511. package/docs/zh-CN/cli/tui.md +30 -0
  512. package/docs/zh-CN/cli/uninstall.md +24 -0
  513. package/docs/zh-CN/cli/update.md +101 -0
  514. package/docs/zh-CN/cli/voicecall.md +41 -0
  515. package/docs/zh-CN/cli/webhooks.md +32 -0
  516. package/docs/zh-CN/concepts/agent-loop.md +146 -0
  517. package/docs/zh-CN/concepts/agent-workspace.md +219 -0
  518. package/docs/zh-CN/concepts/agent.md +115 -0
  519. package/docs/zh-CN/concepts/architecture.md +123 -0
  520. package/docs/zh-CN/concepts/compaction.md +67 -0
  521. package/docs/zh-CN/concepts/context.md +168 -0
  522. package/docs/zh-CN/concepts/features.md +59 -0
  523. package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
  524. package/docs/zh-CN/concepts/memory.md +412 -0
  525. package/docs/zh-CN/concepts/messages.md +141 -0
  526. package/docs/zh-CN/concepts/model-failover.md +145 -0
  527. package/docs/zh-CN/concepts/model-providers.md +606 -0
  528. package/docs/zh-CN/concepts/models.md +225 -0
  529. package/docs/zh-CN/concepts/multi-agent.md +372 -0
  530. package/docs/zh-CN/concepts/oauth.md +164 -0
  531. package/docs/zh-CN/concepts/presence.md +99 -0
  532. package/docs/zh-CN/concepts/queue.md +94 -0
  533. package/docs/zh-CN/concepts/retry.md +76 -0
  534. package/docs/zh-CN/concepts/session-pruning.md +129 -0
  535. package/docs/zh-CN/concepts/session-tool.md +200 -0
  536. package/docs/zh-CN/concepts/session.md +166 -0
  537. package/docs/zh-CN/concepts/streaming.md +133 -0
  538. package/docs/zh-CN/concepts/system-prompt.md +101 -0
  539. package/docs/zh-CN/concepts/timezone.md +96 -0
  540. package/docs/zh-CN/concepts/typebox.md +284 -0
  541. package/docs/zh-CN/concepts/typing-indicators.md +74 -0
  542. package/docs/zh-CN/concepts/usage-tracking.md +42 -0
  543. package/docs/zh-CN/date-time.md +129 -0
  544. package/docs/zh-CN/debug/node-issue.md +90 -0
  545. package/docs/zh-CN/diagnostics/flags.md +98 -0
  546. package/docs/zh-CN/gateway/authentication.md +184 -0
  547. package/docs/zh-CN/gateway/background-process.md +100 -0
  548. package/docs/zh-CN/gateway/bonjour.md +174 -0
  549. package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
  550. package/docs/zh-CN/gateway/cli-backends.md +213 -0
  551. package/docs/zh-CN/gateway/configuration-examples.md +587 -0
  552. package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
  553. package/docs/zh-CN/gateway/configuration.md +640 -0
  554. package/docs/zh-CN/gateway/discovery.md +123 -0
  555. package/docs/zh-CN/gateway/doctor.md +238 -0
  556. package/docs/zh-CN/gateway/gateway-lock.md +41 -0
  557. package/docs/zh-CN/gateway/health.md +42 -0
  558. package/docs/zh-CN/gateway/heartbeat.md +274 -0
  559. package/docs/zh-CN/gateway/index.md +335 -0
  560. package/docs/zh-CN/gateway/local-models.md +159 -0
  561. package/docs/zh-CN/gateway/logging.md +114 -0
  562. package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
  563. package/docs/zh-CN/gateway/network-model.md +23 -0
  564. package/docs/zh-CN/gateway/openai-http-api.md +125 -0
  565. package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
  566. package/docs/zh-CN/gateway/pairing.md +99 -0
  567. package/docs/zh-CN/gateway/protocol.md +220 -0
  568. package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
  569. package/docs/zh-CN/gateway/remote.md +133 -0
  570. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
  571. package/docs/zh-CN/gateway/sandboxing.md +188 -0
  572. package/docs/zh-CN/gateway/security/index.md +777 -0
  573. package/docs/zh-CN/gateway/tailscale.md +124 -0
  574. package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
  575. package/docs/zh-CN/gateway/troubleshooting.md +771 -0
  576. package/docs/zh-CN/help/debugging.md +160 -0
  577. package/docs/zh-CN/help/environment.md +88 -0
  578. package/docs/zh-CN/help/faq.md +2640 -0
  579. package/docs/zh-CN/help/index.md +28 -0
  580. package/docs/zh-CN/help/scripts.md +35 -0
  581. package/docs/zh-CN/help/testing.md +375 -0
  582. package/docs/zh-CN/help/troubleshooting.md +104 -0
  583. package/docs/zh-CN/index.md +186 -0
  584. package/docs/zh-CN/install/ansible.md +215 -0
  585. package/docs/zh-CN/install/bun.md +65 -0
  586. package/docs/zh-CN/install/development-channels.md +81 -0
  587. package/docs/zh-CN/install/docker.md +532 -0
  588. package/docs/zh-CN/install/exe-dev.md +133 -0
  589. package/docs/zh-CN/install/fly.md +490 -0
  590. package/docs/zh-CN/install/gcp.md +510 -0
  591. package/docs/zh-CN/install/hetzner.md +337 -0
  592. package/docs/zh-CN/install/index.md +235 -0
  593. package/docs/zh-CN/install/installer.md +422 -0
  594. package/docs/zh-CN/install/macos-vm.md +288 -0
  595. package/docs/zh-CN/install/migrating.md +199 -0
  596. package/docs/zh-CN/install/nix.md +99 -0
  597. package/docs/zh-CN/install/node.md +8 -0
  598. package/docs/zh-CN/install/northflank.mdx +60 -0
  599. package/docs/zh-CN/install/railway.mdx +106 -0
  600. package/docs/zh-CN/install/render.mdx +169 -0
  601. package/docs/zh-CN/install/uninstall.md +135 -0
  602. package/docs/zh-CN/install/updating.md +233 -0
  603. package/docs/zh-CN/logging.md +329 -0
  604. package/docs/zh-CN/network.md +59 -0
  605. package/docs/zh-CN/nodes/audio.md +120 -0
  606. package/docs/zh-CN/nodes/camera.md +162 -0
  607. package/docs/zh-CN/nodes/images.md +79 -0
  608. package/docs/zh-CN/nodes/index.md +348 -0
  609. package/docs/zh-CN/nodes/location-command.md +120 -0
  610. package/docs/zh-CN/nodes/media-understanding.md +380 -0
  611. package/docs/zh-CN/nodes/talk.md +97 -0
  612. package/docs/zh-CN/nodes/troubleshooting.md +8 -0
  613. package/docs/zh-CN/nodes/voicewake.md +72 -0
  614. package/docs/zh-CN/perplexity.md +102 -0
  615. package/docs/zh-CN/pi-dev.md +77 -0
  616. package/docs/zh-CN/pi.md +619 -0
  617. package/docs/zh-CN/platforms/android.md +155 -0
  618. package/docs/zh-CN/platforms/digitalocean.md +273 -0
  619. package/docs/zh-CN/platforms/index.md +60 -0
  620. package/docs/zh-CN/platforms/ios.md +114 -0
  621. package/docs/zh-CN/platforms/linux.md +100 -0
  622. package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
  623. package/docs/zh-CN/platforms/mac/canvas.md +128 -0
  624. package/docs/zh-CN/platforms/mac/child-process.md +73 -0
  625. package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
  626. package/docs/zh-CN/platforms/mac/health.md +41 -0
  627. package/docs/zh-CN/platforms/mac/icon.md +38 -0
  628. package/docs/zh-CN/platforms/mac/logging.md +64 -0
  629. package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
  630. package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
  631. package/docs/zh-CN/platforms/mac/permissions.md +46 -0
  632. package/docs/zh-CN/platforms/mac/remote.md +90 -0
  633. package/docs/zh-CN/platforms/mac/signing.md +54 -0
  634. package/docs/zh-CN/platforms/mac/skills.md +40 -0
  635. package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
  636. package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
  637. package/docs/zh-CN/platforms/mac/webchat.md +43 -0
  638. package/docs/zh-CN/platforms/mac/xpc.md +68 -0
  639. package/docs/zh-CN/platforms/macos.md +193 -0
  640. package/docs/zh-CN/platforms/oracle.md +310 -0
  641. package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
  642. package/docs/zh-CN/platforms/windows.md +247 -0
  643. package/docs/zh-CN/plugins/agent-tools.md +99 -0
  644. package/docs/zh-CN/plugins/manifest.md +68 -0
  645. package/docs/zh-CN/plugins/voice-call.md +250 -0
  646. package/docs/zh-CN/plugins/zalouser.md +88 -0
  647. package/docs/zh-CN/prose.md +141 -0
  648. package/docs/zh-CN/providers/anthropic.md +265 -0
  649. package/docs/zh-CN/providers/bedrock.md +170 -0
  650. package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
  651. package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
  652. package/docs/zh-CN/providers/deepgram.md +97 -0
  653. package/docs/zh-CN/providers/github-copilot.md +67 -0
  654. package/docs/zh-CN/providers/glm.md +50 -0
  655. package/docs/zh-CN/providers/huggingface.md +216 -0
  656. package/docs/zh-CN/providers/index.md +69 -0
  657. package/docs/zh-CN/providers/kilocode.md +80 -0
  658. package/docs/zh-CN/providers/litellm.md +160 -0
  659. package/docs/zh-CN/providers/minimax.md +222 -0
  660. package/docs/zh-CN/providers/mistral.md +61 -0
  661. package/docs/zh-CN/providers/models.md +51 -0
  662. package/docs/zh-CN/providers/moonshot.md +182 -0
  663. package/docs/zh-CN/providers/nvidia.md +62 -0
  664. package/docs/zh-CN/providers/ollama.md +359 -0
  665. package/docs/zh-CN/providers/openai.md +308 -0
  666. package/docs/zh-CN/providers/opencode-go.md +52 -0
  667. package/docs/zh-CN/providers/opencode.md +71 -0
  668. package/docs/zh-CN/providers/openrouter.md +44 -0
  669. package/docs/zh-CN/providers/qianfan.md +45 -0
  670. package/docs/zh-CN/providers/qwen.md +55 -0
  671. package/docs/zh-CN/providers/sglang.md +111 -0
  672. package/docs/zh-CN/providers/synthetic.md +106 -0
  673. package/docs/zh-CN/providers/together.md +72 -0
  674. package/docs/zh-CN/providers/venice.md +289 -0
  675. package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
  676. package/docs/zh-CN/providers/xiaomi.md +93 -0
  677. package/docs/zh-CN/providers/zai.md +53 -0
  678. package/docs/zh-CN/reference/AGENTS.default.md +131 -0
  679. package/docs/zh-CN/reference/RELEASING.md +48 -0
  680. package/docs/zh-CN/reference/api-usage-costs.md +141 -0
  681. package/docs/zh-CN/reference/credits.md +34 -0
  682. package/docs/zh-CN/reference/device-models.md +54 -0
  683. package/docs/zh-CN/reference/rpc.md +48 -0
  684. package/docs/zh-CN/reference/session-management-compaction.md +287 -0
  685. package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
  686. package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
  687. package/docs/zh-CN/reference/templates/BOOT.md +17 -0
  688. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
  689. package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
  690. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
  691. package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
  692. package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
  693. package/docs/zh-CN/reference/templates/SOUL.md +49 -0
  694. package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
  695. package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
  696. package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
  697. package/docs/zh-CN/reference/templates/USER.md +30 -0
  698. package/docs/zh-CN/reference/test.md +57 -0
  699. package/docs/zh-CN/reference/token-use.md +119 -0
  700. package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
  701. package/docs/zh-CN/reference/wizard.md +242 -0
  702. package/docs/zh-CN/security/formal-verification.md +171 -0
  703. package/docs/zh-CN/start/bootstrapping.md +9 -0
  704. package/docs/zh-CN/start/docs-directory.md +70 -0
  705. package/docs/zh-CN/start/getting-started.md +143 -0
  706. package/docs/zh-CN/start/hubs.md +194 -0
  707. package/docs/zh-CN/start/lore.md +226 -0
  708. package/docs/zh-CN/start/onboarding-overview.md +58 -0
  709. package/docs/zh-CN/start/onboarding.md +105 -0
  710. package/docs/zh-CN/start/openclaw.md +248 -0
  711. package/docs/zh-CN/start/quickstart.md +88 -0
  712. package/docs/zh-CN/start/setup.md +153 -0
  713. package/docs/zh-CN/start/showcase.md +423 -0
  714. package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
  715. package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
  716. package/docs/zh-CN/start/wizard.md +132 -0
  717. package/docs/zh-CN/tools/agent-send.md +59 -0
  718. package/docs/zh-CN/tools/apply-patch.md +57 -0
  719. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
  720. package/docs/zh-CN/tools/browser-login.md +75 -0
  721. package/docs/zh-CN/tools/browser.md +553 -0
  722. package/docs/zh-CN/tools/chrome-extension.md +183 -0
  723. package/docs/zh-CN/tools/clawhub.md +209 -0
  724. package/docs/zh-CN/tools/creating-skills.md +61 -0
  725. package/docs/zh-CN/tools/elevated.md +64 -0
  726. package/docs/zh-CN/tools/exec-approvals.md +234 -0
  727. package/docs/zh-CN/tools/exec.md +169 -0
  728. package/docs/zh-CN/tools/firecrawl.md +68 -0
  729. package/docs/zh-CN/tools/index.md +515 -0
  730. package/docs/zh-CN/tools/llm-task.md +117 -0
  731. package/docs/zh-CN/tools/lobster.md +349 -0
  732. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
  733. package/docs/zh-CN/tools/plugin.md +1612 -0
  734. package/docs/zh-CN/tools/reactions.md +29 -0
  735. package/docs/zh-CN/tools/skills-config.md +78 -0
  736. package/docs/zh-CN/tools/skills.md +279 -0
  737. package/docs/zh-CN/tools/slash-commands.md +205 -0
  738. package/docs/zh-CN/tools/subagents.md +167 -0
  739. package/docs/zh-CN/tools/thinking.md +80 -0
  740. package/docs/zh-CN/tools/web.md +289 -0
  741. package/docs/zh-CN/tts.md +375 -0
  742. package/docs/zh-CN/vps.md +47 -0
  743. package/docs/zh-CN/web/control-ui.md +191 -0
  744. package/docs/zh-CN/web/dashboard.md +53 -0
  745. package/docs/zh-CN/web/index.md +118 -0
  746. package/docs/zh-CN/web/tui.md +166 -0
  747. package/docs/zh-CN/web/webchat.md +56 -0
  748. package/package.json +841 -0
  749. package/quantumclaw.mjs +135 -0
  750. package/skills/1password/SKILL.md +70 -0
  751. package/skills/1password/references/cli-examples.md +29 -0
  752. package/skills/1password/references/get-started.md +17 -0
  753. package/skills/apple-notes/SKILL.md +77 -0
  754. package/skills/apple-reminders/SKILL.md +118 -0
  755. package/skills/bear-notes/SKILL.md +107 -0
  756. package/skills/blogwatcher/SKILL.md +69 -0
  757. package/skills/blucli/SKILL.md +47 -0
  758. package/skills/bluebubbles/SKILL.md +131 -0
  759. package/skills/camsnap/SKILL.md +45 -0
  760. package/skills/canvas/SKILL.md +198 -0
  761. package/skills/clawhub/SKILL.md +77 -0
  762. package/skills/coding-agent/SKILL.md +295 -0
  763. package/skills/discord/SKILL.md +197 -0
  764. package/skills/eightctl/SKILL.md +50 -0
  765. package/skills/gemini/SKILL.md +43 -0
  766. package/skills/gh-issues/SKILL.md +865 -0
  767. package/skills/gifgrep/SKILL.md +79 -0
  768. package/skills/github/SKILL.md +163 -0
  769. package/skills/gog/SKILL.md +116 -0
  770. package/skills/goplaces/SKILL.md +52 -0
  771. package/skills/healthcheck/SKILL.md +245 -0
  772. package/skills/himalaya/SKILL.md +257 -0
  773. package/skills/himalaya/references/configuration.md +184 -0
  774. package/skills/himalaya/references/message-composition.md +199 -0
  775. package/skills/imsg/SKILL.md +122 -0
  776. package/skills/mcporter/SKILL.md +61 -0
  777. package/skills/model-usage/SKILL.md +69 -0
  778. package/skills/model-usage/references/codexbar-cli.md +33 -0
  779. package/skills/model-usage/scripts/model_usage.py +320 -0
  780. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  781. package/skills/nano-pdf/SKILL.md +38 -0
  782. package/skills/node-connect/SKILL.md +142 -0
  783. package/skills/notion/SKILL.md +174 -0
  784. package/skills/obsidian/SKILL.md +81 -0
  785. package/skills/openai-image-gen/SKILL.md +92 -0
  786. package/skills/openai-image-gen/scripts/gen.py +328 -0
  787. package/skills/openai-image-gen/scripts/test_gen.py +140 -0
  788. package/skills/openai-whisper/SKILL.md +38 -0
  789. package/skills/openai-whisper-api/SKILL.md +52 -0
  790. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  791. package/skills/openhue/SKILL.md +112 -0
  792. package/skills/oracle/SKILL.md +125 -0
  793. package/skills/ordercli/SKILL.md +78 -0
  794. package/skills/peekaboo/SKILL.md +190 -0
  795. package/skills/sag/SKILL.md +87 -0
  796. package/skills/session-logs/SKILL.md +115 -0
  797. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  798. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  799. package/skills/skill-creator/SKILL.md +372 -0
  800. package/skills/skill-creator/license.txt +202 -0
  801. package/skills/skill-creator/scripts/init_skill.py +378 -0
  802. package/skills/skill-creator/scripts/package_skill.py +139 -0
  803. package/skills/skill-creator/scripts/quick_validate.py +159 -0
  804. package/skills/skill-creator/scripts/test_package_skill.py +160 -0
  805. package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
  806. package/skills/slack/SKILL.md +144 -0
  807. package/skills/songsee/SKILL.md +49 -0
  808. package/skills/sonoscli/SKILL.md +65 -0
  809. package/skills/spotify-player/SKILL.md +64 -0
  810. package/skills/summarize/SKILL.md +87 -0
  811. package/skills/things-mac/SKILL.md +86 -0
  812. package/skills/tmux/SKILL.md +153 -0
  813. package/skills/tmux/scripts/find-sessions.sh +112 -0
  814. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  815. package/skills/trello/SKILL.md +95 -0
  816. package/skills/video-frames/SKILL.md +46 -0
  817. package/skills/video-frames/scripts/frame.sh +81 -0
  818. package/skills/voice-call/SKILL.md +45 -0
  819. package/skills/wacli/SKILL.md +72 -0
  820. package/skills/weather/SKILL.md +112 -0
  821. package/skills/xurl/SKILL.md +461 -0
@@ -0,0 +1,711 @@
1
+ ---
2
+ title: "Memory configuration reference"
3
+ summary: "Full configuration reference for QuantumClaw memory search, embedding providers, QMD backend, hybrid search, and multimodal memory"
4
+ read_when:
5
+ - You want to configure memory search providers or embedding models
6
+ - You want to set up the QMD backend
7
+ - You want to tune hybrid search, MMR, or temporal decay
8
+ - You want to enable multimodal memory indexing
9
+ ---
10
+
11
+ # Memory configuration reference
12
+
13
+ This page covers the full configuration surface for QuantumClaw memory search. For
14
+ the conceptual overview (file layout, memory tools, when to write memory, and the
15
+ automatic flush), see [Memory](/concepts/memory).
16
+
17
+ ## Memory search defaults
18
+
19
+ - Enabled by default.
20
+ - Watches memory files for changes (debounced).
21
+ - Configure memory search under `agents.defaults.memorySearch` (not top-level
22
+ `memorySearch`).
23
+ - Uses remote embeddings by default. If `memorySearch.provider` is not set, QuantumClaw auto-selects:
24
+ 1. `local` if a `memorySearch.local.modelPath` is configured and the file exists.
25
+ 2. `openai` if an OpenAI key can be resolved.
26
+ 3. `gemini` if a Gemini key can be resolved.
27
+ 4. `voyage` if a Voyage key can be resolved.
28
+ 5. `mistral` if a Mistral key can be resolved.
29
+ 6. Otherwise memory search stays disabled until configured.
30
+ - Local mode uses node-llama-cpp and may require `pnpm approve-builds`.
31
+ - Uses sqlite-vec (when available) to accelerate vector search inside SQLite.
32
+ - `memorySearch.provider = "ollama"` is also supported for local/self-hosted
33
+ Ollama embeddings (`/api/embeddings`), but it is not auto-selected.
34
+
35
+ Remote embeddings **require** an API key for the embedding provider. QuantumClaw
36
+ resolves keys from auth profiles, `models.providers.*.apiKey`, or environment
37
+ variables. Codex OAuth only covers chat/completions and does **not** satisfy
38
+ embeddings for memory search. For Gemini, use `GEMINI_API_KEY` or
39
+ `models.providers.google.apiKey`. For Voyage, use `VOYAGE_API_KEY` or
40
+ `models.providers.voyage.apiKey`. For Mistral, use `MISTRAL_API_KEY` or
41
+ `models.providers.mistral.apiKey`. Ollama typically does not require a real API
42
+ key (a placeholder like `OLLAMA_API_KEY=ollama-local` is enough when needed by
43
+ local policy).
44
+ When using a custom OpenAI-compatible endpoint,
45
+ set `memorySearch.remote.apiKey` (and optional `memorySearch.remote.headers`).
46
+
47
+ ## QMD backend (experimental)
48
+
49
+ Set `memory.backend = "qmd"` to swap the built-in SQLite indexer for
50
+ [QMD](https://github.com/tobi/qmd): a local-first search sidecar that combines
51
+ BM25 + vectors + reranking. Markdown stays the source of truth; QuantumClaw shells
52
+ out to QMD for retrieval. Key points:
53
+
54
+ ### Prerequisites
55
+
56
+ - Disabled by default. Opt in per-config (`memory.backend = "qmd"`).
57
+ - Install the QMD CLI separately (`bun install -g https://github.com/tobi/qmd` or grab
58
+ a release) and make sure the `qmd` binary is on the gateway's `PATH`.
59
+ - QMD needs an SQLite build that allows extensions (`brew install sqlite` on
60
+ macOS).
61
+ - QMD runs fully locally via Bun + `node-llama-cpp` and auto-downloads GGUF
62
+ models from HuggingFace on first use (no separate Ollama daemon required).
63
+ - The gateway runs QMD in a self-contained XDG home under
64
+ `~/.quantumclaw/agents/<agentId>/qmd/` by setting `XDG_CONFIG_HOME` and
65
+ `XDG_CACHE_HOME`.
66
+ - OS support: macOS and Linux work out of the box once Bun + SQLite are
67
+ installed. Windows is best supported via WSL2.
68
+
69
+ ### How the sidecar runs
70
+
71
+ - The gateway writes a self-contained QMD home under
72
+ `~/.quantumclaw/agents/<agentId>/qmd/` (config + cache + sqlite DB).
73
+ - Collections are created via `qmd collection add` from `memory.qmd.paths`
74
+ (plus default workspace memory files), then `qmd update` + `qmd embed` run
75
+ on boot and on a configurable interval (`memory.qmd.update.interval`,
76
+ default 5 m).
77
+ - The gateway now initializes the QMD manager on startup, so periodic update
78
+ timers are armed even before the first `memory_search` call.
79
+ - Boot refresh now runs in the background by default so chat startup is not
80
+ blocked; set `memory.qmd.update.waitForBootSync = true` to keep the previous
81
+ blocking behavior.
82
+ - Searches run via `memory.qmd.searchMode` (default `qmd search --json`; also
83
+ supports `vsearch` and `query`). If the selected mode rejects flags on your
84
+ QMD build, QuantumClaw retries with `qmd query`. If QMD fails or the binary is
85
+ missing, QuantumClaw automatically falls back to the builtin SQLite manager so
86
+ memory tools keep working.
87
+ - QuantumClaw does not expose QMD embed batch-size tuning today; batch behavior is
88
+ controlled by QMD itself.
89
+ - **First search may be slow**: QMD may download local GGUF models (reranker/query
90
+ expansion) on the first `qmd query` run.
91
+ - QuantumClaw sets `XDG_CONFIG_HOME`/`XDG_CACHE_HOME` automatically when it runs QMD.
92
+ - If you want to pre-download models manually (and warm the same index QuantumClaw
93
+ uses), run a one-off query with the agent's XDG dirs.
94
+
95
+ QuantumClaw's QMD state lives under your **state dir** (defaults to `~/.quantumclaw`).
96
+ You can point `qmd` at the exact same index by exporting the same XDG vars
97
+ QuantumClaw uses:
98
+
99
+ ```bash
100
+ # Pick the same state dir QuantumClaw uses
101
+ STATE_DIR="${QUANTUMCLAW_STATE_DIR:-$HOME/.quantumclaw}"
102
+
103
+ export XDG_CONFIG_HOME="$STATE_DIR/agents/main/qmd/xdg-config"
104
+ export XDG_CACHE_HOME="$STATE_DIR/agents/main/qmd/xdg-cache"
105
+
106
+ # (Optional) force an index refresh + embeddings
107
+ qmd update
108
+ qmd embed
109
+
110
+ # Warm up / trigger first-time model downloads
111
+ qmd query "test" -c memory-root --json >/dev/null 2>&1
112
+ ```
113
+
114
+ ### Config surface (`memory.qmd.*`)
115
+
116
+ - `command` (default `qmd`): override the executable path.
117
+ - `searchMode` (default `search`): pick which QMD command backs
118
+ `memory_search` (`search`, `vsearch`, `query`).
119
+ - `includeDefaultMemory` (default `true`): auto-index `MEMORY.md` + `memory/**/*.md`.
120
+ - `paths[]`: add extra directories/files (`path`, optional `pattern`, optional
121
+ stable `name`).
122
+ - `sessions`: opt into session JSONL indexing (`enabled`, `retentionDays`,
123
+ `exportDir`).
124
+ - `update`: controls refresh cadence and maintenance execution:
125
+ (`interval`, `debounceMs`, `onBoot`, `waitForBootSync`, `embedInterval`,
126
+ `commandTimeoutMs`, `updateTimeoutMs`, `embedTimeoutMs`).
127
+ - `limits`: clamp recall payload (`maxResults`, `maxSnippetChars`,
128
+ `maxInjectedChars`, `timeoutMs`).
129
+ - `scope`: same schema as [`session.sendPolicy`](/gateway/configuration-reference#session).
130
+ Default is DM-only (`deny` all, `allow` direct chats); loosen it to surface QMD
131
+ hits in groups/channels.
132
+ - `match.keyPrefix` matches the **normalized** session key (lowercased, with any
133
+ leading `agent:<id>:` stripped). Example: `discord:channel:`.
134
+ - `match.rawKeyPrefix` matches the **raw** session key (lowercased), including
135
+ `agent:<id>:`. Example: `agent:main:discord:`.
136
+ - Legacy: `match.keyPrefix: "agent:..."` is still treated as a raw-key prefix,
137
+ but prefer `rawKeyPrefix` for clarity.
138
+ - When `scope` denies a search, QuantumClaw logs a warning with the derived
139
+ `channel`/`chatType` so empty results are easier to debug.
140
+ - Snippets sourced outside the workspace show up as
141
+ `qmd/<collection>/<relative-path>` in `memory_search` results; `memory_get`
142
+ understands that prefix and reads from the configured QMD collection root.
143
+ - When `memory.qmd.sessions.enabled = true`, QuantumClaw exports sanitized session
144
+ transcripts (User/Assistant turns) into a dedicated QMD collection under
145
+ `~/.quantumclaw/agents/<id>/qmd/sessions/`, so `memory_search` can recall recent
146
+ conversations without touching the builtin SQLite index.
147
+ - `memory_search` snippets now include a `Source: <path#line>` footer when
148
+ `memory.citations` is `auto`/`on`; set `memory.citations = "off"` to keep
149
+ the path metadata internal (the agent still receives the path for
150
+ `memory_get`, but the snippet text omits the footer and the system prompt
151
+ warns the agent not to cite it).
152
+
153
+ ### QMD example
154
+
155
+ ```json5
156
+ memory: {
157
+ backend: "qmd",
158
+ citations: "auto",
159
+ qmd: {
160
+ includeDefaultMemory: true,
161
+ update: { interval: "5m", debounceMs: 15000 },
162
+ limits: { maxResults: 6, timeoutMs: 4000 },
163
+ scope: {
164
+ default: "deny",
165
+ rules: [
166
+ { action: "allow", match: { chatType: "direct" } },
167
+ // Normalized session-key prefix (strips `agent:<id>:`).
168
+ { action: "deny", match: { keyPrefix: "discord:channel:" } },
169
+ // Raw session-key prefix (includes `agent:<id>:`).
170
+ { action: "deny", match: { rawKeyPrefix: "agent:main:discord:" } },
171
+ ]
172
+ },
173
+ paths: [
174
+ { name: "docs", path: "~/notes", pattern: "**/*.md" }
175
+ ]
176
+ }
177
+ }
178
+ ```
179
+
180
+ ### Citations and fallback
181
+
182
+ - `memory.citations` applies regardless of backend (`auto`/`on`/`off`).
183
+ - When `qmd` runs, we tag `status().backend = "qmd"` so diagnostics show which
184
+ engine served the results. If the QMD subprocess exits or JSON output can't be
185
+ parsed, the search manager logs a warning and returns the builtin provider
186
+ (existing Markdown embeddings) until QMD recovers.
187
+
188
+ ## Additional memory paths
189
+
190
+ If you want to index Markdown files outside the default workspace layout, add
191
+ explicit paths:
192
+
193
+ ```json5
194
+ agents: {
195
+ defaults: {
196
+ memorySearch: {
197
+ extraPaths: ["../team-docs", "/srv/shared-notes/overview.md"]
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ Notes:
204
+
205
+ - Paths can be absolute or workspace-relative.
206
+ - Directories are scanned recursively for `.md` files.
207
+ - By default, only Markdown files are indexed.
208
+ - If `memorySearch.multimodal.enabled = true`, QuantumClaw also indexes supported image/audio files under `extraPaths` only. Default memory roots (`MEMORY.md`, `memory.md`, `memory/**/*.md`) stay Markdown-only.
209
+ - Symlinks are ignored (files or directories).
210
+
211
+ ## Multimodal memory files (Gemini image + audio)
212
+
213
+ QuantumClaw can index image and audio files from `memorySearch.extraPaths` when using Gemini embedding 2:
214
+
215
+ ```json5
216
+ agents: {
217
+ defaults: {
218
+ memorySearch: {
219
+ provider: "gemini",
220
+ model: "gemini-embedding-2-preview",
221
+ extraPaths: ["assets/reference", "voice-notes"],
222
+ multimodal: {
223
+ enabled: true,
224
+ modalities: ["image", "audio"], // or ["all"]
225
+ maxFileBytes: 10000000
226
+ },
227
+ remote: {
228
+ apiKey: "YOUR_GEMINI_API_KEY"
229
+ }
230
+ }
231
+ }
232
+ }
233
+ ```
234
+
235
+ Notes:
236
+
237
+ - Multimodal memory is currently supported only for `gemini-embedding-2-preview`.
238
+ - Multimodal indexing applies only to files discovered through `memorySearch.extraPaths`.
239
+ - Supported modalities in this phase: image and audio.
240
+ - `memorySearch.fallback` must stay `"none"` while multimodal memory is enabled.
241
+ - Matching image/audio file bytes are uploaded to the configured Gemini embedding endpoint during indexing.
242
+ - Supported image extensions: `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif`.
243
+ - Supported audio extensions: `.mp3`, `.wav`, `.ogg`, `.opus`, `.m4a`, `.aac`, `.flac`.
244
+ - Search queries remain text, but Gemini can compare those text queries against indexed image/audio embeddings.
245
+ - `memory_get` still reads Markdown only; binary files are searchable but not returned as raw file contents.
246
+
247
+ ## Gemini embeddings (native)
248
+
249
+ Set the provider to `gemini` to use the Gemini embeddings API directly:
250
+
251
+ ```json5
252
+ agents: {
253
+ defaults: {
254
+ memorySearch: {
255
+ provider: "gemini",
256
+ model: "gemini-embedding-001",
257
+ remote: {
258
+ apiKey: "YOUR_GEMINI_API_KEY"
259
+ }
260
+ }
261
+ }
262
+ }
263
+ ```
264
+
265
+ Notes:
266
+
267
+ - `remote.baseUrl` is optional (defaults to the Gemini API base URL).
268
+ - `remote.headers` lets you add extra headers if needed.
269
+ - Default model: `gemini-embedding-001`.
270
+ - `gemini-embedding-2-preview` is also supported: 8192 token limit and configurable dimensions (768 / 1536 / 3072, default 3072).
271
+
272
+ ### Gemini Embedding 2 (preview)
273
+
274
+ ```json5
275
+ agents: {
276
+ defaults: {
277
+ memorySearch: {
278
+ provider: "gemini",
279
+ model: "gemini-embedding-2-preview",
280
+ outputDimensionality: 3072, // optional: 768, 1536, or 3072 (default)
281
+ remote: {
282
+ apiKey: "YOUR_GEMINI_API_KEY"
283
+ }
284
+ }
285
+ }
286
+ }
287
+ ```
288
+
289
+ > **Re-index required:** Switching from `gemini-embedding-001` (768 dimensions)
290
+ > to `gemini-embedding-2-preview` (3072 dimensions) changes the vector size. The same is true if you
291
+ > change `outputDimensionality` between 768, 1536, and 3072.
292
+ > QuantumClaw will automatically reindex when it detects a model or dimension change.
293
+
294
+ ## Custom OpenAI-compatible endpoint
295
+
296
+ If you want to use a custom OpenAI-compatible endpoint (OpenRouter, vLLM, or a proxy),
297
+ you can use the `remote` configuration with the OpenAI provider:
298
+
299
+ ```json5
300
+ agents: {
301
+ defaults: {
302
+ memorySearch: {
303
+ provider: "openai",
304
+ model: "text-embedding-3-small",
305
+ remote: {
306
+ baseUrl: "https://api.example.com/v1/",
307
+ apiKey: "YOUR_OPENAI_COMPAT_API_KEY",
308
+ headers: { "X-Custom-Header": "value" }
309
+ }
310
+ }
311
+ }
312
+ }
313
+ ```
314
+
315
+ If you don't want to set an API key, use `memorySearch.provider = "local"` or set
316
+ `memorySearch.fallback = "none"`.
317
+
318
+ ### Fallbacks
319
+
320
+ - `memorySearch.fallback` can be `openai`, `gemini`, `voyage`, `mistral`, `ollama`, `local`, or `none`.
321
+ - The fallback provider is only used when the primary embedding provider fails.
322
+
323
+ ### Batch indexing (OpenAI + Gemini + Voyage)
324
+
325
+ - Disabled by default. Set `agents.defaults.memorySearch.remote.batch.enabled = true` to enable for large-corpus indexing (OpenAI, Gemini, and Voyage).
326
+ - Default behavior waits for batch completion; tune `remote.batch.wait`, `remote.batch.pollIntervalMs`, and `remote.batch.timeoutMinutes` if needed.
327
+ - Set `remote.batch.concurrency` to control how many batch jobs we submit in parallel (default: 2).
328
+ - Batch mode applies when `memorySearch.provider = "openai"` or `"gemini"` and uses the corresponding API key.
329
+ - Gemini batch jobs use the async embeddings batch endpoint and require Gemini Batch API availability.
330
+
331
+ Why OpenAI batch is fast and cheap:
332
+
333
+ - For large backfills, OpenAI is typically the fastest option we support because we can submit many embedding requests in a single batch job and let OpenAI process them asynchronously.
334
+ - OpenAI offers discounted pricing for Batch API workloads, so large indexing runs are usually cheaper than sending the same requests synchronously.
335
+ - See the OpenAI Batch API docs and pricing for details:
336
+ - [https://platform.openai.com/docs/api-reference/batch](https://platform.openai.com/docs/api-reference/batch)
337
+ - [https://platform.openai.com/pricing](https://platform.openai.com/pricing)
338
+
339
+ Config example:
340
+
341
+ ```json5
342
+ agents: {
343
+ defaults: {
344
+ memorySearch: {
345
+ provider: "openai",
346
+ model: "text-embedding-3-small",
347
+ fallback: "openai",
348
+ remote: {
349
+ batch: { enabled: true, concurrency: 2 }
350
+ },
351
+ sync: { watch: true }
352
+ }
353
+ }
354
+ }
355
+ ```
356
+
357
+ ## How the memory tools work
358
+
359
+ - `memory_search` semantically searches Markdown chunks (~400 token target, 80-token overlap) from `MEMORY.md` + `memory/**/*.md`. It returns snippet text (capped ~700 chars), file path, line range, score, provider/model, and whether we fell back from local to remote embeddings. No full file payload is returned.
360
+ - `memory_get` reads a specific memory Markdown file (workspace-relative), optionally from a starting line and for N lines. Paths outside `MEMORY.md` / `memory/` are rejected.
361
+ - Both tools are enabled only when `memorySearch.enabled` resolves true for the agent.
362
+
363
+ ## What gets indexed (and when)
364
+
365
+ - File type: Markdown only (`MEMORY.md`, `memory/**/*.md`).
366
+ - Index storage: per-agent SQLite at `~/.quantumclaw/memory/<agentId>.sqlite` (configurable via `agents.defaults.memorySearch.store.path`, supports `{agentId}` token).
367
+ - Freshness: watcher on `MEMORY.md` + `memory/` marks the index dirty (debounce 1.5s). Sync is scheduled on session start, on search, or on an interval and runs asynchronously. Session transcripts use delta thresholds to trigger background sync.
368
+ - Reindex triggers: the index stores the embedding **provider/model + endpoint fingerprint + chunking params**. If any of those change, QuantumClaw automatically resets and reindexes the entire store.
369
+
370
+ ## Hybrid search (BM25 + vector)
371
+
372
+ When enabled, QuantumClaw combines:
373
+
374
+ - **Vector similarity** (semantic match, wording can differ)
375
+ - **BM25 keyword relevance** (exact tokens like IDs, env vars, code symbols)
376
+
377
+ If full-text search is unavailable on your platform, QuantumClaw falls back to vector-only search.
378
+
379
+ ### Why hybrid
380
+
381
+ Vector search is great at "this means the same thing":
382
+
383
+ - "Mac Studio gateway host" vs "the machine running the gateway"
384
+ - "debounce file updates" vs "avoid indexing on every write"
385
+
386
+ But it can be weak at exact, high-signal tokens:
387
+
388
+ - IDs (`a828e60`, `b3b9895a...`)
389
+ - code symbols (`memorySearch.query.hybrid`)
390
+ - error strings ("sqlite-vec unavailable")
391
+
392
+ BM25 (full-text) is the opposite: strong at exact tokens, weaker at paraphrases.
393
+ Hybrid search is the pragmatic middle ground: **use both retrieval signals** so you get
394
+ good results for both "natural language" queries and "needle in a haystack" queries.
395
+
396
+ ### How we merge results (the current design)
397
+
398
+ Implementation sketch:
399
+
400
+ 1. Retrieve a candidate pool from both sides:
401
+
402
+ - **Vector**: top `maxResults * candidateMultiplier` by cosine similarity.
403
+ - **BM25**: top `maxResults * candidateMultiplier` by FTS5 BM25 rank (lower is better).
404
+
405
+ 2. Convert BM25 rank into a 0..1-ish score:
406
+
407
+ - `textScore = 1 / (1 + max(0, bm25Rank))`
408
+
409
+ 3. Union candidates by chunk id and compute a weighted score:
410
+
411
+ - `finalScore = vectorWeight * vectorScore + textWeight * textScore`
412
+
413
+ Notes:
414
+
415
+ - `vectorWeight` + `textWeight` is normalized to 1.0 in config resolution, so weights behave as percentages.
416
+ - If embeddings are unavailable (or the provider returns a zero-vector), we still run BM25 and return keyword matches.
417
+ - If FTS5 can't be created, we keep vector-only search (no hard failure).
418
+
419
+ This isn't "IR-theory perfect", but it's simple, fast, and tends to improve recall/precision on real notes.
420
+ If we want to get fancier later, common next steps are Reciprocal Rank Fusion (RRF) or score normalization
421
+ (min/max or z-score) before mixing.
422
+
423
+ ### Post-processing pipeline
424
+
425
+ After merging vector and keyword scores, two optional post-processing stages
426
+ refine the result list before it reaches the agent:
427
+
428
+ ```
429
+ Vector + Keyword -> Weighted Merge -> Temporal Decay -> Sort -> MMR -> Top-K Results
430
+ ```
431
+
432
+ Both stages are **off by default** and can be enabled independently.
433
+
434
+ ### MMR re-ranking (diversity)
435
+
436
+ When hybrid search returns results, multiple chunks may contain similar or overlapping content.
437
+ For example, searching for "home network setup" might return five nearly identical snippets
438
+ from different daily notes that all mention the same router configuration.
439
+
440
+ **MMR (Maximal Marginal Relevance)** re-ranks the results to balance relevance with diversity,
441
+ ensuring the top results cover different aspects of the query instead of repeating the same information.
442
+
443
+ How it works:
444
+
445
+ 1. Results are scored by their original relevance (vector + BM25 weighted score).
446
+ 2. MMR iteratively selects results that maximize: `lambda x relevance - (1-lambda) x max_similarity_to_selected`.
447
+ 3. Similarity between results is measured using Jaccard text similarity on tokenized content.
448
+
449
+ The `lambda` parameter controls the trade-off:
450
+
451
+ - `lambda = 1.0` -- pure relevance (no diversity penalty)
452
+ - `lambda = 0.0` -- maximum diversity (ignores relevance)
453
+ - Default: `0.7` (balanced, slight relevance bias)
454
+
455
+ **Example -- query: "home network setup"**
456
+
457
+ Given these memory files:
458
+
459
+ ```
460
+ memory/2026-02-10.md -> "Configured Omada router, set VLAN 10 for IoT devices"
461
+ memory/2026-02-08.md -> "Configured Omada router, moved IoT to VLAN 10"
462
+ memory/2026-02-05.md -> "Set up AdGuard DNS on 192.168.10.2"
463
+ memory/network.md -> "Router: Omada ER605, AdGuard: 192.168.10.2, VLAN 10: IoT"
464
+ ```
465
+
466
+ Without MMR -- top 3 results:
467
+
468
+ ```
469
+ 1. memory/2026-02-10.md (score: 0.92) <- router + VLAN
470
+ 2. memory/2026-02-08.md (score: 0.89) <- router + VLAN (near-duplicate!)
471
+ 3. memory/network.md (score: 0.85) <- reference doc
472
+ ```
473
+
474
+ With MMR (lambda=0.7) -- top 3 results:
475
+
476
+ ```
477
+ 1. memory/2026-02-10.md (score: 0.92) <- router + VLAN
478
+ 2. memory/network.md (score: 0.85) <- reference doc (diverse!)
479
+ 3. memory/2026-02-05.md (score: 0.78) <- AdGuard DNS (diverse!)
480
+ ```
481
+
482
+ The near-duplicate from Feb 8 drops out, and the agent gets three distinct pieces of information.
483
+
484
+ **When to enable:** If you notice `memory_search` returning redundant or near-duplicate snippets,
485
+ especially with daily notes that often repeat similar information across days.
486
+
487
+ ### Temporal decay (recency boost)
488
+
489
+ Agents with daily notes accumulate hundreds of dated files over time. Without decay,
490
+ a well-worded note from six months ago can outrank yesterday's update on the same topic.
491
+
492
+ **Temporal decay** applies an exponential multiplier to scores based on the age of each result,
493
+ so recent memories naturally rank higher while old ones fade:
494
+
495
+ ```
496
+ decayedScore = score x e^(-lambda x ageInDays)
497
+ ```
498
+
499
+ where `lambda = ln(2) / halfLifeDays`.
500
+
501
+ With the default half-life of 30 days:
502
+
503
+ - Today's notes: **100%** of original score
504
+ - 7 days ago: **~84%**
505
+ - 30 days ago: **50%**
506
+ - 90 days ago: **12.5%**
507
+ - 180 days ago: **~1.6%**
508
+
509
+ **Evergreen files are never decayed:**
510
+
511
+ - `MEMORY.md` (root memory file)
512
+ - Non-dated files in `memory/` (e.g., `memory/projects.md`, `memory/network.md`)
513
+ - These contain durable reference information that should always rank normally.
514
+
515
+ **Dated daily files** (`memory/YYYY-MM-DD.md`) use the date extracted from the filename.
516
+ Other sources (e.g., session transcripts) fall back to file modification time (`mtime`).
517
+
518
+ **Example -- query: "what's Rod's work schedule?"**
519
+
520
+ Given these memory files (today is Feb 10):
521
+
522
+ ```
523
+ memory/2025-09-15.md -> "Rod works Mon-Fri, standup at 10am, pairing at 2pm" (148 days old)
524
+ memory/2026-02-10.md -> "Rod has standup at 14:15, 1:1 with Zeb at 14:45" (today)
525
+ memory/2026-02-03.md -> "Rod started new team, standup moved to 14:15" (7 days old)
526
+ ```
527
+
528
+ Without decay:
529
+
530
+ ```
531
+ 1. memory/2025-09-15.md (score: 0.91) <- best semantic match, but stale!
532
+ 2. memory/2026-02-10.md (score: 0.82)
533
+ 3. memory/2026-02-03.md (score: 0.80)
534
+ ```
535
+
536
+ With decay (halfLife=30):
537
+
538
+ ```
539
+ 1. memory/2026-02-10.md (score: 0.82 x 1.00 = 0.82) <- today, no decay
540
+ 2. memory/2026-02-03.md (score: 0.80 x 0.85 = 0.68) <- 7 days, mild decay
541
+ 3. memory/2025-09-15.md (score: 0.91 x 0.03 = 0.03) <- 148 days, nearly gone
542
+ ```
543
+
544
+ The stale September note drops to the bottom despite having the best raw semantic match.
545
+
546
+ **When to enable:** If your agent has months of daily notes and you find that old,
547
+ stale information outranks recent context. A half-life of 30 days works well for
548
+ daily-note-heavy workflows; increase it (e.g., 90 days) if you reference older notes frequently.
549
+
550
+ ### Hybrid search configuration
551
+
552
+ Both features are configured under `memorySearch.query.hybrid`:
553
+
554
+ ```json5
555
+ agents: {
556
+ defaults: {
557
+ memorySearch: {
558
+ query: {
559
+ hybrid: {
560
+ enabled: true,
561
+ vectorWeight: 0.7,
562
+ textWeight: 0.3,
563
+ candidateMultiplier: 4,
564
+ // Diversity: reduce redundant results
565
+ mmr: {
566
+ enabled: true, // default: false
567
+ lambda: 0.7 // 0 = max diversity, 1 = max relevance
568
+ },
569
+ // Recency: boost newer memories
570
+ temporalDecay: {
571
+ enabled: true, // default: false
572
+ halfLifeDays: 30 // score halves every 30 days
573
+ }
574
+ }
575
+ }
576
+ }
577
+ }
578
+ }
579
+ ```
580
+
581
+ You can enable either feature independently:
582
+
583
+ - **MMR only** -- useful when you have many similar notes but age doesn't matter.
584
+ - **Temporal decay only** -- useful when recency matters but your results are already diverse.
585
+ - **Both** -- recommended for agents with large, long-running daily note histories.
586
+
587
+ ## Embedding cache
588
+
589
+ QuantumClaw can cache **chunk embeddings** in SQLite so reindexing and frequent updates (especially session transcripts) don't re-embed unchanged text.
590
+
591
+ Config:
592
+
593
+ ```json5
594
+ agents: {
595
+ defaults: {
596
+ memorySearch: {
597
+ cache: {
598
+ enabled: true,
599
+ maxEntries: 50000
600
+ }
601
+ }
602
+ }
603
+ }
604
+ ```
605
+
606
+ ## Session memory search (experimental)
607
+
608
+ You can optionally index **session transcripts** and surface them via `memory_search`.
609
+ This is gated behind an experimental flag.
610
+
611
+ ```json5
612
+ agents: {
613
+ defaults: {
614
+ memorySearch: {
615
+ experimental: { sessionMemory: true },
616
+ sources: ["memory", "sessions"]
617
+ }
618
+ }
619
+ }
620
+ ```
621
+
622
+ Notes:
623
+
624
+ - Session indexing is **opt-in** (off by default).
625
+ - Session updates are debounced and **indexed asynchronously** once they cross delta thresholds (best-effort).
626
+ - `memory_search` never blocks on indexing; results can be slightly stale until background sync finishes.
627
+ - Results still include snippets only; `memory_get` remains limited to memory files.
628
+ - Session indexing is isolated per agent (only that agent's session logs are indexed).
629
+ - Session logs live on disk (`~/.quantumclaw/agents/<agentId>/sessions/*.jsonl`). Any process/user with filesystem access can read them, so treat disk access as the trust boundary. For stricter isolation, run agents under separate OS users or hosts.
630
+
631
+ Delta thresholds (defaults shown):
632
+
633
+ ```json5
634
+ agents: {
635
+ defaults: {
636
+ memorySearch: {
637
+ sync: {
638
+ sessions: {
639
+ deltaBytes: 100000, // ~100 KB
640
+ deltaMessages: 50 // JSONL lines
641
+ }
642
+ }
643
+ }
644
+ }
645
+ }
646
+ ```
647
+
648
+ ## SQLite vector acceleration (sqlite-vec)
649
+
650
+ When the sqlite-vec extension is available, QuantumClaw stores embeddings in a
651
+ SQLite virtual table (`vec0`) and performs vector distance queries in the
652
+ database. This keeps search fast without loading every embedding into JS.
653
+
654
+ Configuration (optional):
655
+
656
+ ```json5
657
+ agents: {
658
+ defaults: {
659
+ memorySearch: {
660
+ store: {
661
+ vector: {
662
+ enabled: true,
663
+ extensionPath: "/path/to/sqlite-vec"
664
+ }
665
+ }
666
+ }
667
+ }
668
+ }
669
+ ```
670
+
671
+ Notes:
672
+
673
+ - `enabled` defaults to true; when disabled, search falls back to in-process
674
+ cosine similarity over stored embeddings.
675
+ - If the sqlite-vec extension is missing or fails to load, QuantumClaw logs the
676
+ error and continues with the JS fallback (no vector table).
677
+ - `extensionPath` overrides the bundled sqlite-vec path (useful for custom builds
678
+ or non-standard install locations).
679
+
680
+ ## Local embedding auto-download
681
+
682
+ - Default local embedding model: `hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/embeddinggemma-300m-qat-Q8_0.gguf` (~0.6 GB).
683
+ - When `memorySearch.provider = "local"`, `node-llama-cpp` resolves `modelPath`; if the GGUF is missing it **auto-downloads** to the cache (or `local.modelCacheDir` if set), then loads it. Downloads resume on retry.
684
+ - Native build requirement: run `pnpm approve-builds`, pick `node-llama-cpp`, then `pnpm rebuild node-llama-cpp`.
685
+ - Fallback: if local setup fails and `memorySearch.fallback = "openai"`, we automatically switch to remote embeddings (`openai/text-embedding-3-small` unless overridden) and record the reason.
686
+
687
+ ## Custom OpenAI-compatible endpoint example
688
+
689
+ ```json5
690
+ agents: {
691
+ defaults: {
692
+ memorySearch: {
693
+ provider: "openai",
694
+ model: "text-embedding-3-small",
695
+ remote: {
696
+ baseUrl: "https://api.example.com/v1/",
697
+ apiKey: "YOUR_REMOTE_API_KEY",
698
+ headers: {
699
+ "X-Organization": "org-id",
700
+ "X-Project": "project-id"
701
+ }
702
+ }
703
+ }
704
+ }
705
+ }
706
+ ```
707
+
708
+ Notes:
709
+
710
+ - `remote.*` takes precedence over `models.providers.openai.*`.
711
+ - `remote.headers` merge with OpenAI headers; remote wins on key conflicts. Omit `remote.headers` to use the OpenAI defaults.